This documentation is for WSO2 Enterprise Integrator version 6.1.1 . View documentation for the latest release in the 6.x.x family and the latest release in the 7.x.x family.

All docs This doc

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The .ht file contains the information about the human task of the BPEL process. It is an XML-based file consisting of a predefined set of human task description elements. The table below shows the basic elements and their descriptions with some examples from the ClaimsApprovalTask sample.

ElementDescription
<htd:humanInteractions>
Contains declarations of elements from the WS- HumanTask namespace, that is <htd:logicalPeopleGroups>, <htd:tasks>  and  <htd:notifications>.
<htd:import>

This is used to import the appropriate WSDL files. You should correctly specify the name spaces.

Example:

Code Block
languagejava
<htd:import namespace="http://reminder.sample.humantask.wso2.org" location="OrderProcessReminder.wsdl" importType="http://schemas.xmlsoap.org/wsdl/">
<htd:logicalPeopleGroups>

This is used to specify logical people groups used in an inline human task or a people activity. The name attribute contains the name of the logical people group. The name must be unique among the names of all logical people groups defined within the <htd:human Interactions> element. For example:

Code Block
languagejava
<htd:logicalPeopleGroups>

        <htd:logicalPeopleGroup name="regionalClerks">
            <htd:documentation xml:lang="en-US">
                The group of clerks responsible for the region specified.
            </htd:documentation>
            <htd:parameter name="role" type="xsd:string"/>
        </htd:logicalPeopleGroup>

        <htd:logicalPeopleGroup name="regionalManager">
            <htd:documentation xml:lang="en-US">
                The manager responsible for the region specified.
            </htd:documentation>
            <htd:parameter name="role" type="xsd:string"/>
        </htd:logicalPeopleGroup>

        <htd:logicalPeopleGroup name="clerksManager">
            <htd:documentation xml:lang="en-US">
                The manager of the clerk whose user ID is passed as parameter.
            </htd:documentation>
            <htd:parameter name="role" type="xsd:string"/>
        </htd:logicalPeopleGroup>

        <htd:logicalPeopleGroup name="directorClaims">
            <htd:documentation xml:lang="en-US">
                The functional director responsible for claims processing.
            </htd:documentation>
        </htd:logicalPeopleGroup>

</htd:logicalPeopleGroups>
 
<htd:logicalPeopleGroups>
       <htd:logicalPeopleGroup name="regionalClerks">
           <htd:documentation xml:lang="en-US">
               The group of clerks responsible for the region specified.
           </htd:documentation>
           <htd:parameter name="role" type="xsd:string"/>
       </htd:logicalPeopleGroup>


	   <htd:logicalPeopleGroup>
    	.....
	   </htd:logicalPeopleGroup>
</htd:logicalPeopleGroups>
<htd:tasks>

Specifies the human tasks used in the business process.

Code Block
languagejava
<htd:tasks>
        <htd:task1>
        <htd:task2>
        <htd:task3>
<htd:tasks>
<htd:task>

This is used to provide the definition of an inline human task. The name attribute specifies the name of the task. The name must be unique among the names of all tasks defined within the <htd:tasks> element.

It also consists of the <htd:interface>, <htd:peopleAssignments> and <htd:presentationElements> elements which are used to described the task.

Code Block
languagejava
<htd:task name="OrderProcess">  
	<htd:interface />
	<htd:peopleAssignments />
	<htd:presentationElements />
</htd:task>
<htd:interface>

Specifies the port types and operations of the human task.     

Code Block
languagejava
<htd:interface 
 portType="cl:ClaimsHandlingPT"  
  operation="approve"   
 responsePortType="cl:ClaimsHandlingCallbackPT"   
  responseOperation="approvalResponse"/>  
<htd:peopleAssignments>

Used to assign people to process-related generic human roles.
 

Code Block
languagejava
<htd:peopleAssignments>
	<htd:potentialOwners>
		<htd:from logicalPeopleGroup="regionalClerks">
			<htd:argument name="role">
				regionalClerksRole
			</htd:argument>
		</htd:from>
	</htd:potentialOwners>
	<htd:businessAdministrators>
		<htd:from logicalPeopleGroup="regionalManager">
			<htd:argument name="role">
				regionalManagerRole
			</htd:argument>
		</htd:from>
	</htd:businessAdministrators>
