I_GLAcctInChtAcctsTP

DDL: I_GLACCTINCHTACCTSTP SQL: IGLACOATP Type: view TRANSACTIONAL

G/L Account in ChtAccts (Draft 2.0)

I_GLAcctInChtAcctsTP is a Transactional CDS View that provides data about "G/L Account in ChtAccts (Draft 2.0)" in SAP S/4HANA. It reads from 1 data source (I_GLAccountInChartOfAccounts) and exposes 46 fields with key fields ChartOfAccounts, GLAccount. It has 17 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_GLAccountInChartOfAccounts I_GLAccountInChartOfAccounts from

Associations (17)

CardinalityTargetAliasCondition
[0..*] I_GLAcctTextTP _Text $projection.ChartOfAccounts = _Text.ChartOfAccounts and $projection.GLAccount = _Text.GLAccount
[0..*] I_GLAcctInCoCodeTP _GLAcctInCoCodeTP $projection.ChartOfAccounts = _GLAcctInCoCodeTP.ChartOfAccounts and $projection.GLAccount = _GLAcctInCoCodeTP.GLAccount
[0..*] I_CostElementTP _CostElementTP $projection.ChartOfAccounts = _CostElementTP.ChartOfAccounts and $projection.GLAccount = _CostElementTP.GLAccount
[0..1] I_GLAccountForPublicSectorTP _PublicSectorTP $projection.ChartOfAccounts = _PublicSectorTP.ChartOfAccounts and $projection.GLAccount = _PublicSectorTP.GLAccount
[0..1] I_ChartOfAccounts _ChartOfAccounts $projection.ChartOfAccountsForEdit = _ChartOfAccounts.ChartOfAccounts
[1] I_User _User $projection.CreatedByUser = _User.UserID
[0..1] I_GLAccountType _Glaccounttype $projection.GLAccountType = _Glaccounttype.GLAccountType
[0..1] I_GLAccountSubtype _GLAccountSubtype $projection.GLAccountSubtype = _GLAccountSubtype.GLAccountSubtype
[0..1] I_BankRecnclnAccount _BankRecnclnAcct $projection.ChartOfAccountsForEdit = _BankRecnclnAcct.ChartOfAccounts and $projection.BankReconciliationAccount = _BankRecnclnAcct.BankReconciliationAccount
[1..1] I_Globalcompany _Globalcompany $projection.PartnerCompany = _Globalcompany.Company
[0..1] I_GLAccountGroup _Glaccountgroup $projection.GLAccountGroup = _Glaccountgroup.GLAccountGroup and $projection.ChartOfAccountsForEdit = _Glaccountgroup.ChartOfAccounts
[0..1] I_FunctionalArea _FunctionalArea $projection.FunctionalArea = _FunctionalArea.FunctionalArea
[0..1] I_GLAccountInChartOfAccounts _CorporateGroupAccount $projection.corporategroupchartofaccounts = _CorporateGroupAccount.ChartOfAccounts and $projection.CorporateGroupAccount = _CorporateGroupAccount.GLAccount
[0..1] I_ProfitLossAccountType_Vh _ProfitLossAccountType_Vh $projection.ChartOfAccountsForEdit = _ProfitLossAccountType_Vh.ChartOfAccounts and $projection.ProfitLossAccountType = _ProfitLossAccountType_Vh.ProfitLossAccountType
[0..1] I_ChartOfAccounts _CorpGroupChartOfAccounts $projection.corporategroupchartofaccounts = _CorpGroupChartOfAccounts.ChartOfAccounts
[0..1] I_GLAcctInDefaultLanguageText _GLAcctTxtInMaintLang $projection.ChartOfAccounts = _GLAcctTxtInMaintLang.ChartOfAccounts and $projection.GLAccount = _GLAcctTxtInMaintLang.GLAccount and $projection.MaintenanceLanguage = _GLAcctTxtInMaintLang.Language
[0..1] I_RetainedEarningsGLAccount _RetainedEarningsGLAccount $projection.ChartOfAccountsForEdit = _RetainedEarningsGLAccount.ChartOfAccounts and $projection.ProfitLossAccountType = _RetainedEarningsGLAccount.ProfitLossAccountType

Annotations (16)

NameValueLevelField
AbapCatalog.compiler.compareFilter true view
AbapCatalog.sqlViewName IGLACOATP view
AccessControl.authorizationCheck #CHECK view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label G/L Account in ChtAccts (Draft 2.0) view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.transactionalProcessingEnabled true view
ObjectModel.writeDraftPersistence SKA1_DRAFT_20 view
ObjectModel.draftEnabled true view
ObjectModel.modelCategory #BUSINESS_OBJECT view
ObjectModel.compositionRoot true view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
Search.searchable true view
VDM.viewType #TRANSACTIONAL view

Fields (46)

KeyFieldSource TableSource FieldDescription
KEY ChartOfAccounts I_GLAccountInChartOfAccounts ChartOfAccounts
KEY GLAccount GLAccount
ChartOfAccountsForEdit I_GLAccountInChartOfAccounts ChartOfAccounts
GLAccountForEdit GLAccount
IsBalanceSheetAccount IsBalanceSheetAccount
GLAccountGroup GLAccountGroup
CorporateGroupAccount CorporateGroupAccount
ProfitLossAccountType ProfitLossAccountType
SampleGLAccount SampleGLAccount
AccountIsMarkedForDeletion AccountIsMarkedForDeletion
AccountIsBlockedForCreation AccountIsBlockedForCreation
AccountIsBlockedForPosting AccountIsBlockedForPosting
AccountIsBlockedForPlanning AccountIsBlockedForPlanning
PartnerCompany PartnerCompany
FunctionalArea FunctionalArea
CreationDate CreationDate
CreatedByUser CreatedByUser
GLAccountType GLAccountType
GLAccountSubtype GLAccountSubtype
BankReconciliationAccount BankReconciliationAccount
GLAccountExternal GLAccountExternal
GLAccountIsNotProdnRelevant _GLAcctInChartOfAcctsProdn GLAccountIsNotProdnRelevant
MaintenanceLanguage chtaccts MaintenanceLanguage
DraftReferenceChartOfAccounts
DraftReferenceGLAccount
GLAccountName _GLAcctTxtInMaintLang GLAccountName
GLAccountLongName _GLAcctTxtInMaintLang GLAccountLongName
CorporateGroupChartOfAccounts _ChartOfAccounts CorporateGroupChartOfAccounts
sakanendasCorporateGroupAccountExternal
_ChartOfAccounts _ChartOfAccounts
_CorporateGroupAccount _CorporateGroupAccount
_FunctionalArea _FunctionalArea
_Glaccountgroup _Glaccountgroup
_Glaccounttype _Glaccounttype
_GLAccountSubtype _GLAccountSubtype
_BankRecnclnAcct _BankRecnclnAcct
_GLAcctTxtInMaintLang _GLAcctTxtInMaintLang
_Globalcompany _Globalcompany
_ProfitLossAccountType_Vh _ProfitLossAccountType_Vh
_RetainedEarningsGLAccount _RetainedEarningsGLAccount
_CorpGroupChartOfAccounts _CorpGroupChartOfAccounts
_User _User
_GLAcctInCoCodeTP _GLAcctInCoCodeTP
_CostElementTP _CostElementTP
_PublicSectorTP _PublicSectorTP
_Text _Text
@AbapCatalog.compiler.compareFilter: true 
@AbapCatalog.sqlViewName: 'IGLACOATP'  
@AccessControl.authorizationCheck: #CHECK  
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'G/L Account in ChtAccts (Draft 2.0)'
@Metadata.ignorePropagatedAnnotations: true 
@ObjectModel: {
  semanticKey: ['ChartOfAccounts', 'GLAccount'],
  transactionalProcessingEnabled: true,    
  writeDraftPersistence: 'SKA1_DRAFT_20',   
  draftEnabled: true,
  modelCategory: #BUSINESS_OBJECT, 
  compositionRoot: true,
  createEnabled,
  deleteEnabled,  
  updateEnabled, 
  usageType: {
    dataClass: #MIXED,   
    serviceQuality: #D,  
    sizeCategory: #XL  
  }
}   
@Search.searchable: true   
@VDM.viewType: #TRANSACTIONAL      


/*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ]  } */ 
define view I_GLAcctInChtAcctsTP     
  as select from           I_GLAccountInChartOfAccounts
    left outer to one join I_ChartOfAccounts as chtaccts on I_GLAccountInChartOfAccounts.ChartOfAccounts = chtaccts.ChartOfAccounts
    left outer to one join ska1 as _GroupAccount on chtaccts.CorporateGroupChartOfAccounts = _GroupAccount.ktopl
                                                and I_GLAccountInChartOfAccounts.CorporateGroupAccount         = _GroupAccount.saknr
    

  /* BO node associations */
  association [0..*] to I_GLAcctTextTP               as _Text                     on  $projection.ChartOfAccounts = _Text.ChartOfAccounts
                                                                                  and $projection.GLAccount       = _Text.GLAccount

  association [0..*] to I_GLAcctInCoCodeTP           as _GLAcctInCoCodeTP         on  $projection.ChartOfAccounts = _GLAcctInCoCodeTP.ChartOfAccounts
                                                                                  and $projection.GLAccount       = _GLAcctInCoCodeTP.GLAccount

  association [0..*] to I_CostElementTP              as _CostElementTP            on  $projection.ChartOfAccounts = _CostElementTP.ChartOfAccounts
                                                                                  and $projection.GLAccount       = _CostElementTP.GLAccount
  association [0..1] to I_GLAccountForPublicSectorTP as _PublicSectorTP           on  $projection.ChartOfAccounts = _PublicSectorTP.ChartOfAccounts                                                                                  and $projection.GLAccount       = _PublicSectorTP.GLAccount
  /* Associations */
  association [0..1] to I_ChartOfAccounts            as _ChartOfAccounts          on  $projection.ChartOfAccountsForEdit = _ChartOfAccounts.ChartOfAccounts

  association [1]    to I_User                       as _User                     on  $projection.CreatedByUser = _User.UserID

  association [0..1] to I_GLAccountType              as _Glaccounttype            on  $projection.GLAccountType = _Glaccounttype.GLAccountType
  
  association [0..1] to I_GLAccountSubtype           as _GLAccountSubtype         on  $projection.GLAccountSubtype = _GLAccountSubtype.GLAccountSubtype
  
  association [0..1] to I_BankRecnclnAccount         as _BankRecnclnAcct          on  $projection.ChartOfAccountsForEdit    = _BankRecnclnAcct.ChartOfAccounts
                                                                                  and $projection.BankReconciliationAccount = _BankRecnclnAcct.BankReconciliationAccount
  
  association [1..1] to I_Globalcompany              as _Globalcompany            on  $projection.PartnerCompany = _Globalcompany.Company

  association [0..1] to I_GLAccountGroup             as _Glaccountgroup           on  $projection.GLAccountGroup         = _Glaccountgroup.GLAccountGroup
                                                                                  and $projection.ChartOfAccountsForEdit = _Glaccountgroup.ChartOfAccounts

  association [0..1] to I_FunctionalArea             as _FunctionalArea           on  $projection.FunctionalArea = _FunctionalArea.FunctionalArea

  association [0..1] to I_GLAccountInChartOfAccounts as _CorporateGroupAccount    on  $projection.corporategroupchartofaccounts = _CorporateGroupAccount.ChartOfAccounts
                                                                                  and $projection.CorporateGroupAccount  = _CorporateGroupAccount.GLAccount

  association [0..1] to I_ProfitLossAccountType_Vh   as _ProfitLossAccountType_Vh on  $projection.ChartOfAccountsForEdit = _ProfitLossAccountType_Vh.ChartOfAccounts
                                                                                  and $projection.ProfitLossAccountType  = _ProfitLossAccountType_Vh.ProfitLossAccountType

 association [0..1] to I_ChartOfAccounts             as _CorpGroupChartOfAccounts on $projection.corporategroupchartofaccounts = _CorpGroupChartOfAccounts.ChartOfAccounts
 association [0..1] to I_GLAcctInDefaultLanguageText as _GLAcctTxtInMaintLang     on  $projection.ChartOfAccounts     = _GLAcctTxtInMaintLang.ChartOfAccounts
                                                                                  and $projection.GLAccount           = _GLAcctTxtInMaintLang.GLAccount
                                                                                  and $projection.MaintenanceLanguage = _GLAcctTxtInMaintLang.Language 
  association [0..1] to I_RetainedEarningsGLAccount  as _RetainedEarningsGLAccount on  $projection.ChartOfAccountsForEdit       = _RetainedEarningsGLAccount.ChartOfAccounts
                                                                                   and $projection.ProfitLossAccountType = _RetainedEarningsGLAccount.ProfitLossAccountType                                                                                  

