I_ProjectMaterialComponent

DDL: I_PROJECTMATERIALCOMPONENT SQL: IPROJMATCOMP Type: view BASIC

Project Material Component Details

I_ProjectMaterialComponent is a Basic CDS View that provides data about "Project Material Component Details" in SAP S/4HANA. It reads from 6 data sources and exposes 114 fields with key fields Reservation, ReservationItem, RecordType. It has 21 associations to related views.

Data Sources (6)

SourceAliasJoin Type
grpga grpga left_outer
I_NetworkActivity NetworkActivity inner
P_Projmatcomponent01 PurOrd left_outer
P_Projmatcomponent01 PurReq left_outer
resb resb from
rsadd rsadd left_outer

Associations (21)

CardinalityTargetAliasCondition
[1..1] I_WBSElement _WBSGroupElement $projection.GroupingWBSElementInternalID = _WBSGroupElement.WBSElementInternalID
[1..1] I_Plant _PlantName $projection.Plant = _PlantName.Plant
[0..1] I_ProjectNetwork _ProjectNetwork $projection.ProjectNetwork = _ProjectNetwork.ProjectNetwork
[0..1] I_WBSElement _WBSElement $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID
[0..1] I_MaterialText _MaterialText $projection.Material = _MaterialText.Material and _MaterialText.Language = $session.system_language
[0..1] I_NetworkActivity _NetworkActivity $projection.ProjectNetwork = _NetworkActivity.ProjectNetwork and $projection.NetworkActivity = _NetworkActivity.NetworkActivity
[0..1] I_InventorySpecialStockType _InventorySpecialStockType $projection.MaterialCompIsSpecialStock = _InventorySpecialStockType.InventorySpecialStockType
[0..1] I_SpecialStockValuationName _SpecialStockValuationName $projection.InventorySpecialStockValnType = _SpecialStockValuationName.InventorySpecialStockValnType
[0..1] I_StorageLocation _StorageLocation $projection.Plant = _StorageLocation.Plant and $projection.StorageLocation = _StorageLocation.StorageLocation
[0..1] I_AccAssgnmtCategory _AccAssgnmtCategory $projection.AccountAssignmentCategory = _AccAssgnmtCategory.AccountAssignmentCategory
[0..*] I_MaterialGroup _MaterialGroup $projection.MaterialGroup = _MaterialGroup.MaterialGroup
[1..1] I_Material _Material $projection.Material = _Material.Material
[0..1] I_BillOfMaterialItemCategory _BillOfMaterialItemCategory $projection.BOMItemCategory = _BillOfMaterialItemCategory.BillOfMaterialItemCategory
[1..1] I_Supplier _Supplier $projection.Creditor = _Supplier.Supplier
[1..1] I_ProjMatlProcurementType _ProjMatlProcurementType $projection.ProcurementType = _ProjMatlProcurementType.ProcurementType
[1..1] I_ConsumptionPostingName _ConsumptionPostingName $projection.ConsumptionPosting = _ConsumptionPostingName.ConsumptionPosting
[0..1] I_ProjMatBomCategory _ProjMatBomCategory $projection.BillOfMaterialCategory = _ProjMatBomCategory.BillOfMaterialCategory
[0..1] I_ProjMatBomCategory _BillOfMaterialCategory $projection.MaterialCompMainAssemblyCat = _BillOfMaterialCategory.BillOfMaterialCategory
[0..1] P_ProjMatBOMAssembly _ProjMatBOMAssembly resb.stlty = _ProjMatBOMAssembly.BillOfMaterialCategory and resb.stlnr = _ProjMatBOMAssembly.BillOfMaterial and resb.stlal = _ProjMatBOMAssembly.BillOfMaterialVariant
[0..1] P_ProjMatBOMAssembly _BillOfMaterial ( rsadd.bstln = _BillOfMaterial.BillOfMaterial and rsadd.bstlt = _BillOfMaterial.BillOfMaterialCategory ) or( rsadd.bstln = _BillOfMaterial.BillOfMaterial )
[1..1] E_ProjectMaterialComponent _Extension resb.rsnum = _Extension.Reservation and resb.rspos = _Extension.ReservationItem and resb.rsart = _Extension.RecordType

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName IPROJMATCOMP view
EndUserText.label Project Material Component Details view
VDM.viewType #BASIC view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MASTER view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.compiler.compareFilter true view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view

Fields (114)

