C_CacheMRPMfgOrder

DDL: C_CACHEMRPMFGORDER SQL: CCACHEMRPMFGORD Type: view CONSUMPTION

MRP Manufacturing Orders

C_CacheMRPMfgOrder is a Consumption CDS View that provides data about "MRP Manufacturing Orders" in SAP S/4HANA. It reads from 1 data source (I_SDMAreaOfResponsibility) and exposes 99 fields with key fields MRPPlant, MRPPlanningSegmentType, MRPPlanningSegment, MaterialShortageProfile, MaterialShortageProfileCount. It has 18 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_SDMAreaOfResponsibility SDMAreaOfResponsibility inner

Associations (18)

CardinalityTargetAliasCondition
[0..1] I_MaterialShortageDefinition _MaterialShortageDef $projection.MaterialShortageProfile = _MaterialShortageDef.MaterialShortageProfile and $projection.MaterialShortageProfileCount = _MaterialShortageDef.MaterialShortageProfileCount
[0..*] I_MaterialText _MaterialText $projection.Material = _MaterialText.Material
[0..1] I_MfgOrderTypeText _MfgOrderTypeText $projection.ManufacturingOrderType = _MfgOrderTypeText.ManufacturingOrderType and _MfgOrderTypeText.Language = $session.system_language
[0..1] I_ProductionSupervisor _ProductionSupervisor $projection.ProductionPlant = _ProductionSupervisor.Plant and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor
[0..1] I_MfgOrderCategoryText _MfgOrderCategoryText $projection.MRPElementCategory = _MfgOrderCategoryText.ManufacturingOrderCategory and _MfgOrderCategoryText.Language = $session.system_language
[0..1] I_MRPElementCategoryText _MRPElementCategoryText $projection.MRPElementCategory = _MRPElementCategoryText.MRPElementCategory and _MRPElementCategoryText.Language = $session.system_language
[0..1] I_MfgOrdProgressStatusText _ProgressStatusText $projection.MfgOrderProgressStatus = _ProgressStatusText.MfgOrderProgressStatus and _ProgressStatusText.Language = $session.system_language
[0..1] I_MfgOrdProgressNextStatusText _NextStatusText $projection.MfgOrderProgressNextStatus = _NextStatusText.MfgOrderProgressNextStatus and _NextStatusText.Language = $session.system_language
[0..1] I_MRPController _MRPController $projection.MRPPlant = _MRPController.Plant and $projection.MRPController = _MRPController.MRPController
[0..1] C_ComponentCoverageVH _ComponentCoverage _ComponentCoverage.CompCvrgInWrkDaysSelection = $projection.CompCvrgInWrkDaysSelection
[0..1] C_MaterialDelayVH _MaterialDelay _MaterialDelay.MaterialDlyInWorkDaysSelection = $projection.MaterialDlyInWorkDaysSelection
[0..1] C_MfgOrderProgressStatusVH _MfgOrderProgressStatus _MfgOrderProgressStatus.MfgOrdProgressStatusSelection = $projection.MfgOrdProgressStatusSelection
[0..1] I_MfgOrderMRPControllerVH _MRPControllerVH $projection.MRPPlant = _MRPControllerVH.Plant and $projection.MRPController = _MRPControllerVH.MRPController
[1..1] C_PlantVH _PlantVH $projection.MRPPlant = _PlantVH.Plant
[0..1] I_ProductionLineStdVH _ProductionLineVH $projection.ProductionPlant = _ProductionLineVH.Plant and $projection.ProductionLine = _ProductionLineVH.ProductionLine
[0..1] I_ProductionVersionStdVH _ProductionVersionVH $projection.ProductionPlant = _ProductionVersionVH.Plant and $projection.ProductionVersion = _ProductionVersionVH.ProductionVersion and $projection.Material = _ProductionVersionVH.Material
[0..1] C_MRPAreaValHelp _MRPAreaVH $projection.MRPArea = _MRPAreaVH.MRPArea and $projection.MRPPlant = _MRPAreaVH.Plant
[0..1] I_MfgOrderProdnSupervisorVH _ProductionSupervisorVH $projection.ProductionPlant = _ProductionSupervisorVH.Plant and $projection.ProductionSupervisor = _ProductionSupervisorVH.ProductionSupervisor

Annotations (15)