{
      @ObjectModel.readOnly: true
  key I_GLAccountInChartOfAccounts.ChartOfAccounts,
      @ObjectModel.readOnly: true
  key GLAccount,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 1.0
      @Search.ranking: #MEDIUM
      @ObjectModel.foreignKey.association: '_ChartOfAccounts'
      @ObjectModel.mandatory: true
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION' // dynamic field control required by authorization control at UI level, hereinafter

      I_GLAccountInChartOfAccounts.ChartOfAccounts as ChartOfAccountsForEdit, // Alias of ChartOfAccounts for active; Value to be provided by user for draft

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #HIGH
      @ObjectModel.mandatory: true
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      GLAccount                                    as GLAccountForEdit,       // Alias of GLAccount for active; Value to be provided by user for draft


      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      IsBalanceSheetAccount,
      @ObjectModel.mandatory: true
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.foreignKey.association: '_Glaccountgroup'
      GLAccountGroup,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.foreignKey.association: '_CorporateGroupAccount'
      CorporateGroupAccount,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @Consumption.valueHelp: '_ProfitLossAccountType_Vh'
      ProfitLossAccountType,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      SampleGLAccount,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      AccountIsMarkedForDeletion,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      AccountIsBlockedForCreation,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      AccountIsBlockedForPosting,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      AccountIsBlockedForPlanning,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.foreignKey.association: '_Globalcompany'
      PartnerCompany,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.foreignKey.association: '_FunctionalArea'
      FunctionalArea,
      @ObjectModel.readOnly: true
      @Semantics.systemDate.createdAt: true
      CreationDate,
      @ObjectModel.readOnly: true
      @Semantics.user.id: true
      CreatedByUser,
   
      @ObjectModel.mandatory: true
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.foreignKey.association: '_Glaccounttype'
      GLAccountType,
      
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.foreignKey.association: '_GLAccountSubtype'
      GLAccountSubtype,
      
      @ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.foreignKey.association: '_BankRecnclnAcct'
      BankReconciliationAccount,  //Account with sub-type B

      
      @ObjectModel.readOnly: true
      GLAccountExternal,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      _GLAcctInChartOfAcctsProdn.GLAccountIsNotProdnRelevant,

      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      case 
          when I_GLAccountInChartOfAccounts._GLAcctInChartOfAcctsStatus.GLAcctCOAImplementStatus is null then 
            cast ( 'I' as glaccount_imst)    //in process for SAP Delivered Content after Migration

          else 
            I_GLAccountInChartOfAccounts._GLAcctInChartOfAcctsStatus.GLAcctCOAImplementStatus
          end as GLAcctCOAImplementStatus,
 
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'     
      case 
          when I_GLAccountInChartOfAccounts._GLAcctInChartOfAcctsStatus.GLAcctCOAImplementStatus is null then 
            'X'
          else 
            I_GLAccountInChartOfAccounts._GLAcctInChartOfAcctsStatus.GLAccountCOAIsDeliveredBySAP
          end as GLAccountCOAIsDeliveredBySAP,                   

      @ObjectModel.readOnly: true
      chtaccts.MaintenanceLanguage, // Value to be derived from 'ChartOfAccountsForEdit' for draft (via BO determination triggered by UPDATE)


      // The existing OData client requires at least read access for both fields

      cast ('' as ktopl)                           as DraftReferenceChartOfAccounts, // Value to be set when COPY

      cast ('' as saknr)                           as DraftReferenceGLAccount,       // Value to be set when COPY


      /**
       * Open Question: Check below:
       * Read: it should read both active and draft text
       * Write: it should write through to the persistence table of I_GLAcctTextTP
       */
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #LOW
      @ObjectModel.mandatory: true 
      _GLAcctTxtInMaintLang.GLAccountName,     // Write through to TEXT node when field updated by user, or updated when TEXT updated

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #LOW
      _GLAcctTxtInMaintLang.GLAccountLongName, // Write through to TEXT node when field updated by user, or updated when TEXT updated

      @ObjectModel.readOnly: true
      @ObjectModel.foreignKey.association: '_CorpGroupChartOfAccounts'
      _ChartOfAccounts.CorporateGroupChartOfAccounts,
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      //for special case: Remove Group COA after maintained Group COA Account

      case when CorporateGroupAccount is not null and _GroupAccount.sakan is null
           then cast ( CorporateGroupAccount as sakan )
           else _GroupAccount.sakan end as CorporateGroupAccountExternal,
      //_GroupAccount.sakan as CorporateGroupAccountExternal,

      /* Associations */ 
      _ChartOfAccounts,
      _CorporateGroupAccount,
      _FunctionalArea,
      _Glaccountgroup,
      _Glaccounttype,
      _GLAccountSubtype,
      _BankRecnclnAcct, //G/L Account with Sub-type B

      _GLAcctTxtInMaintLang,
      _Globalcompany,
      _ProfitLossAccountType_Vh,
      _RetainedEarningsGLAccount,
      _CorpGroupChartOfAccounts,
      _User,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _GLAcctInCoCodeTP,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _CostElementTP,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _PublicSectorTP,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _Text
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CHARTOFACCOUNTS",
"I_GLACCOUNTINCHARTOFACCOUNTS",
"I_GLACCTINCHARTOFACCTSPRODN",
"I_GLACCTINCOAIMPLEMENTSTAT",
"I_GLACCTINDEFAULTLANGUAGETEXT",
"SKA1"
],
"ASSOCIATED":
[
"I_BANKRECNCLNACCOUNT",
"I_CHARTOFACCOUNTS",
"I_COSTELEMENTTP",
"I_FUNCTIONALAREA",
"I_GLACCOUNTFORPUBLICSECTORTP",
"I_GLACCOUNTGROUP",
"I_GLACCOUNTINCHARTOFACCOUNTS",
"I_GLACCOUNTSUBTYPE",
"I_GLACCOUNTTYPE",
"I_GLACCTINCOCODETP",
"I_GLACCTINDEFAULTLANGUAGETEXT",
"I_GLACCTTEXTTP",
"I_GLOBALCOMPANY",
"I_PROFITLOSSACCOUNTTYPE_VH",
"I_RETAINEDEARNINGSGLACCOUNT",
"I_USER"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/