I_PRODUCTWORKSCHEDULING

CDS View

Product WorkScheduling core entity

I_PRODUCTWORKSCHEDULING is a CDS View in S/4HANA. Product WorkScheduling core entity. It contains 11 fields. 6 CDS views read from this table.

CDS Views using this table (6)

ViewTypeJoinVDMDescription
A_ClfnProdWrkSchedg view from COMPOSITE Work Scheduling Data
A_ProductWorkScheduling view from COMPOSITE Work Scheduling Data
I_ProductWorkSchedulingWD view from TRANSACTIONAL Product-Work Scheduling Node (draft)
P_ProductWorkSchedulingWD view from COMPOSITE union
R_ProdPlantWorkSchedulingTP view_entity from TRANSACTIONAL Product Plant Work Scheduling - TP
R_ProdPlantWorkSchedulingTP_2 view_entity from TRANSACTIONAL Product Plant Work Scheduling - TP

Fields (11)

KeyField CDS FieldsUsed in Views
KEY Plant ActivePlant,Plant,PlantForEdit 2
KEY Product ActiveProduct,Product 2
BaseUnit BaseUnit 1
MaterialBaseQuantity MaterialBaseQuantity 2
MatlCompIsMarkedForBackflush MatlCompIsMarkedForBackflush 1
OverDelivToleranceLimit OverDelivToleranceLimit 2
ProductionInvtryManagedLoc ProductionInvtryManagedLoc 1
ProductionSchedulingProfile ProductionSchedulingProfile 1
ProductionSupervisor ProductionSupervisor 1
UnderDelivToleranceLimit UnderDelivToleranceLimit 2
UnlimitedOverDelivIsAllowed UnlimitedOverDelivIsAllowed 2
// Product Work scheduling (active)

@AbapCatalog: {
    sqlViewName: 'IPRDWORKSCHED',
    preserveKey:true,
    compiler.compareFilter:true
    }
@VDM.viewType: #BASIC
@AccessControl: {
    authorizationCheck: #MANDATORY,
    privilegedAssociations: ['_ProductionSupervisor']
    }
@EndUserText.label: 'Product WorkScheduling core entity'
@ObjectModel.usageType.serviceQuality: #B
@ObjectModel.usageType.sizeCategory : #XL
@ObjectModel.usageType.dataClass: #MASTER
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations:true
@ObjectModel.supportedCapabilities: [ #SQL_DATA_SOURCE,
                                     #CDS_MODELING_DATA_SOURCE,
                                     #CDS_MODELING_ASSOCIATION_TARGET,
                                     #EXTRACTION_DATA_SOURCE
]
@AccessControl.personalData.blocking: #NOT_REQUIRED
@Analytics:{
  dataExtraction: {
    enabled: true,
    delta.changeDataCapture :{
      mapping: [{ viewElement: ['Product', 'Plant'],
                  role: #MAIN,
                  table: 'MARC',
                  tableElement: ['MATNR', 'WERKS']},
                { viewElement: ['Product'],
                  role: #LEFT_OUTER_TO_ONE_JOIN,
                  table: 'MARA',
                  tableElement: ['MATNR']}
                ]
    }
  }
}
@ObjectModel.modelingPattern: #ANALYTICAL_DIMENSION
@ObjectModel.sapObjectNodeType.name: 'ProductPlantWorkScheduling'

define view I_ProductWorkScheduling
  as select from P_ProductPlantBasic as WorkScheduling


  association [1..1] to I_Product                     as _Product                       on  $projection.Product = _Product.Product
  association [0..1] to E_Productplant                as _ProdWorkSchedulingExt         on  $projection.Product = _ProdWorkSchedulingExt.Product
                                                                                        and $projection.Plant   = _ProdWorkSchedulingExt.Plant
  association [0..1] to I_StorageLocation             as _ProductionInvtryManagedLoc    on  $projection.Plant                      = _ProductionInvtryManagedLoc.Plant
                                                                                        and $projection.ProductionInvtryManagedLoc = _ProductionInvtryManagedLoc.StorageLocation
  association [0..1] to I_ProductionSupervisor        as _ProductionSupervisor          on  $projection.Plant                = _ProductionSupervisor.Plant
                                                                                        and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor
  association [0..1] to I_ProductionSchedulingProfile as _ProductionSchedulingProfile   on  $projection.Plant                       = _ProductionSchedulingProfile.Plant
                                                                                        and $projection.ProductionSchedulingProfile = _ProductionSchedulingProfile.ProductionSchedulingProfile
  association [1..1] to I_Plant                       as _Plant                         on  $projection.Plant = _Plant.Plant
  association [0..1] to I_UnitOfMeasure               as _ProductProductionQuantityUnit on  $projection.ProductProductionQuantityUnit = _ProductProductionQuantityUnit.UnitOfMeasure
  association [0..*] to I_ProdnOrdBatDetnCodeText     as _ProdnOrdBatDetnCodeText       on  $projection.ProdnOrderIsBatchRequired = _ProdnOrdBatDetnCodeText.ProductionOrderBatchCode
  association [0..*] to I_ProdComponentBackflushCodeT as _ProdComponentBackflushCodeT   on $projection.MatlCompIsMarkedForBackflush = _ProdComponentBackflushCodeT.ProductComponentBackflushCode

  association [0..*] to I_ProductDescription_2        as _ProductDescription            on  $projection.Product = _ProductDescription.Product
  association [0..*] to I_UnitOfMeasureText           as _BaseUnitOfMeasureText         on  $projection.BaseUnit = _BaseUnitOfMeasureText.UnitOfMeasure
  association [0..*] to I_UnitOfMeasureText           as _ProdProdnQuantityUnitText     on  $projection.ProductProductionQuantityUnit = _ProdProdnQuantityUnitText.UnitOfMeasure
{
  key    WorkScheduling.Product,
         @ObjectModel.foreignKey.association: '_Plant'
  key    WorkScheduling.Plant,
         @Semantics.quantity.unitOfMeasure: 'BaseUnit'
         WorkScheduling.MaterialBaseQuantity,
         WorkScheduling.UnlimitedOverDelivIsAllowed,
         WorkScheduling.OverDelivToleranceLimit,
         WorkScheduling.UnderDelivToleranceLimit,

         @ObjectModel.foreignKey.association: '_ProductionInvtryManagedLoc'
         @ObjectModel.sapObjectNodeTypeReference:'StorageLocation'
         WorkScheduling.ProductionInvtryManagedLoc, //PSTAT Revert

         cast( 'X' as sdraft_is_active preserving type ) as IsActiveEntity, // to enbale extensibility in Draft 2.0


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

         @Semantics.booleanIndicator: true
         WorkScheduling.ProdnOrderIsBatchRequired,
         WorkScheduling.ProdIsWithdrawnFrmProdnBin,
         WorkScheduling.TransitionMatrixProductsGroup,
         WorkScheduling.OrderChangeManagementProfile,
         @Semantics.booleanIndicator: true
         WorkScheduling.MatlCompIsMarkedForBackflush,
         WorkScheduling.SetupAndTeardownTime,
         @ObjectModel.foreignKey.association: '_ProductionSchedulingProfile'
         @ObjectModel.sapObjectNodeTypeReference:'ProductionSchedulingProfile'
         WorkScheduling.ProductionSchedulingProfile,
         WorkScheduling.TransitionTime,
         WorkScheduling.ProcessingTimeInDays,
         @ObjectModel.foreignKey.association: '_ProductionSupervisor'
         WorkScheduling.ProductionSupervisor,
         @ObjectModel.foreignKey.association: '_ProductProductionQuantityUnit'
         WorkScheduling.ProductProductionQuantityUnit,
         WorkScheduling.HasProductionVersion, //calculated field  pstat A

         @Semantics.unitOfMeasure: true
         @ObjectModel.foreignKey.association: '_BaseUnitOfMeasure'
         _Product.BaseUnit                               as BaseUnit,

         _Product,
         _Plant,
         _ProductionInvtryManagedLoc,
         _ProductionSupervisor,
         _ProductionSchedulingProfile,
         _Product._BaseUnitOfMeasure,
         _ProductProductionQuantityUnit,
         _ProdnOrdBatDetnCodeText,
         _ProdComponentBackflushCodeT,
         _ProductDescription,
         _BaseUnitOfMeasureText,
         _ProdProdnQuantityUnitText
         
}