@VDM.viewType: #CONSUMPTION
@AbapCatalog: { sqlViewName: 'CPURHIERITMTP' }
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Purchase Order Item Hierarchies transactional processing'
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@ObjectModel.query.implementedBy: 'ABAP:CL_MM_PUR_PO_QC_HIERACHY_ITEMS'
@AbapCatalog.preserveKey:true
@ObjectModel: {
semanticKey: ['PurchaseOrder', 'PurchaseOrderItem'],
representativeKey: 'PurchaseOrderItem',
updateEnabled: true
}
@UI: {
lineItem.criticality: 'HighestMessageSeverityLevel',
lineItem.qualifier: 'HierItem'
}
@AbapCatalog.compiler.compareFilter:true
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@Search.searchable: false
@UI.headerInfo:{
typeName: 'Purchase Order Item',
typeNamePlural: 'Purchase Order Items',
title: {value: 'PurchaseOrderItem'},
description: {value: 'PurOrdItemCategoryName'}
}
@OData.hierarchy.recursiveHierarchy: [ {
elementWithHierarchy: 'PurchaseOrderItem',
nodeElement: 'PurchasingHierarchyNode',
externalKeyElement: 'PurchaseOrderItem',
parentNodeElement: 'HierarchyParentNode',
distanceFromRootElement: 'HierarchyLevel',
drillStateElement: 'HierarchyDrillState',
descendantCountElement: 'HierarchyNodeSubTreeSize',
preorderRankElement: 'HierarchyNodeOrdinalNumber'
} ]
define view C_PurchaseOrderItemHierarchyTP
as select from I_PurchaseOrderItemTP as PurchaseOrderItemTP
-------------------------------------------------------------------------------------------
-- COMPOSITION NODE: Purchase Order Item Hierarchy --
-------------------------------------------------------------------------------------------
-- :* association to parent node
association [1..1] to C_PurchaseOrderTP as _PurchaseOrderTP on _PurchaseOrderTP.PurchaseOrder = $projection.PurchaseOrder
association [1..1] to C_PurchaseOrderItemSet as _PurchaseOrderItemSetTP on _PurchaseOrderItemSetTP.PurchaseOrder = $projection.PurchaseOrder
and _PurchaseOrderItemSetTP.PurchaseOrderItem = $projection.PurchaseOrderItem
association [0..1] to C_MM_MaterialGroupValueHelp as _MaterialGroupValueHelp on _MaterialGroupValueHelp.MaterialGroup = $projection.MaterialGroup
association [0..1] to C_MM_TaxJurisdictionVH as _TaxJurisdiction on _TaxJurisdiction.TaxJurisdiction = $projection.TaxJurisdiction
association [0..1] to C_MM_ServicePerformerValueHelp as _MM_ServicePerformerValueHelp on _MM_ServicePerformerValueHelp.ServicePerformer = $projection.ServicePerformer
and _MM_ServicePerformerValueHelp.Supplier = $projection.supplier
association [0..1] to C_MM_MaterialValueHelp as _MaterialValueHelp on _MaterialValueHelp.Material = $projection.ManufacturerMaterial
and _MaterialValueHelp.MaterialGroup = $projection.MaterialGroup
-- :* association to the Pricing Elements child node
association [1..*] to C_PurOrdPricingElementTP as _PurOrdPricingElementTP on _PurOrdPricingElementTP.PurchaseOrder = $projection.PurchaseOrder
and _PurOrdPricingElementTP.PurchaseOrderItem = $projection.PurchaseOrderItem
association [0..1] to C_MM_TaxCodeValueHelp as _TaxCode on _TaxCode.TaxCode = $projection.TaxCode
and _TaxCode.TaxCalculationProcedure = $projection.TaxCalculationProcedure
association [0..1] to C_PurOrdActACatValHelp as _PurOrdActACatValHelp on _PurOrdActACatValHelp.AccountAssignmentCategory = $projection.AccountAssignmentCategory
association [0..1] to I_TaxCalculationProcedure as _TaxCalculationProcedure on _TaxCalculationProcedure.TaxCalculationProcedure = $projection.TaxCalculationProcedure
association [0..1] to I_AccAssgnmtCategory as _AccountAssignmentCategory on _AccountAssignmentCategory.AccountAssignmentCategory = $projection.AccountAssignmentCategory
-- :* association to the Delivery Address child node
association [1..1] to C_PurOrdDeliveryAddressTP as _PurOrdDeliveryAddressTP on _PurOrdDeliveryAddressTP.PurchaseOrder = $projection.PurchaseOrder
and _PurOrdDeliveryAddressTP.PurchaseOrderItem = $projection.PurchaseOrderItem -- :* association to the Schedule Line child node
association [1..*] to C_PurOrdScheduleLineTP as _PurOrdScheduleLineTP on _PurOrdScheduleLineTP.PurchaseOrder = $projection.PurchaseOrder
association [0..1] to C_MM_PlantValueHelp as _PlantValueHelp on _PlantValueHelp.Plant = $projection.Plant
and _PlantValueHelp.PurchasingOrganization = $projection.purchasingorganization
association [1..1] to C_PurOrdItemCO2eqFootprint as _PurOrdItemCO2eqFootprint on _PurOrdItemCO2eqFootprint.PurchaseOrder = $projection.PurchaseOrder
and _PurOrdItemCO2eqFootprint.PurchaseOrderItem = $projection.PurchaseOrderItem
{
@UI.hidden: true
key PurchaseOrderItemTP.PurchaseOrder,
@UI: {
lineItem: [
{ position: 10, qualifier: 'HierItem'},
{ type: #FOR_ACTION, qualifier: 'HierItem' }
]
}
@ObjectModel.sort.enabled: false
@Search: { defaultSearchElement: false, ranking: #HIGH, fuzzinessThreshold: 0.8 }
@ObjectModel: { readOnly: true }
key PurchaseOrderItemTP.PurchaseOrderItem,
@UI: {
identification: {position: 5, qualifier: 'HierItem'},
lineItem: [ {position: 05, qualifier: 'HierItem'} ]
}
@ObjectModel: { readOnly: true }
PurchaseOrderItemTP.PurgConfigurableItemNumber,
@UI: {
identification: [{position: 20, qualifier: 'HierItem'}],
lineItem: [ {position: 20, qualifier: 'HierItem'}],
textArrangement: #TEXT_FIRST
}
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
@ObjectModel.sort.enabled: false
@ObjectModel.text.element: ['PurOrdItemCategoryName']
// @Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurOrdItmCatValHelp', element : 'PurgDocExternalItemCategory' } }]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurOrdHierItmCatValueHelp', element : 'PurOrdExtHierItemCategory' } }]
PurchaseOrderItemTP.PurOrdExternalItemCategory,
@ObjectModel.sort.enabled: false
@ObjectModel.readOnly: 'true'
@EndUserText.quickInfo: 'Item Set'
PurchaseOrderItemTP.PurchasingIsItemSet,
@UI: {
identification: {position: 30, qualifier: 'HierItem'},
lineItem: [ {position: 30, qualifier: 'HierItem'}]
}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_MaterialValueHelp', element : 'Material' }, additionalBinding: [{ element: 'MaterialGroup', localElement: 'MaterialGroup' }, { element: 'Plant', localElement: 'Plant' }] }]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION', foreignKey.association: '_MaterialValueHelp' }
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
PurchaseOrderItemTP.ManufacturerMaterial,
@UI: {
identification: [{position: 40, qualifier: 'HierItem'}],
lineItem: [ {position: 40, qualifier: 'HierItem'} ]
}
@Semantics: { text: true }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.PurchaseOrderItemText,
@UI: {
identification: [{position: 50, qualifier: 'HierItem'}],
lineItem:[{position: 50, qualifier: 'HierItem'}]
}
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION', foreignKey.association: '_MaterialGroupValueHelp'}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_MaterialGroupValueHelp', element : 'MaterialGroup' } }]
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
PurchaseOrderItemTP.MaterialGroup,
@UI: {
identification: {position: 60, qualifier: 'HierItem'},
lineItem: [ {position: 60, qualifier: 'HierItem'} ]
}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_PlantValueHelp', element : 'Plant' }}]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
@Consumption.semanticObject: 'Plant'
PurchaseOrderItemTP.Plant,
@UI: {
identification: {position: 70, qualifier: 'HierItem'},
lineItem: [ {position: 70, qualifier: 'HierItem'} ]
}
@Semantics: { quantity.unitOfMeasure: 'PurchaseOrderQuantityUnit' }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.OrderQuantity,
@UI: {
identification: {position: 80, qualifier: 'HierItem'},
lineItem: [ {position: 80, qualifier: 'HierItem'}]
}
@Semantics: { amount.currencyCode: 'DocumentCurrency' }
@ObjectModel.sort.enabled: false
@ObjectModel: {
readOnly: 'EXTERNAL_CALCULATION'
}
PurchaseOrderItemTP.NetPriceAmount,
@UI: {
identification: {position: 90, qualifier: 'HierItem'},
lineItem: [ {position: 90, qualifier: 'HierItem'} ]
}
@Semantics: { quantity.unitOfMeasure: 'OrderPriceUnit' }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.NetPriceQuantity,
@ObjectModel.sort.enabled: false
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_ServicePerformerValueHelp', element : 'ServicePerformer' }, additionalBinding: [{ element: 'Supplier', localElement: 'Supplier' }] }]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
PurchaseOrderItemTP.ServicePerformer,
// @Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_ProductTypeValueHelp', element : 'ProductType' } }]
// @ObjectModel: { readOnly: true }
// @ObjectModel.sort.enabled: false
// cast( PurchaseOrderItemTP.ProductType as abap.char( 6 )) as ProductType,
@ObjectModel.sort.enabled: false
@ObjectModel: { readOnly: true }
PurchaseOrderItemTP.ProductTypeName,
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_Customer_VH', element : 'Customer' } }]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.Customer,
@ObjectModel.sort.enabled: true
@ObjectModel: { readOnly: true }
PurchaseOrderItemUniqueID,
@UI.hidden: true
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.PurchaseOrderItemCategory,
@UI.hidden: true
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.PurgDocAggrgdSubitemCategory,
@UI.hidden: false
@ObjectModel.sort.enabled: false
@ObjectModel.readOnly: true
PurchaseOrderItemTP.PurchasingParentItem,
@UI.hidden: true
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.PurgDocSubitemCategory,
@ObjectModel.sort.enabled: false
@UI.hidden: true
PurchaseOrderItemTP.IsStatisticalItem,
@ObjectModel.sort.enabled: false
@UI.hidden: false
@ObjectModel.readOnly: true
PurchaseOrderItemTP.PurgExternalSortNumber,
@UI.hidden: true
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.PurOrdItemCategoryName,
@UI.hidden: true
@ObjectModel.sort.enabled: false @ObjectModel: { readOnly : true }
PurchaseOrderItemTP.Material,
//added for item Hierarchy
@ObjectModel: { readOnly : true }
@ObjectModel.sort.enabled: false
@UI.hidden: true
PurchaseOrderItemTP.PurchasingHierarchyNode,
@ObjectModel: { readOnly : true }
@UI.hidden: true
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.HierarchyParentNode,
@ObjectModel.sort.enabled: false
@ObjectModel: { readOnly : true }
@UI.hidden: true
PurchaseOrderItemTP.HierarchyLevel,
@ObjectModel.sort.enabled: false
@ObjectModel: { readOnly : true }
@UI.hidden: true
PurchaseOrderItemTP.HierarchyNodeSubTreeSize,
@ObjectModel.sort.enabled: false
@ObjectModel: { readOnly : true }
@UI.hidden: true
PurchaseOrderItemTP.HierarchyDrillState,
@ObjectModel.sort.enabled: false
@ObjectModel: { readOnly : true }
@UI.hidden: true
PurchaseOrderItemTP.HierarchyNodeOrdinalNumber,
@Semantics: { amount.currencyCode: 'DocumentCurrency' }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.ExpectedOverallLimitAmount,
@Semantics: { amount.currencyCode: 'DocumentCurrency' }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.OverallLimitAmount,
@UI: {
identification: {position: 110, qualifier: 'HierItem'},
lineItem: [ {position: 110, qualifier: 'HierItem'} ]
}
@Semantics: { amount.currencyCode: 'DocumentCurrency' }
@ObjectModel: {
readOnly: 'EXTERNAL_CALCULATION'
}
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.NetAmount,
@ObjectModel.readOnly: true
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.PurchasingDocumentDeletionCode,
@Consumption.hidden: true
@ObjectModel.readOnly: true
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.PurchaseOrderItemStatus as PurchaseOrderItemStatus_H,
@UI: {
lineItem: [ {position: 900, importance: #HIGH, qualifier: 'Item'},
{position: 900, importance: #HIGH, qualifier: 'LimitItem'}],
textArrangement: #TEXT_ONLY
}
@ObjectModel: {
readOnly: true,
text.element: [ 'PurchaseOrderItemStatusName' ]
}
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_PurchaseOrderStatusValueHelp', element : 'PurchasingDocumentStatus' } }]
@EndUserText.label: 'Status'
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_FILTERS'
@ObjectModel.filter.transformedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_FILTERS'
@ObjectModel.sort.enabled: true
@ObjectModel.sort.transformedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_FILTERS'
cast ( '' as abap.char(2)) as PurchaseOrderItemStatus,
@ObjectModel: {
readOnly: true
}
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_FILTERS'
@UI.hidden: true
cast ( '' as abap.sstring(260)) as PurchaseOrderItemStatusName,
@Semantics: { currencyCode: true }
@ObjectModel: { readOnly: true }
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.DocumentCurrency,
@Semantics: { unitOfMeasure: true }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION', foreignKey.association: '_OrderPriceUnit'}
@ObjectModel.sort.enabled: false
@Consumption.valueHelpDefinition: [{
entity: { name: 'C_ProductUnitOfMeasureVH',
element: 'UnitOfMeasure' }
}]
PurchaseOrderItemTP.OrderPriceUnit,
@Semantics: { unitOfMeasure: true }
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION', foreignKey.association: '_OrderQuantityUnit'}
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.PurchaseOrderQuantityUnit as bstme_ll preserving type) as PurchaseOrderQuantityUnit,
----------------------------------------------------------------------------------------
-- FieldGroup: Delivery Address --
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
-- FieldGroup: Process Flow --
----------------------------------------------------------------------------------------
@UI.fieldGroup: [ { groupLabel: 'Process Flow', position: 10, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.GoodsReceiptIsExpected as wepos_ll preserving type) as GoodsReceiptIsExpected,
@UI.fieldGroup: [ { position: 20, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
cast(PurchaseOrderItemTP.GoodsReceiptIsNonValuated as weunb_ll preserving type) as GoodsReceiptIsNonValuated,
@UI.fieldGroup: [ { position: 30, qualifier: 'ProcessFlowGroup' } ]
@EndUserText.label: 'Evaluated Receipt Settlement'
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.EvaldRcptSettlmtIsAllowed,
@UI.fieldGroup: [ { position: 40, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.InvoiceIsExpected as repos_ll preserving type) as InvoiceIsExpected,
@UI.fieldGroup: [ { position: 50, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
cast(PurchaseOrderItemTP.InvoiceIsGoodsReceiptBased as webre_ll preserving type) as InvoiceIsGoodsReceiptBased,
@UI.fieldGroup: [ { position: 60, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.IsCompletelyDelivered,
@UI.fieldGroup: [ { position: 70, qualifier: 'ProcessFlowGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.IsFinallyInvoiced,
----------------------------------------------------------------------------------------
-- FieldGroup: Delivery --
----------------------------------------------------------------------------------------
@UI.fieldGroup: [ { position: 30, qualifier: 'DeliveryGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.OverdelivTolrtdLmtRatioInPct as uebto_ll preserving type) as OverdelivTolrtdLmtRatioInPct,
@UI.fieldGroup: [ { position: 40, qualifier: 'DeliveryGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.UnderdelivTolrtdLmtRatioInPct as untto_ll preserving type) as UnderdelivTolrtdLmtRatioInPct,
@UI.fieldGroup: [ { position: 50, qualifier: 'DeliveryGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@EndUserText.label: 'Unlimited Overdelivery Allowed'
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.UnlimitedOverdeliveryIsAllowed as uebtk preserving type) as UnlimitedOverdeliveryIsAllowed,
@UI.fieldGroup: [ { position: 60, qualifier: 'DeliveryGroup' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_StorLocValueHelp', element : 'StorageLocation' }, additionalBinding: [{ element: 'Plant', localElement: 'Plant' }] }]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.StorageLocation,
@UI.fieldGroup: [ { position: 70, qualifier: 'DeliveryGroup' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurOrdIntrastatSrvcCodeVH', element : 'IntrastatServiceCode' }, additionalBinding: [{ element: 'Country', localElement: 'Country' }] }]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.IntrastatServiceCode as mm_isvco_ll preserving type) as IntrastatServiceCode,
@UI.fieldGroup: [ { position: 80, qualifier: 'DeliveryGroup' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurOrdIntrastatCmmdtyCodeVH', element : 'CommodityCode' } }]
@ObjectModel: {
readOnly: 'EXTERNAL_CALCULATION'
// virtualElement,
// virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
}
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.CommodityCode,
----------------------------------------------------------------------------------------
-- FieldGroup: Incoterms --
----------------------------------------------------------------------------------------
@UI.fieldGroup: [ { groupLabel: 'Incoterms', position: 10, qualifier: 'IncotermsGroup' } ]
@ObjectModel: { foreignKey.association: '_IncotermsVersion', readOnly: true }
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.IncotermsVersion,
@UI.fieldGroup: [ { position: 20, qualifier: 'IncotermsGroup' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_IncotermValueHelp', element : 'IncotermsClassification' }, additionalBinding: [{ element: 'IncotermsVersion', localElement: 'IncotermsVersion' }] }]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.IncotermsClassification,
@UI.fieldGroup: [ { position: 30, qualifier: 'IncotermsGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.IncotermsLocation1,
@UI.fieldGroup: [ { position: 40, qualifier: 'IncotermsGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.IncotermsLocation2,
----------------------------------------------------------------------------------------
-- FieldGroup: Source of Supply --
----------------------------------------------------------------------------------------
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_PurchasingInfoRecordStdVH',
element: 'PurchasingInfoRecord' }
}]
@UI.fieldGroup: [ { groupLabel: 'Source of Supply', position: 10, qualifier: 'SourceOfSupplyGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.PurchasingInfoRecord as infnr_ll preserving type) as PurchasingInfoRecord,
@UI.fieldGroup: [ { position: 20, qualifier: 'SourceOfSupplyGroup' } ]
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurchaseContractValHelp', element : 'PurchaseContract' } }]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.PurchaseContract as konnr_ll preserving type) as PurchaseContract,
@UI: {
fieldGroup: [{ groupLabel: 'SourceOfSupply', position: 10, qualifier: 'SourceOfSupplyGroup' }],
lineItem: [ {position: 50, qualifier: 'LimitItem'} ]
}
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurchaseContractValHelp', element : 'PurchaseContract' } }]
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.PurContractForOverallLimit,
@UI: {
fieldGroup: [{ groupLabel: 'SourceOfSupply', position: 20, qualifier: 'SourceOfSupplyGroup' }],
lineItem: [ {position: 60, qualifier: 'LimitItem'} ]
}
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
@EndUserText.label: 'Contract Item for Limit'
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_PurContractServiceItemVH', element: 'PurchaseContractItem' },
additionalBinding: [{ localElement: 'PurContractForOverallLimit', element: 'PurchaseContract' }]
}]
PurchaseOrderItemTP.PurContractItemForOverallLimit,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_PurchaseContractItemStdVH',
element: 'PurchaseContractItem' },
additionalBinding: [{ localElement: 'PurchaseContract',
element: 'PurchaseContract' }]
}]
@UI.fieldGroup: [ { position: 30, qualifier: 'SourceOfSupplyGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.PurchaseContractItem as ktpnr_ll preserving type) as PurchaseContractItem,
@UI.fieldGroup: [ { position: 40, qualifier: 'SourceOfSupplyGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.InfoRecordIsToBeUpdated,
----------------------------------------------------------------------------------------
-- FieldGroup: Accounting (will be part of reuse) --
----------------------------------------------------------------------------------------
@UI: {
identification: [{position: 300, qualifier: 'Item'},
{position: 50, qualifier: 'LimitItem'}],
lineItem: {position: 70, qualifier: 'LimitItem'},
textArrangement: #TEXT_FIRST
}
@ObjectModel.readOnly:'EXTERNAL_CALCULATION'
@ObjectModel: [{ foreignKey.association: '_AccountAssignmentCategory' }]
@Consumption.valueHelpDefinition:
[{entity: { name: 'I_AccAssgnmtCategory',
element: 'AccountAssignmentCategory' }
}]
@ObjectModel.sort.enabled: false
@ObjectModel.text.element: ['AcctAssignmentCategoryName']
PurchaseOrderItemTP.AccountAssignmentCategory as AccountAssignmentCategory,
@ObjectModel.readOnly: true
@UI.hidden: true
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_AccountAssignmentCategory.AcctAssignmentCategoryName as AcctAssignmentCategoryName,
----------------------------------------------------------------------------------------
-- FieldGroup: Public Sector Management (PSM) Accounting --
----------------------------------------------------------------------------------------
@Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_MM_CostCenterValueHelp' } }]
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.CostCenter,
@Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_MM_GLAccountVH' } }]
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.GLAccount,
// @Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
// @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
// @Consumption.valueHelpDefinition: [{ entity: { name: 'C_PurOrdWBSValHelp' } }]
// @ObjectModel.sort.enabled: false
// PurchaseOrderItemTP.WBSElementExternalID,
@Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel: { readOnly: 'true' }
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.WBSDescription,
@Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_FUNDSTDVH', element: 'Fund' } }]
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.Fund,
@Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_BUDGETPERIODSTDVH', element: 'BudgetPeriod' } }]
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.BudgetPeriod,
@Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_FUNDSCENTERSTDVH', element: 'FundsCenter' } }]
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.FundsCenter,
@Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_EmrkdFndsDocumentItemStdVH', element: 'EarmarkedFundsDocument' } }]
@ObjectModel.sort.enabled: false
cast ( EarmarkedFundsDocument as fmis_earmarkedfundsdoc preserving type ) as EarmarkedFundsDocument,
@Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_EmrkdFndsDocumentItemStdVH', element: 'EarmarkedFundsDocumentItem' } }]
@ObjectModel.sort.enabled: false
cast ( EarmarkedFundsDocumentItem as fmis_earmarkedfundsdocitem preserving type ) as EarmarkedFundsDocumentItem,
@Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_FNDSMGMTFUNCNLAREASTDVH', element: 'FunctionalArea' } }]
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.FunctionalArea,
@Feature: 'BF:PSM_BUDGET_ACCOUNTING_CONTROL'
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@Consumption.valueHelpDefinition: [{ entity: { name : 'I_GRANTSTDVH', element: 'GrantID' } }]
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.GrantID,
----------------------------------------------------------------------------------------
-- FieldGroup: Tax --
----------------------------------------------------------------------------------------
@UI.fieldGroup: [ { groupLabel: 'Tax', position: 10, qualifier: 'TaxGroup' } ]
@ObjectModel: { foreignKey.association: '_TaxCode', readOnly: 'EXTERNAL_CALCULATION' }
@ObjectModel.sort.enabled: false
TaxCode,
@UI.fieldGroup: [ { position: 20, qualifier: 'TaxGroup' } ]
@ObjectModel: { foreignKey.association: '_TaxJurisdiction', readOnly: 'EXTERNAL_CALCULATION'}
@Consumption.valueHelp: '_PurOrdTaxJurisdictionValHelp'
@ObjectModel.sort.enabled: false
TaxJurisdiction,
@UI.fieldGroup: [ { groupLabel: 'Tax', position: 30, qualifier: 'TaxGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_POMntnTaxCountryValueHelp', element : 'TaxCountry' } , additionalBinding: [{ element: 'CompanyCode', localElement: 'CompanyCode' }] }]
@ObjectModel.sort.enabled: false
TaxCountry,
@UI.fieldGroup: [ { groupLabel: 'Tax', position: 40, qualifier: 'TaxGroup' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
@ObjectModel.sort.enabled: false
TaxDeterminationDate,
//Brazil Extension
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_BR_MaterialOriginValHelp', element : 'BR_MaterialOrigin' } }]
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.BR_MaterialOrigin as logbr_matorg preserving type) as BR_MaterialOrigin,
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_BR_MaterialUsageValHelp', element : 'BR_MaterialUsage' } }]
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.BR_MaterialUsage as logbr_matuse preserving type) as BR_MaterialUsage,
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_BR_CFOPCategoryValHelp', element : 'BR_CFOPCategory' } }]
@ObjectModel.sort.enabled: false
cast (PurchaseOrderItemTP.BR_CFOPCategory as logbr_cfopcategory preserving type) as BR_CFOPCategory,
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_BR_NCMValHelp', element : 'BR_NCM' } }]
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.BR_NCM as BR_NCM, //Implicit Conversion from 16 to 10 Characters, CAST PRESERVING TYPE not allowed
@ObjectModel.sort.enabled: false
@ObjectModel: { readOnly:'EXTERNAL_CALCULATION' }
cast (PurchaseOrderItemTP.BR_IsProducedInHouse as logbr_ownpro preserving type) as BR_IsProducedInHouse,
//India GST Control code field
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@Consumption.valueHelpDefinition: [{ entity: { name : 'C_IN_GSTControlCodeValueHelp', element : 'ConsumptionTaxCtrlCode' } }]
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.IN_GSTControlCode as IN_GSTControlCode,
----------------------------------------------------------------------------------------
-- FieldGroup: Confirmation --
----------------------------------------------------------------------------------------
@UI.fieldGroup: [ { position: 220, qualifier: 'SupplierConfirmations' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
PurgDocOrderAcknNumber,
@UI.fieldGroup: [ { position: 230, qualifier: 'SupplierConfirmations' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
cast(IsOrderAcknRqd as kzabs_ll preserving type ) as IsOrderAcknRqd,
@UI.fieldGroup: [ { position: 240, qualifier: 'SupplierConfirmations' } ]
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
@ObjectModel.sort.enabled: false
ItemIsRejectedBySupplier,
// Foot Print Intigration
// PFMTransDataFootprintUUID,
// @ObjectModel.readOnly: true
// @Semantics.quantity.unitOfMeasure: 'PFMFootprintUnit'
// @UI: {
// dataPoint: {targetValueElement: 'PFMFootprintQuantity' , valueFormat.numberOfFractionalDigits: 3}
// }
// @EndUserText.label: 'CO2e Footprint'
// _PurOrdItemCO2eqFootprint.PFMFootprintQuantity,
//
// @ObjectModel.readOnly: true
// @Semantics.unitOfMeasure: true
// _PurOrdItemCO2eqFootprint.PFMFootprintUnit,
----------------------------------------------------------------------------------------
-- Header-Fields needed for Associations --
----------------------------------------------------------------------------------------
@ObjectModel: { readOnly: true }
@UI.lineItem: [ { exclude: true } ]
@UI.hidden: true
@ObjectModel.text.association: null
_PurchaseOrderTP.PurchasingOrganization,
@ObjectModel: { readOnly: true, foreignKey.association: '_TaxCalculationProcedure' }
@UI.hidden: true
@ObjectModel.sort.enabled: false
_Plant._Address._Country.TaxCalculationProcedure as TaxCalculationProcedure,
@ObjectModel: { readOnly: true }
//@UI.hidden: true
@UI.identification: [{ position: 1 }]
_PurOrdDeliveryAddressTP.Country as Country,
@ObjectModel: { readOnly: true }
@UI.hidden: true
_PurOrdDeliveryAddressTP.CountryName as CountryName,
----------------------------------------------------------------------------------------
-- Product Compliance --
----------------------------------------------------------------------------------------
// @UI.hidden: true
// PurgProdCmplncSupplierStatus,
// @ObjectModel: { readOnly: true }
// @UI.fieldGroup: [ { groupLabel: 'Product Compliance', position: 10, qualifier: 'ProductCompliance'
// ,criticality: 'UICT_PurgProdCmplncSupplierSts', criticalityRepresentation: #WITHOUT_ICON
// } ]
// _PurgProdCmplncSupplierStsT.PurgProdCmplncSupplierStsName,
@UI.hidden: true
@ObjectModel.sort.enabled: false
PurgProductMarketabilityStatus,
----------------------------------------------------------------------------------------
-- Unused fields --
----------------------------------------------------------------------------------------
@Consumption.hidden: true
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.SupplierMaterialNumber,
@Consumption.hidden: true
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.ManufacturerPartNmbr,
@UI.hidden: true
PurchaseOrderItemTP.CompanyCode,
@Consumption.hidden: true
PurchaseOrderItemTP.OrderItemQtyToBaseQtyNmrtr,
@Consumption.hidden: true
PurchaseOrderItemTP.OrderItemQtyToBaseQtyDnmntr,
@Consumption.hidden: true
PurchaseOrderItemTP.ItemVolumeUnit,
@Consumption.hidden: true
PurchaseOrderItemTP.ItemWeightUnit,
@Consumption.hidden: true
PurchaseOrderItemTP.MultipleAcctAssgmtDistribution,
@Consumption.hidden: true
PurchaseOrderItemTP.PartialInvoiceDistribution,
@Consumption.hidden: true
PurchaseOrderItemTP.PricingDateControl,
@Consumption.hidden: true
PurchaseOrderItemTP.IsReturnsItem,
@Consumption.hidden: true
PurchaseOrderItemTP.InternationalArticleNumber,
@Consumption.hidden: true
PurchaseOrderItemTP.PriceIsToBePrinted,
@UI.hidden: true
PurchaseOrderItemTP.EffectiveAmount,
@Consumption.hidden: true
PurchaseOrderItemTP.OrderPriceUnitToOrderUnitNmrtr,
@Consumption.hidden: true
PurchaseOrderItemTP.OrdPriceUnitToOrderUnitDnmntr,
@Consumption.hidden: true
PurchaseOrderItemTP.BaseUnit,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
PurchaseOrderItemTP.RequisitionerName,
@Consumption.hidden: true
PurchaseOrderItemTP.PlannedDeliveryDurationInDays,
@Consumption.hidden: true
PurchaseOrderItemTP.ConsumptionPosting,
----------------------------------------------------------------------------------------
-- Transient fields --
----------------------------------------------------------------------------------------
@ObjectModel.sort.enabled: false
@ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
PurchaseOrderItemTP.POItmAcctAssgmtFieldsAreEnbld,
@ObjectModel: {
readOnly: true
}
@UI.hidden: true
@ObjectModel.sort.enabled: false
PurchaseOrderItemTP.HighestMessageSeverityLevel,
----------------------------------------------------------------------------------------
-- Fields from delivery address needed for association to ValueHelp for TaxJurisdictionCode --
----------------------------------------------------------------------------------------
@ObjectModel: {
readOnly: true
}
@UI.hidden: true
@ObjectModel.sort.enabled: false
_PurOrdDeliveryAddressTP.Region as Region,
@ObjectModel: {
readOnly: true
}
@UI.hidden: true
@ObjectModel.sort.enabled: false
_PurOrdDeliveryAddressTP.RegionName as RegionName,
@ObjectModel: {
readOnly: true
}
@UI.hidden: true
@ObjectModel.sort.enabled: false
_PurOrdDeliveryAddressTP.PostalCode as PostalCode,
@ObjectModel: {
readOnly: true
}
@UI.hidden: true
@ObjectModel.sort.enabled: false
_PurOrdDeliveryAddressTP.CityName as CityName,
@ObjectModel: {
readOnly: true
}
@UI.hidden: true
@ObjectModel.sort.enabled: false
_PurchaseOrderTP.Supplier,
----------------------------------------------------------------------------------------
-- Associations --
----------------------------------------------------------------------------------------
@ObjectModel.association.type: [ #TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT ]
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_PurchaseOrderTP,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_PurOrdDeliveryAddressTP,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_PurOrdScheduleLineTP,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_MaterialGroupValueHelp,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_TaxJurisdiction,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
PurchaseOrderItemTP._OrderPriceUnit,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_MaterialValueHelp,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_PurchaseOrderItemSetTP,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_PlantValueHelp,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
PurchaseOrderItemTP._OrderQuantityUnit,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
PurchaseOrderItemTP._IncotermsVersion,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_TaxCode,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_PurOrdPricingElementTP,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_PurOrdActACatValHelp,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_TaxCalculationProcedure,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_AccountAssignmentCategory,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_PurOrdItemCO2eqFootprint,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
_MM_ServicePerformerValueHelp
}