I_ARBankStatementTP

DDL: I_ARBANKSTATEMENTTP SQL: IBANKSTMTTP Type: view TRANSACTIONAL

Bank Statement BO active and draft

I_ARBankStatementTP is a Transactional CDS View that provides data about "Bank Statement BO active and draft" in SAP S/4HANA. It reads from 5 data sources (I_Arbankstatementpostingdate, I_Arbankstatement, I_IncomingPaymentFileLine, I_User, P_Arbankstatementjob) and exposes 62 fields with key field BankStatementShortID. It has 4 associations to related views.

Data Sources (5)

SourceAliasJoin Type
I_Arbankstatementpostingdate Bs_Postingdate left_outer
I_Arbankstatement I_Arbankstatement from
I_IncomingPaymentFileLine I_IncomingPaymentFileLine left_outer
I_User I_User left_outer
P_Arbankstatementjob ReversalJob left_outer

Associations (4)

CardinalityTargetAliasCondition
[0..*] I_ARBankStatementItemTP _Item $projection.BankStatementShortID = _Item.BankStatementShortID
[0..*] I_BankStmntStsText _BankStatementStatus $projection.BankStatementStatus = _BankStatementStatus.BankStatementStatus
[0..1] E_ARBankStatement _Extension $projection.BankStatementShortID = _Extension.BankStatementShortID and $projection.SendingBank = _Extension.SendingBank and $projection.BankStatementInternalID = _Extension.BankStatementInternalID and $projection.BankStatementRecipientRefID = _Extension.BankStatementRecipientRefID
[0..1] I_Currency _Currency $projection.Currency = _Currency.Currency

Annotations (18)

NameValueLevelField
AbapCatalog.sqlViewName IBANKSTMTTP view
AbapCatalog.preserveKey true view
EndUserText.label Bank Statement BO active and draft view
AccessControl.authorizationCheck #CHECK view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #TRANSACTIONAL view
Search.searchable true view
ObjectModel.modelCategory #BUSINESS_OBJECT view
ObjectModel.transactionalProcessingEnabled true view
ObjectModel.draftEnabled true view
ObjectModel.writeDraftPersistence FEBKO_DRAFT_V2 view
ObjectModel.compositionRoot true view
ObjectModel.entityChangeStateId EXTERNAL_CALCULATION view
UI.headerInfo.description Manage Bank Statement view
UI.headerInfo.description.label Manage Bank Statement view

Fields (62)