KeyFieldSource TableSource FieldDescription
KEY Reservation resb rsnum
KEY ReservationItem
KEY RecordType resb rsart
ProjectNetwork
Plant resb werks
Material resb matnr
ProjectNetworkInternalID resb aufpl
NetworkActivityInternalID resb aplzl
GoodsMovementType
RqmtDateIsEnteredManually
ProductionSeries
BillOfMaterialCategory resb stlty
OperationLeadTimeOffset
OperationLeadTimeOffsetUnit
BillOfMaterialItemNumber resb posnr
BOMItemDescription
PurchasingGroup
SalesOrder
SalesOrderItem
InventorySpecialStockValnType resb kzbws
ConsumptionPosting resb kzvbr
StorageLocation
Creditor resb lifnr
BaseUnit resb meins
MaterialComponentObject resb objnr
WBSElementInternalID
GLAccount
ReservationIsFinallyIssued resb kzear
MaterialCompIsCostRelevant
MatlCompIsMarkedForBackflush
IsBulkMaterialComponent
MaterialCompIsSpecialStock
MatlCompIsTextItem
MaterialComponentIsMissing
MatlCompIsMarkedForDeletion
AccountAssignmentCategory
MatlCompIsRelevantForMRP
GoodsRecipientName
GoodsMovementIsAllowed
RequisitionerUser rsadd afnam
LastChangedByUser
LastChangeDate
CreatedByUser
CreationDate
Supplier
BillingPlan rsadd fplnr
ProjectNetworkDescription _ProjectNetwork ProjectNetworkDescription
Project
ProjectWithCodingMask I_NetworkActivity ProjectWithCodingMask
MatlCompRequirementDate
MaterialCompIsProcuredDirectly
MaterialComponentIsPhantomItem
MatlCompIsProcuredExternally
NetworkActivity
Currency
ShortfallQuantity
WithdrawnQuantity
ReceivedQuantity
RequirementQuantityInBaseUnit
MRPRequiredQuantityInBaseUnit resb lmeng
ConfirmedAvailableQuantity resb vmeng
MaterialComponentPrice resb gpreis Price
WithdrawnQuantityAmount resb enwrt Withdrawn Quantity Amount
DeliveryDurationInDays
GoodsReceiptDurationInDays resb webaz
MaterialPriceUnitQty resb peinh Price Per Unit
UnloadingPointName
ProjectObjectChangeNumber resb aennr
FormulaKey
BOMItemCategory
MaterialGroup resb matkl
MaterialQtyToBaseQtyDnmntr resb umren
QuantityNumerator resb umrez
fltpendasCommittedQuantity Committed Quantity
Assembly _ProjMatBOMAssembly Assembly
AssemblyName _ProjMatBOMAssembly AssemblyName
BillOfMaterial _BillOfMaterial Assembly
BOMHeaderText _BillOfMaterial AssemblyName
MaterialCompMainAssemblyCat _BillOfMaterial BillOfMaterialCategory
GroupingWBSElementInternalID grpga grpnr
OpenQuantity Open Quantity
PurchaseRequisition
PurchaseRequisitionItem P_Projmatcomponent01 PurchaseRequisitionItem
PurchaseOrder P_Projmatcomponent01 PurchaseOrder
PurchaseOrderItem P_Projmatcomponent01 PurchaseOrderItem
FldLogsSupplyProcess resb fldlogssupplyprocess
FldLogsDelivIsHeldOnShore resb fldlogsdelivisheldonshore
FldLogsVersion resb fldlogsversion
ProductTypeCode resb producttype
PerformancePeriodStartDate resb startdate
PerformancePeriodEndDate resb enddate
ServicePerformer resb serviceperformer
LeanServiceDuration resb serviceduration
LeanServiceDurationUnit resb servicedurationunit
OverallLimitAmount rsadd overalllimitamount
ExpectedOverallLimitAmount rsadd expectedoveralllimitamount
_WBSElement _WBSElement
_WBSGroupElement _WBSGroupElement
_AccAssgnmtCategory _AccAssgnmtCategory
_StorageLocation _StorageLocation
_InventorySpecialStockType _InventorySpecialStockType
ControllingArea _ProjectNetwork ControllingArea
_MaterialText _MaterialText
_PlantName _PlantName
_ProjectNetwork _ProjectNetwork
_NetworkActivity _NetworkActivity
_Material _Material
_BillOfMaterialItemCategory _BillOfMaterialItemCategory
_Supplier _Supplier
_ProjMatlProcurementType _ProjMatlProcurementType
_ConsumptionPostingName _ConsumptionPostingName
_ProjMatBomCategory _ProjMatBomCategory
_BillOfMaterialCategory _BillOfMaterialCategory
_SpecialStockValuationName _SpecialStockValuationName
@AbapCatalog.sqlViewName: 'IPROJMATCOMP'
@EndUserText.label: 'Project Material Component Details'
@VDM.viewType: #BASIC
//@Analytics: { dataCategory: #DIMENSION, dataExtraction.enabled: true }

//@ObjectModel.dataCategory: #DIMENSION

