I_ProductSupplyPlanning

DDL: I_PRODUCTSUPPLYPLANNING SQL: IPRDSUPPLYPLAN Type: view BASIC

Product SupPlanning active core entity

I_ProductSupplyPlanning is a Basic CDS View that provides data about "Product SupPlanning active core entity" in SAP S/4HANA. It reads from 4 data sources (P_ProductPlantBasic, t001, t001k, t001w) and exposes 109 fields with key fields Product, Plant. It has 40 associations to related views.

Data Sources (4)

SourceAliasJoin Type
P_ProductPlantBasic SupplyPlanning from
t001 t001 inner
t001k t001k inner
t001w t001w inner

Associations (40)

CardinalityTargetAliasCondition
[1..1] I_Product _Product $projection.Product = _Product.Product
[0..1] E_Productplant _ProdSupplyPlanExt $projection.Product = _ProdSupplyPlanExt.Product and $projection.Plant = _ProdSupplyPlanExt.Plant
[0..1] I_RangeOfCoverageProfile _RangeOfCvrgPrflCode $projection.Plant = _RangeOfCvrgPrflCode.Plant and $projection.RangeOfCvrgPrflCode = _RangeOfCvrgPrflCode.RangeOfCoverageProfile
[0..*] I_RangeOfCoverageProfileText _RangeOfCvrgPrflCodeText $projection.Plant = _RangeOfCvrgPrflCodeText.Plant and $projection.RangeOfCvrgPrflCode = _RangeOfCvrgPrflCodeText.RangeOfCoverageProfile
[0..1] I_StorageCostsPercentageCode _IsStorageCosts $projection.IsStorageCosts = _IsStorageCosts.StorageCostsPercentageCode and $projection.Plant = _IsStorageCosts.Plant
[0..1] I_StorageCostsPercentageCode _StorageCostsPercentage $projection.StorageCostsPercentageCode = _StorageCostsPercentage.StorageCostsPercentageCode and $projection.Plant = _StorageCostsPercentage.Plant
[0..1] I_SafetyTimePeriodProfile _SafetyTimePeriodProfile $projection.Plant = _SafetyTimePeriodProfile.Plant and $projection.PerdPrflForSftyTme = _SafetyTimePeriodProfile.SafetyTimePeriodProfile
[0..*] I_SafetyTimePeriodProfileText _SafetyTimePeriodProfileText $projection.Plant = _SafetyTimePeriodProfileText.Plant and $projection.PerdPrflForSftyTme = _SafetyTimePeriodProfileText.SafetyTimePeriodProfile
[0..1] I_ProdAvailabilityCheckGroup _AvailabilityCheckType $projection.AvailabilityCheckType = _AvailabilityCheckType.ProdAvailabilityCheckGroup
[0..*] I_ProdAvailabilityCheckGroupT _AvailabilityCheckTypeText $projection.AvailabilityCheckType = _AvailabilityCheckTypeText.ProdAvailabilityCheckGroup
[0..1] I_ATPCheckingGroup _AvailabilityCheckType_2 $projection.AvailabilityCheckType = _AvailabilityCheckType_2.ATPCheckingGroup
[0..*] I_ATPCheckingGroupText _AvailabilityCheckTypeText_2 $projection.AvailabilityCheckType = _AvailabilityCheckTypeText_2.ATPCheckingGroup
[0..1] I_ConsignmentControl _ConsignmentControl $projection.ConsignmentControl = _ConsignmentControl.ConsignmentControl
[0..*] I_ConsignmentControlText _ConsignmentControlText $projection.ConsignmentControl = _ConsignmentControlText.ConsignmentControl
[0..1] I_MRPPlanningPeriod _MRPPlanningCalendar $projection.Plant = _MRPPlanningCalendar.MRPPlant and $projection.MRPPlanningCalendar = _MRPPlanningCalendar.MRPPlanningCalendar
[0..*] I_MRPPlanningPeriodText _MRPPlanningCalendarText $projection.Plant = _MRPPlanningCalendarText.MRPPlant and $projection.MRPPlanningCalendar = _MRPPlanningCalendarText.MRPPlanningCalendar
[0..1] I_MRPGroup _MRPGroup $projection.Plant = _MRPGroup.MRPPlant and $projection.MRPGroup = _MRPGroup.MRPGroup
[0..*] I_MRPGroupText _MRPGroupText $projection.Plant = _MRPGroupText.MRPPlant and $projection.MRPGroup = _MRPGroupText.MRPGroup
[0..1] I_MRPLotSizingProcedure _LotSizingProcedure $projection.LotSizingProcedure = _LotSizingProcedure.MaterialLotSizingProcedure
[0..*] I_MRPLotSizingProcedureText _LotSizingProcedureText $projection.LotSizingProcedure = _LotSizingProcedureText.MaterialLotSizingProcedure
[0..*] I_MRPTypeText _MRPTypeText $projection.MRPType = _MRPTypeText.MRPType
[0..1] I_Prodabclassfctn _ABCIndicator $projection.ABCIndicator = _ABCIndicator.MaterialABCClassification
[0..*] I_Prodabclassfctntxt _ABCIndicatorText $projection.ABCIndicator = _ABCIndicatorText.MaterialABCClassification
[0..1] I_StorageLocation _DfltStorageLocationExtProcmt $projection.Plant = _DfltStorageLocationExtProcmt.Plant and $projection.DfltStorageLocationExtProcmt = _DfltStorageLocationExtProcmt.StorageLocation
[0..1] I_ProdConsumptionMode _ProdRqmtsConsumptionMode $projection.ProdRqmtsConsumptionMode = _ProdRqmtsConsumptionMode.ProdRqmtsConsumptionMode
[0..*] I_ProdConsumptionModeText _ProdRqmtsConsumptionModeText $projection.ProdRqmtsConsumptionMode = _ProdRqmtsConsumptionModeText.ProdRqmtsConsumptionMode
[0..1] I_LogisticalRoundingProfile _LogisticalRoundingProfile $projection.Plant = _LogisticalRoundingProfile.Plant and $projection.RoundingProfile = _LogisticalRoundingProfile.LogisticalRoundingProfile
[0..*] I_LogisticalRoundingProfileT _LogisticalRoundingProfileT $projection.Plant = _LogisticalRoundingProfileT.Plant and $projection.RoundingProfile = _LogisticalRoundingProfileT.LogisticalRoundingProfile
[0..1] I_LogisticalRoundingUoMGroup _LoglRndgUoMGroup $projection.ProductUnitGroup = _LoglRndgUoMGroup.LogisticalRoundingUoMGroup
[0..1] I_ProdProcurementType _ProdProcurementType $projection.ProcurementType = _ProdProcurementType.ProcurementType
[0..*] I_ProdProcurementTypeText _ProdProcurementTypeText $projection.ProcurementType = _ProdProcurementTypeText.ProcurementType
[0..1] I_ProductProcmtProfile _ProductProcmtProfile $projection.Plant = _ProductProcmtProfile.Plant and $projection.ProcurementSubType = _ProductProcmtProfile.ProcurementSubType
[0..*] I_ProductProcmtProfileText _ProductProcmtProfileText $projection.Plant = _ProductProcmtProfileText.Plant and $projection.ProcurementSubType = _ProductProcmtProfileText.ProcurementSubType
[1..1] I_Plant _Plant $projection.Plant = _Plant.Plant
[0..1] I_PlannedOrderActionControl _PlannedOrderActionControl $projection.PlannedOrderActionControl = _PlannedOrderActionControl.PlannedOrderActionControl
[0..1] I_ProdBackflushType _ProdBackflushType $projection.MatlCompIsMarkedForBackflush = _ProdBackflushType.MatlCompIsMarkedForBackflush
[0..*] I_ProdBackflushTypeText _ProdBackflushTypeText $projection.MatlCompIsMarkedForBackflush = _ProdBackflushTypeText.MatlCompIsMarkedForBackflush
[0..1] I_RepetitiveMfgProfile _RepetitiveMfgProfile $projection.RepetitiveManufacturingProfile = _RepetitiveMfgProfile.RepetitiveManufacturingProfile
[0..1] I_MRPSafetyStockMethod _MRPSafetyStockMethod $projection.MRPSafetyStockMethod = _MRPSafetyStockMethod.MRPSafetyStockMethod
[0..*] I_MRPSafetyStockMethodText _MRPSafetyStockMethodText $projection.MRPSafetyStockMethod = _MRPSafetyStockMethodText.MRPSafetyStockMethod

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName IPRDSUPPLYPLAN view
AbapCatalog.preserveKey true view
VDM.viewType #BASIC view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Product SupPlanning active core entity view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MASTER view
ClientHandling.algorithm #SESSION_VARIABLE view
Metadata.ignorePropagatedAnnotations true view
Analytics.dataExtraction.enabled true view
Analytics.dataExtraction.delta.changeDataCapture.automatic true view

