P_ProductionModelComponent

DDL: P_PRODUCTIONMODELCOMPONENT Type: view_entity COMPOSITE

Prodn Model Sales Order Component

P_ProductionModelComponent is a Composite CDS View that provides data about "Prodn Model Sales Order Component" in SAP S/4HANA. It reads from 4 data sources (I_BillOfMaterialItemBasic, I_ProdnModBOOVersBOMAssgmt, I_ProductionModelBasic, I_BillOfMaterialValidItem) and exposes 93 fields with key fields ProductionModelUUID, ProductionModelComponentUUID, BillOfOperationsVersion. It has 1 association to related views.

Data Sources (4)

SourceAliasJoin Type
I_BillOfMaterialItemBasic BOMItem from
I_ProdnModBOOVersBOMAssgmt BOOBOMAssignment inner
I_ProductionModelBasic ProductionModel inner
I_BillOfMaterialValidItem ValidItem inner

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_MaterialText _MaterialTextEN $projection.BillOfMaterialComponent = _MaterialTextEN.Material and _MaterialTextEN.Language = 'E'

Annotations (7)

NameValueLevelField
EndUserText.label Prodn Model Sales Order Component view
AccessControl.authorizationCheck #NOT_REQUIRED view
VDM.private true view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view

Fields (93)

