I_PlannedOrderCapacity

DDL: I_PLANNEDORDERCAPACITY SQL: IPLNDORDERCAP Type: view COMPOSITE

Planned Order Capacity

I_PlannedOrderCapacity is a Composite CDS View (Dimension) that provides data about "Planned Order Capacity" in SAP S/4HANA. It reads from 1 data source (I_CapacityRequirementItemCap) and exposes 38 fields with key fields CapacityRequirement, CapacityRequirementItem. It has 4 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_CapacityRequirementItemCap kbed from

Associations (4)

CardinalityTargetAliasCondition
[0..1] I_CapacityCategory _CapacityCategory $projection.CapacityCategory = _CapacityCategory.CapacityCategoryCode
[0..1] I_WorkCenterType _WorkCenterType $projection.WorkCenterType = _WorkCenterType.WorkCenterTypeCode
[0..1] I_WorkCenter _WorkCenter $projection.WorkCenterType = _WorkCenter.WorkCenterTypeCode and $projection.WorkCenterInternalID = _WorkCenter.WorkCenterInternalID -- to root
[1..1] I_PlannedOrder _PlannedOrder $projection.PlannedOrder = _PlannedOrder.PlannedOrder

Annotations (20)

NameValueLevelField
AbapCatalog.sqlViewName IPLNDORDERCAP view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
Analytics.dataCategory #DIMENSION view
Analytics.dataExtraction.enabled true view
Analytics.internalName #LOCAL view
ClientHandling.algorithm #SESSION_VARIABLE view
ClientHandling.type #CLIENT_DEPENDENT view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.modelingPattern #NONE view
ObjectModel.representativeKey CapacityRqmtItemCapacity view
ObjectModel.sapObjectNodeType.name PlannedOrderCapacity view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
VDM.viewType #COMPOSITE view
EndUserText.label Planned Order Capacity view

Fields (38)

