I_FunctionalLocationData

DDL: I_FUNCTIONALLOCATIONDATA SQL: IFUNCTLOCATTR Type: view COMPOSITE

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)

SourceAliasJoin Type
I_FunctionalLocation I_FunctionalLocation from

Associations (11)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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
}