[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
with enclosures. From: Michael Rowley 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 |
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://docs.oasis-open.org/ns/bpel4people/ws-humantask/types/200803" targetNamespace="http://docs.oasis-open.org/ns/bpel4people/ws-humantask/types/200803" elementFormDefault="qualified" blockDefault="#all"> <!-- other namespaces --> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd" /> <!-- data types for organizational entities --> <xsd:element name="organizationalEntity" type="tOrganizationalEntity" /> <xsd:complexType name="tOrganizationalEntity"> <xsd:choice> <xsd:element ref="users" /> <xsd:element ref="groups" /> </xsd:choice> </xsd:complexType> <xsd:element name="user" type="tUser" /> <xsd:simpleType name="tUser"> <xsd:restriction base="xsd:string" /> </xsd:simpleType> <xsd:element name="users" type="tUserlist" /> <xsd:complexType name="tUserlist"> <xsd:sequence> <xsd:element ref="user" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:element name="group" type="tGroup" /> <xsd:simpleType name="tGroup"> <xsd:restriction base="xsd:string" /> </xsd:simpleType> <xsd:element name="groups" type="tGrouplist" /> <xsd:complexType name="tGrouplist"> <xsd:sequence> <xsd:element ref="group" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <!-- data types for attachment operations --> <xsd:element name="attachmentInfo" type="tAttachmentInfo" /> <xsd:complexType name="tAttachmentInfo"> <xsd:sequence> <xsd:element name="name" type="xsd:string" /> <xsd:element name="accessType" type="xsd:string" /> <xsd:element name="contentType" type="xsd:string" /> <xsd:element name="contentCategory" type="xsd:anyURI" /> <xsd:element name="attachedAt" type="xsd:dateTime" /> <xsd:element name="attachedBy" type="tUser" /> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:element name="attachment" type="tAttachment" /> <xsd:complexType name="tAttachment"> <xsd:sequence> <xsd:element ref="attachmentInfo" /> <xsd:element name="value" type="xsd:anyType" /> </xsd:sequence> </xsd:complexType> <!-- data types for comments --> <xsd:element name="comment" type="tComment" /> <xsd:complexType name="tComment"> <xsd:sequence> <xsd:element name="addedAt" type="xsd:dateTime" /> <xsd:element name="addedBy" type="tUser" /> <xsd:element name="text" type="xsd:string" /> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <!-- data types for simple query operations --> <xsd:element name="taskAbstract" type="tTaskAbstract" /> <xsd:complexType name="tTaskAbstract"> <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="tPriority" minOccurs="0" /> <xsd:element name="createdOn" type="xsd:dateTime" /> <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="outcome" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:element name="taskDetails" type="tTaskDetails" /> <xsd:complexType name="tTaskDetails"> <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="tPriority" minOccurs="0" /> <xsd:element name="taskInitiator" type="tUser" minOccurs="0" /> <xsd:element name="taskStakeholders" type="tOrganizationalEntity" minOccurs="0" /> <xsd:element name="potentialOwners" type="tOrganizationalEntity" minOccurs="0" /> <xsd:element name="businessAdministrators" type="tOrganizationalEntity" minOccurs="0" /> <xsd:element name="actualOwner" type="tUser" minOccurs="0" /> <xsd:element name="notificationRecipients" type="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" /> <xsd:element name="outcome" type="xsd:string" minOccurs="0" /> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:simpleType name="tPresentationName"> <xsd:annotation> <xsd:documentation>length-restricted string</xsd:documentation> </xsd:annotation> <xsd:restriction base="xsd:string"> <xsd:maxLength value="64" /> <xsd:whiteSpace value="preserve" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="tPresentationSubject"> <xsd:annotation> <xsd:documentation>length-restricted string</xsd:documentation> </xsd:annotation> <xsd:restriction base="xsd:string"> <xsd:maxLength value="254" /> <xsd:whiteSpace value="preserve" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="tStatus"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="CREATED" /> <xsd:enumeration value="READY" /> <xsd:enumeration value="RESERVED" /> <xsd:enumeration value="IN_PROGRESS" /> <xsd:enumeration value="SUSPENDED" /> <xsd:enumeration value="COMPLETED" /> <xsd:enumeration value="FAILED" /> <xsd:enumeration value="ERROR" /> <xsd:enumeration value="EXITED" /> <xsd:enumeration value="OBSOLETE" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="tPriority"> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="0" /> <xsd:maxInclusive value="10" /> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="tTaskOperations"> <xsd:choice> <xsd:element name="claim" type="tTaskOperation" /> <xsd:element name="start" type="tTaskOperation" /> <xsd:element name="stop" type="tTaskOperation" /> <xsd:element name="release" type="tTaskOperation" /> <xsd:element name="suspend" type="tTaskOperation" /> <xsd:element name="suspendUntil" type="tTaskOperation" /> <xsd:element name="resume" type="tTaskOperation" /> <xsd:element name="complete" type="tTaskOperation" /> <xsd:element name="remove" type="tTaskOperation" /> <xsd:element name="fail" type="tTaskOperation" /> <xsd:element name="setPriority" type="tTaskOperation" /> <xsd:element name="addAttachment" type="tTaskOperation" /> <xsd:element name="getAttachmentInfos" type="tTaskOperation" /> <xsd:element name="getAttachments" type="tTaskOperation" /> <xsd:element name="deleteAttachments" type="tTaskOperation" /> <xsd:element name="addComment" type="tTaskOperation" /> <xsd:element name="getComments" type="tTaskOperation" /> <xsd:element name="skip" type="tTaskOperation" /> <xsd:element name="forward" type="tTaskOperation" /> <xsd:element name="delegate" type="tTaskOperation" /> <xsd:element name="getRendering" type="tTaskOperation" /> <xsd:element name="getRenderingTypes" type="tTaskOperation" /> <xsd:element name="getTaskInfo" type="tTaskOperation" /> <xsd:element name="getTaskDescription" type="tTaskOperation" /> <xsd:element name="setOutput" type="tTaskOperation" /> <xsd:element name="deleteOutput" type="tTaskOperation" /> <xsd:element name="setFault" type="tTaskOperation" /> <xsd:element name="deleteFault" type="tTaskOperation" /> <xsd:element name="getInput" type="tTaskOperation" /> <xsd:element name="getOutput" type="tTaskOperation" /> <xsd:element name="getFault" type="tTaskOperation" /> <xsd:element name="activate" type="tTaskOperation" /> <xsd:element name="nominate" type="tTaskOperation" /> <xsd:element name="setGenericHumanRole" type="tTaskOperation" /> <xsd:any namespace="##other" processContents="lax" /> </xsd:choice> </xsd:complexType> <xsd:simpleType name="tTaskOperation"> <xsd:restriction base="xsd:string"/> </xsd:simpleType> <!-- data types for advanced query operations --> <xsd:element name="taskQueryResultSet" type="tTaskQueryResultSet" /> <xsd:complexType name="tTaskQueryResultSet"> <xsd:sequence> <xsd:element name="row" type="tTaskQueryResultRow" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="tTaskQueryResultRow"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <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="tPriority" /> <xsd:element name="taskInitiator" type="tOrganizationalEntity" /> <xsd:element name="taskStakeholders" type="tOrganizationalEntity" /> <xsd:element name="potentialOwners" type="tOrganizationalEntity" /> <xsd:element name="businessAdministrators" type="tOrganizationalEntity" /> <xsd:element name="actualOwner" type="tUser" /> <xsd:element name="notificationRecipients" type="tOrganizationalEntity" /> <xsd:element name="createdOn" type="xsd:dateTime" /> <xsd:element name="createdBy" type="xsd:string" /> <xsd:element name="activationTime" type="xsd:dateTime" /> <xsd:element name="expirationTime" type="xsd:dateTime" /> <xsd:element name="isSkipable" type="xsd:boolean" /> <xsd:element name="hasPotentialOwners" type="xsd:boolean" /> <xsd:element name="startByExists" type="xsd:boolean" /> <xsd:element name="completeByExists" type="xsd:boolean" /> <xsd:element name="presentationName" type="tPresentationName" /> <xsd:element name="presentationSubject" type="tPresentationSubject" /> <xsd:element name="presentationDescription" type="xsd:string" /> <xsd:element name="renderingMethodExists" type="xsd:boolean" /> <xsd:element name="hasOutput" type="xsd:boolean" /> <xsd:element name="hasFault" type="xsd:boolean" /> <xsd:element name="hasAttachments" type="xsd:boolean" /> <xsd:element name="hasComments" type="xsd:boolean" /> <xsd:element name="escalated" type="xsd:boolean" /> <xsd:element name="primarySearchBy" type="xsd:string" /> <xsd:element name="outcome" type="xsd:string" /> <xsd:any namespace="##other" processContents="lax" /> </xsd:choice> </xsd:complexType> <xsd:complexType name="tFault"> <xsd:sequence> <xsd:element name="faultName" type="xsd:NCName" /> <xsd:element name="faultData" type="xsd:anyType" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="tTime"> <xsd:choice> <xsd:element name="timePeriod" type="xsd:duration" /> <xsd:element name="pointOfTime" type="xsd:dateTime" /> </xsd:choice> </xsd:complexType> </xsd:schema>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]