Oracle OIC Solution for Full and Partial Shipment Automation

Introduction:  
In Oracle Order Management, We have two Shipping methods post Sales Order creation, Full Shipment and Partial Shipment. They are carried out by specifying the quantity  while creating Shipment in OMS (Fusion). In this blog we will see how automate this with Oracle Integration Cloud (OIC) which handles both the shipping scenarios. This solution can also be used in external automation projects to carry out shipment automations as OIC Integrations are exposed as REST API’s. 

 

Cause of the issue:   

 
Shipment creation has multiple API’s. Shipment creation has a different method, Ship confirmation has a different method and Partial shipment has yet another method. Our solution is to identify the shipping method and perform the appropriate operation just with the Shipping Quantity 

 

How do we solve:  
 

Below is the request payload 

{ 

“orderNumber” : 99845, 

“lineNumber” : 2, 

“quantity” : 5 

} 

 

With the order number and line number we have to find the fulfillmentLineId of the particular line that we want to ship via REST API 

 

 

 

EndpointURL: 

GET – /fscmRestApi/resources/11.13.18.05/salesOrdersForOrderHub?q=OrderNumber= ‘99845’;StatusCode=’OPEN’ 

 

Find FulfillmentLineId
 

Endpoint URL :  

GET – /fscmRestApi/resources/11.13.18.05/shipmentLines?q= SourceOrderFulfillmentLineId =’1000002837367789’ 

 

Find Shipment and Quantity 

 

  • If a shipment number has already been generated, the line is considered shipped. If no shipment number exists, the line is eligible for shipment creation. 
  • If the shipped quantity equals the ordered quantity, it is a full shipment; otherwise, it is a partial shipment. 
  • Based on these conditions, the corresponding fulfillmentLineIds and their shipment numbers must be written to the appropriate output files separately. 

 

 

PARTIAL SHIPMENT: 

  • In this scenario, the lines must be split. If the total ordered quantity is 5 and the shipment quantity is 2, the line should be divided into two separate lines with quantities 2 and 3, respectively. 

EndpointURL: 

POST – fscmRestApi/resources/11.13.18.05/salesOrdersForOrderHub/action/splitFulfillmentLine 

 

Payload:  

{ 

    “processRequestOfflineAfter”240, 

    “splitFulfillmentLineRequest”: [ 

        { 

            “FulfillLineId”300000317414424, 

            “OrderedQty”“1”, 

            “FulfillmentOrganizationCode”“001” 

        }, 

        { 

            “SplitFromFlineId”300000317414424, 

            “FulfillInstanceId”1, 

            “OrderedQty”“1”, 

            “FulfillmentOrganizationCode”“001” 

        } 

    ] 

} 

  • Once the splitting is completed, these lines can be written to the full-shipment processing file, as they are now eligible to be shipped in full. 

 

 

FULLSHIPMENT: 

 

  • Create Shipments 

SOAP – /fscmService/ShipmentLineService?WDSL 

Body: 

<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:typ=”http://xmlns.oracle.com/apps/scm/shipping/shipConfirm/deliveries/shipmentLineService/types/”> 

   <soapenv:Header/> 

   <soapenv:Body> 

      <typ:AutocreateShipments> 

         <typ:apiVersionNumber>1</typ:apiVersionNumber> 

         <!–Optional:–> 

         <typ:InitMsgList>T</typ:InitMsgList> 

         <!–1 or more repetitions:–> 

         <typ:ShipmentLineList>175396</typ:ShipmentLineList> 

      </typ:AutocreateShipments> 

   </soapenv:Body> 

</soapenv:Envelope> 

 

  • Confirm Shipments  

POST – /fscmRestApi/resources/11.13.18.05/shippingTransactions 

Body:  

{ 

  “Action”“CONFIRM”, 

  “Organization”“001”, 

  “ShipmentName”“121203” 

} 

 

 

After shipment creation, the generated shipment numbers are written to the shipment-created file. The final list of shipment numbers is then returned as the response. 

 

 

Conclusion 

 

Shipment processing is handled through multiple APIs. Shipment creationship confirmation, and partial shipment are each executed through separate methods. 

Our solution identifies the appropriate shipping method for each fulfillment line and performs the corresponding operation using only the shipping quantity as the driving factor. 

 

 

 

Recent Posts