KeyFieldSource TableSource FieldDescription
KEY ProductionModelUUID I_ProductionModelBasic ProductionModelUUID
KEY ProductionModelComponentUUID I_BillOfMaterialItemBasic BillOfMaterialItemUUID
KEY BillOfOperationsVersion I_ProdnModBOOVersBOMAssgmt BillOfOperationsVersion
BillOfMaterialCategory I_ProductionModelBasic BillOfMaterialCategory
BillOfMaterial I_ProductionModelBasic BillOfMaterial
Material I_ProductionModelBasic Material
Plant I_ProductionModelBasic Plant
BillOfMaterialVariant I_ProductionModelBasic BillOfMaterialVariant
BillOfMaterialVariantUsage I_ProductionModelBasic BillOfMaterialVariantUsage
BillOfOperationsGroup I_ProductionModelBasic BillOfOperationsGroup
BillOfOperationsType I_ProductionModelBasic BillOfOperationsType
BillOfOperationsVariant I_ProductionModelBasic BillOfOperationsVariant
BillOfMaterialVersion I_ProdnModBOOVersBOMAssgmt BillOfMaterialVersion
InheritedNodeNumberForBOMItem I_BillOfMaterialValidItem InheritedNodeNumberForBOMItem
BillOfMaterialItemNodeNumber I_BillOfMaterialItemBasic BillOfMaterialItemNodeNumber
BOMItemInternalChangeCount I_BillOfMaterialItemBasic BOMItemInternalChangeCount
InheritedNodeNumberVersionBOM I_BillOfMaterialItemBasic InheritedNodeNumberVersionBOM
ValidityStartDate I_BillOfMaterialItemBasic ValidityStartDate
ValidityEndDate
EngineeringChangeDocument I_BillOfMaterialItemBasic EngineeringChangeDocument
ChgToEngineeringChgDocument
BOMItemRecordCreationDate I_BillOfMaterialItemBasic BOMItemRecordCreationDate
BOMItemCreatedByUser I_BillOfMaterialItemBasic BOMItemCreatedByUser
BOMItemLastChangeDate I_BillOfMaterialItemBasic BOMItemLastChangeDate
BOMItemLastChangedByUser I_BillOfMaterialItemBasic BOMItemLastChangedByUser
BillOfMaterialComponent I_BillOfMaterialItemBasic BillOfMaterialComponent
BillOfMaterialItemCategory I_BillOfMaterialItemBasic BillOfMaterialItemCategory
BillOfMaterialItemNumber I_BillOfMaterialItemBasic BillOfMaterialItemNumber
BillOfMaterialItemUnit I_BillOfMaterialItemBasic BillOfMaterialItemUnit
IsSubItem I_BillOfMaterialItemBasic IsSubItem
BOMItemSorter I_BillOfMaterialItemBasic BOMItemSorter
BOMItemHasFixedQuantity I_BillOfMaterialItemBasic FixedQuantity
PurchasingGroup I_BillOfMaterialItemBasic PurchasingGroup
Currency I_BillOfMaterialItemBasic Currency
MaterialComponentPrice I_BillOfMaterialItemBasic MaterialComponentPrice
IdentifierBOMItemendasIdentifierBOMItem
ComponentScrapInPercent I_BillOfMaterialItemBasic ComponentScrapInPercent
OperationScrapInPercent I_BillOfMaterialItemBasic OperationScrapInPercent
IsNetScrap I_BillOfMaterialItemBasic IsNetScrap
NumberOfVariableSizeItem I_BillOfMaterialItemBasic NumberOfVariableSizeItem
QuantityVariableSizeItem I_BillOfMaterialItemBasic QuantityVariableSizeItem
FormulaKey I_BillOfMaterialItemBasic FormulaKey
UnitOfMeasureForVarSizeItem I_BillOfMaterialValidItem VariableSizeItemUnit
BOMItemText1endasComponentDescription
BOMItemDescription I_BillOfMaterialItemBasic BOMItemText1
BOMItemText2 I_BillOfMaterialItemBasic BOMItemText2
MaterialGroup I_BillOfMaterialItemBasic MaterialGroup
DocumentType I_BillOfMaterialItemBasic DocumentType
DocNumber I_BillOfMaterialItemBasic DocNumber
DocumentVersion I_BillOfMaterialItemBasic DocumentVersion
DocumentPart I_BillOfMaterialItemBasic DocumentPart
DependencyObjectNumber I_BillOfMaterialItemBasic DependencyObjectNumber
IsBulkMaterial I_BillOfMaterialItemBasic IsBulkMaterial
BOMItemIsSparePart I_BillOfMaterialItemBasic BOMItemIsSparePart
BOMItemIsSalesRelevant I_BillOfMaterialItemBasic BOMItemIsSalesRelevant
IsProductionRelevant I_BillOfMaterialItemBasic IsProductionRelevant
BOMItemIsPlantMaintRelevant I_BillOfMaterialItemBasic BOMItemIsPlantMaintRelevant
BOMItemIsCostingRelevant I_BillOfMaterialItemBasic BOMItemIsCostingRelevant
IsEngineeringRelevant I_BillOfMaterialItemBasic IsEngineeringRelevant
SpecialProcurementType I_BillOfMaterialItemBasic SpecialProcurementType
IsBOMRecursiveAllowed I_BillOfMaterialItemBasic IsBOMRecursiveAllowed
OperationLeadTimeOffset I_BillOfMaterialItemBasic OperationLeadTimeOffset
OpsLeadTimeOffsetUnit I_BillOfMaterialItemBasic OpsLeadTimeOffsetUnit
IsMaterialProvision I_BillOfMaterialItemBasic IsMaterialProvision
BOMIsRecursive I_BillOfMaterialItemBasic BOMIsRecursive
DocumentIsCreatedByCAD I_BillOfMaterialItemBasic DocumentIsCreatedByCAD
DistrKeyCompConsumption I_BillOfMaterialItemBasic DistrKeyCompConsumption
DeliveryDurationInDays I_BillOfMaterialItemBasic DeliveryDurationInDays
CostElement I_BillOfMaterialItemBasic CostElement
Size1 I_BillOfMaterialItemBasic Size1
Size2 I_BillOfMaterialItemBasic Size2
Size3 I_BillOfMaterialItemBasic Size3
UnitOfMeasureForSize1To3 I_BillOfMaterialItemBasic UnitOfMeasureForSize1To3
ProdOrderIssueLocation I_BillOfMaterialItemBasic ProdOrderIssueLocation
MaterialIsCoProduct I_BillOfMaterialItemBasic MaterialIsCoProduct
ExplosionType I_BillOfMaterialItemBasic ExplosionType
FollowUpGroup I_BillOfMaterialItemBasic FollowUpGroup
DiscontinuationGroup I_BillOfMaterialItemBasic DiscontinuationGroup
ReferencePoint I_BillOfMaterialItemBasic ReferencePoint
LeadTimeOffset I_BillOfMaterialItemBasic LeadTimeOffset
ProductionSupplyArea I_BillOfMaterialItemBasic ProductionSupplyArea
IsALE I_BillOfMaterialItemBasic IsALE
GoodsReceiptDuration I_BillOfMaterialItemBasic GoodsReceiptDuration
PurchasingOrganization I_BillOfMaterialItemBasic PurchasingOrganization
IsDeleted I_BillOfMaterialItemBasic IsDeleted
AlternativeItemGroup I_BillOfMaterialItemBasic AlternativeItemGroup
AlternativeItemPriority I_BillOfMaterialItemBasic AlternativeItemPriority
AlternativeItemStrategy I_BillOfMaterialItemBasic AlternativeItemStrategy
UsageProbabilityPercent I_BillOfMaterialItemBasic UsageProbabilityPercent
IsPMAssemblyRelevant
IsAssembly
PreliminaryMaterial
BillOfMaterialItemObjectType I_BillOfMaterialItemBasic ObjectType
@EndUserText.label: 'Prodn Model Sales Order Component'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.private:true
@VDM.viewType: #COMPOSITE
@ObjectModel.usageType:{
  serviceQuality: #B,
  sizeCategory: #XL,
  dataClass: #TRANSACTIONAL
}
define view entity P_ProductionModelComponent

  as select from           I_BillOfMaterialItemBasic    as BOMItem

    inner join             I_BillOfMaterialValidItem    as ValidItem         on  BOMItem.BillOfMaterialCategory       = ValidItem.BillOfMaterialCategory
                                                                             and BOMItem.BillOfMaterial               = ValidItem.BillOfMaterial
                                                                             and BOMItem.BillOfMaterialItemNodeNumber = ValidItem.BillOfMaterialItemNodeNumber

    inner join             I_ProductionModelBasic       as ProductionModel   on  ProductionModel.BillOfMaterialCategory = ValidItem.BillOfMaterialCategory
                                                                             and ProductionModel.BillOfMaterial         = ValidItem.BillOfMaterial
                                                                             and ProductionModel.BillOfMaterialVariant  = ValidItem.BillOfMaterialVariant
                                                                             and ProductionModel.Material               = ProductionModel.Material
                                                                             and ProductionModel.Plant                  = ProductionModel.Plant
                                                                             and ProductionModel.SalesOrder             = ProductionModel.SalesOrder
                                                                             and ProductionModel.SalesOrderItem         = ProductionModel.SalesOrderItem

    left outer to one join I_SalesOrderBOMLink          as SalesOrderBOMLink on  SalesOrderBOMLink.BillOfMaterial        = BOMItem.BillOfMaterial
                                                                             and SalesOrderBOMLink.BillOfMaterialVariant = ValidItem.BillOfMaterialVariant

    left outer to one join I_MaterialBOMLink            as MaterialBOMLink   on  MaterialBOMLink.BillOfMaterial             = ProductionModel.BillOfMaterial
                                                                             and MaterialBOMLink.BillOfMaterialVariant      = ProductionModel.BillOfMaterialVariant
                                                                             and MaterialBOMLink.BillOfMaterialVariantUsage = ProductionModel.BillOfMaterialVariantUsage
                                                                             and MaterialBOMLink.BillOfMaterialVariant      = ProductionModel.BillOfMaterialVariant
                                                                             and MaterialBOMLink.Material                   = ProductionModel.Material
                                                                             and MaterialBOMLink.Plant                      = ProductionModel.Plant

    inner join             I_ProdnModBOOVersBOMAssgmt   as BOOBOMAssignment  on  BOOBOMAssignment.BillOfOperationsType    = ProductionModel.BillOfOperationsType
                                                                             and BOOBOMAssignment.BillOfOperationsGroup   = ProductionModel.BillOfOperationsGroup
                                                                             and BOOBOMAssignment.BillOfOperationsVariant = ProductionModel.BillOfOperationsVariant
                                                                             and ValidItem.BillOfMaterialVersion             = BOOBOMAssignment.BillOfMaterialVersion
                                                                             
    left outer to one join I_MatlProcurementProfile     as t460a             on  t460a.MaterialProcurementProfile = BOMItem.SpecialProcurementType
                                                                             and t460a.Plant                      = ProductionModel.Plant

    left outer to one join I_Supplier                   as Supplier          on BOMItem.Creditor                      = Supplier.Supplier
                                                                             and( Supplier.IsBusinessPurposeCompleted    is null
                                                                               or Supplier.IsBusinessPurposeCompleted = '' )

    left outer to one join I_MaterialText               as _MaterialText     on  BOMItem.BillOfMaterialComponent = _MaterialText.Material
                                                                             and _MaterialText.Language          = $session.system_language

    left outer to one join I_BillOfMaterialItemCategory as _BOMItemCategory  on _BOMItemCategory.BillOfMaterialItemCategory = BOMItem.BillOfMaterialItemCategory

  association [0..1] to I_MaterialText as _MaterialTextEN on  $projection.BillOfMaterialComponent = _MaterialTextEN.Material
                                                          and _MaterialTextEN.Language            = 'E'

