C_FunctionalLocationDEX

DDL: C_FUNCTIONALLOCATIONDEX Type: view_entity CONSUMPTION Package: ILOM

Functional Location Data

C_FunctionalLocationDEX is a Consumption CDS View (Dimension) that provides data about "Functional Location Data" in SAP S/4HANA. It reads from 1 data source (I_FunctionalLocation) and exposes 65 fields with key field FunctionalLocation. It has 8 associations to related views. Part of development package ILOM.

Data Sources (1)

SourceAliasJoin Type
I_FunctionalLocation I_FunctionalLocation from

Associations (8)

CardinalityTargetAliasCondition
[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_MaintenancePlanPlant _MaintenancePlanPlant $projection.MaintenancePlanningPlant = _MaintenancePlanPlant.MaintenancePlanningPlant
[0..1] I_WBSElementBasicData _WBSElementBasicData $projection.WBSElementInternalID = _WBSElementBasicData.WBSElementInternalID

Annotations (13)

NameValueLevelField
EndUserText.label Functional Location Data view
VDM.viewType #CONSUMPTION view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #REQUIRED view
ObjectModel.sapObjectNodeType.name FunctionalLocation view
ObjectModel.representativeKey FunctionalLocation view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.modelingPattern #ANALYTICAL_DIMENSION view
Analytics.internalName #LOCAL view
Analytics.dataCategory #DIMENSION view
Analytics.dataExtraction.enabled true view

Fields (65)

KeyFieldSource TableSource FieldDescription
KEY FunctionalLocation
MaintObjectLocAcctAssgmtNmbr I_FunctionalLocation MaintObjectLocAcctAssgmtNmbr
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
WBSElementExternalID
FunctionalLocationCategory FunctionalLocationCategory
MainWorkCenter
MainWorkCenterPlant
SettlementOrder _LocationAccountAssignment SettlementOrder
WorkCenter
WorkCenterPlant
MainWorkCenterInternalID I_FunctionalLocation WorkCenterInternalID
WorkCenterInternalID _LocationAccountAssignment WorkCenterInternalID
WorkCenterTypeCode _LocationAccountAssignment WorkCenterTypeCode
SuperiorFunctionalLocation
CreationDate I_FunctionalLocation CreationDate
LastChangeDate I_FunctionalLocation LastChangeDate
AuthorizationGroup AuthorizationGroup
LastChangeDateTime I_FunctionalLocation LastChangeDateTime
FunctionalLocationEndOfUseDate I_FunctionalLocation FunctionalLocationEndOfUseDate
MaintObjectInternalID I_FunctionalLocation MaintObjectInternalID
WBSElementInternalID
LinearDataStartPoint
LinearDataEndPoint
LinearDataLength
LinearDataUnitOfMeasure
_FunctionalLocationCategory _FunctionalLocationCategory
_ConstructionMaterial _ConstructionMaterial
_TechnicalObjectType _TechnicalObjectType
_MaintenancePlannerGroup _MaintenancePlannerGroup
_MaintenancePlanningPlant _MaintenancePlanningPlant
_WBSElementBasicData _WBSElementBasicData
_PlantSection _LocationAccountAssignment _PlantSection
_Location _LocationAccountAssignment _Location
_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
_MaintenancePlanPlant _MaintenancePlanPlant
_FunctionalLocationText _FunctionalLocationText
_LocationAccountAssignment _LocationAccountAssignment
@AbapCatalog.viewEnhancementCategory: [#NONE]
@EndUserText.label: 'Functional Location Data'

@VDM.viewType: #CONSUMPTION

@Metadata: { ignorePropagatedAnnotations,
             allowExtensions }

@AccessControl: {
  authorizationCheck: #MANDATORY,
  personalData.blocking: #REQUIRED,
  privilegedAssociations: ['_Location',
                           '_LocationAccountAssignment' ]
}

@ObjectModel: {
  sapObjectNodeType.name: 'FunctionalLocation',
  representativeKey: 'FunctionalLocation',
  usageType: {
    dataClass: #MIXED,
    serviceQuality: #C,
    sizeCategory: #XXL  },
    modelingPattern: #ANALYTICAL_DIMENSION,
    supportedCapabilities: [ #EXTRACTION_DATA_SOURCE, #ANALYTICAL_DIMENSION,
                             #CDS_MODELING_ASSOCIATION_TARGET,
                             #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE ]
}

@Analytics: {
  internalName:#LOCAL,
  dataCategory: #DIMENSION,
  dataExtraction: {
    enabled: true,
    delta.changeDataCapture: {
      mapping:[
        {
            table: 'iflot', role: #MAIN,
            viewElement:  ['FunctionalLocation'],
            tableElement: ['tplnr' ]
        },
        {
            table: 'iloa', role: #LEFT_OUTER_TO_ONE_JOIN,
            viewElement:  ['MaintObjectLocAcctAssgmtNmbr'],
            tableElement: ['iloan']
        },
        {
            table: 'jest', role: #LEFT_OUTER_TO_ONE_JOIN,
            viewElement:  ['MaintObjectInternalID'],
            tableElement: ['objnr'],
            filter: [{ operator: #EQ, tableElement: 'STAT', value: 'I0076' }]
         }
    ]
    }
  }
}

define view entity C_FunctionalLocationDEX
  as select from I_FunctionalLocation as I_FunctionalLocation
  // Out of the first release's scope

  //  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_MaintenancePlanPlant    as _MaintenancePlanPlant         on  $projection.MaintenancePlanningPlant = _MaintenancePlanPlant.MaintenancePlanningPlant
  association [0..1] to I_WBSElementBasicData     as _WBSElementBasicData          on  $projection.WBSElementInternalID = _WBSElementBasicData.WBSElementInternalID

{
      /* start suppress warning shlporigin_not_inherited */
      //  key I_FunctionalLocation.FunctionalLocation,

  key cast(I_FunctionalLocation.FunctionalLocation as ps_s4_tplnr preserving type )                                               as FunctionalLocation,
      I_FunctionalLocation.MaintObjectLocAcctAssgmtNmbr,

      @ObjectModel.foreignKey.association: '_ABCIndicator'
      _LocationAccountAssignment.ABCIndicator,
      _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,
      @EndUserText: { label: 'WBS Element External ID', quickInfo: 'WBS Element External ID' }
//      cast( _LocationAccountAssignment._WBSElementBasicData.WBSElement  as ps_s4_posid )                                          as WBSElement,

      _LocationAccountAssignment._WBSElementBasicData.WBSElementExternalID,
      @ObjectModel.foreignKey.association: '_FunctionalLocationCategory'
      FunctionalLocationCategory,
      @ObjectModel.foreignKey.association: '_MainWorkCenterBySemanticKey'
      cast( I_FunctionalLocation._WorkCenter.WorkCenter as gewrk preserving type )                                                as MainWorkCenter,
      @ObjectModel.foreignKey.association: '_MainWorkCenterPlant'
      @EndUserText: { label: 'Plant of Work Center', quickInfo: 'Plant of Work Center' }
      I_FunctionalLocation._WorkCenter.Plant                                                                                      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'
      @EndUserText: { label: 'Internal ID of Main Work Center', quickInfo: 'Internal ID of Main Work Center' }
      I_FunctionalLocation.WorkCenterInternalID                                                                                   as MainWorkCenterInternalID,
      @ObjectModel.foreignKey.association: '_WorkCenter'
      _LocationAccountAssignment.WorkCenterInternalID,
      @ObjectModel.foreignKey.association: '_WorkCenterType'
      @EndUserText: { label: 'Type Code of Work Center', quickInfo: 'Type Code of Work Center' }
      _LocationAccountAssignment.WorkCenterTypeCode                                                                               as WorkCenterTypeCode,

      /* Additional fields */
      cast( I_FunctionalLocation.SuperiorFunctionalLocation   as ps_s4_tplnr preserving type )                                    as SuperiorFunctionalLocation,
      @Semantics.systemDate.createdAt: true
      I_FunctionalLocation.CreationDate,
      @Semantics.systemDate.lastChangedAt: true
      I_FunctionalLocation.LastChangeDate,
      AuthorizationGroup,
      @Semantics.systemDateTime.lastChangedAt: true
      I_FunctionalLocation.LastChangeDateTime,
      I_FunctionalLocation.FunctionalLocationEndOfUseDate,

      I_FunctionalLocation.MaintObjectInternalID,

      @ObjectModel.foreignKey.association: '_FuncnlLocIsMarkedForDeletion'
      @Semantics.booleanIndicator: true
      cast( case when _Status[ exact one to one : 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'
      @EndUserText: { label: 'WBS Element Internal ID', quickInfo: 'WBS Element Internal ID' }
      cast( _LocationAccountAssignment.WBSElementInternalID as ps_s4_pspnr 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'
      cast( I_FunctionalLocation._LinearAssetManagementData.LinearDataLength as eaml_linear_length_si )                           as LinearDataLength,
      I_FunctionalLocation._LinearAssetManagementData.LinearDataUnitOfMeasure,

      /* end suppress warning shlporigin_not_inherited */

      /* Associations */
      _FunctionalLocationCategory,
      _ConstructionMaterial,
      _TechnicalObjectType,
      _MaintenancePlannerGroup,
      _MaintenancePlanningPlant,
      //      _PrimaryLabel._FunctionalLocLabelingSyst, Out of the first release's scope

      _WBSElementBasicData,
      _LocationAccountAssignment._PlantSection,
      _LocationAccountAssignment._Location,
      _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,
      _FunctionalLocationText,
      _LocationAccountAssignment
}