@AccessControl.authorizationCheck: #CHECK
//@AccessControl.privilegedAssociations:  [ '_Extension' ]

@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory : #XL
@ObjectModel.usageType.dataClass: #MASTER
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@VDM.lifecycle.contract.type:  #SAP_INTERNAL_API

define view I_ProjectMaterialComponent

  as select from    resb
    inner join      I_NetworkActivity    as NetworkActivity on  resb.aufnr = NetworkActivity.ProjectNetwork
                                                            and resb.vornr = NetworkActivity.NetworkActivity
    left outer join rsadd                                   on  resb.rsnum = rsadd.rsnum
                                                            and resb.rspos = rsadd.rspos
                                                            and resb.rsart = rsadd.rsart
    left outer join grpga                                   on grpga.pspnr = resb.pspel

    left outer join P_Projmatcomponent01 as PurReq          on  resb.rsnum = PurReq.Reservation
                                                            and resb.rspos = PurReq.ReservationItem
                                                            and resb.rsart = PurReq.RecordType
                                                            and PurReq.PurchaseRequisition != ''
    left outer join P_Projmatcomponent01 as PurOrd          on  resb.rsnum = PurOrd.Reservation
                                                            and resb.rspos = PurOrd.ReservationItem
                                                            and resb.rsart = PurOrd.RecordType
                                                            and PurOrd.PurchaseOrder != ''

  association [1..1] to I_WBSElement                 as _WBSGroupElement            on  $projection.GroupingWBSElementInternalID = _WBSGroupElement.WBSElementInternalID
  association [1..1] to I_Plant                      as _PlantName                  on  $projection.Plant = _PlantName.Plant
  association [0..1] to I_ProjectNetwork             as _ProjectNetwork             on  $projection.ProjectNetwork = _ProjectNetwork.ProjectNetwork
  association [0..1] to I_WBSElement                 as _WBSElement                 on  $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID
  association [0..1] to I_MaterialText               as _MaterialText               on  $projection.Material   = _MaterialText.Material
                                                                                    and _MaterialText.Language = $session.system_language
  association [0..1] to I_NetworkActivity            as _NetworkActivity            on  $projection.ProjectNetwork  = _NetworkActivity.ProjectNetwork
                                                                                    and $projection.NetworkActivity = _NetworkActivity.NetworkActivity
  association [0..1] to I_InventorySpecialStockType  as _InventorySpecialStockType  on  $projection.MaterialCompIsSpecialStock = _InventorySpecialStockType.InventorySpecialStockType
  association [0..1] to I_SpecialStockValuationName  as _SpecialStockValuationName  on  $projection.InventorySpecialStockValnType = _SpecialStockValuationName.InventorySpecialStockValnType
  association [0..1] to I_StorageLocation            as _StorageLocation            on  $projection.Plant           = _StorageLocation.Plant
                                                                                    and $projection.StorageLocation = _StorageLocation.StorageLocation
  association [0..1] to I_AccAssgnmtCategory         as _AccAssgnmtCategory         on  $projection.AccountAssignmentCategory = _AccAssgnmtCategory.AccountAssignmentCategory
  association [0..*] to I_MaterialGroup              as _MaterialGroup              on  $projection.MaterialGroup = _MaterialGroup.MaterialGroup
  association [1..1] to I_Material                   as _Material                   on  $projection.Material = _Material.Material
  association [0..1] to I_BillOfMaterialItemCategory as _BillOfMaterialItemCategory on  $projection.BOMItemCategory = _BillOfMaterialItemCategory.BillOfMaterialItemCategory
  association [1..1] to I_Supplier                   as _Supplier                   on  $projection.Creditor = _Supplier.Supplier
  association [1..1] to I_ProjMatlProcurementType    as _ProjMatlProcurementType    on  $projection.ProcurementType = _ProjMatlProcurementType.ProcurementType
  association [1..1] to I_ConsumptionPostingName     as _ConsumptionPostingName     on  $projection.ConsumptionPosting = _ConsumptionPostingName.ConsumptionPosting
  association [0..1] to I_ProjMatBomCategory         as _ProjMatBomCategory         on  $projection.BillOfMaterialCategory = _ProjMatBomCategory.BillOfMaterialCategory
  association [0..1] to I_ProjMatBomCategory         as _BillOfMaterialCategory     on  $projection.MaterialCompMainAssemblyCat = _BillOfMaterialCategory.BillOfMaterialCategory
  /*
  association [0..1] to I_BOMAssembly                as _BOMAssembly                on  resb.stlty = _BOMAssembly.stlty
                                                                                    and resb.stlnr = _BOMAssembly.stlnr
                                                                                    and resb.stlal = _BOMAssembly.stlal
  association [0..1] to I_BOMAssembly                as _MainBOM1                   on  rsadd.bstln = _MainBOM1.stlnr
                                                                                    and rsadd.bstlt = _MainBOM1.stlty
  association [0..1] to I_BOMAssembly                as _MainBOM2                   on  rsadd.bstln = _MainBOM2.stlnr

  association [0..1] to I_ProjMatBomCategory         as _BillOfMaterialCategory     on  $projection.MainBOMCat = _BillOfMaterialCategory.ProjMatBomCategory
  */
  association [0..1] to P_ProjMatBOMAssembly         as _ProjMatBOMAssembly         on  resb.stlty = _ProjMatBOMAssembly.BillOfMaterialCategory
                                                                                    and resb.stlnr = _ProjMatBOMAssembly.BillOfMaterial
                                                                                    and resb.stlal = _ProjMatBOMAssembly.BillOfMaterialVariant
  association [0..1] to P_ProjMatBOMAssembly         as _BillOfMaterial             on  (
      rsadd.bstln     = _BillOfMaterial.BillOfMaterial
      and rsadd.bstlt = _BillOfMaterial.BillOfMaterialCategory
    )
  or(
    rsadd.bstln       = _BillOfMaterial.BillOfMaterial
  )
  association [1..1] to E_ProjectMaterialComponent   as _Extension                  on  resb.rsnum = _Extension.Reservation
                                                                                    and resb.rspos = _Extension.ReservationItem
                                                                                    and resb.rsart = _Extension.RecordType

