[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [bpel4people] BP-44: Discovering the operations available forthe task
Dieter kindly created a variant of my proposal so that the taskOperations
element is extensible. I like the change. I'd like to revise my proposal, using the modified WSDL and XML
Schema that are enclosed. Michael From: Michael Rowley
[mailto:michael.rowley@activevos.com]
PROPOSAL: 1)
Introduce a new operation called: getTaskOperations(taskID). This
operation returns list of operations that are available to the authorized user
given the user's role and the state of the task. The
response element getTaskOperationsResponse contains the set of elements whose
name is the same as the operation. For example, for a task in Ready state: <getTaskOperationsResponse>
<taskOperations>
<claim/>
<start/>
<addComment/>
<addAttachment/>
<setPriority/>
</taskOperations> </getTaskOperationsResponse> A
task inbox/listing application can use the existence of these task operation
elements to determine whether to render the operation UI buttons such as claim
and start. Without this information, the inbox application may have to
implement its own logic on the client side to determine the available
operations. 2)
Include <taskOperations/> element in tasks that are returned in getMyTask
operation (Sec 6.1.2). The
proposed changes to the task api wsdl and schemas are: <!--
taskOperations port type in ws-humantask-api.wsdl --> <wsdl:operation
name="getTaskOperations">
<wsdl:input message="getTaskOperations" />
<wsdl:output message="getTaskOperationsResponse" />
<wsdl:fault name="illegalArgumentFault"
message="illegalArgumentFault" />
<wsdl:fault name="illegalAccessFault"
message="illegalAccessFault" /> </wsdl:operation> <!--
messages in ws-humantask-api.wsdl --> <wsdl:message
name="getTaskOperations">
<wsdl:part name="getTaskOperations"
element="htdt:getTaskOperations" /> </wsdl:message> <wsdl:message
name="getTaskOperationsResponse">
<wsdl:part name="getTaskOperationsResponse" element="htdt:getTaskOperationsResponse"
/> </wsdl:message>
<!--
htdt schema ws-humantask-api-wsdl.xsd (http://www.example.org/WS-HT/api/xsd)
--> <xsd:element
name="getTaskOperations"> <xsd:complexType>
<xsd:sequence>
<xsd:element name="identifier" type="xsd:anyURI" />
</xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element
name="getTaskOperationsResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="api:taskOperations" />
</xsd:sequence>
</xsd:complexType> </xsd:element> <!--
definiton of taskOperations element in ws-humantask-api.xsd (http://www.example.org/WS-HT/api)
--> <xsd:complexType
name="tTaskOperation"/> <xsd:element
name="taskOperations">
<xsd:complexType>
<xsd:all>
<xsd:element name="claim" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="start" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="stop" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="release" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="suspend" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="suspendUntil"
type="tns:tTaskOperation" minOccurs="0"/>
<xsd:element name="resume" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="complete" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="remove" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="fail" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="setPriority"
type="tns:tTaskOperation" minOccurs="0"/>
<xsd:element name="addAttachment" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="getAttachmentInfos"
type="tns:tTaskOperation" minOccurs="0"/>
<xsd:element name="getAttachments"
type="tns:tTaskOperation" minOccurs="0"/>
<xsd:element name="deleteAttachments" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="addComment" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="getComments"
type="tns:tTaskOperation" minOccurs="0"/>
<xsd:element name="skip" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="forward" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="delegate" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="getRendering"
type="tns:tTaskOperation" minOccurs="0"/>
<xsd:element name="getRenderingTypes"
type="tns:tTaskOperation" minOccurs="0"/>
<xsd:element name="getTaskInfo"
type="tns:tTaskOperation" minOccurs="0"/>
<xsd:element name="getTaskDescription" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="setOutput" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="deleteOutput"
type="tns:tTaskOperation" minOccurs="0"/>
<xsd:element name="setFault" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="deleteFault"
type="tns:tTaskOperation" minOccurs="0"/>
<xsd:element name="getInput" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="getOutput" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="getFault" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="activate" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="nominate" type="tns:tTaskOperation"
minOccurs="0"/>
<xsd:element name="setGenericHumanRole"
type="tns:tTaskOperation" minOccurs="0"/>
</xsd:all>
</xsd:complexType> </xsd:element> <!--
Changes to tTask complex type defined in ws-humantask-api.xsd (http://www.example.org/WS-HT/api)
The addition here is the reference to the taskOperations element defined
towards the end of the sequence. --> <xsd:complexType
name="tTask"> <xsd:sequence>
<xsd:element name="id" type="xsd:string" />
<xsd:element name="taskType" type="xsd:string" />
<xsd:element name="name" type="xsd:QName" />
<xsd:element name="status" type="tStatus" />
<xsd:element name="priority" type="xsd:nonNegativeInteger"
minOccurs="0" />
<xsd:element name="taskInitiator" type="htd:tUser"
minOccurs="0" />
<xsd:element name="taskStakeholders"
type="htd:tOrganizationalEntity" minOccurs="0" />
<xsd:element name="potentialOwners"
type="htd:tOrganizationalEntity" minOccurs="0" />
<xsd:element name="businessAdministrators"
type="htd:tOrganizationalEntity" minOccurs="0" />
<xsd:element name="actualOwner" type="htd:tUser"
minOccurs="0" />
<xsd:element name="notificationRecipients"
type="htd:tOrganizationalEntity" minOccurs="0" />
<xsd:element name="createdOn" type="xsd:dateTime" />
<xsd:element name="createdBy" type="xsd:string"
minOccurs="0" />
<xsd:element name="activationTime" type="xsd:dateTime"
minOccurs="0" />
<xsd:element name="expirationTime" type="xsd:dateTime"
minOccurs="0" />
<xsd:element name="isSkipable" type="xsd:boolean"
minOccurs="0" />
<xsd:element name="hasPotentialOwners" type="xsd:boolean"
minOccurs="0" />
<xsd:element name="startByExists" type="xsd:boolean"
minOccurs="0" />
<xsd:element name="completeByExists" type="xsd:boolean"
minOccurs="0" />
<xsd:element name="presentationName" type="tPresentationName"
minOccurs="0" />
<xsd:element name="presentationSubject"
type="tPresentationSubject" minOccurs="0" />
<xsd:element name="renderingMethodExists"
type="xsd:boolean" />
<xsd:element name="hasOutput" type="xsd:boolean"
minOccurs="0" />
<xsd:element name="hasFault" type="xsd:boolean"
minOccurs="0" />
<xsd:element name="hasAttachments" type="xsd:boolean"
minOccurs="0" />
<xsd:element name="hasComments" type="xsd:boolean"
minOccurs="0" />
<xsd:element name="escalated" type="xsd:boolean"
minOccurs="0" />
<xsd:element name="primarySearchBy" type="xsd:string"
minOccurs="0" />
<!-- New element -->
<xsd:element ref="tns:taskOperations" minOccurs="0"
/>
<xsd:any namespace="##other" processContents="lax"
minOccurs="0"
maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType>
---------------------------------------------------------------------
To unsubscribe from this mail list, you must leave the OASIS TC that generates
this mail. Follow this link to all your TCs in OASIS at:
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php |
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]