I_ProfitCenter
Profit Center
I_ProfitCenter is a Basic CDS View (Dimension) that provides data about "Profit Center" in SAP S/4HANA. It reads from 1 data source (cepc) and exposes 48 fields with key fields ControllingArea, ProfitCenter, ValidityEndDate. It has 12 associations to related views. It is exposed through 6 OData services (C_SALESORDERMANAGE_SD, UI_CADOCUMENT_MNG, UI_CREDITMEMOREQUESTMANAGE, ...). It is used in 2 Fiori applications: Manage Manual Accruals, Review Service Entry Sheet Accruals.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| cepc | cepc | from |
Associations (12)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_ControllingArea | _ControllingAreaText | $projection.ControllingArea = _ControllingAreaText.ControllingArea |
| [0..*] | I_SegmentText | _SegmentText | $projection.Segment = _SegmentText.Segment |
| [1..1] | I_ControllingArea | _ControllingArea | $projection.ControllingArea = _ControllingArea.ControllingArea |
| [0..*] | I_ProfitCenterText | _Text | $projection.ControllingArea = _Text.ControllingArea and $projection.ProfitCenter = _Text.ProfitCenter and $projection.ValidityEndDate = _Text.ValidityEndDate |
| [0..*] | I_ProfitCenterHierarchyNode | _ProfitCenterHierarchyNode | $projection.ControllingArea = _ProfitCenterHierarchyNode.ControllingArea and $projection.ProfitCenter = _ProfitCenterHierarchyNode.ProfitCenter |
| [0..1] | I_Country | _Country | $projection.Country = _Country.Country |
| [0..1] | I_CompanyCode | _Company | $projection.CompanyCode = _Company.CompanyCode |
| [0..1] | I_Segment | _Segment | $projection.Segment = _Segment.Segment |
| [0..1] | I_Region | _Region | $projection.Country = _Region.Country and $projection.Region = _Region.Region |
| [0..*] | I_PrftCtrCompanyCodeAssignment | _PrftCtrCompanyCodeAssignment | $projection.ControllingArea = _PrftCtrCompanyCodeAssignment.ControllingArea and $projection.ProfitCenter = _PrftCtrCompanyCodeAssignment.ProfitCenter |
| [0..1] | I_Language | _Language | $projection.Language = _Language.Language |
| [1..1] | E_ProfitCenter | _Extension | $projection.ControllingArea = _Extension.ControllingArea and $projection.ProfitCenter = _Extension.ProfitCenter and $projection.ValidityEndDate = _Extension.ValidityEndDate |
Annotations (18)
| Name | Value | Level | Field |
|---|---|---|---|
| EndUserText.label | Profit Center | view | |
| VDM.viewType | #BASIC | view | |
| AbapCatalog.sqlViewName | IFIPROFITCENTER | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| Metadata.allowExtensions | true | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.representativeKey | ProfitCenter | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.modelingPattern | #ANALYTICAL_DIMENSION | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.usageType.sizeCategory | #M | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| Analytics.dataExtraction.enabled | true | view | |
| Analytics.dataExtraction.delta.changeDataCapture.automatic | true | view | |
| Search.searchable | true | view | |
| Consumption.filter.businessDate.at | true | view |
OData Services (6)
| Service | Binding | Version | Contract | Release |
|---|---|---|---|---|
| C_SALESORDERMANAGE_SD | C_SALESORDERMANAGE_SRV | V4 | C1 | NOT_RELEASED |
| UI_CADOCUMENT_MNG | UI_CADOCUMENT_MNG | V4 | C1 | NOT_RELEASED |
| UI_CREDITMEMOREQUESTMANAGE | UI_CREDITMEMOREQUESTMANAGE | V4 | C1 | NOT_RELEASED |
| UI_MANUALACCRS_MNG | UI_MANUALACCRS_MNG | V2 | C1 | NOT_RELEASED |
| UI_SALESCONTRACTMANAGE | UI_SALESCONTRACTMANAGE | V4 | C1 | NOT_RELEASED |
| UI_SSACPERDCAMOUNTS_REVIEW | UI_SSACPERDCAMOUNTS_REVIEW | V2 | C1 | NOT_RELEASED |
Fiori Apps (2)
| App ID | App Name | Type | Description |
|---|---|---|---|
| F5423 | Manage Manual Accruals | Transactional | With this app, you can create, import, edit, and copy accrual objects as well as change their status. You can use this app to: - Display and edit accrual objects. - Create new accrual objects. - Copy accrual objects. - Import accrual objects from a spreadsheet file. - Change the status of an accrual object by pausing, suspending, or resuming its accrual subobjects. - Prematurely finish accrual subobjects by terminating them or undo premature termination. - View the parameters assigned to an accrual object. - View a detailed summary of changes made to the accrual object, comparing the old and new values of the accrual object fields. |
| F6108 | Review Service Entry Sheet Accruals | Transactional | Review service entry sheet accrual amount for each period. |
Manage Manual Accruals
Business Role: General Ledger Accountant
With this app, you can create, import, edit, and copy accrual objects as well as change their status.
Review Service Entry Sheet Accruals
Business Role: Cost Accountant - Overhead
For service purchasing, you need to post accruals for costs that come from unapproved service entry sheets. A purchase order item could have multiple service entry sheets with different account assignments. The Service Entry Sheet Accruals application enables you to calculate and post accruals in General Ledger Accounting automatically. The relevant data can be transferred from Service Purchasing and Recording of the Materials Management component to the Accrual Engine and automatically converted from purchase order items into accrual subobjects. The system calculates the accruals for each account assignment specified in the items of service entry sheets. In each period, you can start an accrual run, which posts all accruals for the service transactions.
Fields (48)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ControllingArea | kokrs | ||
| KEY | ProfitCenter | prctr | ||
| KEY | ValidityEndDate | datbi | ||
| ProfitCtrResponsiblePersonName | verak | |||
| CompanyCode | bukrs | |||
| ProfitCtrResponsibleUser | verak_user | |||
| ValidityStartDate | datab | |||
| Department | abtei | |||
| ProfitCenterStandardHierarchy | khinr | |||
| Segment | segment | |||
| ProfitCenterIsBlocked | lock_ind | |||
| FormulaPlanningTemplate | pca_template | |||
| FormOfAddress | anred | |||
| AddressName | name1 | |||
| AdditionalName | name2 | |||
| ProfitCenterAddrName3 | name3 | |||
| ProfitCenterAddrName4 | name4 | |||
| StreetAddressName | stras | |||
| POBox | pfach | |||
| CityName | ort01 | |||
| PostalCode | pstlz | |||
| POBoxPostalCode | pstl2 | |||
| District | ort02 | |||
| Country | land1 | |||
| Region | regio | |||
| TaxJurisdiction | txjcd | |||
| Language | spras | |||
| PhoneNumber1 | telf1 | |||
| PhoneNumber2 | telf2 | |||
| TeleboxNumber | telbx | |||
| TelexNumber | telx1 | |||
| FaxNumber | telfx | |||
| TeletexNumber | teltx | |||
| DataCommunicationPhoneNumber | datlt | |||
| ProfitCenterPrinterName | drnam | |||
| ProfitCenterCreatedByUser | usnam | |||
| ProfitCenterCreationDate | ersda | |||
| _Text | _Text | |||
| _Country | _Country | |||
| _ControllingArea | _ControllingArea | |||
| _ProfitCenterHierarchyNode | _ProfitCenterHierarchyNode | |||
| _Language | _Language | |||
| _Company | _Company | |||
| _Segment | _Segment | |||
| _Region | _Region | |||
| _PrftCtrCompanyCodeAssignment | _PrftCtrCompanyCodeAssignment | |||
| _ControllingAreaText | _ControllingAreaText | |||
| _SegmentText | _SegmentText |
@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, #EXTRACTION_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 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,
///////////////////////////////////////////////////////////////////////////
// Attention
// Please do NOT use this field CompanyCode from this view
// (it is empty and will not be used/filled)
//
// The assignment CompanyCode - Profitcenter is built in another way
// We cannot delete the wrong field here because of DDL guidelines
///////////////////////////////////////////////////////////////////////
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
}
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA