C_PurchaseOrderItemTP

DDL: C_PURCHASEORDERITEMTP Type: view CONSUMPTION

Purchase Order Item

C_PurchaseOrderItemTP is a Consumption CDS View that provides data about "Purchase Order Item" in SAP S/4HANA. It reads from 1 data source (I_PurchaseOrderItemTP) and exposes 193 fields with key fields PurchaseOrder, PurchaseOrderItem. It has 26 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_PurchaseOrderItemTP PurchaseOrderItemTP from

Associations (26)

CardinalityTargetAliasCondition
[1..1] C_PurchaseOrderTP _PurchaseOrderTP _PurchaseOrderTP.PurchaseOrder = $projection.PurchaseOrder -- :*
[1..*] C_PurOrdScheduleLineTP _PurOrdScheduleLineTP _PurOrdScheduleLineTP.PurchaseOrder = $projection.PurchaseOrder and _PurOrdScheduleLineTP.PurchaseOrderItem = $projection.PurchaseOrderItem -- :*
[1..*] C_PurOrdAcctAssignmentTP _PurOrdAcctAssignmentTP _PurOrdAcctAssignmentTP.PurchaseOrder = $projection.PurchaseOrder and _PurOrdAcctAssignmentTP.PurchaseOrderItem = $projection.PurchaseOrderItem -- :*
[1..*] C_PurOrdPricingElementTP _PurOrdPricingElementTP _PurOrdPricingElementTP.PurchaseOrder = $projection.PurchaseOrder and _PurOrdPricingElementTP.PurchaseOrderItem = $projection.PurchaseOrderItem -- :*
[1..1] C_PurOrdDeliveryAddressTP _PurOrdDeliveryAddressTP _PurOrdDeliveryAddressTP.PurchaseOrder = $projection.PurchaseOrder and _PurOrdDeliveryAddressTP.PurchaseOrderItem = $projection.PurchaseOrderItem
[0..*] C_PurchaseOrderItemNoteTP _PurchaseOrderItemNoteTP _PurchaseOrderItemNoteTP.PurchaseOrder = $projection.PurchaseOrder and _PurchaseOrderItemNoteTP.PurchaseOrderItem = $projection.PurchaseOrderItem -- :*
[0..*] C_PurOrdSupplierConfirmation _PurOrdSupplierConfirmation _PurOrdSupplierConfirmation.PurchaseOrder = $projection.PurchaseOrder and _PurOrdSupplierConfirmation.PurchaseOrderItem = $projection.PurchaseOrderItem
[0..1] I_TaxCalculationProcedure _TaxCalculationProcedure _TaxCalculationProcedure.TaxCalculationProcedure = $projection.TaxCalculationProcedure -- :*
[0..1] I_CnsmpnTaxControlCodeCoCode _CnsmptnTaxCntrlCode _CnsmptnTaxCntrlCode.CountryCode = 'IN' and _CnsmptnTaxCntrlCode.ConsumptionTaxCtrlCode = $projection.IN_GSTControlCode
[0..1] I_SupplierConfControlKey _SupplierConfControlKey _SupplierConfControlKey.SupplierConfirmationControlKey = $projection.SupplierConfirmationControlKey
[0..*] C_AlternateSupplierPOSituation _POItemAlternateSuplrSit _POItemAlternateSuplrSit.Plant = $projection.Plant and _POItemAlternateSuplrSit.Material = $projection.Material and _POItemAlternateSuplrSit.Supplier != $projection.supplier and _POItemAlternateSuplrSit.PurchasingOrganization = $projection.purchasingorganization and _POItemAlternateSuplrSit.PurchaseOrderItemCategory = $projection.PurchaseOrderItemCategory ------------------------------------------------------------------------------------------- -- Value-Help Associations -- -------------------------------------------------------------------------------------------
[0..*] C_PurOrdTaxJurisdictionValHelp _PurOrdTaxJurisdictionValHelp _PurOrdTaxJurisdictionValHelp.TaxJurisdiction = $projection.TaxJurisdiction and _PurOrdTaxJurisdictionValHelp.CompanyCode = $projection.CompanyCode and _PurOrdTaxJurisdictionValHelp.Country = $projection.Country and _PurOrdTaxJurisdictionValHelp.Region = $projection.Region and _PurOrdTaxJurisdictionValHelp.CityName = $projection.CityName and _PurOrdTaxJurisdictionValHelp.PostalCode = $projection.PostalCode
[0..1] C_MM_TaxCodeValueHelp _TaxCode _TaxCode.TaxCode = $projection.TaxCode and _TaxCode.TaxCalculationProcedure = $projection.TaxCalculationProcedure
[0..1] C_MM_TaxJurisdictionVH _TaxJurisdiction _TaxJurisdiction.TaxJurisdiction = $projection.TaxJurisdiction
[0..1] C_MM_ServicePerformerValueHelp _MM_ServicePerformerValueHelp _MM_ServicePerformerValueHelp.ServicePerformer = $projection.ServicePerformer and _MM_ServicePerformerValueHelp.Supplier = $projection.supplier
[0..1] C_MM_MaterialValueHelp _MaterialValueHelp _MaterialValueHelp.Material = $projection.ManufacturerMaterial and _MaterialValueHelp.MaterialGroup = $projection.MaterialGroup and _MaterialValueHelp.Plant = $projection.Plant
[0..1] C_MM_MaterialGroupValueHelp _MaterialGroupValueHelp _MaterialGroupValueHelp.MaterialGroup = $projection.MaterialGroup
[0..1] C_MM_PlantValueHelp _PlantValueHelp _PlantValueHelp.Plant = $projection.Plant and _PlantValueHelp.PurchasingOrganization = $projection.purchasingorganization
[0..1] C_PurOrdActACatValHelp _PurOrdActACatValHelp _PurOrdActACatValHelp.AccountAssignmentCategory = $projection.AccountAssignmentCategory
[0..1] I_PurgProdCmplncSupplierStsT _PurgProdCmplncSupplierStsT $projection.PurgProdCmplncSupplierStatus = _PurgProdCmplncSupplierStsT.PurgProdCmplncSupplierStatus and _PurgProdCmplncSupplierStsT.Language = $session.system_language
[0..1] I_PurgProductMarketabilityStsT _PurgProductMarketabilityStsT $projection.PurgProductMarketabilityStatus = _PurgProductMarketabilityStsT.PurgProductMarketabilityStatus and _PurgProductMarketabilityStsT.Language = $session.system_language
[0..1] I_PurgSafetyDataSheetStatusT _PurgSafetyDataSheetStatusT $projection.PurgSafetyDataSheetStatus = _PurgSafetyDataSheetStatusT.PurgSafetyDataSheetStatus and _PurgSafetyDataSheetStatusT.Language = $session.system_language
[0..1] I_PurgProdCmplncDngrsGoodsStsT _PurgProdCmplncDngrsGoodsStsT $projection.PurgProdCmplncDngrsGoodsStatus = _PurgProdCmplncDngrsGoodsStsT.PurgProdCmplncDngrsGoodsStatus and _PurgProdCmplncDngrsGoodsStsT.Language = $session.system_language
[0..1] C_POItemProdCmplncCriticality _POItemProdCmplncCriticality $projection.PurchaseOrder = _POItemProdCmplncCriticality.PurchaseOrder and $projection.PurchaseOrderItem = _POItemProdCmplncCriticality.PurchaseOrderItem
[0..*] I_BatchVH _BatchVH $projection.Material = _BatchVH.Material and $projection.Plant = _BatchVH.Plant
[1..1] C_PurchaseOrderItemSet _PurchaseOrderItemSet _PurchaseOrderItemSet.PurchaseOrder = $projection.PurchaseOrder and _PurchaseOrderItemSet.PurchaseOrderItem = $projection.PurchaseOrderItem

Annotations (20)

NameValueLevelField
VDM.viewType #CONSUMPTION view
AbapCatalog.sqlViewName CPURORDITMTP view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Purchase Order Item view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
ObjectModel.transactionalProcessingDelegated true view
ObjectModel.representativeKey PurchaseOrderItem view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.deleteEnabled false view
UI.lineItem.criticality HighestMessageSeverityLevel view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
Search.searchable true view
UI.headerInfo.typeName Purchase Order Item view
UI.headerInfo.typeNamePlural Purchase Order Items view
UI.headerInfo.title.value PurchaseOrderItem view
UI.headerInfo.description.value PurOrdItemCategoryName view