KeyFieldSource TableSource FieldDescription
KEY BankStatementShortID
BankDataStorageApplication
SendingBank I_Arbankstatement SendingBank
BankStatementInternalID
BankStatementRecipientRefID I_Arbankstatement BankStatementRecipientRefID
CompanyCode I_Arbankstatement CompanyCode
CompanyCodeHierarchy Company Code Hierarchy
CompanyCodeHierarchyNode
HouseBank I_Arbankstatement HouseBank
HouseBankAccount
BankAccountInternalID I_Arbankstatement BankAccountInternalID
BankStatement
BankStatementDate
BankStatementTime
BankStatementStatus I_Arbankstatement BankStatementStatus
BankStatementStatusName I_Arbankstatement BankStatementStatusName
Currency I_Arbankstatement Currency
BankLedgerIsPosted I_Arbankstatement BankLedgerIsPosted
SubledgerIsPostedSuccessfully I_Arbankstatement SubledgerIsPostedSuccessfully
BankStatementIsInterpreted
GLAccount
GLAccountHierarchy
GLAccountHierarchyNode
BankAccount I_Arbankstatement BankAccount
BankAccountHolderName I_Arbankstatement BankAccountHolderName
BankAccountAdditionalName
BankStatementPageNumber
ChartOfAccounts I_Arbankstatement ChartOfAccounts
OpeningBalanceIsInterim
OpeningBalanceAmtInTransCrcy I_Arbankstatement OpeningBalanceAmtInTransCrcy
InterimOpenBalAmtInTransCrcy I_Arbankstatement InterimOpenBalAmtInTransCrcy
InterimClsgBalAmtInTransCrcy I_Arbankstatement InterimClsgBalAmtInTransCrcy
TotalDebitAmountInTransCrcy I_Arbankstatement TotalDebitAmountInTransCrcy
TotalCreditAmountInTransCrcy I_Arbankstatement TotalCreditAmountInTransCrcy
ClosingBalanceIsInterim
ClosingBalanceAmtInTransCrcy I_Arbankstatement ClosingBalanceAmtInTransCrcy
InterestRateInPercent I_Arbankstatement InterestRateInPercent
BankAccountType I_Arbankstatement BankAccountType
BankStatementNumberOfItems I_Arbankstatement BankStatementNumberOfItems
NumberOfItems I_Arbankstatement NumberOfItems
PaymentTransactionTypeGroup I_Arbankstatement PaymentTransactionTypeGroup
BankStatementIsManuallyCreated
CreatedByUser I_Arbankstatement CreatedByUser
PersonFullName
BankStatementImportDate I_Arbankstatement BankStatementImportDate
BankStatementImportTime I_Arbankstatement BankStatementImportTime
IncomingPaymentFile I_IncomingPaymentFileLine IncomingPaymentFile
BankAccountReferenceText I_Arbankstatement BankAccountReferenceText
BankStatementFormat I_Arbankstatement BankStatementFormat
IBAN I_Arbankstatement IBAN
BankCountry I_Arbankstatement BankCountry
BankName I_Arbankstatement BankName
IsLatestBankStatement
PostingDate
BankStatementReversalJob
BankStatementReversalJobName
CashPositionIsUpdated
BkStmntIsCashUpdateRelevant
BankStatementPostingType BankStatementPostingType
_Item _Item
_BankStatementStatus _BankStatementStatus
_Currency _Currency
@AbapCatalog.sqlViewName: 'IBANKSTMTTP'
@AbapCatalog.preserveKey:true
@EndUserText.label: 'Bank Statement BO active and draft'
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.dataClass: #MIXED
-- VDM Related  Annotations
@VDM.viewType: #TRANSACTIONAL
@Search.searchable: true
-- BOPF Related An notatio ns
@ObjectModel.modelCategory: #BUSINESS_OBJECT
//@ObjectModel.writeEnabled: true

@ObjectModel.transactionalProcessingEnabled: true
@ObjectModel.draftEnabled: true
@ObjectModel.writeDraftPersistence: 'FEBKO_DRAFT_V2'
@ObjectModel.semanticKey: ['BankStatementShortID']
@ObjectModel.compositionRoot: true

@ObjectModel.createEnabled
@ObjectModel.updateEnabled
@ObjectModel.deleteEnabled

@ObjectModel.entityChangeStateId: 'EXTERNAL_CALCULATION'
-- Header Related  Annotations
@UI.headerInfo.description : 'Manage Bank Statement'
@UI.headerInfo.description.label: 'Manage Bank Statement'


define view I_ARBankStatementTP


  as select from    I_Arbankstatement

    left outer join I_Arbankstatementpostingdate as Bs_Postingdate on I_Arbankstatement.BankStatementShortID = Bs_Postingdate.BankStatementShortID

  -- User name of the Bank Statement creator
    left outer join I_User                                         on I_User.UserID = I_Arbankstatement.CreatedByUser
  -- MIPF App
    left outer join I_IncomingPaymentFileLine                      on I_Arbankstatement.BankStatementShortID = I_IncomingPaymentFileLine.BankStatementShortID

    left outer join P_Arbankstatementjob         as ReversalJob    on  ReversalJob.BankStatementShortID = I_Arbankstatement.BankStatementShortID
                                                                   and ReversalJob.BankStatementJobType = 'R'

  -- Association with bank statement Items
  association [0..*] to I_ARBankStatementItemTP as _Item                on  $projection.BankStatementShortID = _Item.BankStatementShortID



  association [0..*] to I_BankStmntStsText      as _BankStatementStatus on  $projection.BankStatementStatus = _BankStatementStatus.BankStatementStatus




  association [0..1] to E_ARBankStatement       as _Extension           on  $projection.BankStatementShortID        = _Extension.BankStatementShortID
                                                                        and $projection.SendingBank                 = _Extension.SendingBank
                                                                        and $projection.BankStatementInternalID     = _Extension.BankStatementInternalID
                                                                        and $projection.BankStatementRecipientRefID = _Extension.BankStatementRecipientRefID

  association [0..1] to I_Currency              as _Currency            on  $projection.Currency = _Currency.Currency
  
{

      //  key I_Arbankstatement.Draf tUUID,

      @ObjectModel.readOnly: true
  key cast ( I_Arbankstatement.BankStatementShortID as farp_kukey )                            as BankStatementShortID,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.BankDataStorageApplication as far_anwnd_idbs_bs )               as BankDataStorageApplication,
      @ObjectModel.readOnly: true
      I_Arbankstatement.SendingBank,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.BankStatementInternalID   as farp_azidt )                       as BankStatementInternalID,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankStatementRecipientRefID,
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #HIGH
      @ObjectModel.enabled: true
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      I_Arbankstatement.CompanyCode,
      @Consumption.valueHelpDefinition: [{ entity:{ name: 'I_CompanyCodeHierarchyVH', element: 'CompanyCodeHierarchy' } }] 
      @Consumption.filter.selectionType: #SINGLE
      @ObjectModel.filter.transformedBy: 'ABAP:CL_FINS_HIER_VH_FLTR_TRANSFORM'
      @EndUserText.label: 'Company Code Hierarchy'
      cast('' as fis_hryid_ccode_42) as CompanyCodeHierarchy, 
      @Consumption.filter.hidden: true   
      @ObjectModel.filter.transformedBy: 'ABAP:CL_FINS_HIER_VH_FLTR_TRANSFORM'                           
      cast('' as fis_hrynid_ccode_50) as CompanyCodeHierarchyNode,
      @ObjectModel.enabled: true
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      I_Arbankstatement.HouseBank,
      @ObjectModel.enabled: true
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      cast(I_Arbankstatement.HouseBankAccount as farp_hktid)                                   as HouseBankAccount,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankAccountInternalID,
      //I_Arbankstatement.BankAccountUUID,

      @ObjectModel.enabled: true
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      cast ( I_Arbankstatement.BankStatement as farp_aznum )                                   as BankStatement,
      @ObjectModel.enabled: true
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      cast ( I_Arbankstatement.BankStatementDate as farp_azdat )                               as BankStatementDate,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.BankStatementTime as farp_aztim )                               as BankStatementTime,
      @ObjectModel.filter.transformedBy: 'ABAP:CL_FAC_TIMESTAMP_FLT'
      cast(dats_tims_to_tstmp(I_Arbankstatement.BankStatementDate, I_Arbankstatement.BankStatementTime,
        abap_system_timezone($session.client, 'NULL'),
        $session.client, 'NULL') as far_bs_timestamp_on)                                       as BankStatementDateTime,
      //  @ObjectModel.text.association: '_BankStatementStatus'

      @ObjectModel.readOnly: true
      I_Arbankstatement.BankStatementStatus,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankStatementStatusName,
      //      @ObjectModel.foreignKey.association: '_Currency'

      @Semantics.currencyCode: true
      @ObjectModel.readOnly: true
      I_Arbankstatement.Currency,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankLedgerIsPosted,
      @ObjectModel.readOnly: true
      I_Arbankstatement.SubledgerIsPostedSuccessfully,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.BankStatementIsInterpreted as farp_kipre )                      as BankStatementIsInterpreted,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.GLAccount as farp_hkont )                                       as GLAccount,
      @Consumption.valueHelpDefinition: [{ entity: { name: 'I_GLAccountHierarchyStdVH', element: 'GLAccountHierarchy' } }]
      @Consumption.filter.selectionType: #SINGLE
      @ObjectModel.filter.transformedBy: 'ABAP:CL_FINS_HIER_VH_FLTR_TRANSFORM'
      cast('' as fis_glaccthier)                                                       as GLAccountHierarchy,
      @Consumption.filter.hidden: true
      @ObjectModel.filter.transformedBy: 'ABAP:CL_FINS_HIER_VH_FLTR_TRANSFORM'
      cast('' as fis_glacct_hrynid_50)                                                 as GLAccountHierarchyNode,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankAccount,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankAccountHolderName,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.BankAccountAdditionalName as farp_ktosb )                       as BankAccountAdditionalName,
      @ObjectModel.enabled: true
      @ObjectModel.mandatory: false
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      cast ( I_Arbankstatement.BankStatementPageNumber as farp_azpgno )                        as BankStatementPageNumber,
      @ObjectModel.readOnly: true
      I_Arbankstatement.ChartOfAccounts,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.OpeningBalanceIsInterim as farp_opening_bal_interim_ind )       as OpeningBalanceIsInterim,
      @ObjectModel.enabled: true
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Semantics.amount.currencyCode: 'Currency'
      I_Arbankstatement.OpeningBalanceAmtInTransCrcy,
      @ObjectModel.enabled: true
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Semantics.amount.currencyCode: 'Currency'
      I_Arbankstatement.InterimOpenBalAmtInTransCrcy,
      @ObjectModel.enabled: true
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Semantics.amount.currencyCode: 'Currency'
      I_Arbankstatement.InterimClsgBalAmtInTransCrcy,
      @ObjectModel.readOnly: true
      @Semantics.amount.currencyCode: 'Currency'
      I_Arbankstatement.TotalDebitAmountInTransCrcy,
      @ObjectModel.readOnly: true
      @Semantics.amount.currencyCode: 'Currency'
      I_Arbankstatement.TotalCreditAmountInTransCrcy,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.ClosingBalanceIsInterim as farp_closing_bal_interim_ind )       as ClosingBalanceIsInterim,
      @ObjectModel.enabled: true
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Semantics.amount.currencyCode: 'Currency'
      I_Arbankstatement.ClosingBalanceAmtInTransCrcy,
      @ObjectModel.readOnly: true
      I_Arbankstatement.InterestRateInPercent,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankAccountType,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankStatementNumberOfItems                                             as BankStatementNumberOfItems,
      @ObjectModel.readOnly: true
      I_Arbankstatement.NumberOfItems                                                          as NumberOfItems,
      //      NumberOfItems,

      @ObjectModel.enabled: true
      @ObjectModel.mandatory: false
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      I_Arbankstatement.PaymentTransactionTypeGroup,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.BankStatementIsManuallyCreated as farp_bs_manual_created_ind )  as BankStatementIsManuallyCreated,
      @ObjectModel.readOnly: true
      I_Arbankstatement.CreatedByUser,
      @ObjectModel.readOnly: true
      cast (I_User.UserDescription as farp_euser_name )                                        as PersonFullName,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankStatementImportDate,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankStatementImportTime,
      @ObjectModel.filter.transformedBy: 'ABAP:CL_FAC_TIMESTAMP_FLT'
      cast(dats_tims_to_tstmp(I_Arbankstatement.BankStatementImportDate, I_Arbankstatement.BankStatementImportTime,
        abap_system_timezone($session.client, 'NULL'),
        $session.client, 'NULL') as far_bs_importtimestamp)                                    as BankStatementImportDateTime,
      @ObjectModel.enabled:'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: true
      I_IncomingPaymentFileLine.IncomingPaymentFile                                            as IncomingPaymentFile, //no cardinality problem: only 1 File per kukey

      @ObjectModel.readOnly: true
      I_Arbankstatement.BankAccountReferenceText,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankStatementFormat,
      @ObjectModel.readOnly: true
      I_Arbankstatement.IBAN,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankCountry,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankName                                                               as BankName,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.IsLatestBankStatement      as far_islatestbs_ui )               as IsLatestBankStatement,
      @ObjectModel.readOnly: true
      cast ( Bs_Postingdate.PostingDate as farp_budat )                                        as PostingDate,
      
      @ObjectModel.readOnly: true
      -- To Enable/Disable post action button
      case when I_Arbankstatement.BankStatementStatus = '2'  or
                I_Arbankstatement.BankStatementStatus = ' ' or
                I_Arbankstatement.BankStatementStatus = 'A'

           then  cast ( 'X'  as far_is_action_enable )
           else  cast ( ' '  as far_is_action_enable ) end                                     as PostActionIsEnabled,
      
      @ObjectModel.readOnly: true
      -- To Enable/Disable create next action button
      case when I_Arbankstatement.BankStatementStatus = '0'
            then  cast ( ' '  as far_is_action_enable )
            else  cast ( 'X'  as far_is_action_enable ) end                                    as CreateNextActionIsEnabled,

      
      @ObjectModel.readOnly: true
      -- To Enable/Disable reverse action button
      case when ( I_Arbankstatement.BankDataStorageApplication = '0001' or I_Arbankstatement.BankDataStorageApplication = '0007' )
             and ( I_Arbankstatement.BankStatementStatus = '7'  or I_Arbankstatement.BankStatementStatus = '8' or I_Arbankstatement.BankStatementStatus = 'E' )
             and I_Arbankstatement.BankStatementPostingType = ''
           then  cast ( 'X'  as far_is_action_enable )
           else  cast ( ' '  as far_is_action_enable ) end                                     as ReverseActionIsEnabled,
      
      @ObjectModel.readOnly: true
      -- To Enable/Disable reversal log action button
      case when I_Arbankstatement.BankStatementStatus = 'E' or
                I_Arbankstatement.BankStatementStatus = 'R' or
                I_Arbankstatement.BankStatementStatus = 'Q' or
                ( ( I_Arbankstatement.BankStatementStatus = '7' or I_Arbankstatement.BankStatementStatus = '8' ) and ReversalJob.StatusCode = 'A' )


           then  cast ( 'X'  as far_is_action_enable )
           else  cast ( ' '  as far_is_action_enable ) end                                     as ReversalLogActionIsEnabled,
      
      @ObjectModel.readOnly: true
      cast ( ReversalJob.ApplicationJob as farp_btcjobcnt )                                         as BankStatementReversalJob,
      @ObjectModel.readOnly: true
      cast ( ReversalJob.ApplicationJobName as btcjob )                                        as BankStatementReversalJobName,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.CashPositionIsUpdated as far_cash_position_is_updated )         as CashPositionIsUpdated,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.BkStmntIsCashUpdateRelevant as far_cash_pos_is_updat_relevant ) as BkStmntIsCashUpdateRelevant,
      @ObjectModel.readOnly: true
      case when I_Arbankstatement.CashPositionIsUpdated = 'X'
                then cast ( 'C' as far_cash_pos_update_status )
           when  I_Arbankstatement.CashPositionIsUpdated = '' and  I_Arbankstatement.BkStmntIsCashUpdateRelevant = 'X'
                then cast ( 'I' as far_cash_pos_update_status )
           else
                cast ( 'N' as far_cash_pos_update_status )
           end                                                                                 as CashPositionUpdateStatus,
      @ObjectModel.readOnly: true
      BankStatementPostingType,
      @ObjectModel.association.type:  [ #TO_COMPOSITION_CHILD ]
      @ObjectModel.readOnly: true
      _Item,
      @ObjectModel.readOnly: true
      _BankStatementStatus,
      @ObjectModel.readOnly: true
      _Currency
      
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ARBANKSTATEMENT",
"I_ARBANKSTATEMENTPOSTINGDATE",
"I_INCOMINGPAYMENTFILELINE",
"I_USER",
"P_ARBANKSTATEMENTJOB"
],
"ASSOCIATED":
[
"E_ARBANKSTATEMENT",
"I_ARBANKSTATEMENTITEMTP",
"I_BANKSTMNTSTSTEXT",
"I_CURRENCY"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/