Implementing ship orders
When the packing process is complete for an order, you can select a carrier and confirm packages that are ready for shipping through the designated carrier service.
Solution
Understand the APIs, user exits, services, and other components that are used to implement ship orders.
Ship orders
When you click the Ship Orders link in the More Tasks
portlet, the Ship Orders portlet is displayed from where you can start shipping packages. The
portlet displays the carrier and the number of packages to be picked up by the carrier. The
getShipmentContainerList API is called to get the carriers arriving to pick up the
packages and the count of packages. Click the count on the portlet that indicates the number of
packages that are ready for shipping. The Ship Packages page is displayed.
Packages of partially packed shipments are not included in the count.
The getShipmentContainerList API is called to return the shipments that are
grouped by carriers and the number of packages to be picked up for each carrier. Packages without a
carrier or scac are not considered for the package count. When you click the
package count corresponding to a carrier the package details such as number of products, weight,
order number, shipping date and so on are displayed for each of the packages.
getShipmentList API is
called. Based on the value of ScacIntegrationRequired attribute in the API output,
the following logic is run:- If the value of
ScacIntegrationRequiredis set toY, theaddAllContainersToManifestAPI is called to add all the packages of a SCAC to manifest. TheaddAllContainersToManifestin turn calls the following APIs:getShipmentContainerListAPI - This API is called to retrieve all the packages and the corresponding details based on the enterprise, SCAC,ShipmentConfirmUpdatesDone="N"andIsPackProcessComplete="Y", andShipNode.getShipmentContainerListAPI - This API is called to retrieve all the packages and the corresponding details based on the enterprise, SCAC,ShipmentConfirmUpdatesDone="N"andIsPackProcessComplete="Y", andShipNode.addContainerToManifestAPI - This API is called for packages only ifIsManifested=N. The output ofaddAllContainersToManifestAPI is a map of distinct manifests:<FailedContainers TotalFailures=""> <DistinctManifestList TotalNumberOfRecords=""> <Manifest ManifestKey=""/> </DistinctManifestList> </FailedContainers>CloseManifestAPI - This API is called for each of theManifestKeysreturned by theaddAllContainersToManifestAPI.
- If the value
ScacIntegrationRequiredis set toN, theconfirmShipmentAPI is called to confirm the shipment.
- Shipping packages from the user interface triggers the
closeManifestAPI call, which takes considerable amount of time. To improve the system performance, ensure to call thecloseManifestAPI asynchronously by completing the following configurations:- Set the value of
yfs.closemanifest.onlineproperty toN. - Configure the
YDMCloseManifestAgenttime-triggered agent for theCLOSE_MANIFESTtransaction and start theYDMCloseManifestAgenttime-triggered agent. You must create an agent criteria for the ship node, associate it to an agent server, and start the agent server.
- Set the value of
- For shipments that are shipped by a carrier, ensure that the
ScacIntegrationRequiredattribute contains the same value, eitherYorN. If the attribute contains a different value for some of the shipments that are shipped by the same carrier, the Ship Order feature may not function as expected. - To ship packages for transfer order shipments, follow the same process that you used to ship sales order shipments.
Implementation
To ship packages, ensure that you have the Ship Order
resource permission. For more
information about administering user group permissions, see Administering user group permissions.
For more information about APIs, see Javadoc.
You can start the ship orders process from the More Tasks portlet in the Order Fulfillment view.