Next-generation platform

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.

When you click Confirm, the getShipmentList API is called. Based on the value of ScacIntegrationRequired attribute in the API output, the following logic is run:
  • If the value of ScacIntegrationRequired is set to Y, the addAllContainersToManifest API is called to add all the packages of a SCAC to manifest. The addAllContainersToManifest in turn calls the following APIs:
    • getShipmentContainerList API - This API is called to retrieve all the packages and the corresponding details based on the enterprise, SCAC, ShipmentConfirmUpdatesDone="N" and IsPackProcessComplete="Y", and ShipNode.
    • getShipmentContainerList API - This API is called to retrieve all the packages and the corresponding details based on the enterprise, SCAC, ShipmentConfirmUpdatesDone="N" and IsPackProcessComplete="Y", and ShipNode.
    • addContainerToManifest API - This API is called for packages only if IsManifested=N. The output of addAllContainersToManifest API is a map of distinct manifests:
      <FailedContainers TotalFailures="">
        <DistinctManifestList TotalNumberOfRecords="">
      		 <Manifest ManifestKey=""/>
       	</DistinctManifestList>
      </FailedContainers>
    • CloseManifest API - This API is called for each of the ManifestKeys returned by the addAllContainersToManifest API.
  • If the value ScacIntegrationRequired is set to N, the confirmShipment API is called to confirm the shipment.
Note:
  • Shipping packages from the user interface triggers the closeManifest API call, which takes considerable amount of time. To improve the system performance, ensure to call the closeManifest API asynchronously by completing the following configurations:
    • Set the value of yfs.closemanifest.online property to N.
    • Configure the YDMCloseManifestAgent time-triggered agent for the CLOSE_MANIFEST transaction and start the YDMCloseManifestAgent time-triggered agent. You must create an agent criteria for the ship node, associate it to an agent server, and start the agent server.
  • For shipments that are shipped by a carrier, ensure that the ScacIntegrationRequired attribute contains the same value, either Y or N. 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.