C_BusSolnOrdListRptAndObjPg
Projection: Solution Order
C_BusSolnOrdListRptAndObjPg is a Consumption CDS View that provides data about "Projection: Solution Order" in SAP S/4HANA. It reads from 1 data source (R_BusinessSolutionOrderTP) and exposes 77 fields with key field BusinessSolutionOrder. It has 6 associations to related views. It is exposed through 1 OData service (C_BUSSOLUTIONORDER_SRV). Part of development package CRMS4_SOLUTIONORDER_FIORI_UI.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| R_BusinessSolutionOrderTP | R_BusinessSolutionOrderTP | projection |
Associations (6)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..*] | C_BusSolnOrdItemHierNode | _BusSolnOrdItemHierarchy | $projection.BusinessSolutionOrder = _BusSolnOrdItemHierarchy.BusinessSolutionOrder |
| [0..1] | C_SrvcMgmtSoldToPartyQuickVw | _SrvcMgmtSoldToPartyQuickVw | $projection.SoldToParty = _SrvcMgmtSoldToPartyQuickVw.BusinessPartner |
| [0..1] | C_SrvcMgmtRespEmplQuickVw | _SrvcMgmtRespEmplQuickVw | $projection.RespEmployeeBusinessPartnerId = _SrvcMgmtRespEmplQuickVw.BusinessPartner |
| [0..1] | C_SrvcMgmtCntctPersnQuickVw | _SrvcMgmtCntctPersnQuickVw | $projection.ContactPersonBusinessPartnerId = _SrvcMgmtCntctPersnQuickVw.BusinessPartner and $projection.SoldToParty = _SrvcMgmtCntctPersnQuickVw.SoldToParty |
| [0..*] | C_SrvcDocUserStatus | _SrvcDocUserStatus | $projection.BusinessSolutionOrderUUID = _SrvcDocUserStatus.StatusObjectUUID |
| [0..1] | I_CustMgmtLifecycleUserStsText | _CustMgmtLifecycleUserStsText | $projection.BusSolnOrdStatus = _CustMgmtLifecycleUserStsText.CustMgmtLifecycleUserStatus and _CustMgmtLifecycleUserStsText.Language = $session.system_language |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| AccessControl.authorizationCheck | #CHECK | view | |
| ObjectModel.representativeKey | BusinessSolutionOrder | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view | |
| Metadata.allowExtensions | true | view | |
| VDM.viewType | #CONSUMPTION | view | |
| Search.searchable | true | view | |
| EndUserText.label | Projection: Solution Order | view | |
| Consumption.semanticObject | BusinessSolutionOrder | view |
OData Services (1)
| Service | Binding | Version | Contract | Release |
|---|---|---|---|---|
| C_BUSSOLUTIONORDER_SRV | C_BUSSOLUTIONORDER | V2 | C1 | NOT_RELEASED |
Fields (77)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | BusinessSolutionOrder | BusinessSolutionOrder | ||
| ServiceObjectType | ServiceObjectType | |||
| BusinessSolutionOrderUUID | BusinessSolutionOrderUUID | |||
| ServiceDocumentCharUUID | ServiceDocumentCharUUID | |||
| BusSolnOrdDescription | BusSolnOrdDescription | |||
| BusSolnOrdType | BusSolnOrdType | |||
| ServiceDocumentPriority | _ServiceDocumentEnhcd | ServiceDocumentPriority | ||
| RespEmployeeBusinessPartnerId | RespEmployeeBusinessPartnerId | |||
| RespEmployeeAtPartnerName | _RespEmployee | BusinessPartnerFullName | ||
| SoldToParty | SoldToParty | |||
| SoldToPartyName | _SoldToParty | BusinessPartnerFullName | ||
| FirstName | _SoldToParty | FirstName | ||
| LastName | _SoldToParty | LastName | ||
| OrganizationBPName1 | _SoldToParty | OrganizationBPName1 | ||
| OrganizationBPName2 | _SoldToParty | OrganizationBPName2 | ||
| ContactPersonBusinessPartnerId | ContactPersonBusinessPartnerId | |||
| CompanyContactPersonFullName | _ContactPerson | BusinessPartnerFullName | ||
| TransactionCurrency | TransactionCurrency | |||
| BusSolnOrdNetAmount | ServiceDocNetAmount | |||
| BusSolnOrdGrossAmount | _ServiceDocumentEnhcd | ServiceDocGrossAmount | ||
| BusSolnOrdStatus | BusSolnOrdStatus | |||
| ServiceDocumentStatusName | ServiceDocumentStatusName | |||
| BusSolnOrdHasError | BusSolnOrdHasError | |||
| SalesOrganizationNamelocalized | ||||
| SalesOfficeNamelocalized | ||||
| SalesGroupNamelocalized | ||||
| DistributionChannelNamelocalized | ||||
| DivisionNamelocalized | ||||
| CreationDate | _ServiceDocumentEnhcd | ServiceDocumentCreationDate | ||
| PostingDate | PostingDate | |||
| LastChangedDate | _ServiceDocumentEnhcd | ServiceDocumentChangedDate | ||
| ServiceDocumentCreatedByUser | ServiceDocumentCreatedByUser | |||
| CreatedByUser | _ServiceDocCreatedBy | BusinessPartnerFullName | ||
| ServiceDocumentChangedByUser | ServiceDocumentChangedByUser | |||
| LastChangedByUser | _ServiceDocChangedBy | BusinessPartnerFullName | ||
| SalesOrganization | SalesOrganization | |||
| SalesOffice | SalesOffice | |||
| SalesGroup | SalesGroup | |||
| DistributionChannel | DistributionChannel | |||
| Division | Division | |||
| SalesOfficeOrgUnitID | SalesOfficeOrgUnitID | |||
| SalesOrganizationOrgUnitID | SalesOrganizationOrgUnitID | |||
| SalesGroupOrgUnitID | SalesGroupOrgUnitID | |||
| ServiceOrganization | ServiceOrganization | |||
| SystemStatus | _SolutionOrderStatus | SrvcMgmtObjectStatus | ||
| StatusProfile | _ServiceDocumentType | StatusProfile | ||
| PurchaseOrderByCustomer | PurchaseOrderByCustomer | |||
| virtualProductcrmt_ordered_prod_db | ||||
| virtualSrvcDocSituationStatusboolean | ||||
| virtualSituationTextval_text | ||||
| _BusSolnOrdItemHierarchy | _BusSolnOrdItemHierarchy | |||
| _SrvcDocBPSoldToParty | _SrvcDocBPSoldToParty | |||
| _SrvcDocBPContactCard | _SrvcDocBPContactCard | |||
| _SrvcDocBPRespEmployee | _SrvcDocBPRespEmployee | |||
| _ServiceDocumentStatus | _ServiceDocumentStatus | |||
| _SrvcDocLifecycleStatus | _SrvcDocLifecycleStatus | |||
| _ServiceDocCreatedBy | _ServiceDocCreatedBy | |||
| _ServiceDocChangedBy | _ServiceDocChangedBy | |||
| _SoldToParty | _SoldToParty | |||
| _ServiceDocHasError | _ServiceDocHasError | |||
| _RespEmployee | _RespEmployee | |||
| _ContactPerson | _ContactPerson | |||
| _SalesOfficeOrgUnit_2 | _SalesOfficeOrgUnit_2 | |||
| _SalesOrganizationOrgUnit_2 | _SalesOrganizationOrgUnit_2 | |||
| _SalesGroupOrgUnit_2 | _SalesGroupOrgUnit_2 | |||
| _ServiceOrganizationOrgUnit_2 | _ServiceOrganizationOrgUnit_2 | |||
| _SrvcMgmtSoldToPartyQuickVw | _SrvcMgmtSoldToPartyQuickVw | |||
| _SrvcMgmtRespEmplQuickVw | _SrvcMgmtRespEmplQuickVw | |||
| _SrvcMgmtCntctPersnQuickVw | _SrvcMgmtCntctPersnQuickVw | |||
| _SolutionOrderStatus | _SolutionOrderStatus | |||
| _SrvcDocUserStatus | _SrvcDocUserStatus | |||
| _CustMgmtLifecycleUserStsText | _CustMgmtLifecycleUserStsText | |||
| _SalesOrganizationText | _SalesOrganizationText | |||
| _SalesOfficeText | _SalesOfficeText | |||
| _SalesGroupText | _SalesGroupText | |||
| _DistributionChannelText | _DistributionChannelText | |||
| _DivisionText | _DivisionText |
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #('TRANSACTIONAL_DATA'),
privilegedAssociations: ['_SrvcDocUserStatus']
}
@ObjectModel: {
representativeKey: 'BusinessSolutionOrder',
semanticKey: ['BusinessSolutionOrder'],
usageType: {
dataClass: #TRANSACTIONAL,
serviceQuality: #C,
sizeCategory: #XXL
}
}
@Metadata.allowExtensions: true
@VDM: {
viewType: #CONSUMPTION,
usage.type: [ #TRANSACTIONAL_PROCESSING_SERVICE ]
}
@Search.searchable: true
@EndUserText.label: 'Projection: Solution Order'
@Consumption.semanticObject: 'BusinessSolutionOrder'
define root view entity C_BusSolnOrdListRptAndObjPg
as projection on R_BusinessSolutionOrderTP as ServiceDocumentTP
association [0..*] to C_BusSolnOrdItemHierNode as _BusSolnOrdItemHierarchy on $projection.BusinessSolutionOrder = _BusSolnOrdItemHierarchy.BusinessSolutionOrder
association [0..1] to C_SrvcMgmtSoldToPartyQuickVw as _SrvcMgmtSoldToPartyQuickVw on $projection.SoldToParty = _SrvcMgmtSoldToPartyQuickVw.BusinessPartner
association [0..1] to C_SrvcMgmtRespEmplQuickVw as _SrvcMgmtRespEmplQuickVw on $projection.RespEmployeeBusinessPartnerId = _SrvcMgmtRespEmplQuickVw.BusinessPartner
association [0..1] to C_SrvcMgmtCntctPersnQuickVw as _SrvcMgmtCntctPersnQuickVw on $projection.ContactPersonBusinessPartnerId = _SrvcMgmtCntctPersnQuickVw.BusinessPartner
and $projection.SoldToParty = _SrvcMgmtCntctPersnQuickVw.SoldToParty
association [0..*] to C_SrvcDocUserStatus as _SrvcDocUserStatus on $projection.BusinessSolutionOrderUUID = _SrvcDocUserStatus.StatusObjectUUID
//Added to calculate LifeCycleStatus Virtual Element
association [0..1] to I_CustMgmtLifecycleUserStsText as _CustMgmtLifecycleUserStsText on $projection.BusSolnOrdStatus = _CustMgmtLifecycleUserStsText.CustMgmtLifecycleUserStatus
and _CustMgmtLifecycleUserStsText.Language = $session.system_language
{
@Search.fuzzinessThreshold: 1.0
@Search.ranking:#HIGH
key BusinessSolutionOrder,
ServiceObjectType,
BusinessSolutionOrderUUID,
@Semantics.uuid: true
ServiceDocumentCharUUID,
@Search.fuzzinessThreshold: 0.8
@Search.ranking:#HIGH
BusSolnOrdDescription,
BusSolnOrdType,
@Consumption.filter.hidden: true
_ServiceDocumentEnhcd.ServiceDocumentPriority,
// Partners
@ObjectModel.foreignKey.association: '_SrvcMgmtRespEmplQuickVw'
@ObjectModel.text.element: [ 'RespEmployeeAtPartnerName' ]
@Consumption.semanticObject: 'ContactCardSemanticObjectID'
RespEmployeeBusinessPartnerId,
@Consumption.filter.hidden: true
@Semantics.text: true
_RespEmployee.BusinessPartnerFullName as RespEmployeeAtPartnerName,
@ObjectModel.foreignKey.association: '_SrvcMgmtSoldToPartyQuickVw'
@Search.fuzzinessThreshold: 0.9
@Search.ranking:#MEDIUM
@ObjectModel.text.element: [ 'SoldToPartyName' ]
@Consumption.semanticObject: 'Customer'
SoldToParty,
@Consumption.filter.hidden: true
@Semantics.text: true
_SoldToParty.BusinessPartnerFullName as SoldToPartyName,
@Search: {
defaultSearchElement: true,
ranking: #HIGH,
fuzzinessThreshold: 0.8 }
_SoldToParty.FirstName as FirstName,
@Search: {
defaultSearchElement: true,
ranking: #HIGH,
fuzzinessThreshold: 0.8 }
_SoldToParty.LastName as LastName,
@Search: {
defaultSearchElement: true,
ranking: #HIGH,
fuzzinessThreshold: 0.8 }
_SoldToParty.OrganizationBPName1 as OrganizationBPName1,
@Search: {
defaultSearchElement: true,
ranking: #HIGH,
fuzzinessThreshold: 0.8 }
_SoldToParty.OrganizationBPName2 as OrganizationBPName2,
@ObjectModel.foreignKey.association: '_SrvcMgmtCntctPersnQuickVw'
@ObjectModel.text.element: [ 'CompanyContactPersonFullName' ]
@Consumption.semanticObject: 'ContactCardSemanticObjectID'
ContactPersonBusinessPartnerId, // ContactPerson,
@Consumption.filter.hidden: true
@Semantics.text: true
_ContactPerson.BusinessPartnerFullName as CompanyContactPersonFullName,
// Amounts relevant to Solution Orders
@Consumption.filter.hidden: true
TransactionCurrency,
@Consumption.filter.hidden: true
@Semantics: { amount : { currencyCode: 'TransactionCurrency' } }
ServiceDocNetAmount as BusSolnOrdNetAmount,
@Consumption.filter.hidden: true
@Semantics: { amount : { currencyCode: 'TransactionCurrency' } }
_ServiceDocumentEnhcd.ServiceDocGrossAmount as BusSolnOrdGrossAmount,
@ObjectModel.text.element: ['ServiceDocumentStatusName']
@Semantics.text: true
BusSolnOrdStatus,
ServiceDocumentStatusName,
@ObjectModel.text.element: ['ServiceDocumentHasErrorName']
BusSolnOrdHasError,
@Semantics.text: true
_ServiceDocHasError._ServiceDocHasErrorText.ServiceDocumentHasErrorName as ServiceDocumentHasErrorName : localized,
@Semantics.text:true
_SalesOrganizationText.SalesOrganizationName : localized,
@Semantics.text:true
_SalesOfficeText.SalesOfficeName : localized,
@Semantics.text:true
_SalesGroupText.SalesGroupName : localized,
@Semantics.text:true
_DistributionChannelText.DistributionChannelName : localized,
@Semantics.text:true
_DivisionText.DivisionName : localized,
// Admin fields for Solution Orders
@Semantics.businessDate.at: true
_ServiceDocumentEnhcd.ServiceDocumentCreationDate as CreationDate,
PostingDate,
@Consumption.filter.hidden: true
_ServiceDocumentEnhcd.ServiceDocumentChangedDate as LastChangedDate,
@Consumption.filter.hidden: true
@ObjectModel.foreignKey.association:'_ServiceDocCreatedBy'
@ObjectModel.text.element: [ 'CreatedByUser' ]
ServiceDocumentCreatedByUser,
_ServiceDocCreatedBy.BusinessPartnerFullName as CreatedByUser,
@Consumption.filter.hidden: true
@ObjectModel.foreignKey.association:'_ServiceDocChangedBy'
@ObjectModel.text.element: [ 'LastChangedByUser' ]
ServiceDocumentChangedByUser,
_ServiceDocChangedBy.BusinessPartnerFullName as LastChangedByUser,
// Sales Organization related fields required for authorization
//Text Association has been added for UX 3.0
@ObjectModel.text.element: [ 'SalesOrganizationName' ]
SalesOrganization,
@ObjectModel.text.element: [ 'SalesOfficeName' ]
SalesOffice,
@ObjectModel.text.element: ['SalesGroupName']
SalesGroup,
@ObjectModel.text.element: ['DistributionChannelName']
DistributionChannel,
@ObjectModel.text.element: ['DivisionName']
Division,
@ObjectModel.foreignKey.association: '_SalesOfficeOrgUnit_2'
SalesOfficeOrgUnitID,
@ObjectModel.foreignKey.association: '_SalesOrganizationOrgUnit_2'
SalesOrganizationOrgUnitID,
@ObjectModel.foreignKey.association: '_SalesGroupOrgUnit_2'
SalesGroupOrgUnitID,
@ObjectModel.foreignKey.association: '_ServiceOrganizationOrgUnit_2'
ServiceOrganization,
_SolutionOrderStatus.SrvcMgmtObjectStatus as SystemStatus,
_ServiceDocumentType.StatusProfile,
PurchaseOrderByCustomer,
// Virtual elements
@ObjectModel.filter.transformedBy: 'ABAP:CL_CRMS4_SOLNORDER_FILTER_EXIT'
virtual Product : crmt_ordered_prod_db,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLNORDER_CALC_EXIT'
virtual SitnNmbrOfInstceInHierarchy : sit_de_inst_count,
@ObjectModel: {
virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLNORDER_CALC_EXIT',
filter.transformedBy: 'ABAP:CL_CRMS4_SOLNORDER_FILTER_EXIT'
}
virtual SrvcDocSituationStatusText : val_text,
@ObjectModel: {
virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLNORDER_CALC_EXIT',
filter.transformedBy: 'ABAP:CL_CRMS4_SOLNORDER_FILTER_EXIT'
}
@ObjectModel.text.element: ['SrvcDocSituationStatusText']
virtual SrvcDocSituationStatus : boolean,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLNORDER_CALC_EXIT'
virtual SitnNumberOfInstances : sit_de_inst_count,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLNORDER_CALC_EXIT'
virtual SitnRowCriticalityCode : sit_de_row_criticality,
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLNORDER_CALC_EXIT'
virtual SituationText : val_text,
@ObjectModel: {
virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLNORDER_CALC_EXIT',
filter.transformedBy: 'ABAP:CL_CRMS4_SOLNORDER_FILTER_EXIT'
}
virtual BusSolnOrdErrorStsCriticality : sit_de_row_criticality,
_BusinessSolutionOrderItemTP : redirected to composition child C_BusSolnOrdItmListRptAndObjPg,
@ObjectModel.filter.enabled: false
_BusSolnOrdItemHierarchy,
@Consumption.filter.hidden: true
@Search.defaultSearchElement: false
_SrvcDocBPSoldToParty,
@Consumption.filter.hidden: true
@Search.defaultSearchElement: false
_SrvcDocBPContactCard,
@Consumption.filter.hidden: true
@Search.defaultSearchElement: false
_SrvcDocBPRespEmployee,
@Consumption.filter.hidden: true
@API.element.releaseState: #DEPRECATED
@API.element.successor: '_SrvcDocLifecycleStatus'
_ServiceDocumentStatus,
_SrvcDocLifecycleStatus,
@Consumption.filter.hidden: true
_ServiceDocCreatedBy,
@Consumption.filter.hidden: true
_ServiceDocChangedBy,
@Consumption.filter.hidden: true
_SoldToParty,
@Consumption.filter.hidden: true
_ServiceDocHasError,
@Consumption.filter.hidden: true
_RespEmployee,
@Consumption.filter.hidden: true
_ContactPerson,
@Consumption.filter.hidden: true
_SalesOfficeOrgUnit_2,
@Consumption.filter.hidden: true
_SalesOrganizationOrgUnit_2,
@Consumption.filter.hidden: true
_SalesGroupOrgUnit_2,
@Consumption.filter.hidden: true
_ServiceOrganizationOrgUnit_2,
@Consumption.filter.hidden: true
_SrvcMgmtSoldToPartyQuickVw,
@Consumption.filter.hidden: true
_SrvcMgmtRespEmplQuickVw,
@Consumption.filter.hidden: true
_SrvcMgmtCntctPersnQuickVw,
@Consumption.filter.hidden: true
_SolutionOrderStatus,
@Consumption.filter.hidden: true
_SrvcDocUserStatus,
@Consumption.filter.hidden: true
_CustMgmtLifecycleUserStsText,
//UX 3.0 Added
@Consumption.filter.hidden: true
_SalesOrganizationText,
@Consumption.filter.hidden: true
_SalesOfficeText,
@Consumption.filter.hidden: true
_SalesGroupText,
@Consumption.filter.hidden: true
_DistributionChannelText,
@Consumption.filter.hidden: true
_DivisionText
}
where
ServiceObjectType = 'BUS2000172'
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