C_FUNCTIONALLOCATIONDEX

CDS View

Functional Location Data

C_FUNCTIONALLOCATIONDEX is a CDS View in S/4HANA. Functional Location Data. 1 CDS views read from this table.

CDS Views using this table (1)

ViewTypeJoinVDMDescription
C_FunctionalLocationDP view_entity from CONSUMPTION Functional Location
@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
}