---
id: object/codeunit/5704
type: object
title: Codeunit 5704 "TransferOrder-Post Shipment"
summary: Codeunit 5704 "TransferOrder-Post Shipment" in Base Application (Microsoft.Inventory.Transfer). 5 public procedures, 50 events, 2 event subscribers. Present since at least BC23, still in BC30, changed in BC24, BC26-27.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "27"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 3368180b2b355b2c1bbeb317b50c7041dcc8cf3bf2d1ba412c4dc60966316347
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al
    title: src/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/it
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 5704
name: TransferOrder-Post Shipment
namespace: Microsoft.Inventory.Transfer
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "26"
  - "27"
source_major: "29"
obsolete: null
countries:
  - it
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 85
  events: 50
  subscribers: 2
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 7
  calls: 16
  called_by: 6
  implements: 0
---

# Codeunit 5704 "TransferOrder-Post Shipment"

> Codeunit 5704 "TransferOrder-Post Shipment" in Base Application (Microsoft.Inventory.Transfer). 5 public procedures, 50 events, 2 event subscribers. Present since at least BC23, still in BC30, changed in BC24, BC26-27.

Base Application · Microsoft.Inventory.Transfer · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Transfer/TransferOrderPostShipment.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| TableNo | Transfer Header |
| Permissions | tabledata "G/L Entry" = r, tabledata "Item Entry Relation" = i, tabledata "Transfer Shipment Header" = ri, tabledata "Transfer Shipment Line" = rim |

## Events published

- `OnBeforePostItemJournalLine(var ItemJournalLine: Record "Item Journal Line"; TransferLine: Record "Transfer Line"; TransferShipmentHeader: Record "Transfer Shipment Header"; TransferShipmentLine: Record "Transfer Shipment Line"; CommitIsSuppressed: Boolean; PreviewMode: Boolean)` (integration)
  - subscribers: [Codeunit 6258 "Sust. Transfer Subscriber"](../codeunit/6258.md) OnPostItemJnlLineOnAfterPrepareShipmentItemJnlLine
- `OnBeforeTransferOrderPostShipment(var TransferHeader: Record "Transfer Header"; var CommitIsSuppressed: Boolean; PreviewMode: Boolean)` (integration)
- `OnBeforeCheckItemNotBlocked(TransferLine: Record "Transfer Line"; Item: Record Item; TransferHeader: Record "Transfer Header"; Location: Record Location; WhseShip: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckItemVariantNotBlocked(TransferLine: Record "Transfer Line"; ItemVariant: Record "Item Variant"; TransferHeader: Record "Transfer Header"; Location: Record Location; WhseShip: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeOnRun(var TransferHeader: Record "Transfer Header"; var HideValidationDialog: Boolean; var SuppressCommit: Boolean; PreviewMode: Boolean; var IsHandled: Boolean)` (integration)
- `OnAfterCheckInvtPostingSetup(var TransferHeader: Record "Transfer Header"; var TempWhseShipmentHeader: Record "Warehouse Shipment Header" temporary; var SourceCode: Code[10])` (integration)
- `OnAfterCreateItemJnlLine(var ItemJournalLine: Record "Item Journal Line"; TransferLine: Record "Transfer Line"; TransferShipmentHeader: Record "Transfer Shipment Header"; TransferShipmentLine: Record "Transfer Shipment Line")` (integration)
  - subscribers: [Codeunit 20539 "Subc. TransOrderPostShpt Ext"](../codeunit/20539.md) OnAfterCreateItemJnlLine
- `OnAfterCopyTransLine(var NewTransferLine: Record "Transfer Line"; TransferLine: Record "Transfer Line")` (integration)
- `OnAfterInvtAdjmt(var TransferHeader: Record "Transfer Header"; var TransferShipmentHeader: Record "Transfer Shipment Header")` (integration)
- `OnAfterTransLineModify(var TransferLine: Record "Transfer Line"; var TransferHeader: Record "Transfer Header")` (integration)
- `OnAfterTransferOrderPostShipment(var TransferHeader: Record "Transfer Header"; CommitIsSuppressed: Boolean; PreviewMode: Boolean; var TransferShipmentHeader: Record "Transfer Shipment Header"; InvtPickPutaway: Boolean)` (integration)
  - subscribers: [Codeunit 6103 "E-Document Subscribers"](../codeunit/6103.md) CreateEDocumentFromPostedTransferShipment