Fields (109)

KeyFieldSource TableSource FieldDescription
KEY Product P_ProductPlantBasic Product
KEY Plant P_ProductPlantBasic Plant
FixedLotSizeQuantity P_ProductPlantBasic FixedLotSizeQuantity
MaximumLotSizeQuantity P_ProductPlantBasic MaximumLotSizeQuantity
MinimumLotSizeQuantity P_ProductPlantBasic MinimumLotSizeQuantity
LotSizeRoundingQuantity P_ProductPlantBasic LotSizeRoundingQuantity
LotSizingProcedure P_ProductPlantBasic LotSizingProcedure
MRPType P_ProductPlantBasic MRPType
MRPResponsible P_ProductPlantBasic MRPResponsible
SafetyStockQuantity P_ProductPlantBasic SafetyStockQuantity
MinimumSafetyStockQuantity P_ProductPlantBasic MinimumSafetyStockQuantity
PlanningTimeFence P_ProductPlantBasic PlanningTimeFence
ABCIndicator P_ProductPlantBasic ABCIndicator
MaximumStockQuantity P_ProductPlantBasic MaximumStockQuantity
ReorderThresholdQuantity P_ProductPlantBasic ReorderThresholdQuantity
PlannedDeliveryDurationInDays P_ProductPlantBasic PlannedDeliveryDurationInDays
SafetyDuration P_ProductPlantBasic SafetyDuration
PlanningStrategyGroup P_ProductPlantBasic PlanningStrategyGroup
TotalReplenishmentLeadTime P_ProductPlantBasic TotalReplenishmentLeadTime
ProcurementType P_ProductPlantBasic ProcurementType
ProcurementSubType P_ProductPlantBasic ProcurementSubType
AssemblyScrapPercent P_ProductPlantBasic AssemblyScrapPercent
AvailabilityCheckType P_ProductPlantBasic AvailabilityCheckType
_AvailabilityCheckType _AvailabilityCheckType
_AvailabilityCheckTypeText _AvailabilityCheckTypeText
GoodsReceiptDuration P_ProductPlantBasic GoodsReceiptDuration
PlanAndOrderDayDetermination P_ProductPlantBasic PlanAndOrderDayDetermination
RoundingProfile P_ProductPlantBasic RoundingProfile
DfltStorageLocationExtProcmt P_ProductPlantBasic DfltStorageLocationExtProcmt
GoodIssueProcessingDays P_ProductPlantBasic GoodIssueProcessingDays
ConsignmentControl P_ProductPlantBasic ConsignmentControl
IsActiveEntity
MRPGroup P_ProductPlantBasic MRPGroup
LotSizeIndependentCosts P_ProductPlantBasic LotSizeIndependentCosts
IsStorageCosts P_ProductPlantBasic StorageCostsPercentageCode
RqmtQtyRcptTaktTmeInWrkgDays P_ProductPlantBasic RqmtQtyRcptTaktTmeInWrkgDays
MRPPlanningCalendar P_ProductPlantBasic MRPPlanningCalendar
RangeOfCvrgPrflCode P_ProductPlantBasic RangeOfCvrgPrflCode
IsSafetyTime P_ProductPlantBasic IsSafetyTime
PerdPrflForSftyTme P_ProductPlantBasic PerdPrflForSftyTme
IsMRPDependentRqmt P_ProductPlantBasic IsMRPDependentRqmt
SrvcLvl P_ProductPlantBasic SrvcLvl
InHouseProductionTime P_ProductPlantBasic InHouseProductionTime
MRPAvailabilityType P_ProductPlantBasic MRPAvailabilityType
ProductIsForCrossProject P_ProductPlantBasic ProductIsForCrossProject
StorageCostsPercentageCode P_ProductPlantBasic StorageCostsPercentageCode
ProdnPlngAndControlCalendar P_ProductPlantBasic MRPPlanningCalendar
FollowUpProduct P_ProductPlantBasic FollowUpProduct
RepetitiveManufacturingIsAllwd P_ProductPlantBasic RepetitiveManufacturingIsAllwd
DependentRequirementsType P_ProductPlantBasic DependentRequirementsType
IsBulkMaterialComponent P_ProductPlantBasic IsBulkMaterialComponent
RepetitiveManufacturingProfile P_ProductPlantBasic RepetitiveManufacturingProfile
BackwardCnsmpnPeriodInWorkDays P_ProductPlantBasic BackwardCnsmpnPeriodInWorkDays
FwdConsumptionPeriodInWorkDays P_ProductPlantBasic FwdConsumptionPeriodInWorkDays
ProdRqmtsConsumptionMode P_ProductPlantBasic ProdRqmtsConsumptionMode
EffectiveOutDate P_ProductPlantBasic EffectiveOutDate
MRPProfile P_ProductPlantBasic MRPProfile
SchedulingMarginKey P_ProductPlantBasic SchedulingMarginKey
ComponentScrapInPercent P_ProductPlantBasic ComponentScrapInPercent
ProductIsToBeDiscontinued P_ProductPlantBasic ProductIsToBeDiscontinued
ProdRqmtsAreConsolidated P_ProductPlantBasic ProdRqmtsAreConsolidated
ProductionInvtryManagedLoc P_ProductPlantBasic ProductionInvtryManagedLoc
MatlCompIsMarkedForBackflush P_ProductPlantBasic MatlCompIsMarkedForBackflush
ProposedProductSupplyArea P_ProductPlantBasic ProposedProductSupplyArea
PlannedOrderActionControl P_ProductPlantBasic PlannedOrderActionControl
ProductUnitGroup P_ProductPlantBasic ProductUnitGroup
MRPSafetyStockMethod P_ProductPlantBasic MRPSafetyStockMethod
JITProdnConfProfile P_ProductPlantBasic JITProdnConfProfile
Currency t001 waers
CompanyCode t001k bukrs
ValuationArea t001k bwkey
BaseUnit _Product BaseUnit
_Product _Product
_RangeOfCvrgPrflCode _RangeOfCvrgPrflCode
_RangeOfCvrgPrflCodeText _RangeOfCvrgPrflCodeText
_SafetyTimePeriodProfile _SafetyTimePeriodProfile
_SafetyTimePeriodProfileText _SafetyTimePeriodProfileText
_MRPPlanningCalendar _MRPPlanningCalendar
_MRPPlanningCalendarText _MRPPlanningCalendarText
_MRPGroup _MRPGroup
_MRPGroupText _MRPGroupText
_LotSizingProcedureText _LotSizingProcedureText
_MRPTypeText _MRPTypeText
_ABCIndicator _ABCIndicator
_ABCIndicatorText _ABCIndicatorText
_IsStorageCosts _IsStorageCosts
_StorageCostsPercentage _StorageCostsPercentage
_LotSizingProcedure _LotSizingProcedure
_DfltStorageLocationExtProcmt _DfltStorageLocationExtProcmt
_ProdRqmtsConsumptionMode _ProdRqmtsConsumptionMode
_ProdRqmtsConsumptionModeText _ProdRqmtsConsumptionModeText
_ConsignmentControl _ConsignmentControl
_ConsignmentControlText _ConsignmentControlText
_LogisticalRoundingProfile _LogisticalRoundingProfile
_LogisticalRoundingProfileT _LogisticalRoundingProfileT
_ProdProcurementType _ProdProcurementType
_ProdProcurementTypeText _ProdProcurementTypeText
_ProductProcmtProfile _ProductProcmtProfile
_ProductProcmtProfileText _ProductProcmtProfileText
_Plant _Plant
_PlannedOrderActionControl _PlannedOrderActionControl
_ProdBackflushType _ProdBackflushType
_ProdBackflushTypeText _ProdBackflushTypeText
_RepetitiveMfgProfile _RepetitiveMfgProfile
_MRPSafetyStockMethod _MRPSafetyStockMethod
_MRPSafetyStockMethodText _MRPSafetyStockMethodText
_LoglRndgUoMGroup _LoglRndgUoMGroup
_AvailabilityCheckType_2 _AvailabilityCheckType_2
_AvailabilityCheckTypeText_2 _AvailabilityCheckTypeText_2
@AbapCatalog.sqlViewName: 'IPRDSUPPLYPLAN'
@AbapCatalog.preserveKey: true
@VDM.viewType: #BASIC
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Product SupPlanning active core entity'
@ObjectModel.usageType.serviceQuality: #B
@ObjectModel.usageType.sizeCategory : #XL
@ObjectModel.usageType.dataClass: #MASTER
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations: true
@Analytics:{
    dataExtraction: {
        enabled: true,
        delta.changeDataCapture.automatic: true
        
    }
}
@ObjectModel.supportedCapabilities: [ #SQL_DATA_SOURCE,
                                      #CDS_MODELING_DATA_SOURCE,
                                      #CDS_MODELING_ASSOCIATION_TARGET,
                                      #EXTRACTION_DATA_SOURCE
]

