P_PurReqnProcFlowInvc

DDL: P_PURREQNPROCFLOWINVC SQL: PPURREQNPFINV Type: view COMPOSITE Package: ODATA_MM_PUR_REQ_COMMON

Fetch Invoice in Pur Reqn Process flow

P_PurReqnProcFlowInvc is a Composite CDS View that provides data about "Fetch Invoice in Pur Reqn Process flow" in SAP S/4HANA. It reads from 2 data sources (P_PurchasingDocHistory, I_PurgDocScheduleLine) and exposes 10 fields with key fields ReferenceDocumentendasPrecedingDocument, SubsequentDocument, SubsequentDocumentItem. Part of development package ODATA_MM_PUR_REQ_COMMON.

Data Sources (2)

SourceAliasJoin Type
P_PurchasingDocHistory _purgDocHist inner
I_PurgDocScheduleLine _schedgLine from

Annotations (6)

NameValueLevelField
VDM.private true view
VDM.viewType #COMPOSITE view
AbapCatalog.sqlViewName PPURREQNPFINV view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (10)

KeyFieldSource TableSource FieldDescription
KEY ReferenceDocumentendasPrecedingDocument
KEY SubsequentDocument P_PurchasingDocHistory MaterialDocument
KEY SubsequentDocumentItem
SubsequentDocumentCategory P_PurchasingDocHistory PurchaseOrderTransactionType
FiscalYear _SupInvc FiscalYear
CompanyCode _SupInvc CompanyCode
PurchaseRequisition I_PurgDocScheduleLine PurchaseRequisition
PurchaseRequisitionItem I_PurgDocScheduleLine PurchaseRequisitionItem
ReferenceDocument P_PurchasingDocHistory ReferenceDocument
ReferenceDocumentItem P_PurchasingDocHistory ReferenceDocumentItem
@VDM.private: true
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'PPURREQNPFINV'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@ClientHandling.algorithm: #SESSION_VARIABLE
//@AccessControl.privilegedAssociations:  [ '_refDocumet' ] 

define view P_PurReqnProcFlowInvc as 
select from 
//PO-->IV(In case GR Based IV is not enabled in PO) or GR-->IV(In case GR Based IV is enabled in PO)

//SES-->IV(In case lean services)


  I_PurgDocScheduleLine as _schedgLine
          inner join  P_PurchasingDocHistory  as _purgDocHist    
                              on  _purgDocHist.PurchasingDocument     = _schedgLine.PurchasingDocument
                              and _purgDocHist.PurchasingDocumentItem = _schedgLine.PurchasingDocumentItem 
                              
          association to I_PurchasingDocumentItem as _purgDocItem
                              on  _purgDocItem.PurchasingDocument     = _schedgLine.PurchasingDocument
                              and _purgDocItem.PurchasingDocumentItem = _schedgLine.PurchasingDocumentItem 
                              
          association to I_SupplierInvoice   as _SupInvc
                              on  _purgDocHist.MaterialDocument       = _SupInvc.SupplierInvoice
                              //and _purgDocHist.MaterialDocumentYear = _SupInvc.FiscalYear

          association[0..*] to P_PurchasingDocHistory as _refDocumet
                              on  _refDocumet.MaterialDocument         = _purgDocHist.ReferenceDocument
                              and _refDocumet.MaterialDocumentItem     = _purgDocHist.ReferenceDocumentItem
         
                                                                      
{
    
//---> Caculate Predecessor based on Reference Document of Invoice

//---> IF reference is initial, then PO is predecessor

//---> Else, GR is predecessor in case of material item

//--->       SES is predecessor in case of lean services item 

    
    key case _purgDocHist.ReferenceDocument 
          when ''
            then _purgDocHist.PurchasingDocument 
          else
             _purgDocHist.ReferenceDocument
          end                                         as   PrecedingDocument, 
    
    key case _purgDocHist.ReferenceDocument 
          when ''
            then _purgDocHist.PurchasingDocumentItem 
          else
                 cast( _purgDocHist.ReferenceDocumentItem as char5)
          end                                         as   PrecedingDocumentItem,    
    
     

    key _purgDocHist.MaterialDocument                as   SubsequentDocument,
    key cast(_purgDocHist.MaterialDocumentItem as char5) as   SubsequentDocumentItem,
    
    case _purgDocHist.ReferenceDocument 
      when ''
        then cast( 'F'  as ebstyp) 
      else
        cast( _refDocumet.PurchaseOrderTransactionType  as ebstyp)            
      end                                           as   PrecedingDocumentCategory,   
             
    
    _purgDocHist.PurchaseOrderTransactionType       as   SubsequentDocumentCategory,
    
    _SupInvc.FiscalYear,
    _SupInvc.CompanyCode,  
         
    //For Filtering

     _schedgLine.PurchaseRequisition       as PurchaseRequisition,
     _schedgLine.PurchaseRequisitionItem   as PurchaseRequisitionItem,
     
     _purgDocHist.ReferenceDocument,
     _purgDocHist.ReferenceDocumentItem
          
     //_refDocumet

    
} 
where ( _purgDocHist.PurchaseOrderTransactionType = '2' or _purgDocHist.PurchaseOrderTransactionType = 'P' )
and   _purgDocItem.PurchasingDocumentCategory = 'F'