- `OnAfterInsertShptEntryRelation(var TransLine: Record "Transfer Line"; WhseShip: Boolean; EntryNo: Integer; CommitIsSuppressed: Boolean; PreviewMode: Boolean)` (integration)
- `OnAfterInsertTransShptHeader(var TransferHeader: Record "Transfer Header"; var TransferShipmentHeader: Record "Transfer Shipment Header")` (integration)
- `OnAfterInsertTransShptLine(var TransShptLine: Record "Transfer Shipment Line"; TransLine: Record "Transfer Line"; CommitIsSuppressed: Boolean; PreviewMode: Boolean; TransShptHeader: Record "Transfer Shipment Header")` (integration)
  - subscribers: [Codeunit 20338 "Transfer Shpt Posting Handler"](../codeunit/20338.md) OnAfterInsertTransShptLine
- `OnBeforeInsertTransShptHeader(var TransShptHeader: Record "Transfer Shipment Header"; TransHeader: Record "Transfer Header"; CommitIsSuppressed: Boolean; PreviewMode: Boolean)` (integration)
- `OnBeforeCheckDimValuePosting(TransferHeader: Record "Transfer Header"; TransferLine: Record "Transfer Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckWarehouse(TransLine: Record "Transfer Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckItemInInventoryAndWarehouse(var TransLine: Record "Transfer Line"; NeedCheckWarehouse: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyTransLines(TransferHeader: Record "Transfer Header")` (integration)
- `OnBeforeCopyTransLine(var NewTransferLine: Record "Transfer Line"; TransferLine: Record "Transfer Line"; var NextLineNo: Integer; TransferHeader: Record "Transfer Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeCreatePostedShptLineFromWhseShptLine(var TransShptLine: Record "Transfer Shipment Line"; var WhseShptLine: Record "Warehouse Shipment Line"; var PostedWhseShptHeader: Record "Posted Whse. Shipment Header"; var PostedWhseShptLine: Record "Posted Whse. Shipment Line"; var TempWhseSplitSpecification: Record "Tracking Specification" temporary; var IsHandled: Boolean; var WhseJnlRegisterLine: Codeunit "Whse. Jnl.-Register Line"; var WhsePostShpt: Codeunit "Whse.-Post Shipment")` (integration)
- `OnBeforeInsertTransShptLine(var TransShptLine: Record "Transfer Shipment Line"; TransLine: Record "Transfer Line"; CommitIsSuppressed: Boolean; PreviewMode: Boolean; var IsHandled: Boolean; TransShptHeader: Record "Transfer Shipment Header")` (integration)
  - subscribers: [Codeunit 20539 "Subc. TransOrderPostShpt Ext"](../codeunit/20539.md) OnBeforeInsertTransShptLine, [Codeunit 6258 "Sust. Transfer Subscriber"](../codeunit/6258.md) OnBeforeInsertTransShptLine
- `OnBeforeDeleteOneTransferOrder(TransferHeader: Record "Transfer Header"; var DeleteOne: Boolean)` (integration)
- `OnBeforeFinalizePosting(TransferHeader: Record "Transfer Header"; PostedWhseShptHeader: Record "Posted Whse. Shipment Header"; WhseShip: Boolean)` (integration)
- `OnBeforeGenNextNo(var TransferShipmentHeader: Record "Transfer Shipment Header"; TransferHeader: Record "Transfer Header")` (integration)
- `OnBeforeCheckItemInInventory(TransferLine: Record "Transfer Line"; var IsHandled: Boolean)` (integration)
  - subscribers: [Codeunit 20541 "Subc. Transfer WIP Posting"](../codeunit/20541.md) HandleWipTransferOnBeforeCheckItemInInventory
