@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@Metadata.ignorePropagatedAnnotations: true
@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 a Manufacturing Order'
/*+[hideWarning] { "IDS" : [ "CALCULATED_FIELD_CHECK" ] } */
define view entity I_MfgOrderDocdGoodsMovement
as select from I_OrderDocumentedGoodsMovement
association [1..1] to I_ManufacturingOrder as _MfgOrder on $projection.ManufacturingOrder = _MfgOrder.ManufacturingOrder
association [1..1] to I_MfgOrderCategory as _MfgOrderCategory on $projection.ManufacturingOrderCategory = _MfgOrderCategory.ManufacturingOrderCategory
association [1..1] to I_MfgOrderType as _MfgOrderType on $projection.ManufacturingOrderType = _MfgOrderType.ManufacturingOrderType
association [1..1] to I_Plant as _ProductionPlant on $projection.ProductionPlant = _ProductionPlant.Plant
association [0..1] to I_Batch as _Batch on $projection.GoodsMovementPlant = _Batch.Plant
and $projection.Material = _Batch.Material
and $projection.Batch = _Batch.Batch
{
// Key
@ObjectModel.foreignKey.association: '_GoodsMovementHeader'
key GoodsMovement,
@ObjectModel.foreignKey.association: '_GoodsMovementYear'
key GoodsMovementYear,
@ObjectModel.foreignKey.association: '_GoodsMovementItem'
key GoodsMovementItem,
// Order data
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderStdVH', element: 'ManufacturingOrder' } } ]
@ObjectModel.foreignKey.association: '_MfgOrder'
cast(OrderID as manufacturingorder preserving type) as ManufacturingOrder,
@ObjectModel.foreignKey.association: '_MfgOrderCategory'
OrderCategory as ManufacturingOrderCategory,
@ObjectModel.foreignKey.association: '_MfgOrderType'
cast(OrderType as manufacturingordertype preserving type) as ManufacturingOrderType,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant' } } ]
@ObjectModel.foreignKey.association: '_ProductionPlant'
cast(Plant as pwwrk preserving type) as ProductionPlant,
// Goods Movement data
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductStdVH', element: 'Product' } } ]
@ObjectModel.foreignKey.association: '_Material'
Material,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant' } } ]
@ObjectModel.foreignKey.association: '_GoodsMovementPlant'
GoodsMovementPlant,
@ObjectModel.foreignKey.association: '_Reservation'
Reservation,
@ObjectModel.foreignKey.association: '_ReservationItem'
ReservationItem,
@ObjectModel.foreignKey.association: '_ReservationRecordType'
ReservationRecordType,
ReservationIsFinallyIssued,
@ObjectModel.foreignKey.association: '_StorageLocation'
StorageLocation,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_BatchStdVH', element: 'Batch' } } ]
@ObjectModel.foreignKey.association: '_Batch'
Batch,
@ObjectModel.foreignKey.association: '_InventoryValuationType'
InventoryValuationType,
@ObjectModel.foreignKey.association: '_DebitCreditCode'
DebitCreditCode,
@ObjectModel.foreignKey.association: '_GoodsMovementType'
GoodsMovementType,
@ObjectModel.foreignKey.association: '_GoodsMovementRefDocType'
GoodsMovementRefDocType,
@ObjectModel.foreignKey.association: '_InventorySpecialStockType'
InventorySpecialStockType,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_SalesOrderStdVH', element: 'SalesOrder' } } ]
@ObjectModel.foreignKey.association: '_SalesOrder'
SalesOrder,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_SalesOrderItemStdVH', element: 'SalesOrderItem' } } ]
@ObjectModel.foreignKey.association: '_SalesOrderItem'
SalesOrderItem,
@ObjectModel.foreignKey.association: '_WBSElement'
WBSElementInternalID,
-- @ObjectModel.foreignKey.association: '_PurchaseOrder'
PurchaseOrder,
-- @ObjectModel.foreignKey.association: '_PurchaseOrderItem'
PurchaseOrderItem,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_Supplier_VH', element: 'Supplier' } } ]
@ObjectModel.foreignKey.association: '_Supplier'
Supplier,
@Semantics.text: true
GoodsRecipientName,
@Semantics.text: true
UnloadingPointName,
GoodsReceiptIsNonValuated,
GoodsReceiptIsCmpltlyDelivered,
// Assignments FI/CO
@ObjectModel.foreignKey.association: '_ControllingArea'
ControllingArea,
-- @ObjectModel.foreignKey.association: '_GLAccount'
GLAccount,
// Dates
@Semantics.businessDate.at: true
PostingDate,
@Semantics.businessDate.at: true
DocumentDate,
// Quantities and UoM
BaseUnit,
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
@Aggregation.default: #SUM
QuantityInBaseUnit,
EntryUnit,
@Semantics.quantity.unitOfMeasure: 'EntryUnit'
@Aggregation.default: #SUM
QuantityInEntryUnit,
// Amount and Currency
CompanyCodeCurrency,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
@Aggregation.default: #SUM
TotalGoodsMvtAmtInCCCrcy,
// Associations
_GoodsMovementYear,
_GoodsMovementHeader,
_GoodsMovementItem,
@ObjectModel.association.type: [#TO_COMPOSITION_ROOT, #TO_COMPOSITION_PARENT]
_MfgOrder,
_MfgOrderCategory,
_MfgOrderType,
_ProductionPlant,
_DocumentDate,
_PostingDate,
_Material,
_GoodsMovementPlant,
_Reservation,
_ReservationItem,
_ReservationRecordType,
_StorageLocation,
_Batch,
_BaseUnit,
_EntryUnit,
_GoodsMovementType,
_GoodsMovementRefDocType,
_InventorySpecialStockType,
_InventoryValuationType,
_DebitCreditCode,
_SalesOrder,
_SalesOrderItem,
_WBSElement,
_PurchaseOrder,
_PurchaseOrderItem,
_Supplier,
@Consumption.hidden: true
_SupplierCompanyByPlant,
_GLAccount,
_ControllingArea,
_Currency
}
where ( OrderCategory = '10' or
OrderCategory = '40' ); //Manufacturing orders only
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ORDERDOCUMENTEDGOODSMOVEMENT"
],
"ASSOCIATED":
[
"I_BATCH",
"I_CALENDARDATE",
"I_CONTROLLINGAREA",
"I_CURRENCY",
"I_DEBITCREDITCODE",
"I_GLACCOUNT",
"I_GOODSMOVEMENTREFDOCTYPE",
"I_GOODSMOVEMENTTYPE",
"I_INVENTORYSPECIALSTOCKTYPE",
"I_INVENTORYVALUATIONTYPE",
"I_MANUFACTURINGORDER",
"I_MATERIALDOCUMENTHEADER_2",
"I_MATERIALDOCUMENTITEM_2",
"I_MATERIALDOCUMENTYEAR",
"I_MFGORDERCATEGORY",
"I_MFGORDERTYPE",
"I_PLANT",
"I_PRODUCT",
"I_PURCHASEORDERAPI01",
"I_PURCHASEORDERITEMAPI01",
"I_RESERVATIONDOCRECORDTYPE",
"I_RESERVATIONDOCUMENTHEADER",
"I_RESERVATIONDOCUMENTITEM",
"I_SALESORDER",
"I_SALESORDERITEM",
"I_STORAGELOCATION",
"I_SUPPLIER",
"I_SUPPLIERCOMPANYBYPLANT",
"I_UNITOFMEASURE",
"I_WBSELEMENTBASICDATA"
],
"BASE":
[
"I_ORDERDOCUMENTEDGOODSMOVEMENT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/