I_GoodsMovementDocument

DDL: I_GOODSMOVEMENTDOCUMENT Type: view_entity BASIC Package: MM_IM_VDM_STOCK

Goods Movements

I_GoodsMovementDocument is a Basic CDS View that provides data about "Goods Movements" in SAP S/4HANA. It reads from 1 data source (I_MaterialDocumentRecord) and exposes 174 fields with key fields MaterialDocumentYear, MaterialDocument, MaterialDocumentItem, MaterialDocumentRecordType. It has 4 associations to related views. Part of development package MM_IM_VDM_STOCK.

Data Sources (1)

SourceAliasJoin Type
I_MaterialDocumentRecord I_MaterialDocumentRecord from

Associations (4)

CardinalityTargetAliasCondition
[1..1] I_StockChangeCategory _StockChangeCategory $projection.StockChangeCategory = _StockChangeCategory.StockChangeCategory
[0..1] I_Plant _IssuingOrReceivingPlant $projection.IssuingOrReceivingPlant = _IssuingOrReceivingPlant.Plant
[0..1] I_InventorySpecialStockType _IssgOrRcvgSpclStockInd $projection.IssgOrRcvgSpclStockInd = _IssgOrRcvgSpclStockInd.InventorySpecialStockType
[0..1] I_InventoryStockType _IssuingOrReceivingStockType $projection.IssuingOrReceivingStockType = _IssuingOrReceivingStockType.InventoryStockType

Annotations (8)

NameValueLevelField
EndUserText.label Goods Movements view
AccessControl.authorizationCheck #CHECK view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.viewType #BASIC view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
Metadata.ignorePropagatedAnnotations true view

Fields (174)

KeyFieldSource TableSource FieldDescription
KEY MaterialDocumentYear MaterialDocumentYear
KEY MaterialDocument MaterialDocument
KEY MaterialDocumentItem MaterialDocumentItem
KEY MaterialDocumentRecordType MaterialDocumentRecordType
Plant Plant
StorageLocation StorageLocation
Material Material
Batch Batch
InventorySpecialStockType InventorySpecialStockType
InventoryStockType InventoryStockType
StockOwner StockOwner
CompanyCode CompanyCode
InventorySpecialStockValnType InventorySpecialStockValnType
CompanyCodeCurrency CompanyCodeCurrency
MaterialBaseUnit MaterialBaseUnit
EntryUnit EntryUnit
IsReversalMovementType IsReversalMovementType
MaterialDocumentPostingType MaterialDocumentPostingType
InventoryTransactionType InventoryTransactionType
ConsumptionPosting ConsumptionPosting
GoodsReceiptType GoodsReceiptType
IssuingOrReceivingPlant
IssuingOrReceivingStorageLoc IssuingOrReceivingStorageLoc
IssgOrRcvgMaterial IssgOrRcvgMaterial
IssgOrRcvgBatch IssgOrRcvgBatch
IssgOrRcvgSpclStockInd
IssuingOrReceivingStockType
IssuingOrReceivingValType IssuingOrReceivingValType
ResourceID
IssgOrRcvgResourceID
GoodsMovementIsCancelled GoodsMovementIsCancelled
GoodsMovementCancellationType GoodsMovementCancellationType
ReversedMaterialDocument ReversedMaterialDocument
ReversedMaterialDocumentItem ReversedMaterialDocumentItem
ReversedMaterialDocumentYear ReversedMaterialDocumentYear
DocumentDate DocumentDate
AccountingDocumentType AccountingDocumentType
CreationDate CreationDate
CreationTime CreationTime
PostingDate PostingDate
FiscalYearVariant FiscalYearVariant
FiscalYear FiscalYear
FiscalYearPeriod FiscalYearPeriod
YearDay YearDay
YearWeek YearWeek
YearMonth YearMonth
YearQuarter YearQuarter
CalendarQuarter CalendarQuarter
CalendarMonth CalendarMonth
CalendarWeek CalendarWeek
CalendarDay CalendarDay
WeekDay WeekDay
SalesOrder SalesOrder
SalesOrderItem SalesOrderItem
SalesOrderScheduleLine SalesOrderScheduleLine
PurchaseOrder PurchaseOrder
PurchaseOrderItem
ProjectNetwork ProjectNetwork
DeliveryDocument DeliveryDocument
DeliveryDocumentItem
WBSElementInternalID WBSElementInternalID
ManufacturingOrder ManufacturingOrder
ManufacturingOrderItem ManufacturingOrderItem
SpecialStockIdfgSalesOrder SpecialStockIdfgSalesOrder
SpecialStockIdfgSalesOrderItem SpecialStockIdfgSalesOrderItem
SpecialStockIdfgWBSElement SpecialStockIdfgWBSElement
ReferenceDocument ReferenceDocument
GoodsIssueOrReceiptSlipNumber GoodsIssueOrReceiptSlipNumber
ReferenceDocumentFiscalYear ReferenceDocumentFiscalYear
InvtryMgmtRefDocumentItem InvtryMgmtRefDocumentItem
InvtryMgmtReferenceDocument InvtryMgmtReferenceDocument
InventoryUsabilityCode InventoryUsabilityCode
EWMWarehouse EWMWarehouse
EWMStorageBin EWMStorageBin
GoodsMovementType GoodsMovementType
InventoryValuationType InventoryValuationType
CreatedByUser CreatedByUser
Supplier Supplier
Customer Customer
IsMaterialDocumentHeader IsMaterialDocumentHeader
MaterialDocumentHeaderText MaterialDocumentHeaderText
MaterialDocumentItemText MaterialDocumentItemText
IsCompletelyDelivered IsCompletelyDelivered
GoodsRecipientName GoodsRecipientName
UnloadingPointName UnloadingPointName
GoodsMovementRefDocType GoodsMovementRefDocType
GoodsMovementReasonCode GoodsMovementReasonCode
ShelfLifeExpirationDate ShelfLifeExpirationDate
ManufactureDate ManufactureDate
SerialNumbersAreCreatedAutomly SerialNumbersAreCreatedAutomly
VersionForPrintingSlip VersionForPrintingSlip
ManualPrintIsTriggered ManualPrintIsTriggered
CtrlPostgForExtWhseMgmtSyst CtrlPostgForExtWhseMgmtSyst
AccountAssignmentCategory AccountAssignmentCategory
CostCenter CostCenter
ControllingArea ControllingArea
CostObject CostObject
GLAccount GLAccount
FunctionalArea FunctionalArea
ProfitabilitySegment ProfitabilitySegment
ProfitabilitySegment_2 ProfitabilitySegment_2
ProfitCenter ProfitCenter
MasterFixedAsset MasterFixedAsset
FixedAsset FixedAsset
FundsCenter FundsCenter
Fund Fund
CommitmentItem CommitmentItem
CommitmentItemShortID CommitmentItemShortID
GrantID GrantID
Reservation Reservation
ReservationItem ReservationItem
ReservationItemRecordType ReservationRecordType
ReservationIsFinallyIssued ReservationIsFinallyIssued
DebitCreditCode DebitCreditCode
TotalGoodsMvtAmtInCCCrcy TotalGoodsMvtAmtInCCCrcy
GoodsMovementStkAmtInCCCrcy GoodsMovementStkAmtInCCCrcy
GoodsMvtCnsmpnAmtInCCCrcy GoodsMvtCnsmpnAmtInCCCrcy
GdsMvtExtAmtInCoCodeCrcy GdsMvtExtAmtInCoCodeCrcy
SlsPrcAmtInclVATInCoCodeCrcy SlsPrcAmtInclVATInCoCodeCrcy
EnteredSlsAmtInCoCodeCrcy EnteredSlsAmtInCoCodeCrcy
MatlStkChangeQtyInBaseUnit MatlStkChangeQtyInBaseUnit
MatlCnsmpnQtyInMatlBaseUnit MatlCnsmpnQtyInMatlBaseUnit
QuantityInBaseUnit QuantityInBaseUnit
QuantityInEntryUnit QuantityInEntryUnit
GoodsReceiptQtyInOrderUnit GoodsReceiptQtyInOrderUnit
TransactionCode TransactionCode
IsAutomaticallyCreated IsAutomaticallyCreated
MaterialDocumentLine MaterialDocumentLine
MaterialDocumentParentLine MaterialDocumentParentLine
HierarchyNodeLevel HierarchyNodeLevel
_Plant _Plant
_StorageLocation _StorageLocation
_Material _Material
_InventorySpecialStockType _InventorySpecialStockType
_InventoryStockType _InventoryStockType
_Supplier _Supplier
_Customer _Customer
_SupplierCompanyByPlant _SupplierCompanyByPlant
_CustomerCompanyByPlant _CustomerCompanyByPlant
_BPStockOwner _BPStockOwner
_IssgOrRcvgMaterial _IssgOrRcvgMaterial
_IssuingOrReceivingPlant _IssuingOrReceivingPlant
_IssuingOrReceivingStorageLoc _IssuingOrReceivingStorageLoc
_IssgOrRcvgSpclStockInd _IssgOrRcvgSpclStockInd
_IssuingOrReceivingStockType _IssuingOrReceivingStockType
_CostCenter _CostCenter
_ControllingArea _ControllingArea
_AccountAssignmentCategory _AccountAssignmentCategory
_FunctionalArea _FunctionalArea
_ProfitCenter _ProfitCenter
_GLAccount _GLAccount
_GoodsMovementType _GoodsMovementType
_GoodsMovementReasonCode _GoodsMovementReasonCode
_InventoryValuationType _InventoryValuationType
_CompanyCode _CompanyCode
_SalesOrder _SalesOrder
_SalesOrderItem _SalesOrderItem
_SalesOrderScheduleLine _SalesOrderScheduleLine
_PurchaseOrder _PurchaseOrder
_PurchaseOrderItem _PurchaseOrderItem
_DeliveryDocument _DeliveryDocument
_DeliveryDocumentItem _DeliveryDocumentItem
_WBSElement _WBSElement
_MfgOrder _MfgOrder
_MfgOrderItem _MfgOrderItem
_SpecialStockIdfgWBSElement _SpecialStockIdfgWBSElement
_Currency _Currency
_MaterialBaseUnit _MaterialBaseUnit
_EntryUnit _EntryUnit
_StockChangeCategory _StockChangeCategory
_AccountingDocumentType _AccountingDocumentType
_ResourceBasic _ResourceBasic
_IssgOrRcvgResourceBasic _IssgOrRcvgResourceBasic
_CancelationType _CancelationType
@EndUserText.label: 'Goods Movements'
@AccessControl.authorizationCheck: #CHECK
@ObjectModel: {
                usageType: {
                             sizeCategory: #XXL,
                             serviceQuality: #C,
                             dataClass:#TRANSACTIONAL
                           }
              }