{

  key resb.rsnum                                                                              as  Reservation, //

  key cast (resb.rspos as ps_s4_rspos preserving type )                                       as  ReservationItem, //

  key resb.rsart                                                                              as  RecordType, //

      cast(resb.aufnr  as ps_s4_aufnr preserving type )                                       as  ProjectNetwork, //

      resb.werks                                                                              as  Plant, //

      resb.matnr                                                                              as  Material, //


      resb.aufpl                                                                              as  ProjectNetworkInternalID,
      resb.aplzl                                                                              as  NetworkActivityInternalID,
      //    resb.bdart                                   as  RequirementType, //

      cast (resb.bwart as bwartwa)                                                            as  GoodsMovementType, //

      cast (resb.kzmpf as ps_s4_kzmpf)                                                        as  RqmtDateIsEnteredManually,
      cast (resb.sernr as ps_s4_sernr)                                                        as  ProductionSeries,

      resb.stlty                                                                              as  BillOfMaterialCategory,

      cast (resb.nlfzv as ps_s4_cs_nlfzv)                                                     as  OperationLeadTimeOffset,
      cast (resb.nlfmv as ps_s4_cs_nlfmv)                                                     as  OperationLeadTimeOffsetUnit,
      resb.posnr                                                                              as  BillOfMaterialItemNumber,
      cast (resb.potx1 as ps_s4_potx1)                                                        as  BOMItemDescription,
      //     cast (resb.charg as charg_d)                 as  Batch, //

      cast (resb.ekgrp as ekgrp)                                                              as  PurchasingGroup, //

      //    @Semantics.unitOfMeasure:true

      //     resb.erfme                                   as  EntryUnit, //


      //    resb.fmeng                                   as  QuantityIsFixed, //


      cast  (resb.kdauf as ps_s4_kdauf)                                                       as  SalesOrder, //


      cast(resb.kdpos as ps_s4_kdpos)                                                         as  SalesOrderItem, //


      resb.kzbws                                                                              as  InventorySpecialStockValnType, //


      resb.kzvbr                                                                              as  ConsumptionPosting, //


      cast( resb.lgort as ps_s4_lgort_d preserving type )                                     as  StorageLocation, //


      resb.lifnr                                                                              as  Creditor, //

      @Semantics.unitOfMeasure:true
      resb.meins                                                                              as  BaseUnit, //


      resb.objnr                                                                              as  MaterialComponentObject, //


      cast( NetworkActivity.WBSElementInternalID as ps_s4_pspnr)                              as  WBSElementInternalID,

      cast (resb.saknr as saknr)                                                              as  GLAccount, //



      //     resb.sortf                                   as  MatlCompFreeDefinedAttribute, //


      // _PlantName.PlantName,

      /*
            case when
                        resb.flgex
                    =   'X'
                and     resb.flgex
                    =   'E'
                and     resb.knttp
                    !=  ''
                and     rsadd.strecke
                    =   'X'
            then
                'X'
            else
                ''
            end                                                                               as  IsThirdPtyReqnForSalesOrdItem,
      */
      case when
                  resb.no_disp
              =   'X'

      then
          ''
      else
          'X'
      end                                                                                     as  PurchaseOrderExists,

      //     resb.pbdnr                                   as  RequirementPlan, //


      //     rsadd.bednr                                  as  RequirementTracking, //


      resb.kzear                                                                              as  ReservationIsFinallyIssued, //


      //    cast (rsadd.idnlf as idnlf)                   as  MaterialIDByVendor, //


      //     cast (rsadd.kunnr as kunnr)                  as  Customer, //


      cast (resb.sanka as ps_s4_ck_selkz)                                                     as  MaterialCompIsCostRelevant, //


      cast (resb.rgekz as rgekz)                                                              as  MatlCompIsMarkedForBackflush, //


      //    cast (resb.rohps as rohps)                   as  MaterialCompIsVariableSized, //


      cast (resb.schgt as schgt)                                                              as  IsBulkMaterialComponent, //


      cast (resb.sobkz as sobkz)                                                              as  MaterialCompIsSpecialStock, //


      cast (resb.txtps as txtps)                                                              as  MatlCompIsTextItem, //


      cast (resb.xfehl as xfehl)                                                              as  MaterialComponentIsMissing, //


      cast (resb.xloek as ps_s4_loevm)                                                        as  MatlCompIsMarkedForDeletion, //


      //    rsadd.flief                               as  FixedVendorName, //

      // @EndUserText.label: 'Is Reservation For Network'

      /*
            case when
                        resb.flgex
                    =   ''
                and     resb.vorab
                    =   ''
                and     resb.knttp
                    =   ''
            then
                'X'
            else
                ''
            end                                                                               as  IsReservationForNetwork,
            // @EndUserText.label: 'Is Plnd Indep Rqmt For Plant'

            case when
                        resb.flgex
                    =   ''
                and     resb.vorab
                    =   'X'
                and     resb.knttp
                    =   ''
            then
                'X'
            else
                ''
            end                                                                               as  IsPlndIndepRqmtForPlant,
            // @EndUserText.label: 'Is Pur Reqn For Network'

            case when
                        resb.sobkz
                    =   ''
                and     resb.knttp
                    !=  ''
                and     rsadd.strecke
                    =   ''
            then
                'X'
            else
                ''
            end                                                                               as  IsPurReqnForNetwork,
            // @EndUserText.label: 'Is Third Pty Reqn For Network'

            case when
                        resb.sobkz
                    =   ''
                and     resb.knttp
                    !=  ''
                and     rsadd.strecke
                    =   'X'
            then
                'X'
            else
                ''
            end                                                                               as  IsThirdPtyReqnForNetwork,
            // @EndUserText.label: 'Is Reservation For WBS Element'

            case when
                        resb.flgex
                    =   ''
                and     resb.vorab
                    =   ''
                and     resb.sobkz
                    =   'Q'
                and     resb.knttp
                    !=  ''
                and resb.pbdnr = ''
            then
                'X'
            else
                ''
            end                                                                               as  IsReservationForWBSElement,
            // @EndUserText.label: 'Is Plnd Indep Rqmt For WBS Element'

            case when
                        resb.flgex
                    =   ''
                and     resb.vorab
                    =   'X'
                and     resb.sobkz
                    =   'Q'
                and     resb.knttp
                    !=  ''
                and resb.pbdnr != ''
            then
                'X'
            else
                ''
            end                                                                               as  IsPlndIndepRqmtForWBSElement,
            // @EndUserText.label: 'Is Resvn Pur Reqn For WBS Element'

            case when
                        resb.flgex
                    =   'X'
                and     resb.vorab
                    =   ''
                and     resb.sobkz
                    =   'Q'
                and     resb.knttp
                    !=  ''
                and     rsadd.strecke
                    =   ''
            then
                'X'
            else
                ''
            end                                                                               as  IsResvnPurReqnForWBSElement,
            // @EndUserText.label: 'Is Third Pty Reqn For WBS Element'

            case when
                        resb.flgex
                    =   'X'
                and     resb.sobkz
                    =   'Q'
                and     resb.knttp
                    !=  ''
                and     rsadd.strecke
                    =   'X'
            then
                'X'
            else
                ''
            end                                                                               as  IsThirdPtyReqnForWBSElement,
            // @EndUserText.label: 'Is Prelim Reqn For WBS Element'

            case when
                        resb.flgex
                    =   'X'
                and     resb.vorab
                    =   'X'
                and     resb.sobkz
                    =   'Q'
                and     resb.knttp
                    !=  ''
                and     rsadd.strecke
                    =   ''
            then
                'X'
            else
                ''
            end                                                                               as  IsPrelimReqnForWBSElement,
            // @EndUserText.label: 'Is Reservation For Sales Ord Item'

            case when
                        resb.flgex
                    =   ''
                and     resb.vorab
                    =   ''
                and     resb.sobkz
                    =   'E'
                and     resb.knttp
                    !=  ''
                and resb.pbdnr = ''
            then
                'X'
            else
                ''
            end                                                                               as  IsReservationForSalesOrdItem,
            // @EndUserText.label: 'Is Plnd Indep Rqmt For Sales Ord Item'

            case when
                        resb.flgex
                    =   ''
                and     resb.vorab
                    =   'X'
                and     resb.sobkz
                    =   'E'
                and     resb.knttp
                    !=  ''
                and resb.pbdnr != ''
            then
                'X'
            else
                ''
            end                                                                               as  IsPlndIndepRqmtForSalesOrdItem,
            // @EndUserText.label: 'Is Resvn Pur Reqn For Sales Ord Item'

            case when
                        resb.flgex
                    =   'X'
                and     resb.vorab
                    =   ''
                and     resb.sobkz
                    =   'E'
                and     resb.knttp
                    !=  ''
                and     rsadd.strecke
                    =   ''
            then
                'X'
            else
                ''
            end                                                                               as  IsResvnPurReqnForSalesOrdItem,
            // @EndUserText.label: 'Is Prelim Reqn For Sales Ord Item'

            case when
                        resb.flgex
                    =   'X'
                and     resb.vorab
                    =   'X'
                and     resb.sobkz
                    =   'E'
                and     resb.knttp
                    !=  ''
                and     rsadd.strecke
                    =   ''
            then
                'X'
            else
                ''
            end                                                                               as  IsPrelimReqnForSalesOrdItem,

      */
      //    cast (resb.kdein as kdein)                   as  ScheduleLine, //


      //     cast (resb.kfpos as kfpos)                   as  MatlCompIsConfigurable, //


      cast (resb.knttp as ps_s4_knttp)                                                        as  AccountAssignmentCategory, //


      //     cast (resb.nafkz as nafkz)                   as  IsFollowUpMaterialActive, //


      cast (resb.no_disp as no_disp_plus)                                                     as  MatlCompIsRelevantForMRP, //


      cast(resb.wempf   as  ps_s4_wempf )                                                     as  GoodsRecipientName, //


      cast (resb.xwaok as xwaok)                                                              as  GoodsMovementIsAllowed, //


      rsadd.afnam                                                                             as  RequisitionerUser, //


      cast (rsadd.changeby as ps_s4_aenam)                                                    as  LastChangedByUser, //


      cast (rsadd.changedat as ps_s4_aedat)                                                   as  LastChangeDate, //


      cast (rsadd.creaby as ernam)                                                            as  CreatedByUser, //


      cast (rsadd.creadat as erdat)                                                           as  CreationDate,  //


      //     rsadd.ekorg                               as  PurchasingOrganisation, //


      cast (rsadd.emlif as emlif)                                                             as  Supplier, //


      rsadd.fplnr                                                                             as  BillingPlan, //


      //     rsadd.kzfix                                  as  PurgInfoRecdDataIsFixed, //


      _ProjectNetwork.ProjectNetworkDescription                                               as  ProjectNetworkDescription, //

      cast( NetworkActivity.Project as psb_bo_pspid_de preserving type )                      as  Project, //

      NetworkActivity.ProjectWithCodingMask                                                   as  ProjectWithCodingMask,

      cast ( resb.bdter as ps_s4_bdter preserving type )                                      as  MatlCompRequirementDate, //


      //     resb.cuobj                                   as  ProductConfiguration, //


      cast (resb.dbskz as dbskz)                                                              as  MaterialCompIsProcuredDirectly, //


      cast (resb.dumps as dumps)                                                              as  MaterialComponentIsPhantomItem, //


      cast (resb.flgex as flgex)                                                              as  MatlCompIsProcuredExternally, //


      //      cast(resb.vorab as vorabkz)                  as  IsPreliminaryOrder, //


      cast(resb.vornr  as pt_vornr_receiver preserving type )                                 as  NetworkActivity, //

      @Semantics.currencyCode: true
      cast (resb.waers as waers)                                                              as  Currency, //




      @DefaultAggregation: #NONE
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      cast (resb.flmng as ps_s4_flmng)                                                        as  ShortfallQuantity, //


      //     @DefaultAggregation: #NONE

      //     @Semantics.quantity.unitOfMeasure: 'EntryUnit'

      //      resb.erfmg                                   as  QuantityInEntryUnit, //


      @DefaultAggregation: #NONE
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      cast (resb.enmng  as pph_enmng )                                                        as  WithdrawnQuantity, //


      @DefaultAggregation: #NONE
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      cast (resb.enmng as mmiv_quantity_received)                                             as  ReceivedQuantity,

      @DefaultAggregation: #NONE
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      cast(resb.bdmng as ps_s4_bdmng preserving type )                                        as  RequirementQuantityInBaseUnit, //


      @DefaultAggregation: #NONE
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      resb.lmeng                                                                              as  MRPRequiredQuantityInBaseUnit, //



      @DefaultAggregation: #NONE
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      resb.vmeng                                                                              as  ConfirmedAvailableQuantity, //

      @EndUserText.label: 'Price'
      //    // Medium label of data element ppcomp: 'Price/currency'

      @DefaultAggregation: #SUM
//     decimal_shift(

//         amount => resb.gpreis ,

//          currency => resb.waers,

//          error_handling => #CNV_ERROR_HANDLING.FAIL_ON_ERROR

//      )                                                                                       as  MaterialComponentPrice, //

   @Semantics.amount.currencyCode:'Currency'
    resb.gpreis                                                                               as  MaterialComponentPrice,
      @EndUserText.label: 'Withdrawn Quantity Amount'
       //Medium label of data element enwrt: 'Withdr. Value'

      @DefaultAggregation: #NONE
//      decimal_shift(

//          amount => resb.enwrt,

//          currency => resb.waers,

//          error_handling => #CNV_ERROR_HANDLING.FAIL_ON_ERROR

//      )                                                                                       as  WithdrawnQuantityAmount, //

    @Semantics.amount.currencyCode:'Currency'
    resb.enwrt                                                                                   as  WithdrawnQuantityAmount,
      //

      @EndUserText.label: 'Number Of Missing Matl Comp'
      @DefaultAggregation: #NONE
      case when
                  resb.xfehl  = 'X'
      then
          '1'
      else
          '0'
      end                                                                                     as  NumberOfMissingMatlComp,

      @DefaultAggregation: #SUM
      cast (resb.lifzt as ps_s4_lifzt)                                                        as  DeliveryDurationInDays, //


      @DefaultAggregation: #NONE
      resb.webaz                                                                              as  GoodsReceiptDurationInDays, //


      @EndUserText.label: 'Price Per Unit'
      @DefaultAggregation: #NONE

      resb.peinh                                                                              as  MaterialPriceUnitQty, //


      cast( resb.ablad as ps_s4_ablad preserving type )                                       as  UnloadingPointName,

      //    resb.banfn                                    as  PurchaseRequisition,


      //    cast (resb.bnfpo as ps_s4_bnfpo)              as  PurchaseRequisitionItem,


      resb.aennr                                                                              as  ProjectObjectChangeNumber,

      cast(resb.rform  as ps_s4_rform preserving type )                                       as  FormulaKey,

      cast(resb.postp as ps_s4_postp preserving type )                                        as  BOMItemCategory,

      //    resb.ebeln                                    as  PurchaseOrder,


      resb.matkl                                                                              as  MaterialGroup,

      cast(
      case
      when resb.dbskz <> 'F' and resb.flgex = ' ' and resb.vorab = ' ' and resb.knttp = ' '
      then 'K05'
      when resb.dbskz <> 'F' and resb.flgex = ' ' and resb.vorab = 'X'  and resb.knttp = ' '
      then 'K12'
      when resb.sobkz = ' ' and resb.knttp <> ' ' and rsadd.strecke = ' '
      then 'K01'
      when resb.sobkz = ' ' and resb.knttp <> ' ' and rsadd.strecke = 'X'
      then 'K02'
      when resb.dbskz <> 'F' and resb.flgex = ' ' and resb.vorab = ' ' and resb.sobkz = 'Q' and resb.knttp <> ' ' and resb.pbdnr = ' '
      then 'K06'
      when (resb.vorab = 'X'  or resb.pbdnr <> ' ') and (resb.dbskz <> 'F' and resb.flgex = ' ' and resb.sobkz = 'Q' and resb.knttp <> ' ')
      then 'K10'
      when (resb.flgex = 'X'  or resb.dbskz = 'F') and (resb.vorab = ' ' and resb.sobkz = 'Q' and resb.knttp <> ' ' and rsadd.strecke = ' ')
      then 'K08'
      when (resb.flgex = 'X'  or resb.dbskz = 'F') and (resb.sobkz = 'Q' and resb.knttp <> ' ' and rsadd.strecke = 'X')
      then   'K15'
      when  (resb.flgex = 'X'  or resb.dbskz = 'F') and (resb.vorab = 'X' and resb.sobkz = 'Q' and resb.knttp <> ' ' and rsadd.strecke = ' ')
      then 'K03'
      when resb.flgex <> 'F'  and resb.dbskz = ' ' and resb.vorab = ' ' and resb.sobkz = 'E' and resb.knttp <> ' ' and resb.pbdnr = ' '
      then 'K07'
      when (resb.vorab = 'F' or resb.pbdnr <> ' ') and (resb.dbskz <> 'F' and resb.flgex = ' ' and resb.sobkz = 'E' and resb.knttp <> ' ')
      then 'K11'
      when (resb.flgex = 'X'  or resb.dbskz = 'F') and (resb.vorab = ' ' and resb.sobkz = 'E' and resb.knttp <> ' ' and rsadd.strecke = ' ')
      then 'K09'
      when (resb.flgex = 'X'  or resb.dbskz = 'F') and (resb.sobkz = 'E' and resb.knttp <> ' ' and rsadd.strecke = 'X')
      then 'K16'
      when (resb.flgex = 'X'  or resb.dbskz = 'F') and (resb.vorab = 'X' and resb.sobkz = 'E' and resb.knttp <> ' ' and rsadd.strecke = ' ')
      then 'K04'
      end  as ps_s4_procmttyp )                                                               as  ProcurementType,

      resb.umren                                                                              as  MaterialQtyToBaseQtyDnmntr,
      resb.umrez                                                                              as  QuantityNumerator,

      @EndUserText.label: 'Committed Quantity'
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      case
      when resb.erfme <> ' ' and resb.erfme <> resb.meins
      then
        case
        when resb.vmeng = resb.bdmng
        then
          case
          when resb.bdmng is null
          then resb.bdmng
          else
             resb.erfmg
          end

         else
         cast(resb.vmeng as abap.fltp) * ( cast(resb.umren as abap.fltp) / cast(resb.umrez as abap.fltp))
          end

      else
      cast(resb.vmeng as abap.fltp)
      end                                                                                     as  CommittedQuantity,

      /*
            _BOMAssembly.Assembly,
            _BOMAssembly.AssemblyName,

            case
            when rsadd.bstlt is not null
            then _MainBOM1.Assembly
            else _MainBOM2.Assembly
            end                                           as  MainBOM,

            case
            when rsadd.bstlt is not null
            then _MainBOM1.AssemblyName
            else _MainBOM2.AssemblyName
            end                                           as  MainBOMName,

            case
            when rsadd.bstlt is not null
            then _MainBOM1.stlty
            else _MainBOM2.stlty
            end                                           as  MainBOMCat,

      */

      _ProjMatBOMAssembly.Assembly,
      _ProjMatBOMAssembly.AssemblyName,
      _BillOfMaterial.Assembly                                                                as  BillOfMaterial,
      _BillOfMaterial.AssemblyName                                                            as  BOMHeaderText,
      _BillOfMaterial.BillOfMaterialCategory                                                  as  MaterialCompMainAssemblyCat,


      grpga.grpnr                                                                             as  GroupingWBSElementInternalID,

      @EndUserText.label: 'Open Quantity'
      @DefaultAggregation: #NONE
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      resb.bdmng - resb.enmng                                                                 as  OpenQuantity,

      cast(PurReq.PurchaseRequisition as ps_s4_banfn preserving type)                         as  PurchaseRequisition,
      PurReq.PurchaseRequisitionItem,
      PurOrd.PurchaseOrder,
      PurOrd.PurchaseOrderItem,
      resb.fldlogssupplyprocess                                                               as FldLogsSupplyProcess,
      resb.fldlogsdelivisheldonshore                                                          as FldLogsDelivIsHeldOnShore,
      resb.fldlogsversion                                                                     as FldLogsVersion,


      //    Begin of Lean Service Fields-------------------------------------------

      resb.producttype                                                                                                            as ProductTypeCode, //

      resb.startdate                                                                                                              as PerformancePeriodStartDate,
      resb.enddate                                                                                                                as PerformancePeriodEndDate,
      resb.serviceperformer                                                                                                       as ServicePerformer,
      @Semantics.quantity.unitOfMeasure: 'LeanServiceDurationUnit'
      resb.serviceduration                                                                                                        as LeanServiceDuration,
      @Semantics.unitOfMeasure: true
      resb.servicedurationunit                                                                                                    as LeanServiceDurationUnit,
      @Semantics.amount.currencyCode: 'Currency'
      rsadd.overalllimitamount                                                                                                    as OverallLimitAmount,
      @Semantics.amount.currencyCode: 'Currency'
      rsadd.expectedoveralllimitamount                                                                                            as ExpectedOverallLimitAmount,
      //    End of Lean Service Fields---------------------------------------------



      _WBSElement,
      _WBSGroupElement,
      _AccAssgnmtCategory,
      _StorageLocation,
      _InventorySpecialStockType,
      _ProjectNetwork.ControllingArea,
      _MaterialText,
      _PlantName,
      _ProjectNetwork,
      _NetworkActivity,
      _Material,
      _BillOfMaterialItemCategory,
      _Supplier,
      _ProjMatlProcurementType,
      _ConsumptionPostingName,
      _ProjMatBomCategory,
      _BillOfMaterialCategory,
      _SpecialStockValuationName
};