- `OnBeforeInsertShptEntryRelation(var TransShptLine: Record "Transfer Shipment Line"; TransferLine: Record "Transfer Line"; var ItemJnlLine: Record "Item Journal Line"; WhsePosting: Boolean; var ItemJnlPostLine: Codeunit "Item Jnl.-Post Line"; var Result: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeNewTransferLineInsert(var NewTransferLine: Record "Transfer Line"; TransferLine: Record "Transfer Line"; var NextLineNo: Integer)` (integration)
- `OnBeforePostItem(var TransferShipmentHeader: Record "Transfer Shipment Header"; var IsHandled: Boolean; var TransferLine: Record "Transfer Line"; TransShptLine2: Record "Transfer Shipment Line"; WhseShip: Boolean; WhseShptHeader2: Record "Warehouse Shipment Header"; var ItemJnlPostLine: Codeunit "Item Jnl.-Post Line"; var WhseJnlRegisterLine: Codeunit "Whse. Jnl.-Register Line")` (integration)
- `OnBeforeReleaseDocument(var TransferHeader: Record "Transfer Header")` (integration)
- `OnBeforeTransferTracking(var FromTransLine: Record "Transfer Line"; var ToTransLine: Record "Transfer Line"; TransferQty: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateWithWarehouseShipReceive(var TransferLine: Record "Transfer Line")` (integration)
- `OnCheckTransLine(TransferLine: Record "Transfer Line"; TransferHeader: Record "Transfer Header"; Location: Record Location; WhseShip: Boolean; TransShptLine: Record "Transfer Shipment Line"; InvtPickPutaway: Boolean; var WhsePosting: Boolean)` (integration)
- `OnInsertTransShptLineOnAfterCreatePostedShptLine(var WarehouseShipmentLine: Record "Warehouse Shipment Line"; var PostedWhseShipmentLine: Record "Posted Whse. Shipment Line")` (integration)
- `OnInsertTransShptLineOnBeforePostWhseJnlLine(TransShptLine: Record "Transfer Shipment Line"; TransLine: Record "Transfer Line"; SuppressCommit: Boolean; PreviewMode: Boolean; var WhsePosting: Boolean; var ShouldRunPosting: Boolean)` (integration)
- `OnInsertShptEntryRelationOnAfterCalcWhseSplitSpecification(TransLine: Record "Transfer Line"; var TransShptLine: Record "Transfer Shipment Line"; TempHandlingSpecification2: Record "Tracking Specification" temporary; var TempWhseSplitSpecification: Record "Tracking Specification" temporary; WhsePosting: Boolean; WhseShip: Boolean; InvtPickPutaway: Boolean; var WhseSplitSpecification: Boolean)` (integration)
- `OnRunOnBeforeCommit(var TransferHeader: Record "Transfer Header"; var TransferShipmentHeader: Record "Transfer Shipment Header"; PostedWhseShptHeader: Record "Posted Whse. Shipment Header"; var SuppressCommit: Boolean; PreviewMode: Boolean)` (integration)
- `OnAfterCheckDimComb(TransferHeader: Record "Transfer Header"; TransferLine: Record "Transfer Line")` (integration)
- `OnPostWhseJnlLineOnBeforeSplitWhseJnlLine()` (integration)
- `OnBeforeInsertTransShipmentLine(TransLine: Record "Transfer Line")` (integration)
- `OnRunOnAfterTransLineSetFiltersForShptLines(var TransferLine: Record "Transfer Line"; TransferHeader: Record "Transfer Header"; Location: Record Location; WhseShip: Boolean)` (integration)
- `OnRunOnBeforeInsertShipmentLines(var WhseShptHeader: Record "Warehouse Shipment Header"; var WarehouseShipmentLine: Record "Warehouse Shipment Line")` (integration)
- `OnRunOnBeforeLockTables(var ItemJnlPostLine: Codeunit "Item Jnl.-Post Line")` (integration)
- `OnBeforePostWhseJnlLine(ItemJnlLine: Record "Item Journal Line"; OriginalQuantity: Decimal; OriginalQuantityBase: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckHeaderShippingAdvice(var TransferHeader: Record "Transfer Header"; var IsHandled: Boolean)` (integration)
- `OnAfterSetFilterTransferLine(var TransferLine: Record "Transfer Line")` (integration)
- `OnBeforeTransLineModify(var TransferLine: Record "Transfer Line"; var IsHandled: Boolean)` (integration)
- `OnTransferTrackingOnBeforeReserveTransferToTransfer(var FromTransferLine: Record "Transfer Line"; var ToTransferLine: Record "Transfer Line"; TransferQty: Decimal)` (integration)
- `OnTransferTrackingOnAfterTransferToTransfer(var TempHandlingTrackingSpecification: Record "Tracking Specification"; var FromTransferLine: Record "Transfer Line"; var ToTransferLine: Record "Transfer Line")` (integration)
- `OnCheckLinesOnAfterTransLineSetFilters(var TransferLine: Record "Transfer Line")` (integration)

## Event subscriptions

- OnBeforePostValueEntryToGL subscribes to Codeunit "Item Jnl.-Post Line" OnBeforePostValueEntryToGL
- OnSetItemAdjmtPropertiesOnBeforeCheckModifyItem subscribes to Codeunit "Item Jnl.-Post Line" OnSetItemAdjmtPropertiesOnBeforeCheckModifyItem

## Procedures

- `RunWithCheck(var TransferHeader2: Record "Transfer Header")` (internal)
- `SetHideValidationDialog(NewHideValidationDialog: Boolean)`
- `SetWhseShptHeader(var WhseShptHeader2: Record "Warehouse Shipment Header")`
- `SetSuppressCommit(NewSuppressCommit: Boolean)`
- `SetPreviewMode(NewPreviewMode: Boolean)`

Plus 28 local procedures.