@VDM: {
        viewType: #BASIC,
        lifecycle.contract.type: #PUBLIC_LOCAL_API
      }
@Metadata.ignorePropagatedAnnotations: true

define view entity I_GoodsMovementDocument
  as select from I_MaterialDocumentRecord
  association [1..1] to I_StockChangeCategory       as _StockChangeCategory         on $projection.StockChangeCategory = _StockChangeCategory.StockChangeCategory
  // The following associations are only required because of the CAST workaround below. Can be removed once MATDOC uses the correct data type.

  association [0..1] to I_Plant                     as _IssuingOrReceivingPlant     on $projection.IssuingOrReceivingPlant = _IssuingOrReceivingPlant.Plant
  association [0..1] to I_InventorySpecialStockType as _IssgOrRcvgSpclStockInd      on $projection.IssgOrRcvgSpclStockInd = _IssgOrRcvgSpclStockInd.InventorySpecialStockType
  association [0..1] to I_InventoryStockType        as _IssuingOrReceivingStockType on $projection.IssuingOrReceivingStockType = _IssuingOrReceivingStockType.InventoryStockType
{

      @Semantics.calendar.year: true
  key MaterialDocumentYear,
  key MaterialDocument,
  key MaterialDocumentItem,
  key MaterialDocumentRecordType,

      Plant,
      StorageLocation,
      Material,
      Batch,
      InventorySpecialStockType,
      InventoryStockType,
      StockOwner,
      CompanyCode,
      InventorySpecialStockValnType,
      CompanyCodeCurrency,
      MaterialBaseUnit,
      EntryUnit,
      IsReversalMovementType,
      MaterialDocumentPostingType,
      InventoryTransactionType,
      ConsumptionPosting, //2908362

      GoodsReceiptType,   //2908362


      // Stock Transfers

      cast(IssuingOrReceivingPlant as nsdm_umwrk preserving type)               as IssuingOrReceivingPlant, // remove cast once MATDOC data type is changed

      IssuingOrReceivingStorageLoc,
      IssgOrRcvgMaterial,
      IssgOrRcvgBatch,
      cast (IssgOrRcvgSpclStockInd as nsdm_umsok preserving type)               as IssgOrRcvgSpclStockInd, // remove cast once MATDOC data type is changed

      cast (IssuingOrReceivingStockType as nsdm_lbbsa_cid preserving type)      as IssuingOrReceivingStockType,
      IssuingOrReceivingValType,

      cast(ResourceID           as nsdm_resourcename          preserving type ) as ResourceID,
      cast(IssgOrRcvgResourceID as nsdm_transfer_resourcename preserving type ) as IssgOrRcvgResourceID,

      // Cancellation information

      GoodsMovementIsCancelled,
      GoodsMovementCancellationType,
      ReversedMaterialDocument,
      ReversedMaterialDocumentItem,
      ReversedMaterialDocumentYear,

      // Periods & Times

      @Semantics.businessDate.at: true
      DocumentDate,
      AccountingDocumentType,
      CreationDate,
      CreationTime,

      PostingDate,
      @Semantics.fiscal.yearVariant: true
      FiscalYearVariant,
      FiscalYear,
      @Semantics.fiscal.yearPeriod: true
      FiscalYearPeriod,
      YearDay,
      @Semantics.calendar.yearWeek: true
      YearWeek,
      @Semantics.calendar.yearMonth: true
      YearMonth,
      @Semantics.calendar.yearQuarter: true
      YearQuarter,
      @Semantics.calendar.quarter: true
      CalendarQuarter,
      @Semantics.calendar.month: true
      CalendarMonth,
      @Semantics.calendar.week: true
      CalendarWeek,
      @Semantics.calendar.dayOfYear: true
      CalendarDay,
      WeekDay,

      // Reference Documents

      SalesOrder,
      SalesOrderItem,
      SalesOrderScheduleLine,
      PurchaseOrder,
      cast(PurchaseOrderItem as nsdm_ebelp preserving type)                     as PurchaseOrderItem,
      ProjectNetwork,
      DeliveryDocument,
      cast(DeliveryDocumentItem as nsdm_posnr_vl preserving type)               as DeliveryDocumentItem,
      WBSElementInternalID,
      ManufacturingOrder,
      ManufacturingOrderItem,
      SpecialStockIdfgSalesOrder,
      SpecialStockIdfgSalesOrderItem,
      SpecialStockIdfgWBSElement,
      ReferenceDocument,
      GoodsIssueOrReceiptSlipNumber,

      ReferenceDocumentFiscalYear,
      InvtryMgmtRefDocumentItem,
      InvtryMgmtReferenceDocument,

      // Stock Type

      InventoryUsabilityCode,

      // EWM Data

      EWMWarehouse,
      EWMStorageBin,

      // Other

      GoodsMovementType,
      InventoryValuationType,
      CreatedByUser,
      Supplier,
      Customer,
      IsMaterialDocumentHeader,
      MaterialDocumentHeaderText,
      MaterialDocumentItemText,
      IsCompletelyDelivered,
      GoodsRecipientName,
      UnloadingPointName,
      GoodsMovementRefDocType,
      GoodsMovementReasonCode,
      ShelfLifeExpirationDate,
      ManufactureDate,
      SerialNumbersAreCreatedAutomly,
      VersionForPrintingSlip,
      @Semantics.booleanIndicator: true
      ManualPrintIsTriggered,
      CtrlPostgForExtWhseMgmtSyst,

      // Accounting information

      AccountAssignmentCategory,
      CostCenter,
      ControllingArea, // required to fulfill requirement to expose the full key (for cost center association)

      CostObject,
      GLAccount,
      FunctionalArea,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: 'ProfitabilitySegment_2'
      ProfitabilitySegment,
      ProfitabilitySegment_2,
      ProfitCenter,

      MasterFixedAsset,
      FixedAsset,
      FundsCenter,
      Fund,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: 'CommitmentItemShortID'
      CommitmentItem,
      CommitmentItemShortID,
      GrantID,

      // Reservation

      Reservation,
      ReservationItem,
      ReservationRecordType                                                     as ReservationItemRecordType,
      ReservationIsFinallyIssued,

      DebitCreditCode,

      // Amounts

      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      @DefaultAggregation: #NONE
      TotalGoodsMvtAmtInCCCrcy,
      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      @DefaultAggregation: #NONE
      GoodsMovementStkAmtInCCCrcy,
      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      @DefaultAggregation: #NONE
      GoodsMvtCnsmpnAmtInCCCrcy,
      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      @DefaultAggregation: #NONE
      GdsMvtExtAmtInCoCodeCrcy,
      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      @DefaultAggregation: #NONE
      SlsPrcAmtInclVATInCoCodeCrcy,
      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      @DefaultAggregation: #NONE
      EnteredSlsAmtInCoCodeCrcy,

      // Quantities

      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      @DefaultAggregation: #NONE
      MatlStkChangeQtyInBaseUnit,
      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      @DefaultAggregation: #NONE
      MatlCnsmpnQtyInMatlBaseUnit,
      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      @DefaultAggregation: #NONE
      QuantityInBaseUnit,
      @Semantics.quantity.unitOfMeasure: 'ENTRYUNIT'
      @DefaultAggregation: #NONE
      QuantityInEntryUnit,
      @Semantics.quantity.unitOfMeasure: 'ENTRYUNIT'
      @DefaultAggregation: #NONE  //2813353

      GoodsReceiptQtyInOrderUnit, //2813353


      @Consumption.hidden: true
      TransactionCode,
      @Consumption.hidden: true
      @Semantics.booleanIndicator: true
      IsAutomaticallyCreated,
      @Consumption.hidden: true
      MaterialDocumentLine,
      @Consumption.hidden: true
      MaterialDocumentParentLine,
      @Consumption.hidden: true
      HierarchyNodeLevel,

      // Classifications

      @ObjectModel.foreignKey.association: '_StockChangeCategory'
      cast(case when MatlStkChangeQtyInBaseUnit > 0 and IsReversalMovementType = '' or
                MatlStkChangeQtyInBaseUnit < 0 and IsReversalMovementType = 'X'
        then 'GR'
        else case
           when MatlStkChangeQtyInBaseUnit < 0 and IsReversalMovementType = '' or
                MatlStkChangeQtyInBaseUnit > 0 and IsReversalMovementType = 'X'
           then 'GI'
           else '' end
      end as nsdm_stock_change_category preserving type)                        as StockChangeCategory,

      cast( case when GoodsMovementIsCancelled <> 'X' and
                      GoodsMovementCancellationType <> '2' and
                      GoodsMovementCancellationType <> '3'
                 then 'X'
                 else ''
      end as nsdm_is_effective_goods_mvt preserving type)                       as IsEffectiveGoodsMovement,

      cast(case when MatlCnsmpnQtyInMatlBaseUnit > 0 and IsReversalMovementType = '' or
                MatlCnsmpnQtyInMatlBaseUnit < 0 and IsReversalMovementType = 'X'
        then 'X'
        else ''
      end as nsdm_is_consumption_mvt preserving type)                           as IsConsumptionMovement,

      cast(case when IssuingOrReceivingPlant <> '' and IssuingOrReceivingPlant <> Plant
        then 'X'
        else ''
      end as nsdm_cross_plant_transfer preserving type)                         as IsCrossPlantTransfer,

      cast(case when IssuingOrReceivingPlant <> '' and IssuingOrReceivingStorageLoc <> StorageLocation
        then 'X'
        else ''
      end as nsdm_sloc_change_by_transfer preserving type)                      as IsStorageLocChangeByTransf,

      cast(case when IssuingOrReceivingPlant <> '' and IssgOrRcvgMaterial <> Material
        then 'X'
        else ''
      end as nsdm_material_change_by_trans preserving type)                     as IsMaterialChangeByTransf,

      cast(case when IssuingOrReceivingPlant <> '' and IssgOrRcvgBatch <> Batch
        then 'X'
        else ''
      end as nsdm_batch_change_by_transf preserving type)                       as IsBatchChangeByTransf,

      cast(case when IssuingOrReceivingPlant <> '' and IssgOrRcvgSpclStockInd <> InventorySpecialStockType
        then 'X'
        else ''
      end as nsdm_sobkz_change_by_transf preserving type)                       as IsSpclStkTypeChangeByTransf,

      cast(case when IssuingOrReceivingStockType <> '' and IssuingOrReceivingStockType <> InventoryStockType
        then 'X'
        else ''
      end as nsdm_lbbsa_change_by_transf preserving type)                       as IsStockTypeChangeByTransf,

      // Associations

      _Plant,
      _StorageLocation,
      _Material,
      _InventorySpecialStockType,
      _InventoryStockType,
      _Supplier,
      _Customer,
      @Consumption.hidden: true
      _SupplierCompanyByPlant,
      @Consumption.hidden: true
      _CustomerCompanyByPlant,
      _BPStockOwner,
      _IssgOrRcvgMaterial,
      _IssuingOrReceivingPlant,
      _IssuingOrReceivingStorageLoc,
      _IssgOrRcvgSpclStockInd,
      _IssuingOrReceivingStockType,
      _CostCenter,
      _ControllingArea,
      _AccountAssignmentCategory,
      _FunctionalArea,
      _ProfitCenter,
      _GLAccount,
      _GoodsMovementType,
      _GoodsMovementReasonCode,
      _InventoryValuationType,
      _CompanyCode,
      _SalesOrder,
      _SalesOrderItem,
      _SalesOrderScheduleLine,
      _PurchaseOrder,
      _PurchaseOrderItem,
      _DeliveryDocument,
      _DeliveryDocumentItem,
      _WBSElement,
      _MfgOrder,
      _MfgOrderItem,
      _SpecialStockIdfgWBSElement,
      _Currency,
      _MaterialBaseUnit,
      _EntryUnit,
      _StockChangeCategory,
      _AccountingDocumentType,
      _ResourceBasic,
      _IssgOrRcvgResourceBasic,
      _CancelationType
}
where
     MaterialDocumentRecordType = 'MDOC'
  or MaterialDocumentRecordType = 'MDOC_CP'