How to use the Human WorkFlow Web Services

How to use the Human WorkFlow Web Services

There are different ways to interact with the Human WorkFlow services of the Oracle SOA Suite or BPM. You can use java and use it in your own application, like I did in this blogpost,use the BPM Worklist application or invoke the Human WorkFlow web services.

In this blogpost I will describe how you can do that andespeciallyhow you can query the Human task with your own ordering and restrictions.

You can try these examples from soapUI or any other web service framework / tool.

In this blogpost we will invoke these two WF web services

TaskQueryService, This WS can be used for task retrieval or do a query on the WorkFlow service.
The WSDL url = http://soa-server:8001/integration/services/TaskQueryService/TaskQueryService?WSDL

TaskService, This WS can be used for CRUD actions on the human tasks.
The WSDL url =http://soa-server:8001/integration/services/<wbr>TaskService/TaskServicePort?<wbr>WSDL<br><br> Both services got two endpoints,<span></span><strong>be aware you should always use the endpoint of TaskQueryServicePort</strong>and not the SAML port unless you like to use SAML authentication.<br><br><br><div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;service name="TaskQueryService"&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;port name="<wbr>TaskQueryServicePortSAML" binding="tns:<wbr>TaskQueryServiceSOAPBinding"&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;soap:address location="http://172.16.0.4:<wbr>8001/integration/services/<wbr>TaskQueryService/<wbr>TaskQueryService2/*"/&gt;</wbr></wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;/port&gt;</div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue">&lt;port name="TaskQueryServicePort" binding="tns:<wbr>TaskQueryServiceSOAPBinding"&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue">&lt;soap:address location="http://172.16.0.4:<wbr>8001/integration/services/<wbr>TaskQueryService/<wbr>TaskQueryService"/&gt;</wbr></wbr></wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue">&lt;/port&gt;</span></div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;/service&gt;</div> <br><br> When we know our Human TaskId ( something like this 3fa4e9f7-5719-4efa-8215-ad2b47fcbace )<br> then you can use the<span></span><strong>getTaskDetailsById</strong><span></span>operation.<br><br><br><div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;soapenv:Envelope xmlns:soapenv="<a target="_blank" href="http://schemas.xmlsoap.org/soap/envelope/" style="color:rgb(17,85,204); text-decoration:none">http://schemas.<wbr>xmlsoap.org/soap/envelope/</wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:tas="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>taskQueryService</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:com="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/common" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>common</wbr></wbr></a>"&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Header/&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:#222222"> &lt;</span><span style="color:blue">tas:taskDetailsByIdRequest</span><span style="color:#222222">&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;com:workflowContext&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;com:credential&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;com:login&gt;</span><strong><span style="color:#20124d">weblogic</span></strong><span style="color:red">&lt;/com:<wbr>login&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;com:password&gt;</span><strong><span style="color:#20124d">weblogic1</span></strong><span style="color:red">&lt;/com:<wbr>password&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;/com:credential&gt;</span></div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:#222222"> &lt;tas:taskId&gt;</span><span style="color:blue">3fa4e9f7-5719-<wbr>4efa-8215-ad2b47fcbace</wbr></span><span style="color:#222222">&lt;/tas:</span><wbr><span style="color:#222222">taskId&gt;</span></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas:taskDetailsByIdRequest&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;/soapenv:Envelope&gt;</div> <br><br> In this case I use workflowContext for authentication. You can also do it on behalf of someone else.<br><br> Sometimes you only got a Human WorkFlow number then you can use the<span></span><strong>getTaskDetailsByNumber</strong><span></span>operation.<br><br><br><div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;soapenv:Envelope xmlns:soapenv="<a target="_blank" href="http://schemas.xmlsoap.org/soap/envelope/" style="color:rgb(17,85,204); text-decoration:none">http://schemas.<wbr>xmlsoap.org/soap/envelope/</wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:tas="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>taskQueryService</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:com="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/common" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>common</wbr></wbr></a>"&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Header/&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:#222222"> <span></span></span><span style="background-color:white"><span style="color:#222222">&lt;</span><span style="color:blue">tas:<wbr>taskDetailsByNumberRequest</wbr></span><span style="color:#222222">&gt;</span></span> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:credential&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:login&gt;weblogic&lt;/com:<wbr>login&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:password&gt;weblogic1&lt;/com:<wbr>password&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:credential&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:#222222"> &lt;tas:taskNumber&gt;</span><span style="color:blue">200000</span><span style="color:#222222">&lt;/tas:</span><wbr><span style="color:#222222">taskNumber&gt;</span></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas:<wbr>taskDetailsByNumberRequest&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;/soapenv:Envelope&gt;</div> <br><br> When you don't know the taskId or the task number or want to do bulk operations then you can do a search on the humantask services. The<span></span><strong>queryTasks</strong><span></span>operation is verypowerfuland there is not really a restriction.<br><br> let's start with a simple one. In this request I want to search for a task number and also want to have some extra attributes ( blue part ) in the response together with the Comments, Attachments and the Payloads ( red part ).<br><br><div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;soapenv:Envelope xmlns:soapenv="<a target="_blank" href="http://schemas.xmlsoap.org/soap/envelope/" style="color:rgb(17,85,204); text-decoration:none">http://schemas.<wbr>xmlsoap.org/soap/envelope/</wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:tas="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>taskQueryService</wbr></wbr></a>" \</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:com="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/common" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>common</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:tas1="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/taskQuery" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>taskQuery</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:task="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/task" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/task</wbr></a>"<wbr>&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Header/&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas:taskListRequest&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:credential&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:login&gt;weblogic&lt;/com:<wbr>login&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:password&gt;weblogic1&lt;/com:<wbr>password&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:credential&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskPredicateQuery&gt;</div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:displayColumnList&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:displayColumn&gt;<wbr>textAttribute1&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:displayColumn&gt;<wbr>textAttribute2&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:displayColumn&gt;<wbr>textAttribute3&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;/tas1:displayColumnList&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:optionalInfoList&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:taskOptionalInfo&gt;<wbr>Comments&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:taskOptionalInfo&gt;<wbr>Attachments&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:taskOptionalInfo&gt;<wbr>Payload&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;/tas1:optionalInfoList&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><strong><span></span><span style="color:#20124d"> &lt;tas1:predicate&gt;</span></strong></div> <div style="font-family:arial,sans-serif; font-size:13px"><strong><span> <span></span></span><span style="background-color:white"><span style="color:blue">&lt;tas1:assignmentFilter&gt;All&lt;/<wbr>tas1:assignmentFilter&gt;</wbr></span></span></strong></div> <div style="font-family:arial,sans-serif; font-size:13px"><strong><span style="color:#20124d"> &lt;tas1:clause&gt;</span></strong></div> <div style="font-family:arial,sans-serif; font-size:13px"><strong><span style="color:#20124d"> &lt;tas1:column&gt;taskNumber&lt;/tas1:<wbr>column&gt;</wbr></span></strong></div> <div style="font-family:arial,sans-serif; font-size:13px"><strong><span style="color:#20124d"> &lt;tas1:operator&gt;EQ&lt;/tas1:<wbr>operator&gt;</wbr></span></strong></div> <div style="font-family:arial,sans-serif; font-size:13px"><strong><span style="color:#20124d"> &lt;tas1:value&gt;200001&lt;/tas1:<wbr>value&gt;</wbr></span></strong></div> <div style="font-family:arial,sans-serif; font-size:13px"><strong><span style="color:#20124d"> &lt;/tas1:clause&gt;</span></strong></div> <div style="font-family:arial,sans-serif; font-size:13px"><strong><span style="color:#20124d"> &lt;/tas1:predicate&gt;</span></strong></div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:taskPredicateQuery&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas:taskListRequest&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/soapenv:Body&gt;</div> <span style="font-family:arial,sans-serif; color:#222222; font-size:13px">&lt;/soapenv:Envelope&gt;</span><br><br> In the<span></span><strong>predicate</strong><span></span>part we are using the old style for defining our restriction ( clause after predicate ). In the next queryTasks examples I will show the ones which also will be supported in the coming soa suite releases. <span></span><br><br><strong>assignmentFilter</strong><span></span>can have the following values: All, My, Group, My+Group, My+Group+All, Reportees, Creator, Owner, Previous, Admin<br><br><strong>operator</strong><span></span>can have the following values:EQ, NEQ, GT, GTE, LT, LTE, LIKE, NOT_LIKE, IN, NOT_IN, CONTAINS, NOT_CONTAINS, BEGINS, NOT_BEGINS, ENDS, NOT_ENDS, BEFORE, AFTER, ON, NEXT_N_DAYS, LAST_N_DAYS, IS_IN_FUTURE, IS_IN_PAST, IS_NULL, IS_NOT_NULL<br><div><br></div> To know all the possible<span></span><strong>displayColumn</strong><span></span>values you can decompile the<span></span><strong>TableConstants</strong><span></span>class located in the<strong>oracle.bpel.services.workflow.repos</strong><span></span>package. Or look at the WF tables in the soa-infra schema.<br><br> The<span></span><strong>optionalInfoList</strong><span></span>can contain the following values: Actions, GroupActions, CustomActions, Attachments, Comments, Payload, ShortHistory, TemplateTasks<br><br> In this query I have a predicate with two clauses which do a search on the text attributes ( tableName attribute is in almost all cases WFTask , check the soa-infa database or the TableConstants class ) and the second one has an AND operator on the first one.<br><br><br><div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;soapenv:Envelope xmlns:soapenv="<a target="_blank" href="http://schemas.xmlsoap.org/soap/envelope/" style="color:rgb(17,85,204); text-decoration:none">http://schemas.<wbr>xmlsoap.org/soap/envelope/</wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:tas="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>taskQueryService</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:com="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/common" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>common</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:tas1="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/taskQuery" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>taskQuery</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:task="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/task" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/task</wbr></a>"<wbr>&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Header/&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas:taskListRequest&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:credential&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:login&gt;weblogic&lt;/com:<wbr>login&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:password&gt;weblogic1&lt;/com:<wbr>password&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:credential&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskPredicateQuery startRow="1" endRow="10"&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumnList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumn&gt;<wbr>textAttribute1&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumn&gt;<wbr>textAttribute2&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumn&gt;<wbr>textAttribute3&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:displayColumnList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:optionalInfoList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskOptionalInfo&gt;<wbr>Comments&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskOptionalInfo&gt;<wbr>Attachments&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskOptionalInfo&gt;<wbr>Payload&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:optionalInfoList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:predicate&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:assignmentFilter&gt;All&lt;/<wbr>tas1:assignmentFilter&gt;</wbr> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:#222222"> <span></span></span><span style="color:blue">&lt;tas1:predicate&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:column tableName="</span><strong><span style="color:#20124d">WFTask</span></strong><span style="color:blue">"&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:columnName&gt;</span><wbr><strong><span style="color:#20124d">textAttribute1</span></strong><span style="color:blue">&lt;/tas1:</span><wbr><span style="color:blue">columnName&gt;</span></wbr></wbr> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;/tas1:column&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:operator&gt;</span><strong><span style="color:#20124d">EQ</span></strong><span style="color:blue">&lt;/tas1:<wbr>operator&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:value&gt;MyTask&lt;/tas1:<wbr>value&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;/tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:clause</span><span style="color:#20124d"><span></span><strong>joinOperator="AND"</strong></span><span style="color:blue">&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:column tableName="</span><strong><span style="color:#20124d">WFTask</span></strong><span style="color:blue">"&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:columnName&gt;</span><wbr><strong><span style="color:#20124d">textAttribute2</span></strong><span style="color:blue">&lt;/tas1:<wbr>columnName&gt;</wbr></span></wbr> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;/tas1:column&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:operator&gt;</span><strong><span style="color:#20124d">EQ</span></strong><span style="color:blue">&lt;/tas1:<wbr>operator&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:value&gt;1234&lt;/tas1:value&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;/tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;/tas1:predicate&gt;</span></div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:predicate&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:taskPredicateQuery&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas:taskListRequest&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;/soapenv:Envelope&gt;</div> <br><br> In the next example we will add some ordering and use a valuelist in a predicate clause ( for this we need to use the IN operator).<br><br><br><div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;soapenv:Envelope xmlns:soapenv="<a target="_blank" href="http://schemas.xmlsoap.org/soap/envelope/" style="color:rgb(17,85,204); text-decoration:none">http://schemas.<wbr>xmlsoap.org/soap/envelope/</wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"> </span>xmlns:tas="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>taskQueryService</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"> </span>xmlns:com="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/common" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>common</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"> </span>xmlns:tas1="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/taskQuery" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>taskQuery</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"> </span>xmlns:task="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/task" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/task</wbr></a>"<wbr>&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Header/&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas:taskListRequest&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:credential&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:login&gt;weblogic&lt;/com:<wbr>login&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:password&gt;weblogic1&lt;/com:<wbr>password&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:credential&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskPredicateQuery&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumnList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumn&gt;<wbr>textAttribute1&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumn&gt;<wbr>textAttribute2&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumn&gt;<wbr>textAttribute3&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:displayColumnList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:optionalInfoList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskOptionalInfo&gt;<wbr>Comments&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskOptionalInfo&gt;<wbr>Attachments&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskOptionalInfo&gt;<wbr>Payload&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:optionalInfoList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:predicate&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:assignmentFilter&gt;My+<wbr>Group&lt;/tas1:assignmentFilter&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:predicate&gt;</div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:column tableName="</span><strong><span style="color:#20124d">WFTask</span></strong><span style="color:blue">"&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:columnName&gt;</span><strong><span style="color:#20124d">state</span></strong><span style="color:blue">&lt;/tas1:<wbr>columnName&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;/tas1:column&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:operator&gt;</span><strong><span style="color:#20124d">IN</span></strong><span style="color:blue">&lt;/tas1:<wbr>operator&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:valueList&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:value&gt;ASSIGNED&lt;/tas1:<wbr>value&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:value&gt;INFO_REQUESTED&lt;/<wbr>tas1:value&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;tas1:value&gt;OUTCOME_UPDATED&lt;/<wbr>tas1:value&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;/tas1:valueList&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;/tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:predicate&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:predicate&gt;</div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:ordering&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;tas1:column&gt;</span><strong><span style="color:#20124d">priority</span></strong><span style="color:red">&lt;/tas1:<wbr>column&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;tas1:table&gt;</span><strong><span style="color:#20124d">WFTask</span></strong><span style="color:red">&lt;/tas1:<wbr>table&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;tas1:sortOrder&gt;</span><strong><span style="color:#20124d">ASCENDING</span></strong><span style="color:red">&lt;/<wbr>tas1:sortOrder&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:nullFirst&gt;false&lt;/tas1:<wbr>nullFirst&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;/tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;tas1:column&gt;</span><strong><span style="color:#20124d">taskNumber</span></strong><span style="color:red">&lt;/tas1:<wbr>column&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;tas1:table&gt;</span><strong><span style="color:#20124d">WFTask</span></strong><span style="color:red">&lt;/tas1:<wbr>table&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;tas1:sortOrder&gt;</span><strong><span style="color:#20124d">DESCENDING</span></strong><span style="color:red">&lt;/<wbr>tas1:sortOrder&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:nullFirst&gt;false&lt;/tas1:<wbr>nullFirst&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;/tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;/tas1:ordering&gt;</span></div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:taskPredicateQuery&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas:taskListRequest&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;/soapenv:Envelope&gt;</div> <div><br></div> <br> For the Ordering I need to provide the column and table values (table element is in almost all cases WFTask , check the soa-infa database or the TableConstants class)<br><br> The last query task has a more complex predicate, for this we need to use lhs , logicalOperator and rhs elements. And the rhs element contains an another lhs , logicalOperator and rhs section.<br><br><br><div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;soapenv:Envelope xmlns:soapenv="<a target="_blank" href="http://schemas.xmlsoap.org/soap/envelope/" style="color:rgb(17,85,204); text-decoration:none">http://schemas.<wbr>xmlsoap.org/soap/envelope/</wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:tas="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/taskQueryService" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>taskQueryService</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:com="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/common" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>common</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:tas1="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/taskQuery" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/<wbr>taskQuery</wbr></wbr></a>"</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> <span style="white-space:pre-wrap"></span>xmlns:task="<a target="_blank" href="http://xmlns.oracle.com/bpel/workflow/task" style="color:rgb(17,85,204); text-decoration:none">http://xmlns.<wbr>oracle.com/bpel/workflow/task</wbr></a>"<wbr>&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Header/&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas:taskListRequest&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:credential&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:login&gt;weblogic&lt;/com:<wbr>login&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;com:password&gt;weblogic1&lt;/com:<wbr>password&gt;</wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:credential&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/com:workflowContext&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskPredicateQuery startRow="1" endRow="10"&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumnList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumn&gt;<wbr>textAttribute1&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumn&gt;<wbr>textAttribute2&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:displayColumn&gt;<wbr>textAttribute3&lt;/tas1:<wbr>displayColumn&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:displayColumnList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:optionalInfoList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskOptionalInfo&gt;<wbr>Comments&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskOptionalInfo&gt;<wbr>Attachments&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:taskOptionalInfo&gt;<wbr>Payload&lt;/tas1:<wbr>taskOptionalInfo&gt;</wbr></wbr> </div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:optionalInfoList&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:predicate&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;tas1:assignmentFilter&gt;My+<wbr>Group&lt;/tas1:assignmentFilter&gt;</wbr> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:#222222"> </span><span style="color:blue"><span></span> &lt;tas1:predicate&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:</span><strong><span style="color:#20124d">lhs</span></strong><span style="color:blue">&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:column tableName="WFTask"&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:columnName&gt;state&lt;/tas1:<wbr>columnName&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;/tas1:column&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;tas1:operator&gt;</span><strong><span style="color:#20124d">IN</span></strong><span style="color:red">&lt;/tas1:<wbr>operator&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:valueList&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:value&gt;ASSIGNED&lt;/tas1:<wbr>value&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:value&gt;INFO_REQUESTED&lt;/<wbr>tas1:value&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;tas1:value&gt;OUTCOME_UPDATED&lt;/<wbr>tas1:value&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;/tas1:valueList&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:red"> &lt;/tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;/tas1:</span><strong><span style="color:#20124d">lhs</span></strong><span style="color:blue">&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:logicalOperator&gt;</span><strong><span style="color:#20124d">AND</span></strong><span style="color:blue">&lt;/<wbr>tas1:logicalOperator&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;tas1:</span><strong><span style="color:#20124d">rhs</span></strong><span style="color:blue">&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> </span><span style="color:red">&lt;tas1:</span><strong><span style="color:#20124d">lhs</span></strong><span style="color:red">&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> <span></span></span><span style="color:#20124d">&lt;tas1:clause&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#20124d"> &lt;tas1:column tableName="WFTask"&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#20124d"> &lt;tas1:columnName&gt;<wbr>textAttribute1&lt;/tas1:<wbr>columnName&gt;</wbr></wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#20124d"> &lt;/tas1:column&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:#20124d"> &lt;tas1:operator&gt;</span><strong><span style="color:#20124d">EQ</span></strong><span style="color:#20124d">&lt;/tas1:<wbr>operator&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#20124d"> &lt;tas1:value&gt;MyTask&lt;/tas1:<wbr>value&gt;</wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#20124d"> &lt;/tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:#20124d"> &lt;tas1:clause joinOperator="</span><strong><span style="color:#20124d">AND</span></strong><span style="color:#20124d">"&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#20124d"> &lt;tas1:column tableName="WFTask"&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#20124d"> &lt;tas1:columnName&gt;<wbr>textAttribute2&lt;/tas1:<wbr>columnName&gt;</wbr></wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#20124d"> &lt;/tas1:column&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:#20124d"> &lt;tas1:operator&gt;</span><strong><span style="color:#20124d">EQ</span></strong><span style="color:#20124d">&lt;/tas1:<wbr>operator&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#20124d"> &lt;tas1:value&gt;1234&lt;/tas1:value&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#20124d"> &lt;/tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;/tas1:</span><strong><span style="color:#20124d">lhs</span></strong><span style="color:red">&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;tas1:logicalOperator&gt;</span><strong><span style="color:#20124d">OR</span></strong><span style="color:red">&lt;/<wbr>tas1:logicalOperator&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;tas1:</span><strong><span style="color:#20124d">rhs</span></strong><span style="color:red">&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#73763"> &lt;tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#73763"> &lt;tas1:column tableName="WFTask"&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#73763"> &lt;tas1:columnName&gt;<wbr>textAttribute2&lt;/tas1:<wbr>columnName&gt;</wbr></wbr></span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#73763"> &lt;/tas1:column&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:#73763"> &lt;tas1:operator&gt;</span><strong style="background-color:white"><span style="color:#20124d">EQ</span></strong><span style="color:#73763">&lt;/tas1:<wbr>operator&gt;</wbr></span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#73763"> &lt;tas1:value&gt;123&lt;/tas1:value&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:#73763"> &lt;/tas1:clause&gt;</span></div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:red"> &lt;/tas1:</span><strong><span style="color:#20124d">rhs</span></strong><span style="color:red">&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"> <span style="color:blue"> &lt;/tas1:</span><strong><span style="color:#20124d">rhs</span></strong><span style="color:blue">&gt;</span> </div> <div style="font-family:arial,sans-serif; font-size:13px"><span style="color:blue"> &lt;/tas1:predicate&gt;</span></div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:predicate&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas1:taskPredicateQuery&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/tas:taskListRequest&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px"> &lt;/soapenv:Body&gt;</div> <div style="font-family:arial,sans-serif; color:rgb(34,34,34); font-size:13px">&lt;/soapenv:Envelope&gt;</div> <br><br><br> At last we can also try update a Task with a particular outcome. For this we need to use the TaskService<span></span><br> http://soa-server:8001/integration/services/<wbr>TaskService/TaskServicePort?<wbr>WSDL<br><br> Use the right endpoint ( not the SAML one ) and use the operation<span></span><strong>updateTaskOutcome<span></span></strong>( this is the easiest way )<br><br><br> &lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"<br> xmlns:tas="http://xmlns.oracle.com/bpel/workflow/taskService"<br> xmlns:com="http://xmlns.oracle.com/bpel/workflow/common"<br> xmlns:task="http://xmlns.oracle.com/bpel/workflow/task"<br> xmlns:tas1="http://xmlns.oracle.com/bpel/workflow/TaskEvidenceService"&gt;<br> &lt;soapenv:Header/&gt;<br> &lt;soapenv:Body&gt;<br> &lt;tas:updateTaskOutcome&gt;<br> &lt;com:workflowContext&gt;<br> &lt;com:credential&gt;<br> &lt;com:login&gt;humantask&lt;/com:login&gt;<br> &lt;com:password&gt;Welcome01&lt;/com:password&gt;<br> &lt;/com:credential&gt;<br> &lt;/com:workflowContext&gt;<br> &lt;tas:taskId&gt;<span style="color:blue"><strong>3e80842f-75c9-4e3d-b441-a7f339df4109</strong></span>&lt;/tas:taskId&gt;<br> &lt;tas:outcome&gt;<span style="color:blue"><strong>OK</strong></span>&lt;/tas:outcome&gt;<br> &lt;/tas:updateTaskOutcome&gt;<br> &lt;/soapenv:Body&gt;<br> &lt;/soapenv:Envelope&gt;<br><br><br><br> Just provide the taskId and what the outcome should be. <div style="clear:both"></div> </wbr></wbr></wbr></wbr>
40 comments:
  1. Hi Edwin, the end point /integration/services/TaskQueryService/TaskQueryServicePort?WSDL gives a 404 error for me.
    /integration/services/TaskQueryService/TaskQueryService?WSDL is available but I get :
    ...
    ns0:InvalidSecurity
    InvalidSecurity : error in processing the WS-Security security header


    ...

    Is this the SAML issue?
    Mark

    Reply
  2. Hi,

    Do you get this error in soapui when invoking a request or with loading the wsdl.

    in soapui you can change the endpoint on the top of the request.

    thanks

  3. Thanks for your response. I managed to get the service working. I think my problem was not calling the authenticate service first and using the token passed back in subsequent calls.

    Successful payload for me;





    a075f524-53ef-4713-82e7-0145ad3853bf;;i1sDxUH6FW/5af/QlrBMDlOdu8YG65+CfbSd0fMpkOfZWUHxdUwEsV6LM3gH8c3Ic1kSNT17LPxp8kOO6uZ1LQAy2zrwa5mX9e08I01Cp8RjIPnB0k8idpIt21+Pv+tS7xsEeNBHWhASDszU/pzZONbKcYsu1auQmTEMw0iEnuCrP5PWa8t8iar/vg3CdxSCPFhhQVcNUHjAoQaIJB2ppGu7+sFyHrBPwM/TCLwsz0udQXEOT+h4uLoy/5v0uiDg




    All

    State
    EQ
    ASSIGNED







    Note I could not access the endpoint .../TaskQueryServicePort?WSDL you mentioned so I'm using /TaskQueryService?WSDL We are running SOA suite 11.1.1.4.

    Thanks Mark

  4. Hi,

    I also running PS3 and everything is working fine and I don't need a token. just can use username / password
    Also both wsdl url are working on PS3.

    TaskQueryService, This WS can be used for task retrieval or do a query on the WorkFlow service.
    The WSDL url = http://soa-server:8001/integration/services/TaskQueryService/TaskQueryService?WSDL

    TaskService, This WS can be used for CRUD actions on the human tasks.
    The WSDL url = http://soa-server:8001/integration/services/TaskService/TaskServicePort?WSDL

    thanks

