R_PurchaseReqnItem

DDL: R_PURCHASEREQNITEM SQL: RPURREQNITM Type: view COMPOSITE

Purchase Requisition Items

R_PurchaseReqnItem is a Composite CDS View that provides data about "Purchase Requisition Items" in SAP S/4HANA. It reads from 1 data source (I_Purchaserequisitionitem) and exposes 127 fields with key fields PurchaseRequisition, PurchaseRequisitionItem. It has 20 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_Purchaserequisitionitem Document from

Associations (20)

CardinalityTargetAliasCondition
[1..1] I_PurchaseReqn _PurchaseReqn $projection.PurchaseRequisition = _PurchaseReqn.PurchaseRequisition
[0..*] I_PurchaseReqnAcctAssgmt _PurchaseReqnAcctAssgmt $projection.PurchaseRequisition = _PurchaseReqnAcctAssgmt.PurchaseRequisition and $projection.PurchaseRequisitionItem = _PurchaseReqnAcctAssgmt.PurchaseRequisitionItem
[0..1] I_PurchaseReqnDeliveryAddress _PurchaseReqnDeliveryAddress _PurchaseReqnDeliveryAddress.PurchaseRequisition = $projection.PurchaseRequisition and _PurchaseReqnDeliveryAddress.PurchaseRequisitionItem = $projection.PurchaseRequisitionItem
[0..*] I_PurchaseReqnItemText _PurchaseReqnItemText _PurchaseReqnItemText.PurchaseRequisition = $projection.PurchaseRequisition and _PurchaseReqnItemText.PurchaseRequisitionItem = $projection.PurchaseRequisitionItem
[0..1] I_Supplier _Supplier $projection.FixedSupplier = _Supplier.Supplier
[0..1] I_Customer _Customer $projection.PurReqnReceivingCustomer = _Customer.Customer
[0..1] I_StorageLocationAddress _StorageLocationAddress $projection.Plant = _StorageLocationAddress.Plant and $projection.StorageLocation = _StorageLocationAddress.StorageLocation and $projection.ItemDeliveryAddressID = _StorageLocationAddress.AddressID
[0..1] I_PurchasingOrganization _PurchasingOrganization $projection.PurchasingOrganization = _PurchasingOrganization.PurchasingOrganization
[0..1] I_PurchasingGroup _PurchasingGroup $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup
[0..1] I_Currency _Currency $projection.PurReqnItemCurrency = _Currency.Currency
[0..1] I_Plant _SupplyingPlant $projection.SupplyingPlant = _SupplyingPlant.Plant
[1..1] I_AccAssgnmtCategory _AccAssgnmtCategory $projection.AccountAssignmentCategory = _AccAssgnmtCategory.AccountAssignmentCategory
[0..1] I_Material _Material $projection.Material = _Material.Material
[0..1] I_MaterialGroup _MaterialGroup $projection.MaterialGroup = _MaterialGroup.MaterialGroup
[0..1] I_Plant _Plant $projection.Plant = _Plant.Plant
[1..1] I_UnitOfMeasure _UnitOfMeasure $projection.BaseUnit = _UnitOfMeasure.UnitOfMeasure
[0..1] I_StorageLocation _StorageLocation $projection.StorageLocation = _StorageLocation.StorageLocation and $projection.Plant = _StorageLocation.Plant
[0..1] I_PurchasingInfoRecord _PurchasingInfoRecord $projection.PurchasingInfoRecord = _PurchasingInfoRecord.PurchasingInfoRecord
[0..1] I_User _User _User.UserID = $projection.CreatedByUser
[1..1] I_CompanyCode _CompanyCode $projection.CompanyCode = _CompanyCode.CompanyCode

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName RPURREQNITM view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Purchase Requisition Items view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.preserveKey true view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
Metadata.ignorePropagatedAnnotations true view

Fields (127)

