C_PricingElement

DDL: C_PRICINGELEMENT SQL: CPRICINGELEMENT Type: view CONSUMPTION

Consumption View for Pricing Element

C_PricingElement is a Consumption CDS View that provides data about "Consumption View for Pricing Element" in SAP S/4HANA. It reads from 2 data sources (I_PricingElement, I_Currency) and exposes 34 fields with key fields PricingDocument, PricingDocumentItem, PricingProcedureStep, PricingProcedureCounter. It has 4 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_PricingElement PricingElement from
I_Currency tcurx_waers left_outer

Associations (4)

CardinalityTargetAliasCondition
[0..1] C_PricingConditionType_VH _PricingConditionType_VH $projection.ConditionType = _PricingConditionType_VH.ConditionType and $projection.ConditionApplication = _PricingConditionType_VH.ConditionApplication
[0..1] C_PricingConditionTypeName_VH _PricingConditionTypeName_VH $projection.ConditionType = _PricingConditionTypeName_VH.ConditionType and $projection.ConditionApplication = _PricingConditionTypeName_VH.ConditionApplication and $projection.ConditionTypeName = _PricingConditionTypeName_VH.ConditionTypeName
[0..1] C_ConditionRateValueUnit_VH _ConditionRateValueUnitVH $projection.ConditionRateValueUnit = _ConditionRateValueUnitVH.ConditionRateValueUnit
[0..1] C_ConditionQuantityUnit_VH _ConditionQuantityUnitVH $projection.ConditionQuantityUnit = _ConditionQuantityUnitVH.ConditionQuantityUnit

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName CPRICINGELEMENT view
AbapCatalog.preserveKey true view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
AccessControl.personalData.blocking #REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Consumption View for Pricing Element view
VDM.viewType #CONSUMPTION view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.dataClass #MIXED view

Fields (34)

KeyFieldSource TableSource FieldDescription
KEY PricingDocument I_PricingElement PricingDocument
KEY PricingDocumentItem I_PricingElement PricingDocumentItem
KEY PricingProcedureStep I_PricingElement PricingProcedureStep
KEY PricingProcedureCounter I_PricingElement PricingProcedureCounter
ConditionApplication I_PricingElement ConditionApplication
ConditionType I_PricingElement ConditionType
ConditionTypeName _PricingConditionTypeName_VH ConditionTypeName
PricingDateTime I_PricingElement PricingDateTime
ConditionCalculationType I_PricingElement ConditionCalculationType
ConditionBaseValue
ConditionRateValue
ConditionRateValueUnit I_PricingElement ConditionCurrency
ConditionQuantity I_PricingElement ConditionQuantity
ConditionQuantityUnit I_PricingElement ConditionQuantityUnit
ConditionIsForStatistics I_PricingElement ConditionIsForStatistics
IsGroupCondition I_PricingElement IsGroupCondition
TaxCode I_PricingElement TaxCode
TaxCodeName
ConditionAmount I_PricingElement ConditionAmount
TransactionCurrency I_PricingElement TransactionCurrency
ConditionInactiveReason I_PricingElement ConditionInactiveReason
ConditionInactiveReasonName
ConditionIsManuallyChanged I_PricingElement ConditionIsManuallyChanged
ConditionIsDeletable
PricingProcedure
SuperordinateDocument
SuperordinateDocumentItem
_ConditionApplication
_PricingConditionType I_PricingElement _PricingConditionType
_PricingConditionType_VH _PricingConditionType_VH
_PricingConditionTypeName_VH _PricingConditionTypeName_VH
_ConditionRateValueUnitVH _ConditionRateValueUnitVH
_ConditionQuantityUnit I_PricingElement _ConditionQuantityUnit
_ConditionQuantityUnitVH _ConditionQuantityUnitVH
@AbapCatalog.sqlViewName: 'CPRICINGELEMENT'
@AbapCatalog.preserveKey:true
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@AccessControl.personalData.blocking: #REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Consumption View for Pricing Element'
@VDM.viewType: #CONSUMPTION
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
define view
C_PricingElement
//with parameters P_PricingProcedure:kalsm_d

as select from
I_PricingElement as PricingElement
//I_CURRENCY

left outer join I_Currency as tcurx_waers on tcurx_waers.Currency = PricingElement.TransactionCurrency

association [0..1] to C_PricingConditionType_VH     as _PricingConditionType_VH     on  $projection.ConditionType        = _PricingConditionType_VH.ConditionType
                                                                                    and $projection.ConditionApplication = _PricingConditionType_VH.ConditionApplication
association [0..1] to C_PricingConditionTypeName_VH as _PricingConditionTypeName_VH on  $projection.ConditionType        = _PricingConditionTypeName_VH.ConditionType
                                                                                    and $projection.ConditionApplication = _PricingConditionTypeName_VH.ConditionApplication
                                                                                    and $projection.ConditionTypeName    = _PricingConditionTypeName_VH.ConditionTypeName
association [0..1] to C_ConditionRateValueUnit_VH   as _ConditionRateValueUnitVH    on  $projection.ConditionRateValueUnit = _ConditionRateValueUnitVH.ConditionRateValueUnit
association [0..1] to C_ConditionQuantityUnit_VH    as _ConditionQuantityUnitVH     on  $projection.ConditionQuantityUnit = _ConditionQuantityUnitVH.ConditionQuantityUnit

{

  key PricingElement.PricingDocument                                                                     as PricingDocument,
  key PricingElement.PricingDocumentItem                                                                 as PricingDocumentItem,
  key PricingElement.PricingProcedureStep                                                                as PricingProcedureStep,
  key PricingElement.PricingProcedureCounter                                                             as PricingProcedureCounter,
      @ObjectModel.foreignKey.association: '_ConditionApplication'
      PricingElement.ConditionApplication                                                                as ConditionApplication,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @UI: { identification.position: 20, lineItem : { position:20, importance:#HIGH } }
      @ObjectModel.foreignKey.association: '_PricingConditionType'
      @Consumption.valueHelpDefinition: [{association: '_PricingConditionType_VH'}]
      PricingElement.ConditionType                                                                       as ConditionType,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @UI: { identification.position: 30, lineItem : { position:30, importance:#HIGH } }
      @ObjectModel.foreignKey.association: '_PricingConditionTypeName_VH'
      @Consumption.valueHelpDefinition: [{association: '_PricingConditionTypeName_VH'}]
      _PricingConditionTypeName_VH.ConditionTypeName                                                     as ConditionTypeName,
      PricingElement.PricingDateTime                                                                     as PricingDateTime,
      PricingElement.ConditionCalculationType                                                            as ConditionCalculationType,
      @UI: { identification.position: 80, lineItem : { position:80, importance:#HIGH } }
      @Semantics.amount.currencyCode: 'ConditionBaseValueIntlUnit'
      cast(  PricingElement.ConditionBaseValue      as      vfprc_value_in_curr )                        as ConditionBaseValue,
      //ConditionBaseValueIntlUnit

      @Semantics.currencyCode: true
      case
        when ConditionCalculationType = 'C'
          or ConditionCalculationType = 'M'
          or ConditionCalculationType = 'N'
          or ConditionCalculationType = 'O'
          or ConditionCalculationType = 'P'
          or ConditionCalculationType = 'Q'
          or ConditionCalculationType = 'V'
          or ConditionCalculationType = 'D'
          or ConditionCalculationType = 'E'
          or ConditionCalculationType = 'F'
          or ConditionCalculationType = 'R'
          then
            case PricingElement.ConditionBaseValue
              when floor(cast(PricingElement.ConditionBaseValue as abap.curr(15,2)))
                then cast(cast('0' as char5) as waers)
              else
                cast(cast('5' as char5) as waers)
            end
        when ConditionCalculationType = 'G'
          or ConditionCalculationType = 'S'
          then cast(cast('0' as char5) as waers)
        else
          cast(cast(coalesce(tcurx_waers.Decimals, 2) as char5) as waers)
        end                                                                                              as ConditionBaseValueIntlUnit,
      //ConditionBaseValueUnit

      @UI: { identification.position: 90, lineItem : { position:90, importance:#HIGH } }
      @Semantics.currencyCode: true
      case
        when ConditionCalculationType = 'C'
          or ConditionCalculationType = 'M'
          or ConditionCalculationType = 'N'
          or ConditionCalculationType = 'O'
          or ConditionCalculationType = 'P'
          or ConditionCalculationType = 'Q'
          or ConditionCalculationType = 'V'
          or ConditionCalculationType = 'D'
          or ConditionCalculationType = 'E'
          or ConditionCalculationType = 'F'
          or ConditionCalculationType = 'R'
          then cast(substring (ConditionQuantityUnit, 1, 3) as vfprc_cndn_base_value_unit)
          else cast(substring (TransactionCurrency, 1, 5) as vfprc_cndn_base_value_unit)
        end                                                                                              as ConditionBaseValueUnit,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @UI: { identification.position: 40, lineItem : { position:40, importance:#HIGH } }
      @Semantics.amount.currencyCode: 'ConditionRateValueIntlUnit'
      cast( PricingElement.ConditionRateValue      as          vfprc_rate_value_in_curr  )               as ConditionRateValue,
      //ConditionRateValueIntlUnit

      @Semantics.currencyCode: true
      case
        when ConditionCalculationType = 'A'
          or ConditionCalculationType = 'H'
          or ConditionCalculationType = 'I'
          or ConditionCalculationType = 'J'
          or ConditionCalculationType = 'K'
          then cast(cast('3' as char5) as waers)
        when ConditionCalculationType = 'V'
          then cast(cast('5' as char5) as waers)
        when ConditionCalculationType = 'W'
          then cast(cast('6' as char5) as waers)
        else
          cast(cast(coalesce(tcurx_waers.Decimals, 2) as char5) as waers)
      end                                                                                                as ConditionRateValueIntlUnit,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @UI: { identification.position: 50, lineItem : { position:50, importance:#HIGH } }
      @Semantics.currencyCode: true
      @Consumption.valueHelpDefinition: [{association: '_ConditionRateValueUnitVH'}]
      PricingElement.ConditionCurrency                                                                   as ConditionRateValueUnit,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @UI: { identification.position: 60, lineItem : { position:60, importance:#HIGH } }
      PricingElement.ConditionQuantity                                                                   as ConditionQuantity,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @UI: { identification.position: 70, lineItem : { position:70, importance:#HIGH } }
      @ObjectModel.foreignKey.association: '_ConditionQuantityUnit'
      @Consumption.valueHelpDefinition: [{association: '_ConditionQuantityUnitVH'}]
      PricingElement.ConditionQuantityUnit                                                               as ConditionQuantityUnit,
      @UI: { identification.position: 140, lineItem : { position:140, importance:#HIGH } }
      PricingElement.ConditionIsForStatistics                                                            as ConditionIsForStatistics,
      PricingElement.IsGroupCondition                                                                    as IsGroupCondition,
      @UI: { identification.position: 120, lineItem : { position:120, importance:#HIGH } }
      PricingElement.TaxCode                                                                             as TaxCode,
      @UI: { identification.position: 130, lineItem : { position:130, importance:#HIGH } }
      cast('      ' as price_element_tax_code_descr)                                                     as TaxCodeName,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @UI: { identification.position: 100, lineItem : { position:100, importance:#HIGH } }
      @Semantics.amount.currencyCode:'TransactionCurrency'
      PricingElement.ConditionAmount                                                                     as ConditionAmount,
      @UI: { identification.position: 110, lineItem : { position:110, importance:#HIGH } }
      PricingElement.TransactionCurrency                                                                 as TransactionCurrency,
      @UI: { identification.position: 10, lineItem : { position:10, importance:#HIGH } }
      PricingElement.ConditionInactiveReason                                                             as ConditionInactiveReason,
      PricingElement._ConditionInactiveReason._Text[ 1: Language = $session.system_language ].ConditionInactiveReasonName,
      @UI: { identification.position: 150, lineItem : { position:150, importance:#HIGH } }
      PricingElement.ConditionIsManuallyChanged                                                          as ConditionIsManuallyChanged,
      @ObjectModel.readOnly: true
      @UI: { identification.position: 160, lineItem : { position:160, importance:#HIGH } }
      cast(' ' as abap.char( 1 ))                                                                        as ConditionIsDeletable,
      cast('      ' as kalsm_d )                                                                         as PricingProcedure,
      cast('                                ' as abap.char ( 32 ))                                       as SuperordinateDocument,
      cast('                                                                      ' as abap.char ( 70 )) as SuperordinateDocumentItem,
      //P_PricingProcedure???

      //P_IsHeader


      ----------------------------------------------------------------------------------------
      -- Associations                                                                       --
      ----------------------------------------------------------------------------------------

      PricingElement._ConditionApplication,
      PricingElement._PricingConditionType,
      _PricingConditionType_VH,
      _PricingConditionTypeName_VH,
      _ConditionRateValueUnitVH,
      PricingElement._ConditionQuantityUnit,
      _ConditionQuantityUnitVH

}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_PRICINGCONDITIONTYPENAME_VH",
"I_CONDITIONINACTIVEREASON",
"I_CONDITIONINACTIVEREASONTEXT",
"I_CURRENCY",
"I_PRICINGELEMENT"
],
"ASSOCIATED":
[
"C_CONDITIONQUANTITYUNIT_VH",
"C_CONDITIONRATEVALUEUNIT_VH",
"C_PRICINGCONDITIONTYPENAME_VH",
"C_PRICINGCONDITIONTYPE_VH",
"I_CONDITIONAPPLICATION",
"I_PRICINGCONDITIONTYPE",
"I_UNITOFMEASURE"
],
"BASE":
[
"I_PRICINGELEMENT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/