I_FunctionalLocationData
Functional Location Data
I_FunctionalLocationData is a Composite CDS View (Dimension) that provides data about "Functional Location Data" in SAP S/4HANA. It reads from 1 data source (I_FunctionalLocation) and exposes 70 fields with key field FunctionalLocation. It has 11 associations to related views.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_FunctionalLocation | I_FunctionalLocation | from |
Associations (11)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_FunclocationLabelInternal | _PrimaryLabel | $projection.FunctionalLocation = _PrimaryLabel.FunctionalLocation and _PrimaryLabel.FuncnlLocLabelIsPrimaryLabel = 'X' and _PrimaryLabel.FunctionalLocLabelIsActive = 'X' |
| [0..1] | I_WorkCenterBySemanticKey | _MainWorkCenterBySemanticKey | $projection.MainWorkCenter = _MainWorkCenterBySemanticKey.WorkCenter and $projection.MainWorkCenterPlant = _MainWorkCenterBySemanticKey.Plant |
| [0..1] | I_Plant | _MainWorkCenterPlant | $projection.MainWorkCenterPlant = _MainWorkCenterPlant.Plant |
| [0..1] | I_WorkCenterBySemanticKey | _WorkCenterBySemanticKey | $projection.workcenter = _WorkCenterBySemanticKey.WorkCenter and $projection.WorkCenterPlant = _WorkCenterBySemanticKey.Plant |
| [0..1] | I_Plant | _WorkCenterPlant | $projection.WorkCenterPlant = _WorkCenterPlant.Plant |
| [0..1] | I_WorkCenter | _MainWorkCenter | _MainWorkCenter.WorkCenterInternalID = $projection.MainWorkCenterInternalID and _MainWorkCenter.WorkCenterTypeCode = 'A' |
| [0..1] | I_Indicator | _FuncnlLocIsMarkedForDeletion | $projection.FuncnlLocIsMarkedForDeletion = _FuncnlLocIsMarkedForDeletion.IndicatorValue |
| [0..1] | I_FunctionalLocationData | _SuperiorFunctionalLocation | $projection.SuperiorFunctionalLocation = _SuperiorFunctionalLocation.FunctionalLocation association[0..1] to I_MaintenancePlanPlant as _MaintenancePlanPlant on $projection.MaintenancePlanningPlant = _MaintenancePlanPlant.MaintenancePlanningPlant association[0..1] to I_FuncnlLocationHierarchyNode as _FuncnlLocationHierarchyNode on $projection.FunctionalLocation = _FuncnlLocationHierarchyNode.FunctionalLocation |
| [0..1] | I_WBSElementBasicData | _WBSElementBasicData | $projection.WBSElementInternalID = _WBSElementBasicData.WBSElementInternalID -- Extension, do not expose as association: |
| [0..1] | E_FunctionalLocation | _FunctionalLocationExtension | _FunctionalLocationExtension.FunctionalLocation = $projection.FunctionalLocation |
| [0..*] | I_FunctionalLocationText | _FunctionalLocationText | _FunctionalLocationText.FunctionalLocation = $projection.FunctionalLocation |
Annotations (14)
| Name | Value | Level | Field |
|---|---|---|---|
| EndUserText.label | Functional Location Data | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| AbapCatalog.sqlViewName | IFUNCTLOCATTR | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| ObjectModel.representativeKey | FunctionalLocation | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| Analytics.dataExtraction.enabled | true | view | |
| Analytics.dataExtraction.delta.byElement.name | LastChangeDateTime | view |
Fields (70)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | FunctionalLocation | I_FunctionalLocation | FunctionalLocation | |
| ABCIndicator | _LocationAccountAssignment | ABCIndicator | ||
| AddressID | _LocationAccountAssignment | AddressID | ||
| MasterFixedAsset | _LocationAccountAssignment | MasterFixedAsset | ||
| ConstructionMaterial | ConstructionMaterial | |||
| CompanyCode | _LocationAccountAssignment | CompanyCode | ||
| CostCenter | _LocationAccountAssignment | CostCenter | ||
| ControllingArea | _LocationAccountAssignment | ControllingArea | ||
| OperationStartDate | OperationStartDate | |||
| TechnicalObjectType | TechnicalObjectType | |||
| AssetLocation | _LocationAccountAssignment | AssetLocation | ||
| MaintenancePlant | _LocationAccountAssignment | MaintenancePlant | ||
| AssetRoom | _LocationAccountAssignment | AssetRoom | ||
| MaintenancePlanningPlant | MaintenancePlanningPlant | |||
| PlantSection | _LocationAccountAssignment | PlantSection | ||
| MaintenancePlannerGroup | MaintenancePlannerGroup | |||
| FunctionalLocLabelingSyst | _PrimaryLabel | FunctionalLocLabelingSyst | ||
| FuncnlLocPrimaryLabelName | _PrimaryLabel | FunctionalLocationLabelName | ||
| FunctionalLocationLabelVersion | _PrimaryLabel | FunctionalLocationLabelVersion | ||
| WBSElement | ||||
| FunctionalLocationCategory | FunctionalLocationCategory | |||
| MainWorkCenter | ||||
| MainWorkCenterPlant | ||||
| SettlementOrder | _LocationAccountAssignment | SettlementOrder | ||
| WorkCenter | ||||
| WorkCenterPlant | ||||
| MainWorkCenterInternalID | I_FunctionalLocation | WorkCenterInternalID | ||
| WorkCenterInternalID | _LocationAccountAssignment | WorkCenterInternalID | ||
| WorkCenterTypeCode | _LocationAccountAssignment | WorkCenterTypeCode | ||
| SuperiorFunctionalLocation | SuperiorFunctionalLocation | |||
| CreationDate | I_FunctionalLocation | CreationDate | ||
| LastChangeDate | I_FunctionalLocation | LastChangeDate | ||
| AuthorizationGroup | AuthorizationGroup | |||
| LastChangeDateTime | I_FunctionalLocation | LastChangeDateTime | ||
| FunctionalLocationEndOfUseDate | I_FunctionalLocation | FunctionalLocationEndOfUseDate | ||
| WBSElementInternalID | ||||
| LinearDataStartPoint | ||||
| LinearDataEndPoint | ||||
| LinearDataLength | ||||
| LinearDataUnitOfMeasure | ||||
| _FunctionalLocationText | _FunctionalLocationText | |||
| _FunctionalLocationCategory | _FunctionalLocationCategory | |||
| _ConstructionMaterial | _ConstructionMaterial | |||
| _TechnicalObjectType | _TechnicalObjectType | |||
| _MaintenancePlannerGroup | _MaintenancePlannerGroup | |||
| _MaintenancePlanningPlant | _MaintenancePlanningPlant | |||
| _FunctionalLocLabelingSyst | _PrimaryLabel | _FunctionalLocLabelingSyst | ||
| _WBSElementBasicData | _WBSElementBasicData | |||
| _PlantSection | _LocationAccountAssignment | _PlantSection | ||
| _Location | _LocationAccountAssignment | _Location | ||
| _Address | _LocationAccountAssignment | _Address | ||
| _Address2 | _LocationAccountAssignment | _Address2 | ||
| _CompanyCode | _LocationAccountAssignment | _CompanyCode | ||
| _MaintenancePlant | _LocationAccountAssignment | _MaintenancePlant | ||
| _MasterFixedAsset | _LocationAccountAssignment | _MasterFixedAsset | ||
| _ABCIndicator | _LocationAccountAssignment | _ABCIndicator | ||
| _CostCenter | _LocationAccountAssignment | _CostCenter | ||
| _ControllingArea | _LocationAccountAssignment | _ControllingArea | ||
| _SettlementOrder | _LocationAccountAssignment | _SettlementOrder | ||
| _WorkCenter | _LocationAccountAssignment | _WorkCenter | ||
| _WorkCenterType | _LocationAccountAssignment | _WorkCenterType | ||
| _MainWorkCenterBySemanticKey | _MainWorkCenterBySemanticKey | |||
| _MainWorkCenterPlant | _MainWorkCenterPlant | |||
| _WorkCenterBySemanticKey | _WorkCenterBySemanticKey | |||
| _WorkCenterPlant | _WorkCenterPlant | |||
| _MainWorkCenter | _MainWorkCenter | |||
| _FuncnlLocIsMarkedForDeletion | _FuncnlLocIsMarkedForDeletion | |||
| _SuperiorFunctionalLocation | _SuperiorFunctionalLocation | |||
| _MaintenancePlanPlant | _MaintenancePlanPlant | |||
| _FuncnlLocationHierarchyNode | _FuncnlLocationHierarchyNode |
@EndUserText.label: 'Functional Location Data'
@VDM: {
viewType: #COMPOSITE,
lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@AbapCatalog.sqlViewName: 'IFUNCTLOCATTR'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl: {
authorizationCheck: #CHECK,
privilegedAssociations: ['_Location', '_Address', '_FuncnlLocationHierarchyNode',
'_Address2'] // 2302 CE - Adapt I_Address_2
}
@ObjectModel: {
representativeKey: 'FunctionalLocation',
usageType: {
dataClass: #MASTER,
serviceQuality: #C,
sizeCategory: #L
},
supportedCapabilities: [ #EXTRACTION_DATA_SOURCE ]
}
@Analytics: {
dataCategory: #DIMENSION,
dataExtraction: {
enabled: true,
delta.byElement: {
name: 'LastChangeDateTime'
}
}
}
@Metadata: {
ignorePropagatedAnnotations,
allowExtensions
}
define view I_FunctionalLocationData
as select from I_FunctionalLocation as I_FunctionalLocation
association [0..1] to I_FunclocationLabelInternal as _PrimaryLabel on $projection.FunctionalLocation = _PrimaryLabel.FunctionalLocation
and _PrimaryLabel.FuncnlLocLabelIsPrimaryLabel = 'X'
and _PrimaryLabel.FunctionalLocLabelIsActive = 'X'
association [0..1] to I_WorkCenterBySemanticKey as _MainWorkCenterBySemanticKey on $projection.MainWorkCenter = _MainWorkCenterBySemanticKey.WorkCenter
and $projection.MainWorkCenterPlant = _MainWorkCenterBySemanticKey.Plant
association [0..1] to I_Plant as _MainWorkCenterPlant on $projection.MainWorkCenterPlant = _MainWorkCenterPlant.Plant
association [0..1] to I_WorkCenterBySemanticKey as _WorkCenterBySemanticKey on $projection.workcenter = _WorkCenterBySemanticKey.WorkCenter
and $projection.WorkCenterPlant = _WorkCenterBySemanticKey.Plant
association [0..1] to I_Plant as _WorkCenterPlant on $projection.WorkCenterPlant = _WorkCenterPlant.Plant
association [0..1] to I_WorkCenter as _MainWorkCenter on _MainWorkCenter.WorkCenterInternalID = $projection.MainWorkCenterInternalID
and _MainWorkCenter.WorkCenterTypeCode = 'A'
association [0..1] to I_Indicator as _FuncnlLocIsMarkedForDeletion on $projection.FuncnlLocIsMarkedForDeletion = _FuncnlLocIsMarkedForDeletion.IndicatorValue
association [0..1] to I_FunctionalLocationData as _SuperiorFunctionalLocation on $projection.SuperiorFunctionalLocation = _SuperiorFunctionalLocation.FunctionalLocation
association[0..1] to I_MaintenancePlanPlant as _MaintenancePlanPlant on $projection.MaintenancePlanningPlant = _MaintenancePlanPlant.MaintenancePlanningPlant
association[0..1] to I_FuncnlLocationHierarchyNode as _FuncnlLocationHierarchyNode on $projection.FunctionalLocation = _FuncnlLocationHierarchyNode.FunctionalLocation
association [0..1] to I_WBSElementBasicData as _WBSElementBasicData on $projection.WBSElementInternalID = _WBSElementBasicData.WBSElementInternalID
-- Extension, do not expose as association:
association [0..1] to E_FunctionalLocation as _FunctionalLocationExtension on _FunctionalLocationExtension.FunctionalLocation = $projection.FunctionalLocation
association [0..*] to I_FunctionalLocationText as _FunctionalLocationText on _FunctionalLocationText.FunctionalLocation = $projection.FunctionalLocation
{
@ObjectModel.text.association: '_FunctionalLocationText'
@ObjectModel.hierarchy.association: '_FuncnlLocationHierarchyNode'
key I_FunctionalLocation.FunctionalLocation,
/* Fields, as they appeared in InfoObject 0FUNCT_LOC */
@ObjectModel.foreignKey.association: '_ABCIndicator'
_LocationAccountAssignment.ABCIndicator,
// @ObjectModel.foreignKey.association: '_Address'
@ObjectModel.foreignKey.association: '_Address2' //2302 CE - Consider I_Address_2
_LocationAccountAssignment.AddressID,
@ObjectModel.foreignKey.association: '_MasterFixedAsset'
_LocationAccountAssignment.MasterFixedAsset,
@ObjectModel.foreignKey.association: '_ConstructionMaterial'
ConstructionMaterial,
@ObjectModel.foreignKey.association: '_CompanyCode'
_LocationAccountAssignment.CompanyCode,
@ObjectModel.foreignKey.association: '_CostCenter'
_LocationAccountAssignment.CostCenter,
@ObjectModel.foreignKey.association: '_ControllingArea'
_LocationAccountAssignment.ControllingArea,
OperationStartDate,
@ObjectModel.foreignKey.association: '_TechnicalObjectType'
TechnicalObjectType,
@ObjectModel.foreignKey.association: '_Location'
_LocationAccountAssignment.AssetLocation,
@ObjectModel.foreignKey.association: '_MaintenancePlant'
_LocationAccountAssignment.MaintenancePlant,
_LocationAccountAssignment.AssetRoom,
@ObjectModel.foreignKey.association: '_MaintenancePlanPlant'
MaintenancePlanningPlant,
@ObjectModel.foreignKey.association: '_PlantSection'
_LocationAccountAssignment.PlantSection,
@ObjectModel.foreignKey.association: '_MaintenancePlannerGroup'
MaintenancePlannerGroup,
@ObjectModel.foreignKey.association: '_FunctionalLocLabelingSyst'
_PrimaryLabel.FunctionalLocLabelingSyst,
_PrimaryLabel.FunctionalLocationLabelName as FuncnlLocPrimaryLabelName,
_PrimaryLabel.FunctionalLocationLabelVersion,
cast( _LocationAccountAssignment._WBSElementBasicData.WBSElement as ps_posid preserving type ) as WBSElement,
@ObjectModel.foreignKey.association: '_FunctionalLocationCategory'
FunctionalLocationCategory,
@ObjectModel.foreignKey.association: '_MainWorkCenterBySemanticKey'
cast( I_FunctionalLocation._WorkCenter.WorkCenter as gewrk preserving type ) as MainWorkCenter,
@ObjectModel.foreignKey.association: '_MainWorkCenterPlant'
cast( I_FunctionalLocation._WorkCenter.Plant as wergw preserving type ) as MainWorkCenterPlant,
@ObjectModel.foreignKey.association: '_SettlementOrder'
_LocationAccountAssignment.SettlementOrder,
@ObjectModel.foreignKey.association: '_WorkCenterBySemanticKey'
_LocationAccountAssignment._WorkCenter.WorkCenter,
@ObjectModel.foreignKey.association: '_WorkCenterPlant'
_LocationAccountAssignment._WorkCenter.Plant as WorkCenterPlant,
@ObjectModel.foreignKey.association: '_MainWorkCenter'
I_FunctionalLocation.WorkCenterInternalID as MainWorkCenterInternalID,
@ObjectModel.foreignKey.association: '_WorkCenter'
_LocationAccountAssignment.WorkCenterInternalID,
@ObjectModel.foreignKey.association: '_WorkCenterType'
_LocationAccountAssignment.WorkCenterTypeCode,
/* Additional fields */
// I_FunctionalLocation
@ObjectModel.hierarchy.association: '_SuperiorFunctionalLocation'
SuperiorFunctionalLocation,
@Semantics.systemDate.createdAt: true
I_FunctionalLocation.CreationDate,
@Semantics.systemDate.lastChangedAt: true
I_FunctionalLocation.LastChangeDate,
AuthorizationGroup,
@Semantics.systemDateTime.lastChangedAt: true
I_FunctionalLocation.LastChangeDateTime,
//Adding EndOfUseDate field - 2308
I_FunctionalLocation.FunctionalLocationEndOfUseDate,
@ObjectModel.foreignKey.association: '_FuncnlLocIsMarkedForDeletion'
--@Semantics.booleanIndicator: true
cast( case when _Status[ StatusCode = 'I0076' and StatusIsInactive = '' ].StatusCode is not null then 'X' else ' ' end as eam_is_deleted preserving type ) as FuncnlLocIsMarkedForDeletion,
// I_LocationAccountAssignment
@ObjectModel.foreignKey.association: '_WBSElementBasicData'
cast( _LocationAccountAssignment.WBSElementInternalID as ps_psp_pnr preserving type ) as WBSElementInternalID,
//I_LinearAssetManagementData
cast( cast( I_FunctionalLocation._LinearAssetManagementData.LinearDataStartPoint as abap.dec(11, 3) ) as eaml_start_point ) as LinearDataStartPoint,
cast( cast( I_FunctionalLocation._LinearAssetManagementData.LinearDataEndPoint as abap.dec(11, 3) ) as eaml_end_point )
as LinearDataEndPoint,
@Semantics.quantity.unitOfMeasure: 'LinearDataUnitOfMeasure'
I_FunctionalLocation._LinearAssetManagementData.LinearDataLength,
@Semantics.unitOfMeasure: true
I_FunctionalLocation._LinearAssetManagementData.LinearDataUnitOfMeasure,
/* Associations */
_FunctionalLocationText,
_FunctionalLocationCategory,
_ConstructionMaterial,
_TechnicalObjectType,
_MaintenancePlannerGroup,
_MaintenancePlanningPlant,
_PrimaryLabel._FunctionalLocLabelingSyst,
_WBSElementBasicData,
_LocationAccountAssignment._PlantSection,
_LocationAccountAssignment._Location,
@API.element.releaseState: #DEPRECATED
@API.element.successor: '_Address2'
_LocationAccountAssignment._Address,
_LocationAccountAssignment._Address2, //Added : 2302 CE - Consider fields from I_Address_2
_LocationAccountAssignment._CompanyCode,
_LocationAccountAssignment._MaintenancePlant,
_LocationAccountAssignment._MasterFixedAsset,
_LocationAccountAssignment._ABCIndicator,
_LocationAccountAssignment._CostCenter,
_LocationAccountAssignment._ControllingArea,
_LocationAccountAssignment._SettlementOrder,
_LocationAccountAssignment._WorkCenter,
_LocationAccountAssignment._WorkCenterType,
_MainWorkCenterBySemanticKey,
_MainWorkCenterPlant,
_WorkCenterBySemanticKey,
_WorkCenterPlant,
_MainWorkCenter,
_FuncnlLocIsMarkedForDeletion,
_SuperiorFunctionalLocation,
_MaintenancePlanPlant,
_FuncnlLocationHierarchyNode
}
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