C_RFQProcessFlow
RFQ Process Flow
C_RFQProcessFlow is a Consumption CDS View that provides data about "RFQ Process Flow" in SAP S/4HANA. It reads from 15 data sources and exposes 77 fields with key fields PrecedingDocument, PrecedingDocumentCategory, SubsequentDocument, SubsequentDocumentCategory, RequestForQuotation.
Data Sources (15)
| Source | Alias | Join Type |
|---|---|---|
| I_RequestForQuotation | I_RequestForQuotation | from |
| I_PurchaseContract | PC | inner |
| I_PurchaseOrder | PO | inner |
| I_Purchaserequisition | PR | inner |
| I_SupplierQuotation | Quotation | inner |
| I_SupplierQuotation | Quotation | inner |
| I_SupplierQuotation | Quotation | inner |
| I_SupplierQuotation | Quotation | inner |
| I_RequestForQuotation | RFQ | union_all |
| I_RequestForQuotation | RFQ | union_all |
| I_RequestForQuotation | RFQ | union_all |
| I_RequestForQuotation | RFQ | union_all |
| I_RequestForQuotation | RFQ | union_all |
| I_RFQExternalDocumentLink | SourcingRequest | inner |
| I_RFQExternalDocumentLink | SourcingRequest | inner |
Annotations (9)
| Name | Value | Level | Field |
|---|---|---|---|
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| EndUserText.label | RFQ Process Flow | view | |
| VDM.viewType | #CONSUMPTION | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #REQUIRED | view | |
| AbapCatalog.sqlViewName | CRFQPROCFLOW | view |
Fields (77)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | PrecedingDocument | |||
| KEY | PrecedingDocumentCategory | PurchasingDocumentCategory | ||
| KEY | SubsequentDocument | |||
| KEY | SubsequentDocumentCategory | |||
| KEY | RequestForQuotation | RequestForQuotation | ||
| PurchasingDocumentType | PurchasingDocumentType | |||
| CompanyCode | ||||
| FiscalYear | ||||
| PurchasingGroup | PurchasingGroup | |||
| PurchasingOrganization | PurchasingOrganization | |||
| IsEndOfPurposeBlocked | IsEndOfPurposeBlocked | |||
| PurchaseRequisitionasPrecedingDocument | ||||
| KEY | PrecedingDocumentCategory | |||
| KEY | SubsequentDocument | RFQItem | RequestForQuotation | |
| KEY | SubsequentDocumentCategory | |||
| KEY | RequestForQuotation | RFQItem | RequestForQuotation | |
| PurchasingDocumentType | ||||
| CompanyCode | ||||
| FiscalYear | ||||
| PurchasingGroup | ||||
| PurchasingOrganization | ||||
| IsEndOfPurposeBlocked | ||||
| RequestForQuotationasPrecedingDocument | ||||
| KEY | PrecedingDocumentCategory | I_RequestForQuotation | PurchasingDocumentCategory | |
| KEY | SubsequentDocument | I_SupplierQuotation | SupplierQuotation | |
| KEY | SubsequentDocumentCategory | I_SupplierQuotation | PurchasingDocumentCategory | |
| KEY | RequestForQuotation | I_RequestForQuotation | RequestForQuotation | |
| PurchasingDocumentType | I_RequestForQuotation | PurchasingDocumentType | ||
| CompanyCode | ||||
| FiscalYear | ||||
| PurchasingGroup | I_RequestForQuotation | PurchasingGroup | ||
| PurchasingOrganization | I_RequestForQuotation | PurchasingOrganization | ||
| IsEndOfPurposeBlocked | I_RequestForQuotation | IsEndOfPurposeBlocked | ||
| SupplierQuotationasPrecedingDocument | ||||
| KEY | PrecedingDocumentCategory | I_SupplierQuotation | PurchasingDocumentCategory | |
| KEY | SubsequentDocument | I_PurchaseOrder | PurchaseOrder | |
| KEY | SubsequentDocumentCategory | |||
| KEY | RequestForQuotation | I_RequestForQuotation | RequestForQuotation | |
| PurchasingDocumentType | I_RequestForQuotation | PurchasingDocumentType | ||
| CompanyCode | ||||
| FiscalYear | ||||
| PurchasingGroup | I_RequestForQuotation | PurchasingGroup | ||
| PurchasingOrganization | I_RequestForQuotation | PurchasingOrganization | ||
| IsEndOfPurposeBlocked | I_RequestForQuotation | IsEndOfPurposeBlocked | ||
| SupplierQuotationasPrecedingDocument | ||||
| KEY | PrecedingDocumentCategory | I_SupplierQuotation | PurchasingDocumentCategory | |
| KEY | SubsequentDocument | I_PurchaseContract | PurchaseContract | |
| KEY | SubsequentDocumentCategory | |||
| KEY | RequestForQuotation | I_RequestForQuotation | RequestForQuotation | |
| PurchasingDocumentType | I_RequestForQuotation | PurchasingDocumentType | ||
| CompanyCode | ||||
| FiscalYear | ||||
| PurchasingGroup | I_RequestForQuotation | PurchasingGroup | ||
| PurchasingOrganization | I_RequestForQuotation | PurchasingOrganization | ||
| IsEndOfPurposeBlocked | I_RequestForQuotation | IsEndOfPurposeBlocked | ||
| RequestForQuotationasPrecedingDocument | ||||
| KEY | PrecedingDocumentCategory | I_RequestForQuotation | PurchasingDocumentCategory | |
| KEY | SubsequentDocument | I_RFQExternalDocumentLink | ExternalPurchasingDocumentID | |
| KEY | SubsequentDocumentCategory | |||
| KEY | RequestForQuotation | I_RequestForQuotation | RequestForQuotation | |
| PurchasingDocumentType | I_RequestForQuotation | PurchasingDocumentType | ||
| CompanyCode | ||||
| FiscalYear | ||||
| PurchasingGroup | I_RequestForQuotation | PurchasingGroup | ||
| PurchasingOrganization | I_RequestForQuotation | PurchasingOrganization | ||
| IsEndOfPurposeBlocked | I_RequestForQuotation | IsEndOfPurposeBlocked | ||
| KEY | PrecedingDocumentCategory | |||
| KEY | SubsequentDocument | I_SupplierQuotation | SupplierQuotation | |
| KEY | SubsequentDocumentCategory | I_SupplierQuotation | PurchasingDocumentCategory | |
| KEY | RequestForQuotation | I_RequestForQuotation | RequestForQuotation | |
| PurchasingDocumentType | I_RequestForQuotation | PurchasingDocumentType | ||
| CompanyCode | ||||
| FiscalYear | ||||
| PurchasingGroup | I_RequestForQuotation | PurchasingGroup | ||
| PurchasingOrganization | I_RequestForQuotation | PurchasingOrganization | ||
| IsEndOfPurposeBlocked | I_RequestForQuotation | IsEndOfPurposeBlocked | ||
| PurchasingDocumentUniqueID |
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
usageType.dataClass: #MIXED,
usageType.serviceQuality: #C,
usageType.sizeCategory: #L
}
@EndUserText.label: 'RFQ Process Flow'
@VDM.viewType: #CONSUMPTION
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #REQUIRED
@AbapCatalog.sqlViewName: 'CRFQPROCFLOW'
define view C_RFQProcessFlow
as select from I_RequestForQuotation
{
//Key
key cast( RequestForQuotation as vdm_purchasingdocumentid ) as PrecedingDocument,
key PurchasingDocumentCategory as PrecedingDocumentCategory,
key cast(' ' as vdm_purchasingdocumentid) as SubsequentDocument,
key cast(' ' as bstyp) as SubsequentDocumentCategory,
key RequestForQuotation,
PurchasingDocumentType,
//no use case for us, is this necessary?
//AccountingDocument additional keys
cast('' as fis_bukrs) as CompanyCode,
cast('' as fis_gjahr) as FiscalYear,
PurchasingGroup,
PurchasingOrganization,
IsEndOfPurposeBlocked,
cast('' as purgdocnodeuniqueid) as PurchasingDocumentUniqueID
}
union all select distinct from I_RequestForQuotationItem as RFQItem
inner join I_Purchaserequisition as PR on PR.PurchaseRequisition = RFQItem.PurchaseRequisition
{
key PR.PurchaseRequisition as PrecedingDocument,
key cast('B' as bstyp) as PrecedingDocumentCategory,
key RFQItem.RequestForQuotation as SubsequentDocument,
key RFQItem._RequestForQuotation.PurchasingDocumentCategory as SubsequentDocumentCategory,
//Purchase Requisition
key RFQItem.RequestForQuotation,
RFQItem._RequestForQuotation.PurchasingDocumentType,
//no use case for us, is this necessary?
//AccountingDocument additional keys
cast('' as fis_bukrs) as CompanyCode,
cast('' as fis_gjahr) as FiscalYear,
RFQItem._RequestForQuotation.PurchasingGroup,
RFQItem._RequestForQuotation.PurchasingOrganization,
RFQItem._RequestForQuotation.IsEndOfPurposeBlocked,
cast('' as purgdocnodeuniqueid) as PurchasingDocumentUniqueID
}
union all select from I_RequestForQuotation as RFQ
inner join I_SupplierQuotation as Quotation on Quotation.RequestForQuotation = RFQ.RequestForQuotation
left outer to many join I_RFQExternalDocumentLink as SourcingRequest on SourcingRequest.PurchasingDocumentUniqueID = RFQ.RequestForQuotation
{
//Key
key RFQ.RequestForQuotation as PrecedingDocument,
key RFQ.PurchasingDocumentCategory as PrecedingDocumentCategory,
key Quotation.SupplierQuotation as SubsequentDocument,
key Quotation.PurchasingDocumentCategory as SubsequentDocumentCategory,
//Supplier Quotation
key RFQ.RequestForQuotation,
RFQ.PurchasingDocumentType,
//no use case for us, is this necessary?
//AccountingDocument additional keys
cast('' as fis_bukrs) as CompanyCode,
cast('' as fis_gjahr) as FiscalYear,
RFQ.PurchasingGroup,
RFQ.PurchasingOrganization,
RFQ.IsEndOfPurposeBlocked,
PurchasingDocumentUniqueID
} where PurchasingDocumentUniqueID is null
union all select from I_RequestForQuotation as RFQ
inner join I_SupplierQuotation as Quotation on Quotation.RequestForQuotation = RFQ.RequestForQuotation
inner join I_PurchaseOrder as PO on PO.SupplierQuotationExternalID = Quotation.SupplierQuotation
{
key Quotation.SupplierQuotation as PrecedingDocument,
key Quotation.PurchasingDocumentCategory as PrecedingDocumentCategory,
key PO.PurchaseOrder as SubsequentDocument,
key cast('F' as bstyp) as SubsequentDocumentCategory,
//Purchase Order
key RFQ.RequestForQuotation,
RFQ.PurchasingDocumentType,
//no use case for us, is this necessary?
//AccountingDocument additional keys
cast('' as fis_bukrs) as CompanyCode,
cast('' as fis_gjahr) as FiscalYear,
RFQ.PurchasingGroup,
RFQ.PurchasingOrganization,
RFQ.IsEndOfPurposeBlocked,
cast('' as purgdocnodeuniqueid) as PurchasingDocumentUniqueID
}
union all select from I_RequestForQuotation as RFQ
inner join I_SupplierQuotation as Quotation on Quotation.RequestForQuotation = RFQ.RequestForQuotation
inner join I_PurchaseContract as PC on PC.SupplierQuotation = Quotation.SupplierQuotation
{
key Quotation.SupplierQuotation as PrecedingDocument,
key Quotation.PurchasingDocumentCategory as PrecedingDocumentCategory,
key PC.PurchaseContract as SubsequentDocument,
key cast('K' as bstyp) as SubsequentDocumentCategory,
//Purhcase Contract
key RFQ.RequestForQuotation,
RFQ.PurchasingDocumentType,
//no use case for us, is this necessary?
//AccountingDocument additional keys
cast('' as fis_bukrs) as CompanyCode,
cast('' as fis_gjahr) as FiscalYear,
RFQ.PurchasingGroup,
RFQ.PurchasingOrganization,
RFQ.IsEndOfPurposeBlocked,
cast('' as purgdocnodeuniqueid) as PurchasingDocumentUniqueID
}
union all select from I_RequestForQuotation as RFQ
inner join I_RFQExternalDocumentLink as SourcingRequest on SourcingRequest.PurchasingDocumentUniqueID = RFQ.RequestForQuotation
{
key RFQ.RequestForQuotation as PrecedingDocument,
key RFQ.PurchasingDocumentCategory as PrecedingDocumentCategory,
key SourcingRequest.ExternalPurchasingDocumentID as SubsequentDocument,
key cast('Z' as bstyp) as SubsequentDocumentCategory,
//Purchase Contract
key RFQ.RequestForQuotation,
RFQ.PurchasingDocumentType,
//no use case for us, is this necessary?
//AccountingDocument additional keys
cast('' as fis_bukrs) as CompanyCode,
cast('' as fis_gjahr) as FiscalYear,
RFQ.PurchasingGroup,
RFQ.PurchasingOrganization,
RFQ.IsEndOfPurposeBlocked,
cast('' as purgdocnodeuniqueid) as PurchasingDocumentUniqueID
}
union all select from I_RequestForQuotation as RFQ
inner join I_RFQExternalDocumentLink as SourcingRequest on SourcingRequest.PurchasingDocumentUniqueID = RFQ.RequestForQuotation
inner join I_SupplierQuotation as Quotation on Quotation.RequestForQuotation = SourcingRequest.PurchasingDocumentUniqueID
{
key SourcingRequest.ExternalPurchasingDocumentID as PrecedingDocument,
key cast('Z' as bstyp) as PrecedingDocumentCategory,
key Quotation.SupplierQuotation as SubsequentDocument,
key Quotation.PurchasingDocumentCategory as SubsequentDocumentCategory,
//Supplier Quotation
key RFQ.RequestForQuotation,
RFQ.PurchasingDocumentType,
//no use case for us, is this necessary?
//AccountingDocument additional keys
cast('' as fis_bukrs) as CompanyCode,
cast('' as fis_gjahr) as FiscalYear,
RFQ.PurchasingGroup,
RFQ.PurchasingOrganization,
RFQ.IsEndOfPurposeBlocked,
cast('' as purgdocnodeuniqueid) as PurchasingDocumentUniqueID
} where ExternalPurchasingDocumentID not like 'NO_SR_ID%'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PURCHASECONTRACT",
"I_PURCHASEORDER",
"I_PURCHASEREQUISITION",
"I_REQUESTFORQUOTATION",
"I_REQUESTFORQUOTATIONITEM",
"I_RFQEXTERNALDOCUMENTLINK",
"I_SUPPLIERQUOTATION"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA