C_RequirementTrackingPurCtr

DDL: C_REQUIREMENTTRACKINGPURCTR SQL: CREQTRACKCTR Type: view CONSUMPTION Package: ODATA_MM_PUR_REQUIREMENT_TRACK

Purchase Contracts by Requirement Tracking

C_RequirementTrackingPurCtr is a Consumption CDS View that provides data about "Purchase Contracts by Requirement Tracking" in SAP S/4HANA. It reads from 1 data source (I_PurchaseContractItem) and exposes 51 fields with key fields PurchaseContract, PurchaseContractItem. It has 14 associations to related views. Part of development package ODATA_MM_PUR_REQUIREMENT_TRACK.

Data Sources (1)

SourceAliasJoin Type
I_PurchaseContractItem I_PurchaseContractItem from

Associations (14)

CardinalityTargetAliasCondition
[0..1] I_PurchasingDocumentItem _PurchasingDocumentItem $projection.PurchaseContract = _PurchasingDocumentItem.PurchasingDocument and $projection.PurchaseContractItem = _PurchasingDocumentItem.PurchasingDocumentItem
[0..1] P_OpenTargetQuantity _ReleasedQuantity $projection.PurchaseContract = _ReleasedQuantity.PurchaseContract and $projection.PurchaseContractItem = _ReleasedQuantity.PurchaseContractItem
[1..1] C_ContractStatusValueHelp _ContractStatusVH $projection.PurchaseContract = _ContractStatusVH.PurchaseContract and $projection.PurchaseContractItem = _ContractStatusVH.PurchaseContractItem
[0..1] P_PurchaseContractReleaseCode _PurchaseContractReleaseCode $projection.PurchaseContract = _PurchaseContractReleaseCode.PurchaseContract
[0..1] I_AccountAssignmentCategory _AccountAssignmentCategory $projection.AccountAssignmentCategory = _AccountAssignmentCategory.AccountAssignmentCategory
[0..1] P_PurchaseContractHistory _PurchaseContractHistory $projection.PurchaseContract = _PurchaseContractHistory.PurchaseContract and $projection.PurchaseContractItem = _PurchaseContractHistory.PurchaseContractItem
[0..1] I_CompanyCode _CompanyCode $projection.companycode = _CompanyCode.CompanyCode
[1..1] I_ProcmtBlockedSupplierTxt _ProcmtBlockedSupplierTxt _ProcmtBlockedSupplierTxt.PurchasingIsBlockedForSupplier = 'X' and _ProcmtBlockedSupplierTxt.Language = $session.system_language
[0..1] I_PurgDocumentItemCategoryText _PurgDocumentItemCategoryText $projection.PurchasingDocumentItemCategory = _PurgDocumentItemCategoryText.PurchasingDocumentItemCategory and _PurgDocumentItemCategoryText.Language = $session.system_language
[1..1] I_Supplier _Supplier $projection.supplier = _Supplier.Supplier
[1..1] I_PurchasingOrganization _PurchasingOrganization $projection.purchasingorganization = _PurchasingOrganization.PurchasingOrganization
[1..1] I_PurchasingGroup _PurchasingGroup $projection.purchasinggroup = _PurchasingGroup.PurchasingGroup
[1..1] I_PurchasingDocumentType _PurchasingDocumentType $projection.purchasingdocumentcategory = _PurchasingDocumentType.PurchasingDocumentCategory and $projection.PurchasingDocumentType = _PurchasingDocumentType.PurchasingDocumentType
[1..1] I_PurchasingDocumentCategory _PurchasingDocumentCategory $projection.purchasingdocumentcategory = _PurchasingDocumentCategory.PurchasingDocumentCategory

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName CREQTRACKCTR view
AbapCatalog.compiler.compareFilter true view
VDM.viewType #CONSUMPTION view
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Purchase Contracts by Requirement Tracking view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
Search.searchable true view
VDM.lifecycle.contract.type #NONE view

Fields (51)

