C_MassChangeSalesQuotation

DDL: C_MASSCHANGESALESQUOTATION Type: view CONSUMPTION

Mass Change of Sales Quotation

C_MassChangeSalesQuotation is a Consumption CDS View that provides data about "Mass Change of Sales Quotation" in SAP S/4HANA. It reads from 1 data source (I_SalesDocument) and exposes 153 fields with key field SalesQuotation. It has 10 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_SalesDocument _SalesQuotation from

Associations (10)

CardinalityTargetAliasCondition
[0..1] I_SDDocStandardPartner _StandardPartner $projection.SalesQuotation = _StandardPartner.SDDocument
[0..*] I_SlsDocNonStdPartner _NonStdPartner $projection.SalesQuotation = _NonStdPartner.SDDocument
[1..*] I_SDDocumentPartner _SDDocumentPartner $projection.SalesQuotation = _SDDocumentPartner.SDDocument
[0..*] I_SalesDocumentItem _SalesQuotationItem $projection.SalesQuotation = _SalesQuotationItem.SalesDocument
[0..*] C_SalesDocumentItemWl _SalesDocumentItem $projection.SalesQuotation = _SalesDocumentItem.SalesDocument
[0..*] C_MassChgSalesDocumentItemWl _MassChgSalesDocumentItemWL $projection.SalesQuotation = _MassChgSalesDocumentItemWL.SalesDocument
[0..1] E_SalesDocumentBasic _Extension $projection.SalesQuotation = _Extension.SalesDocument
[0..1] C_SalesDocumentUserVH _CreatedByUser $projection.CreatedByUser = _CreatedByUser.UserID
[0..1] C_SalesDocPaymentMethodVH _PaymentMethod $projection.PaymentMethod = _PaymentMethod.PaymentMethod and $projection.BillingCompanyCode = _PaymentMethod.BillingCompanyCode
[0..*] I_CostCenterText _CostCenterText $projection.CostCenter = _CostCenterText.CostCenter and $projection.ControllingArea = _CostCenterText.ControllingArea and _CostCenterText.ValidityEndDate >= $session.system_date and _CostCenterText.Language = $session.system_language

Annotations (19)

NameValueLevelField
AbapCatalog.sqlViewName CSDMCSLSQTAN view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
ClientHandling.algorithm #SESSION_VARIABLE view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
ObjectModel.compositionRoot true view
ObjectModel.representativeKey SalesQuotation view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
VDM.viewType #CONSUMPTION view
OData.entitySet.name SlsQtn view
Analytics.internalName #LOCAL view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view
Search.searchable true view
EndUserText.label Mass Change of Sales Quotation view
Consumption.semanticObject SalesQuotation view

Fields (153)

KeyFieldSource TableSource FieldDescription
KEY SalesQuotation
SalesQuotationType
SDDocumentCategory SDDocumentCategory
SDDocumentReason SDDocumentReason
CreationDate CreationDate
CreatedByUser CreatedByUser
SalesOrganization SalesOrganization
DistributionChannel DistributionChannel
OrganizationDivision
SalesGroup SalesGroup
SalesOffice SalesOffice
SalesDistrict SalesDistrict
ShippingCondition ShippingCondition
SlsOrdShippingType ShippingType
HeaderIncotermsClassification
IncotermsVersion IncotermsVersion
IncotermsLocation1 IncotermsLocation1
IncotermsLocation2 IncotermsLocation2
SoldToParty SoldToParty
OrganizationBPName1 _SoldToParty OrganizationBPName1
OrganizationBPName2 _SoldToParty OrganizationBPName2
ShipToParty _StandardPartner ShipToParty
PayerParty _StandardPartner PayerParty
BillToParty _StandardPartner BillToParty
ResponsibleEmployee _StandardPartner ResponsibleEmployee
SalesEmployee _StandardPartner SalesEmployee
ShipToPartyName
SoldToPartyName
BillToPartyName
PayerPartyName
ResponsibleEmployeeName
SalesEmployeeName
OverallSDProcessStatus OverallSDProcessStatus
SalesDocApprovalStatus SalesDocApprovalStatus
OverallSDDocumentRejectionSts
TotalBlockStatus TotalBlockStatus
HdrGeneralIncompletionStatus
HeaderBillgIncompletionStatus
OverallPricingIncompletionSts
OverallTrdCmplncEmbargoSts
OvrlTrdCmplncSnctndListChkSts
OvrlTrdCmplncLegalCtrlChkSts
OverallChmlCmplncStatus OverallChmlCmplncStatus
OverallDangerousGoodsStatus
ContractDownPaymentStatus
TotalNetAmount TotalNetAmount
TransactionCurrency TransactionCurrency
BusinessArea BusinessArea
CostCenter CostCenter
CostCenterDescription _CostCenterText CostCenterDescription
ControllingArea ControllingArea
BillingCompanyCode BillingCompanyCode
CustomerPurchaseOrderDate CustomerPurchaseOrderDate
PurchaseOrderByCustomer PurchaseOrderByCustomer
BindingPeriodValidityStartDate BindingPeriodValidityStartDate
BindingPeriodValidityEndDate BindingPeriodValidityEndDate
SalesQuotationDate SalesDocumentDate
CreditControlArea CreditControlArea
CustomerGroup CustomerGroup
AdditionalCustomerGroup1 AdditionalCustomerGroup1
AdditionalCustomerGroup2 AdditionalCustomerGroup2
AdditionalCustomerGroup3 AdditionalCustomerGroup3
AdditionalCustomerGroup4 AdditionalCustomerGroup4
AdditionalCustomerGroup5 AdditionalCustomerGroup5
SalesQuotationApprovalReason
CustomerPaymentTerms
PaymentMethod PaymentMethod
AdditionalPartnerName
PartnerFunction
Customer
Supplier
Personnel
ContactPerson
Product
SalesQuotationItemCategory
Division
SDProcessStatus
OrderRelatedBillingStatus
SDDocumentRejectionStatus
ItemGeneralIncompletionStatus
ItemBillingIncompletionStatus
PricingIncompletionStatus
ItemDeliveryIncompletionStatus
SDDocReferenceStatus
TotalSDDocReferenceStatus
TrdCmplncEmbargoSts
TrdCmplncSnctndListChkSts
ChmlCmplncStatus
DangerousGoodsStatus
ContractItemDownPaymentStatus
SalesDocumentRjcnReason
IncotermsClassification
PaymentTerms
ItemBillingBlockReason
SlsDocMassChangeRequestUUID
ProfitCenter
SlsDocMassChgEntityLevel
SalesDocumentType I_SalesDocument SalesDocumentType
_StandardPartner _StandardPartner
_NonStdPartner _NonStdPartner
_SalesQuotationItem _SalesQuotationItem
_SDDocumentReason _SDDocumentReason
_SalesOrganization _SalesOrganization
_DistributionChannel _DistributionChannel
_OrganizationDivision _OrganizationDivision
_SalesGroup _SalesGroup
_SalesOffice _SalesOffice
_SalesDistrict _SalesDistrict
_ShippingType _ShippingType
_ShippingCondition _ShippingCondition
_IncotermsClassification _IncotermsClassification
_IncotermsVersion _IncotermsVersion
_SoldToParty _SoldToParty
_ShipToParty _StandardPartner _ShipToParty
_PayerParty _StandardPartner _PayerParty
_BillToParty _StandardPartner _BillToParty
_ResponsibleEmployee _StandardPartner _ResponsibleEmployee
_SalesEmployee _StandardPartner _SalesEmployee
_OverallSDProcessStatus _OverallSDProcessStatus
_SalesDocApprovalStatus _SalesDocApprovalStatus
_OverallSDDocumentRejectionSts _OverallSDDocumentRejectionSts
_TotalBlockStatus _TotalBlockStatus
_HdrGeneralIncompletionStatus _HdrGeneralIncompletionStatus
_HeaderBillgIncompletionStatus _HeaderBillgIncompletionStatus
_OverallPricingIncompletionSts _OverallPricingIncompletionSts
_OvrlTradeCmplncEmbargoStatus _OvrlTradeCmplncEmbargoStatus
_OvTrdCmplncSnctndListChkSts _OvTrdCmplncSnctndListChkSts
_OvrlTrdCmplncLegalCtrlChkSts _OvrlTrdCmplncLegalCtrlChkSts
_OverallChmlCmplncStatus _OverallChmlCmplncStatus
_OverallDangerousGoodsStatus _OverallDangerousGoodsStatus
_DownPaymentStatus _DownPaymentStatus
_BusinessArea _BusinessArea
_CostCenterText _CostCenterText
_ControllingArea _ControllingArea
_BillingCompanyCode _BillingCompanyCode
_CreditControlArea _CreditControlArea
_CustomerGroup _CustomerGroup
_AdditionalCustomerGroup1 _AdditionalCustomerGroup1
_AdditionalCustomerGroup2 _AdditionalCustomerGroup2
_AdditionalCustomerGroup3 _AdditionalCustomerGroup3
_AdditionalCustomerGroup4 _AdditionalCustomerGroup4
_AdditionalCustomerGroup5 _AdditionalCustomerGroup5
_CustomerPaymentTerms _CustomerPaymentTerms
_TransactionCurrency _TransactionCurrency
_SalesDocumentType _SalesDocumentType
_SalesDocumentItem _SalesDocumentItem
_MassChgSalesDocumentItemWL _MassChgSalesDocumentItemWL
_SDDocumentPartner _SDDocumentPartner
_PaymentMethod _PaymentMethod
_CreatedByUser _CreatedByUser
_SalesDocApprovalReason _SalesDocApprovalReason
_SDDocumentCategory _SDDocumentCategory
_CostCenter _CostCenter
@AbapCatalog: {
  sqlViewName: 'CSDMCSLSQTAN',
  compiler.compareFilter: true,
  preserveKey: true
}

