P_PurchaseContractStatus

DDL: P_PURCHASECONTRACTSTATUS SQL: PMMPURCONTRSTS Type: view CONSUMPTION

Contract Status

P_PurchaseContractStatus is a Consumption CDS View that provides data about "Contract Status" in SAP S/4HANA. It reads from 2 data sources (I_PurchaseContract, I_PurchaseContractItem) and exposes 10 fields with key fields PurchaseContract, PurchaseContractItem.

Data Sources (2)

SourceAliasJoin Type
I_PurchaseContract Contract from
I_PurchaseContractItem ContractItem inner

Parameters (1)

NameTypeDefault
P_Date sydatum

Annotations (6)

NameValueLevelField
AbapCatalog.sqlViewName PMMPURCONTRSTS view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
VDM.private true view
VDM.viewType #CONSUMPTION view
EndUserText.label Contract Status view

Fields (10)

KeyFieldSource TableSource FieldDescription
KEY PurchaseContract I_PurchaseContractItem PurchaseContract
KEY PurchaseContractItem I_PurchaseContractItem PurchaseContractItem
ValidityEndDate I_PurchaseContract ValidityEndDate
ValidityStartDate I_PurchaseContract ValidityStartDate
Numerator
Denominator
PurchaseContractType I_PurchaseContract PurchaseContractType
PurchasingOrganization I_PurchaseContract PurchasingOrganization
PurchasingGroup I_PurchaseContract PurchasingGroup
Plant I_PurchaseContractItem Plant
@AbapCatalog.sqlViewName: 'PMMPURCONTRSTS'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@VDM.private: true
@VDM.viewType: #CONSUMPTION
@EndUserText.label: 'Contract Status'

define view P_PurchaseContractStatus
  with parameters
    P_Date : sydatum
  as select from I_PurchaseContract     as Contract

    inner join   I_PurchaseContractItem as ContractItem on Contract.PurchaseContract = ContractItem.PurchaseContract

{
  key ContractItem.PurchaseContract,
  key ContractItem.PurchaseContractItem,

      Contract.ValidityEndDate,
      Contract.ValidityStartDate,
      
      //Useful to debug, do not delete this

      dats_days_between($parameters.P_Date, ValidityStartDate) as Numerator,
      dats_days_between(ValidityEndDate, ValidityStartDate) as Denominator,
      
      //1 as PurchaseContractValidityStatus,

    
      case when (ValidityEndDate != ValidityStartDate)
            then division(dats_days_between($parameters.P_Date, ValidityStartDate),
                          dats_days_between(ValidityEndDate, ValidityStartDate), 3)
           else 1
      end as PurchaseContractValidityStatus,
      
      Contract.PurchaseContractType,
      Contract.PurchasingOrganization,
      Contract.PurchasingGroup,
      ContractItem.Plant     

}
where
      ContractItem.PurchasingContractDeletionCode = ''
  and Contract.PurchasingDocumentDeletionCode     = ' '
  and ValidityEndDate <> '00000000'
  and  ValidityEndDate >= ValidityStartDate
  and(
    (
      Contract.Supplier                                                       =  ' '
    )
    or(
      Contract._Supplier.IsBusinessPurposeCompleted <> 'X'
    )
    )
// filter out statistical Items (excluding Retail i.e Material = '')  

     and not( ContractItem.Material = '' and ContractItem.IsStatisticalItem = 'X' )
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PURCHASECONTRACT",
"I_PURCHASECONTRACTITEM",
"I_SUPPLIER"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/