P_CrExpFiMain

DDL: P_CREXPFIMAIN SQL: PCREXPFIMAIN Type: view COMPOSITE

P_CrExpFiMain is a Composite CDS View in SAP S/4HANA. It reads from 2 data sources (I_OperationalAcctgDocItem, I_Customer) and exposes 15 fields. It has 2 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_OperationalAcctgDocItem _AccountingDocument from
I_Customer I_Customer inner

Parameters (2)

NameTypeDefault
P_ExchangeRateDate vdm_v_exchange_rate_date
P_ExchangeRateType kurst

Associations (2)

CardinalityTargetAliasCondition
[0..1] I_CreditControlArea _CreditControlArea $projection.CreditControlArea = _CreditControlArea.CreditControlArea
[0..1] I_CreditManagementSegment _CreditSegment _CreditSegment.CrdtSgmtIsMainCreditSegment = 'X'

Annotations (6)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName PCREXPFIMAIN view
VDM.private true view
VDM.viewType #COMPOSITE view
AccessControl.authorizationCheck #NOT_REQUIRED view
AbapCatalog.compiler.compareFilter true view

Fields (15)

KeyFieldSource TableSource FieldDescription
BusinessPartner
CreditSegment
xBseg
CreditControlArea I_OperationalAcctgDocItem CreditControlArea
Customer I_OperationalAcctgDocItem Customer
AccountingDocument I_OperationalAcctgDocItem AccountingDocument
FiscalYear I_OperationalAcctgDocItem FiscalYear
SpecialGLCode I_OperationalAcctgDocItem SpecialGLCode
CreditLimitIsChecked
FinancialAccountType FinancialAccountType
TransactionCurrency TransactionCurrency
AmountInTransactionCurrency AmountInTransactionCurrency
MainCreditSegmentCurrency _CreditSegment CreditSegmentCurrency
trueasCreditExposure
trueasHedgedExposure
// DEPRECATED //

// Performance Improvements ER9K8AU9LH 7.2021, replaced by P_CrExpFiMain1 //


//@EndUserText.label: 'FI Credit Exposure - Main Segment'

@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.sqlViewName: 'PCREXPFIMAIN'
@VDM.private:true
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck:  #NOT_REQUIRED
@AbapCatalog.compiler.compareFilter:true
define view P_CrExpFiMain
  with parameters
    P_ExchangeRateDate : vdm_v_exchange_rate_date,
    @Consumption.defaultValue: 'M'
    P_ExchangeRateType : kurst

  // Get all open items

  as select from I_OperationalAcctgDocItem as _AccountingDocument

  // and the corresponding customer data

    inner join   I_Customer on _AccountingDocument.Customer = I_Customer.Customer

  // Mapping between Credit Control Area and Credit Segment

  association [0..1] to I_CreditControlArea       as _CreditControlArea on $projection.CreditControlArea = _CreditControlArea.CreditControlArea

  // Main Credit Segment Configuration

  association [0..1] to I_CreditManagementSegment as _CreditSegment     on _CreditSegment.CrdtSgmtIsMainCreditSegment = 'X'

{
  // Business Partner

  I_Customer._CustomerToBusinessPartner._BusinessPartner.BusinessPartner as BusinessPartner,

  // Credit Segment

  _CreditControlArea._CreditControlArea2Segment.CreditSegment            as CreditSegment,

  'Y'                                                                    as xBseg,

  // Credit Control Area

  _AccountingDocument.CreditControlArea,

  // Original Customer

  _AccountingDocument.Customer,

  // Accounting Document Number

  _AccountingDocument.AccountingDocument,

  // Fiscal Year

  _AccountingDocument.FiscalYear,

  // Special G/L Indicator

  _AccountingDocument.SpecialGLCode,

  // Check if value is relevant for Credit Management - T074U-KLIMP

  _AccountingDocument._SpecialGLCode.CreditLimitIsChecked,

  // Check Exposure Category

  case
    when _AccountingDocument.SpecialGLCode <> ''
  // Special Exposure

        then '300'

  // FI Exposure

        else '200'
  end                                                                    as CreditExposureCategory,

  // Document Type

  FinancialAccountType,

  // Transaction Currency

  @Semantics.currencyCode: true
  TransactionCurrency,

  // Amount in Transaction Currency

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

  // Credit Segment Currency

  @Semantics.currencyCode: true
  //  _CreditSegment.CreditSegmentCurrency                                   as CreditSegmentCurrency,

  _CreditSegment.CreditSegmentCurrency                                   as MainCreditSegmentCurrency,

  // Credit Exposure

  @Semantics.amount.currencyCode: 'MainCreditSegmentCurrency'
  currency_conversion(
      amount                => AmountInTransactionCurrency,
      source_currency       => TransactionCurrency,
      target_currency       => _CreditSegment.CreditSegmentCurrency,
      exchange_rate_date    => $parameters.P_ExchangeRateDate,
      exchange_rate_type    => $parameters.P_ExchangeRateType,
      error_handling        => 'FAIL_ON_ERROR',
      decimal_shift         => #CDSBoolean.true,
      round                 => #CDSBoolean.true )                        as CreditExposure,

  // Hedged Exposure

  @Semantics.amount.currencyCode: 'MainCreditSegmentCurrency'
  currency_conversion(
      amount                => HedgedAmount,
      source_currency       => _AccountingDocument.CreditControlAreaCurrency,
      target_currency       => _CreditSegment.CreditSegmentCurrency,
      exchange_rate_date    => $parameters.P_ExchangeRateDate,
      exchange_rate_type    => $parameters.P_ExchangeRateType,
      error_handling        => 'FAIL_ON_ERROR',
      decimal_shift         => #CDSBoolean.true,
      round                 => #CDSBoolean.true )                        as HedgedExposure

}

where
          FinancialAccountType                                                                   =  'D'
  and     _AccountingDocument.CreditControlArea                                                  is not initial
  and     _CreditControlArea._CreditControlArea2Segment.CreditSegment                            <> ''
  and(
          ClearingDate                                                                           =  '00000000'
  )
  and(
    (
          _AccountingDocument.SpecialGLCode != ''
      and _AccountingDocument._SpecialGLCode.CreditLimitIsChecked                                =  'X'
    )
    or    _AccountingDocument.SpecialGLCode                                                      =  ''
  )
  and     _CreditControlArea._CreditControlArea2Segment._CreditSegment.CrdtSgmtIsAddedToMainSgmt =  'X'
  and(
          _AccountingDocument._PaymentDifferenceReason.IsDisputed                                =  ''
    or    _AccountingDocument._PaymentDifferenceReason.IsDisputed                                is initial
    or    _AccountingDocument._PaymentDifferenceReason.IsDisputed                                is null
  )
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSPARTNER",
"I_CREDITCONTROLAREA",
"I_CREDITCONTROLAREA2SEGMENT",
"I_CREDITMANAGEMENTSEGMENT",
"I_CUSTOMER",
"I_CUSTOMERTOBUSINESSPARTNER",
"I_OPERATIONALACCTGDOCITEM",
"I_PAYMENTDIFFERENCEREASON",
"I_SPECIALGLCODE"
],
"ASSOCIATED":
[
"I_CREDITCONTROLAREA",
"I_CREDITMANAGEMENTSEGMENT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/