I_ProjectMaterialComponent
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. It has 21 associations to related views.
Data Sources (6)
| Source | Alias | Join 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)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [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)
| Name | Value | Level | Field |
|---|---|---|---|
| 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 |
@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
};
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA