C_MfgOpInProgressNotOnHold

DDL: C_MFGOPINPROGRESSNOTONHOLD Type: view_entity CONSUMPTION

Operation In Progress not on Hold

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.

Data Sources (3)

SourceAliasJoin Type
I_OrderOperation afvg from
I_MfgOrderBasic aufv inner
I_OrderItem OrderItem inner

Associations (4)

CardinalityTargetAliasCondition
[1..1] I_OrderInternalID _OrdInternalBillOfOperations $projection.OrderInternalBillOfOperations = _OrdInternalBillOfOperations.OrderInternalID
[1..1] I_Plant _ProductionPlant $projection.ProductionPlant = _ProductionPlant.Plant
[0..1] I_WorkCenter _WorkCenter $projection.WorkCenterTypeCode = _WorkCenter.WorkCenterTypeCode and $projection.WorkCenterInternalID = _WorkCenter.WorkCenterInternalID
[0..1] I_WorkCenterType _WorkCenterType $projection.WorkCenterTypeCode = _WorkCenterType.WorkCenterTypeCode

Annotations (7)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Operation In Progress not on Hold view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #CONSUMPTION view

Fields (12)

KeyFieldSource TableSource FieldDescription
KEY OrderInternalBillOfOperations
KEY OrderIntBillOfOperationsItem
ManufacturingOrderCategory I_MfgOrderBasic ManufacturingOrderCategory
ManufacturingOrderType I_MfgOrderBasic ManufacturingOrderType
Reservation I_MfgOrderBasic Reservation
ProductionPlant
WorkCenterInternalID
WorkCenterTypeCode I_OrderOperation WorkCenterTypeCode_2
_OrdInternalBillOfOperations _OrdInternalBillOfOperations
_ProductionPlant _ProductionPlant
_WorkCenter _WorkCenter
_WorkCenterType _WorkCenterType
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Operation In Progress not on Hold'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
  serviceQuality: #D,
  sizeCategory: #L,
  dataClass: #MIXED
}
@VDM.viewType: #CONSUMPTION
define view entity C_MfgOpInProgressNotOnHold
  as select from           I_OrderOperation               as afvg
    inner join             I_MfgOrderBasic                as aufv                         on aufv.OrderInternalID = afvg.OrderInternalID
    inner join             I_OrderItem                    as OrderItem                    on  OrderItem.OrderID   = aufv.ManufacturingOrder
                                                                                          and OrderItem.OrderItem = '0001'
    left outer to one join I_StatusObjectStatusBasic      as DeletedOperation             on  DeletedOperation.StatusObject     = afvg.ObjectInternalID
                                                                                          and DeletedOperation.StatusCode       = 'I0013'
                                                                                          and DeletedOperation.StatusIsInactive = ''
    left outer to one join I_StatusObjectStatusBasic      as PartiallyConfirmedOperation  on  PartiallyConfirmedOperation.StatusObject     = afvg.ObjectInternalID
                                                                                          and PartiallyConfirmedOperation.StatusCode       = 'I0010'
                                                                                          and PartiallyConfirmedOperation.StatusIsInactive = ''
    left outer to one join I_StatusObjectStatusBasic      as FinallyConfirmedOperation    on  FinallyConfirmedOperation.StatusObject     = afvg.ObjectInternalID
                                                                                          and FinallyConfirmedOperation.StatusCode       = 'I0009'
                                                                                          and FinallyConfirmedOperation.StatusIsInactive = ''
    left outer 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
    left outer to one join P_MatlNmbrOfProdnHolds         as MatlNmbrOfProdnHolds         on MatlNmbrOfProdnHolds.Material = OrderItem.Material
    left outer to one join P_WrkCtrNmbrOfProdnHolds       as WrkCtrNmbrOfProdnHolds       on  WrkCtrNmbrOfProdnHolds.WorkCenterInternalID = afvg.WorkCenterInternalID
                                                                                          and WrkCtrNmbrOfProdnHolds.WorkCenterTypeCode   = afvg.WorkCenterTypeCode
    left outer to one join P_OrderNmbrOfProdnHolds        as OrderNmbrOfProdnHolds        on OrderNmbrOfProdnHolds.ManufacturingOrder = aufv.ManufacturingOrder
    left outer to one join P_OperNmbrOfProdnHolds         as OperNmbrOfProdnHolds         on  OperNmbrOfProdnHolds.OrderInternalID          = afvg.OrderInternalID
                                                                                          and OperNmbrOfProdnHolds.OrderOperationInternalID = afvg.OrderOperationInternalID
    left outer 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'
  key cast(afvg.OrderInternalID          as pph_aufpl           preserving type) as OrderInternalBillOfOperations,
  key cast(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                is null
  and  ClosedOperation.StatusCode                 is null
  and  PartiallyConfirmedOperation.StatusCode     = 'I0010'
  and  FinallyConfirmedOperation.StatusCode       is null
  and  MatlNmbrOfProdnHolds.NumberOfHolds         is null
  and  WrkCtrNmbrOfProdnHolds.NumberOfHolds       is null
  and  OrderNmbrOfProdnHolds.NumberOfHolds        is null
  and  OperNmbrOfProdnHolds.NumberOfHolds         is null
  and(
       MfgOrderOpNmbrOfOpActyOnHold.OpActyHasHold = 0
    or MfgOrderOpNmbrOfOpActyOnHold.OpActyHasHold is null
  )
/*+[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":""
}
}*/