C_MfgOpInProgressNotOnHold is a Consumption CDS View that provides data about "Operation In Progress not on Hold" in SAP S/4HANA. It reads from 3 data sources (I_OrderOperation, I_MfgOrderBasic, I_OrderItem) and exposes 12 fields with key fields OrderInternalBillOfOperations, OrderIntBillOfOperationsItem. It has 4 associations to related views.
@AbapCatalog.viewEnhancementCategory: [#NONE]@AccessControl.authorizationCheck: #MANDATORY@EndUserText.label: 'Operation In Progress noton Hold'
@Metadata.ignorePropagatedAnnotations: true@ObjectModel.usageType:{
serviceQuality: #D,
sizeCategory: #L,
dataClass: #MIXED
}@VDM.viewType: #CONSUMPTIONdefineviewentity C_MfgOpInProgressNotOnHold
asselectfrom I_OrderOperation as afvg
innerjoin I_MfgOrderBasic as aufv on aufv.OrderInternalID = afvg.OrderInternalID
innerjoin I_OrderItem as OrderItem on OrderItem.OrderID = aufv.ManufacturingOrder
and OrderItem.OrderItem = '0001'
leftouter to one join I_StatusObjectStatusBasic as DeletedOperation on DeletedOperation.StatusObject = afvg.ObjectInternalID
and DeletedOperation.StatusCode = 'I0013'
and DeletedOperation.StatusIsInactive = ''
leftouter to one join I_StatusObjectStatusBasic as PartiallyConfirmedOperation on PartiallyConfirmedOperation.StatusObject = afvg.ObjectInternalID
and PartiallyConfirmedOperation.StatusCode = 'I0010'
and PartiallyConfirmedOperation.StatusIsInactive = ''
leftouter to one join I_StatusObjectStatusBasic as FinallyConfirmedOperation on FinallyConfirmedOperation.StatusObject = afvg.ObjectInternalID
and FinallyConfirmedOperation.StatusCode = 'I0009'
and FinallyConfirmedOperation.StatusIsInactive = ''
leftouter to one join I_StatusObjectStatusBasic as ClosedOperation on ClosedOperation.StatusObject = afvg.ObjectInternalID
and ClosedOperation.StatusCode = 'I0046'
and ClosedOperation.StatusIsInactive = ''
-- Joins for holds: For performance reasons each hold type is joined separetly here
leftouter to one join P_MatlNmbrOfProdnHolds as MatlNmbrOfProdnHolds on MatlNmbrOfProdnHolds.Material = OrderItem.Material
leftouter to one join P_WrkCtrNmbrOfProdnHolds as WrkCtrNmbrOfProdnHolds on WrkCtrNmbrOfProdnHolds.WorkCenterInternalID = afvg.WorkCenterInternalID
and WrkCtrNmbrOfProdnHolds.WorkCenterTypeCode = afvg.WorkCenterTypeCode
leftouter to one join P_OrderNmbrOfProdnHolds as OrderNmbrOfProdnHolds on OrderNmbrOfProdnHolds.ManufacturingOrder = aufv.ManufacturingOrder
leftouter to one join P_OperNmbrOfProdnHolds as OperNmbrOfProdnHolds on OperNmbrOfProdnHolds.OrderInternalID = afvg.OrderInternalID
and OperNmbrOfProdnHolds.OrderOperationInternalID = afvg.OrderOperationInternalID
leftouter to one join P_MfgOrderOpNmbrOfOpActyOnHold as MfgOrderOpNmbrOfOpActyOnHold on MfgOrderOpNmbrOfOpActyOnHold.OrderInternalID = afvg.OrderInternalID
and MfgOrderOpNmbrOfOpActyOnHold.OrderOperationInternalID = afvg.OrderOperationInternalID
association [1..1] to I_OrderInternalID as _OrdInternalBillOfOperations on $projection.OrderInternalBillOfOperations = _OrdInternalBillOfOperations.OrderInternalID
association [1..1] to I_Plant as _ProductionPlant on $projection.ProductionPlant = _ProductionPlant.Plant
association [0..1] to I_WorkCenter as _WorkCenter on $projection.WorkCenterTypeCode = _WorkCenter.WorkCenterTypeCode
and $projection.WorkCenterInternalID = _WorkCenter.WorkCenterInternalID
association [0..1] to I_WorkCenterType as _WorkCenterType on $projection.WorkCenterTypeCode = _WorkCenterType.WorkCenterTypeCode
{
@ObjectModel.foreignKey.association: '_OrdInternalBillOfOperations'
keycast(afvg.OrderInternalID as pph_aufpl preserving type) as OrderInternalBillOfOperations,
keycast(afvg.OrderOperationInternalID as operationinternalid preserving type) as OrderIntBillOfOperationsItem,
aufv.ManufacturingOrderCategory as ManufacturingOrderCategory,
aufv.ManufacturingOrderType as ManufacturingOrderType,
aufv.Reservation as Reservation,
@ObjectModel.foreignKey.association: '_ProductionPlant'
cast(afvg.Plant as pwwrk preserving type) as ProductionPlant,
@ObjectModel.foreignKey.association: '_WorkCenter'
cast(afvg.WorkCenterInternalID as pph_arbid preserving type) as WorkCenterInternalID,
@ObjectModel.foreignKey.association: '_WorkCenterType'
afvg.WorkCenterTypeCode_2 as WorkCenterTypeCode,
_OrdInternalBillOfOperations,
_ProductionPlant,
_WorkCenter,
_WorkCenterType
}
where
afvg.OperationIsToBeDeleted = '' //Non-deleted operations only
and aufv.MfgOrderIsToBeDeleted = '' //from non-deleted orders only
and aufv.ManufacturingOrderCategory = '10'
and DeletedOperation.StatusCode isnulland ClosedOperation.StatusCode isnulland PartiallyConfirmedOperation.StatusCode = 'I0010'
and FinallyConfirmedOperation.StatusCode isnulland MatlNmbrOfProdnHolds.NumberOfHolds isnulland WrkCtrNmbrOfProdnHolds.NumberOfHolds isnulland OrderNmbrOfProdnHolds.NumberOfHolds isnulland OperNmbrOfProdnHolds.NumberOfHolds isnulland(
MfgOrderOpNmbrOfOpActyOnHold.OpActyHasHold = 0
or MfgOrderOpNmbrOfOpActyOnHold.OpActyHasHold isnull
)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MFGORDERBASIC",
"I_ORDERITEM",
"I_ORDEROPERATION",
"I_STATUSOBJECTSTATUSBASIC",
"P_MATLNMBROFPRODNHOLDS",
"P_MFGORDEROPNMBROFOPACTYONHOLD",
"P_OPERNMBROFPRODNHOLDS",
"P_ORDERNMBROFPRODNHOLDS",
"P_WRKCTRNMBROFPRODNHOLDS"
],
"ASSOCIATED":
[
"I_ORDERINTERNALID",
"I_PLANT",
"I_WORKCENTER",
"I_WORKCENTERTYPE"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/