I_PrepaymentProposedLinkages

DDL: I_PREPAYMENTPROPOSEDLINKAGES SQL: IPPMGLINK Type: view COMPOSITE

Prepayment Agreement Proposed Linkages

I_PrepaymentProposedLinkages is a Composite CDS View that provides data about "Prepayment Agreement Proposed Linkages" in SAP S/4HANA. It reads from 5 data sources (I_PrepayWrkCtrAllowedDocTypes, I_PrepaymentMaterial, P_PrepaymentRefDocAmtDetails, I_PreAgrmtTradingContract, I_PreAgrmtTradingContractItem) and exposes 23 fields with key fields DocNumber, DocumentItemNumber. It has 2 associations to related views.

Data Sources (5)

SourceAliasJoin Type
I_PrepayWrkCtrAllowedDocTypes DocTypes inner
I_PrepaymentMaterial Material inner
P_PrepaymentRefDocAmtDetails P_PrepaymentRefDocAmtDetails inner
I_PreAgrmtTradingContract TradingContract from
I_PreAgrmtTradingContractItem TradingContractItem inner

Parameters (2)

NameTypeDefault
P_Currency waers
P_Date dats

Associations (2)

CardinalityTargetAliasCondition
[1..1] E_TradingContract TradingContractExtension $projection.DocNumber = TradingContractExtension.TradingContract
[0..*] E_TradingContractItem TrdgContractItemExtension $projection.DocNumber = TrdgContractItemExtension.TradingContract and $projection.DocumentItemNumber = TrdgContractItemExtension.TradingContractItem

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName IPPMGLINK view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.dataClass #MIXED view
Metadata.ignorePropagatedAnnotations true view
AccessControl.personalData.blocking #REQUIRED view
EndUserText.label Prepayment Agreement Proposed Linkages view

Fields (23)

KeyFieldSource TableSource FieldDescription
KEY DocNumber I_PreAgrmtTradingContract TradingContract
KEY DocumentItemNumber I_PreAgrmtTradingContractItem TradingContractItem
PrepaymentAgrmtRefBusObject
DocumentType I_PreAgrmtTradingContract TradingContractType
Counterparty I_PreAgrmtTradingContract Counterparty
CompanyCode I_PreAgrmtTradingContract CompanyCode
TrdgContrApplicationStatus I_PreAgrmtTradingContract TrdgContrApplicationStatus
PrepaymentRefDocItmValdFromDte I_PreAgrmtTradingContractItem PrepaymentRefDocItmValdFromDte
PrepaymentRefDocItmValdToDte I_PreAgrmtTradingContractItem PrepaymentRefDocItmValdToDte
Material I_PreAgrmtTradingContractItem Material
Commodity I_PrepaymentMaterial Commodity
OrderQuantity I_PreAgrmtTradingContractItem TradingContractItemQuantity
OrderQuantityUnit I_PreAgrmtTradingContractItem TrdgContractItemUnitOfMeasure
PrepaymentTotalAmt DocumentAmount PrepaymentTotalAmt
PrepaymentTotalAmtCrcy DocumentAmount PrepaymentTotalAmtCrcy
PrepaymentDocThresholdPercent DocumentAmount PrepaymentDocThresholdPercent
PrepaymentUnassignedAmtCrcy DocumentAmount PrepaymentTotalAmtCrcy
PrepaymentTotalAmtIsFixedPrice DocumentAmount PrepaymentTotalAmtIsFixedPrice
ExchangeRateType DocumentAmount ExchangeRateType
ExchangeRateDate DocumentAmount ExchangeRateDate
ExchangeRate DocumentAmount ExchangeRate
AlternativeExchangeRateType DocumentAmount AlternativeExchangeRateType
PrepaymentDeliveryExists
@AbapCatalog.sqlViewName                    : 'IPPMGLINK'
@AbapCatalog.compiler.compareFilter         : true
@AbapCatalog.preserveKey                    : true
@AccessControl.authorizationCheck           : #CHECK
@ClientHandling.algorithm                   : #SESSION_VARIABLE
@VDM.viewType                               : #COMPOSITE
@ObjectModel.usageType.sizeCategory         : #XL
@ObjectModel.usageType.serviceQuality       : #D
@ObjectModel.usageType.dataClass            : #MIXED
@Metadata.ignorePropagatedAnnotations       : true
@AccessControl.personalData.blocking        : #REQUIRED
@EndUserText.label                          : 'Prepayment Agreement Proposed Linkages'

define view I_PrepaymentProposedLinkages
  with parameters
    P_Currency : waers,
    P_Date     : dats

  as select from I_PreAgrmtTradingContract                          as TradingContract

  -- Allowed Contract Types from Configuration
    inner join   I_PrepayWrkCtrAllowedDocTypes                      as DocTypes            on  DocTypes.PrepaymentAgrmtWorkCenterType  = '1'
                                                                                           and DocTypes.PrepaymentAgrmtRefDocumentCat  = 'TC'
                                                                                           and DocTypes.PrepaymentAgrmtRefDocumentType = TradingContract.TradingContractType

  -- Trading Contract Items
    inner join   I_PreAgrmtTradingContractItem                      as TradingContractItem on TradingContractItem.TradingContract = TradingContract.TradingContract

  -- Material and Commodity
    inner join   I_PrepaymentMaterial                               as Material            on TradingContractItem.Material = Material.Material

  -- Amount details
    inner join   P_PrepaymentRefDocAmtDetails(P_DocCat   : 'TC',
                                              P_BusObj   : 'BUS2124',
                                              P_Currency : :P_Currency,
                                              P_Date     : :P_Date) as DocumentAmount      on  DocumentAmount.PrepaymentAgrmtWorkCenterType = DocTypes.PrepaymentAgrmtWorkCenterType
                                                                                           and DocumentAmount.PrepaymentAgrmtRefDocumentCat = DocTypes.PrepaymentAgrmtRefDocumentCat
                                                                                           and DocumentAmount.DocNumber                     = TradingContractItem.TradingContract
                                                                                           and DocumentAmount.DocumentItemNumber            = TradingContractItem.TradingContractItem
  --Extension Associations
  association [1..1] to E_TradingContract     as TradingContractExtension  on  $projection.DocNumber = TradingContractExtension.TradingContract

  association [0..*] to E_TradingContractItem as TrdgContractItemExtension on  $projection.DocNumber          = TrdgContractItemExtension.TradingContract
                                                                           and $projection.DocumentItemNumber = TrdgContractItemExtension.TradingContractItem

{
  key TradingContract.TradingContract                    as DocNumber,
  key TradingContractItem.TradingContractItem            as DocumentItemNumber,

      cast( 'BUS2124' as abap.char( 10 ) )               as PrepaymentAgrmtRefBusObject,

      TradingContract.TradingContractType                as DocumentType,

      TradingContract.Counterparty                       as Counterparty,

      TradingContract.CompanyCode                        as CompanyCode,

      TradingContract.TrdgContrApplicationStatus         as TrdgContrApplicationStatus,

      TradingContractItem.PrepaymentRefDocItmValdFromDte as PrepaymentRefDocItmValdFromDte,

      TradingContractItem.PrepaymentRefDocItmValdToDte   as PrepaymentRefDocItmValdToDte,

      TradingContractItem.Material                       as Material,

      Material.Commodity                                 as Commodity,

      @Semantics.quantity.unitOfMeasure: 'OrderQuantityUnit'
      TradingContractItem.TradingContractItemQuantity    as OrderQuantity,

      @Semantics.unitOfMeasure: true
      TradingContractItem.TrdgContractItemUnitOfMeasure  as OrderQuantityUnit,

      @Semantics.amount.currencyCode: 'PrepaymentTotalAmtCrcy'
      DocumentAmount.PrepaymentTotalAmt                  as PrepaymentTotalAmt,

      DocumentAmount.PrepaymentTotalAmtCrcy              as PrepaymentTotalAmtCrcy,

      DocumentAmount.PrepaymentDocThresholdPercent       as PrepaymentDocThresholdPercent,

      --       Unassigned Amount = ( Item Net Amount * Threshold % ) - Item Linked Amount
      @Semantics.amount.currencyCode: 'PrepaymentUnassignedAmtCrcy'
      ( DocumentAmount.PrepaymentTotalAmt
        * cast( division(  DocumentAmount.PrepaymentDocThresholdPercent, 100, 2 ) as abap.quan(3,2) ) )
        - DocumentAmount.PrepaymentAgrmtLinkAmount       as PrepaymentUnassignedAmt,

      DocumentAmount.PrepaymentTotalAmtCrcy              as PrepaymentUnassignedAmtCrcy,

      @Semantics.booleanIndicator: true
      DocumentAmount.PrepaymentTotalAmtIsFixedPrice      as PrepaymentTotalAmtIsFixedPrice,

      DocumentAmount.ExchangeRateType                    as ExchangeRateType,

      DocumentAmount.ExchangeRateDate                    as ExchangeRateDate,

      DocumentAmount.ExchangeRate                        as ExchangeRate,

      DocumentAmount.AlternativeExchangeRateType         as AlternativeExchangeRateType,

      cast( '' as abap.char( 1 ) )                       as PrepaymentDeliveryExists
}

where
  DocumentAmount.PrepaymentRequestDocNumber is initial
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PREAGRMTTRADINGCONTRACT",
"I_PREAGRMTTRADINGCONTRACTITEM",
"I_PREPAYMENTMATERIAL",
"I_PREPAYWRKCTRALLOWEDDOCTYPES",
"P_PREPAYMENTREFDOCAMTDETAILS"
],
"ASSOCIATED":
[
"E_TRADINGCONTRACT",
"E_TRADINGCONTRACTITEM"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/