KeyFieldSource TableSource FieldDescription
KEY CapacityRequirement I_CapacityRequirementItemCap CapacityRequirement
KEY CapacityRequirementItem I_CapacityRequirementItemCap CapacityRequirementItem
CapacityRqmtItemCapacity
PlannedOrder I_CapacityRequirementItemCap PlannedOrder
WorkCenterInternalID I_CapacityRequirementItemCap WorkCenterInternalID
WorkCenterType I_CapacityRequirementItemCap WorkCenterTypeCode_2
CapacityInternalID I_CapacityRequirementItemCap CapacityInternalID
CapacityCategory
Sequence I_CapacityRequirementItemCap BillOfOperationsSequence
Operation I_CapacityRequirementItemCap Operation_2
OperationTextendasOperationText
OperationLatestStartDate I_CapacityRequirementItemCap OperationLatestStartDate
OperationLatestStartTime I_CapacityRequirementItemCap OperationLatestStartTime
OperationLatestEndDate I_CapacityRequirementItemCap OperationLatestEndDate
OperationLatestEndTime I_CapacityRequirementItemCap OperationLatestEndTime
OperationEarliestStartDate I_CapacityRequirementItemCap OperationEarliestStartDate
OperationEarliestStartTime I_CapacityRequirementItemCap OperationEarliestStartTime
OperationEarliestEndDate I_CapacityRequirementItemCap OperationEarliestEndDate
OperationEarliestEndTime I_CapacityRequirementItemCap OperationEarliestEndTime
OpLtstSchedldProcgStrtDte I_CapacityRequirementItemCap LtstSchedldProcStrtDte
OpLtstSchedldProcgStrtTme I_CapacityRequirementItemCap LtstSchedldProcStrtTime
OpLtstSchedldTrdwnStrtDte I_CapacityRequirementItemCap LtstSchedldTrdwnStrtDte
OpLtstSchedldTrdwnStrtTme I_CapacityRequirementItemCap LtstSchedldTrdwnStrtTime
CapacityRequirementUnit I_CapacityRequirementItemCap CapacityRequirementUnit
ScheduledCapReqOpSegSetupDurn I_CapacityRequirementItemCap ScheduledCapReqOpSegSetupDurn
RemainingCapReqOpSegSetupDurn I_CapacityRequirementItemCap RemainingCapReqOpSegSetupDurn
ScheduledCapReqOpSegProcgDurn I_CapacityRequirementItemCap ScheduledCapReqOpSegProcgDurn
RemainingCapReqOpSegProcgDurn I_CapacityRequirementItemCap RemainingCapReqOpSegProcgDurn
ScheduledCapReqOpSegTrdwnDurn I_CapacityRequirementItemCap ScheduledCapReqOpSegTrdwnDurn
RemainingCapReqOpSegTrdwnDurn I_CapacityRequirementItemCap RemainingCapReqOpSegTrdwnDurn
_PlannedOrder _PlannedOrder
_WorkCenter _WorkCenter
_WorkCenterType _WorkCenterType
_CapacityCategory _CapacityCategory
_CapacityRequirement I_CapacityRequirementItemCap _CapacityRequirement
_CapacityRequirementItem I_CapacityRequirementItemCap _CapacityRequirementItem
_Capacity I_CapacityRequirementItemCap _Capacity
_UnitOfMeasure I_CapacityRequirementItemCap _UnitOfMeasure
@AbapCatalog.sqlViewName: 'IPLNDORDERCAP'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #NOT_REQUIRED
@Analytics.dataCategory: #DIMENSION
@Analytics.dataExtraction.enabled: true
@Analytics.internalName: #LOCAL
@ClientHandling.algorithm: #SESSION_VARIABLE
@ClientHandling.type: #CLIENT_DEPENDENT
@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.modelingPattern: #NONE
@ObjectModel.supportedCapabilities: [#SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #EXTRACTION_DATA_SOURCE, #ANALYTICAL_DIMENSION, #CDS_MODELING_ASSOCIATION_TARGET]
@ObjectModel.representativeKey: 'CapacityRqmtItemCapacity'
@ObjectModel.sapObjectNodeType.name: 'PlannedOrderCapacity'
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #L, dataClass: #TRANSACTIONAL}
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Planned Order Capacity'
// This view selects CapReq capacities for planned orders as "pseudo-operations"


define view I_PlannedOrderCapacity
  as select from I_CapacityRequirementItemCap         as kbed
    left outer to many join I_BillOfOperationsOpBasic as BOOSubOp on  BOOSubOp.BillOfOperationsType        = kbed.BillOfOperationsType
                                                                  and BOOSubOp.BillOfOperationsGroup       = kbed.BillOfOperationsGroup
                                                                  and BOOSubOp.BOOOperationInternalID      = kbed.BOOSubOperationInternalID
                                                                  and BOOSubOp.BOOOpInternalVersionCounter = kbed.BOOSubOperationInternalVersion
                                                                  
  association [0..1] to I_CapacityCategory as _CapacityCategory on  $projection.CapacityCategory = _CapacityCategory.CapacityCategoryCode
  association [0..1] to I_WorkCenterType   as _WorkCenterType   on  $projection.WorkCenterType = _WorkCenterType.WorkCenterTypeCode
  association [0..1] to I_WorkCenter       as _WorkCenter       on  $projection.WorkCenterType       = _WorkCenter.WorkCenterTypeCode
                                                                and $projection.WorkCenterInternalID = _WorkCenter.WorkCenterInternalID
  -- to root
  association [1..1] to I_PlannedOrder     as _PlannedOrder     on  $projection.PlannedOrder = _PlannedOrder.PlannedOrder
{
      // Key

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CapacityRequirementStdVH', element: 'CapacityRequirement' } } ]
      @ObjectModel.foreignKey.association: '_CapacityRequirement'
  key kbed.CapacityRequirement,
      @ObjectModel.foreignKey.association: '_CapacityRequirementItem'
  key kbed.CapacityRequirementItem,
  --  representative key
  key kbed.CapacityRqmtItemCapacity,

      // Assignments

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlannedOrderStdVH', element: 'PlannedOrder' } } ]
      @ObjectModel.foreignKey.association: '_PlannedOrder'
      @ObjectModel.sapObjectNodeTypeReference: 'PlannedOrder'
      kbed.PlannedOrder,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_WorkCenterStdVH', element: 'WorkCenterInternalID' } } ]
      @ObjectModel.foreignKey.association: '_WorkCenter'
      kbed.WorkCenterInternalID,
      @ObjectModel.foreignKey.association: '_WorkCenterType'
      kbed.WorkCenterTypeCode_2           as WorkCenterType,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CapacityStdVH', element: 'CapacityInternalID' } } ]
      @ObjectModel.foreignKey.association: '_Capacity'
      kbed.CapacityInternalID,
      @ObjectModel.foreignKey.association: '_CapacityCategory'
      kbed._Capacity.CapacityCategoryCode as CapacityCategory,

      // Operation Data

      kbed.BillOfOperationsSequence       as Sequence,
      @ObjectModel.text.element: ['OperationText']
      kbed.Operation_2                    as Operation,
      -- sub-operation logic
      @ObjectModel.text.element: ['OperationText']
      cast( case
              when BOOSubOp.SuperiorOperationInternalID > '00000000' 
                then BOOSubOp.Operation
--              else ''
      end as vdm_uvorn preserving type)   as SubOperation,

      // Text

      @Semantics.text: true
      case
        when BOOSubOp.SuperiorOperationInternalID > '00000000'
          then BOOSubOp.OperationText
          else kbed._BOOOperationInternalVersion.OperationText
      end                                 as OperationText,
      
      // Dates/Times

      kbed.OperationLatestStartDate,
      kbed.OperationLatestStartTime,
      kbed.OperationLatestEndDate,
      kbed.OperationLatestEndTime,
      kbed.OperationEarliestStartDate,
      kbed.OperationEarliestStartTime,
      kbed.OperationEarliestEndDate,
      kbed.OperationEarliestEndTime,

      // Time Events     

      kbed.LtstSchedldProcStrtDte   as OpLtstSchedldProcgStrtDte,
      kbed.LtstSchedldProcStrtTime  as OpLtstSchedldProcgStrtTme,
      kbed.LtstSchedldTrdwnStrtDte  as OpLtstSchedldTrdwnStrtDte,
      kbed.LtstSchedldTrdwnStrtTime as OpLtstSchedldTrdwnStrtTme,

      // Durations

      @Semantics.unitOfMeasure: true
      kbed.CapacityRequirementUnit,
      kbed.ScheduledCapReqOpSegSetupDurn,
      kbed.RemainingCapReqOpSegSetupDurn,
      kbed.ScheduledCapReqOpSegProcgDurn,
      kbed.RemainingCapReqOpSegProcgDurn,
      kbed.ScheduledCapReqOpSegTrdwnDurn,
      kbed.RemainingCapReqOpSegTrdwnDurn,

      // Associations

      @ObjectModel.association.type: [#TO_COMPOSITION_ROOT, #TO_COMPOSITION_PARENT]
      _PlannedOrder,
      _WorkCenter,
      @Consumption.hidden: true
      _WorkCenterType,
      _CapacityCategory,
      kbed._CapacityRequirement,
      kbed._CapacityRequirementItem,
      kbed._Capacity,
      kbed._UnitOfMeasure
}
where
  kbed.PlannedOrder is not initial;
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BILLOFOPERATIONSOPBASIC",
"I_CAPACITY",
"I_CAPACITYREQUIREMENTITEMCAP"
],
"ASSOCIATED":
[
"I_CAPACITY",
"I_CAPACITYCATEGORY",
"I_CAPACITYREQUIREMENT",
"I_CAPACITYREQUIREMENTITEM",
"I_PLANNEDORDER",
"I_UNITOFMEASURE",
"I_WORKCENTER",
"I_WORKCENTERTYPE"
],
"BASE":
[
"I_CAPACITYREQUIREMENTITEMCAP"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/