</htd:peopleAssignments>
<htd:documentation>

Provides annotations for users.

Code Block
languagehtml/xml
<htd:documentation>   
	Example for WS-HumanTask 1.1 - WS-HumanTask Task Definition  
</htd:documentation> 

 

<htd:from>
<htd:argument> 

From element used to assign people for roles which have been specified in the business process. Argument element will pass values used in the people query.

Code Block
languagejava
<htd:from logicalPeopleGroup="regionalClerks">
 	<htd:argument name="role">
		regionalClerksRole
	</htd:argument>
</htd:from>
<htd:presentationElements>

Specifies the user interface for human tasks or how the user interacts with the human task.

Code Block
languagejava
<htd:presentationElements>   
<htd:name xml:lang="en-US">Approve Claim
</htd:name>  
<htd:name xml:lang="de-DE">Genehmigungder Schadensforderung  
</htd:name>   
<htd:presentationParameters>   
<htd:presentationParametername="firstname"  
  type="xsd:string">   
 htd:getInput("ClaimApprovalRequest")/test10:cust/test10:firstname   
</htd:presentationParameter>   
</htd:presentationParameters>
<htd:notifications>

Used to provide the definition of an inline notification.The name attribute specifies the name of the notification. The name must be unique among the names of all notifications defined within the <htd:notifications> element.

Code Block
languagejava
<htd:notifications>   
  <htd:notificationname="ClaimApprovalReminder">  
  	<htd:documentationxml:lang="en-US">
htconfig.xml file

This file consists of deployment details of the human task. Human tasks supports two task types called task and notification. A task can have a publish and a callback. Publish means providing a service and Callback means calling an external service to provide the output. Notification is also a task type. A notification task provides one operation for external parties to create notifications. 

...

Code Block
languagehtml/xml
<hic:HTDeploymentConfig xmlns:hic="http://wso2.org/ht/schema/deployment/config"
	xmlns:claim="http://www.example.com/claims/"
	xmlns:claimtask="http://www.example.com">
	<hic:task name="claimtask:ApproveClaim">
		<hic:publish>
			<hic:service name="claim:ClaimService" port="ClaimPort" />
		</hic:publish>
		<hic:callback>
			<hic:service name="claim:ClaimServiceCB" port="ClaimPortCB" />
		</hic:callback>
	</hic:task>
	<hic:notification name="claimtask:ClaimApprovalReminder">
		<hic:publish>
			<hic:service name="claim:ClaimReminderService" port="ClaimReminderPort" />
		</hic:publish>
	</hic:notification>
</hic:HTDeploymentConfig>

...

Code Block
languagejava
createTaskOutput = function() {
    var outputVal = getCheckedRadio(); //get approve or not from radio button
    if (outputVal == 'approve') {
        return '<sch:ClaimApprovalResponse 	xmlns:sch="http://www.example.com/claims/schema"><sch:approved>true</sch:approved></sch:ClaimApprova	lResponse>ClaimApprovalResponse>';
    } else if (outputVal == 'disapprove') {
        return '<sch:ClaimApprovalResponse 	  
        xmlns: sch = "http://www.example.com/claims/schema" > < <sch:approved>false</sch: approved > false < /sch:approved> <
            /sch:ClaimApprov	 alResponse>ClaimApprovalResponse>';
    }
};

Output JSP is used by the regional clerk user to approve the claim.

...

Note

Tooling support for humantask is under development.

createTaskOutput = function() {
var outputVal = getCheckedRadio(); //get approve or not from radio button
if (outputVal == 'approve') {
return '<sch:ClaimApprovalResponse xmlns:sch="http://www.example.com/claims/schema"><sch:approved>true</sch:approved></sch:ClaimApprovalResponse>';
} else if (outputVal == 'disapprove') {
return '<sch:ClaimApprovalResponse
xmlns: sch = "http://www.example.com/claims/schema" > < sch: approved > false < /sch:approved> <
/sch:ClaimApprovalResponse>';
}
};