C_MRPInternalRequirement

DDL: C_MRPINTERNALREQUIREMENT Type: view_entity CONSUMPTION Package: ODATA_PP_MRP

MRP Internal Requirement

C_MRPInternalRequirement is a Consumption CDS View that provides data about "MRP Internal Requirement" in SAP S/4HANA. It reads from 2 data sources (I_MaterialShortageDefinition, I_MRPProductionDemand) and exposes 82 fields with key fields MRPPlant, MRPArea, Material, MRPPlanningSegment, MRPPlanningSegmentType. It has 9 associations to related views. It is exposed through 1 OData service (UI_MRPREQUIREMENT). Part of development package ODATA_PP_MRP.

Data Sources (2)

SourceAliasJoin Type
I_MaterialShortageDefinition _MaterialShortageDef inner
I_MRPProductionDemand I_MRPProductionDemand from

Associations (9)

CardinalityTargetAliasCondition
[0..1] P_MRPProductionDemandDelay _WorkingDaysCount $projection.MRPPlant = _WorkingDaysCount.MRPPlant and $projection.MRPArea = _WorkingDaysCount.MRPArea and $projection.Material = _WorkingDaysCount.Material and $projection.MRPPlanningSegment = _WorkingDaysCount.MRPPlanningSegment and $projection.MRPPlanningSegmentType = _WorkingDaysCount.MRPPlanningSegmentType and $projection.MaterialShortageProfile = _WorkingDaysCount.MaterialShortageProfile and $projection.MaterialShortageProfileCount = _WorkingDaysCount.MaterialShortageProfileCount and $projection.MRPElement = _WorkingDaysCount.MRPElement and $projection.MRPElementItem = _WorkingDaysCount.MRPElementItem and $projection.MRPElementScheduleLine = _WorkingDaysCount.MRPElementScheduleLine and $projection.MRPElementCategory = _WorkingDaysCount.MRPElementCategory and $projection.MRPElementAvailyOrRqmtDate = _WorkingDaysCount.MRPElementAvailyOrRqmtDate
[0..1] C_MRPExtRqmtMaterialOverview _MaterialOverview $projection.MRPPlant = _MaterialOverview.MRPPlant and $projection.MRPArea = _MaterialOverview.MRPArea and $projection.Material = _MaterialOverview.Material and $projection.MRPPlanningSegment = _MaterialOverview.MRPPlanningSegment and $projection.MRPPlanningSegmentType = _MaterialOverview.MRPPlanningSegmentType and $projection.MaterialShortageProfile = _MaterialOverview.MaterialShortageProfile and $projection.MaterialShortageProfileCount = _MaterialOverview.MaterialShortageProfileCount
[0..1] C_ProcurementProgressTextVH _ProcurementProgressText $projection.ProcurementProgress = _ProcurementProgressText.ProcurementProgress and _ProcurementProgressText.Language = $session.system_language
[0..1] I_StorageLocation _StorageLocation $projection.StorageLocation = _StorageLocation.StorageLocation and $projection.MRPPlant = _StorageLocation.Plant
[0..*] I_WorkCenterTextBySemanticKey _WorkCenterTextBySemanticKey $projection.ProductionLine = _WorkCenterTextBySemanticKey.WorkCenter and $projection.ProductionPlant = _WorkCenterTextBySemanticKey.Plant and _WorkCenterTextBySemanticKey.Language = $session.system_language
[0..1] I_OrderBasic _OrderBasic I_MRPProductionDemand.SourceMRPElement = _OrderBasic.OrderID
[0..1] I_MRPTypeText _MRPTypeText $projection.MRPType = _MRPTypeText.MRPType and _MRPTypeText.Language = $session.system_language
[0..1] I_MRPAreaPlanningFileEntry _LastMRPRun $projection.Material = _LastMRPRun.Material and $projection.MRPPlant = _LastMRPRun.Plant and $projection.MRPArea = _LastMRPRun.MRPArea and _LastMRPRun.MRPPlanningScenario = '000'
[1..1] I_MRPMaterial _MRPMaterial $projection.MRPPlant = _MRPMaterial.MRPPlant and $projection.Material = _MRPMaterial.Material and $projection.MRPArea = _MRPMaterial.MRPArea

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label MRP Internal Requirement view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #S view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #CONSUMPTION view
Search.searchable true view
Metadata.allowExtensions true view

OData Services (1)

ServiceBindingVersionContractRelease
UI_MRPREQUIREMENT UI_MRPREQUIREMENT V4 C1 NOT_RELEASED

Fields (82)

KeyFieldSource TableSource FieldDescription
KEY MRPPlant I_MRPProductionDemand MRPPlant
KEY MRPArea I_MRPProductionDemand MRPArea
KEY Material I_MRPProductionDemand Material
KEY MRPPlanningSegment I_MRPProductionDemand MRPPlanningSegment
KEY MRPPlanningSegmentType I_MRPProductionDemand MRPPlanningSegmentType
KEY MaterialShortageProfile I_MRPProductionDemand MaterialShortageProfile
KEY MaterialShortageProfileCount I_MRPProductionDemand MaterialShortageProfileCount
KEY MRPElement I_MRPProductionDemand MRPElement
KEY MRPElementItem I_MRPProductionDemand MRPElementItem
KEY MRPElementScheduleLine I_MRPProductionDemand MRPElementScheduleLine
KEY MRPElementCategory I_MRPProductionDemand MRPElementCategory
KEY MRPElementAvailyOrRqmtDate I_MRPProductionDemand MRPElementAvailyOrRqmtDate
MRPPlanningSegmentExternalCode I_MRPProductionDemand MRPPlanningSegmentExternalCode
MaterialExternalID I_MRPProductionDemand MaterialExternalID
MaterialShortageDefinitionName I_MaterialShortageDefinition MaterialShortageDefinitionName
MaterialShortageDefinition I_MRPProductionDemand MaterialShortageDefinition
MRPElementCategoryName
MRPElementCategoryShortName
SourceMRPElementCategoryName
SrcMRPElementCategoryShortName
LatestPlannedAvailabilityDate I_MRPProductionDemand LatestPlannedAvailabilityDate
FactoryCalendar I_MRPProductionDemand FactoryCalendar
ComponentMaterial I_MRPProductionDemand Material
MaterialName I_MRPProductionDemand MaterialName
UnitOfMeasureCommercialName
MRPController I_MRPProductionDemand MRPController
MaterialBaseUnit I_MRPProductionDemand MaterialBaseUnit
TargetQuantityUnitDcmls I_MRPProductionDemand UnitOfMeasureNumberOfDecimals
TargetQuantityUnitDisplayDcmls I_MRPProductionDemand UnitOfMeasureDspNmbrOfDcmls
SourceMRPElementCategory I_MRPProductionDemand SourceMRPElementCategory
SourceMRPElement
OrderDescription _OrderBasic OrderDescription
SourceMRPElementItem I_MRPProductionDemand SourceMRPElementItem
MaximumDelayInDays I_MRPProductionDemand MaximumDelayInDays
MaximumDelayInDaysText
MaximumDelayInWorkdays I_MRPProductionDemand MaximumDelayInWorkdays
MaximumDelayInWorkDaysText
StorageLocation I_MRPProductionDemand StorageLocation
StorageLocationName _StorageLocation StorageLocationName
PlantName I_MRPProductionDemand PlantName
OrderType I_MRPProductionDemand OrderType
OrderTypeName
MRPControllerName I_MRPProductionDemand MRPControllerName
MRPAreaText I_MRPProductionDemand MRPAreaText
MRPType I_MRPProductionDemand MRPType
MRPTypeName _MRPTypeText MRPTypeName
char18endasSourceOrderName
MRPElementMissingQuantity
MRPElementOpenQuantity I_MRPProductionDemand MRPElementOpenQuantity
MRPElementUncoveredQuantity I_MRPProductionDemand MRPElementUncoveredQuantity
MRPElementDelayedQuantity I_MRPProductionDemand MRPElementDelayedQuantity
OrderQuantity I_MRPProductionDemand OrderQuantity
MRPElementCoveredQuantity
dec203asMRPElementIssuedQuantity
UnitUoM
HasMaterialShortageReplnmtLead
HasShortageTotalReplnmtLead I_MRPProductionDemand HasShortageTotalReplnmtLead
HasShortageManualPlanHorizon I_MRPProductionDemand HasShortageManualPlanHorizon
HasShortageMRPSafetyDuration I_MRPProductionDemand HasShortageMRPSafetyDuration
ProducedMaterial
SourceMaterial I_MRPProductionDemand ProducedMaterial
ProducedMaterialName
ProductionSupervisor I_MRPProductionDemand ProductionSupervisor
ProductionSupervisorName I_MRPProductionDemand ProductionSupervisorName
ProductionVersion I_MRPProductionDemand ProductionVersion
ProductionVersionText I_MRPProductionDemand ProductionVersionText
ProductionLine I_MRPProductionDemand ProductionLine
WorkCenterText _WorkCenterTextBySemanticKey WorkCenterText
ProductionPlant I_MRPProductionDemand ProductionPlant
ProcurementProgress I_MRPProductionDemand ProcurementProgress
ProcurementProgressDesc _ProcurementProgressText ProcurementProgressDesc
MaterialLastMRPDateTime _LastMRPRun MaterialLastMRPDateTime
MRPCoverageStatusCode
MRPCoverageStatusName
UICT_ShortageDefinitionAssign
UICT_BufferUpdateIndicator
TimeTillShortageFilterId
TimeTillShortageFilterText
UICT_BufferMaterial
LotSizingProcedure _MRPMaterial LotSizingProcedure
MaterialLotSizingProcedureName _MRPMaterial MaterialLotSizingProcedureName
_MaterialOverview _MaterialOverview
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'MRP Internal Requirement'
@ObjectModel.usageType:{
  serviceQuality: #C,
  sizeCategory: #S,
  dataClass: #MIXED
}
@VDM.viewType: #CONSUMPTION
@Search.searchable: true

