C_MfgExecDefectRecord

DDL: C_MFGEXECDEFECTRECORD SQL: CMFGEXECDEFRECD Type: view CONSUMPTION Package: MPE_EXEC_NON_CONFORMANCE

View with UI attributes for defect

C_MfgExecDefectRecord is a Consumption CDS View that provides data about "View with UI attributes for defect" in SAP S/4HANA. It reads from 8 data sources and exposes 29 fields with key field DefectInternalID. Part of development package MPE_EXEC_NON_CONFORMANCE.

Data Sources (8)

SourceAliasJoin Type
I_Defect_TP Defect from
I_DefectCategory DefectCategory inner
I_MfgOrdDefectDecision DefectDecision left_outer
I_Equipment Equipment left_outer
I_MfgOrderOperation MfgOrderOperation left_outer
I_OpActyInstceOpActyNtwkElmnt OAINE inner
I_OpActyInstanceStatusBasic OpActyInstanceStatusBasic left_outer
I_ProductionHoldBasic ProductionHold left_outer

Annotations (8)

NameValueLevelField
AbapCatalog.sqlViewName CMFGEXECDEFRECD view
AbapCatalog.compiler.compareFilter true view
EndUserText.label View with UI attributes for defect view
AccessControl.authorizationCheck #CHECK view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.viewType #CONSUMPTION view

Fields (29)

