I_OrderDocumentedGoodsMovement

DDL: I_ORDERDOCUMENTEDGOODSMOVEMENT SQL: IORDDOCDGMVT Type: view BASIC Package: VDM_PP_SFC

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.

Data Sources (2)

SourceAliasJoin Type
aufk aufk inner
aufm aufm from

Associations (35)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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
};