KeyFieldSource TableSource FieldDescription
KEY PurchaseRequisition I_Purchaserequisitionitem PurchaseRequisition Purchase Requisition
KEY PurchaseRequisitionItem I_Purchaserequisitionitem PurchaseRequisitionItem Purchase Requisition Items
PurchasingDocument I_Purchaserequisitionitem PurchasingDocument
PurchasingDocumentItem I_Purchaserequisitionitem PurchasingDocumentItem
PurReqnReleaseStatus I_Purchaserequisitionitem PurReqnReleaseStatus Status
PurchaseRequisitionType I_Purchaserequisitionitem PurchaseRequisitionType
PurchasingDocumentItemCategory I_Purchaserequisitionitem PurchasingDocumentItemCategory Item Category
PurchaseRequisitionItemText I_Purchaserequisitionitem PurchaseRequisitionItemText Item Description
AccountAssignmentCategory I_Purchaserequisitionitem AccountAssignmentCategory Account Assignment Category
Material I_Purchaserequisitionitem Material
ManufacturerMaterial I_Purchaserequisitionitem ManufacturerMaterial
ManufacturerPartProfile I_Purchaserequisitionitem ManufacturerPartProfile
ManufacturerPartNmbr I_Purchaserequisitionitem ManufacturerPartNmbr
MaterialGroup I_Purchaserequisitionitem MaterialGroup
PurchasingDocumentCategory I_Purchaserequisitionitem PurchasingDocumentCategory
IsOutline I_Purchaserequisitionitem IsOutline
PurchasingParentItem I_Purchaserequisitionitem PurchasingParentItem
PurReqnItemOutlineType I_Purchaserequisitionitem PurReqnItemOutlineType
PurgConfigurableItemNumber I_Purchaserequisitionitem PurgConfigurableItemNumber
PurgExternalSortNumber I_Purchaserequisitionitem PurgExternalSortNumber
RequestedQuantity I_Purchaserequisitionitem RequestedQuantity Quantity
BaseUnit I_Purchaserequisitionitem BaseUnit
PurchaseRequisitionPrice I_Purchaserequisitionitem PurchaseRequisitionPrice Valuation Price
PurReqnPriceQuantity I_Purchaserequisitionitem PurReqnPriceQuantity Price Unit
MaterialGoodsReceiptDuration I_Purchaserequisitionitem MaterialGoodsReceiptDuration GR Processing Time (in Days)
ReleaseCode I_Purchaserequisitionitem ReleaseCode
PurchaseRequisitionReleaseDate I_Purchaserequisitionitem PurchaseRequisitionReleaseDate
PurchasingOrganization I_Purchaserequisitionitem PurchasingOrganization Purchasing Organization
PurchasingGroup I_Purchaserequisitionitem PurchasingGroup Purchasing Group
Plant I_Purchaserequisitionitem Plant
SourceOfSupplyIsAssigned I_Purchaserequisitionitem SourceOfSupplyIsAssigned
SupplyingPlant I_Purchaserequisitionitem SupplyingPlant
OrderedQuantity I_Purchaserequisitionitem OrderedQuantity Ordered Quantity
PurReqnLimitConsumptionAmt I_Purchaserequisitionitem PurReqnLimitConsumptionAmt Consumption Value
DeliveryDate I_Purchaserequisitionitem DeliveryDate Delivery Date
CreationDate I_Purchaserequisitionitem CreationDate Changed On
ProcessingStatus I_Purchaserequisitionitem ProcessingStatus Requisition Processing Status
PurchasingInfoRecord I_Purchaserequisitionitem PurchasingInfoRecord
Supplier I_Purchaserequisitionitem Supplier
IsDeleted I_Purchaserequisitionitem IsDeleted
FixedSupplier I_Purchaserequisitionitem FixedSupplier Supplier
RequisitionerName I_Purchaserequisitionitem RequisitionerName
PurReqnSSPRequestor I_Purchaserequisitionitem PurReqnSSPRequestor
CreatedByUser I_Purchaserequisitionitem CreatedByUser
UserDescription _User UserDescription Created By
PurReqCreationDate I_Purchaserequisitionitem PurReqCreationDate
ManualDeliveryAddressID I_Purchaserequisitionitem ManualDeliveryAddressID
ItemDeliveryAddressID I_Purchaserequisitionitem ItemDeliveryAddressID
Subcontractor I_Purchaserequisitionitem Subcontractor
PurReqnReceivingCustomer I_Purchaserequisitionitem PurReqnReceivingCustomer
PurchasingDeliveryAddressType I_Purchaserequisitionitem PurchasingDeliveryAddressType
AddressIDelseendasDeliveryAddressID
PurReqnItemCurrency I_Purchaserequisitionitem PurReqnItemCurrency
MaterialPlannedDeliveryDurn I_Purchaserequisitionitem MaterialPlannedDeliveryDurn Planned Delivery Time (in Days)
DelivDateCategory I_Purchaserequisitionitem DelivDateCategory
StorageLocation I_Purchaserequisitionitem StorageLocation
PurchaseContract I_Purchaserequisitionitem PurchaseContract
PurReqnSourceOfSupplyType I_Purchaserequisitionitem PurReqnSourceOfSupplyType
PurchaseContractItem I_Purchaserequisitionitem PurchaseContractItem
ConsumptionPosting I_Purchaserequisitionitem ConsumptionPosting
PurReqnOrigin I_Purchaserequisitionitem PurReqnOrigin Creation Indicator
PurReqnItemBlockingStatus I_Purchaserequisitionitem IsPurReqnBlocked
Language I_Purchaserequisitionitem Language
IsClosed I_Purchaserequisitionitem IsClosed Purchase Requisition Item is Closed
ReleaseIsNotCompleted I_Purchaserequisitionitem ReleaseIsNotCompleted
ServicePerformer I_Purchaserequisitionitem ServicePerformer
ProductTypeCode I_Purchaserequisitionitem ProductType
PurchaseRequisitionStatus I_Purchaserequisitionitem PurchaseRequisitionStatus
ReleaseStrategy I_Purchaserequisitionitem ReleaseStrategy
PerformancePeriodStartDate I_Purchaserequisitionitem PerformancePeriodStartDate
PerformancePeriodEndDate I_Purchaserequisitionitem PerformancePeriodEndDate
SupplierMaterialNumber I_Purchaserequisitionitem SupplierMaterialNumber Supplier Material Number
Batch I_Purchaserequisitionitem Batch
MaterialRevisionLevel I_Purchaserequisitionitem MaterialRevisionLevel Revision Level
MinRemainingShelfLife I_Purchaserequisitionitem MinRemainingShelfLife Remaining Shelf Life
GoodsReceiptIsExpected I_Purchaserequisitionitem GoodsReceiptIsExpected Goods Receipt is Expected
InvoiceIsExpected I_Purchaserequisitionitem InvoiceIsExpected Invoice Receipt is Expected
GoodsReceiptIsNonValuated I_Purchaserequisitionitem GoodsReceiptIsNonValuated Non-valuated Goods Receipt is Expected
RequirementTracking I_Purchaserequisitionitem RequirementTracking Requirement Tracking Number
MRPController I_Purchaserequisitionitem MRPController MRP Controller
TaxCode I_Purchaserequisitionitem TaxCode Tax Code
PurchaseRequisitionIsFixed I_Purchaserequisitionitem PurchaseRequisitionIsFixed Purchase Requisition Item is Fixed
PurchasingDocumentSubtype I_Purchaserequisitionitem PurchasingDocumentSubtype
PFMTransDataFootprintUUID I_Purchaserequisitionitem PFMTransDataFootprintUUID
PurReqnCatalog I_Purchaserequisitionitem PurReqnSSPCatalog
PurReqnCatalogItem I_Purchaserequisitionitem PurReqnSSPCatalogItem
PurReqnCrossCatalogItem I_Purchaserequisitionitem PurReqnSSPCrossCatalogItem
ExpectedOverallLimitAmount I_Purchaserequisitionitem ExpectedOverallLimitAmount
OverallLimitAmount I_Purchaserequisitionitem OverallLimitAmount
PurContractForOverallLimit I_Purchaserequisitionitem PurContractForOverallLimit
LastChangeDateTime I_Purchaserequisitionitem LastChangeDateTime
PurchaseReqnItemUniqueID I_Purchaserequisitionitem PurchaseReqnItemUniqueID Purchase Requisition Item
IsPurReqnOvrlRel I_Purchaserequisitionitem IsPurReqnOvrlRel
IsActiveEntity
ExternalApprovalStatus I_Purchaserequisitionitem ExternalApprovalStatus
CommitmentItemShortID I_Purchaserequisitionitem CommitmentItemShortID
FundsCenter I_Purchaserequisitionitem FundsCenter
Fund I_Purchaserequisitionitem Fund
GrantID I_Purchaserequisitionitem GrantID
FunctionalArea I_Purchaserequisitionitem FunctionalArea
EarmarkedFundsDocument I_Purchaserequisitionitem EarmarkedFundsDocument
EarmarkedFundsDocumentItem I_Purchaserequisitionitem EarmarkedFundsDocumentItem
BudgetPeriod I_Purchaserequisitionitem BudgetPeriod
CostCenter I_Purchaserequisitionitem CostCenter
GLAccount I_Purchaserequisitionitem GLAccount
WBSElementInternalID
FundedProgram I_Purchaserequisitionitem FundedProgram
ItemNetAmount I_Purchaserequisitionitem ItemNetAmount Total Value
CompanyCode I_Purchaserequisitionitem CompanyCode
_PurchaseReqn _PurchaseReqn
_PurchaseReqnAcctAssgmt _PurchaseReqnAcctAssgmt
_PurchaseReqnDeliveryAddress _PurchaseReqnDeliveryAddress
_PurchaseReqnItemText _PurchaseReqnItemText
_AccAssgnmtCategory _AccAssgnmtCategory
_Currency _Currency
_Material _Material
_MaterialGroup _MaterialGroup
_Plant _Plant
_PurchasingGroup _PurchasingGroup
_PurchasingInfoRecord _PurchasingInfoRecord
_PurchasingOrganization _PurchasingOrganization
_StorageLocation _StorageLocation
_Supplier _Supplier
_SupplyingPlant _SupplyingPlant
_UnitOfMeasure _UnitOfMeasure
_User _User
_CompanyCode _CompanyCode
@AbapCatalog.sqlViewName: 'RPURREQNITM'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Purchase Requisition Items'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.preserveKey:true
@VDM.viewType: #COMPOSITE
@ObjectModel.semanticKey:['PurchaseRequisition', 'PurchaseRequisitionItem']
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@AccessControl.privilegedAssociations:  [ '_User' ]
@Metadata.ignorePropagatedAnnotations: true
define view R_PurchaseReqnItem
  as select from I_Purchaserequisitionitem as Document

  association [1..1] to I_PurchaseReqn                as _PurchaseReqn                on  $projection.PurchaseRequisition = _PurchaseReqn.PurchaseRequisition

  association [0..*] to I_PurchaseReqnAcctAssgmt      as _PurchaseReqnAcctAssgmt      on  $projection.PurchaseRequisition     = _PurchaseReqnAcctAssgmt.PurchaseRequisition
                                                                                      and $projection.PurchaseRequisitionItem = _PurchaseReqnAcctAssgmt.PurchaseRequisitionItem

  association [0..1] to I_PurchaseReqnDeliveryAddress as _PurchaseReqnDeliveryAddress on  _PurchaseReqnDeliveryAddress.PurchaseRequisition     = $projection.PurchaseRequisition
                                                                                      and _PurchaseReqnDeliveryAddress.PurchaseRequisitionItem = $projection.PurchaseRequisitionItem

  association [0..*] to I_PurchaseReqnItemText        as _PurchaseReqnItemText        on  _PurchaseReqnItemText.PurchaseRequisition     = $projection.PurchaseRequisition
                                                                                      and _PurchaseReqnItemText.PurchaseRequisitionItem = $projection.PurchaseRequisitionItem

  association [0..1] to I_Supplier                    as _Supplier                    on  $projection.FixedSupplier = _Supplier.Supplier
  association [0..1] to I_Customer                    as _Customer                    on  $projection.PurReqnReceivingCustomer = _Customer.Customer
  association [0..1] to I_StorageLocationAddress      as _StorageLocationAddress      on  $projection.Plant                 = _StorageLocationAddress.Plant
                                                                                      and $projection.StorageLocation       = _StorageLocationAddress.StorageLocation
                                                                                      and $projection.ItemDeliveryAddressID = _StorageLocationAddress.AddressID

  association [0..1] to I_PurchasingOrganization      as _PurchasingOrganization      on  $projection.PurchasingOrganization = _PurchasingOrganization.PurchasingOrganization

  association [0..1] to I_PurchasingGroup             as _PurchasingGroup             on  $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup

  association [0..1] to I_Currency                    as _Currency                    on  $projection.PurReqnItemCurrency = _Currency.Currency

  association [0..1] to I_Plant                       as _SupplyingPlant              on  $projection.SupplyingPlant = _SupplyingPlant.Plant

  association [1..1] to I_AccAssgnmtCategory          as _AccAssgnmtCategory          on  $projection.AccountAssignmentCategory = _AccAssgnmtCategory.AccountAssignmentCategory

  association [0..1] to I_Material                    as _Material                    on  $projection.Material = _Material.Material

  association [0..1] to I_MaterialGroup               as _MaterialGroup               on  $projection.MaterialGroup = _MaterialGroup.MaterialGroup

  association [0..1] to I_Plant                       as _Plant                       on  $projection.Plant = _Plant.Plant

  association [1..1] to I_UnitOfMeasure               as _UnitOfMeasure               on  $projection.BaseUnit = _UnitOfMeasure.UnitOfMeasure

  association [0..1] to I_StorageLocation             as _StorageLocation             on  $projection.StorageLocation = _StorageLocation.StorageLocation
                                                                                      and $projection.Plant           = _StorageLocation.Plant

  association [0..1] to I_PurchasingInfoRecord        as _PurchasingInfoRecord        on  $projection.PurchasingInfoRecord = _PurchasingInfoRecord.PurchasingInfoRecord

  association [0..1] to I_User                        as _User                        on  _User.UserID = $projection.CreatedByUser
  //Commented as part of performance remodelling

  // association [1..1] to I_PurchaseReqnItemTF          as _TransientFields             on  $projection.PurchaseRequisition = _TransientFields.PurchaseRequisition

  //    and $projection.PurchaseRequisitionItem = _TransientFields.PurchaseRequisitionItem


  association [1..1] to I_CompanyCode                 as _CompanyCode                 on  $projection.CompanyCode = _CompanyCode.CompanyCode

