I_ARBankStatementTP

DDL: I_ARBANKSTATEMENTTP SQL: IBANKSTMTTP Type: view TRANSACTIONAL Package: ODATA_BANKSTATEMENT

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 1 data source (I_Arbankstatement) and exposes 69 fields with key field BankStatementShortID. It has 6 associations to related views. Part of development package ODATA_BANKSTATEMENT.

Data Sources (1)

SourceAliasJoin Type
I_Arbankstatement I_Arbankstatement from

Associations (6)

CardinalityTargetAliasCondition
[0..1] I_Arbankstatementpostingdate _PostingDate I_Arbankstatement.BankStatementShortID = _PostingDate.BankStatementShortID -- User name of the Bank Statement creator
[0..1] I_User _User _User.UserID = I_Arbankstatement.CreatedByUser -- MIPF App
[0..1] I_IncomingPaymentFileLine _IncomingPaymentFileLine I_Arbankstatement.BankStatementShortID = _IncomingPaymentFileLine.BankStatementShortID and( _IncomingPaymentFileLine.IncomingPaymentFileType = 'B' or _IncomingPaymentFileLine.IncomingPaymentFileType = 'I' ) --
[0..*] I_ARBankStatementItemTP _Item $projection.BankStatementShortID = _Item.BankStatementShortID
[0..*] I_BankStmntStsText _BankStatementStatus $projection.BankStatementStatus = _BankStatementStatus.BankStatementStatus
[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 (69)

KeyFieldSource TableSource FieldDescription
KEY BankStatementShortID
BankDataStorageApplication
SendingBank I_Arbankstatement SendingBank
BankStatementInternalID
BankStatementRecipientRefID I_Arbankstatement BankStatementRecipientRefID
CompanyCode I_Arbankstatement CompanyCode
CompanyCodeHierarchy Company Code Hierarchy
CompanyCodeHierarchyNode Company Code Hierarchy Node
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 G/L Account Hierarchy Node
BankAccount I_Arbankstatement BankAccount
BankInternalID I_Arbankstatement BankInternalID
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 _IncomingPaymentFileLine IncomingPaymentFile
BankAccountReferenceText I_Arbankstatement BankAccountReferenceText
BankStatementFormat I_Arbankstatement BankStatementFormat
IBAN I_Arbankstatement IBAN
BankCountry I_Arbankstatement BankCountry
BankName I_Arbankstatement BankName
HouseBankAccountDescription I_Arbankstatement HouseBankAccountDescription
IsLatestBankStatement
PostingDate
BankStatementReversalJob I_Arbankstatement BankStatementReversalJob
BankStatementReversalJobName I_Arbankstatement BankStatementReversalJobName
CashPositionIsUpdated
BkStmntIsCashUpdateRelevant
BankStatementPostingType BankStatementPostingType
SemObjByProcessingApplication SemObjByProcessingApplication
RefByProcessingApplication RefByProcessingApplication
BankStmntProcessingApplication BankStmntProcessingApplication
BankStatementImportMessageUUID BankStatementImportMessageUUID
BankStatementImportMessageID BankStatementImportMessageID
_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
@Consumption.dbHints: [ 'USE_HEX_PLAN', 'PRELIMIT_BEFORE_JOIN' ]
@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

  association [0..1] to I_Arbankstatementpostingdate as _PostingDate             on I_Arbankstatement.BankStatementShortID = _PostingDate.BankStatementShortID

  -- User name of the Bank Statement creator
  association [0..1] to I_User                       as _User                    on _User.UserID = I_Arbankstatement.CreatedByUser

  -- MIPF App
  association [0..1] to I_IncomingPaymentFileLine    as _IncomingPaymentFileLine on I_Arbankstatement.BankStatementShortID             = _IncomingPaymentFileLine.BankStatementShortID
                                                                                 and(
                                                                                   _IncomingPaymentFileLine.IncomingPaymentFileType    = 'B'
                                                                                   or _IncomingPaymentFileLine.IncomingPaymentFileType = 'I'
                                                                                 )

  -- 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 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'
      @EndUserText.label: 'Company Code Hierarchy Node'
      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'
      @EndUserText.label: 'G/L Account Hierarchy Node'  
      cast('' as fis_glacct_hrynid_50)                                                         as GLAccountHierarchyNode,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankAccount,
      @ObjectModel.readOnly: true
      I_Arbankstatement.BankInternalID,
      @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
      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 (_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
      _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
      I_Arbankstatement.HouseBankAccountDescription,
      @ObjectModel.readOnly: true
      cast ( I_Arbankstatement.IsLatestBankStatement      as far_islatestbs_ui )               as IsLatestBankStatement,
      @ObjectModel.readOnly: true
      cast ( _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 I_Arbankstatement.JobStatusValue = 'A' )


           then  cast ( 'X'  as far_is_action_enable )
           else  cast ( ' '  as far_is_action_enable ) end                                     as ReversalLogActionIsEnabled,

      @ObjectModel.readOnly: true
      I_Arbankstatement.BankStatementReversalJob,
      @ObjectModel.readOnly: true
      I_Arbankstatement.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.readOnly: true
      SemObjByProcessingApplication,
      @ObjectModel.readOnly: true
      RefByProcessingApplication,
      @ObjectModel.readOnly: true
      BankStmntProcessingApplication,
      @ObjectModel.readOnly: true
      BankStatementImportMessageUUID                                                           as BankStatementImportMessageUUID,
      @ObjectModel.enabled:'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: true
      BankStatementImportMessageID,
      @ObjectModel.association.type:  [ #TO_COMPOSITION_CHILD ]
      @ObjectModel.readOnly: true
      _Item,
      @ObjectModel.readOnly: true
      _BankStatementStatus,
      @ObjectModel.readOnly: true
      _Currency

}