Fields (193)

KeyFieldSource TableSource FieldDescription
KEY PurchaseOrder I_PurchaseOrderItemTP PurchaseOrder
KEY PurchaseOrderItem I_PurchaseOrderItemTP PurchaseOrderItem
PurgConfigurableItemNumber I_PurchaseOrderItemTP PurgConfigurableItemNumber
PurchaseOrderItemUniqueID PurchaseOrderItemUniqueID
PurchaseOrderItemCategory I_PurchaseOrderItemTP PurchaseOrderItemCategory
PurgDocAggrgdSubitemCategory I_PurchaseOrderItemTP PurgDocAggrgdSubitemCategory
PurchasingParentItem I_PurchaseOrderItemTP PurchasingParentItem
PurgDocSubitemCategory I_PurchaseOrderItemTP PurgDocSubitemCategory
IsStatisticalItem I_PurchaseOrderItemTP IsStatisticalItem
PurgExternalSortNumber I_PurchaseOrderItemTP PurgExternalSortNumber
PurchasingIsItemSet I_PurchaseOrderItemTP PurchasingIsItemSet Item Set
PurOrdExtHierItemCategory I_PurchaseOrderItemTP PurOrdExternalItemCategory
PurOrdExternalItemCategory I_PurchaseOrderItemTP PurOrdExternalItemCategory
PurOrdItemCategoryName I_PurchaseOrderItemTP PurOrdItemCategoryName
Material I_PurchaseOrderItemTP Material
ManufacturerMaterial I_PurchaseOrderItemTP ManufacturerMaterial
ExpectedOverallLimitAmount I_PurchaseOrderItemTP ExpectedOverallLimitAmount
OverallLimitAmount I_PurchaseOrderItemTP OverallLimitAmount
PurchaseOrderItemText I_PurchaseOrderItemTP PurchaseOrderItemText
MaterialGroup I_PurchaseOrderItemTP MaterialGroup
Plant I_PurchaseOrderItemTP Plant
OrderQuantity I_PurchaseOrderItemTP OrderQuantity
NetPriceAmount I_PurchaseOrderItemTP NetPriceAmount
NetPriceQuantity I_PurchaseOrderItemTP NetPriceQuantity
NetAmount I_PurchaseOrderItemTP NetAmount
ServicePerformer I_PurchaseOrderItemTP ServicePerformer
ProductType I_PurchaseOrderItemTP ProductType
ProductTypeName I_PurchaseOrderItemTP ProductTypeName
BPCustMultiAddrIsActive
BPCustMultiAddrIsNotActive
Customer I_PurchaseOrderItemTP Customer
ReferenceDeliveryAddressID I_PurchaseOrderItemTP ReferenceDeliveryAddressID
ManualDeliveryAddressID I_PurchaseOrderItemTP ManualDeliveryAddressID
PurchasingDocumentDeletionCode I_PurchaseOrderItemTP PurchasingDocumentDeletionCode
PurchaseOrderItemStatus_H I_PurchaseOrderItemTP PurchaseOrderItemStatus
PurchaseOrderItemStatus Status
PurchaseOrderItemStatusName
DocumentCurrency I_PurchaseOrderItemTP DocumentCurrency
OrderPriceUnit I_PurchaseOrderItemTP OrderPriceUnit
PurchaseOrderQuantityUnit
PurchasingHierarchyNode I_PurchaseOrderItemTP PurchasingHierarchyNode
HierarchyParentNode I_PurchaseOrderItemTP HierarchyParentNode
HierarchyLevel I_PurchaseOrderItemTP HierarchyLevel
HierarchyNodeSubTreeSize I_PurchaseOrderItemTP HierarchyNodeSubTreeSize
HierarchyDrillState I_PurchaseOrderItemTP HierarchyDrillState
HierarchyNodeOrdinalNumber I_PurchaseOrderItemTP HierarchyNodeOrdinalNumber
GoodsReceiptIsNonValuated
EvaldRcptSettlmtIsAllowed I_PurchaseOrderItemTP EvaldRcptSettlmtIsAllowed Evaluated Receipt Settlement
InvoiceIsExpected
InvoiceIsGoodsReceiptBased
IsCompletelyDelivered I_PurchaseOrderItemTP IsCompletelyDelivered
IsFinallyInvoiced I_PurchaseOrderItemTP IsFinallyInvoiced
PriceChangeInSESIsAllowed I_PurchaseOrderItemTP PriceChangeInSESIsAllowed
UnderdelivTolrtdLmtRatioInPct
UnlimitedOverdeliveryIsAllowed Unlimited Overdelivery Allowed
IsToBeAcceptedAtOrigin I_PurchaseOrderItemTP IsToBeAcceptedAtOrigin Acceptance at Origin
StorageLocation I_PurchaseOrderItemTP StorageLocation
IntrastatServiceCode
CommodityCode I_PurchaseOrderItemTP CommodityCode
ShippingInstruction ShippingInstruction
IncotermsVersion
IncotermsClassification I_PurchaseOrderItemTP IncotermsClassification
IncotermsLocation1Identifier I_PurchaseOrderItemTP IncotermsLocation1Identifier
IncotermsSupChnLoc1AddlUUID I_PurchaseOrderItemTP IncotermsSupChnLoc1AddlUUID
IncotermsLocation1 I_PurchaseOrderItemTP IncotermsLocation1
IncotermsDvtgLocIdentifier I_PurchaseOrderItemTP IncotermsDvtgLocIdentifier
IncotermsSupChnDvtgLocAddlUUID I_PurchaseOrderItemTP IncotermsSupChnDvtgLocAddlUUID
IncotermsDvtgLocDescription I_PurchaseOrderItemTP IncotermsDvtgLocDescription
IncotermsLocation2Identifier I_PurchaseOrderItemTP IncotermsLocation2Identifier
IncotermsSupChnLoc2AddlUUID I_PurchaseOrderItemTP IncotermsSupChnLoc2AddlUUID
IncotermsLocation2 I_PurchaseOrderItemTP IncotermsLocation2
PurchaseContract
PurContractForOverallLimit I_PurchaseOrderItemTP PurContractForOverallLimit
PurContractItemForOverallLimit I_PurchaseOrderItemTP PurContractItemForOverallLimit Contract Item for Limit
PurchaseContractItem
InfoRecordIsToBeUpdated I_PurchaseOrderItemTP InfoRecordIsToBeUpdated
CostCenter
GLAccount I_PurchaseOrderItemTP GLAccount
WBSElementExternalID I_PurchaseOrderItemTP WBSElementExternalID
WBSDescription I_PurchaseOrderItemTP WBSDescription
Fund I_PurchaseOrderItemTP Fund
BudgetPeriod I_PurchaseOrderItemTP BudgetPeriod
FundsCenter I_PurchaseOrderItemTP FundsCenter
CommitmentItem I_PurchaseOrderItemTP CommitmentItem
EarmarkedFunds I_PurchaseOrderItemTP EarmarkedFunds
EarmarkedFundsDocument
EarmarkedFundsItem I_PurchaseOrderItemTP EarmarkedFundsItem
EarmarkedFundsDocumentItem
FunctionalArea I_PurchaseOrderItemTP FunctionalArea
GrantID I_PurchaseOrderItemTP GrantID
FundedProgram
FieldGroupTaxTaxCode
TaxJurisdiction TaxJurisdiction
TaxCountry TaxCountry
TaxDeterminationDate TaxDeterminationDate
BR_MaterialOrigin
BR_MaterialUsage
BR_CFOPCategory
BR_NCM I_PurchaseOrderItemTP BR_NCM
BR_IsProducedInHouse
IN_GSTControlCode I_PurchaseOrderItemTP IN_GSTControlCode
SupplierConfirmationControlKey
SupplierConfControlKeyName
PurgDocOrderAcknNumber PurgDocOrderAcknNumber
IsOrderAcknRqd
ItemIsRejectedBySupplier ItemIsRejectedBySupplier
PurchasingOrganization
Supplier _PurchaseOrderTP Supplier
TaxCalculationProcedure
Country _PurOrdDeliveryAddressTP Country
CountryName _PurOrdDeliveryAddressTP CountryName
PurgProdCmplncSupplierStsName _PurgProdCmplncSupplierStsT PurgProdCmplncSupplierStsName
PurgProductMarketabilityStatus PurgProductMarketabilityStatus
UICT_PurgProdCmplncSupplierSts _POItemProdCmplncCriticality UICT_PurgProdCmplncSupplierSts
PurgProdMarketabilityStsName _PurgProductMarketabilityStsT PurgProdMarketabilityStsName
PurgSafetyDataSheetStatus PurgSafetyDataSheetStatus
UICT_PurgProdMarketabilitySts _POItemProdCmplncCriticality UICT_PurgProdMarketabilitySts
PurgSafetyDataSheetStatusName _PurgSafetyDataSheetStatusT PurgSafetyDataSheetStatusName
UICT_PurgSafetyDataSheetStatus _POItemProdCmplncCriticality UICT_PurgSafetyDataSheetStatus
PurgProdCmplncDngrsGdsStsName _PurgProdCmplncDngrsGoodsStsT PurgProdCmplncDngrsGdsStsName
PurgProdCmplncDngrsGoodsStatus PurgProdCmplncDngrsGoodsStatus
UICT_PurgCmplncDngrsGoodsSts _POItemProdCmplncCriticality UICT_PurgCmplncDngrsGoodsSts
ProductComplianceIsActive
BusFtreProdCmplncSuplrIsActive
BusFtreProdMarketabilityIsActv
BusFtreDngrsGoodsIsActive
BusFtreSftyDataShtMgmtIsActive
Batch I_PurchaseOrderItemTP Batch
BatchBySupplier I_PurchaseOrderItemTP BatchBySupplier
SupplierMaterialNumber
ManufacturerPartNmbr I_PurchaseOrderItemTP ManufacturerPartNmbr
CompanyCode I_PurchaseOrderItemTP CompanyCode
OrderItemQtyToBaseQtyNmrtr I_PurchaseOrderItemTP OrderItemQtyToBaseQtyNmrtr
OrderItemQtyToBaseQtyDnmntr I_PurchaseOrderItemTP OrderItemQtyToBaseQtyDnmntr
ItemVolumeUnit I_PurchaseOrderItemTP ItemVolumeUnit
ItemWeightUnit I_PurchaseOrderItemTP ItemWeightUnit
MultipleAcctAssgmtDistribution I_PurchaseOrderItemTP MultipleAcctAssgmtDistribution
PartialInvoiceDistribution I_PurchaseOrderItemTP PartialInvoiceDistribution
PricingDateControl I_PurchaseOrderItemTP PricingDateControl
IsReturnsItem I_PurchaseOrderItemTP IsReturnsItem
InternationalArticleNumber I_PurchaseOrderItemTP InternationalArticleNumber
PriceIsToBePrinted I_PurchaseOrderItemTP PriceIsToBePrinted
EffectiveAmount I_PurchaseOrderItemTP EffectiveAmount
OrderPriceUnitToOrderUnitNmrtr I_PurchaseOrderItemTP OrderPriceUnitToOrderUnitNmrtr
OrdPriceUnitToOrderUnitDnmntr I_PurchaseOrderItemTP OrdPriceUnitToOrderUnitDnmntr
BaseUnit I_PurchaseOrderItemTP BaseUnit
RequisitionerName I_PurchaseOrderItemTP RequisitionerName
PlannedDeliveryDurationInDays I_PurchaseOrderItemTP PlannedDeliveryDurationInDays
ConsumptionPosting I_PurchaseOrderItemTP ConsumptionPosting
IsInfoRecordUpdated I_PurchaseOrderItemTP IsInfoRecordUpdated
PurchaseRequisition I_PurchaseOrderItemTP PurchaseRequisition
PurchaseRequisitionItem I_PurchaseOrderItemTP PurchaseRequisitionItem
POItmAcctAssgmtFieldsAreEnbld I_PurchaseOrderItemTP POItmAcctAssgmtFieldsAreEnbld
ScheduleLineIsAddable
HighestMessageSeverityLevel I_PurchaseOrderItemTP HighestMessageSeverityLevel
PurOrdAcctAssgmtFacetIsVisible
RegionasRegion
RegionName _PurOrdDeliveryAddressTP RegionName
PostalCode _PurOrdDeliveryAddressTP PostalCode
CityName _PurOrdDeliveryAddressTP CityName
Associations_PurchaseOrderTP
_PurOrdScheduleLineTP _PurOrdScheduleLineTP
_PurOrdAcctAssignmentTP _PurOrdAcctAssignmentTP
_PurOrdPricingElementTP _PurOrdPricingElementTP
_PurOrdDeliveryAddressTP _PurOrdDeliveryAddressTP
_PurchaseOrderItemNoteTP _PurchaseOrderItemNoteTP
_PurOrdSupplierConfirmation _PurOrdSupplierConfirmation
_IncotermsVersion I_PurchaseOrderItemTP _IncotermsVersion
_PurchasingInfoRecord I_PurchaseOrderItemTP _PurchasingInfoRecord
_PurchaseContractItem I_PurchaseOrderItemTP _PurchaseContractItem
_IncotermsClassification I_PurchaseOrderItemTP _IncotermsClassification
_OrderPriceUnit I_PurchaseOrderItemTP _OrderPriceUnit
_OrderQuantityUnit I_PurchaseOrderItemTP _OrderQuantityUnit
_ProductType I_PurchaseOrderItemTP _ProductType
_BR_MaterialOrigin I_PurchaseOrderItemTP _BR_MaterialOrigin
_BR_MaterialUsage I_PurchaseOrderItemTP _BR_MaterialUsage
_BR_CFOPCategory I_PurchaseOrderItemTP _BR_CFOPCategory
_BR_NCM I_PurchaseOrderItemTP _BR_NCM
_POItemProdCmplncCriticality _POItemProdCmplncCriticality
_TaxCode _TaxCode
_TaxJurisdiction _TaxJurisdiction
_TaxCalculationProcedure _TaxCalculationProcedure
_CnsmptnTaxCntrlCode _CnsmptnTaxCntrlCode
_SupplierConfControlKey _SupplierConfControlKey
_POItemAlternateSuplrSit _POItemAlternateSuplrSit
_MaterialValueHelp _MaterialValueHelp
_MaterialGroupValueHelp _MaterialGroupValueHelp
_PlantValueHelp _PlantValueHelp
_PurOrdActACatValHelp _PurOrdActACatValHelp
_PurOrdTaxJurisdictionValHelp _PurOrdTaxJurisdictionValHelp
_BatchVH _BatchVH
_PurchaseOrderItemSet _PurchaseOrderItemSet
_MM_ServicePerformerValueHelp _MM_ServicePerformerValueHelp
@VDM.viewType: #CONSUMPTION
@AbapCatalog: { sqlViewName: 'CPURORDITMTP' }
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Purchase Order Item'
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED

@ObjectModel: {
    transactionalProcessingDelegated: true,
    semanticKey: ['PurchaseOrder', 'PurchaseOrderItem'],
    representativeKey: 'PurchaseOrderItem',
    createEnabled: true,
    updateEnabled: true,
    deleteEnabled: false
}

@UI: {
  lineItem.criticality: 'HighestMessageSeverityLevel'
}

@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL

@Search.searchable: true

@UI.headerInfo:{
  typeName:       'Purchase Order Item',
  typeNamePlural: 'Purchase Order Items',
//  imageUrl:       'PurchaseOrderURL',

  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'
} ]

@UI.presentationVariant.requestAtLeast: ['PurchaseOrder', 'PurchaseOrderItem', 'PurgConfigurableItemNumber','ManufacturerMaterial', 'Plant', 'Supplier', 'OrderQuantity', 'OrderPriceUnit']

define view C_PurchaseOrderItemTP
  as select from I_PurchaseOrderItemTP as PurchaseOrderItemTP
  -------------------------------------------------------------------------------------------
  -- COMPOSITION NODE: Purchase Order Item                                                 --
  -------------------------------------------------------------------------------------------

  -- :* association to parent node
  association [1..1] to C_PurchaseOrderTP              as _PurchaseOrderTP              on  _PurchaseOrderTP.PurchaseOrder = $projection.PurchaseOrder

  -- :* association to the Schedule Line child node
  association [1..*] to C_PurOrdScheduleLineTP         as _PurOrdScheduleLineTP         on  _PurOrdScheduleLineTP.PurchaseOrder     = $projection.PurchaseOrder
                                                                                        and _PurOrdScheduleLineTP.PurchaseOrderItem = $projection.PurchaseOrderItem

  -- :* association to the Account Assignment child node
  association [1..*] to C_PurOrdAcctAssignmentTP       as _PurOrdAcctAssignmentTP       on  _PurOrdAcctAssignmentTP.PurchaseOrder     = $projection.PurchaseOrder
                                                                                        and _PurOrdAcctAssignmentTP.PurchaseOrderItem = $projection.PurchaseOrderItem

  -- :* 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 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 [0..*] to C_PurchaseOrderItemNoteTP      as _PurchaseOrderItemNoteTP      on  _PurchaseOrderItemNoteTP.PurchaseOrder     = $projection.PurchaseOrder
                                                                                        and _PurchaseOrderItemNoteTP.PurchaseOrderItem = $projection.PurchaseOrderItem

  -- :* association to the Confirmation child node
  association [0..*] to C_PurOrdSupplierConfirmation   as _PurOrdSupplierConfirmation   on  _PurOrdSupplierConfirmation.PurchaseOrder     = $projection.PurchaseOrder
                                                                                        and _PurOrdSupplierConfirmation.PurchaseOrderItem = $projection.PurchaseOrderItem

  association [0..1] to I_TaxCalculationProcedure      as _TaxCalculationProcedure      on  _TaxCalculationProcedure.TaxCalculationProcedure = $projection.TaxCalculationProcedure


  -- :* association to Control Code field GST India

  association [0..1] to I_CnsmpnTaxControlCodeCoCode   as _CnsmptnTaxCntrlCode          on  _CnsmptnTaxCntrlCode.CountryCode            = 'IN'
                                                                                        and _CnsmptnTaxCntrlCode.ConsumptionTaxCtrlCode = $projection.IN_GSTControlCode



  association [0..1] to I_SupplierConfControlKey       as _SupplierConfControlKey       on  _SupplierConfControlKey.SupplierConfirmationControlKey = $projection.SupplierConfirmationControlKey

  // Asscoiation added for Alternate Supplier Facet in Quanity Deficit in Supplier Confirmation Situation

  association [0..*] to C_AlternateSupplierPOSituation as _POItemAlternateSuplrSit      on  _POItemAlternateSuplrSit.Plant                     = $projection.Plant
                                                                                        and _POItemAlternateSuplrSit.Material                  = $projection.Material
                                                                                        and _POItemAlternateSuplrSit.Supplier != $projection.supplier
                                                                                        and _POItemAlternateSuplrSit.PurchasingOrganization    = $projection.purchasingorganization
                                                                                        and _POItemAlternateSuplrSit.PurchaseOrderItemCategory = $projection.PurchaseOrderItemCategory

  -------------------------------------------------------------------------------------------
  -- Value-Help Associations                                                               --
  -------------------------------------------------------------------------------------------
  association [0..*] to C_PurOrdTaxJurisdictionValHelp as _PurOrdTaxJurisdictionValHelp on  _PurOrdTaxJurisdictionValHelp.TaxJurisdiction = $projection.TaxJurisdiction
                                                                                        and _PurOrdTaxJurisdictionValHelp.CompanyCode     = $projection.CompanyCode
                                                                                        and _PurOrdTaxJurisdictionValHelp.Country         = $projection.Country
                                                                                        and _PurOrdTaxJurisdictionValHelp.Region          = $projection.Region
                                                                                        and _PurOrdTaxJurisdictionValHelp.CityName        = $projection.CityName
                                                                                        and _PurOrdTaxJurisdictionValHelp.PostalCode      = $projection.PostalCode

  association [0..1] to C_MM_TaxCodeValueHelp          as _TaxCode                      on  _TaxCode.TaxCode                 = $projection.TaxCode
                                                                                        and _TaxCode.TaxCalculationProcedure = $projection.TaxCalculationProcedure

  association [0..1] to C_MM_TaxJurisdictionVH         as _TaxJurisdiction              on  _TaxJurisdiction.TaxJurisdiction = $projection.TaxJurisdiction
  //and _TaxJurisdiction.TaxJurisdictionCalcProcedure = ''

  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
                                                                                        and _MaterialValueHelp.Plant         = $projection.Plant

  association [0..1] to C_MM_MaterialGroupValueHelp    as _MaterialGroupValueHelp       on  _MaterialGroupValueHelp.MaterialGroup = $projection.MaterialGroup

  association [0..1] to C_MM_PlantValueHelp            as _PlantValueHelp               on  _PlantValueHelp.Plant                  = $projection.Plant
                                                                                        and _PlantValueHelp.PurchasingOrganization = $projection.purchasingorganization

  association [0..1] to C_PurOrdActACatValHelp         as _PurOrdActACatValHelp         on  _PurOrdActACatValHelp.AccountAssignmentCategory = $projection.AccountAssignmentCategory


  association [0..1] to I_PurgProdCmplncSupplierStsT   as _PurgProdCmplncSupplierStsT   on  $projection.PurgProdCmplncSupplierStatus = _PurgProdCmplncSupplierStsT.PurgProdCmplncSupplierStatus
                                                                                        and _PurgProdCmplncSupplierStsT.Language     = $session.system_language

  association [0..1] to I_PurgProductMarketabilityStsT as _PurgProductMarketabilityStsT on  $projection.PurgProductMarketabilityStatus = _PurgProductMarketabilityStsT.PurgProductMarketabilityStatus
                                                                                        and _PurgProductMarketabilityStsT.Language     = $session.system_language

  association [0..1] to I_PurgSafetyDataSheetStatusT   as _PurgSafetyDataSheetStatusT   on  $projection.PurgSafetyDataSheetStatus = _PurgSafetyDataSheetStatusT.PurgSafetyDataSheetStatus
                                                                                        and _PurgSafetyDataSheetStatusT.Language  = $session.system_language

  association [0..1] to I_PurgProdCmplncDngrsGoodsStsT as _PurgProdCmplncDngrsGoodsStsT on  $projection.PurgProdCmplncDngrsGoodsStatus = _PurgProdCmplncDngrsGoodsStsT.PurgProdCmplncDngrsGoodsStatus
                                                                                        and _PurgProdCmplncDngrsGoodsStsT.Language     = $session.system_language

  association [0..1] to C_POItemProdCmplncCriticality  as _POItemProdCmplncCriticality  on  $projection.PurchaseOrder     = _POItemProdCmplncCriticality.PurchaseOrder
                                                                                        and $projection.PurchaseOrderItem = _POItemProdCmplncCriticality.PurchaseOrderItem

  association [0..*] to I_BatchVH                      as _BatchVH                      on  $projection.Material = _BatchVH.Material
                                                                                        and $projection.Plant    = _BatchVH.Plant

  association [1..1] to C_PurchaseOrderItemSet         as _PurchaseOrderItemSet         on  _PurchaseOrderItemSet.PurchaseOrder     = $projection.PurchaseOrder
                                                                                        and _PurchaseOrderItemSet.PurchaseOrderItem = $projection.PurchaseOrderItem