Edwin, are you able to get the getDisplayURL() method to work for the TaskQueryService?

Vivek

Reply
Replies

Hi,

What is getDisplayURL , is that an wsdl operation

thanks

Sorry, I meant to ask this in relation to a task obtained using getTaskDetailsById or getTaskDetailsByNumber. All task details area available except for task.getDisplayURL().

I think it is a fixed url with a taskId parameter.

you can check it in the EM instance process when you click on the humantask. it will give you a direct link to the worklist app.

thanks

I agree its a fixed URL...comes from the WorkFlowUtil class. The question is: should the task api which has this method return a fixed url.
I can check EM and get the URL. How does one solve this problem in code when a random task has to be opened?
Thanks
Vivek

Hi Edwin,

I am using BPEL human task API - createTask/initiateTask API in particular to create a new task. I am able to do this. Now I am trying to create a task with multiple owners - tried this using the setOwner() method on Task object and also tried comma separated owners through the payload - Both does not seem to work :(.

Reply
Replies

Hi,

you can assign to multiple groups or users but I think there can only be one process owner.

thanks

It is really nice and informative, it is useful for me. thank you

Reply

Hi Edwin,

did you ever try to initiate a task via the "initiateTask" web service operation?
I think I'm missing something here: I'm able to create (and submit) an initiate task instance this way, but here is no (SCA) process instance created for this task.

In addition, this works without providing credentials (as you have to do in all the other operations).

<soapenv:Envelope ...>
<soapenv:Header/>
<soapenv:Body>
<tas:initiateTask>
<task:task>
<task:title>My Task, just created</task:title>
<task:payload></task:payload>
<task:priority>3</task:priority>
<task:taskDefinitionURI>default/SimpleBPM!1.0/Humantask1</task:taskDefinitionURI>
<task:creator>weblogic</task:creator>
<task:ownerUser>weblogic</task:ownerUser>
</task:task>
</tas:initiateTask>
</soapenv:Body>

Reply
Replies

Hi,

I never, always use it with BPEL so I can react on the outcome. Initiate without bpel only works I guess in the Worklist application and in combination with BPM where WF is the starting of a process.

thanks

Hi Edwin,

Do you know if the Task Title can be updated?

Thanks,
Vivek

Reply
Replies

Hi,

I think it should be possible , you can assign it to a payload variable when you create the HWF from BPEL or try to use the TaskService WS/ EJB

thanks

Hi Edwin,

Thanks a lot for the reply.

I tried both the approaches:
- Assigning a payload variable to the title did give me the correct title after the task was initiated. However, after that when the payload variable changed (using the updateTask WS call), the task title remained the same.
- When I tried to change the Title directly using the WS call, it did not update (other attributes like priority were updated successfully).

Is there anything else I can try?

Thanks for the help,
Vivek

Hi,

I think you tried it all , maybe you can ask for a SR or ER on oracle support.

thanks

By the way,

not supported by Oracle , all data is in the WF Tasks table , find the right row with the task id as primary key and update the title.


Thanks Edwin, will try out that suggestion.

An unrelated question: What can I do so that weekends are ignored for for expiration? Do I need to create a new Calendar Rule in BPM workspace? Is there any other way?

Thanks,
Vivek

Hi Edwin,

With Regards to Task Title, a DB update on the WFTask_TL title worked.
Thanks a ton for the tip.

- Vivek

Reply

Biemond Hello, I can not introspect the WSDL http://host:port/integration/services/TaskService/TaskServicePort?WSDL in jdev 11.1.1.6 (PS5). The endpoint is pointing to SOA 11.1.1.6 (PS5).
But I can introspect the same endpoint in jdev 11.1.1.5 (PS4). Seems to be a product problem. Know it?

Reply
Replies

I´m using Windows 7 O.S.

Hi,

For the Task and TaskQuery Services (PS5) I had to patch the soa suite. there were some problems with the workflow xsd in jdeveloper and on the server. I had to use the patch the fabric runtime jar on the server and in jdeveloper.

thanks.

Hi Edwin,

The post is very useful and informative.Could you please let me know how can we use the SAML configuration for these webservices.

Thanks

Reply
Replies

Hi,

Then you need to follow thishttp://biemond.blogspot.nl/2011/08/do-saml-with-owsm.html

So make osb business service or soa reference service with an owsm saml client policy and call the saml endpoint , on the proxy or soa service side use a username token policy, call this service and add your credentials and this will passed on to the human workflow services.

Thanks
Thanks

Hi Edwin, can we edit the task title when it going through multiple level of approvals? For eg. user A approves the task with title "Action Title ABC" and then goes to user B for review. In this case, when task goes to user B, can I have title set as "Review Title ABC"? Thanks in advance.

Reply
Replies

Hi,

When I look at the Java API of humantask I can see the following methods
IWorkflowContext -> getTaskService() -> mergeAndUpdateTask and updateTask
probably the same operations for the HumanTask WebServices.

but you probably need to this yourself and listen for the approval events and call this API and set the new title.

Thanks

Hi Edwin,
Have you ever used the webservice method requestInfoForTaskWithReapproval of the TaskService ?
I am trying to use this method and all I get is this error:

INFO_REQUEST

Can you please try to invoke this service and let me know your findings?

Reply
Replies

Hi,

what is your scenario, cause for requestInfoForTaskWithReapproval you need to have multiple approvements and next user user asks an another user which already approved this task for extra information.
that user should respond with a info request and after this the next approval user can do a UpdateTaskOutcome

Thanks

Hi Edwin,
Sorry, to wake this thread up again, but I'm trying to invoke the SAML endpoint, with no success. Could you please advise me on how I might go about it?

Thanks

Reply
Replies

hi,

maybe this can help. but indeed it's hard
http://biemond.blogspot.nl/2011/08/do-saml-with-owsm.html

I mostly use the java api
http://biemond.blogspot.nl/2011/10/working-with-human-worklist-api-and.html

or set in the soap call

com:workflowContext
com:credential
com:login weblogic /com:login
com:password weblogic1 com:password
/com:credential

Hi Edwin ,
I need to take an action/outcome on HumanTask (need to take Reprocess Action defined in HumanTask).
Can i achive it using these web services(using UpdateTaskOutcome) .
I am able to authenticate and take a token , please let me know which operation will allow me doing the same.
Thanks in Advance :)
Waiting for your Reply

Reply
Replies

hi,

indeed with UpdateTaskOutcome you can achieve this

This comment has been removed by the author.

Thanks Edwin
It worked as suggested :) , must say Really Helpful Post

Thanks for all your earlier responses your advices have been a great support...

In one of our requirement we have used human task with different number of stages (14 stages ) and to route the task through different stages I am using advance routing rules (30 rules),and for all this we are using only one human task component we have exposed this through bpel .

My code and process is working fine .

My question is:-

1- Do this kind of design contain flaws, is there is any restriction on using of number of stages and number of routing rules. Is there is any best practise involves which suggests that we cannot have more than certain number of stages or routing rules..??

2-Is it feasible to use different human task component for each of the human task stages and route the data using business rule, but that will be very exhausted and will unnecessarily makes bpel heavier, also the front end people need only one bpm urls this approach will make their work tedious as different number of human task component will have different urls..

Please suggest .
Thank you



Reply

Hi,

I want to test all the methods of the TaskService and TaskQueryService webservice.Can you please share any link containing all the input parameters for all the methods to test through SOAPUI.

Please Suggest
Thank You

Reply
Replies

It would be nice to have more examples on the interwebz, the info is almost non-existent and these xsd's are complex as hell

Hi Biemond

How are you doing!
Your posts are really valuable to all of the SOA community.

I need a suggestion. We have a requirement where we have to expose the underlying TaskQueryService via OSB, both normal and SAML ports ( Prj requirement restricts the consumers to directly access the task information, so we are creating a service that talks to the underlying TaskQueryService and get the information)
My question is, can a single OSB Service cater to both the ports? As I see, while creating proxy or business services, it either asks for a port or binding. If I select a port, I can select only one port, so I'll end up with 2 OSB Projects(proxy & business services, one for each port). If I select the binding, I'll lose the information about ports, and in Business service, I'll have to specify the URL, so obviously here aswell, I will require 2 business services and corresponding 2 proxy services.
Is there a way where a single OSB Project can cater to expose both the ports? Just as how this wsdl is exposing both the ports?

Also, another thing is that we are told to use abstract wsdl as we are putting that in mds so that consumer will use it while calling our service which ultimately calls the TaskQueryService. So if the wsdl is abstract, and I create proxy service based on that, how can I expose both the ports?

Appreciate your help on this.

Regards
Ravi

Reply
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值