Manage Workflow Partipants for Any Change Status

You can use the Product Change Orders V2 SOAP resource to add participants to any change status for Product Management Change objects, just like you would in the user interface.

Let's run through a scenario whereby James is a product data steward preparing a production system to go live. He wants to use the Product Design Change Order Services SOAP service to add participants as approvers and reviewers. And then he'd like to get a list of reviewers who have approval status.

Add Approvers

In the following example, James uses the Product Design Change Order Services SOAP service to add both a person (John Dove) and a role (ORA_EGP_PRODUCT_MANAGER_JOB) as approvers (status code 8) for change order C00001.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/scm/productCollaboration/changes/changeObjects/changeObjectService/types/" xmlns:chan="http://xmlns.oracle.com/apps/scm/productCollaboration/changes/changeObjects/changeObjectService/">
   <soapenv:Header/>
   <soapenv:Body>
      <typ:addParticipants>
         <typ:changeNotice>CO0001</typ:changeNotice>
         <typ:organizationCode>V1</typ:organizationCode>
         <typ:statusCode>8</typ:statusCode>
         <!--Add Approver Person and Role -->
         <typ:participant>
            <chan:AssigneeName>John.Dove</chan:AssigneeName>
            <chan:AssigneeTypeValue>Person</chan:AssigneeTypeValue>
            <chan:ParticipantTypeCode>APPROVAL</chan:ParticipantTypeCode>
         </typ:participant>
         <typ:participant>
            <chan:AssigneeName>ORA_EGP_PRODUCT_MANAGER_JOB</chan:AssigneeName>
            <chan:AssigneeTypeValue>ROLE</chan:AssigneeTypeValue>
            <chan:ParticipantTypeCode>APPROVAL</chan:ParticipantTypeCode>
         </typ:participant>
      </typ:addParticipants>
   </soapenv:Body>
</soapenv:Envelope>

Add Reviewers

Here's how to add reviewers to change order C00001. In this example, the reviewers (status code 6) are a person (John Dove) and a role (CUSTOM_QUALITY_ASSURANCE).

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/scm/productCollaboration/changes/changeObjects/changeObjectService/types/" xmlns:chan="http://xmlns.oracle.com/apps/scm/productCollaboration/changes/changeObjects/changeObjectService/">
   <soapenv:Header/>
   <soapenv:Body>
         <typ:addParticipants>
         <typ:changeNotice>C00001</typ:changeNotice>
         <typ:organizationCode>V1</typ:organizationCode>
         <typ:statusCode>8</typ:statusCode>
         <!--Add Reviewer Person and Role -->
         <typ:participant>
            <chan:AssigneeName>John.Dove</chan:AssigneeName>
            <chan:AssigneeTypeValue>Person</chan:AssigneeTypeValue>
            <chan:ParticipantTypeCode>REVIEW</chan:ParticipantTypeCode>
         </typ:participant>
         <typ:participant>
            <chan:AssigneeName>CUSTOM_QUALITY_ASSURANCE</chan:AssigneeName>
            <chan:AssigneeTypeValue>ROLE</chan:AssigneeTypeValue>
            <chan:ParticipantTypeCode>REVIEW</chan:ParticipantTypeCode>
         </typ:participant>
      </typ:addParticipants>
   </soapenv:Body>
</soapenv:Envelope>

Get One Participant Type

Now that participants have been added, James can use the GET action to query for reviewers who have approval status.

soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/scm/productCollaboration/changes/changeObjects/changeObjectService/types/">
   <soapenv:Header/>
   <soapenv:Body>
      <typ:getParticipants>
         <typ:changeNotice>CO0001</typ:changeNotice>
         <typ:organizationCode>V1</typ:organizationCode>
         <typ:statusCode>8</typ:statusCode>
         <!--DONT PASS PARTICIPANT CODE TO GET ALL PARTICIPANT TYPES-->
         <!--GET REVIEWER -->
         <typ:participantTypeCode>REVIEW</typ:participantTypeCode>
         <!--GET APPROVER-->
         <!--typ:participantTypeCode>APPROVAL</typ:participantTypeCode-->
                    <!--GET OPTIONAL APPROVERS-->
         <!--typ:participantTypeCode>OPTIONAL_APPROVAL</typ:participantTypeCode-->
      </typ:getParticipants>
   </soapenv:Body>
</soapenv:Envelope>