@Metadata.allowExtensions: true

define view entity C_MRPInternalRequirement
  as select from I_MRPProductionDemand
    inner join   I_MaterialShortageDefinition as _MaterialShortageDef on  I_MRPProductionDemand.MaterialShortageProfile      = _MaterialShortageDef.MaterialShortageProfile
                                                                      and I_MRPProductionDemand.MaterialShortageProfileCount = _MaterialShortageDef.MaterialShortageProfileCount
                                                                      and _MaterialShortageDef.UncoveredDemandIsCalculated   = 'X'
  association [0..1] to P_MRPProductionDemandDelay    as _WorkingDaysCount            on  $projection.MRPPlant                     = _WorkingDaysCount.MRPPlant
                                                                                      and $projection.MRPArea                      = _WorkingDaysCount.MRPArea
                                                                                      and $projection.Material                     = _WorkingDaysCount.Material
                                                                                      and $projection.MRPPlanningSegment           = _WorkingDaysCount.MRPPlanningSegment
                                                                                      and $projection.MRPPlanningSegmentType       = _WorkingDaysCount.MRPPlanningSegmentType
                                                                                      and $projection.MaterialShortageProfile      = _WorkingDaysCount.MaterialShortageProfile
                                                                                      and $projection.MaterialShortageProfileCount = _WorkingDaysCount.MaterialShortageProfileCount
                                                                                      and $projection.MRPElement                   = _WorkingDaysCount.MRPElement
                                                                                      and $projection.MRPElementItem               = _WorkingDaysCount.MRPElementItem
                                                                                      and $projection.MRPElementScheduleLine       = _WorkingDaysCount.MRPElementScheduleLine
                                                                                      and $projection.MRPElementCategory           = _WorkingDaysCount.MRPElementCategory
                                                                                      and $projection.MRPElementAvailyOrRqmtDate   = _WorkingDaysCount.MRPElementAvailyOrRqmtDate
  association [0..1] to C_MRPExtRqmtMaterialOverview  as _MaterialOverview            on  $projection.MRPPlant                     = _MaterialOverview.MRPPlant
                                                                                      and $projection.MRPArea                      = _MaterialOverview.MRPArea
                                                                                      and $projection.Material                     = _MaterialOverview.Material
                                                                                      and $projection.MRPPlanningSegment           = _MaterialOverview.MRPPlanningSegment
                                                                                      and $projection.MRPPlanningSegmentType       = _MaterialOverview.MRPPlanningSegmentType
                                                                                      and $projection.MaterialShortageProfile      = _MaterialOverview.MaterialShortageProfile
                                                                                      and $projection.MaterialShortageProfileCount = _MaterialOverview.MaterialShortageProfileCount
  association [0..1] to C_ProcurementProgressTextVH   as _ProcurementProgressText     on  $projection.ProcurementProgress   = _ProcurementProgressText.ProcurementProgress
                                                                                      and _ProcurementProgressText.Language = $session.system_language
  association [0..1] to I_StorageLocation             as _StorageLocation             on  $projection.StorageLocation = _StorageLocation.StorageLocation
                                                                                      and $projection.MRPPlant        = _StorageLocation.Plant
  association [0..*] to I_WorkCenterTextBySemanticKey as _WorkCenterTextBySemanticKey on  $projection.ProductionLine            = _WorkCenterTextBySemanticKey.WorkCenter
                                                                                      and $projection.ProductionPlant           = _WorkCenterTextBySemanticKey.Plant
                                                                                      and _WorkCenterTextBySemanticKey.Language = $session.system_language
  association [0..1] to I_OrderBasic                  as _OrderBasic                  on  I_MRPProductionDemand.SourceMRPElement = _OrderBasic.OrderID

  association [0..1] to I_MRPTypeText                 as _MRPTypeText                 on  $projection.MRPType   = _MRPTypeText.MRPType
                                                                                      and _MRPTypeText.Language = $session.system_language
  association [0..1] to I_MRPAreaPlanningFileEntry    as _LastMRPRun                  on  $projection.Material            = _LastMRPRun.Material
                                                                                      and $projection.MRPPlant            = _LastMRPRun.Plant
                                                                                      and $projection.MRPArea             = _LastMRPRun.MRPArea
                                                                                      and _LastMRPRun.MRPPlanningScenario = '000'

  association [1..1] to I_MRPMaterial                 as _MRPMaterial                 on  $projection.MRPPlant = _MRPMaterial.MRPPlant
                                                                                      and $projection.Material = _MRPMaterial.Material
                                                                                      and $projection.MRPArea  = _MRPMaterial.MRPArea
{
      @ObjectModel.text.element: ['PlantName']
  key I_MRPProductionDemand.MRPPlant,

      @ObjectModel.text.element: [ 'MRPAreaText' ]
  key I_MRPProductionDemand.MRPArea,

      @ObjectModel.text.element: ['MaterialName']
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
  key I_MRPProductionDemand.Material,

  key I_MRPProductionDemand.MRPPlanningSegment,

  key I_MRPProductionDemand.MRPPlanningSegmentType,

  key I_MRPProductionDemand.MaterialShortageProfile,

  key I_MRPProductionDemand.MaterialShortageProfileCount,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
  key I_MRPProductionDemand.MRPElement,

  key I_MRPProductionDemand.MRPElementItem,

  key I_MRPProductionDemand.MRPElementScheduleLine,

  key I_MRPProductionDemand.MRPElementCategory,

  key I_MRPProductionDemand.MRPElementAvailyOrRqmtDate,

      @EndUserText:{label: 'Individual Segment', quickInfo: 'Individual Segment'}
      @Search: {  defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #HIGH}
      I_MRPProductionDemand.MRPPlanningSegmentExternalCode,

      case
        when _WorkingDaysCount(P_SAPClient:$session.client).AvailOrRqmtDatOffsetInWorkdays < 0
          then 0
        else _WorkingDaysCount(P_SAPClient:$session.client).AvailOrRqmtDatOffsetInWorkdays
      end                                                                                                                                                                                                as AvailOrRqmtDateOffsetWorkdays,

      I_MRPProductionDemand.MaterialExternalID,
      _MaterialShortageDef.MaterialShortageDefinitionName,
      @ObjectModel.text.element: [ 'MaterialShortageDefinitionName' ]
      I_MRPProductionDemand.MaterialShortageDefinition,
      I_MRPProductionDemand._MRPElementCategoryText.MRPElementCategoryName,
      I_MRPProductionDemand._MRPElementCategoryText.MRPElementCategoryShortName,
      I_MRPProductionDemand._SrcMRPElementCategoryText.MRPElementCategoryName                                                                                                                            as SourceMRPElementCategoryName,
      I_MRPProductionDemand._SrcMRPElementCategoryText.MRPElementCategoryShortName                                                                                                                       as SrcMRPElementCategoryShortName,

      case
        when I_MRPProductionDemand.MRPElementAvailyOrRqmtDate > tstmp_to_dats(tstmp_current_utctimestamp(), I_MRPProductionDemand._Address.AddressTimeZone, $session.client, 'INITIAL' )
          then dats_days_between(tstmp_to_dats(tstmp_current_utctimestamp(), I_MRPProductionDemand._Address.AddressTimeZone, $session.client, 'INITIAL' ), I_MRPProductionDemand.MRPElementAvailyOrRqmtDate )
        else 0 end                                                                                                                                                                                       as AvailOrRqmtDateOffsetDays,
      I_MRPProductionDemand.LatestPlannedAvailabilityDate,

      case
        when I_MRPProductionDemand.SourceMRPElementItem is initial
          then cast( concat( $projection.SrcMRPElementCategoryShortName, concat( '-', ltrim ( I_MRPProductionDemand.SourceMRPElement, '0' ) ) ) as char30 )
        else cast( concat( $projection.SrcMRPElementCategoryShortName,
                   concat( '-', concat( ltrim ( I_MRPProductionDemand.SourceMRPElement, '0' ),
                   concat( '-', ltrim ( I_MRPProductionDemand.SourceMRPElementItem, '0' ) ) ) ) ) as char30 )
      end                                                                                                                                                                                                as MRPAffectedOrder,

      I_MRPProductionDemand.FactoryCalendar,

      @ObjectModel.text.element: ['MaterialName']
      I_MRPProductionDemand.Material                                                                                                                                                                     as ComponentMaterial,
      I_MRPProductionDemand.MaterialName,

      I_MRPProductionDemand._UnitOfMeasureText.UnitOfMeasureCommercialName,

      @ObjectModel.text.element: [ 'MRPControllerName' ]
      I_MRPProductionDemand.MRPController,
      I_MRPProductionDemand.MaterialBaseUnit,

      I_MRPProductionDemand.UnitOfMeasureNumberOfDecimals                                                                                                                                                as TargetQuantityUnitDcmls,
      I_MRPProductionDemand.UnitOfMeasureDspNmbrOfDcmls                                                                                                                                                  as TargetQuantityUnitDisplayDcmls,

      I_MRPProductionDemand.SourceMRPElementCategory,
      @ObjectModel.text.element: [ 'OrderDescription' ]
      ltrim ( I_MRPProductionDemand.SourceMRPElement, '0' )                                                                                                                                              as SourceMRPElement,

      _OrderBasic.OrderDescription,
      I_MRPProductionDemand.SourceMRPElementItem,

      @ObjectModel.text.element: [ 'MaximumDelayInDaysText' ]
      I_MRPProductionDemand.MaximumDelayInDays,

      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_REQ_VIRTUAL_FLDS'
      cast( '' as abap.char( 30 ))                                                                                                                                                                       as MaximumDelayInDaysText,

      @ObjectModel.filter.transformedBy: 'ABAP:CL_PP_MRP_REQ_VIRTUAL_FLDS'
      @ObjectModel.text.element: [ 'MaximumDelayInWorkDaysText' ]
      I_MRPProductionDemand.MaximumDelayInWorkdays,
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_REQ_VIRTUAL_FLDS'
      cast( '' as abap.char( 30 ))                                                                                                                                                                       as MaximumDelayInWorkDaysText,


      @ObjectModel.text.element: [ 'StorageLocationName' ]
      I_MRPProductionDemand.StorageLocation,
      _StorageLocation.StorageLocationName,

      I_MRPProductionDemand.PlantName,

      @ObjectModel.text.element: [ 'OrderTypeName' ]
      I_MRPProductionDemand.OrderType,
      I_MRPProductionDemand._OrderTypeText.OrderTypeName,
      I_MRPProductionDemand.MRPControllerName,
      I_MRPProductionDemand.MRPAreaText,

      @ObjectModel.text.element: [ 'MRPTypeName' ]
      I_MRPProductionDemand.MRPType,

      _MRPTypeText.MRPTypeName,

      case
        when I_MRPProductionDemand.SourceMRPElementItem is initial
          then cast ( ltrim ( I_MRPProductionDemand.SourceMRPElement, '0' ) as abap.char( 18 ) )
        else cast ( concat( ltrim ( I_MRPProductionDemand.SourceMRPElement, '0' ), concat( '-', ltrim ( I_MRPProductionDemand.SourceMRPElementItem, '0' ) ) ) as abap.char( 18 ) )
      end                                                                                                                                                                                                as SourceOrderName,


      ---------------------------------------------------------------------------------------------------------
      -- Quantity and Values                                                                    --
      ---------------------------------------------------------------------------------------------------------
      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      I_MRPProductionDemand.MRPElementMissingQuantity,

      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      I_MRPProductionDemand.MRPElementOpenQuantity,

      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      I_MRPProductionDemand.MRPElementUncoveredQuantity,

      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      I_MRPProductionDemand.MRPElementDelayedQuantity,

      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      I_MRPProductionDemand.OrderQuantity,

      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      I_MRPProductionDemand.MRPElementOpenQuantity - I_MRPProductionDemand.MRPElementUncoveredQuantity - I_MRPProductionDemand.MRPElementDelayedQuantity                                                 as MRPElementCoveredQuantity,

      @Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
      cast ( case when I_MRPProductionDemand.OrderQuantity - I_MRPProductionDemand.MRPElementOpenQuantity > 0
      then I_MRPProductionDemand.OrderQuantity - I_MRPProductionDemand.MRPElementOpenQuantity
      else 0 end as abap.dec( 20, 3 ) )                                                                                                                                                                  as MRPElementIssuedQuantity,

      @Semantics.quantity.unitOfMeasure: 'UnitUoM'
      case when I_MRPProductionDemand.OrderQuantity is not initial then
       ceil( cast( cast ( ( I_MRPProductionDemand.MRPElementUncoveredQuantity + I_MRPProductionDemand.MRPElementDelayedQuantity ) as abap.fltp ) * 100.0 / cast ( I_MRPProductionDemand.OrderQuantity as abap.fltp ) as abap.dec( 23, 2 ) ) )
       else 0 end                                                                                                                                                                                        as MRPElementMissingQuantityInPct,

      cast( '%' as abap.unit( 3 ) )                                                                                                                                                                      as UnitUoM,

      ---------------------------------------------------------------------------------------------------------
      -- Time Till Shortage Filter Values                                                                    --
      ---------------------------------------------------------------------------------------------------------
      I_MRPProductionDemand.HasMaterialShortageReplnmtLead,
      I_MRPProductionDemand.HasShortageTotalReplnmtLead,
      I_MRPProductionDemand.HasShortageManualPlanHorizon,
      I_MRPProductionDemand.HasShortageMRPSafetyDuration,
      case when I_MRPProductionDemand.MRPElementAvailyOrRqmtDate is null then 9999 else
      dats_days_between(tstmp_to_dats(tstmp_current_utctimestamp(), I_MRPProductionDemand._Address.AddressTimeZone, $session.client, 'INITIAL' ), I_MRPProductionDemand.MRPElementAvailyOrRqmtDate ) end as TimeTillShortageInCalendarDays,


      ---------------------------------------------------------------------------------------------------------
      -- Production Data                                                                                           --
      ---------------------------------------------------------------------------------------------------------
      @ObjectModel.text.element: [ 'ProducedMaterialName' ]
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      I_MRPProductionDemand.ProducedMaterial,

      @ObjectModel.text.element: [ 'ProducedMaterialName' ]
      I_MRPProductionDemand.ProducedMaterial                                                                                                                                                             as SourceMaterial,
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      I_MRPProductionDemand._ProducedMaterialText.MaterialName                                                                                                                                           as ProducedMaterialName,

      @ObjectModel.text.element: [ 'ProductionSupervisorName' ]
      I_MRPProductionDemand.ProductionSupervisor,
      I_MRPProductionDemand.ProductionSupervisorName,

      @ObjectModel.text.element: [ 'ProductionVersionText' ]
      I_MRPProductionDemand.ProductionVersion,
      I_MRPProductionDemand.ProductionVersionText,

      @ObjectModel.text.element: [ 'WorkCenterText' ]
      I_MRPProductionDemand.ProductionLine,
      _WorkCenterTextBySemanticKey.WorkCenterText,

      I_MRPProductionDemand.ProductionPlant,

      @ObjectModel.text.element: [ 'ProcurementProgressDesc' ]
      @UI.textArrangement: #TEXT_ONLY
      I_MRPProductionDemand.ProcurementProgress,
      _ProcurementProgressText.ProcurementProgressDesc,

      _LastMRPRun.MaterialLastMRPDateTime,

      @ObjectModel.filter.transformedBy: 'ABAP:CL_PP_MRP_REQ_VIRTUAL_FLDS'
      @ObjectModel          : { text: { element: [ 'MRPCoverageStatusName' ] } }
      cast( 0 as int2 )                                                                                                                                                                                  as MRPCoverageStatusCode,

      cast( '' as char25 )                                                                                                                                                                               as MRPCoverageStatusName,

      @ObjectModel.filter.transformedBy: 'ABAP:CL_PP_MRP_REQ_VIRTUAL_FLDS'
      @UI.hidden: true
      cast( '' as abap_boolean preserving type  )                                                                                                                                                        as UICT_ShortageDefinitionAssign,


      @ObjectModel.filter.transformedBy: 'ABAP:CL_PP_MRP_REQ_VIRTUAL_FLDS'
      @UI.hidden: true
      cast( 'X' as abap_boolean preserving type  )                                                                                                                                                       as UICT_BufferUpdateIndicator,

      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PP_MRP_REQ_VIRTUAL_FLDS'
      @ObjectModel.text.element: [ 'TimeTillShortageFilterText' ]
      @ObjectModel.filter: { enabled: true, transformedBy: 'ABAP:CL_PP_MRP_REQ_VIRTUAL_FLDS' }
      cast( 0 as abap.int2 )                                                                                                                                                                             as TimeTillShortageFilterId,
      cast( '' as abap.char( 50 ) )                                                                                                                                                                      as TimeTillShortageFilterText,


      @ObjectModel.filter.transformedBy: 'ABAP:CL_PP_MRP_REQ_VIRTUAL_FLDS'
      @UI.hidden: true
      cast( '' as matnr )                                                                                                                                                                                as UICT_BufferMaterial,


      @ObjectModel.text.element: [ 'MaterialLotSizingProcedureName' ]
      _MRPMaterial.LotSizingProcedure,
      _MRPMaterial.MaterialLotSizingProcedureName,

      _MaterialOverview
}
where
  I_MRPProductionDemand.MRPElementAvailyOrRqmtDate is not initial