## Triggers

OnRun

## Relations

- runs on [Table 5740 "Transfer Header"](../table/5740.md)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 99000836 "Transfer Line-Reserve"](../codeunit/99000836.md) (5 calls: `FinalizePosting → UpdateItemTrackingAfterPosting`, `ReserveItemJnlLine → TransferTransferToItemJnlLine`, `ReserveItemJnlLine → TransferWhseShipmentToItemJnlLine`, …)
- [Codeunit 408 "DimensionManagement"](../codeunit/408.md) (4 calls: `CheckDimComb → CheckDimIDComb`, `CheckDimComb → GetDimCombErr`, `CheckDimValuePosting → CheckDimValuePosting`, …)
- [Codeunit 22 "Item Jnl.-Post Line"](../codeunit/22.md) (3 calls: `InsertShptEntryRelation → CollectTrackingSpecification`, `PostItem → RunWithCheck`, `RunWithCheck → PostDeferredValueEntriesToGL`)
- [Codeunit 5763 "Whse.-Post Shipment"](../codeunit/5763.md) (3 calls: `CreatePostedShptLineFromWhseShptLine → CreatePostedShptLine`, `RunWithCheck → CreatePostedShptHeader`, `RunWithCheck → PostUpdateWhseDocuments`)
- [Codeunit 7302 "WMS Management"](../codeunit/7302.md) (3 calls: `PostWhseJnlLine → CheckWhseJnlLine`, `PostWhseJnlLine → CreateWhseJnlLine`, `PostWhseJnlLine → SetTransferLine`)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (2 calls: `InsertShptEntryRelation → GetWhseItemTrkgSetup`, `PostWhseJnlLine → SplitWhseJnlLine`)
- [Codeunit 410 "Update Analysis View"](../codeunit/410.md) (1 call: `RunWithCheck → UpdateAll`)
- [Codeunit 447 "Record Link Management"](../codeunit/447.md) (1 call: `RunWithCheck → CopyLinks`)
- [Codeunit 5708 "Release Transfer Document"](../codeunit/5708.md) (1 call: `ReleaseDocument → Release`)
- [Codeunit 5773 "Whse.-Transfer Release"](../codeunit/5773.md) (1 call: `FinalizePosting → Release`)
- [Codeunit 5777 "Whse. Validate Source Line"](../codeunit/5777.md) (1 call: `CheckWarehouse → WhseLinesExist`)
- [Codeunit 5894 "Inventory Adjustment Handler"](../codeunit/5894.md) (1 call: `MakeInventoryAdjustment → MakeAutomaticInventoryAdjustment`)
- [Codeunit 7150 "Update Item Analysis View"](../codeunit/7150.md) (1 call: `RunWithCheck → UpdateAll`)
- [Codeunit 7301 "Whse. Jnl.-Register Line"](../codeunit/7301.md) (1 call: `PostWhseJnlLine → RegisterWhseJnlLine`)
- [Codeunit 9070 "Document Errors Mgt."](../codeunit/9070.md) (1 call: `CheckLines → GetNothingToPostErrorMsg`)
- [Page 456 "No. Series"](../page/456.md) (1 call: `InsertTransShptHeader → (object)`)

## Called by

- [Codeunit 5748 "Transfer Whse. Post Shipment"](../codeunit/5748.md) (14 calls: `PostSourceDirectTransferDocument → RunWithCheck`, `PostSourceDirectTransferDocument → SetSuppressCommit`, `PostSourceDirectTransferDocument → SetWhseShptHeader`, …)
- [Codeunit 5706 "TransferOrder-Post (Yes/No)"](../codeunit/5706.md) (3 calls: `PostTransferOrder → (object)`, `PostTransferOrder → SetHideValidationDialog`, `PostTransferOrder → SetPreviewMode`)
- [Codeunit 7324 "Whse.-Activity-Post"](../codeunit/7324.md) (3 calls: `PostSourceDocument → (object)`, `PostSourceDocument → SetHideValidationDialog`, `PostSourceDocument → SetPreviewMode`)
- [Codeunit 5666 "Post Transfer Data"](../codeunit/5666.md) (2 calls: `OnRun → (object)`, `OnRun → SetHideValidationDialog`)
- [Table 8631 "Config. Table Processing Rule"](../table/8631.md) (2 calls: `RunActionOnTransferHeader → (object)`, `RunActionOnTransferHeader → SetHideValidationDialog`)
- [Codeunit 5707 "TransferOrder-Post + Print"](../codeunit/5707.md) (1 call: `Code → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC26-27

## Countries that replace it

[IT](../../localizations/it.md)

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "TransferOrder-Post Shipment")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
