OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

bpel4people message

[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



[For the original issue, see the bottom of this email]

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>



Luc Clement wrote:
>
> Assigned: http://www.osoa.org/jira/browse/BP-44
>
>  
>
> From: Michael Rowley [mailto:michael.rowley@activevos.com]
> Sent: Wednesday, October 01, 2008 10:56
> To: bpel4people@lists.oasis-open.org
> Subject: [bpel4people] NEW ISSUE: Discovering the operations available for the task
>
>  
>
>  
>
> TARGET: WS-HT
>
>  
>
> DESCRIPTION:
>
>  
>
> The operations that are available for a task varies depending on the state that the task is in and the role of the person who might do the operation.  The task API should make it possible to ask which operations are currently available for a task for a specific user.
>
>  
>
> PROPOSAL:
>
>  
>
> None yet.



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]