{
      @EndUserText.label: 'Purchase Requisition'
      @ObjectModel.readOnly: true
  key Document.PurchaseRequisition,

      @EndUserText.label: 'Purchase Requisition Items'
      @ObjectModel.readOnly: true
  key Document.PurchaseRequisitionItem,
  
      @ObjectModel.readOnly: true
      Document.PurchasingDocument,

      @ObjectModel.readOnly: true    
      Document.PurchasingDocumentItem,

      @EndUserText.label: 'Status'
      @ObjectModel.readOnly: true
      Document.PurReqnReleaseStatus,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurchaseRequisitionType,

      @EndUserText.label: 'Item Category'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurchasingDocumentItemCategory,

      @EndUserText.label: 'Item Description'
      @Semantics.text: true
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurchaseRequisitionItemText,

      @EndUserText.label: 'Account Assignment Category'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.AccountAssignmentCategory,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Consumption.semanticObject: 'Material'
      Document.Material,

      @UI.hidden: true
      Document.ManufacturerMaterial,

      @UI.hidden: true
      Document.ManufacturerPartProfile,

      @UI.hidden: true
      Document.ManufacturerPartNmbr,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.MaterialGroup,
      
      @ObjectModel.readOnly: true
      Document.PurchasingDocumentCategory,

      // Relevant for Item Hierarchy

      Document.IsOutline,
      Document.PurchasingParentItem,
      Document.PurReqnItemOutlineType,
      Document.PurgConfigurableItemNumber,
      Document.PurgExternalSortNumber,
      //


      @EndUserText.label: 'Quantity'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      Document.RequestedQuantity,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.foreignKey.association: '_UnitOfMeasure'
      @Consumption.valueHelp:'_UnitOfMeasure'
      @Semantics.unitOfMeasure: true
      Document.BaseUnit,

      @EndUserText.label: 'Valuation Price'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Semantics.amount.currencyCode: 'PurReqnItemCurrency'
      Document.PurchaseRequisitionPrice,

      @EndUserText.label: 'Price Unit'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      Document.PurReqnPriceQuantity,

      @EndUserText.label: 'GR Processing Time (in Days)'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.MaterialGoodsReceiptDuration,
      Document.ReleaseCode,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurchaseRequisitionReleaseDate,

      @EndUserText.label: 'Purchasing Organization'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurchasingOrganization,

      @EndUserText.label: 'Purchasing Group'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurchasingGroup,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.foreignKey.association: '_Plant'
      Document.Plant,      
      @ObjectModel.readOnly: true    
      Document.SourceOfSupplyIsAssigned,
      Document.SupplyingPlant,

      @EndUserText.label: 'Ordered Quantity'
      @ObjectModel.readOnly: true
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      Document.OrderedQuantity,

      @EndUserText.label: 'Consumption Value'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Semantics.amount.currencyCode: 'PurReqnItemCurrency'
      Document.PurReqnLimitConsumptionAmt,

      @EndUserText.label: 'Delivery Date'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.DeliveryDate,

      @ObjectModel.readOnly: true
      @EndUserText.label: 'Changed On'
      Document.CreationDate,

      @EndUserText.label: 'Requisition Processing Status'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.ProcessingStatus,
      
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurchasingInfoRecord,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Consumption.semanticObject: 'Supplier'
      Document.Supplier,
      @Semantics.booleanIndicator:true
      Document.IsDeleted,

      @EndUserText.label: 'Supplier'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.FixedSupplier,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.RequisitionerName,

      @ObjectModel.readOnly:'EXTERNAL_CALCULATION'
      Document.PurReqnSSPRequestor,

      @ObjectModel: {
                    readOnly: true,
                    text: { element: 'UserDescription' }
                    }
      Document.CreatedByUser,

      @EndUserText.label: 'Created By'
      @Semantics.text: true
      @ObjectModel.readOnly: true
      _User.UserDescription,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurReqCreationDate,

      /*Delivery Address*/
      Document.ManualDeliveryAddressID,
      Document.ItemDeliveryAddressID,
      //      below 3 fields are missing in fiori stack. Needed for address type calculation in I_PURCHASEREQNADDRESS

      Document.Subcontractor,  
      Document.PurReqnReceivingCustomer,
      Document.PurchasingDeliveryAddressType,
      
      //Delivery Address ID

      case
      //manual deliv address

      when Document.ManualDeliveryAddressID <> ''
        then Document.ManualDeliveryAddressID
      //referenced other address

      when Document.ItemDeliveryAddressID <> ''
        then Document.ItemDeliveryAddressID
      //address from supplier

      when Document.Subcontractor <> ''
        then _Supplier.AddressID
      //address from customer

      when Document.PurReqnReceivingCustomer <> ''
        then _Customer.AddressID
      //default address from Plant and item not thrid party

      when Document.ManualDeliveryAddressID = '' and Document.ItemDeliveryAddressID = ''
      and Subcontractor = '' and PurReqnReceivingCustomer = '' and PurchasingDocumentItemCategory <> '5'
        then _Plant.AddressID
      else
        ''
      end                                               as DeliveryAddressID,



      @Semantics.currencyCode: true
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.foreignKey.association: '_Currency'
      @Consumption.valueHelp:'_Currency'
      Document.PurReqnItemCurrency,

      @EndUserText.label: 'Planned Delivery Time (in Days)'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.MaterialPlannedDeliveryDurn,
      
      @ObjectModel.readOnly: true
      Document.DelivDateCategory,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      case
        when Document.MultipleAcctAssgmtDistribution <> ''
         then Document.MultipleAcctAssgmtDistribution
        else
         '0'
      end                                               as MultipleAcctAssgmtDistribution,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      case
         when Document.PartialInvoiceDistribution <> ''
          then Document.PartialInvoiceDistribution
         else
          '0'
       end                                              as PartialInvoiceDistribution,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.StorageLocation,
      
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'    
      Document.PurchaseContract,

      @Consumption.hidden: true
      Document.PurReqnSourceOfSupplyType,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurchaseContractItem,
      @ObjectModel.readOnly: true    
      Document.ConsumptionPosting,

      @ObjectModel.readOnly: true
      @EndUserText.label: 'Creation Indicator'
      Document.PurReqnOrigin,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.IsPurReqnBlocked as PurReqnItemBlockingStatus,
      Document.Language,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @EndUserText.label: 'Purchase Requisition Item is Closed'
      Document.IsClosed,
      
      @ObjectModel.readOnly: true    
      Document.ReleaseIsNotCompleted,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.ServicePerformer,
      Document.ProductType                              as ProductTypeCode,

      @ObjectModel.readOnly: true
      Document.PurchaseRequisitionStatus,
      Document.ReleaseStrategy,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PerformancePeriodStartDate,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PerformancePeriodEndDate,

      @EndUserText.label: 'Supplier Material Number'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.SupplierMaterialNumber,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.Batch,

      @EndUserText.label: 'Revision Level'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.MaterialRevisionLevel,

      @EndUserText.label: 'Remaining Shelf Life'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.MinRemainingShelfLife,

      @EndUserText.label: 'Goods Receipt is Expected'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.GoodsReceiptIsExpected,

      @EndUserText.label: 'Invoice Receipt is Expected'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.InvoiceIsExpected,

      @EndUserText.label: 'Non-valuated Goods Receipt is Expected'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.GoodsReceiptIsNonValuated,

      @EndUserText.label: 'Requirement Tracking Number'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.RequirementTracking,

      @EndUserText.label: 'MRP Controller'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.MRPController,

      @EndUserText.label: 'Tax Code'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.TaxCode,

      @EndUserText.label: 'Purchase Requisition Item is Fixed'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurchaseRequisitionIsFixed,
      @ObjectModel.readOnly: true
      Document.PurchasingDocumentSubtype,
      
      Document.PFMTransDataFootprintUUID,
      
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurReqnSSPCatalog                        as PurReqnCatalog,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurReqnSSPCatalogItem                    as PurReqnCatalogItem,

      //      Document.IsPurReqnCmplt,

      //      Document.PurReqnCmpltnsCat,


      Document.PurReqnSSPCrossCatalogItem               as PurReqnCrossCatalogItem,

      @Semantics.amount.currencyCode: 'PurReqnItemCurrency'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.ExpectedOverallLimitAmount,

      @Semantics.amount.currencyCode: 'PurReqnItemCurrency'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.OverallLimitAmount,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.PurContractForOverallLimit,
      Document.LastChangeDateTime,

      @EndUserText.label: 'Purchase Requisition Item'
      Document.PurchaseReqnItemUniqueID,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      case Document.PurchaseOrderPriceType
        when ''
          then cast( '0' as abap.char( 1 ))
        else
          Document.PurchaseOrderPriceType
      end                                               as PurchaseOrderPriceType,

      Document.IsPurReqnOvrlRel,
      cast( 'X' as sdraft_is_active preserving type )   as IsActiveEntity,
      
      Document.ExternalApprovalStatus            as ExternalApprovalStatus,

      /*******************************Start Code for PSM Account Object Integration***************************************/
//      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'

      Document.CommitmentItemShortID  as CommitmentItemShortID,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.FundsCenter                              as FundsCenter,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.Fund                                     as Fund,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.GrantID                                  as GrantID,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.FunctionalArea                           as FunctionalArea,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.EarmarkedFundsDocument                   as EarmarkedFundsDocument,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.EarmarkedFundsDocumentItem               as EarmarkedFundsDocumentItem,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.BudgetPeriod                             as BudgetPeriod,
      //      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'

      //      Document.MaterialOrderUnit                      as MaterialOrderUnit,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.CostCenter                               as CostCenter,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.GLAccount                                as GLAccount,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      cast ('00000000' as ps_s4_pspnr preserving type ) as WBSElementInternalID,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Document.FundedProgram                            as FundedProgram,
      /*******************************End Code for PSM Account Object Integration*****************************************/

      @EndUserText.label: 'Total Value'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Semantics.amount.currencyCode: 'PurReqnItemCurrency'
      Document.ItemNetAmount,

      /**************************************    Determine the item status     *********************************************************/

      //      case

      //          when PurchasingDocumentItemCategory = '0' //Standard

      //            then cast( 0 as int1 )

      //          when PurchasingDocumentItemCategory = '5' //Third-Party

      //            then cast( 0 as int1 )

      //          when PurchasingDocumentItemCategory = 'A' // Enhanced Limit

      //            then cast( 0 as int1 )

      //          else

      //            cast( 1 as int1 )

      //        end                                           as IsAdvncdPurchaseReqnItemType,


      //      case

      //        when PurReqnOrigin = 'R'

      //          then cast( 0 as int1 )

      //        when PurReqnOrigin = 'S'

      //          then cast( 0 as int1 )

      //        when PurReqnOrigin = 'P'

      //          then cast( 0 as int1 )

      //        else

      //          cast( 1 as int1 )

      //      end                                             as IsAdvncdPurchaseReqnOrigin,


      Document.CompanyCode,

      /* Associations */
      @ObjectModel.association.type:  [ #TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT ]
      _PurchaseReqn,
      @ObjectModel.association.type: #TO_COMPOSITION_CHILD
      _PurchaseReqnAcctAssgmt,
      @ObjectModel.association.type: #TO_COMPOSITION_CHILD
      _PurchaseReqnDeliveryAddress,
      @ObjectModel.association.type: #TO_COMPOSITION_CHILD
      _PurchaseReqnItemText,

      _AccAssgnmtCategory,
      _Currency,
      _Material,
      _MaterialGroup,
      _Plant,
      _PurchasingGroup,
      _PurchasingInfoRecord,
      _PurchasingOrganization,
      _StorageLocation,
      _Supplier,
      _SupplyingPlant,
      _UnitOfMeasure,
      // _TransientFields,   commented as part of performance remodelling

      _User,
      _CompanyCode

}
where
      Document.IsDeleted             = ''
  and Document.ExtPlantForPurg       = '' // Do not show central PR in the professional fiori app

  and Document.ExtCompanyCodeForPurg = '' // Do not show central PR in the professional fiori app

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CUSTOMER",
"I_PLANT",
"I_PURCHASEREQUISITIONITEM",
"I_SUPPLIER",
"I_USER"
],
"ASSOCIATED":
[
"I_ACCASSGNMTCATEGORY",
"I_COMPANYCODE",
"I_CURRENCY",
"I_CUSTOMER",
"I_MATERIAL",
"I_MATERIALGROUP",
"I_PLANT",
"I_PURCHASEREQN",
"I_PURCHASEREQNACCTASSGMT",
"I_PURCHASEREQNDELIVERYADDRESS",
"I_PURCHASEREQNITEMTEXT",
"I_PURCHASINGGROUP",
"I_PURCHASINGINFORECORD",
"I_PURCHASINGORGANIZATION",
"I_STORAGELOCATION",
"I_STORAGELOCATIONADDRESS",
"I_SUPPLIER",
"I_UNITOFMEASURE",
"I_USER"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/