define view I_ProductSupplyPlanning
  as select from P_ProductPlantBasic as SupplyPlanning
    inner join   t001w on SupplyPlanning.Plant = t001w.werks
    inner join   t001k on t001k.bwkey = t001w.bwkey
    inner join   t001  on t001.bukrs = t001k.bukrs

  association [1..1] to I_Product                     as _Product                      on  $projection.Product = _Product.Product

  association [0..1] to E_Productplant                as _ProdSupplyPlanExt            on  $projection.Product = _ProdSupplyPlanExt.Product
                                                                                       and $projection.Plant   = _ProdSupplyPlanExt.Plant
  association [0..1] to I_RangeOfCoverageProfile      as _RangeOfCvrgPrflCode          on  $projection.Plant               = _RangeOfCvrgPrflCode.Plant
                                                                                       and $projection.RangeOfCvrgPrflCode = _RangeOfCvrgPrflCode.RangeOfCoverageProfile

  association [0..*] to I_RangeOfCoverageProfileText  as _RangeOfCvrgPrflCodeText      on  $projection.Plant               = _RangeOfCvrgPrflCodeText.Plant
                                                                                       and $projection.RangeOfCvrgPrflCode = _RangeOfCvrgPrflCodeText.RangeOfCoverageProfile

  association [0..1] to I_StorageCostsPercentageCode  as _IsStorageCosts               on  $projection.IsStorageCosts = _IsStorageCosts.StorageCostsPercentageCode
                                                                                       and $projection.Plant          = _IsStorageCosts.Plant
  association [0..1] to I_StorageCostsPercentageCode  as _StorageCostsPercentage       on  $projection.StorageCostsPercentageCode = _StorageCostsPercentage.StorageCostsPercentageCode
                                                                                       and $projection.Plant          = _StorageCostsPercentage.Plant                                                                                     
  association [0..1] to I_SafetyTimePeriodProfile     as _SafetyTimePeriodProfile      on  $projection.Plant              = _SafetyTimePeriodProfile.Plant
                                                                                       and $projection.PerdPrflForSftyTme = _SafetyTimePeriodProfile.SafetyTimePeriodProfile
  association [0..*] to I_SafetyTimePeriodProfileText as _SafetyTimePeriodProfileText  on  $projection.Plant              = _SafetyTimePeriodProfileText.Plant
                                                                                       and $projection.PerdPrflForSftyTme = _SafetyTimePeriodProfileText.SafetyTimePeriodProfile
  association [0..1] to I_ProdAvailabilityCheckGroup  as _AvailabilityCheckType        on  $projection.AvailabilityCheckType = _AvailabilityCheckType.ProdAvailabilityCheckGroup
  association [0..*] to I_ProdAvailabilityCheckGroupT as _AvailabilityCheckTypeText    on  $projection.AvailabilityCheckType = _AvailabilityCheckTypeText.ProdAvailabilityCheckGroup

  association [0..1] to I_ATPCheckingGroup            as _AvailabilityCheckType_2      on  $projection.AvailabilityCheckType = _AvailabilityCheckType_2.ATPCheckingGroup
  association [0..*] to I_ATPCheckingGroupText        as _AvailabilityCheckTypeText_2  on  $projection.AvailabilityCheckType = _AvailabilityCheckTypeText_2.ATPCheckingGroup
  
  association [0..1] to I_ConsignmentControl          as _ConsignmentControl           on  $projection.ConsignmentControl = _ConsignmentControl.ConsignmentControl
  association [0..*] to I_ConsignmentControlText      as _ConsignmentControlText       on  $projection.ConsignmentControl = _ConsignmentControlText.ConsignmentControl

  association [0..1] to I_MRPPlanningPeriod           as _MRPPlanningCalendar          on  $projection.Plant               = _MRPPlanningCalendar.MRPPlant
                                                                                       and $projection.MRPPlanningCalendar = _MRPPlanningCalendar.MRPPlanningCalendar

  association [0..*] to I_MRPPlanningPeriodText       as _MRPPlanningCalendarText      on  $projection.Plant               = _MRPPlanningCalendarText.MRPPlant
                                                                                       and $projection.MRPPlanningCalendar = _MRPPlanningCalendarText.MRPPlanningCalendar

  association [0..1] to I_MRPGroup                    as _MRPGroup                     on  $projection.Plant    = _MRPGroup.MRPPlant
                                                                                       and $projection.MRPGroup = _MRPGroup.MRPGroup

  association [0..*] to I_MRPGroupText                as _MRPGroupText                 on  $projection.Plant    = _MRPGroupText.MRPPlant
                                                                                       and $projection.MRPGroup = _MRPGroupText.MRPGroup

  association [0..1] to I_MRPLotSizingProcedure       as _LotSizingProcedure           on  $projection.LotSizingProcedure = _LotSizingProcedure.MaterialLotSizingProcedure
  association [0..*] to I_MRPLotSizingProcedureText   as _LotSizingProcedureText       on  $projection.LotSizingProcedure = _LotSizingProcedureText.MaterialLotSizingProcedure

  association [0..*] to I_MRPTypeText                 as _MRPTypeText                  on  $projection.MRPType = _MRPTypeText.MRPType

  association [0..1] to I_Prodabclassfctn             as _ABCIndicator                 on  $projection.ABCIndicator = _ABCIndicator.MaterialABCClassification

  association [0..*] to I_Prodabclassfctntxt          as _ABCIndicatorText             on  $projection.ABCIndicator = _ABCIndicatorText.MaterialABCClassification

  association [0..1] to I_StorageLocation             as _DfltStorageLocationExtProcmt on  $projection.Plant                        = _DfltStorageLocationExtProcmt.Plant
                                                                                       and $projection.DfltStorageLocationExtProcmt = _DfltStorageLocationExtProcmt.StorageLocation

  association [0..1] to I_ProdConsumptionMode         as _ProdRqmtsConsumptionMode     on  $projection.ProdRqmtsConsumptionMode = _ProdRqmtsConsumptionMode.ProdRqmtsConsumptionMode
  association [0..*] to I_ProdConsumptionModeText     as _ProdRqmtsConsumptionModeText on  $projection.ProdRqmtsConsumptionMode = _ProdRqmtsConsumptionModeText.ProdRqmtsConsumptionMode

  association [0..1] to I_LogisticalRoundingProfile   as _LogisticalRoundingProfile    on  $projection.Plant           = _LogisticalRoundingProfile.Plant
                                                                                       and $projection.RoundingProfile = _LogisticalRoundingProfile.LogisticalRoundingProfile

  association [0..*] to I_LogisticalRoundingProfileT  as _LogisticalRoundingProfileT   on  $projection.Plant           = _LogisticalRoundingProfileT.Plant
                                                                                       and $projection.RoundingProfile = _LogisticalRoundingProfileT.LogisticalRoundingProfile

  association [0..1] to I_LogisticalRoundingUoMGroup  as _LoglRndgUoMGroup             on  $projection.ProductUnitGroup   = _LoglRndgUoMGroup.LogisticalRoundingUoMGroup                                                                                       
  association [0..1] to I_ProdProcurementType         as _ProdProcurementType          on  $projection.ProcurementType = _ProdProcurementType.ProcurementType
  association [0..*] to I_ProdProcurementTypeText     as _ProdProcurementTypeText      on  $projection.ProcurementType = _ProdProcurementTypeText.ProcurementType
  association [0..1] to I_ProductProcmtProfile        as _ProductProcmtProfile         on  $projection.Plant              = _ProductProcmtProfile.Plant
                                                                                       and $projection.ProcurementSubType = _ProductProcmtProfile.ProcurementSubType

  association [0..*] to I_ProductProcmtProfileText    as _ProductProcmtProfileText     on  $projection.Plant              = _ProductProcmtProfileText.Plant
                                                                                       and $projection.ProcurementSubType = _ProductProcmtProfileText.ProcurementSubType
  association [1..1] to I_Plant                       as _Plant                        on  $projection.Plant = _Plant.Plant
  association [0..1] to I_PlannedOrderActionControl   as _PlannedOrderActionControl    on  $projection.PlannedOrderActionControl = _PlannedOrderActionControl.PlannedOrderActionControl

  association [0..1] to I_ProdBackflushType           as _ProdBackflushType            on  $projection.MatlCompIsMarkedForBackflush = _ProdBackflushType.MatlCompIsMarkedForBackflush
  association [0..*] to I_ProdBackflushTypeText       as _ProdBackflushTypeText        on  $projection.MatlCompIsMarkedForBackflush = _ProdBackflushTypeText.MatlCompIsMarkedForBackflush
  association [0..1] to I_RepetitiveMfgProfile        as _RepetitiveMfgProfile         on  $projection.RepetitiveManufacturingProfile = _RepetitiveMfgProfile.RepetitiveManufacturingProfile

  association [0..1] to I_MRPSafetyStockMethod        as _MRPSafetyStockMethod         on  $projection.MRPSafetyStockMethod = _MRPSafetyStockMethod.MRPSafetyStockMethod
  association [0..*] to I_MRPSafetyStockMethodText    as _MRPSafetyStockMethodText     on  $projection.MRPSafetyStockMethod = _MRPSafetyStockMethodText.MRPSafetyStockMethod
 
{
      @ObjectModel.foreignKey.association: '_Product'
  key SupplyPlanning.Product,
      @ObjectModel.foreignKey.association: '_Plant'
  key SupplyPlanning.Plant,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      SupplyPlanning.FixedLotSizeQuantity,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      SupplyPlanning.MaximumLotSizeQuantity,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      SupplyPlanning.MinimumLotSizeQuantity,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      SupplyPlanning.LotSizeRoundingQuantity,
      @ObjectModel.foreignKey.association: '_LotSizingProcedure'
      @ObjectModel.text.association: '_LotSizingProcedureText'
      SupplyPlanning.LotSizingProcedure,
      @ObjectModel.text.association: '_MRPTypeText'
      SupplyPlanning.MRPType,
      @ObjectModel.sapObjectNodeTypeReference:'MRPController'
      SupplyPlanning.MRPResponsible,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      SupplyPlanning.SafetyStockQuantity,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      SupplyPlanning.MinimumSafetyStockQuantity,
      SupplyPlanning.PlanningTimeFence,
      @ObjectModel.foreignKey.association: '_ABCIndicator'
      // @ObjectModel.text.association: '_ABCIndicatorText'

      @ObjectModel.sapObjectNodeTypeReference:'ProdConsumptionValueCategory'
      SupplyPlanning.ABCIndicator,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      SupplyPlanning.MaximumStockQuantity,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      SupplyPlanning.ReorderThresholdQuantity,
      SupplyPlanning.PlannedDeliveryDurationInDays,
      SupplyPlanning.SafetyDuration,
      SupplyPlanning.PlanningStrategyGroup,
      SupplyPlanning.TotalReplenishmentLeadTime,
      @ObjectModel.foreignKey.association: '_ProdProcurementType'
      @ObjectModel.text.association:'_ProdProcurementTypeText'
      @ObjectModel.sapObjectNodeTypeReference:'ProcurementType'
      SupplyPlanning.ProcurementType,
      @ObjectModel.foreignKey.association: '_ProductProcmtProfile'
      @ObjectModel.text.association:'_ProductProcmtProfileText'
      @ObjectModel.sapObjectNodeTypeReference:'ProcurementSubType'
      SupplyPlanning.ProcurementSubType,
      SupplyPlanning.AssemblyScrapPercent,
      @ObjectModel.foreignKey.association: '_AvailabilityCheckType_2'
      @ObjectModel.text.association:'_AvailabilityCheckTypeText_2'
      SupplyPlanning.AvailabilityCheckType,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_AvailabilityCheckType_2'
      _AvailabilityCheckType,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_AvailabilityCheckTypeText_2'
      _AvailabilityCheckTypeText,
      SupplyPlanning.GoodsReceiptDuration,

      //Retail fields


      SupplyPlanning.PlanAndOrderDayDetermination,
      @ObjectModel.foreignKey.association: '_LogisticalRoundingProfile'
      @ObjectModel.text.association:'_LogisticalRoundingProfileT'
      SupplyPlanning.RoundingProfile,
      @ObjectModel.foreignKey.association: '_DfltStorageLocationExtProcmt'
      @ObjectModel.sapObjectNodeTypeReference:'StorageLocation'
      SupplyPlanning.DfltStorageLocationExtProcmt,
      SupplyPlanning.GoodIssueProcessingDays,
      @ObjectModel.foreignKey.association: '_ConsignmentControl'
      @ObjectModel.text.association:'_ConsignmentControlText'
      SupplyPlanning.ConsignmentControl,
      cast( 'X' as sdraft_is_active preserving type ) as IsActiveEntity, // to enbale extensibility in Draft 2.0


      //New fields added as part of MRP area to be added at plant level also

      @ObjectModel.foreignKey.association: '_MRPGroup'
      @ObjectModel.text.association:'_MRPGroupText'
      SupplyPlanning.MRPGroup,
      // SupplyPlanning.lfrhy                                        as PlanAndOrderDayDetermination,

      //SupplyPlanning.rdprf                                        as RoundingProfile,

      @Semantics.amount.currencyCode: 'Currency'
      SupplyPlanning.LotSizeIndependentCosts,
      @ObjectModel.foreignKey.association: '_IsStorageCosts'
      @ObjectModel.sapObjectNodeTypeReference:'StorageCostsPercentageCode'
      SupplyPlanning.StorageCostsPercentageCode       as IsStorageCosts,
      SupplyPlanning.RqmtQtyRcptTaktTmeInWrkgDays, //to be added

      //SupplyPlanning.takzt                                              as TaktTime,

      @ObjectModel.foreignKey.association: '_MRPPlanningCalendar'
      @ObjectModel.text.association:'_MRPPlanningCalendarText'
      SupplyPlanning.MRPPlanningCalendar,
      //SupplyPlanning.plifz                                        as PlannedDeliveryDurationInDays,

      @ObjectModel.foreignKey.association: '_RangeOfCvrgPrflCode'
      @ObjectModel.text.association:'_RangeOfCvrgPrflCodeText'
      SupplyPlanning.RangeOfCvrgPrflCode,
      SupplyPlanning.IsSafetyTime,
      @ObjectModel.foreignKey.association: '_SafetyTimePeriodProfile'
      @ObjectModel.text.association:'_SafetyTimePeriodProfileText'
      SupplyPlanning.PerdPrflForSftyTme,
      SupplyPlanning.IsMRPDependentRqmt,
      SupplyPlanning.SrvcLvl,
      SupplyPlanning.InHouseProductionTime,
      @ObjectModel.sapObjectNodeTypeReference:'MRPAvailabilityType'
      SupplyPlanning.MRPAvailabilityType,

      //New fields from MDG model, as part of unified API development

      SupplyPlanning.ProductIsForCrossProject,
      @ObjectModel.foreignKey.association: '_StorageCostsPercentage'
      @ObjectModel.sapObjectNodeTypeReference:'StorageCostsPercentageCode'
      SupplyPlanning.StorageCostsPercentageCode,
      // SupplyPlanning.lgrad                                              as SrvcLvl,

      // SupplyPlanning.losfx                                              as LotSizeIndependentCosts,

      // SupplyPlanning.MISKZ                                              as MRPAvailabilityType,

      SupplyPlanning.MRPPlanningCalendar              as ProdnPlngAndControlCalendar,
      SupplyPlanning.FollowUpProduct,
      // SupplyPlanning.rwpro                                              as RangeOfCvrgPrflCode,

      SupplyPlanning.RepetitiveManufacturingIsAllwd,
      @ObjectModel.sapObjectNodeTypeReference:'ProdDependentRequirementsType'
      SupplyPlanning.DependentRequirementsType,
      SupplyPlanning.IsBulkMaterialComponent,
      @ObjectModel.foreignKey.association: '_RepetitiveMfgProfile'
      SupplyPlanning.RepetitiveManufacturingProfile,
      // SupplyPlanning.shpro                                              as PerdPrflForSftyTme,

      // SupplyPlanning.shflg                                              as IsSafetyTime,

      // SupplyPlanning.takzt                                              as RqmtQtyRcptTaktTmeInWrkgDays,

      SupplyPlanning.BackwardCnsmpnPeriodInWorkDays,
      SupplyPlanning.FwdConsumptionPeriodInWorkDays,
      @ObjectModel.foreignKey.association: '_ProdRqmtsConsumptionMode'
      @ObjectModel.text.association:'_ProdRqmtsConsumptionModeText'
      @ObjectModel.sapObjectNodeTypeReference:'ProdRqmtsConsumptionMode'
      SupplyPlanning.ProdRqmtsConsumptionMode,
      SupplyPlanning.ForecastRequirementsAreSplit,
      SupplyPlanning.EffectiveOutDate,
      @ObjectModel.sapObjectNodeTypeReference:'MRPProfile'
      SupplyPlanning.MRPProfile,    
      SupplyPlanning.SchedulingMarginKey,
      SupplyPlanning.ComponentScrapInPercent,
      SupplyPlanning.ProductIsToBeDiscontinued,
      SupplyPlanning.ProdRqmtsAreConsolidated,
      @ObjectModel.sapObjectNodeTypeReference:'StorageLocation'
      SupplyPlanning.ProductionInvtryManagedLoc,
      @ObjectModel.foreignKey.association: '_ProdBackflushType'
      @ObjectModel.text.association: '_ProdBackflushTypeText'
      SupplyPlanning.MatlCompIsMarkedForBackflush,
      SupplyPlanning.ProposedProductSupplyArea,
      @ObjectModel.foreignKey.association: '_PlannedOrderActionControl'
      SupplyPlanning.PlannedOrderActionControl,
      @ObjectModel.foreignKey.association: '_LoglRndgUoMGroup' 
      SupplyPlanning.ProductUnitGroup, // to be used only for retail

      @ObjectModel.foreignKey.association: '_MRPSafetyStockMethod'
      @ObjectModel.text.association: '_MRPSafetyStockMethodText'
      SupplyPlanning.MRPSafetyStockMethod,
      @ObjectModel.sapObjectNodeTypeReference:'JITProdnConfProfile'
      SupplyPlanning.JITProdnConfProfile,
      @Semantics.currencyCode: true
      t001.waers                                      as Currency,
      t001k.bukrs                  as CompanyCode,
      t001k.bwkey                  as ValuationArea,
      @Semantics.unitOfMeasure: true
      _Product.BaseUnit                               as BaseUnit,
      _Product,
      _RangeOfCvrgPrflCode,
      _RangeOfCvrgPrflCodeText,
      _SafetyTimePeriodProfile,
      _SafetyTimePeriodProfileText,
      _MRPPlanningCalendar,
      _MRPPlanningCalendarText,
      _MRPGroup,
      _MRPGroupText,
      _LotSizingProcedureText,
      _MRPTypeText,
      _ABCIndicator,
      _ABCIndicatorText,
      _IsStorageCosts,
      _StorageCostsPercentage,
      _LotSizingProcedure,
      _DfltStorageLocationExtProcmt,
      _ProdRqmtsConsumptionMode,
      _ProdRqmtsConsumptionModeText,
      _ConsignmentControl,
      _ConsignmentControlText,
      _LogisticalRoundingProfile,
      _LogisticalRoundingProfileT,
      _ProdProcurementType,
      _ProdProcurementTypeText,
      _ProductProcmtProfile,
      _ProductProcmtProfileText,
      _Plant,
      _PlannedOrderActionControl,
      _ProdBackflushType,
      _ProdBackflushTypeText,
      _RepetitiveMfgProfile,
      _MRPSafetyStockMethod,
      _MRPSafetyStockMethodText,
      _LoglRndgUoMGroup,
      _AvailabilityCheckType_2,
      _AvailabilityCheckTypeText_2

}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PRODUCT",
"P_PRODUCTPLANTBASIC",
"T001",
"T001K",
"T001W"
],
"ASSOCIATED":
[
"E_PRODUCTPLANT",
"I_ATPCHECKINGGROUP",
"I_ATPCHECKINGGROUPTEXT",
"I_CONSIGNMENTCONTROL",
"I_CONSIGNMENTCONTROLTEXT",
"I_LOGISTICALROUNDINGPROFILE",
"I_LOGISTICALROUNDINGPROFILET",
"I_LOGISTICALROUNDINGUOMGROUP",
"I_MRPGROUP",
"I_MRPGROUPTEXT",
"I_MRPLOTSIZINGPROCEDURE",
"I_MRPLOTSIZINGPROCEDURETEXT",
"I_MRPPLANNINGPERIOD",
"I_MRPPLANNINGPERIODTEXT",
"I_MRPSAFETYSTOCKMETHOD",
"I_MRPSAFETYSTOCKMETHODTEXT",
"I_MRPTYPETEXT",
"I_PLANNEDORDERACTIONCONTROL",
"I_PLANT",
"I_PRODABCLASSFCTN",
"I_PRODABCLASSFCTNTXT",
"I_PRODAVAILABILITYCHECKGROUP",
"I_PRODAVAILABILITYCHECKGROUPT",
"I_PRODBACKFLUSHTYPE",
"I_PRODBACKFLUSHTYPETEXT",
"I_PRODCONSUMPTIONMODE",
"I_PRODCONSUMPTIONMODETEXT",
"I_PRODPROCUREMENTTYPE",
"I_PRODPROCUREMENTTYPETEXT",
"I_PRODUCT",
"I_PRODUCTPROCMTPROFILE",
"I_PRODUCTPROCMTPROFILETEXT",
"I_RANGEOFCOVERAGEPROFILE",
"I_RANGEOFCOVERAGEPROFILETEXT",
"I_REPETITIVEMFGPROFILE",
"I_SAFETYTIMEPERIODPROFILE",
"I_SAFETYTIMEPERIODPROFILETEXT",
"I_STORAGECOSTSPERCENTAGECODE",
"I_STORAGELOCATION"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/