C_ConvertPlannedOrder

DDL: C_CONVERTPLANNEDORDER SQL: CCONVPLNDORDERS Type: view CONSUMPTION Package: ODATA_PP_PLANNED_ORDER

Convert Planned Orders

C_ConvertPlannedOrder is a Consumption CDS View that provides data about "Convert Planned Orders" in SAP S/4HANA. It reads from 2 data sources (I_PlannedOrder, I_SDMAreaOfResponsibility) and exposes 35 fields with key field PlannedOrder. It is used in 1 Fiori application: Convert Planned Orders. Part of development package ODATA_PP_PLANNED_ORDER.

Data Sources (2)

SourceAliasJoin Type
I_PlannedOrder I_PlannedOrder from
I_SDMAreaOfResponsibility SDMAreaOfResponsibility inner

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName CCONVPLNDORDERS view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Convert Planned Orders view
Metadata.allowExtensions true view
Search.searchable true view
VDM.viewType #CONSUMPTION view
OData.publish true view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view

Fiori Apps (1)

App IDApp NameTypeDescription
F4171 Convert Planned Orders Transactional With this app you can convert planned orders individual or collective. In addition, you can convert planned orders into partial quantities by generating a production order or a process order for each partial quantity.

Convert Planned Orders

Business Role: Production Planner

With this app you can convert planned orders individual or collective. In addition, you can convert planned orders into partial quantities by generating a production order or a process order for each partial quantity. Planned orders are internal planning elements that are used for planning purposes and do not trigger any procurement themselves. The system only triggers procurement when they are converted into receipt elements.

Fields (35)

KeyFieldSource TableSource FieldDescription
KEY PlannedOrder PlannedOrder
Material Material
MaterialName
BaseUnit BaseUnit
PlannedTotalQtyInBaseUnit PlannedTotalQtyInBaseUnit
PlannedOrderType PlannedOrderType
BillOfMaterialStatus BillOfMaterialStatus
PlannedOrderCategory PlannedOrderCategory
MRPArea MRPArea
MRPPlant MRPPlant
ProductionPlant ProductionPlant
MRPController I_PlannedOrder MRPController
MaterialProcurementCategory MaterialProcurementCategory
PlannedOrderIsFirm PlannedOrderIsFirm
PlannedOrderOpeningDate PlannedOrderOpeningDate
PlndOrderPlannedStartDate PlndOrderPlannedStartDate
PlndOrderPlannedEndDate PlndOrderPlannedEndDate
ProductionVersion ProductionVersion
ProductionSupervisor ProductionSupervisor
Supplier FixedSupplier
PlndOrdProcessingActionControl
PurchasingGroup _PurchasingDocument PurchasingGroup
_PlannedOrderType _PlannedOrderType
_Material I_PlannedOrder _Material
_MRPArea _MRPArea
_MRPPlant _MRPPlant
_MatlProcurementCategory _MatlProcurementCategory
_PlannedOrderCategory _PlannedOrderCategory
_ProductionPlant _ProductionPlant
_MRPController I_PlannedOrder _MRPController
_Supplier _Supplier
_ProductionVersion _ProductionVersion
_ProductionSupervisor _ProductionSupervisor
_PurchasingGroup _PurchasingDocument _PurchasingGroup
PlannedOrderLongText I_PlannedOrder PlannedOrderLongText Long Text
@AbapCatalog.sqlViewName: 'CCONVPLNDORDERS'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey:true
@AccessControl: {authorizationCheck: #CHECK,
                personalData.blocking: #REQUIRED
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Convert Planned Orders'
@Metadata.allowExtensions: true
@Search.searchable: true
@VDM.viewType: #CONSUMPTION
@OData.publish: true

@ObjectModel: {
    usageType : { serviceQuality: #C, sizeCategory: #XL, dataClass: #MIXED }
}

// For UX inconsistency - Supervisor, MRPController text and ID appearance on the app

@AccessControl.privilegedAssociations: ['_MRPController', '_ProductionSupervisor']

define view C_ConvertPlannedOrder
  as select from I_PlannedOrder
    inner join   I_SDMAreaOfResponsibility as SDMAreaOfResponsibility on  I_PlannedOrder.MRPController   = SDMAreaOfResponsibility.MRPController
                                                                      and I_PlannedOrder.MRPPlant        = SDMAreaOfResponsibility.Plant
                                                                      and SDMAreaOfResponsibility.UserID = $session.user
{

       // Key

       @UI.dataPoint:{ title: 'Planned Order'}
       @Consumption.semanticObject: 'PlannedOrder'
       @UI.identification:[{position: 10 , type: #WITH_INTENT_BASED_NAVIGATION, semanticObjectAction: 'display' }]
       @Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8}
       @Consumption.valueHelpDefinition: [{ entity: { name : 'I_PlannedOrderStdVH', element: 'PlannedOrder' } }]
  key  PlannedOrder,
       @Search: {defaultSearchElement: true,ranking: #MEDIUM, fuzzinessThreshold: 0.8 }
       @Consumption.valueHelpDefinition: [{ entity: { name : 'I_MaterialStdVH', element: 'Material' } }]
       //@ObjectModel.foreignKey.association: '_Material'

       Material,
       @Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.8}
       I_PlannedOrder._Material._Text[1: Language=$session.system_language].MaterialName,
       @Semantics.unitOfMeasure: true
       BaseUnit,
       @Semantics.quantity.unitOfMeasure: 'BaseUnit'
       PlannedTotalQtyInBaseUnit,
       PlannedOrderType,
       BillOfMaterialStatus,
       PlannedOrderCategory,
       @Consumption.valueHelpDefinition: [ { entity: { name: 'C_MRPAreaValHelp', element: 'MRPArea' } } ]
       MRPArea,
       @Consumption.valueHelpDefinition: [{entity:{name:'C_PlantByAreaOfRespyVH' , element: 'Plant'}}]
       MRPPlant,
       @Consumption.valueHelpDefinition: [{entity:{name:'C_PlantByAreaOfRespyVH' , element: 'Plant'}}]
       ProductionPlant,
       @Consumption.valueHelpDefinition: [{entity:{name:'C_MRPControllerByAreaOfRespyVH' , element: 'MRPController'}}]
       I_PlannedOrder.MRPController,
       MaterialProcurementCategory,
       PlannedOrderIsFirm,
       @Semantics.systemDate.createdAt: true
       @Consumption.filter.selectionType: #INTERVAL
   //  @ObjectModel.readOnly:true

  //   @ObjectModel.filter.enabled: true

       PlannedOrderOpeningDate,
       PlndOrderPlannedStartDate,
       PlndOrderPlannedEndDate,
       ProductionVersion,
       
       @Consumption.valueHelpDefinition: [{entity:{name:'I_MfgOrderProdnSupervisorVH' , element: 'ProductionSupervisor'}}]
       
       ProductionSupervisor,
       FixedSupplier                as Supplier,
       cast( '' as abap.char( 2 ) ) as PlndOrdProcessingActionControl,
       case MaterialProcurementCategory
       when 'E' then 'PDC'
       when 'F' then 'PRQ'
       else '' end                  as PlannedOrderMaintActivityType,
       
       @Consumption.valueHelpDefinition: [{entity:{name:'C_PlannedOrderPurchasingGrpVH' , element: 'PurchasingGroup'}}]
              
      // Associations

       _PurchasingDocument.PurchasingGroup,
       _PlannedOrderType,
       I_PlannedOrder._Material,
       _MRPArea,
       _MRPPlant,
       _MatlProcurementCategory,
       _PlannedOrderCategory,
       _ProductionPlant,
       I_PlannedOrder._MRPController,
       _Supplier,
       _ProductionVersion,
       _ProductionSupervisor,
       _PurchasingDocument._PurchasingGroup,
         
       @EndUserText.label: 'Long Text'
       I_PlannedOrder.PlannedOrderLongText
       
//as part of inline navigation poc

////        @EndUserText.label: 'BillOfOperationsType'

//        case  _ProductionVersion.BillOfOperationsType 

//       when 'N' then 'P'

//       when '2' then 'C'

//       else '' end                  as BillOfOperationsType

     
       
}
where
      MRPPlanningScenario       = '000'
  and PlannedOrderIsConvertible = 'X'