NameValueLevelField
AbapCatalog.sqlViewName CCACHEMRPMFGORD view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
EndUserText.label MRP Manufacturing Orders view
ClientHandling.algorithm #SESSION_VARIABLE view
Search.searchable true view
Metadata.allowExtensions true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #CONSUMPTION view
UI.headerInfo.typeName Monitor Production Orders view
UI.headerInfo.typeNamePlural Materials view

Fields (99)

KeyFieldSource TableSource FieldDescription
KEY MRPPlant MRPPlant
KEY MRPPlanningSegmentType
KEY MRPPlanningSegment MRPPlanningSegment
KEY MaterialShortageProfile MaterialShortageProfile
KEY MaterialShortageProfileCount MaterialShortageProfileCount
KEY MRPElementCategory MRPElementCategory
KEY MRPElement
KEY Material I_CacheMRPMfgOrder Material
MRPArea I_CacheMRPMfgOrder MRPArea
FactoryCalendar FactoryCalendar
PlantName _PlantVH PlantName
MaterialendasMaterialName
MRPAreaText _MRPAreaVH MRPAreaText
ProductionPlant ProductionPlant
MRPController I_CacheMRPMfgOrder MRPController
MRPControllerName _MRPController MRPControllerName
ManufacturingOrderType ManufacturingOrderType
ManufacturingOrderTypeName _MfgOrderTypeText ManufacturingOrderTypeName
MRPElementCategoryName _MRPElementCategoryText MRPElementCategoryName
MRPElementCategoryShortName _MRPElementCategoryText MRPElementCategoryShortName
MfgOrderProgressStatus MfgOrderProgressStatus
MfgOrderProgressStatusName
MfgOrderProgressNextStatus MfgOrderProgressNextStatus
MfgOrderProgressNextStatusName
MfgOrderPlannedStartDate MfgOrderPlannedStartDate
MfgOrderPlannedEndDate MfgOrderPlannedEndDate
MfgOrderPlannedTotalQty MfgOrderPlannedTotalQty
MRPElementAvailyOrRqmtDate MRPElementAvailyOrRqmtDate
MRPElementOpenQuantity MRPElementOpenQuantity
ProductionLine ProductionLine
ProductionLineText
ProductionSupervisor ProductionSupervisor
ProductionSupervisorName _ProductionSupervisor ProductionSupervisorName
ProductionVersion ProductionVersion
ProductionVersionText ProductionVersionText
StorageLocation StorageLocation
ComponentShortageDefinition ComponentShortageDefinition
MaterialBaseUnit MaterialBaseUnit
ProductionUnit ProductionUnit
UnitOfMeasureNumberOfDecimals UnitOfMeasureNumberOfDecimals
UnitOfMeasureDspNmbrOfDcmls UnitOfMeasureDspNmbrOfDcmls
NumberOfComponentsWithProblems
MaximumDelayInDays MaximumDelayInDays
MaximumDelayInWorkdays MaximumDelayInWorkdays
CompCvrgInWrkDaysSelection
MaterialDlyInWorkDaysSelection
MfgOrdProgressStatusSelection
DelayInProcessSelection
LateSupplyLatenessWorkdays LateSupplyLatenessWorkdays
LateSupplyQuantity
LateSupplyEarliestDemandDate
ManufacturingOrderIsLate ManufacturingOrderIsLate
MfgOrderStatusActualDate MfgOrderStatusActualDate
MfgOrderNextStatusPlannedDate MfgOrderNextStatusPlannedDate
MfgOrderPlannedReleaseDate MfgOrderPlannedReleaseDate
MfgOrderNextStatusDate
DurnPlndStatusToTodayInDays
DurnPlndStatusToTodayInWrkdays DurnPlndStatusToTodayInWrkdays
DurationToNextStatusInDays
DurnToNextStsInDaysCritlty
DurationToNextStatusInWorkdays
DurnToNextStsInWorkdaysCritlty
DurationUntilReleaseInWorkdays
DurnUntilRelInWorkdaysCritlty
DurationUntilStartInWorkdays
DurnTilStartInWorkdaysCritlty
DurationUntilEndInWorkdays
DurnTilEndInWorkdaysCritlty
DurationUntilGRInWorkdays
DurnUntilGRInWorkdaysCritlty
MaterialGoodsReceiptDuration MaterialGoodsReceiptDuration
MaterialCompIsProcuredDirectly MaterialCompIsProcuredDirectly
MatlPlngProjectNetwork
WBSElementInternalID WBSElementInternalID
WBSElement WBSElement
PlanningSegmentDocument PlanningSegmentDocument
PlanningSegmentDocumentItem PlanningSegmentDocumentItem
char6asMRPPlanningSegmentTypeDesc
MRPPlanningSegmentExternalCode
MaterialShortageDefinitionName _MaterialShortageDef MaterialShortageDefinitionName
Associations_PlantVH
_MaterialText _MaterialText
_MfgOrderTypeText _MfgOrderTypeText
_MfgOrderCategoryText _MfgOrderCategoryText
_ProductionLineVH _ProductionLineVH
_ProductionSupervisor _ProductionSupervisor
_ProductionVersionVH _ProductionVersionVH
_StorageLocation I_CacheMRPMfgOrder _StorageLocation
_ProgressStatusText _ProgressStatusText
_ComponentCoverage _ComponentCoverage
_MaterialDelay _MaterialDelay
_MfgOrderProgressStatus _MfgOrderProgressStatus
_MRPPlant _MRPPlant
_Material I_CacheMRPMfgOrder _Material
_MRPController _MRPController
_MRPControllerVH _MRPControllerVH
_ProductionPlant _ProductionPlant
_MRPAreaVH _MRPAreaVH
_ProductionSupervisorVH _ProductionSupervisorVH
@AbapCatalog.sqlViewName: 'CCACHEMRPMFGORD'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey:true
@EndUserText.label: 'MRP Manufacturing Orders'
@ClientHandling.algorithm: #SESSION_VARIABLE
@Search.searchable: true
@Metadata.allowExtensions: true
@AccessControl.privilegedAssociations: ['_ProductionSupervisor', '_MRPController']
@AccessControl: {authorizationCheck: #CHECK,
                personalData.blocking: #REQUIRED
}

