@EndUserText.label: 'Currency'
@ObjectModel.representativeKey: 'Currency'
@Analytics: {dataCategory: #DIMENSION, dataExtraction.enabled: true}
@VDM.viewType: #BASIC
@AbapCatalog.sqlViewName: 'IFICURRENCY'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@Search.searchable: true
define view I_Currency
as select from tcurc
left outer join tcurx on tcurc.waers = tcurx.currkey
association [0..*] to I_CurrencyText as _Text
on $projection.Currency = _Text.Currency
{
@Semantics.currencyCode: true
@ObjectModel.text.association: '_Text'
key tcurc.waers as Currency,
_Text,
cast(COALESCE(tcurx.currdec, 2) as currdec_cds) as Decimals,
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold: 0.8
cast(tcurc.isocd as isocd_cds) as CurrencyISOCode,
cast(tcurc.altwr as altwr_cds) as AlternativeCurrencyKey,
tcurc.xprimary as IsPrimaryCurrencyForISOCrcy
};
@EndUserText.label: 'Currency Text'
@ObjectModel.dataCategory: #TEXT
@ObjectModel.representativeKey: 'Currency'
@Analytics.dataExtraction.enabled: true
@VDM.viewType: #BASIC
@AbapCatalog.sqlViewName: 'IFICURRENCYTEXT'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@Search.searchable: true
define view I_CurrencyText
as select from tcurt
association[1..1] to I_Currency as _Currency
on $projection.Currency = _Currency.Currency
association[0..1] to I_Language as _Language
on $projection.Language = _Language.Language
{
@Semantics.language: true
@ObjectModel.foreignKey.association: '_Language'
key spras as Language,
_Language,
@Semantics.currencyCode: true
@ObjectModel.foreignKey.association: '_Currency'
key waers as Currency,
_Currency,
@Semantics.text: true
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold: 0.8
cast(ltext as ltext_cds preserving type) as CurrencyName,
@Semantics.text: true
ktext as CurrencyShortName
};
@EndUserText.label: 'Profit Center'
@VDM.viewType: #BASIC
@AbapCatalog.sqlViewName: 'IFIPROFITCENTER'
@AbapCatalog.preserveKey:true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.privilegedAssociations: [ '_ProfitCenterHierarchyNode'
//--[ GENERATED:012:29JlHNUf7jY4ipE4XHfNBG
,'_ControllingAreaText','_SegmentText'
// ]--GENERATED
]
@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.representativeKey: 'ProfitCenter'
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.supportedCapabilities: [ #ANALYTICAL_DIMENSION, #CDS_MODELING_ASSOCIATION_TARGET, #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE ]
@ObjectModel.modelingPattern: [ #ANALYTICAL_DIMENSION ]
@ObjectModel.usageType: {
dataClass: #MASTER,
serviceQuality: #A,
sizeCategory: #M
}
@Analytics:{
dataCategory: #DIMENSION,
dataExtraction: {
enabled: true,
delta.changeDataCapture: {
automatic: true
}
}
}
@Search.searchable: true
@Consumption.filter.businessDate.at: true
define view I_ProfitCenter
as select distinct from cepc
//--[ GENERATED:012:29JlHNUf7jY4ipE4XHfNBG
association [1..1] to I_ControllingArea as _ControllingAreaText on $projection.ControllingArea = _ControllingAreaText.ControllingArea
association [0..*] to I_SegmentText as _SegmentText on $projection.Segment = _SegmentText.Segment
// ]--GENERATED
association [1..1] to I_ControllingArea as _ControllingArea on $projection.ControllingArea = _ControllingArea.ControllingArea
association [0..*] to I_ProfitCenterText as _Text on $projection.ControllingArea = _Text.ControllingArea
and $projection.ProfitCenter = _Text.ProfitCenter
and $projection.ValidityEndDate = _Text.ValidityEndDate
association [0..*] to I_ProfitCenterHierarchyNode as _ProfitCenterHierarchyNode on $projection.ControllingArea = _ProfitCenterHierarchyNode.ControllingArea
and $projection.ProfitCenter = _ProfitCenterHierarchyNode.ProfitCenter
association [0..1] to I_Country as _Country on $projection.Country = _Country.Country
association [0..1] to I_CompanyCode as _Company on $projection.CompanyCode = _Company.CompanyCode
association [0..1] to I_Segment as _Segment on $projection.Segment = _Segment.Segment
association [0..1] to I_Region as _Region on $projection.Country = _Region.Country
and $projection.Region = _Region.Region
association [0..*] to I_PrftCtrCompanyCodeAssignment as _PrftCtrCompanyCodeAssignment on $projection.ControllingArea = _PrftCtrCompanyCodeAssignment.ControllingArea
and $projection.ProfitCenter = _PrftCtrCompanyCodeAssignment.ProfitCenter
//association[0..*] to I_TaxJurisdiction as _TaxJurisdiction on $projection.TaxJurisdiction = _TaxJurisdiction.TaxJurisdiction
association [0..1] to I_Language as _Language on $projection.Language = _Language.Language
association [1..1] to E_ProfitCenter as _Extension on $projection.ControllingArea = _Extension.ControllingArea
and $projection.ProfitCenter = _Extension.ProfitCenter
and $projection.ValidityEndDate = _Extension.ValidityEndDate
{
//--[ GENERATED:012:29JlHNUf7jY4ipE4XHfNBG
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_ControllingArea',
element: 'ControllingArea' }
}]
@ObjectModel.text.association: '_ControllingAreaText'
// ]--GENERATED
@ObjectModel.foreignKey.association: '_ControllingArea'
key kokrs as ControllingArea,
@ObjectModel.text.association: '_Text'
@ObjectModel.hierarchy.association: '_ProfitCenterHierarchyNode'
@Search.defaultSearchElement: true
@Search.fuzzinessThreshold: 0.8
key prctr as ProfitCenter,
@Semantics.businessDate.to: true
key datbi as ValidityEndDate,
verak as ProfitCtrResponsiblePersonName,
bukrs as CompanyCode,
verak_user as ProfitCtrResponsibleUser,
@Semantics.businessDate.from: true
datab as ValidityStartDate,
abtei as Department,
khinr as ProfitCenterStandardHierarchy,
//--[ GENERATED:012:29JlHNUf7jY4ipE4XHfNBG
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_SegmentStdVH',
element: 'Segment' }
}]
@ObjectModel.text.association: '_SegmentText'
// ]--GENERATED
@ObjectModel.foreignKey.association: '_Segment' //Inserted by VDM CDS Suite Plugin
segment as Segment,
lock_ind as ProfitCenterIsBlocked,
pca_template as FormulaPlanningTemplate,
anred as FormOfAddress,
name1 as AddressName,
name2 as AdditionalName,
name3 as ProfitCenterAddrName3,
name4 as ProfitCenterAddrName4,
stras as StreetAddressName,
pfach as POBox,
ort01 as CityName,
pstlz as PostalCode,
pstl2 as POBoxPostalCode,
ort02 as District,
@ObjectModel.foreignKey.association: '_Country' //Inserted by VDM CDS Suite Plugin
land1 as Country,
@ObjectModel.foreignKey.association: '_Region'
regio as Region,
txjcd as TaxJurisdiction,
@Semantics.language:true
@ObjectModel.foreignKey.association: '_Language' //Inserted by VDM CDS Suite Plugin
spras as Language,
telf1 as PhoneNumber1,
telf2 as PhoneNumber2,
telbx as TeleboxNumber,
telx1 as TelexNumber,
telfx as FaxNumber,
teltx as TeletexNumber,
datlt as DataCommunicationPhoneNumber,
drnam as ProfitCenterPrinterName,
usnam as ProfitCenterCreatedByUser,
ersda as ProfitCenterCreationDate,
_Text,
_Country,
_ControllingArea,
_ProfitCenterHierarchyNode,
_Language,
_Company,
_Segment,
_Region,
_PrftCtrCompanyCodeAssignment,
//--[ GENERATED:012:29JlHNUf7jY4ipE4XHfNBG
@Consumption.hidden: true
_ControllingAreaText,
@Consumption.hidden: true
_SegmentText
// ]--GENERATED
//_TaxJurisdiction
}
@AbapCatalog.sqlViewName: 'IPUCVH'
@EndUserText.label: 'Purchasing Category'
@AbapCatalog.preserveKey:true
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #COMPOSITE
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@Search.searchable: true
@ObjectModel.representativeKey: 'PurchasingCategory'
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #M
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.dataCategory: #VALUE_HELP
@ObjectModel.supportedCapabilities: [#VALUE_HELP_PROVIDER]
@Metadata.ignorePropagatedAnnotations: true
define view I_PurchasingCategoryValueHelp
as select distinct from I_PurchasingCategory
{
@Search.defaultSearchElement: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold: 0.7
@ObjectModel.text.element: 'PurgCatName'
key cast(I_PurchasingCategory.PurchasingCategory as /srmsmc/generic_id preserving type) as PurchasingCategory,
@Search.defaultSearchElement: true
@Semantics.text: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold: 0.7
cast(I_PurchasingCategory.PurgCatName as /srmsmc/medium_name preserving type) as PurgCatName,
@Search.defaultSearchElement: true
@Semantics.text: true
@Search.ranking: #HIGH
@Search.fuzzinessThreshold: 0.7
cast(I_PurchasingCategory._PurchasingCategoryDesc[1: Language = $session.system_language].PurgCatDescription as /srmsmc/description_char60 preserving type) as PurgCatDescription
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Sales Volume - Cube'
@VDM.viewType: #COMPOSITE
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #('TRANSACTIONAL_DATA'),
privilegedAssociations: ['_CreatedByUser']
}
@AbapCatalog: {
sqlViewName: 'ISDBILLGDOCITMC',
compiler.compareFilter: true,
preserveKey: true
}
@ObjectModel: {
usageType: {
dataClass: #MIXED,
serviceQuality: #D,
sizeCategory: #XL
}
}
@Analytics.dataCategory: #CUBE
@ObjectModel.supportedCapabilities:
[ #ANALYTICAL_PROVIDER, #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE ]
@ObjectModel.modelingPattern: #ANALYTICAL_CUBE
@Metadata: {
allowExtensions: true,
ignorePropagatedAnnotations:true
}
define view I_BillingDocumentItemCube
with parameters
P_ExchangeRateType : kurst,
P_DisplayCurrency : vdm_v_display_currency
as select from I_BillingDocItemAnalytics as Item
left outer to one join I_PersonWorkAgreement_1 as SalesEmployeeWorkAgreement on Item.SalesEmployee = SalesEmployeeWorkAgreement.PersonWorkAgreement
left outer to one join I_PersonWorkAgreement_1 as RespEmployeeWorkAgreement on Item.ResponsibleEmployee = RespEmployeeWorkAgreement.PersonWorkAgreement
left outer to one join I_CalendarDate as CalendarDate on Item.CreationDate = CalendarDate.CalendarDate
left outer to one join I_CalendarDate as CalendarDateBillingDoc on Item.BillingDocumentDate = CalendarDateBillingDoc.CalendarDate
left outer to one join I_EngagementProjectItem as CustomerProjectItem on Item.SalesDocument = CustomerProjectItem.EngagementProjectItem
and CustomerProjectItem.EngagementProjectItemType = '0SOH'
// Association
association [0..1] to I_EngagementProject as _CustomerProject on $projection.CustomerProject = _CustomerProject.EngagementProject
association [0..1] to I_Customer as _Customer on $projection.Customer = _Customer.Customer
association [0..1] to I_Customer as _ShipToParty on $projection.ShipToParty = _ShipToParty.Customer
association [0..1] to I_Customer as _BillToParty on $projection.BillToParty = _BillToParty.Customer
association [0..1] to I_Employee as _SalesEmployee on $projection.SalesEmployee = _SalesEmployee.PersonnelNumber
association [0..1] to I_Employee as _ResponsibleEmployee on $projection.ResponsibleEmployee = _ResponsibleEmployee.PersonnelNumber
association [0..1] to I_PersonWorkAgreement_1 as _SalesEmployee_2 on $projection.SalesEmployee = _SalesEmployee_2.PersonWorkAgreement
association [0..1] to I_PersonWorkAgreement_1 as _ResponsibleEmployee_2 on $projection.ResponsibleEmployee = _ResponsibleEmployee_2.PersonWorkAgreement
association [0..1] to I_Product as _Product on $projection.Product = _Product.Product
association [0..1] to I_ProductGroup_2 as _ProductGroup on $projection.ProductGroup = _ProductGroup.ProductGroup
// Extension Association
association[0..1] to E_BillingDocumentItem as _Extension on $projection.BillingDocument = _Extension.BillingDocument
and $projection.BillingDocumentItem = _Extension.BillingDocumentItem
{
// Key
@ObjectModel.foreignKey.association: '_BillingDocument'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_BillingDocumentBasicStdVH', element: 'BillingDocument' } } ]
key BillingDocument,
key BillingDocumentItem,
// Key Association
_BillingDocument,
// Category
@ObjectModel.foreignKey.association: '_SDDocumentCategory'
SDDocumentCategory,
@ObjectModel.foreignKey.association: '_BillingDocumentCategory'
BillingDocumentCategory,
@ObjectModel.foreignKey.association: '_BillingDocumentType'
BillingDocumentType,
@ObjectModel.foreignKey.association: '_SalesDocumentItemCategory'
SalesDocumentItemCategory,
@ObjectModel.foreignKey.association: '_SalesDocumentItemType'
SalesDocumentItemType,
ReturnItemProcessingType,
// Category Association
_SDDocumentCategory,
_BillingDocumentCategory,
_BillingDocumentType,
.....
@EndUserText.label: 'Aging Analysis Smart Business App'
@VDM.viewType: #CONSUMPTION
@Analytics.query: true
@OData.publish: true
@AbapCatalog.sqlViewName: 'CAPFLXBLAGING'
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.supportedCapabilities: [ #ANALYTICAL_QUERY ]
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
@Metadata.ignorePropagatedAnnotations: true
define view C_APFlexibleAging
// Corresponds to calculation view 'sap.hba.r.sfin700.AccountsPayableFlexibleAgingQuery'
with parameters
@EndUserText.label: 'Open on Key Date'
@Consumption.defaultValue: 'TODAY'
@Consumption.valueHelpDefinition: [{
entity: {
name: 'C_GregorianCalSglDateFuncVH',
element: 'DateFunction'
}
}]
P_DateFunction : datefunctionid,
@Consumption.derivation: {
lookupEntity: 'I_SglGregorianCalDateFunction',
resultElement: 'DateFunctionStartDate',
binding: [
{ targetParameter : 'P_DateFunction' ,
type : #PARAMETER, value : 'P_DateFunction' }
]
}
@Consumption.hidden: true
P_KeyDate : sydate,
@Consumption.hidden: true
@Environment.systemField: #SYSTEM_LANGUAGE
P_Language : sylangu,
@Consumption.defaultValue: '30'
P_AgingGridMeasureInDays : farp_aging_grid_measure,
@Consumption.defaultValue: '4'
P_NumberOfAgingGridColumns : farp_number_of_grid_columns,
@Consumption.defaultValue: 'EUR'
P_DisplayCurrency : vdm_v_display_currency,
@Consumption.defaultValue: 'M'
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_ExchangeRateType', element: 'ExchangeRateType' } }]
P_ExchangeRateType : kurst
as select from
I_APFlexibleAging(
P_KeyDate : :P_KeyDate,
P_AgingGridMeasureInDays : :P_AgingGridMeasureInDays,
P_NumberOfAgingGridColumns : :P_NumberOfAgingGridColumns,
P_DisplayCurrency : :P_DisplayCurrency,
P_ExchangeRateType: :P_ExchangeRateType)
{
CompanyCode,
TransactionCurrency,
GLAccount,
Supplier,
AccountingDocumentCategory,
AgingGridText,
SpecialGLCode,
ExchangeRateType,
_CompanyCode.CompanyCodeName as CompanyCodeName ,
_GLAccount._Text[1:Language = $parameters.P_Language].GLAccountLongName as GLAccountLongName,
_Supplier.SupplierName as SupplierName,
_AccountingDocumentCategory._Text[1:Language = $parameters.P_Language].AccountingDocumentCategoryName as AccountingDocumentCategoryName,
_SpecialGLCode._Text[1:Language = :P_Language].SpecialGLCodeLongName as SpecialGLCodeName,
ChartOfAccounts,
_ChartOfAccounts._Text[1:Language = $parameters.P_Language].ChartOfAccountsName as ChartOfAccountsName,
SupplierAccountGroup,
_SupplierAccountGroup._SupplierAccountGroupText[1:Language = $parameters.P_Language].AccountGroupName as SupplierAccountGroupName,
@Semantics.currencyCode:true
DisplayCurrency,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
AmountInDisplayCurrency_E,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
TotalNotOvrdAmtInDspCrcy,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'DisplayCurrency'
TotalOverdueAmtInDspCrcy_E
//@DefaultAggregation: #SUM
//NumberOfOpenItems
};
@AbapCatalog.sqlViewName: 'CCNSLDTNJRNLENTR'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Journal Entry Consumption View'
@VDM.viewType: #CONSUMPTION
@ObjectModel.compositionRoot:true
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType: {
sizeCategory: #XXL,
serviceQuality: #D,
dataClass: #MIXED
}
@ObjectModel.semanticKey: ['ConsolidationLedger','ConsolidationDimension','FiscalYear','ConsolidationDocumentNumber','ConsolidationPostingItem','ConsolidationVersion']
@Metadata.allowExtensions: true
@Search.searchable: true
@Consumption.semanticObject: 'ConsolidationJournalList'
@UI.headerInfo: {
typeName: 'Group Journal Entry',
typeNamePlural: 'Group Journal Entries',
title: { value: 'ConsolidationDocumentNumber'},
description: { value: 'FiscalYear' }
}
@AccessControl.personalData.blocking: #NOT_REQUIRED
@UI.presentationVariant.requestAtLeast: [ 'ConsolidationDimension', 'CompanyCode','ConsolidationDocumentNumber','ConsolidationPostingItem','ConsolidationDocumentType','PostingLevel',
'FiscalYear','FiscalPeriod','ReferenceFiscalYear','ConsolidationVersion', 'ConsolidationLedger','CurrencyConversionsDiffType', 'CnsldtnGroupJrnlEntryBundle' ]
@AccessControl.privilegedAssociations: ['_BusinessAreaText','_PartnerBusinessAreaText','_ChartOfAccountsText','_CostCenterText','_PartnerCostCenterText',
'_ControllingAreaText','_CustomerText','_GLAcctInChartOfAccountsText','_LedgerText','_DocumentTypeText',
'_PartnerProfitCenterText','_ProfitCenterText','_PartnerSegmentText','_SegmentText','_SupplierText',
'_CnsldtnUnitText','_InvesteeUnitText','_PartnerUnitText','_CompanyCodeText','_InvestmentActivityTypeText']
define view C_CnsldtnJrnlEntr
as select from I_CnsldtnJrnlEntr as CnsldtnJrnlEntr
association [0..1] to I_CnsldtnBusinessAreaT as _BusinessAreaText on $projection.BusinessArea = _BusinessAreaText.BusinessArea
and _BusinessAreaText.Language = $session.system_language
association [0..1] to I_CnsldtnBusinessAreaT as _PartnerBusinessAreaText on $projection.PartnerBusinessArea = _PartnerBusinessAreaText.BusinessArea
and _PartnerBusinessAreaText.Language = $session.system_language
......
{
@Consumption.valueHelpDefinition: [
{ entity: { name: 'C_CnsldtnLedgerVH',
element: 'ConsolidationLedger' }
}]
@ObjectModel.text.association: '_LedgerText'
@UI.facet: [
{
label: 'General Data',
id: 'General',
type: #COLLECTION,
position: 20
},
{
label: 'Line Items',
id: 'Item',
type: #LINEITEM_REFERENCE,
position: 40,
targetElement: '_Item'
},
{
label: 'Global Parameters',
id: 'GeneralColumn1',
parentId: 'General',
type: #FIELDGROUP_REFERENCE,
position: 10,
targetQualifier: 'GeneralColumn1'
},
{
label: 'Posting Information',
id: 'GeneralColumn2',
parentId: 'General',
type: #FIELDGROUP_REFERENCE,
position: 20,
targetQualifier: 'GeneralColumn2'
},
{
label: 'Organizational Unit',
id: 'GeneralColumn3',
parentId: 'General',
type: #FIELDGROUP_REFERENCE,
position: 30,
targetQualifier: 'GeneralColumn3'
}
]
@UI: {
fieldGroup: [{
qualifier: 'GeneralColumn1',
groupLabel: 'Global Parameters',
position: 10
}],
lineItem: [{
position: 200,
importance: #HIGH
}]
}
key ConsolidationLedger,
.....
@AbapCatalog: { sqlViewName: 'CFITRIALBALQ0001',
preserveKey: true,
compiler.compareFilter: true,
buffering.status: #NOT_ALLOWED }
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@Analytics.query: true
@Analytics.settings.maxProcessingEffort: #HIGH
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Trial Balance'
@Metadata: { ignorePropagatedAnnotations: true,
allowExtensions: true }
@ObjectModel: { supportedCapabilities: [ #ANALYTICAL_QUERY ],
modelingPattern: #ANALYTICAL_QUERY,
usageType: { sizeCategory: #XXL,
serviceQuality: #D,
dataClass: #MIXED } }
@OData.publish: true
@VDM.viewType: #CONSUMPTION
define view C_Trialbalanceq0001
with parameters
@Consumption.hidden: true
@Environment.systemField: #SYSTEM_LANGUAGE
P_Language : sylangu,
@Consumption.hidden: true
@Environment.systemField: #SYSTEM_DATE
P_KeyDate : sydate,
//@Consumption.derivation: { lookupEntity: 'I_CalendarDate',
// resultElement: 'FirstDayofMonthDate', binding: [
// { targetElement : 'CalendarDate' , type : #PARAMETER, value : 'P_KeyDate' } ]
// }
@Consumption.derivation: { lookupEntity: 'I_CalendarDate',
resultElement: 'FirstDayofMonthDate',
binding: [
{ targetElement : 'CalendarDate' , type : #PARAMETER, value : 'P_ToPostingDate' } ]
}
P_FromPostingDate : fis_budat_from,
//@Consumption.derivation: { lookupEntity: 'I_CalendarDate',
// resultElement: 'CalendarDate', binding: [
// { targetElement : 'CalendarDate' , type : #PARAMETER, value : 'P_KeyDate' } ]
// }
@Consumption.derivation: { lookupEntity: 'I_MySessionContext',
resultElement: 'UserLocalDate', binding: [
{ targetElement : 'UserID' , type : #SYSTEM_FIELD, value : '#USER' } ]
}
P_ToPostingDate : fis_budat_to
as select from I_GLAcctBalanceCube
( P_FromPostingDate: $parameters.P_FromPostingDate, P_ToPostingDate: $parameters.P_ToPostingDate ) as I_GLAcctBalanceCube
{
// Filter/ Fixed Rows
@Consumption.filter: {selectionType: #SINGLE, multipleSelections: false, mandatory: true}
@Consumption.derivation: { lookupEntity: 'I_LedgerStdVH',
resultElement: 'Ledger', binding: [
{ targetElement : 'IsLeadingLedger' , type : #CONSTANT, value : 'X' } ]
}
@AnalyticsDetails.query.variableSequence : 10
//@AnalyticsDetails.query.axis: #FREE
Ledger,
....
@AbapCatalog.sqlViewName: 'ABKDET'
@EndUserText.label: 'Bank Details'
@VDM:{
viewType: #BASIC,
lifecycle.contract.type:#PUBLIC_REMOTE_API
}
@AccessControl.authorizationCheck: #CHECK
@ObjectModel: {
usageType: {
serviceQuality: #B,
sizeCategory: #L,
dataClass: #MASTER
}
}
@Metadata.ignorePropagatedAnnotations: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
define view A_BankDetail as select from bnka {
key banks as BankCountry,
key bankl as BankInternalID,
banka as BankName,
swift as SWIFTCode,
bgrup as BankGroup,
bnklz as BankNumber,
provz as Region,
stras as StreetName,
ort01 as CityName,
brnch as Branch
// xpgro as IsPostBankAccount,
// loevm as IsMarkedForDeletion,
// pskto as PostOfficeBankAccount,
// chkme as CheckDigitCalculationMethod,
// vers as BankDataFileFormat,
// erdat as CreationDate ,
// ernam as CreatedByUser,
// adrnr as AddressID
}where loevm = '' or loevm = ' ';
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog: {
sqlViewName: 'IFIJOURNALENT',
preserveKey:true
}
@EndUserText.label: 'Journal Entry'
@VDM.viewType: #BASIC
@AccessControl.authorizationCheck: #CHECK
@ObjectModel.representativeKey: 'AccountingDocument'
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #A
@Analytics: {
dataCategory: #DIMENSION,
dataExtraction: {
enabled: true,
delta.changeDataCapture: {
mapping:
[
{
table: 'BKPF',
role: #MAIN,
viewElement: ['CompanyCode', 'FiscalYear', 'AccountingDocument'],
tableElement: ['bukrs', 'gjahr', 'belnr']
}
]
}
}
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.buffering.status: #NOT_ALLOWED
@Metadata.ignorePropagatedAnnotations: true
@Metadata.allowExtensions:true
//--[ GENERATED:012:29JlHNUf7jY4ip7HtmZN9m
@AccessControl.privilegedAssociations: ['_AccountingDocumentTypeText','_BusinessTransactionTypeText','_FinancialManagementAreaText','_LedgerText']
// ]--GENERATED
@ObjectModel.modelingPattern: #ANALYTICAL_DIMENSION
@ObjectModel.supportedCapabilities: [#ANALYTICAL_DIMENSION,
#CDS_MODELING_ASSOCIATION_TARGET,
#CDS_MODELING_DATA_SOURCE,
#EXTRACTION_DATA_SOURCE,
#SQL_DATA_SOURCE]
define view I_JournalEntry as select from P_BKPF_COM
/* *************************************************************
* association zur ID
* *************************************************************
*/
//--[ GENERATED:012:29JlHNUf7jY4ip7HtmZN9m
association [0..*] to I_AccountingDocumentTypeText as _AccountingDocumentTypeText on $projection.AccountingDocumentType = _AccountingDocumentTypeText.AccountingDocumentType
association [0..*] to I_BusTransactionTypeText as _BusinessTransactionTypeText on $projection.BusinessTransactionType = _BusinessTransactionTypeText.BusinessTransactionType
association [0..*] to I_FinancialManagementAreaText as _FinancialManagementAreaText on $projection.FinancialManagementArea = _FinancialManagementAreaText.FinancialManagementArea
association [0..*] to I_LedgerText as _LedgerText on $projection.Ledger = _LedgerText.Ledger
....
@ClientHandling.type: #CLIENT_DEPENDENT
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #BASIC
@VDM.private: true
define table function P_SalesDocumentByMultObjSts
with parameters
im_clnt : abap.clnt @Environment.systemField: #CLIENT
returns
{
key Client : mandt;
key SalesDocument : vbeln_va;
key SalesDocumentItem : posnr;
// System Status long name concatenated, max. 100 for one Item
SystemStatusName : concat_sys_status_name;
// System Status short name concatenated, max. 100 for one Item
SystemStatusShortName : concat_sys_status_short_name;
// User Status long name concatenated, max. 100 for one Item
UserStatusName : concat_user_status_name;
// User Status short name concatenated, max. 100 for one Item
UserStatusShortName : concat_user_status_short_name;
}
implemented by method
CL_SD_SLSDOCBYOBJSTS=>CONCAT_STATUS_FOR_SLSDOC;
CLASS CL_SD_SLSDOCBYOBJSTS DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES IF_AMDP_MARKER_HDB .
CLASS-METHODS CONCAT_STATUS_FOR_SLSDOC
FOR TABLE FUNCTION P_SALESDOCUMENTBYMULTOBJSTS .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS CL_SD_SLSDOCBYOBJSTS IMPLEMENTATION.
METHOD CONCAT_STATUS_FOR_SLSDOC BY DATABASE FUNCTION FOR HDB LANGUAGE SQLSCRIPT OPTIONS READ-ONLY
USING PSLSDOCBYOBJSTS.
RETURN
SELECT "P1"."MANDT" AS Client,
"P1"."SALESDOCUMENT" AS SalesDocument,
"P1"."SALESDOCUMENTITEM" AS SalesDocumentItem,
string_agg ( concat("P1"."SYSTEMSTATUSNAME", concat(' (', concat("P1"."SYSTEMSTATUSSHORTNAME", '), ') ) ) ) AS SystemStatusName,
string_agg ( concat("P1"."SYSTEMSTATUSSHORTNAME", ', ') ) AS SystemStatusShortName,
string_agg ( concat("P1"."USERSTATUSNAME", concat(' (', concat("P1"."USERSTATUSSHORTNAME", '), ') ) ) ) AS UserStatusName,
string_agg ( concat("P1"."USERSTATUSSHORTNAME", ', ') ) AS UserStatusShortName
FROM "PSLSDOCBYOBJSTS" "P1"
GROUP BY "P1"."MANDT", "P1"."SALESDOCUMENT", "P1"."SALESDOCUMENTITEM" ;
ENDMETHOD.
ENDCLASS.
....
@UI.headerInfo: {
typeName: 'Sales Document',
typeNamePlural: 'Sales Documents',
title: {
type: #STANDARD,
value: 'SalesDocumentItem'
}
}
define view C_SalesDocumentByObjectStatus
as select from P_SalesDocumentByMultObjSts( im_clnt : $session.client )
inner join I_SalesDocument as SalesDocument on P_SalesDocumentByMultObjSts.SalesDocument = SalesDocument.SalesDocument
...
@EndUserText.label: 'Sales Plan Header Transaction Object'
@VDM.viewType: #TRANSACTIONAL
@VDM.lifecycle.contract.type:#SAP_INTERNAL_API
@AccessControl.authorizationCheck: #NOT_REQUIRED
@AccessControl.personalData.blocking: #NOT_REQUIRED
@AbapCatalog.sqlViewName: 'ISDSLSPLANTP'
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.transactionalProcessingEnabled: true
@ObjectModel.draftEnabled: true
@ObjectModel.compositionRoot: true
@ObjectModel.writeDraftPersistence: 'SALESPLAN_D'
@ObjectModel.writeActivePersistence: 'SALESPLAN'
@ObjectModel.entityChangeStateId: 'LastChangeDateTime'
@ObjectModel.createEnabled:true
@ObjectModel.updateEnabled: 'EXTERNAL_CALCULATION'
@ObjectModel.deleteEnabled: 'EXTERNAL_CALCULATION'
@ObjectModel.semanticKey: [ 'SalesPlan' ]
define view I_SalesPlanTP
as select distinct from I_SalesPlan as SP
left outer join P_SalesPlanMyTeams as Teams on SP.AssignedTeamID = Teams.RespyMgmtTeamID
association [0..*] to I_SalesPlanItemTP as _SalesPlanItem on $projection.SalesPlanUUID = _SalesPlanItem.SalesPlanUUID
association [0..*] to I_SalesPlanDimnSelectionTP as _SalesPlanDimnSelection on $projection.SalesPlanUUID = _SalesPlanDimnSelection.SalesPlanUUID
{
key SP.SalesPlanUUID,
@ObjectModel: {
mandatory: 'EXTERNAL_CALCULATION',
readOnly: 'EXTERNAL_CALCULATION'
}
SalesPlan,
@ObjectModel.mandatory: true
SalesPlanVersion,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
SalesPlanDescription,
SalesPlanVersionDescription,
@ObjectModel.readOnly: true
SalesPlanStatus,
@Semantics.currencyCode: true
@ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
SalesPlanCurrency,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
SalesPlanPeriodType,
@ObjectModel: {
mandatory: 'EXTERNAL_CALCULATION', //Date type with mandatory true will cause exception
readOnly: 'EXTERNAL_CALCULATION'
}
SalesPlanStartDate as SalesPlanFrom,
@ObjectModel: {
mandatory: 'EXTERNAL_CALCULATION', //Date type with mandatory true will cause exception
readOnly: 'EXTERNAL_CALCULATION'
}
SalesPlanEndDate as SalesPlanTo,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
SalesPlanPurpose,
//Type: Quantity/Amount Planning
SalesPlanType,
//Admin
CreatedByUser,
CreationDateTime,
LastChangedByUser,
LastChangeDateTime,
ReferenceSalesPlanUUID,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
AssignedTeamID,
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
AssignedTeamName,
SalesPlanItemUpdatedDesc,
//Association
@ObjectModel.association.type: #TO_COMPOSITION_CHILD
_SalesPlanItem,
@ObjectModel.association.type: #TO_COMPOSITION_CHILD
_SalesPlanDimnSelection,
_SalesPlanCurrency,
_SalesPlanCurrencyText,
_CreatedByUser,
_LastChangedByUser,
_SalesPlanPeriodTypeText,
_SalesPlanPeriodType,
_SalesPlanStatusText,
_SalesPlanStatus,
_SalesPlanPurposeText,
_SalesPlanPurpose,
_SalesPlanType,
_SalesPlanTypeText
}
where
(
//CreatedByUser is Session User, Access Level 1
CreatedByUser = $session.user
)
or
(
// Assigned Team in session user's team list
SP.AssignedTeamID = Teams.RespyMgmtTeamID
)
...
@VDM.viewType: #CONSUMPTION
@ObjectModel: {
compositionRoot: true,
transactionalProcessingDelegated:true,
semanticKey: ['Product'],
createEnabled:true,
updateEnabled:#('EXTERNAL_CALCULATION'),
deleteEnabled:#('EXTERNAL_CALCULATION'),
draftEnabled: true,
usageType.serviceQuality: #C,
usageType.sizeCategory : #L,
usageType.dataClass: #MIXED,
text.control: #ASSOCIATED_TEXT_UI_HIDDEN
}
@Search.searchable: true
@AccessControl: {
authorizationCheck: #CHECK,
privilegedAssociations: ['_CreatedByUserContactCard', '_LastChangedByUserContactCard']
}
@Metadata.allowExtensions: true
define view C_Product
as select from I_ProductWD as Product
association [0..*] to C_Productdescription as _Description on $projection.Product = _Description.Product
association [0..*] to C_Productplant
...
@Semantics.imageUrl: true
@ObjectModel.readOnly: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MD_PRODUCT_ROOT_CALC_EXIT1'
cast( '' as productimageurl ) as ProductImageURL,
...
CLASS cl_md_product_root_calc_exit1 DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_sadl_exit .
INTERFACES if_sadl_exit_calc_element_read .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_calc,
productimageurl TYPE c_product-productimageurl,
product TYPE c_product-product,
productforedit TYPE c_product-productforedit,
draftuuid TYPE /bobf/conf_key,
isactiveentity TYPE boolean,
numberofproductvariants TYPE c_product-numberofproductvariants,
numberofprocessedprodvariants TYPE c_product-numberofprocessedprodvariants,
hasactiveentity TYPE boolean,
isvariantconfigurationenabled TYPE c_product-isvariantconfigurationenabled,
END OF ty_calc.
CONSTANTS:
BEGIN OF cs_calc_element,
productimageurl TYPE sadl_entity_element VALUE 'PRODUCTIMAGEURL' ##NO_TEXT,
createdbyusername TYPE sadl_entity_element VALUE 'CREATEDBYUSERNAME' ##NO_TEXT,
lastchangedbyusername TYPE sadl_entity_element VALUE 'LASTCHANGEDBYUSERNAME' ##NO_TEXT,
numoftotalvariants TYPE sadl_entity_element VALUE 'NUMBEROFPRODUCTVARIANTS' ##NO_TEXT,
numofcompletedvariants TYPE sadl_entity_element VALUE 'NUMBEROFPROCESSEDPRODVARIANTS' ##NO_TEXT,
END OF cs_calc_element .
CONSTANTS:
BEGIN OF cs_calc_config_variant_element,
isvariantconfigurationenabled TYPE sadl_entity_element VALUE 'ISVARIANTCONFIGURATIONENABLED' ##NO_TEXT,
END OF cs_calc_config_variant_element .
CONSTANTS:
BEGIN OF cs_cal_element_variant,
variantenabled TYPE sadl_entity_element VALUE 'VARIANTENABLED',
END OF cs_cal_element_variant .
....
CLASS CL_MD_PRODUCT_ROOT_CALC_EXIT1 IMPLEMENTATION.
METHOD get_image_url.
DATA: lv_object_key TYPE objky,
lv_mimetype TYPE w3conttype,
lv_thumbnail_url TYPE saeuri.
FIELD-SYMBOLS: TYPE any,
TYPE simple,
type simple,
TYPE simple,
TYPE simple.
MOVE-CORRESPONDING it_original_data TO ct_calc.
LOOP AT ct_calc ASSIGNING .
ASSIGN ('-PRODUCTIMAGEURL') TO FIELD-SYMBOL().
CHECK sy-subrc = 0.
ASSIGN ('-DRAFTUUID') TO .
CHECK sy-subrc = 0.
ASSIGN ('-PRODUCT') TO .
CHECK sy-subrc = 0.
.....
@AbapCatalog.sqlViewName: 'IFIFINSTMTCUBE'
@EndUserText.label: 'Virtual Financial Statement Cube'
@Analytics: { dataCategory: #CUBE, dataExtraction.enabled: true }
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@AccessControl.personalData.blocking:#BLOCKED_DATA_EXCLUDED
@ObjectModel.representativeKey: 'LedgerGLLineItem'
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.buffering.status: #NOT_ALLOWED
@Metadata.ignorePropagatedAnnotations: true
@Metadata.allowExtensions:true
@Analytics.readClassName: 'CL_FIS_FINS_STMNT_CDS'
define view I_FinancialStatementCube
with parameters
P_FinancialStatementVersion : hryid,
P_FromFiscalPeriod : fis_period_from,
P_ToFiscalPeriod : fis_period_to,
P_FiscalYear : fis_gjahr,
P_FromComparisonFiscalPeriod : fis_period_from_cmp,
P_ToComparisonFiscalPeriod : fis_period_to_cmp,
P_ComparisonFiscalYear : fis_gjahr_cmp,
P_Ledger : fins_ledger,
P_ComparisonLedger : fis_ledger_cmp,
P_CurrencyRole : fis_curtp,
P_PlanningCategory : fcom_category
as select from I_GLAccountLineItem as I_GLAccountLineItem
association [1..1] to E_JournalEntryItem as _Extension on $projection.SourceLedger = _Extension.SourceLedger
and $projection.CompanyCode = _Extension.CompanyCode
and $projection.FiscalYear = _Extension.FiscalYear
and $projection.AccountingDocument = _Extension.AccountingDocument
and $projection.LedgerGLLineItem = _Extension.LedgerGLLineItem
association [0..1] to I_FinancialStatementLeafItem as _FinancialStatementLeafItem on $projection.FinancialStatementLeafItem = _FinancialStatementLeafItem.FinancialStatementLeafItem
association [1..1] to I_Currency as _Currency on $projection.Currency = _Currency.Currency
association [0..1] to I_ChartOfAccounts as _CorpGroupChartOfAccounts on $projection.corporategroupchartofaccounts = _CorpGroupChartOfAccounts.ChartOfAccounts
association [0..1] to I_GLAccountInChartOfAccounts as _CorporateGroupAccount on $projection.corporategroupchartofaccounts = _CorporateGroupAccount.ChartOfAccounts
and $projection.CorporateGroupAccount = _CorporateGroupAccount.GLAccount
association [0..1] to I_AlternativeGLAccountIsUsed as _AlternativeGLAccountIsUsed on $projection.AlternativeGLAccountIsUsed = _AlternativeGLAccountIsUsed.AlternativeGLAccountIsUsed
association [0..1] to I_Indicator as _ZeroBalanceAccountIsDisplayed on $projection.ZeroBalanceAccountIsDisplayed = _ZeroBalanceAccountIsDisplayed.IndicatorValue
{
@ObjectModel.foreignKey.association: '_Ledger'
key Ledger,
_Ledger,
@ObjectModel.foreignKey.association: '_SourceLedger'
.....
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'Currency'} }
cast( 1 as fis_repo_amount ) as PeriodBalanceAmount,
..
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
10 | |
7 | |
5 | |
5 | |
4 | |
4 | |
4 | |
4 | |
4 | |
3 |