I_OrderDocumentedGoodsMovement
Documented Goods Movement of an Order
I_OrderDocumentedGoodsMovement is a Basic CDS View that provides data about "Documented Goods Movement of an Order" in SAP S/4HANA. It reads from 2 data sources (aufk, aufm) and exposes 74 fields with key fields GoodsMovement, GoodsMovementYear, GoodsMovementItem. It has 35 associations to related views. Part of development package VDM_PP_SFC.
Associations (35)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_MaterialDocumentYear | _GoodsMovementYear | $projection.GoodsMovementYear = _GoodsMovementYear.MaterialDocumentYear |
| [1..1] | I_MaterialDocumentHeader_2 | _GoodsMovementHeader | $projection.GoodsMovementYear = _GoodsMovementHeader.MaterialDocumentYear and $projection.GoodsMovement = _GoodsMovementHeader.MaterialDocument |
| [1..1] | I_MaterialDocumentItem_2 | _GoodsMovementItem | $projection.GoodsMovementYear = _GoodsMovementItem.MaterialDocumentYear and $projection.GoodsMovement = _GoodsMovementItem.MaterialDocument and $projection.GoodsMovementItem = _GoodsMovementItem.MaterialDocumentItem |
| [0..1] | I_LogisticsOrder | _Order | $projection.OrderID = _Order.OrderID |
| [0..1] | I_ProjectNetwork | _ProjectNetwork | $projection.ProjectNetwork = _ProjectNetwork.ProjectNetwork |
| [1..1] | I_OrderType | _OrderType | $projection.OrderType = _OrderType.OrderType |
| [1..1] | I_OrderCategory | _OrderCategory | $projection.OrderCategory = _OrderCategory.OrderCategory |
| [1..1] | I_Plant | _OrderPlant | $projection.Plant = _OrderPlant.Plant |
| [0..1] | I_CalendarDate | _DocumentDate | $projection.DocumentDate = _DocumentDate.CalendarDate |
| [0..1] | I_CalendarDate | _PostingDate | $projection.PostingDate = _PostingDate.CalendarDate |
| [0..1] | I_ReservationDocumentHeader | _Reservation | $projection.Reservation = _Reservation.Reservation |
| [0..1] | I_ReservationDocumentItem | _ReservationItem | $projection.Reservation = _ReservationItem.Reservation and $projection.ReservationItem = _ReservationItem.ReservationItem and $projection.ReservationRecordType = _ReservationItem.RecordType |
| [0..1] | I_ReservationDocRecordType | _ReservationRecordType | $projection.ReservationRecordType = _ReservationRecordType.RecordType |
| [0..1] | I_Plant | _GoodsMovementPlant | $projection.GoodsMovementPlant = _GoodsMovementPlant.Plant |
| [0..1] | I_Product | _Material | $projection.Material = _Material.Product |
| [0..1] | I_UnitOfMeasure | _BaseUnit | $projection.BaseUnit = _BaseUnit.UnitOfMeasure |
| [1..1] | I_UnitOfMeasure | _EntryUnit | $projection.EntryUnit = _EntryUnit.UnitOfMeasure |
| [1..1] | I_GoodsMovementType | _GoodsMovementType | $projection.GoodsMovementType = _GoodsMovementType.GoodsMovementType |
| [0..1] | I_GoodsMovementRefDocType | _GoodsMovementRefDocType | $projection.GoodsMovementRefDocType = _GoodsMovementRefDocType.GoodsMovementRefDocType |
| [0..1] | I_InventorySpecialStockType | _InventorySpecialStockType | $projection.InventorySpecialStockType = _InventorySpecialStockType.InventorySpecialStockType |
| [0..1] | I_InventoryValuationType | _InventoryValuationType | $projection.InventoryValuationType = _InventoryValuationType.InventoryValuationType |
| [0..1] | I_DebitCreditCode | _DebitCreditCode | $projection.DebitCreditCode = _DebitCreditCode.DebitCreditCode |
| [0..1] | I_StorageLocation | _StorageLocation | $projection.GoodsMovementPlant = _StorageLocation.Plant and $projection.StorageLocation = _StorageLocation.StorageLocation |
| [0..1] | I_Batch | _Batch | $projection.GoodsMovementPlant = _Batch.Plant and $projection.Material = _Batch.Material and $projection.Batch = _Batch.Batch |
| [0..1] | I_SalesOrder | _SalesOrder | $projection.SalesOrder = _SalesOrder.SalesOrder |
| [0..1] | I_SalesOrderItem | _SalesOrderItem | $projection.SalesOrder = _SalesOrderItem.SalesOrder and $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem |
| [0..1] | I_WBSElementBasicData | _WBSElement | $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID |
| [0..1] | I_EnterpriseProjectElement | _EnterpriseProjectElement | $projection.WBSElementInternalID = _EnterpriseProjectElement.WBSElementInternalID |
| [0..1] | I_PurchaseOrderAPI01 | _PurchaseOrder | $projection.PurchaseOrder = _PurchaseOrder.PurchaseOrder |
| [0..1] | I_PurchaseOrderItemAPI01 | _PurchaseOrderItem | $projection.PurchaseOrder = _PurchaseOrderItem.PurchaseOrder and $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem |
| [0..1] | I_Supplier | _Supplier | $projection.Supplier = _Supplier.Supplier |
| [0..1] | I_SupplierCompanyByPlant | _SupplierCompanyByPlant | $projection.GoodsMovementPlant = _SupplierCompanyByPlant.Plant and $projection.Supplier = _SupplierCompanyByPlant.Supplier |
| [0..1] | I_ControllingArea | _ControllingArea | $projection.ControllingArea = _ControllingArea.ControllingArea |
| [0..*] | I_GLAccount | _GLAccount | $projection.GLAccount = _GLAccount.GLAccount |
| [0..1] | I_Currency | _Currency | $projection.CompanyCodeCurrency = _Currency.Currency |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IORDDOCDGMVT | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #MANDATORY | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.modelingPattern | #NONE | view | |
| ObjectModel.usageType.serviceQuality | #B | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| VDM.viewType | #BASIC | view | |
| EndUserText.label | Documented Goods Movement of an Order | view |
Fields (74)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | GoodsMovement | aufm | mblnr | |
| KEY | GoodsMovementYear | |||
| KEY | GoodsMovementItem | |||
| OrderID | aufm | aufnr | ||
| ProjectNetwork | aufm | nplnr | ||
| OrderCategory | ||||
| OrderType | aufk | auart | ||
| Plant | aufk | werks | ||
| Material | ||||
| GoodsMovementPlant | aufm | werks | ||
| Reservation | aufm | rsnum | ||
| ReservationItem | ||||
| ReservationRecordType | ||||
| ReservationIsFinallyIssued | aufm | kzear | ||
| StorageLocation | ||||
| Batch | aufm | charg | ||
| InventoryValuationType | ||||
| DebitCreditCode | ||||
| GoodsMovementType | ||||
| GoodsMovementRefDocType | ||||
| InventorySpecialStockType | ||||
| SalesOrder | ||||
| SalesOrderItem | ||||
| WBSElementInternalID | ||||
| Supplier | aufm | lifnr | ||
| GoodsRecipientName | ||||
| UnloadingPointName | aufm | ablad | ||
| GoodsReceiptIsNonValuated | ||||
| GoodsReceiptIsCmpltlyDelivered | aufm | elikz | ||
| ControllingArea | aufm | kokrs | ||
| saktoasGLAccount | ||||
| PostingDate | aufm | budat | ||
| DocumentDate | aufm | bldat | ||
| BaseUnit | aufm | meins | ||
| QuantityInBaseUnit | ||||
| EntryUnit | aufm | erfme | ||
| QuantityInEntryUnit | ||||
| CompanyCodeCurrency | aufm | waers | ||
| TotalGoodsMvtAmtInCCCrcy | ||||
| _GoodsMovementYear | _GoodsMovementYear | |||
| _GoodsMovementHeader | _GoodsMovementHeader | |||
| _GoodsMovementItem | _GoodsMovementItem | |||
| _Order | _Order | |||
| _ProjectNetwork | _ProjectNetwork | |||
| _OrderCategory | _OrderCategory | |||
| _OrderType | _OrderType | |||
| _OrderPlant | _OrderPlant | |||
| _DocumentDate | _DocumentDate | |||
| _PostingDate | _PostingDate | |||
| _Material | _Material | |||
| _GoodsMovementPlant | _GoodsMovementPlant | |||
| _Reservation | _Reservation | |||
| _ReservationItem | _ReservationItem | |||
| _ReservationRecordType | _ReservationRecordType | |||
| _StorageLocation | _StorageLocation | |||
| _Batch | _Batch | |||
| _BaseUnit | _BaseUnit | |||
| _EntryUnit | _EntryUnit | |||
| _GoodsMovementType | _GoodsMovementType | |||
| _GoodsMovementRefDocType | _GoodsMovementRefDocType | |||
| _InventorySpecialStockType | _InventorySpecialStockType | |||
| _InventoryValuationType | _InventoryValuationType | |||
| _DebitCreditCode | _DebitCreditCode | |||
| _SalesOrder | _SalesOrder | |||
| _SalesOrderItem | _SalesOrderItem | |||
| _WBSElement | _WBSElement | |||
| _EnterpriseProjectElement | _EnterpriseProjectElement | |||
| _PurchaseOrder | _PurchaseOrder | |||
| _PurchaseOrderItem | _PurchaseOrderItem | |||
| _Supplier | _Supplier | |||
| _SupplierCompanyByPlant | _SupplierCompanyByPlant | |||
| _GLAccount | _GLAccount | |||
| _ControllingArea | _ControllingArea | |||
| _Currency | _Currency |
@AbapCatalog.sqlViewName: 'IORDDOCDGMVT'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.modelingPattern: #NONE
@ObjectModel.supportedCapabilities: [#CDS_MODELING_DATA_SOURCE, #SQL_DATA_SOURCE]
@ObjectModel.usageType: {serviceQuality: #B, sizeCategory: #XL, dataClass: #TRANSACTIONAL}
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.viewType: #BASIC
@EndUserText.label: 'Documented Goods Movement of an Order'
/*+[hideWarning] { "IDS" : [ "CALCULATED_FIELD_CHECK", "CARDINALITY_CHECK" ] } */
define view I_OrderDocumentedGoodsMovement
as select from aufm as aufm
inner join aufk as aufk on aufm.aufnr = aufk.aufnr
association [1..1] to I_MaterialDocumentYear as _GoodsMovementYear on $projection.GoodsMovementYear = _GoodsMovementYear.MaterialDocumentYear
association [1..1] to I_MaterialDocumentHeader_2 as _GoodsMovementHeader on $projection.GoodsMovementYear = _GoodsMovementHeader.MaterialDocumentYear
and $projection.GoodsMovement = _GoodsMovementHeader.MaterialDocument
association [1..1] to I_MaterialDocumentItem_2 as _GoodsMovementItem on $projection.GoodsMovementYear = _GoodsMovementItem.MaterialDocumentYear
and $projection.GoodsMovement = _GoodsMovementItem.MaterialDocument
and $projection.GoodsMovementItem = _GoodsMovementItem.MaterialDocumentItem
association [0..1] to I_LogisticsOrder as _Order on $projection.OrderID = _Order.OrderID
association [0..1] to I_ProjectNetwork as _ProjectNetwork on $projection.ProjectNetwork = _ProjectNetwork.ProjectNetwork
association [1..1] to I_OrderType as _OrderType on $projection.OrderType = _OrderType.OrderType
association [1..1] to I_OrderCategory as _OrderCategory on $projection.OrderCategory = _OrderCategory.OrderCategory
association [1..1] to I_Plant as _OrderPlant on $projection.Plant = _OrderPlant.Plant
association [0..1] to I_CalendarDate as _DocumentDate on $projection.DocumentDate = _DocumentDate.CalendarDate
association [0..1] to I_CalendarDate as _PostingDate on $projection.PostingDate = _PostingDate.CalendarDate
association [0..1] to I_ReservationDocumentHeader as _Reservation on $projection.Reservation = _Reservation.Reservation
association [0..1] to I_ReservationDocumentItem as _ReservationItem on $projection.Reservation = _ReservationItem.Reservation
and $projection.ReservationItem = _ReservationItem.ReservationItem
and $projection.ReservationRecordType = _ReservationItem.RecordType
association [0..1] to I_ReservationDocRecordType as _ReservationRecordType on $projection.ReservationRecordType = _ReservationRecordType.RecordType
association [0..1] to I_Plant as _GoodsMovementPlant on $projection.GoodsMovementPlant = _GoodsMovementPlant.Plant
association [0..1] to I_Product as _Material on $projection.Material = _Material.Product
association [0..1] to I_UnitOfMeasure as _BaseUnit on $projection.BaseUnit = _BaseUnit.UnitOfMeasure
association [1..1] to I_UnitOfMeasure as _EntryUnit on $projection.EntryUnit = _EntryUnit.UnitOfMeasure
association [1..1] to I_GoodsMovementType as _GoodsMovementType on $projection.GoodsMovementType = _GoodsMovementType.GoodsMovementType
association [0..1] to I_GoodsMovementRefDocType as _GoodsMovementRefDocType on $projection.GoodsMovementRefDocType = _GoodsMovementRefDocType.GoodsMovementRefDocType
association [0..1] to I_InventorySpecialStockType as _InventorySpecialStockType on $projection.InventorySpecialStockType = _InventorySpecialStockType.InventorySpecialStockType
association [0..1] to I_InventoryValuationType as _InventoryValuationType on $projection.InventoryValuationType = _InventoryValuationType.InventoryValuationType
association [0..1] to I_DebitCreditCode as _DebitCreditCode on $projection.DebitCreditCode = _DebitCreditCode.DebitCreditCode
association [0..1] to I_StorageLocation as _StorageLocation on $projection.GoodsMovementPlant = _StorageLocation.Plant
and $projection.StorageLocation = _StorageLocation.StorageLocation
association [0..1] to I_Batch as _Batch on $projection.GoodsMovementPlant = _Batch.Plant
and $projection.Material = _Batch.Material
and $projection.Batch = _Batch.Batch
association [0..1] to I_SalesOrder as _SalesOrder on $projection.SalesOrder = _SalesOrder.SalesOrder
association [0..1] to I_SalesOrderItem as _SalesOrderItem on $projection.SalesOrder = _SalesOrderItem.SalesOrder
and $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem
association [0..1] to I_WBSElementBasicData as _WBSElement on $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID
association [0..1] to I_EnterpriseProjectElement as _EnterpriseProjectElement on $projection.WBSElementInternalID = _EnterpriseProjectElement.WBSElementInternalID
association [0..1] to I_PurchaseOrderAPI01 as _PurchaseOrder on $projection.PurchaseOrder = _PurchaseOrder.PurchaseOrder
association [0..1] to I_PurchaseOrderItemAPI01 as _PurchaseOrderItem on $projection.PurchaseOrder = _PurchaseOrderItem.PurchaseOrder
and $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem
association [0..1] to I_Supplier as _Supplier on $projection.Supplier = _Supplier.Supplier
association [0..1] to I_SupplierCompanyByPlant as _SupplierCompanyByPlant on $projection.GoodsMovementPlant = _SupplierCompanyByPlant.Plant
and $projection.Supplier = _SupplierCompanyByPlant.Supplier
association [0..1] to I_ControllingArea as _ControllingArea on $projection.ControllingArea = _ControllingArea.ControllingArea
association [0..*] to I_GLAccount as _GLAccount on $projection.GLAccount = _GLAccount.GLAccount
association [0..1] to I_Currency as _Currency on $projection.CompanyCodeCurrency = _Currency.Currency
{
// Key
@ObjectModel.foreignKey.association: '_GoodsMovementHeader'
key aufm.mblnr as GoodsMovement,
@ObjectModel.foreignKey.association: '_GoodsMovementYear'
key cast(aufm.mjahr as nsdm_mjahr preserving type) as GoodsMovementYear,
@ObjectModel.foreignKey.association: '_GoodsMovementItem'
key cast(aufm.zeile as nsdm_mblpo preserving type) as GoodsMovementItem,
// Order or Network
@ObjectModel.foreignKey.association: '_Order'
aufm.aufnr as OrderID,
@ObjectModel.foreignKey.association: '_ProjectNetwork'
aufm.nplnr as ProjectNetwork,
@ObjectModel.foreignKey.association: '_OrderCategory'
cast(aufk.autyp as pph_autyp preserving type) as OrderCategory,
@ObjectModel.foreignKey.association: '_OrderType'
aufk.auart as OrderType,
@ObjectModel.foreignKey.association: '_OrderPlant'
aufk.werks as Plant,
// Goods Movement data
@ObjectModel.foreignKey.association: '_Material'
cast(aufm.matnr as co_matnr preserving type) as Material,
@ObjectModel.foreignKey.association: '_GoodsMovementPlant'
aufm.werks as GoodsMovementPlant,
@ObjectModel.foreignKey.association: '_Reservation'
aufm.rsnum as Reservation,
@ObjectModel.foreignKey.association: '_ReservationItem'
cast(aufm.rspos as pph_rspos preserving type) as ReservationItem,
@ObjectModel.foreignKey.association: '_ReservationRecordType'
cast(aufm.rsart as pph_rsart preserving type) as ReservationRecordType,
aufm.kzear as ReservationIsFinallyIssued,
@ObjectModel.foreignKey.association: '_StorageLocation'
cast(aufm.lgort as pph_lgort preserving type) as StorageLocation,
@ObjectModel.foreignKey.association: '_Batch'
aufm.charg as Batch,
@ObjectModel.foreignKey.association: '_InventoryValuationType'
cast(aufm.bwtar as pph_bwtar preserving type) as InventoryValuationType,
@ObjectModel.foreignKey.association: '_DebitCreditCode'
cast(aufm.shkzg as pph_shkzg preserving type) as DebitCreditCode,
@ObjectModel.foreignKey.association: '_GoodsMovementType'
cast(aufm.bwart as pph_bwart preserving type) as GoodsMovementType,
@ObjectModel.foreignKey.association: '_GoodsMovementRefDocType'
cast(aufm.kzbew as pph_kzbew preserving type) as GoodsMovementRefDocType,
@ObjectModel.foreignKey.association: '_InventorySpecialStockType'
cast(aufm.sobkz as pph_sobkz preserving type) as InventorySpecialStockType,
@ObjectModel.foreignKey.association: '_SalesOrder'
cast(aufm.kdauf as co_kdauf preserving type) as SalesOrder,
@ObjectModel.foreignKey.association: '_SalesOrderItem'
cast(aufm.kdpos as co_kdpos preserving type) as SalesOrderItem,
@ObjectModel.foreignKey.association: '_WBSElement'
cast(aufm.ps_psp_pnr as ps_s4_pspnr preserving type) as WBSElementInternalID,
-- @ObjectModel.foreignKey.association: '_PurchaseOrder'
cast(aufm.ebeln as vdm_purchaseorder preserving type) as PurchaseOrder,
-- @ObjectModel.foreignKey.association: '_PurchaseOrderItem'
cast(aufm.ebelp as vdm_purchaseorderitem preserving type) as PurchaseOrderItem,
@ObjectModel.foreignKey.association: '_Supplier'
aufm.lifnr as Supplier,
@Semantics.text: true
cast(aufm.wempf as pph_wempf preserving type) as GoodsRecipientName,
@Semantics.text: true
aufm.ablad as UnloadingPointName,
cast(aufm.weunb as pph_weunb preserving type) as GoodsReceiptIsNonValuated,
aufm.elikz as GoodsReceiptIsCmpltlyDelivered,
// Assignments FI/CO
@ObjectModel.foreignKey.association: '_ControllingArea'
aufm.kokrs as ControllingArea,
-- @ObjectModel.foreignKey.association: '_GLAccount'
aufm.sakto as GLAccount,
// Dates
@Semantics.businessDate.at: true
aufm.budat as PostingDate,
aufm.bldat as DocumentDate,
// Quantities and UoM
@ObjectModel.foreignKey.association: '_BaseUnit'
@Semantics.unitOfMeasure: true
aufm.meins as BaseUnit,
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
@Aggregation.default: #SUM
cast(aufm.menge as vdm_pp_menge preserving type) as QuantityInBaseUnit,
@ObjectModel.foreignKey.association: '_EntryUnit'
@Semantics.unitOfMeasure: true
aufm.erfme as EntryUnit,
@Semantics.quantity.unitOfMeasure: 'EntryUnit'
@Aggregation.default: #SUM
cast(aufm.erfmg as pph_erfmg preserving type) as QuantityInEntryUnit,
// Amount and Currency
@ObjectModel.foreignKey.association: '_Currency'
@Semantics.currencyCode: true
aufm.waers as CompanyCodeCurrency,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
@Aggregation.default: #SUM
cast(aufm.dmbtr as pph_dmbtr preserving type) as TotalGoodsMvtAmtInCCCrcy,
// Associations
_GoodsMovementYear,
_GoodsMovementHeader,
_GoodsMovementItem,
_Order,
_ProjectNetwork,
_OrderCategory,
_OrderType,
_OrderPlant,
_DocumentDate,
_PostingDate,
_Material,
_GoodsMovementPlant,
_Reservation,
_ReservationItem,
_ReservationRecordType,
_StorageLocation,
_Batch,
_BaseUnit,
_EntryUnit,
_GoodsMovementType,
_GoodsMovementRefDocType,
_InventorySpecialStockType,
_InventoryValuationType,
_DebitCreditCode,
_SalesOrder,
_SalesOrderItem,
_WBSElement,
_EnterpriseProjectElement,
_PurchaseOrder,
_PurchaseOrderItem,
_Supplier,
@Consumption.hidden: true
_SupplierCompanyByPlant,
_GLAccount,
_ControllingArea,
_Currency
};
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA