C_BusSolnOrdListRptAndObjPg

DDL: C_BUSSOLNORDLISTRPTANDOBJPG Type: view_entity CONSUMPTION Package: CRMS4_SOLUTIONORDER_FIORI_UI

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)

SourceAliasJoin Type
R_BusinessSolutionOrderTP R_BusinessSolutionOrderTP projection

Associations (6)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

ServiceBindingVersionContractRelease
C_BUSSOLUTIONORDER_SRV C_BUSSOLUTIONORDER V2 C1 NOT_RELEASED

Fields (77)

KeyFieldSource TableSource FieldDescription
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'