C_ShrtTrmCshPosActualFlow
Overdue Actual Flows
C_ShrtTrmCshPosActualFlow is a Consumption CDS View that provides data about "Overdue Actual Flows" in SAP S/4HANA. It reads from 11 data sources and exposes 47 fields with key fields CashPositionProfile, CashPositionDisplayCurrency, OriginSystem, OriginApplication, OriginDocument. It has 1 association to related views. It is exposed through 1 OData service (UI_SHORTTERMCASHPOS_DISPLAY). It is used in 1 Fiori application: Short-Term Cash Positioning. Part of development package FCLM_CP_SHORTTERM.
Data Sources (11)
| Source | Alias | Join Type |
|---|---|---|
| I_CalendarDate | CashBalanceDate | cross |
| I_CalendarDate | CashBalanceDate | cross |
| I_Currency | Currency | cross |
| I_Currency | Currency | cross |
| I_CashPositionFlow | flow | from |
| I_CashPositionFlow | flow | union_all |
| I_CalendarDate | KeyDate | cross |
| I_CalendarDate | KeyDate | cross |
| I_CashPositionProfile | profile | cross |
| I_CashPositionProfile | profile | cross |
| I_CashSnapshot | Snapshot | cross |
Associations (1)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..*] | I_CshPosCurrencySourceText | _CshPosCurSoucText | $projection.CashPositionCurrencySource = _CshPosCurSoucText.CashPositionCurrencySource |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Overdue Actual Flows | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.usageType.serviceQuality | #X | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| UI.headerInfo.typeName | Cash Flow | view | |
| UI.headerInfo.typeNamePlural | Cash Flows | view | |
| UI.headerInfo.title.type | #STANDARD | view | |
| UI.headerInfo.title.value | TransactionDate | view | |
| VDM.viewType | #CONSUMPTION | view |
OData Services (1)
| Service | Binding | Version | Contract | Release |
|---|---|---|---|---|
| UI_SHORTTERMCASHPOS_DISPLAY | UI_SHORTTERMCASHPOS_DISP | V2 | C1 | NOT_TO_BE_RELEASED_STABLE |
Fiori Apps (1)
| App ID | App Name | Type | Description |
|---|---|---|---|
| F5380 | Short-Term Cash Positioning | Transactional, Analytical | This app facilitates cash managers and cash specialists to see short-term cash position based on direct bank balances. How cash position will be displayed depends on the selected profiles that are defined in app Define Cash Position Profiles. |
Short-Term Cash Positioning
Business Role: Cash Manager
With this new app, you can view the forecasted cash positions for the current data by location, company, and currency. Cash position data is caculated based on the cash position profiles that are defined in the Define Cash Position Profiles app.
Fields (47)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | CashPositionProfile | I_CashPositionProfile | CashPositionProfile | |
| KEY | CashPositionDisplayCurrency | I_Currency | Currency | |
| KEY | OriginSystem | I_CashPositionFlow | OriginSystem | |
| KEY | OriginApplication | I_CashPositionFlow | OriginApplication | |
| KEY | OriginDocument | I_CashPositionFlow | OriginDocument | |
| KEY | OriginTransaction | I_CashPositionFlow | OriginTransaction | |
| KEY | OriginTransactionQualifier | I_CashPositionFlow | OriginTransactionQualifier | |
| KEY | CashFlow | I_CashPositionFlow | CashFlow | |
| KEY | CashBalanceDate | I_CalendarDate | CalendarDate | |
| KEY | KeyDate | I_CalendarDate | CalendarDate | |
| KEY | CashSnapshot | I_CashSnapshot | CashSnapshot | |
| TransactionDate | I_CashPositionFlow | TransactionDate | ||
| BankAccountInternalID | I_CashPositionFlow | BankAccountInternalID | ||
| CompanyCode | I_CashPositionFlow | CompanyCode | ||
| AmountInBankAccountCurrency | ||||
| BankAccountCurrency | ||||
| AmountInDisplayCurrency | ||||
| CashPositionCurrencySource | ||||
| CashPositionCurrencySourceText | ||||
| CshPosScaledAmountInTransCrcy | I_CashPositionFlow | AmountInTransactionCurrency | ||
| AmountInTransactionCurrency | I_CashPositionFlow | AmountInTransactionCurrency | ||
| TransactionCurrency | I_CashPositionFlow | TransactionCurrency | ||
| CompanyCodeName | ||||
| CashPositionProfile | ||||
| KEY | CashPositionDisplayCurrency | I_Currency | Currency | |
| KEY | OriginSystem | I_CashPositionFlow | OriginSystem | |
| KEY | OriginApplication | I_CashPositionFlow | OriginApplication | |
| KEY | OriginDocument | I_CashPositionFlow | OriginDocument | |
| KEY | OriginTransaction | I_CashPositionFlow | OriginTransaction | |
| KEY | OriginTransactionQualifier | I_CashPositionFlow | OriginTransactionQualifier | |
| KEY | CashFlow | I_CashPositionFlow | CashFlow | |
| KEY | CashBalanceDate | I_CalendarDate | CalendarDate | |
| KEY | KeyDate | I_CalendarDate | CalendarDate | |
| KEY | CashSnapshot | |||
| TransactionDate | I_CashPositionFlow | TransactionDate | ||
| BankAccountInternalID | I_CashPositionFlow | BankAccountInternalID | ||
| CompanyCode | I_CashPositionFlow | CompanyCode | ||
| AmountInBankAccountCurrency | ||||
| BankAccountCurrency | ||||
| AmountInDisplayCurrency | ||||
| CashPositionCurrencySource | ||||
| CashPositionCurrencySourceText | ||||
| CshPosScaledAmountInTransCrcy | I_CashPositionFlow | AmountInTransactionCurrency | ||
| AmountInTransactionCurrency | I_CashPositionFlow | AmountInTransactionCurrency | ||
| TransactionCurrency | I_CashPositionFlow | TransactionCurrency | ||
| CompanyCodeName | ||||
| CashClosingAvailBalanceSource |
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Overdue Actual Flows'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
serviceQuality: #X,
sizeCategory: #L,
dataClass: #TRANSACTIONAL
}
@UI.presentationVariant: [{requestAtLeast: ['AmountInTransactionCurrency','TransactionCurrency','BankAccountCurrency']}]
@UI.headerInfo: {
typeName: 'Cash Flow',
typeNamePlural: 'Cash Flows',
title: { type: #STANDARD, value: 'TransactionDate' }
}
@VDM.viewType: #CONSUMPTION
define view entity C_ShrtTrmCshPosActualFlow
as select from I_CashPositionFlow as flow
cross join I_CashPositionProfile as profile
cross join I_Currency as Currency
cross join I_CalendarDate as KeyDate
cross join I_CalendarDate as CashBalanceDate
cross join I_CashSnapshot as Snapshot
association [0..*] to I_CshPosCurrencySourceText as _CshPosCurSoucText on $projection.CashPositionCurrencySource = _CshPosCurSoucText.CashPositionCurrencySource
{
@UI.facet: [{
id: 'GenInfoSec',
type: #COLLECTION,
purpose: #STANDARD,
position: 10,
label: 'General Information'
},
//General Info field group
{
id: 'GenInfo',
parentId: 'GenInfoSec',
type: #FIELDGROUP_REFERENCE,
position: 10,
targetQualifier: 'GenInfo',
label: 'General Information'
}]
@UI.hidden: true
key profile.CashPositionProfile,
@EndUserText:{label: 'Display Currency'}
@UI.hidden: true
key Currency.Currency as CashPositionDisplayCurrency,
key flow.OriginSystem,
@UI.fieldGroup: [{position: 20, qualifier: 'GenInfo' }]
/* start suppress warning shlporigin_not_inherited */
key flow.OriginApplication,
@UI.fieldGroup: [{position: 30, qualifier: 'GenInfo' }]
@UI.lineItem: [{position: 10, importance: #HIGH }]
key flow.OriginDocument,
key flow.OriginTransaction,
key flow.OriginTransactionQualifier,
key flow.CashFlow,
@UI.hidden: true
key CashBalanceDate.CalendarDate as CashBalanceDate,
@UI.hidden: true
key KeyDate.CalendarDate as KeyDate,
@UI.hidden: true
key Snapshot.CashSnapshot,
// key KeyDate.CalendarDate as KeyDate,
// key CashBalanceDate.CalendarDate as CashBalanceDate,
@UI.hidden: true
@UI.lineItem: [{position: 20, importance: #HIGH}]
@UI.fieldGroup: [{position: 10, qualifier: 'GenInfo' }]
flow.TransactionDate,
flow.BankAccountInternalID,
@Consumption.semanticObject: 'CompanyCode'
@ObjectModel.text.element: [ 'CompanyCodeName' ]
@UI.textArrangement: #TEXT_LAST
flow.CompanyCode,
@UI.lineItem: [{position:30, importance: #HIGH }]
@Semantics.amount.currencyCode: 'BankAccountCurrency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_FCLM_STCP_CALCULATE_AMOUNT'
@UI.fieldGroup: [{position: 40, qualifier: 'GenInfo' }]
cast(cast(0 as abap.curr(23,2)) as fclm_amount_bnkcrcy preserving type ) as AmountInBankAccountCurrency,
@EndUserText:{label: 'Bank Account Currency'}
@UI.hidden: true
flow._BankAccount.BankAccountCurrency,
@UI.lineItem: [{position: 40, importance: #HIGH }]
@Semantics.amount.currencyCode: 'CashPositionDisplayCurrency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_FCLM_STCP_CALCULATE_AMOUNT'
@EndUserText:{label: 'Amount in Target Currency', quickInfo: 'Amount in Target Currency'}
@UI.fieldGroup: [{position: 50, qualifier: 'GenInfo' }]
cast(cast(0 as abap.curr(23,2)) as fqm_amount preserving type ) as AmountInDisplayCurrency,
@UI.hidden : true
profile. CashPositionCurrencySource,
@UI.lineItem: [{position: 70, importance: #HIGH}]
@UI.fieldGroup: [{position: 80, qualifier: 'GenInfo' }]
@EndUserText:{label: 'Cash Position Currency Source', quickInfo: 'Cash Position Currency Source'}
_CshPosCurSoucText[1:Language = $session.system_language].CashPositionCurrencySourceText,
@Semantics.amount.currencyCode: 'TransactionCurrency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_FCLM_STCP_CALCULATE_AMOUNT'
@UI.fieldGroup: [{position: 60, qualifier: 'GenInfo' }]
@EndUserText:{label: 'Amount in Transaction Currency', quickInfo: 'Amount in Transaction Currency'}
flow.AmountInTransactionCurrency as CshPosScaledAmountInTransCrcy,
@Semantics.amount.currencyCode: 'TransactionCurrency'
@UI.hidden: true
flow.AmountInTransactionCurrency,
@EndUserText:{label: 'Transaction Currency'}
@UI.hidden: true
flow.TransactionCurrency,
/* end suppress warning shlporigin_not_inherited */
@Semantics.text: true
flow._CompanyCode.CompanyCodeName,
@UI.hidden: true
cast('' as fclm_balance_clav_source) as CashClosingAvailBalanceSource
}
where
flow.ValidFrom <= Snapshot.CreationDateTime
and flow.ValidTo >= Snapshot.CreationDateTime
and flow.CertaintyLevel = 'ACTUAL'
and flow.CashTransactionOwner <> 'IBU'
and flow.CashTransactionOwner <> 'AGG'
and KeyDate.CalendarDate > flow.TransactionDate
and CashBalanceDate.CalendarDate < flow.TransactionDate
union all select from I_CashPositionFlow as flow
cross join I_CashPositionProfile as profile
cross join I_Currency as Currency
cross join I_CalendarDate as KeyDate
cross join I_CalendarDate as CashBalanceDate
association [0..*] to I_CshPosCurrencySourceText as _CshPosCurSoucText on $projection.CashPositionCurrencySource = _CshPosCurSoucText.CashPositionCurrencySource
{
key profile.CashPositionProfile,
key Currency.Currency as CashPositionDisplayCurrency,
key flow.OriginSystem,
/* start suppress warning shlporigin_not_inherited */
key flow.OriginApplication,
key flow.OriginDocument,
key flow.OriginTransaction,
key flow.OriginTransactionQualifier,
key flow.CashFlow,
key CashBalanceDate.CalendarDate as CashBalanceDate,
key KeyDate.CalendarDate as KeyDate,
key cast('0000000000' as fclm_snapshot_id) as CashSnapshot,
// key KeyDate.CalendarDate as KeyDate,
// key CashBalanceDate.CalendarDate as CashBalanceDate,
flow.TransactionDate,
flow.BankAccountInternalID,
flow.CompanyCode,
cast(cast(0 as abap.curr(23,2)) as fclm_amount_bnkcrcy preserving type ) as AmountInBankAccountCurrency,
flow._BankAccount.BankAccountCurrency,
cast(cast(0 as abap.curr(23,2)) as fqm_amount preserving type ) as AmountInDisplayCurrency,
profile. CashPositionCurrencySource,
_CshPosCurSoucText[1:Language = $session.system_language].CashPositionCurrencySourceText,
flow.AmountInTransactionCurrency as CshPosScaledAmountInTransCrcy,
flow.AmountInTransactionCurrency,
flow.TransactionCurrency,
/* end suppress warning shlporigin_not_inherited */
flow._CompanyCode.CompanyCodeName,
cast('' as fclm_balance_clav_source) as CashClosingAvailBalanceSource
}
where
flow.ValidFrom <= tstmp_current_utctimestamp( )
and flow.ValidTo >= tstmp_current_utctimestamp( )
and flow.CertaintyLevel = 'ACTUAL'
and flow.CashTransactionOwner <> 'IBU'
and flow.CashTransactionOwner <> 'AGG'
and KeyDate.CalendarDate > flow.TransactionDate
and CashBalanceDate.CalendarDate < flow.TransactionDate;
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA