Postman collection
Shipping Write

pixiCreatePicklist

Creates a picklist from a picklist profile, either directly or by adding the creation job to the execution queue.

Starts picklist creation using the settings of a stored picklist profile. Some profile values can be overridden by parameters.

  1. Premium API check. The setting Premium_API must be enabled. Otherwise an ERROR row is returned.
  2. Profile. If ProfileId is given (0 counts as not given), it must exist in PL_Profile. If it is not given, the most recently updated default profile (PLP_Default = 1) that is not a 1SS profile (PLP_1SS = 0) is used.
  3. Location. An empty LocationId becomes 001.
  4. Order restriction (optional).
    • Only OrderNr: the order must exist in OrderHeader.
    • Only OrderNrExternal: an order with this external number must exist.
    • Both: an order matching both values must exist. Afterwards only OrderNr is used and OrderNrExternal is cleared.
    • OrderNr = 0 and an empty OrderNrExternal count as not given.
  5. Bin range (optional). BinFrom and BinTo must be bin names (InvBin.BinName) in the chosen location. Their BinSortNum replaces the bin sort range of the profile.
  6. User and comment. UserName is trimmed; if it is empty it becomes API. Comment is trimmed and stored as the picklist comment.
  7. Profile parameters. All parameters of the profile are loaded. Location, profile ID, order restriction, bin range, user name and comment are then overwritten with the values from steps 2–6.
  8. Exclusive lock. The call requests the application lock ExclusivePickListCreation without waiting. If another session holds the lock, an ERROR row is returned.
  9. Execution. An execution number is built from the current time in the format yyMMddHHmmss.
    • ExecuteAsynchronous = 1 (default): an EXEC dbo.Pixi_CreatePickList … statement containing all parameters is written to ExecQueries. An INFO row is returned.
    • ExecuteAsynchronous = 0: Pixi_CreatePickList runs immediately. It reads its parameters from the temporary parameter table.

The lock is released afterwards.

Notes

Synchronous mode (ExecuteAsynchronous = 0)

  • No INFO row is returned.
  • The caller receives whatever Pixi_CreatePickList returns. That procedure is not attached, so its result sets and further side effects are not documented here.
  • The lock is session-scoped. If Pixi_CreatePickList fails with an error, the release may be skipped. The lock then stays held until the database session ends.

Asynchronous mode (default)

  • The lock is held only while the queue entry is written. It does not prevent several queued creations from running at the same time.
  • The queued statement is built as a text string. Quotes in values such as Comment or UserName are not escaped, so an apostrophe can make the queued statement invalid.
  • The queued statement does not pass the profile values OlderThanHour, OlderThanMinute, NewerThanHour, NewerThanMinute and DisablePicklistSplitOnBatchManagement.

Pitfalls

  • The location check never fails. If LocationId does not exist, the given value is kept and the location error message is never returned.
  • Comment always overwrites the profile comment. Omitting it clears the comment from the profile.
  • An empty string for BinFrom or BinTo is not treated as missing. It is looked up as a bin name and leads to an error.
  • The profile ID error message says "could be found", but it means that the profile was not found.

Other

  • All lookups use NOLOCK.

Tables used

Settings · Read PL_Profile · Read Location · Read OrderHeader · Read InvBin · Read ExecQueries · Write
SQL object:
dbo.pipiCreatePicklist
Updated at 2026-10-30