KeyFieldSource TableSource FieldDescription
KEY PurchaseContract PurchaseContract
KEY PurchaseContractItem PurchaseContractItem Item
FormattedPurchaseContractItem Purchase Contract Item
Material I_PurchaseContractItem Material
MaterialGroup I_PurchaseContractItem MaterialGroup
TargetQuantity I_PurchaseContractItem TargetQuantity
OrderQuantityUnit OrderQuantityUnit
ContractNetPriceAmount ContractNetPriceAmount
NetPriceQuantity NetPriceQuantity
OrderPriceUnit OrderPriceUnit
TargetAmount TargetAmount Total Value
DocumentCurrency I_PurchaseContractItem DocumentCurrency Document Currency
ReleaseOrderDate
Supplier
AccountAssignmentCategory AccountAssignmentCategory Account Assignment Category
CompanyCode
PurchasingOrganization Purchasing Organization
PurchasingGroup
Plant I_PurchaseContractItem Plant
StorageLocation I_PurchaseContractItem StorageLocation
TaxCode TaxCode
PurchaseContractTargetAmount Target Value
quan133endasOpenTargetQuantity Open Target Quantity
PurchaseContractValidityStatus Validity Status
PurContrValidityStatusName _ContractStatusVH PurContrValidityStatusName
ReleaseCodeName
CreatedByUser
UserDescription Created By
CreationDate
PurchasingInfoRecord _PurchasingDocumentItem PurchasingInfoRecord Purchasing Info Record
PurchasingDocumentType Purchasing Document Type
PurchasingDocumentCategory Purchasing Document Category
PurgDocExternalItemCategory _PurgDocumentItemCategoryText PurgDocExternalItemCategory Item Category
PurgDocItemCategoryName _PurgDocumentItemCategoryText PurgDocItemCategoryName
PurchasingDocumentItemCategory PurchasingDocumentItemCategory
PurchasingCategory PurchasingCategory
PurgCatName PurgCatName
PurchasingText PurchaseContractItemText
RequirementTracking RequirementTracking Requirement Tracking Number
_ContractStatusVH _ContractStatusVH
_Material _Material
_MaterialGroup _MaterialGroup
_Plant _Plant
_StorageLocation _StorageLocation
_AccountAssignmentCategory _AccountAssignmentCategory
_CompanyCode _CompanyCode
_Supplier _Supplier
_PurchasingOrganization _PurchasingOrganization
_PurchasingGroup _PurchasingGroup
_PurchasingDocumentType _PurchasingDocumentType
_PurchasingDocumentCategory _PurchasingDocumentCategory
@AbapCatalog.sqlViewName: 'CREQTRACKCTR'
@AbapCatalog.compiler.compareFilter: true
@VDM.viewType: #CONSUMPTION
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Purchase Contracts by Requirement Tracking'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.semanticKey: [ 'Material', 'Supplier', 'ValidityEndDate' ]
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
//@AccessControl.privilegedAssociations:  [ '_ReleasedQuantity', '_ContractAmount', '_PurchaseContractReleaseCode' ]

@Search.searchable: true
@VDM.lifecycle.contract.type:#NONE

define view C_RequirementTrackingPurCtr
  as select from I_PurchaseContractItem

  association [0..1] to I_PurchasingDocumentItem       as _PurchasingDocumentItem       on  $projection.PurchaseContract     = _PurchasingDocumentItem.PurchasingDocument
                                                                                        and $projection.PurchaseContractItem = _PurchasingDocumentItem.PurchasingDocumentItem

  // association [0..1] to C_ContrLatestReleaseValueHelp as _ContrLatestReleaseVH      on  $projection.PurchaseContract     = _ContrLatestReleaseVH.PurchaseContract

  //                                                                                  and  $projection.PurchaseContractItem = _ContrLatestReleaseVH.PurchaseContractItem



  // association [0..1] to P_CONTRACTAMOUNT              as _ContractAmount            on  $projection.PurchaseContract     = _ContractAmount.PurchaseContract

  //                                                                                  and  $projection.PurchaseContractItem = _ContractAmount.PurchaseContractItem

  //

  association [0..1] to P_OpenTargetQuantity           as _ReleasedQuantity             on  $projection.PurchaseContract     = _ReleasedQuantity.PurchaseContract
                                                                                        and $projection.PurchaseContractItem = _ReleasedQuantity.PurchaseContractItem

  association [1..1] to C_ContractStatusValueHelp      as _ContractStatusVH             on  $projection.PurchaseContract     = _ContractStatusVH.PurchaseContract
                                                                                        and $projection.PurchaseContractItem = _ContractStatusVH.PurchaseContractItem



  //  association [1..1] to P_PurContractValidity          as _PurContractValidity          on  $projection.PurchaseContract     = _PurContractValidity.PurchaseContract

  //                                                                                        and $projection.PurchaseContractItem = _PurContractValidity.PurchaseContractItem



  association [0..1] to P_PurchaseContractReleaseCode  as _PurchaseContractReleaseCode  on  $projection.PurchaseContract = _PurchaseContractReleaseCode.PurchaseContract


  // association [1..1] to I_ProcurementDomainValues   as _DomainText                  on _DomainText.Name        = 'VDM_BLOCKED_SUPPLIER'

  //                                                                                    and _DomainText.Language    = $session.system_language

  //                                                                                    and _DomainText.DomainValue = 'X'


  // association [1..1] to I_ProcmtBlockedSupplier       as _ProcmtBlockedSupplier       on _ProcmtBlockedSupplier.PurchasingIsBlockedForSupplier = 'X' //$projection.PurchasingIsBlocked



  //PFCDS clean up newly added associations

  association [0..1] to I_AccountAssignmentCategory    as _AccountAssignmentCategory    on  $projection.AccountAssignmentCategory = _AccountAssignmentCategory.AccountAssignmentCategory

  association [0..1] to P_PurchaseContractHistory      as _PurchaseContractHistory      on  $projection.PurchaseContract     = _PurchaseContractHistory.PurchaseContract
                                                                                        and $projection.PurchaseContractItem = _PurchaseContractHistory.PurchaseContractItem
  association [0..1] to I_CompanyCode                  as _CompanyCode                  on  $projection.companycode = _CompanyCode.CompanyCode

  association [1..1] to I_ProcmtBlockedSupplierTxt     as _ProcmtBlockedSupplierTxt     on  _ProcmtBlockedSupplierTxt.PurchasingIsBlockedForSupplier = 'X'
                                                                                        and _ProcmtBlockedSupplierTxt.Language                       = $session.system_language //$projection.PurchasingIsBlocked

  association [0..1] to I_PurgDocumentItemCategoryText as _PurgDocumentItemCategoryText on  $projection.PurchasingDocumentItemCategory = _PurgDocumentItemCategoryText.PurchasingDocumentItemCategory
                                                                                        and _PurgDocumentItemCategoryText.Language     = $session.system_language
  association [1..1] to I_Supplier                     as _Supplier                     on  $projection.supplier = _Supplier.Supplier

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

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

  association [1..1] to I_PurchasingDocumentType       as _PurchasingDocumentType       on  $projection.purchasingdocumentcategory = _PurchasingDocumentType.PurchasingDocumentCategory
                                                                                        and $projection.PurchasingDocumentType     = _PurchasingDocumentType.PurchasingDocumentType
  association [1..1] to I_PurchasingDocumentCategory   as _PurchasingDocumentCategory   on  $projection.purchasingdocumentcategory = _PurchasingDocumentCategory.PurchasingDocumentCategory


  //association[1..1] to I_UserContactCard as _UserContactCard on _UserContactCard.ContactCardID = $projection.createdbyuser

{
      @Consumption.semanticObject: 'PurchaseContract'
      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
  key PurchaseContract,

      @EndUserText.label: 'Item'
      @Consumption.semanticObject: 'PurchaseContractItem'
  key PurchaseContractItem,

      @EndUserText.label: 'Purchase Contract Item'
      @UI.lineItem.position: 10
      concat(PurchaseContract, concat('/', PurchaseContractItem))                                     as FormattedPurchaseContractItem,

      @UI.lineItem.position: 20
      @Consumption.semanticObject: 'Material'
      // @ObjectModel: { text.element:  [ 'MaterialName' ] }

      @ObjectModel.foreignKey.association: '_Material'
      I_PurchaseContractItem.Material,
      //    @UI.hidden: true

      //    @EndUserText: {

      //        label: 'Material Description'

      //    }

      //    _Material._Text[1: Language = $session.system_language].MaterialName,

      //      @Consumption.semanticObject: 'MaterialGroup'

      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
      @UI.lineItem.position: 40
      // @ObjectModel: { text.element:  [ 'MaterialGroupName' ] }

      @ObjectModel.foreignKey.association: '_MaterialGroup'
      I_PurchaseContractItem.MaterialGroup,
      //    @UI.hidden: true

      //    @EndUserText: {

      //        label: 'Material Group Description'

      //    }

      //    cast(I_PurchaseContractItem._MaterialGroup._Text[1: Language = $session.system_language].MaterialGroupName as wgbez) as MaterialGroupName,


      @UI.lineItem.position: 50
      @Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
      I_PurchaseContractItem.TargetQuantity,
      @UI.hidden: true
      OrderQuantityUnit,

      @UI.lineItem.position: 60
      @Semantics.amount.currencyCode: 'DocumentCurrency'
      ContractNetPriceAmount,

      @Semantics.quantity.unitOfMeasure: 'OrderPriceUnit'
      @UI.lineItem.position: 70
      NetPriceQuantity,
      @UI.hidden
      OrderPriceUnit,

      @EndUserText.label: 'Total Value'
      @UI.lineItem.position: 80
      @Semantics.amount.currencyCode: 'DocumentCurrency'
      TargetAmount,

      @UI.hidden: true
      @EndUserText.label: 'Document Currency'
      I_PurchaseContractItem.DocumentCurrency,

      @UI.lineItem.position: 90
      // cast(_ContrLatestReleaseVH.ReleaseOrderDate as vdm_latestreleasedate)  as ReleaseOrderDate,

      cast(_PurchaseContractHistory.ReleaseOrderDate as vdm_latestreleasedate)                        as ReleaseOrderDate,

      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
      @UI.lineItem.position: 100
      @Consumption.semanticObject: 'Supplier'
      @ObjectModel.foreignKey.association: '_Supplier'
      // @ObjectModel: { text.element:  [ 'SupplierName' ] }

      I_PurchaseContractItem._PurchaseContract.Supplier,
      //    @UI.hidden: true

      //    @EndUserText: {

      //        label: 'Supplier Name'

      //    }

      //    I_PurchaseContractItem._PurchaseContract._Supplier.SupplierName,


      @UI.lineItem.position: 110
      case
             when I_PurchaseContractItem._PurchaseContract.ValidityEndDate <> '' then cast(  I_PurchaseContractItem._PurchaseContract.ValidityEndDate as bdatu )
             else
             cast( '00000000' as bdatu )   end                                                        as ValidityEndDate,

      @EndUserText.label: 'Account Assignment Category'
      @ObjectModel.foreignKey.association: '_AccountAssignmentCategory'
      // @ObjectModel.text.element:  [ 'AcctAssignmentCategoryName' ]

      AccountAssignmentCategory,
      //    @UI.hidden: true

      //    @EndUserText: {

      //        label: 'Account Assignment Category Description'

      //    }

      //    _PurchasingDocumentItem._AccountAssignmentCategory._Text [1: Language = $session.system_language ].AcctAssignmentCategoryName,


      //  @ObjectModel.text.element:  [ 'CompanyCodeName' ]

      //      @Consumption.semanticObject: 'CompanyCode'

      @ObjectModel.foreignKey.association: '_CompanyCode'
      I_PurchaseContractItem._PurchaseContract.CompanyCode,
      //    @UI.hidden: true

      //    @EndUserText: {

      //        label: 'Company Name'

      //    }

      //    _PurchaseContract._CompanyCode.CompanyCodeName,

      //      @Consumption.semanticObject: 'PurchasingOrganization'

      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
      //  @ObjectModel.text.element:  [ 'PurchasingOrganizationName' ]

      @EndUserText.label: 'Purchasing Organization'
      @ObjectModel.foreignKey.association: '_PurchasingOrganization'
      I_PurchaseContractItem._PurchaseContract.PurchasingOrganization,
      //    @UI.hidden: true

      //     @EndUserText: {

      //        label: 'Purchasing Organization Name'

      //    }

      //    I_PurchaseContractItem._PurchaseContract._PurchasingOrganization.PurchasingOrganizationName,

      //

      //      @Consumption.semanticObject: 'PurchasingGroup'

      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
      // @ObjectModel.text.element:  [ 'PurchasingGroupName' ]

      @ObjectModel.foreignKey.association: '_PurchasingGroup'
      I_PurchaseContractItem._PurchaseContract.PurchasingGroup,
      //    @UI.hidden: true

      //    @EndUserText: {

      //        label: 'Purchasing Group Name'

      //    }

      //    I_PurchaseContractItem._PurchaseContract._PurchasingGroup.PurchasingGroupName,

      //

      //      @Consumption.semanticObject: 'Plant'

      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
      //  @ObjectModel.text.element:  [ 'PlantName' ]

      @ObjectModel.foreignKey.association: '_Plant'
      I_PurchaseContractItem.Plant,
      //    @UI.hidden: true

      //    @EndUserText: {

      //        label: 'Plant Name'

      //    }

      //    _Plant.PlantName,


      //   @ObjectModel.text.element:  [ 'StorageLocationName' ]

      //      @Consumption.semanticObject: 'StorageLocation'

      @ObjectModel.foreignKey.association: '_StorageLocation'
      I_PurchaseContractItem.StorageLocation,
      //    @UI.hidden: true

      //    @EndUserText: {

      //        label: 'Storage Location Name'

      //    }

      //    _StorageLocation.StorageLocationName,


      TaxCode,

      @EndUserText.label: 'Target Value'
      @Semantics.amount.currencyCode: 'DocumentCurrency'
      cast(I_PurchaseContractItem._PurchaseContract.PurchaseContractTargetAmount as abap.curr(18, 2)) as PurchaseContractTargetAmount,

      // _ContractAmount.PurchaseContractTargetAmount,


      @EndUserText.label: 'Open Target Quantity'
      @Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
      case when _ReleasedQuantity.QuantityReleasedTillDate > TargetQuantity
            then cast ('0' as abap.quan(13,3))
           when _ReleasedQuantity.QuantityReleasedTillDate is null
            then TargetQuantity
           else
            cast (TargetQuantity - _ReleasedQuantity.QuantityReleasedTillDate as abap.quan(13,3))
       end                                                                                            as OpenTargetQuantity,


      @UI.hidden: true
      case
        when  _ContractStatusVH.PurchaseContractValidityStatus = '01'
        then 1
        else 0
        end                                                                                           as DueDateCriticality,
      //

      @UI.lineItem.position: 30
      @EndUserText.label: 'Validity Status'
      @ObjectModel.text.element:  [ 'PurContrValidityStatusName' ]
      @UI.lineItem.criticality: 'DueDateCriticality'
      @UI.lineItem.criticalityRepresentation: #WITHOUT_ICON
      @UI.lineItem: [{cssDefault.width: '10rem'}]
      cast( _ContractStatusVH.PurchaseContractValidityStatus as mm_contract_status_id )               as PurchaseContractValidityStatus,
      @UI.hidden: true
      _ContractStatusVH.PurContrValidityStatusName,

      // cast (_PurchaseContract._ReleaseCode._ReleaseCodeText.ReleaseCodeName as vdm_releasecode)  as ReleaseCodeName,

      cast (_PurchaseContractReleaseCode.ReleaseCodeName as vdm_releasecode)                          as ReleaseCodeName,

      @ObjectModel.text.element:  [ 'UserDescription' ]
      // @ObjectModel.foreignKey.association: '_UserContactCard'

      @UI.hidden: true
      I_PurchaseContractItem._PurchaseContract.CreatedByUser,
      @EndUserText.label: 'Created By'
      @Semantics.text: true
      I_PurchaseContractItem. _PurchaseContract._CreatedByUser.UserDescription,


      I_PurchaseContractItem._PurchaseContract.CreationDate,

      @EndUserText.label: 'Valid From'
      case
              when I_PurchaseContractItem._PurchaseContract.ValidityStartDate <> '' then cast( I_PurchaseContractItem._PurchaseContract.ValidityStartDate as adatu )
              else
              cast( '00000000' as adatu )   end                                                       as ValidityStartDate,

      @EndUserText.label: 'Purchasing Info Record'
      @Consumption.semanticObject: 'PurchasingInfoRecord'
      _PurchasingDocumentItem.PurchasingInfoRecord,
      //

      @EndUserText.label: 'Purchasing Document Type'
      @ObjectModel.foreignKey.association: '_PurchasingDocumentType'
      // @ObjectModel.text.element:  [ 'PurchasingDocumentTypeName' ]

      I_PurchaseContractItem._PurchaseContract.PurchaseContractType                                   as PurchasingDocumentType,

      @EndUserText.label: 'Purchasing Document Category'
      @ObjectModel.foreignKey.association: '_PurchasingDocumentCategory'
      I_PurchaseContractItem._PurchaseContract.PurchasingDocumentCategory,

      //    @UI.hidden: true

      //    @EndUserText: {

      //        label: 'Document Type Description'

      //    }

      //    I_PurchaseContractItem._PurchaseContract._PurchasingDocumentType._Text[1: Language = $session.system_language].PurchasingDocumentTypeName,

      //

      @EndUserText.label: 'Item Category'
      @ObjectModel: { text.element:  [ 'PurgDocItemCategoryName' ] }
      _PurgDocumentItemCategoryText.PurgDocExternalItemCategory,
      //_PurchasingDocumentItem._PurgDocumentItemCategory._Text[1: Language = $session.system_language ].PurgDocExternalItemCategory,


      @UI.hidden: true
      @Semantics.text: true
      @EndUserText: {
          label: 'Item Category Text'
      }
      _PurgDocumentItemCategoryText.PurgDocItemCategoryName,
      //  _PurchasingDocumentItem._PurgDocumentItemCategory._Text[1: Language = $session.system_language ].PurgDocItemCategoryName,

      @UI.hidden: true
      PurchasingDocumentItemCategory,

      @ObjectModel.text.element:  [ 'PurgCatName' ]
      PurchasingCategory,
      @UI.hidden: true
      @EndUserText: {
          label: 'Purchasing Category Name'
      }
      PurgCatName,

      PurchaseContractItemText                                                                        as PurchasingText,

      @EndUserText.label: 'Requirement Tracking Number'
      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 1 }
      RequirementTracking,

      @EndUserText.label: 'Supplier Block Status'
      cast(case when
       I_PurchaseContractItem._PurchaseContract._Supplier.PurchasingIsBlocked = 'X'
       then
       _ProcmtBlockedSupplierTxt.SupplierName //DomainText

       else
       ' '
       end  as vdm_purblockforsupplier)                                                               as PurchasingIsBlockedForSupplier,
      //released value

      //invoice value

      //Is Supplier Blocked or Supplier Block Status <Need to be reviewed by KM>

      //Item Count <Need to be reviewed by KM>


      // _ContrLatestReleaseVH,

      _ContractStatusVH,

      //text associations exposed and the name fields are removed

      _Material,
      _MaterialGroup,
      _Plant,
      _StorageLocation,
      @Consumption.filter.hidden: true
      _AccountAssignmentCategory,
      _CompanyCode,
      _Supplier,
      _PurchasingOrganization,
      _PurchasingGroup,
      _PurchasingDocumentType,
      _PurchasingDocumentCategory
      // _UserContactCard

      //  _PurchasingDocumentItem,

      //    _ProcmtBlockedSupplier


}
where
      PurchasingContractDeletionCode                                                =  ' '
  and I_PurchaseContractItem._PurchaseContract.PurchasingDocumentDeletionCode       =  ' '
  and(
    (
      I_PurchaseContractItem._PurchaseContract.Supplier                             =  ' '
    )
    or(
      //_PurchasingDocumentItem._PurchasingDocument._Supplier.IsBusinessPurposeCompleted <> 'X'

      I_PurchaseContractItem._PurchaseContract._Supplier.IsBusinessPurposeCompleted <> 'X'
    )
  )