@ObjectModel: {
    usageType : { serviceQuality: #C, sizeCategory: #XL, dataClass: #MIXED }
}

@VDM.viewType: #CONSUMPTION
@UI.headerInfo.typeName: 'Monitor Production Orders'
@UI.headerInfo.typeNamePlural: 'Materials'

define view C_CacheMRPMfgOrder
  as select distinct from I_CacheMRPMfgOrder

    inner join            I_SDMAreaOfResponsibility as SDMAreaOfResponsibility on  I_CacheMRPMfgOrder.MRPController = SDMAreaOfResponsibility.MRPController
                                                                               and I_CacheMRPMfgOrder.MRPPlant      = SDMAreaOfResponsibility.Plant
                                                                               and SDMAreaOfResponsibility.UserID   = $session.user


  // left outer join I_MRPArea                    as _MRPArea               on  I_CacheMRPMfgOrder.MRPArea = _MRPArea.MRPArea


  association [0..1] to I_MaterialShortageDefinition   as _MaterialShortageDef    on  $projection.MaterialShortageProfile      = _MaterialShortageDef.MaterialShortageProfile
                                                                                  and $projection.MaterialShortageProfileCount = _MaterialShortageDef.MaterialShortageProfileCount

  association [0..*] to I_MaterialText                 as _MaterialText           on  $projection.Material = _MaterialText.Material

  association [0..1] to I_MfgOrderTypeText             as _MfgOrderTypeText       on  $projection.ManufacturingOrderType = _MfgOrderTypeText.ManufacturingOrderType
                                                                                  and _MfgOrderTypeText.Language         = $session.system_language

  association [0..1] to I_ProductionSupervisor         as _ProductionSupervisor   on  $projection.ProductionPlant      = _ProductionSupervisor.Plant
                                                                                  and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor

  association [0..1] to I_MfgOrderCategoryText         as _MfgOrderCategoryText   on  $projection.MRPElementCategory = _MfgOrderCategoryText.ManufacturingOrderCategory
                                                                                  and _MfgOrderCategoryText.Language = $session.system_language

  association [0..1] to I_MRPElementCategoryText       as _MRPElementCategoryText on  $projection.MRPElementCategory   = _MRPElementCategoryText.MRPElementCategory
                                                                                  and _MRPElementCategoryText.Language = $session.system_language

  association [0..1] to I_MfgOrdProgressStatusText     as _ProgressStatusText     on  $projection.MfgOrderProgressStatus = _ProgressStatusText.MfgOrderProgressStatus
                                                                                  and _ProgressStatusText.Language       = $session.system_language

  association [0..1] to I_MfgOrdProgressNextStatusText as _NextStatusText         on  $projection.MfgOrderProgressNextStatus = _NextStatusText.MfgOrderProgressNextStatus
                                                                                  and _NextStatusText.Language               = $session.system_language

  association [0..1] to I_MRPController                as _MRPController          on  $projection.MRPPlant      = _MRPController.Plant
                                                                                  and $projection.MRPController = _MRPController.MRPController

  //Value Helps for Custom Filters

  association [0..1] to C_ComponentCoverageVH          as _ComponentCoverage      on  _ComponentCoverage.CompCvrgInWrkDaysSelection = $projection.CompCvrgInWrkDaysSelection

  association [0..1] to C_MaterialDelayVH              as _MaterialDelay          on  _MaterialDelay.MaterialDlyInWorkDaysSelection = $projection.MaterialDlyInWorkDaysSelection

  association [0..1] to C_MfgOrderProgressStatusVH     as _MfgOrderProgressStatus on  _MfgOrderProgressStatus.MfgOrdProgressStatusSelection = $projection.MfgOrdProgressStatusSelection


  association [0..1] to I_MfgOrderMRPControllerVH      as _MRPControllerVH        on  $projection.MRPPlant      = _MRPControllerVH.Plant
                                                                                  and $projection.MRPController = _MRPControllerVH.MRPController


  association [1..1] to C_PlantVH                      as _PlantVH                on  $projection.MRPPlant = _PlantVH.Plant

  association [0..1] to I_ProductionLineStdVH          as _ProductionLineVH       on  $projection.ProductionPlant = _ProductionLineVH.Plant
                                                                                  and $projection.ProductionLine  = _ProductionLineVH.ProductionLine

  association [0..1] to I_ProductionVersionStdVH       as _ProductionVersionVH    on  $projection.ProductionPlant   = _ProductionVersionVH.Plant
                                                                                  and $projection.ProductionVersion = _ProductionVersionVH.ProductionVersion
                                                                                  and $projection.Material          = _ProductionVersionVH.Material

  association [0..1] to C_MRPAreaValHelp               as _MRPAreaVH              on  $projection.MRPArea  = _MRPAreaVH.MRPArea
                                                                                  and $projection.MRPPlant = _MRPAreaVH.Plant

  association [0..1] to I_MfgOrderProdnSupervisorVH    as _ProductionSupervisorVH on  $projection.ProductionPlant      = _ProductionSupervisorVH.Plant
                                                                                  and $projection.ProductionSupervisor = _ProductionSupervisorVH.ProductionSupervisor
  
//  association [0..1] to I_MfgOrderTypeVH               as _MfgOrderTypeVH         on  $projection.ManufacturingOrderType = _MfgOrderTypeVH.ManufacturingOrderType


//  association [0..1] to I_MaterialStdVH                as _MaterialVH             on  $projection.Material = _MaterialVH.Material


 
{

       @Search: {defaultSearchElement: true,  ranking: #HIGH, fuzzinessThreshold: 0.7 }
  key  MRPPlant,
  key  cast(MRPPlanningSegmentType as plaab)                                                                                                               as MRPPlanningSegmentType,
  key  MRPPlanningSegment,
  key  MaterialShortageProfile,
  key  MaterialShortageProfileCount,
  key  MRPElementCategory,
  key  CONCAT(LTRIM( MRPElement, '0' ), CONCAT('-', LTRIM( MRPElementItem, '0')) )                                                                         as MRPElement,
       @Search: {defaultSearchElement: true,  ranking: #HIGH, fuzzinessThreshold: 0.7 }
  key  I_CacheMRPMfgOrder.Material,
       I_CacheMRPMfgOrder.MRPArea,

       FactoryCalendar,
       _PlantVH.PlantName,

       case
        when _MaterialText[ 1: Language = $session.system_language ].MaterialName is not null
        and  _MaterialText[ 1: Language = $session.system_language ].MaterialName != ''
            then _MaterialText[ 1: Language = $session.system_language ].MaterialName

        when _MaterialText[ 1: Language = 'E' ].MaterialName  is not null
        and  _MaterialText[ 1: Language = 'E' ].MaterialName  != ''
            then _MaterialText[ 1: Language = $session.system_language ].MaterialName

        else I_CacheMRPMfgOrder.Material
       end                                                                                                                                                 as MaterialName,

       _MRPAreaVH.MRPAreaText,
       ProductionPlant,
       I_CacheMRPMfgOrder.MRPController,
       _MRPController.MRPControllerName,
       ManufacturingOrderType,
       _MfgOrderTypeText.ManufacturingOrderTypeName,
       _MRPElementCategoryText.MRPElementCategoryName,
       _MRPElementCategoryText.MRPElementCategoryShortName,
       MfgOrderProgressStatus,
       cast(_ProgressStatusText.MfgOrderProgressStatusName as mfgorderprogressstatustext )                                                                 as MfgOrderProgressStatusName,
       MfgOrderProgressNextStatus,
       cast(_NextStatusText.MfgOrderProgressNextStatusName as nextmilestone)                                                                               as MfgOrderProgressNextStatusName,
       MfgOrderPlannedStartDate,
       MfgOrderPlannedEndDate,
       MfgOrderPlannedTotalQty,
       MRPElementAvailyOrRqmtDate,
       MRPElementOpenQuantity,
       ProductionLine,
       cast(_ProductionLineVH._WorkCenterTextBySemanticKey[ 1: Language = $session.system_language ].WorkCenterText as productionlinetext preserving type) as ProductionLineText,
       ProductionSupervisor,
       _ProductionSupervisor.ProductionSupervisorName,
       ProductionVersion,
       ProductionVersionText,
       StorageLocation,
       ComponentShortageDefinition,

       MaterialBaseUnit,
       ProductionUnit,
       UnitOfMeasureNumberOfDecimals, //TargetQuantityUnitDcmls, for rounding

       UnitOfMeasureDspNmbrOfDcmls, //TargetQuantityUnitDisplayDcmls

       cast( NumberOfUncoveredDemandItems as missingcomponents preserving type)                                                                            as NumberOfComponentsWithProblems,

       MaximumDelayInDays,
       MaximumDelayInWorkdays, //initial filter -999999 = ComponentCoverage


       @ObjectModel.readOnly: true
       @ObjectModel.filter.transformedBy: 'ABAP:CL_MRP_CDS_COMP_FILTER_EXIT'
       @ObjectModel.foreignKey.association: '_ComponentCoverage'
       cast( '' as mrp_ui_comp_coverage )                                                                                                                  as CompCvrgInWrkDaysSelection,

       @ObjectModel.readOnly: true
       @ObjectModel.filter.transformedBy: 'ABAP:CL_MRP_CDS_COMP_FILTER_EXIT'
       @ObjectModel.foreignKey.association: '_MaterialDelay'
       cast( '' as mrp_ui_material_delay )                                                                                                                 as MaterialDlyInWorkDaysSelection,
       @ObjectModel.readOnly: true
       @ObjectModel.foreignKey.association: '_MfgOrderProgressStatus'
       @ObjectModel.filter.transformedBy: 'ABAP:CL_MRP_CDS_COMP_FILTER_EXIT'
       cast( '' as mfgorderprogressstatustext )                                                                                                            as MfgOrdProgressStatusSelection,

       @ObjectModel: {
       filter.transformedBy: 'ABAP:CL_MRP_CDS_COMP_FILTER_EXIT'
       }
       cast( '' as mrp_ui_delay_in_process)                                                                                                                as DelayInProcessSelection,

       //initial filter -999999

       LateSupplyLatenessWorkdays, //=LatenessDurationInWorkDay=MaterialDelay

       @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
       cast(I_CacheMRPMfgOrder._CacheSupDemItem.MRPElementDelayedQuantity as latesupplyquantity)                                                           as LateSupplyQuantity,
       cast(I_CacheMRPMfgOrder._CacheSupDemItem.MaximumDelayDate as requirementdate preserving type)                                                       as LateSupplyEarliestDemandDate,
       ManufacturingOrderIsLate,

       case
         when MfgOrderStatusPlannedDate = '00000000' or
              MfgOrderStatusPlannedDate = '00010101'
              then MfgOrderStatusActualDate
         else MfgOrderStatusPlannedDate
       end                                                                                                                                                 as MfgOrderStatusPlannedDate,
       MfgOrderStatusActualDate,
       MfgOrderNextStatusPlannedDate,
       MfgOrderPlannedReleaseDate,

       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( '' as mfgordernextstatusdate )                                                                                                                as MfgOrderNextStatusDate,

       //initial filter -999999

       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( 0 as durnplndstatustotodayindays)                                                                                                             as DurnPlndStatusToTodayInDays, //=Delay in Process


       DurnPlndStatusToTodayInWrkdays,

       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( '' as durationuntilnextstatusindays)                                                                                                          as DurationToNextStatusInDays, //Milestone(CD)


       @UI.hidden: true
       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( 0 as abap.int1)                                                                                                                               as DurnToNextStsInDaysCritlty, //criticallity for DurationToNextStatusInDays


       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( '' as durationtonextstatusinworkdays)                                                                                                         as DurationToNextStatusInWorkdays, //Milestone(WD)


       @UI.hidden: true
       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( 0 as abap.int1)                                                                                                                               as DurnToNextStsInWorkdaysCritlty, //criticallity for DurationToNextStatusInWorkdays


       //if released milestone has been already passed, then duration is 999999

       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( '' as durationtoreleaseinworkdays)                                                                                                            as DurationUntilReleaseInWorkdays,

       @UI.hidden: true
       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( 0 as abap.int1)                                                                                                                               as DurnUntilRelInWorkdaysCritlty, //criticallity for DurationUntilReleaseInWorkdays


       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( '' as durationuntilstartinworkdays)                                                                                                           as DurationUntilStartInWorkdays,

       @UI.hidden: true
       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( 0 as abap.int1)                                                                                                                               as DurnTilStartInWorkdaysCritlty, //criticallity for DurationUntilStartInWorkdays


       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( '' as durationuntilendinworkdays)                                                                                                             as DurationUntilEndInWorkdays,
       @UI.hidden: true
       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( 0 as abap.int1)                                                                                                                               as DurnTilEndInWorkdaysCritlty, //criticallity for DurationUntilEndInWorkdays


       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( 0 as durationuntilgrinworkdays)                                                                                                               as DurationUntilGRInWorkdays,

       @UI.hidden: true
       @ObjectModel: {
       virtualElement: true,
       readOnly: true,
       virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MFG_ORDER_EXIT'
       }
       cast( 0 as abap.int1)                                                                                                                               as DurnUntilGRInWorkdaysCritlty, //criticallity for DurationUntilGRInWorkdays


       MaterialGoodsReceiptDuration,

       case
         when _CacheSupDemItem.MRPElementDelayedQuantity > 0 and
              NumberOfUncoveredDemandItems > 0 and DurnPlndStatusToTodayInWrkdays > 0
              then '111'
       //mfgorderproblemcategoryname TEXT: Everything Delayed

         when _CacheSupDemItem.MRPElementDelayedQuantity > 0 and
              NumberOfUncoveredDemandItems > 0 and DurnPlndStatusToTodayInWrkdays <= 0
              then '110'
       //TEXT: Material and Component Delay

         when _CacheSupDemItem.MRPElementDelayedQuantity > 0 and
              NumberOfUncoveredDemandItems <= 0 and DurnPlndStatusToTodayInWrkdays > 0
              then '101'
       //TEXT: Material and Process Delay

         when _CacheSupDemItem.MRPElementDelayedQuantity > 0 and
              NumberOfUncoveredDemandItems <= 0 and DurnPlndStatusToTodayInWrkdays <= 0
              then '100'
       //TEXT:Material Delay

         when _CacheSupDemItem.MRPElementDelayedQuantity <= 0 and
              NumberOfUncoveredDemandItems > 0 and DurnPlndStatusToTodayInWrkdays > 0
              then '011'
       //mfgorderproblemcategoryname TEXT: Component and Process Delay

         when _CacheSupDemItem.MRPElementDelayedQuantity <= 0 and
              NumberOfUncoveredDemandItems > 0 and DurnPlndStatusToTodayInWrkdays <= 0
              then  '010'
       //TEXT: Component Delay

         when _CacheSupDemItem.MRPElementDelayedQuantity <= 0 and
              NumberOfUncoveredDemandItems <= 0 and DurnPlndStatusToTodayInWrkdays > 0
              then '001'
       //TEXT: Delay in Process

         when _CacheSupDemItem.MRPElementDelayedQuantity <= 0 and
              NumberOfUncoveredDemandItems <= 0 and DurnPlndStatusToTodayInWrkdays <= 0
              then '000'
       //TEXT: No Delay.

         else ''
       end                                                                                                                                                 as MfgOrderProblemCategory,


       MaterialCompIsProcuredDirectly,
       cast(ProjectNetwork as ps_pspid_edit)                                                                                                               as MatlPlngProjectNetwork,
       WBSElementInternalID,
       WBSElement,
       PlanningSegmentDocument,
       PlanningSegmentDocumentItem,
       ---------------------------------------------------------------------------------------------------------
       -- Individual Segment                                                                             --
       ---------------------------------------------------------------------------------------------------------
       @ObjectModel: {
        virtualElement,
        readOnly: true,
        virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MAT_COV_PLN_SEG_EXIT'
       }
       cast( '' as abap.char( 6 ) )                                                                                                                        as MRPPlanningSegmentTypeDesc,
       @ObjectModel: {
        virtualElement: true,
        readOnly: true,
        virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_MAT_COV_PLN_SEG_EXIT'
       }
       cast( '' as mrpindividualsegment)                                                                                                                   as MRPPlanningSegmentExternalCode,

       _MaterialShortageDef.MaterialShortageDefinitionName,


       -- Associations
       _PlantVH,
       _MaterialText,
       _MfgOrderTypeText,
       _MfgOrderCategoryText,
       _ProductionLineVH,
       _ProductionSupervisor,
       _ProductionVersionVH,
       I_CacheMRPMfgOrder._StorageLocation,
       _ProgressStatusText,
       _ComponentCoverage,
       _MaterialDelay,
       _MfgOrderProgressStatus,
       _MRPPlant,
       I_CacheMRPMfgOrder._Material,
       _MRPController,
       _MRPControllerVH,
       _ProductionPlant,
       _MRPAreaVH,
       _ProductionSupervisorVH
//       _MfgOrderTypeVH

//       _MaterialVH




}
//where

//      MaterialShortageProfile      = 'SAP000000001'

//  and MaterialShortageProfileCount = '001'

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_MRPAREAVALHELP",
"C_PLANTVH",
"I_CACHEMRPMFGORDER",
"I_CACHESUPPLYDEMANDITEM",
"I_MATERIALSHORTAGEDEFINITION",
"I_MATERIALTEXT",
"I_MFGORDERTYPETEXT",
"I_MFGORDPROGRESSNEXTSTATUSTEXT",
"I_MFGORDPROGRESSSTATUSTEXT",
"I_MRPCONTROLLER",
"I_MRPELEMENTCATEGORYTEXT",
"I_PRODUCTIONLINESTDVH",
"I_PRODUCTIONSUPERVISOR",
"I_SDMAREAOFRESPONSIBILITY",
"I_WORKCENTERTEXTBYSEMANTICKEY"
],
"ASSOCIATED":
[
"C_COMPONENTCOVERAGEVH",
"C_MATERIALDELAYVH",
"C_MFGORDERPROGRESSSTATUSVH",
"C_MRPAREAVALHELP",
"C_PLANTVH",
"I_MATERIAL",
"I_MATERIALSHORTAGEDEFINITION",
"I_MATERIALTEXT",
"I_MFGORDERCATEGORYTEXT",
"I_MFGORDERMRPCONTROLLERVH",
"I_MFGORDERPRODNSUPERVISORVH",
"I_MFGORDERTYPETEXT",
"I_MFGORDPROGRESSNEXTSTATUSTEXT",
"I_MFGORDPROGRESSSTATUSTEXT",
"I_MRPCONTROLLER",
"I_MRPELEMENTCATEGORYTEXT",
"I_PLANT",
"I_PRODUCTIONLINESTDVH",
"I_PRODUCTIONSUPERVISOR",
"I_PRODUCTIONVERSIONSTDVH",
"I_STORAGELOCATION"
],
"BASE":
[
"I_CACHEMRPMFGORDER"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/