@ClientHandling.algorithm: #SESSION_VARIABLE

@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #REQUIRED
}

@ObjectModel: {
  compositionRoot:   true,
  representativeKey: 'SalesQuotation',
  usageType: {
    dataClass:      #TRANSACTIONAL,
    serviceQuality: #C,
    sizeCategory:   #L
  }
}

@VDM.viewType: #CONSUMPTION

@OData.entitySet.name: 'SlsQtn'

@Analytics.internalName: #LOCAL

@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations:true

@Search.searchable: true

@EndUserText.label: 'Mass Change of Sales Quotation'

@Consumption.semanticObject: 'SalesQuotation'
define view C_MassChangeSalesQuotation
  as select from I_SalesDocument as _SalesQuotation

  association [0..1] to I_SDDocStandardPartner       as _StandardPartner            on $projection.SalesQuotation = _StandardPartner.SDDocument

  association [0..*] to I_SlsDocNonStdPartner        as _NonStdPartner              on $projection.SalesQuotation = _NonStdPartner.SDDocument
  
  association [1..*] to I_SDDocumentPartner    as _SDDocumentPartner        on $projection.SalesQuotation = _SDDocumentPartner.SDDocument

  association [0..*] to I_SalesDocumentItem          as _SalesQuotationItem         on $projection.SalesQuotation = _SalesQuotationItem.SalesDocument

  association [0..*] to C_SalesDocumentItemWl        as _SalesDocumentItem          on $projection.SalesQuotation = _SalesDocumentItem.SalesDocument

  association [0..*] to C_MassChgSalesDocumentItemWl as _MassChgSalesDocumentItemWL on $projection.SalesQuotation = _MassChgSalesDocumentItemWL.SalesDocument


  association [0..1] to E_SalesDocumentBasic         as _Extension                  on $projection.SalesQuotation = _Extension.SalesDocument
  association [0..1] to C_SalesDocumentUserVH        as _CreatedByUser              on  $projection.CreatedByUser = _CreatedByUser.UserID

  association [0..1] to C_SalesDocPaymentMethodVH    as _PaymentMethod              on  $projection.PaymentMethod      = _PaymentMethod.PaymentMethod
                                                                                    and $projection.BillingCompanyCode = _PaymentMethod.BillingCompanyCode

  association [0..*] to I_CostCenterText             as _CostCenterText             on  $projection.CostCenter          = _CostCenterText.CostCenter
                                                                                    and $projection.ControllingArea     = _CostCenterText.ControllingArea
                                                                                    and _CostCenterText.ValidityEndDate >= $session.system_date
                                                                                    and _CostCenterText.Language        = $session.system_language

{
  @Consumption.semanticObject: 'SalesQuotation'
  key cast(SalesDocument as sales_quotation preserving type)                                as SalesQuotation,

      @ObjectModel.foreignKey.association: '_SalesDocumentType'
      cast( SalesDocumentType as sales_quotation_type preserving type )                     as SalesQuotationType,
      
      @Consumption.filter.hidden: true
      @ObjectModel.foreignKey.association: '_SDDocumentCategory'
      SDDocumentCategory,

      @ObjectModel.foreignKey.association: '_SDDocumentReason'
      SDDocumentReason,

      @Semantics.systemDate.createdAt: true
      CreationDate,

     @ObjectModel.foreignKey.association: '_CreatedByUser'
       CreatedByUser,


      // Organization


      @ObjectModel.foreignKey.association: '_SalesOrganization'
      SalesOrganization,

      @ObjectModel.foreignKey.association: '_DistributionChannel'
      DistributionChannel,

      @ObjectModel.foreignKey.association: '_OrganizationDivision'
      cast(OrganizationDivision as organization_division preserving type )                  as OrganizationDivision,

      @ObjectModel.foreignKey.association: '_SalesGroup'
      SalesGroup,

      @ObjectModel.foreignKey.association: '_SalesOffice'
      SalesOffice,

      @ObjectModel.foreignKey.association: '_SalesDistrict'
      SalesDistrict,


      //Shipping

      @ObjectModel.foreignKey.association: '_ShippingCondition'
      ShippingCondition,

      @ObjectModel.foreignKey.association: '_ShippingType'
      ShippingType                                                                          as SlsOrdShippingType,


      // Terms and Conditions

      @ObjectModel.foreignKey.association: '_IncotermsClassification'
      cast( IncotermsClassification as vdm_header_incoterm1 preserving type )               as HeaderIncotermsClassification,

      @Consumption.filter.hidden: true
      @ObjectModel.foreignKey.association: '_IncotermsVersion'
      IncotermsVersion,

      @Consumption.filter.hidden: true
      IncotermsLocation1,

      @Consumption.filter.hidden: true
      IncotermsLocation2,


      /********** Partners  **********/
      @ObjectModel: {foreignKey.association: '_SoldToParty',text.element: ['SoldToPartyName']}
      SoldToParty,

      _SoldToParty.OrganizationBPName1,
      _SoldToParty.OrganizationBPName2,

      @ObjectModel: {foreignKey.association: '_ShipToParty',text.element: ['ShipToPartyName']}
      _StandardPartner.ShipToParty,

      @ObjectModel: {foreignKey.association: '_PayerParty',text.element: ['PayerPartyName']}
      _StandardPartner.PayerParty,

      @ObjectModel: {foreignKey.association: '_BillToParty',text.element: ['BillToPartyName']}
      _StandardPartner.BillToParty,

      @ObjectModel: {foreignKey.association: '_ResponsibleEmployee',text.element: ['ResponsibleEmployeeName']}
      _StandardPartner.ResponsibleEmployee,

      @ObjectModel: {foreignKey.association: '_SalesEmployee',text.element: ['SalesEmployeeName']}
      _StandardPartner.SalesEmployee,

      @Semantics.text:true
      @Consumption.filter.hidden: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_SD_SLSQTAN_UI_PARTNER_UTIL'
      cast('' as ad_namtext )                                                               as ShipToPartyName,

      @Semantics.text:true
      @Consumption.filter.hidden: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_SD_SLSQTAN_UI_PARTNER_UTIL'
      cast('' as ad_namtext )                                                               as SoldToPartyName,

      @Semantics.text:true
      @Consumption.filter.hidden: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_SD_SLSQTAN_UI_PARTNER_UTIL'
      cast('' as ad_namtext )                                                               as BillToPartyName,

      @Semantics.text:true
      @Consumption.filter.hidden: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_SD_SLSQTAN_UI_PARTNER_UTIL'
      cast('' as ad_namtext )                                                               as PayerPartyName,

      @Semantics.text:true
      @Consumption.filter.hidden: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_SD_SLSQTAN_UI_PARTNER_UTIL'
      cast('' as ad_namtext )                                                               as ResponsibleEmployeeName,

      @Semantics.text:true
      @Consumption.filter.hidden: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_SD_SLSQTAN_UI_PARTNER_UTIL'
      cast('' as ad_namtext )                                                               as SalesEmployeeName,

      // Status

      @ObjectModel.foreignKey.association: '_OverallSDProcessStatus'
      OverallSDProcessStatus,

      @ObjectModel.foreignKey.association: '_SalesDocApprovalStatus'
      SalesDocApprovalStatus,

      @ObjectModel.foreignKey.association: '_OverallSDDocumentRejectionSts'
      cast(OverallSDDocumentRejectionSts as ovrl_sd_doc_rejection_status preserving type )  as OverallSDDocumentRejectionSts,

      @ObjectModel.foreignKey.association: '_TotalBlockStatus'
      TotalBlockStatus,

      @ObjectModel.foreignKey.association: '_HdrGeneralIncompletionStatus'
      cast(HdrGeneralIncompletionStatus as hdr_general_incompltn_status preserving type )   as HdrGeneralIncompletionStatus,

      @UI.textArrangement: #TEXT_ONLY
      @ObjectModel.foreignKey.association: '_HeaderBillgIncompletionStatus'
      cast(HeaderBillgIncompletionStatus as hdrbillgincompletionstatus preserving type )    as HeaderBillgIncompletionStatus,

      @ObjectModel.foreignKey.association: '_OverallPricingIncompletionSts'
      cast(OverallPricingIncompletionSts as ovrl_pricing_incompletion_sts preserving type ) as OverallPricingIncompletionSts,

      @ObjectModel.foreignKey.association: '_OvrlTradeCmplncEmbargoStatus'
      cast(OverallTrdCmplncEmbargoSts as overall_embargo_status preserving type )           as OverallTrdCmplncEmbargoSts,

      //@Analytics.internalName: #LOCAL

      @ObjectModel.foreignKey.association: '_OvTrdCmplncSnctndListChkSts'
      cast(OvrlTrdCmplncSnctndListChkSts as ovrl_watchlist_screening_sts preserving type )  as OvrlTrdCmplncSnctndListChkSts,

      //@Analytics.internalName: #LOCAL

      @ObjectModel.foreignKey.association: '_OvrlTrdCmplncLegalCtrlChkSts'
      cast(OvrlTrdCmplncLegalCtrlChkSts as overall_legal_control_status preserving type )   as OvrlTrdCmplncLegalCtrlChkSts,

      @ObjectModel.foreignKey.association: '_OverallChmlCmplncStatus'
      OverallChmlCmplncStatus,

      //@Analytics.internalName: #LOCAL

      @ObjectModel.foreignKey.association: '_OverallDangerousGoodsStatus'
      cast(OverallDangerousGoodsStatus as overall_dangerous_goods_status preserving type )  as OverallDangerousGoodsStatus,

      @ObjectModel.foreignKey.association: '_DownPaymentStatus'
      cast(ContractDownPaymentStatus as hdr_down_payment_status preserving type )           as ContractDownPaymentStatus,


      // Pricing

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      TotalNetAmount,

      @Semantics.currencyCode: true
      @ObjectModel.foreignKey.association: '_TransactionCurrency'
      TransactionCurrency,


      // Accounting

      @ObjectModel.foreignKey.association: '_BusinessArea'
      BusinessArea,

      @ObjectModel:{ foreignKey.association: '_CostCenter', text.element: ['CostCenterDescription']}
       CostCenter,
       @UI.hidden: true
       _CostCenterText.CostCenterDescription                                                  as CostCenterDescription,

      @ObjectModel.foreignKey.association: '_ControllingArea'
      ControllingArea,


      // Billing

      @ObjectModel.foreignKey.association: '_BillingCompanyCode'
      BillingCompanyCode,


      // Sales

      CustomerPurchaseOrderDate,

      PurchaseOrderByCustomer,

      BindingPeriodValidityStartDate,

      BindingPeriodValidityEndDate,

      SalesDocumentDate                                                                     as SalesQuotationDate,

      @ObjectModel.foreignKey.association: '_CreditControlArea'
      CreditControlArea,

      @ObjectModel.foreignKey.association: '_CustomerGroup'
      CustomerGroup,

      @ObjectModel.foreignKey.association: '_AdditionalCustomerGroup1'
      AdditionalCustomerGroup1,

      @ObjectModel.foreignKey.association: '_AdditionalCustomerGroup2'
      AdditionalCustomerGroup2,

      @ObjectModel.foreignKey.association: '_AdditionalCustomerGroup3'
      AdditionalCustomerGroup3,

      @ObjectModel.foreignKey.association: '_AdditionalCustomerGroup4'
      AdditionalCustomerGroup4,

      @ObjectModel.foreignKey.association: '_AdditionalCustomerGroup5'
      AdditionalCustomerGroup5,


      // Approval Management

       @ObjectModel.foreignKey.association: '_SalesDocApprovalReason'
      cast( SalesDocApprovalReason as sd_apm_approval_reason_vdm preserving type )          as SalesQuotationApprovalReason,


      // Payment

      @ObjectModel.foreignKey.association: '_CustomerPaymentTerms'
      cast( CustomerPaymentTerms as hdr_dzterm preserving type )                            as CustomerPaymentTerms,

       @ObjectModel.foreignKey.association: '_PaymentMethod'
       PaymentMethod,


      // Additional partner

      @ObjectModel.sort.enabled: false
      @Consumption.filter.hidden: true
      @ObjectModel.virtualElement: true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MCC_SLS_DOC_VE'
      cast( ' ' as abap.char( 100 ))                                                        as AdditionalPartnerName,

      // Virtual Element

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( '  ' as parvw_unv preserving type )                                             as PartnerFunction,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( ' ' as kunnr)                                                                   as Customer,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( ' ' as lifnr)                                                                   as Supplier,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( '00000000' as  pernr_d)                                                         as Personnel,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( '0000000000' as parnr)                                                          as ContactPerson,

      /******************************************************************************************************************/
      /*                                      Virtual Elements for Item Filters                                         */
      /******************************************************************************************************************/


      // ------- WBS Element External ID------- //


      //      @ObjectModel.virtualElement:true

      //      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'

      //      cast( ' ' as ps_posid_edit )                                                           as WBSElementExternalID,


      // Basic Data

      @ObjectModel.virtualElement: true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( '' as productnumber )                                                           as Product,

      @ObjectModel.virtualElement: true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( '    ' as pstyv preserving type )                                               as SalesQuotationItemCategory,

      @ObjectModel.virtualElement: true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( '  ' as spart preserving type )                                                 as Division,

      // Status

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( '' as overall_sd_doc_processing_sts preserving type )                           as SDProcessStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( ' ' as fksaa preserving type )                                                  as OrderRelatedBillingStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( ' ' as absta_vb preserving type )                                               as SDDocumentRejectionStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( ' ' as general_item_incompletion_sts preserving type )                          as ItemGeneralIncompletionStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( ' ' as itms_incompltn_sts_billg preserving type )                               as ItemBillingIncompletionStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('' as pricing_incompletion_status preserving type )                              as PricingIncompletionStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('' as itm_deliv_incompletion_status preserving type )                            as ItemDeliveryIncompletionStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('' as rfsta preserving type )                                                    as SDDocReferenceStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('' as rfgsa preserving type )                                                    as TotalSDDocReferenceStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('' as embargochksts preserving type )                                            as TrdCmplncEmbargoSts,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('' as watchlistscrngchksts preserving type )                                     as TrdCmplncSnctndListChkSts,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('' as mon_tdd_pcsta preserving type )                                            as ChmlCmplncStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('' as mon_tdd_dgsta preserving type )                                            as DangerousGoodsStatus,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('' as dp_clear_sta preserving type )                                             as ContractItemDownPaymentStatus,

      @ObjectModel.virtualElement: true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      @UI.hidden: true
      cast( '  ' as abgru_va preserving type )                                              as SalesDocumentRjcnReason,

      @ObjectModel.virtualElement: true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( '   ' as inco1 preserving type )                                                as IncotermsClassification,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('    ' as abap.char(4) )                                                         as PaymentTerms,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast('  ' as billing_block_reason_item preserving type )                              as ItemBillingBlockReason,


      @ObjectModel.virtualElement:true
      @ObjectModel: { readOnly: true }
      hextobin( '00000000000000000000000000000000' )                                        as SlsDocMassChangeRequestUUID,

      @ObjectModel.virtualElement:true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_MCC_SQ_FILTER_TRANSFORM'
      cast( '          ' as prctr preserving type )                                         as ProfitCenter,


      cast ( 'H' as sd_mcc_entity_level )                                                   as SlsDocMassChgEntityLevel,


      // Associations for DCL

      @Consumption.filter.hidden: true
      _SalesQuotation.SalesDocumentType,

                  // CFD - BP Adoption Changes //

//      @EndUserText.label: 'Bill-to Party Address'

//   

//      @ObjectModel.text.element: ['BillToPartyAddressText']

//      @UI.textArrangement: #TEXT_ONLY

//      _SDDocumentPartner[1:PartnerFunction = 'RE'].AddressID as BillToPartyAddressID,

//      

//      @Semantics.text:true

//      @Consumption.filter.hidden: true

//      @ObjectModel.virtualElement: true

//      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MCC_SLS_DOC_VE'

//      cast(' ' as ad_line_s )                                                                                         as BillToPartyAddressText,

//      

//      @EndUserText.label: 'Sold-to Party Address'

//      @Consumption.filter.hidden: true

//      @ObjectModel.text.element: ['SoldToPartyAddressText']

//      @UI.textArrangement: #TEXT_ONLY

//      _SDDocumentPartner[1:PartnerFunction = 'AG'].AddressID as SoldToPartyAddressID,

//      

//      @Semantics.text:true

//      @Consumption.filter.hidden: true

//      @ObjectModel.virtualElement: true

//      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MCC_SLS_DOC_VE'

//      cast(' ' as ad_line_s )                                                                                         as SoldToPartyAddressText, 

//      

//      @EndUserText.label: 'Ship-to Party Address'

//      @Consumption.filter.hidden: true

//      @ObjectModel.text.element: ['ShipToPartyAddressText']

//      @UI.textArrangement: #TEXT_ONLY

//      _SDDocumentPartner[1:PartnerFunction = 'WE'].AddressID as ShipToPartyAddressID,

//      

//      @Semantics.text:true

//      @Consumption.filter.hidden: true

//      @ObjectModel.virtualElement: true

//      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MCC_SLS_DOC_VE'

//      cast(' ' as ad_line_s )                                                                                         as ShipToPartyAddressText,

//      

//      @EndUserText.label: 'Payer Party Address'

//      @Consumption.filter.hidden: true

//      @ObjectModel.text.element: ['PayerPartyAddressText']

//      @UI.textArrangement: #TEXT_ONLY

//      _SDDocumentPartner[1:PartnerFunction = 'RG'].AddressID as PayerPartyAddressID,

//      

//      @Semantics.text:true

//      @Consumption.filter.hidden: true

//      @ObjectModel.virtualElement: true

//      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MCC_SLS_DOC_VE'

//      cast(' ' as ad_line_s )                                                                                         as PayerPartyAddressText,

//      

//      @EndUserText.label: 'Sales Employee Address'

//      @Consumption.filter.hidden: true

//      @ObjectModel.text.element: ['SalesEmployeeAddressText']

//      @UI.textArrangement: #TEXT_ONLY

//      _SDDocumentPartner[1:PartnerFunction = 'VE'].AddressID as SalesEmployeeAddressID,

//      

//      @Semantics.text:true

//      @Consumption.filter.hidden: true

//      @ObjectModel.virtualElement: true

//      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MCC_SLS_DOC_VE'

//      cast(' ' as ad_line_s )                                                                                         as SalesEmployeeAddressText,

//      

//      @EndUserText.label: 'Responsible Employee Address'

//      @Consumption.filter.hidden: true

//      @ObjectModel.text.element: ['RespEmployeeAddressText']

//      @UI.textArrangement: #TEXT_ONLY

//      _SDDocumentPartner[1:PartnerFunction = 'ER'].AddressID as RespEmployeeAddressID,

//      

//      @Semantics.text:true

//      @Consumption.filter.hidden: true

//      @ObjectModel.virtualElement: true

//      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MCC_SLS_DOC_VE'

//      cast(' ' as ad_line_s )                                                                                         as RespEmployeeAddressText,

      // END-CFD - BP Adoption Changes //

      

      /* Associations */

      // Basic

      _StandardPartner,
      _NonStdPartner,
      _SalesQuotationItem,

      //_SalesDocumentType,

      _SDDocumentReason,

      // Organization

      _SalesOrganization,
      _DistributionChannel,
      _OrganizationDivision,
      _SalesGroup,
      _SalesOffice,
      _SalesDistrict,

      // Shipping

      _ShippingType,
      _ShippingCondition,

      // Terms & Conditions

      _IncotermsClassification,
      _IncotermsVersion,

      // Partner

      _SoldToParty,
      _StandardPartner._ShipToParty,
      _StandardPartner._PayerParty,
      _StandardPartner._BillToParty,
      _StandardPartner._ResponsibleEmployee,
      _StandardPartner._SalesEmployee,

      // Status

      _OverallSDProcessStatus,
      _SalesDocApprovalStatus,
      _OverallSDDocumentRejectionSts,
      _TotalBlockStatus,
      _HdrGeneralIncompletionStatus,
      _HeaderBillgIncompletionStatus,
      _OverallPricingIncompletionSts,
      _OvrlTradeCmplncEmbargoStatus,
      _OvTrdCmplncSnctndListChkSts,
      _OvrlTrdCmplncLegalCtrlChkSts,
      _OverallChmlCmplncStatus,
      _OverallDangerousGoodsStatus,
      _DownPaymentStatus,

      // Accounting

      _BusinessArea,
       @Consumption.filter.hidden: true
      _CostCenterText,
      _ControllingArea,

      // Billing

      _BillingCompanyCode,

      // Sales

      _CreditControlArea,
      _CustomerGroup,
      _AdditionalCustomerGroup1,
      _AdditionalCustomerGroup2,
      _AdditionalCustomerGroup3,
      _AdditionalCustomerGroup4,
      _AdditionalCustomerGroup5,
      _CustomerPaymentTerms,
      @Consumption.filter.hidden: true
      _TransactionCurrency,
      @Consumption.filter.hidden: true
      _SalesDocumentType,
      //Product fuzzy search

      @Search.defaultSearchElement: true
      _SalesDocumentItem,
      @Consumption.filter.hidden: true
      _MassChgSalesDocumentItemWL,
      @Consumption.filter.hidden: true
      _SDDocumentPartner,
        @Consumption.filter.hidden: true
      _PaymentMethod,
       @Consumption.filter.hidden: true
      _CreatedByUser,
      @Consumption.filter.hidden: true
      _SalesDocApprovalReason,
      @Consumption.filter.hidden: true
      _SDDocumentCategory,
      @Consumption.filter.hidden: true
      _CostCenter
      
}
where
  _SalesQuotation.SDDocumentCategory = 'B'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_COSTCENTERTEXT",
"I_CUSTOMER",
"I_SALESDOCUMENT",
"I_SDDOCSTANDARDPARTNER"
],
"ASSOCIATED":
[
"C_MASSCHGSALESDOCUMENTITEMWL",
"C_SALESDOCPAYMENTMETHODVH",
"C_SALESDOCUMENTITEMWL",
"C_SALESDOCUMENTUSERVH",
"E_SALESDOCUMENTBASIC",
"I_ADDITIONALCUSTOMERGROUP1",
"I_ADDITIONALCUSTOMERGROUP2",
"I_ADDITIONALCUSTOMERGROUP3",
"I_ADDITIONALCUSTOMERGROUP4",
"I_ADDITIONALCUSTOMERGROUP5",
"I_BUSINESSAREA",
"I_COMPANYCODE",
"I_CONTRACTDOWNPAYMENTSTATUS",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_COSTCENTERTEXT",
"I_CREDITCONTROLAREA",
"I_CURRENCY",
"I_CUSTOMER",
"I_CUSTOMERGROUP",
"I_CUSTOMERPAYMENTTERMS",
"I_DISTRIBUTIONCHANNEL",
"I_DIVISION",
"I_HDRBILLGINCOMPLETIONSTATUS",
"I_HDRGENINCOMPLETIONSTATUS",
"I_INCOTERMSCLASSIFICATION",
"I_INCOTERMSVERSION",
"I_OVERALLCHMLCMPLNCSTATUS",
"I_OVERALLDANGEROUSGOODSSTATUS",
"I_OVERALLPRCINCOMPLETIONSTS",
"I_OVERALLSDDOCUMENTRJCNSTATUS",
"I_OVERALLSDPROCESSSTATUS",
"I_OVRLTRADECMPLNCEMBARGOSTATUS",
"I_OVRLTRDCMPLNCLEGALCTRLCHKSTS",
"I_OVTRDCMPLNCSNCTNDLISTCHKSTS",
"I_PERSONWORKAGREEMENT_1",
"I_SALESDISTRICT",
"I_SALESDOCAPPROVALREASON",
"I_SALESDOCAPPROVALSTATUS",
"I_SALESDOCUMENTITEM",
"I_SALESDOCUMENTTYPE",
"I_SALESGROUP",
"I_SALESOFFICE",
"I_SALESORGANIZATION",
"I_SDDOCSTANDARDPARTNER",
"I_SDDOCUMENTCATEGORY",
"I_SDDOCUMENTPARTNER",
"I_SDDOCUMENTREASON",
"I_SHIPPINGCONDITION",
"I_SHIPPINGTYPE",
"I_SLSDOCNONSTDPARTNER",
"I_TOTALBLOCKSTATUS"
],
"BASE":
[
"I_SALESDOCUMENT",
"I_SDDOCSTANDARDPARTNER"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/