KeyFieldSource TableSource FieldDescription
KEY DefectInternalID I_Defect_TP DefectInternalID
DefectCategory I_Defect_TP DefectCategory
Plant I_Defect_TP Plant
ProductionOrder ProductionOrder
IsEditable
SerialNumber I_Defect_TP DefectiveSingleUnit Defective Serial Number
ManufacturerSerialNumber I_Equipment ManufacturerSerialNumber
ProductionOrderOperation I_Defect_TP ProductionOrderOperation
MfgOrderOperationText I_MfgOrderOperation MfgOrderOperationText
OpActyNtwkElementExternalID I_OpActyInstceOpActyNtwkElmnt OpActyNtwkElementExternalID
MfgDefectDecisionName Defect Decision
ProductionHoldObjectTypeName Applied Hold
DefectiveQuantity DefectiveQuantity Defective Quantity
OpActyNtwkInstance I_OpActyInstceOpActyNtwkElmnt OpActyNtwkInstance
OpActyNtwkElement I_OpActyInstceOpActyNtwkElmnt OpActyNtwkElement
ShopFloorItem ShopFloorItem ShopFloorItem
OpActyIsSeldForRtactvPostg I_OpActyInstanceStatusBasic OpActyIsSeldForRtactvPostg
OrderInternalBillOfOperations OrderInternalBillOfOperations
OrderIntBillOfOperationsItem OrderIntBillOfOperationsItem
MainWorkCenter MainWorkCenter
MainWorkCenterPlant MainWorkCenterPlant
Material I_Defect_TP Material
BOMItemInstanceUUID I_Defect_TP BOMItemInstanceUUID
MfgRefStrucItmRefDsgntrName
Batch I_Defect_TP Batch
BatchBySupplier Batch BatchBySupplier
ProducedMaterial I_Defect_TP ProducedMaterial Produced Material
ProducedSerialNumber I_Defect_TP ProducedSerialNumber Produced Serial Number
ReferenceDesignatorValue Reference Designator
@AbapCatalog.sqlViewName: 'CMFGEXECDEFRECD'
@AbapCatalog.compiler.compareFilter: true
@EndUserText.label: 'View with UI attributes for defect'
@AccessControl.authorizationCheck: #CHECK
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@VDM: {viewType: #CONSUMPTION}
@UI.presentationVariant: [{requestAtLeast: ['OrderInternalBillOfOperations','OrderIntBillOfOperationsItem'] }]

define view C_MfgExecDefectRecord
  as select from           I_Defect_TP                   as Defect
    inner join             I_OpActyInstceOpActyNtwkElmnt as OAINE                     on  OAINE.ManufacturingOrder          = Defect.ProductionOrder
                                                                                      and OAINE.OrderOperationInternalID    = Defect.InspPlanOperationInternalID
                                                                                      and OAINE.OrderInternalID             = Defect.OrderInternalID
                                                                                      and OAINE.OperationActivity           = Defect.ProductionOrderOperationActy
                                                                                      and OAINE.OperationActyVersionCounter = Defect.ProductionOrderOpActyVers
                                                                                      and OAINE.OpActyNtwkElementType       = 3
    inner join             I_DefectCategory              as DefectCategory            on Defect.DefectCategory = DefectCategory.DefectCategory
    left outer join        I_MfgOrderOperation           as MfgOrderOperation         on  MfgOrderOperation.OrderInternalBillOfOperations = Defect.OrderInternalID
                                                                                      and MfgOrderOperation.OrderIntBillOfOperationsItem  = Defect.InspPlanOperationInternalID
    left outer join        I_Equipment                   as Equipment                 on  Defect.Material            = Equipment.Material
                                                                                      and Defect.DefectiveSingleUnit = Equipment.SerialNumber
  //    left outer join        I_InspectionSubset            as _InspectionSubset           on  Defect.InspectionLot               = _InspectionSubset.InspectionLot

  //                                                                                        and Defect.InspPlanOperationInternalID = _InspectionSubset.InspPlanOperationInternalID

  //                                                                                        and Defect.InspectionSubsetInternalID  = _InspectionSubset.InspectionSubsetInternalID


    left outer join        I_MfgOrdDefectDecision        as DefectDecision            on  DefectDecision.Notification     = Defect.DefectInternalID
                                                                                      and DefectDecision.NotificationItem = '0000'
    left outer join        I_ProductionHoldBasic         as ProductionHold            on  ProductionHold.DefectInternalID          = Defect.DefectInternalID
                                                                                      and ProductionHold.NotificationItem          = '0000'
                                                                                      and ProductionHold.ProductionHoldEndDateTime = 0

    left outer join        I_OpActyInstanceStatusBasic   as OpActyInstanceStatusBasic on  OpActyInstanceStatusBasic.OpActyNtwkElement  = OAINE.OpActyNtwkInstance
                                                                                      and OpActyInstanceStatusBasic.OpActyNtwkInstance = OAINE.OpActyNtwkElement

    left outer to one join I_BatchCrossPlant             as Batch                     on  Defect.Material = Batch.Material
                                                                                      and Defect.Batch    = Batch.Batch

    left outer to one join I_ShopFloorItem               as ShopFloorItem             on  Defect.ProducedMaterial     = ShopFloorItem.Material
                                                                                      and Defect.ProducedSerialNumber = ShopFloorItem.SerialNumber

  //    left outer to one join P_OpActyComponentMRS          as OpActyComponentMRS         on  OAINE.OpActyNtwkInstance    = OpActyComponentMRS.OpActyNtwkInstance

  //                                                                                       and OAINE.OpActyNtwkElement     = OpActyComponentMRS.OpActyNtwkElement

  //                                                                                       and Defect.Material             = OpActyComponentMRS.Material

  //                                                                                       and ShopFloorItem.ShopFloorItem = OpActyComponentMRS.ParentShopFloorItem

  //    left outer to one join I_MfgRefStrucItemWithDetails  as MfgRefStrucItemWithDetails on  OpActyComponentMRS.MfgRefStructureItemDetailUUID = MfgRefStrucItemWithDetails.MfgRefStructureItemUUID

  //                                                                                       and OpActyComponentMRS.MfgRefStrucItmDetIsContextual = ''

  //    left outer to one join I_MfgRefHierItemWithDetails   as MfgRefHierItemWithDetails  on  OpActyComponentMRS.MfgRefStructureItemDetailUUID = MfgRefHierItemWithDetails.MfgRefHierarchyItemUUID

  //                                                                                       and OpActyComponentMRS.MfgRefStrucItmDetIsContextual = 'X'

  //    left outer to one join I_OpActyCompInstceAssignment  as OpActyCompInstceAssignment on  OpActyComponentMRS.Reservation     = OpActyCompInstceAssignment.Reservation

  //                                                                                       and OpActyComponentMRS.ReservationItem = OpActyCompInstceAssignment.ReservationItem

  //                                                                                       and OpActyComponentMRS.RecordType      = OpActyCompInstceAssignment.RecordType

  //                                                                                       and Defect.BOMItemInstanceUUID         = OpActyCompInstceAssignment.DgtlMockUpCharcsUUID


{
      //=== Key Fields

  key Defect.DefectInternalID,
      //=== Fields for authorization check

      @ObjectModel.readOnly: true
      @UI.hidden: true
      Defect.DefectCategory,
      @ObjectModel.readOnly: true
      @UI.hidden: true
      Defect.Plant,
      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails', position: 30}}
      @Consumption.semanticObject: 'ManufacturingOrderItem'
      @UI.fieldGroup.semanticObjectAction: 'manage'
      //@UI.fieldGroup.type: #WITH_INTENT_BASED_NAVIGATION

      @UI.textArrangement: #TEXT_LAST
      ProductionOrder,
      @UI.hidden: true
      cast( '' as boolean preserving type) as IsEditable,
      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails', position: 20}}
      @EndUserText.label: 'Defective Serial Number'
      Defect.DefectiveSingleUnit           as SerialNumber,
      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails', position: 25}}
      Equipment.ManufacturerSerialNumber,

      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails', position: 40}}
      @ObjectModel.text.element: 'MfgOrderOperationText'
      @Consumption.semanticObject: 'ManufacturingOrderOperation'
      @UI.fieldGroup.semanticObjectAction: 'manage'
      //@UI.fieldGroup.type: #WITH_INTENT_BASED_NAVIGATION

      @UI.textArrangement: #TEXT_LAST
      Defect.ProductionOrderOperation,
      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails', position: 50}}
      @Semantics.text: true
      @UI.hidden: true
      MfgOrderOperation.MfgOrderOperationText,
      @Consumption.semanticObject: 'ProductionOrderOperationActy'
      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails', position: 60}}
      @UI.textArrangement: #TEXT_LAST
      OAINE.OpActyNtwkElementExternalID,
      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails', position: 70}}
      @EndUserText.label: 'Defect Decision'
      DefectDecision._DefectDecisionVH._Text[1:Language=$session.system_language].MfgDefectDecisionName,
      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails', position: 90}}
      @EndUserText.label: 'Applied Hold'
      ProductionHold._ProductionHoldObjectType._Text[1:Language=$session.system_language].ProductionHoldObjectTypeName,
      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails', position: 80}}
      @EndUserText.label: 'Defective Quantity'
      DefectiveQuantity,
      @UI.hidden: true
      OAINE.OpActyNtwkInstance,
      @UI.hidden: true
      OAINE.OpActyNtwkElement,
      @UI.hidden: true
      ShopFloorItem.ShopFloorItem,
      @UI.hidden: true
      OpActyInstanceStatusBasic.OpActyIsSeldForRtactvPostg,
      //@UI.hidden: true

      OrderInternalBillOfOperations,
      //@UI.hidden: true

      OrderIntBillOfOperationsItem,
      //      cast(_InspectionOperation.InspPlanOperationInternalID as operationinternalid preserving type) as OrderIntBillOfOperationsItem,

      @UI.hidden: true
      MainWorkCenter,
      @UI.hidden: true
      MainWorkCenterPlant,
      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails_1', position: 10}}
      Defect.Material,
      @UI.hidden: true
      Defect.BOMItemInstanceUUID,
      @ObjectModel.readOnly: true
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails_1', position: 15}}
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_NONCF_COMP_SADL_EXIT'
      cast('' as mpe_mrs_designator_name)  as MfgRefStrucItmRefDsgntrName,
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails_1', position: 100}}
      @ObjectModel.readOnly: true
      Defect.Batch,
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails_1', position: 105}}
      @ObjectModel.readOnly: true
      Batch.BatchBySupplier,
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails_1', position: 120}}
      @ObjectModel.readOnly: true
      @EndUserText.label: 'Produced Material'
      Defect.ProducedMaterial,
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails_1', position: 130}}
      @ObjectModel.readOnly: true
      @EndUserText.label: 'Produced Serial Number'
      Defect.ProducedSerialNumber,
      @UI: { fieldGroup: {qualifier: 'MPEOrderDetails_1', position: 110}}
      @ObjectModel.readOnly: true
      @EndUserText.label: 'Reference Designator'
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MPE_NONCF_COMP_SADL_EXIT'
      cast('' as vmp_ref_des)              as ReferenceDesignatorValue

}
where
  DefectCategory.DefectCategoryContext = '02'