//  association [1..1] to C_PurOrdItemCO2eqFootprint     as _PurOrdItemCO2eqFootprint     on  _PurOrdItemCO2eqFootprint.PurchaseOrder     = $projection.PurchaseOrder

//                                                                                        and _PurOrdItemCO2eqFootprint.PurchaseOrderItem = $projection.PurchaseOrderItem


{

      @UI.hidden: true
      @ObjectModel.foreignKey.association: '_PurchaseOrderTP'
  key PurchaseOrderItemTP.PurchaseOrder,

      @UI: {
        lineItem: [
            { position: 10, importance: #HIGH, qualifier: 'LimitItem'},
            { position: 10, importance: #HIGH, qualifier: 'Item'},
            { type: #FOR_ACTION, dataAction: 'BOPF:COPY_PO_ITEM', label: 'Copy', qualifier: 'Item' }
            ]
      }
      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
      @ObjectModel: { readOnly: true }
  key PurchaseOrderItemTP.PurchaseOrderItem,

      @UI: {
        identification: [{position: 5, qualifier: 'Item'}],
        hidden: true,
        lineItem: [ {position: 05, importance: #HIGH, qualifier: 'Item'} ]
      }
      @ObjectModel: { readOnly: true }

      @Feature: 'SW:MM_PUR_SRVCPROC_SFWS_ITM_HIER'
      PurchaseOrderItemTP.PurgConfigurableItemNumber,

      @ObjectModel: { readOnly: true }
      PurchaseOrderItemUniqueID,

      @UI.hidden: true
      PurchaseOrderItemTP.PurchaseOrderItemCategory,

      @UI.hidden: true
      @Feature: 'SW:MM_PUR_SRVCPROC_SFWS_ITM_HIER'

      PurchaseOrderItemTP.PurgDocAggrgdSubitemCategory,

      @UI.hidden: true
      @Feature: 'SW:MM_PUR_SRVCPROC_SFWS_ITM_HIER'

      PurchaseOrderItemTP.PurchasingParentItem,

      @UI.hidden: true
      @Feature: 'SW:MM_PUR_SRVCPROC_SFWS_ITM_HIER'

      PurchaseOrderItemTP.PurgDocSubitemCategory,

      @UI.hidden: true
      @Feature: 'SW:MM_PUR_SRVCPROC_SFWS_ITM_HIER'

      PurchaseOrderItemTP.IsStatisticalItem,

      @UI.hidden: true
      PurchaseOrderItemTP.PurgExternalSortNumber,

      @UI.hidden: true
      @EndUserText.label: 'Item Set'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Feature: 'SW:MM_PUR_SRVCPROC_SFWS_ITM_HIER'

      PurchaseOrderItemTP.PurchasingIsItemSet,

      @UI: {
      identification: [{position: 20, qualifier: 'HierItem'}],
      lineItem: [ {position: 20, importance: #HIGH, qualifier: 'HierItem'}],
      textArrangement: #TEXT_FIRST
      }
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.text.element: ['PurOrdItemCategoryName']
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurOrdHierItmCatValueHelp', element : 'PurOrdExtHierItemCategory' } }]
      PurchaseOrderItemTP.PurOrdExternalItemCategory                                       as PurOrdExtHierItemCategory,


      @UI: {
        identification: [{position: 20, qualifier: 'Item'}],
        lineItem: [ {position: 20, importance: #HIGH, qualifier: 'Item'}],
        textArrangement: #TEXT_FIRST
      }
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.text.element: ['PurOrdItemCategoryName']
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurOrdItmCatValHelp', element : 'PurgDocExternalItemCategory' } }]
      PurchaseOrderItemTP.PurOrdExternalItemCategory,

      @UI.hidden: true
      PurchaseOrderItemTP.PurOrdItemCategoryName,

      @UI.hidden: true
      PurchaseOrderItemTP.Material,

      @UI: {
        identification: {position: 40, qualifier: 'Item'},
        lineItem: [ {position: 40, importance: #HIGH, qualifier: 'Item'}]
      }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_MaterialValueHelp', element : 'Material' }, additionalBinding: [{ element: 'Plant', localElement: 'Plant' }] }]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION', foreignKey.association: '_MaterialValueHelp' }
      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
      PurchaseOrderItemTP.ManufacturerMaterial,

      @UI: {
        identification: {position: 30, qualifier: 'LimitItem'},
        lineItem: [ {position: 30, importance: #HIGH, qualifier: 'LimitItem'} ]
      }
      @Semantics: { amount.currencyCode: 'DocumentCurrency' }
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      PurchaseOrderItemTP.ExpectedOverallLimitAmount,

      @UI: {
        identification: {position: 40, qualifier: 'LimitItem'},
        lineItem: [ {position: 40, importance: #HIGH, qualifier: 'LimitItem'} ]
      }
      @Semantics: { amount.currencyCode: 'DocumentCurrency' }
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      PurchaseOrderItemTP.OverallLimitAmount,

      @UI: {
        identification: [{position: 50, qualifier: 'Item'},
                         {position: 20, qualifier: 'LimitItem'}],
        lineItem: [ {position: 50, importance: #HIGH, qualifier: 'Item'},
                    {position: 20, importance: #HIGH, qualifier: 'LimitItem'} ]
      }
      @Semantics: { text: true }
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
      PurchaseOrderItemTP.PurchaseOrderItemText,

      @UI: {
        identification: [{position: 60, qualifier: 'Item'},
                        {position: 80, qualifier: 'LimitItem'}],
        lineItem:[{position: 60, importance: #HIGH, qualifier: 'Item'}]
      }
      @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: 70, qualifier: 'Item'},
                         {position: 70, qualifier: 'LimitItem'}],
        lineItem: [ {position: 70, importance: #HIGH, qualifier: 'Item'},
                    {position: 90, importance: #HIGH, qualifier: 'LimitItem'} ]
      }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_PlantValueHelp', element : 'Plant' }, additionalBinding: [{ element: 'PurchasingOrganization', localElement: 'PurchasingOrganization' }]  }]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION', foreignKey.association: '_PlantValueHelp'}
      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
      PurchaseOrderItemTP.Plant,

      @UI: {
        identification: {position: 80, qualifier: 'Item'},
        lineItem: [ {position: 80, importance: #HIGH, qualifier: 'Item'} ]
      }
      @Semantics: { quantity.unitOfMeasure: 'PurchaseOrderQuantityUnit' }
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      PurchaseOrderItemTP.OrderQuantity,

      @UI: {
        identification: {position: 90, qualifier: 'Item'},
        lineItem: [ {position: 90, importance: #HIGH, qualifier: 'Item'}]
      }
      @Semantics: { amount.currencyCode: 'DocumentCurrency' }

      @ObjectModel: {
        readOnly: 'EXTERNAL_CALCULATION'
      //        virtualElement,

      //        virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'

      }
      PurchaseOrderItemTP.NetPriceAmount,

      @UI: {
        identification: {position: 100, qualifier: 'Item'},
        lineItem: [ {position: 100, importance: #HIGH, qualifier: 'Item'} ]
      }
      @Semantics: { quantity.unitOfMeasure: 'OrderPriceUnit' }
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      PurchaseOrderItemTP.NetPriceQuantity,

      @UI: {
        identification: {position: 110, qualifier: 'Item'},
        lineItem: [ {position: 110, importance: #HIGH, qualifier: 'Item'} ]
      }
      @Semantics: { amount.currencyCode: 'DocumentCurrency' }

      @ObjectModel: {
         readOnly: 'EXTERNAL_CALCULATION'
      }
      PurchaseOrderItemTP.NetAmount,

      @UI: {
        identification: {position: 120, qualifier: 'Item'}
      }
      @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,

      @UI: {
        identification: [{position: 130, qualifier: 'Item'},
                        {position: 60, qualifier: 'LimitItem'}],
        lineItem:       [{position: 80, importance: #HIGH, qualifier: 'LimitItem'}],
        textArrangement: #TEXT_FIRST
      }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_ProductTypeValueHelp', element : 'ProductType' } }]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      PurchaseOrderItemTP.ProductType,

      @ObjectModel: { readOnly: true }
      PurchaseOrderItemTP.ProductTypeName,


      @ObjectModel: { readOnly: true }
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      cast ( '' as mmpur_cust_multi_address )                                              as BPCustMultiAddrIsActive,

      @UI.hidden: true
      @ObjectModel: { readOnly: true }
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      cast ( '' as mmpur_cust_multi_address )                                              as BPCustMultiAddrIsNotActive,


      //      PurchasingDeliveryAddressType,



      @UI: {
        //identification: {position: 140, qualifier: 'Item'},

        fieldGroup: [{ position: 20, qualifier: 'DeliveryAddress4' }]
      }
      @Consumption.valueHelpDefinition:
      [{ qualifier: 'CustomerVH',
         entity: { name : 'I_Customer_VH', element : 'Customer' },
                 enabled: 'BPCustMultiAddrIsNotActive'}
        ,
        {
              qualifier: 'CustomerBPShipToAddrVH',
              entity: { name : 'C_PurgCustomerBPShipToAddrVH', element : 'Customer'}, additionalBinding: [{ element: 'AddressID', localElement: 'ReferenceDeliveryAddressID', usage: #RESULT }],
              enabled: 'BPCustMultiAddrIsActive'}
      ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
      PurchaseOrderItemTP.Customer,

      @UI: {
        //identification: {position: 150, qualifier: 'Item'},

        fieldGroup: [{ position: 30, qualifier: 'DeliveryAddress4' }]
      }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurchasingDeliveryAddressVH', element : 'AddressID' }}]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      PurchaseOrderItemTP.ReferenceDeliveryAddressID,

      @Consumption.hidden: true
      PurchaseOrderItemTP.ManualDeliveryAddressID,

      @ObjectModel.readOnly: true
      PurchaseOrderItemTP.PurchasingDocumentDeletionCode,

      @Consumption.hidden: true
      @ObjectModel.readOnly: true
      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 }
      PurchaseOrderItemTP.DocumentCurrency,

      @Semantics: { unitOfMeasure: true }
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION', foreignKey.association: '_OrderPriceUnit'}
      PurchaseOrderItemTP.OrderPriceUnit,

      @Semantics: { unitOfMeasure: true }
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION', foreignKey.association: '_OrderQuantityUnit'}
      cast (PurchaseOrderItemTP.PurchaseOrderQuantityUnit as bstme_ll preserving type)     as PurchaseOrderQuantityUnit,

      //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,

      ----------------------------------------------------------------------------------------
      -- FieldGroup: Process Flow                                                           --
      ----------------------------------------------------------------------------------------

      @UI.fieldGroup: [ { groupLabel: 'Process Flow', position: 10, qualifier: 'ProcessFlowGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      cast (PurchaseOrderItemTP.GoodsReceiptIsExpected as wepos_ll preserving type)        as GoodsReceiptIsExpected,
      @UI.fieldGroup: [ { position: 20, qualifier: 'ProcessFlowGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      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'}

      PurchaseOrderItemTP.EvaldRcptSettlmtIsAllowed,
      @UI.fieldGroup: [ { position: 40, qualifier: 'ProcessFlowGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      cast (PurchaseOrderItemTP.InvoiceIsExpected as repos_ll preserving type)             as InvoiceIsExpected,
      @UI.fieldGroup: [ { position: 50, qualifier: 'ProcessFlowGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      cast(PurchaseOrderItemTP.InvoiceIsGoodsReceiptBased as webre_ll preserving type)     as InvoiceIsGoodsReceiptBased,
      @UI.fieldGroup: [ { position: 60, qualifier: 'ProcessFlowGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      PurchaseOrderItemTP.IsCompletelyDelivered,
      @UI.fieldGroup: [ { position: 70, qualifier: 'ProcessFlowGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      PurchaseOrderItemTP.IsFinallyInvoiced,
      @Feature: 'MM_PUR_SVC_SES_EDIT_PRICING'
      @UI.fieldGroup: [ { position: 80, qualifier: 'ProcessFlowGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      PurchaseOrderItemTP.PriceChangeInSESIsAllowed,

      ----------------------------------------------------------------------------------------
      -- FieldGroup: Delivery                                                               --
      ----------------------------------------------------------------------------------------

      @UI.fieldGroup: [ { position: 30, qualifier: 'DeliveryGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      cast (PurchaseOrderItemTP.OverdelivTolrtdLmtRatioInPct as uebto_ll preserving type)  as OverdelivTolrtdLmtRatioInPct,

      @UI.fieldGroup: [ { position: 40, qualifier: 'DeliveryGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      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'
      cast (PurchaseOrderItemTP.UnlimitedOverdeliveryIsAllowed as uebtk preserving type)   as UnlimitedOverdeliveryIsAllowed,

      @UI.fieldGroup: [ { position: 60, qualifier: 'DeliveryGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      @EndUserText.label: 'Acceptance at Origin'
      PurchaseOrderItemTP.IsToBeAcceptedAtOrigin,

      @UI.fieldGroup: [ { position: 70, qualifier: 'DeliveryGroup' } ]
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_StorLocValueHelp', element : 'StorageLocation' }, additionalBinding: [{ element: 'Plant', localElement: 'Plant' }]  }]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      PurchaseOrderItemTP.StorageLocation,

      @UI.fieldGroup: [ { position: 80, qualifier: 'DeliveryGroup' } ]
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurOrdIntrastatSrvcCodeVH', element : 'IntrastatServiceCode' }, additionalBinding: [{ element: 'Country', localElement: 'Country' }]  }]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      cast (PurchaseOrderItemTP.IntrastatServiceCode as mm_isvco_ll preserving type)       as IntrastatServiceCode,

      @UI.fieldGroup: [ { position: 90, 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'

      }
      PurchaseOrderItemTP.CommodityCode,

      @UI.fieldGroup: [ { position: 90, qualifier: 'DeliveryGroup' } ]
      @Consumption.valueHelpDefinition: [{ entity: { name : 'I_ShippingInstruction', element : 'ShippingInstruction' } }]
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      ShippingInstruction,

      ----------------------------------------------------------------------------------------
      -- FieldGroup: Incoterms                                                              --
      ----------------------------------------------------------------------------------------

      @UI.fieldGroup: [ { groupLabel: 'Incoterms', position: 10, qualifier: 'IncotermsGroup' } ]
      @ObjectModel: { foreignKey.association: '_IncotermsVersion', readOnly: true }
      PurchaseOrderItemTP.IncotermsVersion,

      @UI.fieldGroup: [ { position: 20, qualifier: 'IncotermsGroup' } ]
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_MM_IncotermValueHelp', element : 'IncotermsClassification' }}]
      @ObjectModel: {readOnly: 'EXTERNAL_CALCULATION'}
      PurchaseOrderItemTP.IncotermsClassification,


      @UI.fieldGroup: [ { position: 30, importance: #HIGH, qualifier: 'IncotermsGroup' } ]
      @ObjectModel: {  readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{entity: {name: 'I_TransportationLocationVH', element: 'Location'} }]
      @UI.textArrangement: #TEXT_FIRST
      PurchaseOrderItemTP.IncotermsLocation1Identifier,
      @UI.hidden: true
      PurchaseOrderItemTP.IncotermsSupChnLoc1AddlUUID,

      @UI.fieldGroup: [ { position: 40, qualifier: 'IncotermsGroup'} ]
      @ObjectModel: {  readOnly: 'EXTERNAL_CALCULATION' }
      PurchaseOrderItemTP.IncotermsLocation1,

      @UI.fieldGroup: [ { position: 50, importance: #HIGH, qualifier: 'IncotermsGroup'} ]
      @ObjectModel: {  readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{entity: {name: 'I_TransportationLocationVH', element: 'Location'} }]
      @UI.textArrangement: #TEXT_FIRST
      PurchaseOrderItemTP.IncotermsDvtgLocIdentifier,
      @UI.hidden: true
      PurchaseOrderItemTP.IncotermsSupChnDvtgLocAddlUUID,

      @UI.fieldGroup: [ { groupLabel: 'Delivery and Invoice 2', qualifier: 'IncotermsGroup', position: 60 } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      PurchaseOrderItemTP.IncotermsDvtgLocDescription,

      @UI.fieldGroup: [ { position: 70, importance: #HIGH, qualifier: 'IncotermsGroup'} ]
      @ObjectModel: {  readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{entity: {name: 'I_TransportationLocationVH', element: 'Location'} }]
      @UI.textArrangement: #TEXT_FIRST
      PurchaseOrderItemTP.IncotermsLocation2Identifier,
      @UI.hidden: true
      PurchaseOrderItemTP.IncotermsSupChnLoc2AddlUUID,

      @UI.fieldGroup: [ { position: 80, qualifier: 'IncotermsGroup'} ]
      @ObjectModel: {  readOnly: 'EXTERNAL_CALCULATION' }
      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' }
      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' }
      cast (PurchaseOrderItemTP.PurchaseContract as konnr_ll preserving type)              as PurchaseContract,

      @UI: {
      fieldGroup: [{ groupLabel: 'SourceOfSupply', position: 10, qualifier: 'SourceOfSupplyGroup' }],
      lineItem: [ {position: 50, importance: #HIGH, qualifier: 'LimitItem'} ]
      }
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurchaseContractValHelp', element : 'PurchaseContract' } }]
      PurchaseOrderItemTP.PurContractForOverallLimit,
      
      @UI: { fieldGroup: [{ groupLabel: 'SourceOfSupply', position: 20, qualifier: 'SourceOfSupplyGroup' }],
      lineItem: [ {position: 60, importance: #HIGH, qualifier: 'LimitItem'} ] }
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      @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' }
      cast (PurchaseOrderItemTP.PurchaseContractItem as ktpnr_ll preserving type)          as PurchaseContractItem,

      @UI.fieldGroup: [ { position: 40, qualifier: 'SourceOfSupplyGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      @EndUserText.label: ' '
      PurchaseOrderItemTP.InfoRecordIsToBeUpdated,


      ----------------------------------------------------------------------------------------
      -- FieldGroup: Accounting (will be part of reuse)                                     --
      ----------------------------------------------------------------------------------------

      @UI: {
        identification: [{position: 300, qualifier: 'Item'},
                        {position: 50, qualifier: 'LimitItem'}],
        lineItem:       {position: 70, importance: #HIGH, qualifier: 'LimitItem'},
        textArrangement: #TEXT_FIRST
      }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_PurOrdActACatValHelp', element : 'AccountAssignmentCategory' } }]
      @ObjectModel: { readOnly:'EXTERNAL_CALCULATION', text.association: '_PurOrdActACatValHelp'}
      cast (PurchaseOrderItemTP.AccountAssignmentCategory as knttp_ll preserving type)     as AccountAssignmentCategory,


      ----------------------------------------------------------------------------------------
      -- FieldGroup: Public Sector Management (PSM) Accounting                              --
      ----------------------------------------------------------------------------------------

      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name: 'I_MM_CostCenterValueHelp' } }]
      PurchaseOrderItemTP.CostCenter,
      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name: 'I_MM_GLAccountVH', element: 'GLAccount' } }]
      PurchaseOrderItemTP.GLAccount,
      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name: 'C_PurOrdWBSValHelp' } }]
      PurchaseOrderItemTP.WBSElementExternalID,
      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'true' }
      PurchaseOrderItemTP.WBSDescription,
      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'I_FUNDSTDVH', element: 'Fund' } }]
      PurchaseOrderItemTP.Fund,
      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'I_BUDGETPERIODSTDVH', element: 'BudgetPeriod' } }]
      PurchaseOrderItemTP.BudgetPeriod,
      @Feature: 'PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'I_FUNDSCENTERSTDVH', element: 'FundsCenter' } }]
      PurchaseOrderItemTP.FundsCenter,
      @Feature: 'PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'I_COMMITMENTITEMSTDVH', element: 'CommitmentItem' } }]
      PurchaseOrderItemTP.CommitmentItem,
      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption: { valueHelpDefinition: [{ entity: { name : 'I_EmrkdFndsDocumentItemStdVH', element: 'EarmarkedFundsDocument' } }],
                      hidden: true }
      PurchaseOrderItemTP.EarmarkedFunds, //    deprecated, use EarmarkedFundsDocument

      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'I_EmrkdFndsDocumentItemStdVH', element: 'EarmarkedFundsDocument' } }]
      cast ( EarmarkedFundsDocument as fmis_earmarkedfundsdoc preserving type )            as EarmarkedFundsDocument,
      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption: { valueHelpDefinition: [{ entity: { name : 'I_EmrkdFndsDocumentItemStdVH', element: 'EarmarkedFundsDocumentItem' } }],
                      hidden: true }
      PurchaseOrderItemTP.EarmarkedFundsItem, //    deprecated, use EarmarkedFundsDocumentItem

      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'I_EmrkdFndsDocumentItemStdVH', element: 'EarmarkedFundsDocumentItem' } }]
      cast ( EarmarkedFundsDocumentItem as fmis_earmarkedfundsdocitem preserving type )    as EarmarkedFundsDocumentItem,
      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'I_FNDSMGMTFUNCNLAREASTDVH', element: 'FunctionalArea' } }]
      PurchaseOrderItemTP.FunctionalArea,
      @Feature: 'BF:PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'I_GRANTSTDVH', element: 'GrantID' } }]
      PurchaseOrderItemTP.GrantID,
      @Feature: 'PSMOP_BUDGET_ACCOUNTING_CONTRO'
      @ObjectModel: {
        readOnly: true,
        virtualElement,
        virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      }
      cast ('' as fm_measure)                                                              as FundedProgram,

      ----------------------------------------------------------------------------------------
      -- FieldGroup: Tax                                                                    --
      ----------------------------------------------------------------------------------------

      @UI.fieldGroup: [ { groupLabel: 'Tax', position: 10, qualifier: 'TaxGroup' } ]
      @ObjectModel: { foreignKey.association: '_TaxCode', readOnly: 'EXTERNAL_CALCULATION' }
      TaxCode,
      @UI.fieldGroup: [ { position: 20, qualifier: 'TaxGroup' } ]
      @ObjectModel: { foreignKey.association: '_TaxJurisdiction', readOnly: 'EXTERNAL_CALCULATION'}
      @Consumption.valueHelp: '_PurOrdTaxJurisdictionValHelp'
      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' }] }]
      TaxCountry,
      @UI.fieldGroup: [ { groupLabel: 'Tax', position: 40, qualifier: 'TaxGroup' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      TaxDeterminationDate,

      //Brazil Extension

      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      @Consumption.valueHelpDefinition: [{ entity: { name : 'C_BR_MaterialOriginValHelp', element : 'BR_MaterialOrigin' } }]
      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' } }]
      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' } }]
      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' } }]
      PurchaseOrderItemTP.BR_NCM                                                           as BR_NCM, //Implicit Conversion from 16 to 10 Characters, CAST PRESERVING TYPE not allowed


      @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' } }]
      PurchaseOrderItemTP.IN_GSTControlCode                                                as IN_GSTControlCode,

      ----------------------------------------------------------------------------------------
      -- FieldGroup: Confirmation                                                           --
      ----------------------------------------------------------------------------------------
      @UI.fieldGroup: [ {  position: 200, qualifier: 'SupplierConfirmations' } ]
      @ObjectModel: { foreignKey.association: '_SupplierConfControlKey', readOnly: 'EXTERNAL_CALCULATION'}
      @Consumption.valueHelp: '_SupplierConfControlKey'
      @ObjectModel.text.element:  [ 'SupplierConfControlKeyName' ]
      @UI.textArrangement: #TEXT_FIRST
      PurchaseOrderItemTP.SupplierConfirmationControlKey,
      @ObjectModel.readOnly
      @UI.hidden: true
      _SupplierConfControlKey._Text.SupplierConfControlKeyName,
      @UI.fieldGroup: [ {  position: 220, qualifier: 'SupplierConfirmations' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      PurgDocOrderAcknNumber,

      @UI.fieldGroup: [ {  position: 230, qualifier: 'SupplierConfirmations' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      cast(IsOrderAcknRqd as kzabs_ll preserving type )                                    as IsOrderAcknRqd,

      @UI.fieldGroup: [ {  position: 240, qualifier: 'SupplierConfirmations' } ]
      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION'}
      ItemIsRejectedBySupplier,

      ----------------------------------------------------------------------------------------
      -- FieldGroup: Delivery Address                                                           --
      ----------------------------------------------------------------------------------------



      ----------------------------------------------------------------------------------------
      -- Header-Fields needed for Associations                                              --
      ----------------------------------------------------------------------------------------

      @ObjectModel: { readOnly: true }
      @UI.lineItem: [ { exclude: true } ]
      @UI.hidden: true
      _PurchaseOrderTP.PurchasingOrganization,

      @ObjectModel: { readOnly: true }
      @UI.lineItem: [ { exclude: true } ]
      @UI.hidden: false
      _PurchaseOrderTP.Supplier,

      @ObjectModel: { readOnly: true, foreignKey.association: '_TaxCalculationProcedure' }
      @UI.hidden: true
      _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
      PurgProductMarketabilityStatus,

      @ObjectModel.readOnly: true
      @UI.hidden: true
      _POItemProdCmplncCriticality.UICT_PurgProdCmplncSupplierSts,

      @ObjectModel: { readOnly: true }
      @UI.fieldGroup: [ { groupLabel: 'Product Compliance', position: 20, qualifier: 'ProductCompliance'
      ,criticality: 'UICT_PurgProdMarketabilitySts', criticalityRepresentation: #WITHOUT_ICON
      } ]
      _PurgProductMarketabilityStsT.PurgProdMarketabilityStsName,

      @UI.hidden: true
      PurgSafetyDataSheetStatus,

      @ObjectModel.readOnly: true
      @UI.hidden: true
      _POItemProdCmplncCriticality.UICT_PurgProdMarketabilitySts,

      @ObjectModel: { readOnly: true }
      @UI.fieldGroup: [ { groupLabel: 'Product Compliance', position: 40, qualifier: 'ProductCompliance'
      ,criticality: 'UICT_PurgSafetyDataSheetStatus', criticalityRepresentation: #WITHOUT_ICON
      } ]
      _PurgSafetyDataSheetStatusT.PurgSafetyDataSheetStatusName,

      @ObjectModel.readOnly: true
      @UI.hidden: true
      _POItemProdCmplncCriticality.UICT_PurgSafetyDataSheetStatus,

      @ObjectModel: { readOnly: true }
      @UI.fieldGroup: [ { groupLabel: 'Product Compliance', position: 30, qualifier: 'ProductCompliance'
      ,criticality: 'UICT_PurgCmplncDngrsGoodsSts', criticalityRepresentation: #WITHOUT_ICON
      } ]
      _PurgProdCmplncDngrsGoodsStsT.PurgProdCmplncDngrsGdsStsName,

      @UI.hidden: true
      PurgProdCmplncDngrsGoodsStatus,

      @ObjectModel.readOnly: true
      @UI.hidden: true
      _POItemProdCmplncCriticality.UICT_PurgCmplncDngrsGoodsSts,

      //      @ObjectModel: {

      //      readOnly: true,

      //      virtualElement,

      //      virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'

      //      }

      //      @UI.hidden: true

      //      cast ('' as boolean)                                                                 as BusSrvcProcmtItmHierEnbld,


      @ObjectModel: {
        readOnly: true,
        virtualElement,
        virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      }
      @UI.hidden: true
      cast ('' as boolean)                                                                 as ProductComplianceIsActive,

      @ObjectModel: {
       readOnly: true,
       virtualElement,
       virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      }
      @UI.hidden: true
      cast ('' as ehfnd_bf_pcs_is_active)                                                  as BusFtreProdCmplncSuplrIsActive,

      @ObjectModel: {
        readOnly: true,
        virtualElement,
        virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      }
      @UI.hidden: true
      cast ('' as ehfnd_bf_pma_is_active)                                                  as BusFtreProdMarketabilityIsActv,

      @ObjectModel: {
        readOnly: true,
        virtualElement,
        virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      }
      @UI.hidden: true
      cast ('' as ehfnd_bf_dg_is_active)                                                   as BusFtreDngrsGoodsIsActive,

      @ObjectModel: {
        readOnly: true,
        virtualElement,
        virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      }
      @UI.hidden: true
      cast ('' as ehfnd_bf_sds_is_active)                                                  as BusFtreSftyDataShtMgmtIsActive,

      @ObjectModel: { readOnly:'EXTERNAL_CALCULATION' }
      @Consumption.valueHelpDefinition: [{ entity: { name : 'I_BatchVH', element : 'Batch' } }]
      PurchaseOrderItemTP.Batch,

      @ObjectModel: { readOnly:'EXTERNAL_CALCULATION' }
      PurchaseOrderItemTP.BatchBySupplier,

      ----------------------------------------------------------------------------------------
      -- Unused fields                                                                      --
      ----------------------------------------------------------------------------------------

      @Consumption.hidden: true
      PurchaseOrderItemTP.SupplierMaterialNumber,
      @Consumption.hidden: true
      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,
      @UI.hidden: true
      PurchaseOrderItemTP.IsInfoRecordUpdated,
      @ObjectModel: { readOnly: true }
      PurchaseOrderItemTP.PurchaseRequisition,
      @ObjectModel: { readOnly: true }
      PurchaseOrderItemTP.PurchaseRequisitionItem,
      ----------------------------------------------------------------------------------------
      -- Transient fields                                                                   --
      ----------------------------------------------------------------------------------------

      @ObjectModel: {
        readOnly: true,
        virtualElement,
        virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      }
      @UI.hidden: true
      cast ('' as boolean)                                                                 as AccountAssignmentIsAddable,

      @ObjectModel: { readOnly: 'EXTERNAL_CALCULATION' }
      PurchaseOrderItemTP.POItmAcctAssgmtFieldsAreEnbld,

      @ObjectModel: {
        readOnly: true,
        virtualElement,
        virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      }
      @UI.hidden: true
      cast ('' as boolean)                                                                 as ScheduleLineIsAddable,


      @ObjectModel: {
         readOnly: true
       }
      @UI.hidden: true
      PurchaseOrderItemTP.HighestMessageSeverityLevel,

      @ObjectModel: {
       readOnly: true,
       virtualElement,
       virtualElementCalculatedBy: 'ABAP:CL_MM_PUR_PO_MAINT_V2_TRA_EXIT'
      }
      @UI.hidden: true
      cast ('' as boolean)                                                                 as PurOrdAcctAssgmtFacetIsVisible,

      ----------------------------------------------------------------------------------------
      -- Fields from delivery address needed for association to ValueHelp for TaxJurisdictionCode                                                                --
      ----------------------------------------------------------------------------------------

      @ObjectModel: {
         readOnly: true
       }
      @UI.hidden: true
      _PurOrdDeliveryAddressTP.Region                                                      as Region,

      @ObjectModel: {
         readOnly: true
       }
      @UI.hidden: true
      _PurOrdDeliveryAddressTP.RegionName                                                  as RegionName,

      @ObjectModel: {
         readOnly: true
       }
      @UI.hidden: true
      _PurOrdDeliveryAddressTP.PostalCode                                                  as PostalCode,

      @ObjectModel: {
         readOnly: true
       }
      @UI.hidden: true
      _PurOrdDeliveryAddressTP.CityName                                                    as CityName,
      //Foot Print Intigration

//      @Feature: 'BF:PFM_PROCESSINTEGRATION'

//      PFMTransDataFootprintUUID,

//      @ObjectModel.readOnly: true

//      @Semantics.quantity.unitOfMeasure: 'PFMFootprintUnit'

//      @UI:  {

//            dataPoint: {targetValueElement: 'PFMFootprintQuantity' , valueFormat.numberOfFractionalDigits: 3}

//           }

//      @EndUserText.label: 'CO2e Footprint'

//      @Feature: 'BF:PFM_PROCESSINTEGRATION'

//      @UI.hidden: false

//      _PurOrdItemCO2eqFootprint.PFMFootprintQuantity,

//

//      @ObjectModel.readOnly: true

//      @Semantics.unitOfMeasure: true

//      @Feature: 'BF:PFM_PROCESSINTEGRATION'

//      @UI.hidden: false

//      _PurOrdItemCO2eqFootprint.PFMFootprintUnit,


      ----------------------------------------------------------------------------------------
      -- Associations                                                                       --
      ----------------------------------------------------------------------------------------

      @ObjectModel.association.type: [ #TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT ]
      _PurchaseOrderTP,

      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _PurOrdScheduleLineTP,

      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _PurOrdAcctAssignmentTP,

      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _PurOrdPricingElementTP,

      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _PurOrdDeliveryAddressTP,

      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _PurchaseOrderItemNoteTP,

      //@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]

      _PurOrdSupplierConfirmation,

      @Consumption.filter.hidden: true
      PurchaseOrderItemTP._IncotermsVersion,

      @Consumption.hidden: true
      PurchaseOrderItemTP._PurchasingInfoRecord,

      @Consumption.hidden: true
      PurchaseOrderItemTP._PurchaseContractItem,

      PurchaseOrderItemTP._IncotermsClassification,

      PurchaseOrderItemTP._OrderPriceUnit,

      PurchaseOrderItemTP._OrderQuantityUnit,

      PurchaseOrderItemTP._ProductType,

      PurchaseOrderItemTP._BR_MaterialOrigin,

      PurchaseOrderItemTP._BR_MaterialUsage,

      PurchaseOrderItemTP._BR_CFOPCategory,

      PurchaseOrderItemTP._BR_NCM,

      @ObjectModel.readOnly
      @Consumption.filter.hidden: true
      _POItemProdCmplncCriticality,

      _TaxCode,

      _TaxJurisdiction,

      _TaxCalculationProcedure,

      _CnsmptnTaxCntrlCode,

      _SupplierConfControlKey,

      _POItemAlternateSuplrSit,

      _MaterialValueHelp,

      _MaterialGroupValueHelp,

      _PlantValueHelp,

      _PurOrdActACatValHelp,

      _PurOrdTaxJurisdictionValHelp,

      _BatchVH,

      _PurchaseOrderItemSet,

//      _PurOrdItemCO2eqFootprint,


      _MM_ServicePerformerValueHelp

}