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
ScacIntegrationRequired
is set toY
, theaddAllContainersToManifest
API is called to add all the packages of a SCAC to manifest. TheaddAllContainersToManifest
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"
andIsPackProcessComplete="Y"
, andShipNode
.getShipmentContainerList
API - This API is called to retrieve all the packages and the corresponding details based on the enterprise, SCAC,ShipmentConfirmUpdatesDone="N"
andIsPackProcessComplete="Y"
, andShipNode
.addContainerToManifest
API - This API is called for packages only ifIsManifested=N
. The output ofaddAllContainersToManifest
API is a map of distinct manifests:<FailedContainers TotalFailures=""> <DistinctManifestList TotalNumberOfRecords=""> <Manifest ManifestKey=""/> </DistinctManifestList> </FailedContainers>
CloseManifest
API - This API is called for each of theManifestKeys
returned by theaddAllContainersToManifest
API.
- If the value
ScacIntegrationRequired
is set toN
, theconfirmShipment
API is called to confirm the shipment.
- 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 thecloseManifest
API asynchronously by completing the following configurations:- Set the value of
yfs.closemanifest.online
property toN
. - Configure the
YDMCloseManifestAgent
time-triggered agent for theCLOSE_MANIFEST
transaction and start theYDMCloseManifestAgent
time-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
ScacIntegrationRequired
attribute contains the same value, eitherY
orN
. 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.