{
  key    ProductionModel.ProductionModelUUID                                as ProductionModelUUID,
  key    BOMItem.BillOfMaterialItemUUID                                     as ProductionModelComponentUUID,
  key    BOOBOMAssignment.BillOfOperationsVersion                           as BillOfOperationsVersion,
         ProductionModel.BillOfMaterialCategory                             as BillOfMaterialCategory,
         ProductionModel.BillOfMaterial                                     as BillOfMaterial,
         ProductionModel.Material                                           as Material,
         ProductionModel.Plant                                              as Plant,
         ProductionModel.BillOfMaterialVariant                              as BillOfMaterialVariant,
         ProductionModel.BillOfMaterialVariantUsage                         as BillOfMaterialVariantUsage,
         ProductionModel.BillOfOperationsGroup                              as BillOfOperationsGroup,
         ProductionModel.BillOfOperationsType                               as BillOfOperationsType,
         ProductionModel.BillOfOperationsVariant                            as BillOfOperationsVariant,
         BOOBOMAssignment.BillOfMaterialVersion                             as BillOfMaterialVersion,
         ValidItem.InheritedNodeNumberForBOMItem                            as InheritedNodeNumberForBOMItem,
         BOMItem.BillOfMaterialItemNodeNumber                               as BillOfMaterialItemNodeNumber,
         BOMItem.BOMItemInternalChangeCount                                 as BOMItemInternalChangeCount,
         BOMItem.InheritedNodeNumberVersionBOM                              as InheritedNodeNumberVersionBOM,
         @Semantics.businessDate.from: true
         BOMItem.ValidityStartDate                                          as ValidityStartDate,
         @Semantics.businessDate.to: true
         cast('99991231' as datub )                                         as ValidityEndDate,
         BOMItem.EngineeringChangeDocument                                  as EngineeringChangeDocument,
         cast( BOMItem.EngineeringChangeDocument as aenra preserving type ) as ChgToEngineeringChgDocument,
         BOMItem.BOMItemRecordCreationDate                                  as BOMItemRecordCreationDate,
         BOMItem.BOMItemCreatedByUser                                       as BOMItemCreatedByUser,
         BOMItem.BOMItemLastChangeDate                                      as BOMItemLastChangeDate,
         BOMItem.BOMItemLastChangedByUser                                   as BOMItemLastChangedByUser,
         BOMItem.BillOfMaterialComponent                                    as BillOfMaterialComponent,
         BOMItem.BillOfMaterialItemCategory                                 as BillOfMaterialItemCategory,
         BOMItem.BillOfMaterialItemNumber                                   as BillOfMaterialItemNumber,
         BOMItem.BillOfMaterialItemUnit                                     as BillOfMaterialItemUnit,
         @Semantics.quantity.unitOfMeasure : 'BillOfMaterialItemUnit'
         case when _BOMItemCategory.FixedItemCategory = 'R'
         then BOMItem.NumberOfVariableSizeItem
         else BOMItem.BillOfMaterialItemQuantity
         end                                                                as BillOfMaterialItemQuantity,
         BOMItem.IsSubItem                                                  as IsSubItem,
         BOMItem.BOMItemSorter                                              as BOMItemSorter,
         BOMItem.FixedQuantity                                              as BOMItemHasFixedQuantity,
         BOMItem.PurchasingGroup                                            as PurchasingGroup,
         BOMItem.Currency                                                   as Currency,
         @Semantics.amount.currencyCode : 'Currency'
         BOMItem.MaterialComponentPrice                                     as MaterialComponentPrice,
         case when
         ( BOMItem.IdentifierBOMItem is null or BOMItem.IdentifierBOMItem = '')
          then BOMItem.InheritedNodeNumberForBOMItem
          else
         BOMItem.IdentifierBOMItem
         end                                                                as IdentifierBOMItem,
         BOMItem.ComponentScrapInPercent                                    as ComponentScrapInPercent,
         BOMItem.OperationScrapInPercent                                    as OperationScrapInPercent,
         BOMItem.IsNetScrap                                                 as IsNetScrap,
         @Semantics.quantity.unitOfMeasure : 'VariableSizeCompUnitOfMeasure'
         BOMItem.NumberOfVariableSizeItem                                   as NumberOfVariableSizeItem,
         case when _BOMItemCategory.BillOfMaterialItemCategory = 'R'
         then BOMItem.BillOfMaterialItemUnit
         else ValidItem.VariableSizeItemUnit
         end                                                                as VariableSizeCompUnitOfMeasure,
         @Semantics.quantity.unitOfMeasure : 'UnitOfMeasureForVarSizeItem'
         BOMItem.QuantityVariableSizeItem                                   as QuantityVariableSizeItem,
         BOMItem.FormulaKey                                                 as FormulaKey,
         //tcs03.roame as UnitOfMeasureForVarSizeItem,

         ValidItem.VariableSizeItemUnit                                     as UnitOfMeasureForVarSizeItem,
         case
            when _BOMItemCategory.FixedItemCategory = 'L'
               then
               case when _MaterialText.MaterialName is not null or _MaterialText.MaterialName <> ''
               then _MaterialText.MaterialName
             else _MaterialTextEN.MaterialName
               end
            when _BOMItemCategory.FixedItemCategory = 'R' and  (BOMItem.BillOfMaterialComponent is not null)
               then
               case when _MaterialText.MaterialName is not null or _MaterialText.MaterialName <> ''
               then _MaterialText.MaterialName
               else _MaterialTextEN.MaterialName
               end
            when _BOMItemCategory.FixedItemCategory = 'R' and  (BOMItem.BillOfMaterialComponent = '')
               then BOMItem.BOMItemText1
            when _BOMItemCategory.FixedItemCategory = 'N' and (BOMItem.BillOfMaterialComponent <> '')
               then
               case when _MaterialText.MaterialName is not null or _MaterialText.MaterialName <> ''
               then _MaterialText.MaterialName
              else _MaterialTextEN.MaterialName
               end
            when _BOMItemCategory.FixedItemCategory = 'N' and  (BOMItem.BillOfMaterialComponent = '')
               then BOMItem.BOMItemText1
            else
            BOMItem.BOMItemText1
         end                                                                as ComponentDescription,
         BOMItem.BOMItemText1                                               as BOMItemDescription,
         BOMItem.BOMItemText2                                               as BOMItemText2,
         BOMItem.MaterialGroup                                              as MaterialGroup,
         BOMItem.DocumentType                                               as DocumentType,
         BOMItem.DocNumber                                                  as DocNumber,
         BOMItem.DocumentVersion                                            as DocumentVersion,
         BOMItem.DocumentPart                                               as DocumentPart,
         BOMItem.DependencyObjectNumber                                     as DependencyObjectNumber,
         BOMItem.IsBulkMaterial                                             as IsBulkMaterial,
         BOMItem.BOMItemIsSparePart                                         as BOMItemIsSparePart,
         BOMItem.BOMItemIsSalesRelevant                                     as BOMItemIsSalesRelevant,
         BOMItem.IsProductionRelevant                                       as IsProductionRelevant,
         BOMItem.BOMItemIsPlantMaintRelevant                                as BOMItemIsPlantMaintRelevant,
         BOMItem.BOMItemIsCostingRelevant                                   as BOMItemIsCostingRelevant,
         BOMItem.IsEngineeringRelevant                                      as IsEngineeringRelevant,
         BOMItem.SpecialProcurementType                                     as SpecialProcurementType,
         BOMItem.IsBOMRecursiveAllowed                                      as IsBOMRecursiveAllowed,
         BOMItem.OperationLeadTimeOffset                                    as OperationLeadTimeOffset,
         BOMItem.OpsLeadTimeOffsetUnit                                      as OpsLeadTimeOffsetUnit,
         BOMItem.IsMaterialProvision                                        as IsMaterialProvision,
         BOMItem.BOMIsRecursive                                             as BOMIsRecursive,
         BOMItem.DocumentIsCreatedByCAD                                     as DocumentIsCreatedByCAD,
         BOMItem.DistrKeyCompConsumption                                    as DistrKeyCompConsumption,
         BOMItem.DeliveryDurationInDays                                     as DeliveryDurationInDays,
         case when Supplier.IsBusinessPurposeCompleted is null or Supplier.IsBusinessPurposeCompleted = ''
         then BOMItem.Creditor else
         cast ('          ' as lifnr preserving type)
         end                                                                as Creditor,
         BOMItem.CostElement                                                as CostElement,
         BOMItem.Size1                                                      as Size1,
         BOMItem.Size2                                                      as Size2,
         BOMItem.Size3                                                      as Size3,
         BOMItem.UnitOfMeasureForSize1To3                                   as UnitOfMeasureForSize1To3,
         BOMItem.ProdOrderIssueLocation                                     as ProdOrderIssueLocation,
         BOMItem.MaterialIsCoProduct                                        as MaterialIsCoProduct,
         BOMItem.ExplosionType                                              as ExplosionType,
         BOMItem.FollowUpGroup                                              as FollowUpGroup,
         BOMItem.DiscontinuationGroup                                       as DiscontinuationGroup,
         BOMItem.ReferencePoint                                             as ReferencePoint,
         BOMItem.LeadTimeOffset                                             as LeadTimeOffset,
         BOMItem.ProductionSupplyArea                                       as ProductionSupplyArea,
         BOMItem.IsALE                                                      as IsALE,
         BOMItem.GoodsReceiptDuration                                       as GoodsReceiptDuration,
         BOMItem.PurchasingOrganization                                     as PurchasingOrganization,
         BOMItem.IsDeleted                                                  as IsDeleted,
         //Alternative Item Fields

         BOMItem.AlternativeItemGroup                                       as AlternativeItemGroup,
         BOMItem.AlternativeItemPriority                                    as AlternativeItemPriority,
         BOMItem.AlternativeItemStrategy                                    as AlternativeItemStrategy,
         BOMItem.UsageProbabilityPercent                                    as UsageProbabilityPercent,
         cast(' ' as stkkz preserving type)                                 as IsPMAssemblyRelevant,
         cast(' ' as xfeld preserving type)                                 as IsAssembly,
         case
           when t460a.IsPhantomItem = 'X'
          then cast('X' as xfeld preserving type)
          else
          cast('' as xfeld preserving type)
          end                                                               as IsPhantomItem,
         //t460a.SpclProcmtTypeIsConsistent,

         cast(BOMItem.BOMItemText1 as maktx preserving type )               as PreliminaryMaterial,
         BOMItem.ObjectType as BillOfMaterialItemObjectType

}
where
     BOMItem.BillOfMaterialCategory = 'K'
  or BOMItem.BillOfMaterialCategory = 'M'