@AbapCatalog.sqlViewName: 'CMMCPOIMONI'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@Analytics.dataCategory: #CUBE
@VDM.viewType: #CONSUMPTION
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@Search.searchable: true
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MIXED
@UI.headerInfo:{
typeName: 'Purchase Order Item',
typeNamePlural: 'Purchase Order Items',
title: {value: 'PurchaseOrder'},
description: {value: 'PurchaseOrderItem'}
}
@UI.chart: [{
chartType: #COLUMN ,
dimensions: [ 'MaterialGroup' ] ,
measures: [ 'StillToInvoiceValue','StillToBeDeliveredValue','NetAmount' ],
title: 'By Material Group',
dimensionAttributes:{
dimension: 'MaterialGroup',
role: #CATEGORY
},
measureAttributes:[{
measure: 'NetAmount',
role: #AXIS_1
}
,
{
measure: 'StillToBeDeliveredValue',
role: #AXIS_1
}
,
{
measure: 'StillToInvoiceValue',
role: #AXIS_1
}
]
}]
@Metadata.allowExtensions:true
@EndUserText.label: 'Monitor Purchase Order Item Centrally'
define view C_CntrlPurOrderItemMonitor
with parameters
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_Currency', element : 'Currency' } }]
P_DisplayCurrency : displaycurrency
as select from P_CntrlPurOrderItemMonitor(P_DisplayCurrency : $parameters.P_DisplayCurrency) as PurchaseOrderItem
left outer join I_AccountAssignmentCategory as AccountAssignmentCategory on PurchaseOrderItem.AccountAssignmentCategory = AccountAssignmentCategory.AccountAssignmentCategory
association [1..1] to E_PrmtHbRpldPurchaseOrder as _PrmtHbRpldPurchaseOrder on _PrmtHbRpldPurchaseOrder.PurchaseOrder = $projection.PurchaseOrder
and _PrmtHbRpldPurchaseOrder.ExtSourceSystem = $projection.ExtSourceSystem
association [1..1] to E_PrmtHbRpldPurchaseOrderItem as _PrmtHbRpldPurchaseOrderItem on _PrmtHbRpldPurchaseOrderItem.PurchaseOrder = $projection.PurchaseOrder
and _PrmtHbRpldPurchaseOrderItem.PurchaseOrderItem = $projection.PurchaseOrderItem
and _PrmtHbRpldPurchaseOrderItem.ExtSourceSystem = $projection.ExtSourceSystem
// association [1..1] to C_CntrlPOItemNextDelivery as _NextSchedldDeliv on $projection.PurchaseOrder = _NextSchedldDeliv.PurchaseOrder
// and $projection.PurchaseOrderItem = _NextSchedldDeliv.PurchaseOrderItem
// and $projection.ExtSourceSystem = _NextSchedldDeliv.ExtSourceSystem
//
// association [1..1] to C_CntrlPOItmGRAndInvoiceAmount as _GRAndInvoiceAmt on $projection.PurchaseOrder = _GRAndInvoiceAmt.PurchaseOrder
// and $projection.PurchaseOrderItem = _GRAndInvoiceAmt.PurchaseOrderItem
// and $projection.ExtSourceSystem = _GRAndInvoiceAmt.ExtSourceSystem
association [1..1] to C_ProcmtHubBackendSrceSystemVH as _BusinessSystem on $projection.ExtSourceSystem = _BusinessSystem.ProcurementHubSourceSystem
association [1..1] to C_MM_SmplSupplierValueHelp as _Supplier on $projection.Supplier = _Supplier.Supplier
and $projection.CompanyCode = _Supplier.CompanyCode
// association [0..1] to C_ProcmtHubSupplierVH as _ProcmtHubSupplierVH on _ProcmtHubSupplierVH.ProcmtHubFixedSupplier = $projection.Supplier
// and _ProcmtHubSupplierVH.ProcurementHubSourceSystem = $projection.ExtSourceSystem
// and _ProcmtHubSupplierVH.ProcmtHubPurchasingOrg = $projection.PurchasingOrganization
// and _ProcmtHubSupplierVH.ProcmtHubCompanyCode = $projection.CompanyCode
association [1..1] to C_MM_MaterialGroupValueHelp as _MaterialGroup on $projection.MaterialGroup = _MaterialGroup.MaterialGroup
association [1..1] to C_MM_MaterialValueHelp as _Material on $projection.Material = _Material.Material
and $projection.Plant = _Material.Plant
association [1..1] to C_ProcmtHubPurgGroupVH as _PurchasingGroup on $projection.PurchasingGroup = _PurchasingGroup.ProcmtHubPurchasingGroup
and $projection.ExtSourceSystem = _PurchasingGroup.ProcurementHubSourceSystem
association [1..1] to C_ProcmtHubPurgOrgVH as _PurchasingOrganization on $projection.PurchasingOrganization = _PurchasingOrganization.ProcmtHubPurchasingOrg
and $projection.ExtSourceSystem = _PurchasingOrganization.ProcurementHubSourceSystem
association [1..1] to C_MM_PlantValueHelp as _Plant on $projection.Plant = _Plant.Plant
and $projection.PurchasingOrganization = _Plant.PurchasingOrganization
association [1..1] to C_ProcmtHubCompanyCodeVH as _CompanyCode on $projection.CompanyCode = _CompanyCode.ProcmtHubCompanyCode
and $projection.ExtSourceSystem = _CompanyCode.ProcurementHubSourceSystem
association [1..1] to I_ProcmtHubPurgDocItmCat as _ItemCategory on $projection.ItemCategory = _ItemCategory.ItemCategory
and $projection.ExtSourceSystem = _ItemCategory.ProcurementHubSourceSystem
association [1..1] to I_ProcmtHubPurgDocType as _DocumentType on $projection.PurchaseOrderType = _DocumentType.PurchasingDocumentType
and $projection.ExtSourceSystem = _DocumentType.ExtSourceSystem
and _DocumentType.PurchasingDocumentCategory = 'F'
{
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
@Consumption.semanticObject: 'ProcurementHubPO'
@UI.lineItem: [{position:10, importance: #HIGH}]
key cast(PurchaseOrder as vdm_purchaseorder preserving type) as PurchaseOrder,
// @Consumption.semanticObject: 'ProcurementHubPO'
@UI.lineItem: [{position:20, importance: #HIGH}]
key cast (PurchaseOrderItem as ebelp preserving type) as PurchaseOrderItem,
@EndUserText.label: 'Connected System'
@ObjectModel.text.element: [ 'ProcurementHubSourceSystemName' ]
@Consumption.labelElement: 'ProcurementHubSourceSystemName'
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_ProcmtHubBackendSrceSystemVH', element : 'ProcurementHubSourceSystem' } }]
@UI.lineItem: [{position:30, importance: #HIGH}]
key PurchaseOrderItem.ExtSourceSystem,
@Semantics.text : true
@Consumption.filter.hidden: true
_BusinessSystem.ProcurementHubSourceSystemName,
@Consumption.filter.hidden: true
cast(concat(concat(PurchaseOrderItem.PurchaseOrder, '/'), PurchaseOrderItem.PurchaseOrderItem) as vdm_formattedpurchaseorditm preserving type) as FormattedPurchaseOrderItem,
@EndUserText.label: 'Item Description'
PurchaseOrderItemText,
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
@ObjectModel.text.element: [ 'SupplierName' ]
@Consumption.labelElement: 'SupplierName'
@UI.selectionField.position: 80
@UI.lineItem: [{position:40, importance: #HIGH}]
/* @Consumption.valueHelpDefinition: [{ entity: { name : 'Z_C_SUPCENTRALVALUEHELP', element : 'ProcmtHubFixedSupplier' },
additionalBinding: [{ localElement: 'Supplier',
element: 'LeadingSupplier' }] }]
*/ @Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_SmplSupplierValueHelp', element : 'Supplier' } }]
Supplier,
@Semantics.text : true
@Consumption.filter.hidden: true
_Supplier.SupplierName as SupplierName,
// @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
@ObjectModel.text.element: [ 'MaterialGroupName' ]
@Consumption.labelElement: 'MaterialGroupName'
@UI.selectionField.position: 60
@UI.lineItem: [{position:50, importance: #HIGH}]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_MaterialGroupValueHelp', element : 'MaterialGroup' } }]
MaterialGroup,
@Semantics.text: true
@Consumption.filter.hidden: true
_MaterialGroup.MaterialGroupName,
@ObjectModel.text.element: [ 'MaterialName' ]
@Consumption.labelElement: 'MaterialName'
@UI.selectionField.position: 50
@UI.lineItem: [{position:60, importance: #HIGH}]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_MaterialValueHelp', element : 'Material' } }]
PurchaseOrderItem.Material,
@Semantics.text: true
@Consumption.filter.hidden: true
_Material.MaterialName,
@ObjectModel.text.element: [ 'PurchasingOrganizationName' ]
@Consumption.labelElement: 'PurchasingOrganizationName'
@UI.selectionField.position: 30
@UI.lineItem: [{position:70, importance: #HIGH}]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_ProcmtHubPurgOrgVH', element : 'ProcmtHubPurchasingOrg' } }]
PurchasingOrganization,
@Semantics.text: true
@Consumption.filter.hidden: true
cast(_PurchasingOrganization.ProcmtHubPurgOrgName as vdm_purchasingorgname) as PurchasingOrganizationName,
@ObjectModel.text.element: [ 'PurchasingGroupName' ]
@Consumption.labelElement: 'PurchasingGroupName'
@UI.selectionField.position: 40
@UI.lineItem: [{position:80, importance: #HIGH}]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_ProcmtHubPurgGroupVH', element : 'ProcmtHubPurchasingGroup' } }]
PurchasingGroup,
@Semantics.text: true
@Consumption.filter.hidden: true
cast(_PurchasingGroup.PurchasingGroupName as vdm_purchasinggroupname) as PurchasingGroupName,
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
@ObjectModel.text.element: [ 'PlantName' ]
@Consumption.labelElement: 'PlantName'
@UI.selectionField.position: 70
@UI.lineItem: [{position:90, importance: #HIGH}]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_PlantValueHelp', element : 'Plant' } }]
Plant,
@Semantics.text: true
@Consumption.filter.hidden: true
_Plant.PlantName,
// @UI.lineItem: [{position:100, importance: #HIGH}]
@ObjectModel.text.element: [ 'ProcmtHubCompanyCodeName' ]
@Consumption.labelElement: 'ProcmtHubCompanyCodeName'
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_ProcmtHubCompanyCodeVH', element : 'CompanyCode' } }]
PurchaseOrderItem.CompanyCode,
@Semantics.text: true
@Consumption.filter.hidden: true
_CompanyCode.ProcmtHubCompanyCodeName,
// @Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_StorLocValueHelp', element : 'StorageLocation' } }]
PurchaseOrderItem.StorageLocation,
@ObjectModel.text.element: [ 'AcctAssignmentCategoryName' ]
@Consumption.labelElement: 'AcctAssignmentCategoryName'
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PROCMTHUBACCTASSIGNMENTCATVH', element : 'AccountAssignmentCategory' } }]
cast(PurchaseOrderItem.AccountAssignmentCategory as knttp_ll) as AccountAssignmentCategory,
@Semantics.text: true
@Consumption.filter.hidden: true
cast(AccountAssignmentCategory._Text[1: Language = $session.system_language].AcctAssignmentCategoryName as ps_s4_knttx) as AcctAssignmentCategoryName,
@Consumption.filter : {selectionType:#INTERVAL,multipleSelections: false}
PurchaseOrderDate,
CreatedByUser,
@Consumption.filter : {selectionType:#INTERVAL,multipleSelections: false}
CreationDate,
@ObjectModel.text.element: ['PurchasingDocumentTypeName']
@Consumption.labelElement: 'PurchasingDocumentTypeName'
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_ProcmtHubPurOrdDocTypeVH', element : 'PurchasingDocumentType' } }]
PurchaseOrderType,
@Semantics.text: true
@Consumption.filter.hidden: true
_DocumentType._Purchasingdocumenttypetext[1: Language = $session.system_language].PurchasingDocumentTypeName,
@ObjectModel.text.element: ['ItemCategoryName']
@Consumption.labelElement: 'ItemCategoryName'
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_ProcmtHubPurgDocItmCatVH', element : 'ItemCategory' } }]
// cast(ItemCategory as vdm_itemcategory) as ItemCategory,
PurchaseOrderItem.PurchaseOrderItemCategory as ItemCategory,
@Semantics.text: true
@Consumption.filter.hidden: true
_ItemCategory.ItemCategoryName,
// @Consumption.valueHelpDefinition: [{ entity: { name : 'C_POItemStatusValueHelp', element : 'PurchaseOrderItemStatus' } }]
// @ObjectModel.text.element: [ 'PurchasingDocumentStatusName' ]
// @Consumption.labelElement: 'PurchasingDocumentStatusName'
// cast(_POStatus.PurchaseOrderItemStatus as vdm_purchasingdocstatusname) as PurchaseOrderItemStatus,
//
// //TODO: DATA ELEMENT
// @Semantics.text: true
// @EndUserText.label: 'Order Status Name'
// @Consumption.filter.hidden: true
// _POStatus._StatusText.PurchasingDocumentStatusName
@Consumption.semanticObject: 'PurchaseRequisition'
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurchaseRequisitionValueHelp', element : 'PurchaseRequisition' } }]
PurchaseRequisition,
@Consumption.semanticObject: 'PurchaseRequisitionItem'
@EndUserText.label: 'Purchase Requisition Item'
@EndUserText.quickInfo: 'Purchase Requisition Item'
PurchaseRequisitionItem,
ServicePerformer,
@EndUserText.label: 'Return Item'
@EndUserText.quickInfo: 'Return Item'
IsReturnsItem,
@EndUserText.label: 'Item Count'
@DefaultAggregation: #SUM
NumberOfPurchaseOrderItems,
@DefaultAggregation: #SUM
@EndUserText.label: 'Overdue Items'
PurchaseOrderItem.NumberOfOpenItems,
@ObjectModel.filter.enabled:false
@EndUserText.label:'Delivery Date Criticality'
// @UI.hidden: true
case when DeliveryStatus = '01' then 1
when DeliveryStatus = '02' then 2
else 3
end as DeliveryDateCriticality,
@UI.lineItem: [{position:110, importance: #HIGH}]
@UI.selectionField.position: 10
@ObjectModel.text.element: [ 'DeliveryStatusDescription' ]
@Consumption.labelElement: 'DeliveryStatusDescription'
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_POItemNextDeliveryStatusVH', element : 'DeliveryStatus' } }]
// @Consumption.valueHelp: '_DeliveryStatusVH'
DeliveryStatus,
@Semantics.text: true
@EndUserText.label: 'Next Delivery Status Description'
@EndUserText.quickInfo: 'Next delivery status description'
_DeliveryStatusText._Text[1: Language = $session.system_language].DomainText as DeliveryStatusDescription,
@UI.selectionField.position: 20
@ObjectModel.text.element: [ 'DeliveryInfoText1' ]
@Consumption.labelElement: 'DeliveryInfoText1'
@EndUserText.label: 'Next Delivery'
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_POItemNextDeliveryValueHelp', element : 'PlannedDeliveryDuration' } }]
PlannedDeliveryDuration,
@Semantics.text: true
@EndUserText.label: 'Next Delivery Description'
@EndUserText.quickInfo: 'Next delivery description'
// @Consumption.filter.hidden: true
_DeliveryPeriodText._Text[1: Language = $session.system_language].DomainText as DeliveryInfoText1,
// @ObjectModel.text.element: [ 'PurchaseOrderOutputStatusName' ]
// @Consumption.labelElement: 'PurchaseOrderOutputStatusName'
// @EndUserText.label: 'Internal Status'
// @Consumption.valueHelpDefinition: [{ entity: { name : 'C_POItemInternalStatusVH', element : 'PurchaseOrderOutputStatus' } }]
// _POStatus.PurchaseOrderOutputStatus,
//
// @Semantics.text: true
// @EndUserText.label: 'Internal Status Description'
// @Consumption.filter.hidden: true
// _POStatus._InternalStatusText.PurchasingDocumentStatusName as PurchaseOrderOutputStatusName,
@UI.lineItem: [{position:110, criticality: 'DeliveryDateCriticality', criticalityRepresentation: #WITHOUT_ICON}]
@Consumption.filter : {selectionType:#INTERVAL,multipleSelections: false}
@EndUserText.label : 'Next Schedule Line Date'
ScheduleLineDeliveryDate,
@EndUserText.label:'Schedule Line'
ScheduleLine,
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
@EndUserText.label : 'Order Acknowledgement Criticality'
cast ( 0 as abap.int1) as OrdAcknDateCriticality,
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
@EndUserText.label : 'Inbound Date Criticality'
cast ( 0 as abap.int1) as InbDelivDateCriticality,
@EndUserText.label : 'Next Acknowledgement Date'
@UI.lineItem: [{position:130, criticality: 'OrdAcknDateCriticality', criticalityRepresentation: #WITHOUT_ICON}]
cast( '00000000' as bedat ) as NextAcknDeliveryDate,
@EndUserText.label : 'Next Inbound Date'
@UI.lineItem: [{position:150, criticality: 'InbDelivDateCriticality', criticalityRepresentation: #WITHOUT_ICON}]
cast( '00000000' as bedat ) as NextInbDeliveryDate,
/***************************************
* Qty and Value fields *
***************************************/
@UI.lineItem: [{position:120, criticality: 'DeliveryDateCriticality', criticalityRepresentation: #WITHOUT_ICON}]
@EndUserText.label : 'Next Schedule Line Quantity'
@Semantics.quantity.unitOfMeasure: 'PurchaseOrderQuantityUnit'
ScheduleLineOpenQty,
@EndUserText.label: 'Acknowledgement Quantity Unit'
@Semantics.unitOfMeasure:true
cast( '' as meins ) as ConfirmationQuantityUnit,
@EndUserText.label : 'Next Acknowledgement Quantity'
@UI.lineItem: [{position:140, importance: #HIGH}]
@Semantics.quantity.unitOfMeasure: 'ConfirmationQuantityUnit'
cast( 0 as abap.quan( 13,3 ) ) as NextAcknDeliveryQuantity,
@EndUserText.label : 'Next Inbound Quantity'
@UI.lineItem: [{position:160, importance: #HIGH}]
@Semantics.quantity.unitOfMeasure: 'ConfirmationQuantityUnit'
cast( 0 as abap.quan( 13,3 ) ) as NextInbDeliveryQuantity,
@UI.lineItem: [{position:170, importance: #HIGH}]
// @UI.presentationVariant.requestAtLeast: 'PurchaseOrderQuantityUnit'
@Semantics.quantity.unitOfMeasure: 'PurchaseOrderQuantityUnit'
OrderQuantity,
@DefaultAggregation: #SUM
@EndUserText.label : 'Total Value'
@Semantics.amount.currencyCode: 'DisplayCurrency'
@UI.lineItem: [{position:180, importance: #HIGH}]
//NetAmount,
cast(OrderQuantity * NetPriceAmount as mm_a_netvalue) as NetAmount,
@Semantics.amount.currencyCode: 'DisplayCurrency'
@EndUserText.label: 'Net Price'
@UI.lineItem: [{position:190, importance: #HIGH}]
cast(NetPriceAmount as mm_a_netpriceamount) as NetPriceAmount,
@Semantics.quantity.unitOfMeasure: 'OrderPriceUnit'
NetPriceQuantity,
@EndUserText.label: 'Order Unit'
@Semantics.unitOfMeasure:true
PurchaseOrderQuantityUnit,
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_Currency', element : 'Currency' } }]
@Semantics.currencyCode: true
@EndUserText.label:'Document Currency'
PurchaseOrderItem.DocumentCurrency,
@Semantics.unitOfMeasure: true
PurchaseOrderItem.OrderPriceUnit,
@Semantics.currencyCode: true
@Consumption.filter.hidden: true
DisplayCurrency,
@Semantics.quantity.unitOfMeasure: 'PurchaseOrderQuantityUnit'
cast(GoodsReceiptQty as mm_a_delivererd_quantity) as GoodsReceiptQty,
@DefaultAggregation: #SUM
@ObjectModel.filter.enabled:true
@Semantics.amount.currencyCode: 'DisplayCurrency'
cast(GoodsReceiptQty * NetPriceAmount as mm_a_gramount) as GoodsReceiptAmountInCoCodeCrcy,
@Semantics.quantity.unitOfMeasure: 'PurchaseOrderQuantityUnit'
InvoiceReceiptQty,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
@ObjectModel.filter.enabled:true
InvoiceReceiptAmount,
@Semantics.quantity.unitOfMeasure: 'PurchaseOrderQuantityUnit'
@UI.lineItem: [{position:200, importance: #HIGH}]
cast(StillToBeDeliveredQuantity as vdm_stilltobedeliveredquantity) as StillToBeDeliveredQuantity,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
@ObjectModel.filter.enabled:true
cast(StillToBeDeliveredQuantity * NetPriceAmount as mm_a_stilltobedeliveredvalue) as StillToBeDeliveredValue,
@Semantics.quantity.unitOfMeasure: 'PurchaseOrderQuantityUnit'
cast(StillToInvoiceQuantity as vdm_stilltoinvoicequantity) as StillToInvoiceQuantity,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
@UI.lineItem: [{position:210, importance: #HIGH}]
@ObjectModel.filter.enabled:true
cast(StillToInvoiceQuantity * NetPriceAmount as mm_a_stilltoinvoicevalue) as StillToInvoiceValue
}