Pack

Picking and packing an order in Ongoing WMS is a multi-step process:

  1. First, article items are allocated to the order
  2. Then, the allocated items are marked as picked
  3. Last, the picked items are marked packed

The third step (packing) is not mandatory. Note that the first step (allocation) cannot be performed via the API - it has to be done inside the system itself. For more information about how an order is processed in Ongoing WMS, please see this article.

This API call (Pack) allows you to perform the third step. Note that the items you are packing have to at least be allocated before they can be packed.

Tags: Pack, Operation, PackedByUser, PackResult, PackError

Request XML

POST /xxx/automation.asmx HTTP/1.1
Host: api.ongoingsystems.se
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://ongoingsystems.se/Automation/Pack"

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <Pack xmlns="http://ongoingsystems.se/Automation">
            <UserName>string</UserName>
            <Password>string</Password>
            <Operation>
                <OrderId>int</OrderId>
                <ArticleDefId>int</ArticleDefId>
                <NumberOfItemsToPack>decimal</NumberOfItemsToPack>
                <PackedByUser>
                    <UserName>string</UserName>
                </PackedByUser>
                <PalletItemId>int</PalletItemId>
                <OriginalArticleItemId>int</OriginalArticleItemId>
                <Location>string</Location>
                <OrderLineId>int</OrderLineId>
                <AllowPackingLessThanNumberOfItemsToPack>boolean</AllowPackingLessThanNumberOfItemsToPack>
                <Batch>string</Batch>
            </Operation>
        </Pack>
    </soap:Body>
</soap:Envelope>

Request specification

Pack
UserName str(50) Req. Your username
Password str(50) Req. Your password
Operation object Req. An element of type Operation.
Operation
OrderId int Req. The order id of the order to pack.
ArticleDefId int Req. The article id of the article to pack.
NumberOfItemsToPack decimal Req. The number of items to pack.
PackedByUser object Req. An element of type PackedByUser. Designates which user did the packing.
PalletItemId int Optional The pallet item id of a pallet item that the article was packed on/in. Can be used if you want to specify which package an article was packed in.
OriginalArticleItemId int Optional The original article item id of an article item. Used to specify a specific article item to pack. A use case for this is when you want to assign specific serial numbers to an order.
Location str(50) Optional The location to pack from.
OrderLineId int Optional The order line id of an order line. Used if you want to specify which order line to pack. If left empty, Ongoing WMS will match to an order line with the specified article.
AllowPackingLessThanNumberOfItemsToPack bool Optional Set to false if you want to get an error message if you try to pack more than is allocated to an order. If set to true it will still only pack at most the allocated number of items but no error will be caused. The result will contain the actual number of packed items. True is the default value.
Batch str(50) Optional Filter by batch. If multiple batches of an article are allocated this will specify which batch to pack. Useful when there is need to track which batch is placed in which pallet item.
PackedByUser
UserName str(50) Req. The name of the user. Must be an actual user in Ongoing WMS. Will be set as the user that performed the packing.

Response XML

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <PackResponse xmlns="http://ongoingsystems.se/Automation">
            <PackResult>
                <Errors>
                    <PackError>
                        <Message>string</Message>
                        <ErrorType>UnknownError or LogonError or LocationNotFound or ArticleNotFound or ArticleNotOnOrder or GoodsOwnerIsDeleted or OrderIdNotFound or OrderLineIdMissMatch or NumberOfItemsToPackGreaterThanLeftToPackOnOrder or PalletItemIdNotFound or ErrorWhileSaving or PackedByUserError</ErrorType>
                    </PackError>
                    <PackError>
                        <Message>string</Message>
                        <ErrorType>UnknownError or LogonError or LocationNotFound or ArticleNotFound or ArticleNotOnOrder or GoodsOwnerIsDeleted or OrderIdNotFound or OrderLineIdMissMatch or NumberOfItemsToPackGreaterThanLeftToPackOnOrder or PalletItemIdNotFound or ErrorWhileSaving or PackedByUserError</ErrorType>
                    </PackError>
                </Errors>
                <Success>boolean</Success>
                <PackedNumberOfItems>decimal</PackedNumberOfItems>
            </PackResult>
        </PackResponse>
    </soap:Body>
</soap:Envelope>

Response specification

PackResult
Errors object A list of PackError objects
Success bool True if successful, false otherwise.
PackedNumberOfItems decimal Confirmation of how many items that were packed.
PackError
Message str(*) Message explaining the error.
ErrorType string The type of error:
  • UnknownError
  • LogonError
  • LocationNotFound
  • ArticleNotFound
  • ArticleNotOnOrder
  • GoodsOwnerIsDeleted
  • OrderIdNotFound
  • OrderLineIdMissMatch
  • NumberOfItemsToPackGreaterThanLeftToPackOnOrder
  • PalletItemIdNotFound
  • ErrorWhileSaving
  • PackedByUserError