C_TechnicalObjectFlatVH

DDL: C_TECHNICALOBJECTFLATVH SQL: CTECHOBJFLATVH Type: view CONSUMPTION Package: ODATA_EAM_MALFUNCTION_MANAGE

Technical Object

C_TechnicalObjectFlatVH is a Consumption CDS View that provides data about "Technical Object" in SAP S/4HANA. It reads from 1 data source (I_TechnicalObject) and exposes 77 fields with key fields TechnicalObject, TechObjIsEquipOrFuncnlLoc. It has 8 associations to related views. Part of development package ODATA_EAM_MALFUNCTION_MANAGE.

Data Sources (1)

SourceAliasJoin Type
I_TechnicalObject I_TechnicalObject from

Associations (8)

CardinalityTargetAliasCondition
[0..1] I_Equipment _EquipmentSearch $projection.EquipmentWithLeadingZeros = _EquipmentSearch.Equipment
[0..*] C_PMWorkCenterVH _MainWorkCenterVH $projection.MainWorkCenter = _MainWorkCenterVH.WorkCenter and $projection.MaintenancePlanningPlant = _MainWorkCenterVH.Plant and _MainWorkCenterVH.WorkCenterTypeCode = 'A'
[0..*] C_PMWorkCenterVH _WorkCenterVH $projection.workcenter = _WorkCenterVH.WorkCenter and $projection.Plant = _WorkCenterVH.Plant and _WorkCenterVH.WorkCenterTypeCode = 'A'
[0..1] C_MaintenancePlannerGroupVH _MaintenancePlannerGroup $projection.MaintenancePlannerGroup = _MaintenancePlannerGroup.MaintenancePlannerGroup and $projection.MaintenancePlanningPlant = _MaintenancePlannerGroup.MaintenancePlanningPlant
[0..1] C_PMAssetLocationVH _AssetLocationVH $projection.assetlocation = _AssetLocationVH.Location and $projection.Plant = _AssetLocationVH.Plant
[0..1] C_MaintenancePlanPlantVH _PlanningPlantVH $projection.Plant = _PlanningPlantVH.MaintenancePlanningPlant
[0..1] I_PMContactCardUser _CreatedByUser $projection.CreatedByUser = _CreatedByUser.UserID
[0..1] I_PMContactCardUser _LastChangedByUser $projection.LastChangedByUser = _LastChangedByUser.UserID

Annotations (10)

NameValueLevelField
EndUserText.label Technical Object view
VDM.viewType #CONSUMPTION view
AccessControl.authorizationCheck #CHECK view
AbapCatalog.sqlViewName CTECHOBJFLATVH view
ObjectModel.representativeKey TechnicalObject view
Search.searchable true view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view

Fields (77)

KeyFieldSource TableSource FieldDescription
KEY TechnicalObject I_TechnicalObject TechnicalObject
KEY TechObjIsEquipOrFuncnlLoc I_TechnicalObject TechObjIsEquipOrFuncnlLoc Technical Object Type
TechnicalObjectLabel I_TechnicalObject TechnicalObjectLabel
FunctionalLocationLabelName
TechnicalObjectDescription Description
Equipment _EquipmentSearch Equipment
Plant I_TechnicalObject MaintenancePlanningPlant
EquipmentWithLeadingZeros I_TechnicalObject Equipment
FunctionalLocation I_TechnicalObject FunctionalLocation
ABCIndicator
ABCIndicatorDesc
AuthorizationGroup I_TechnicalObject AuthorizationGroup Authorization Group
BusinessArea
BusinessAreaName Business Area Name
CatalogProfile I_TechnicalObject CatalogProfile
CompanyCode
CompanyCodeName
ControllingArea
ControllingAreaName
CostCenter
CostCenterDescription Cost Center Description
WorkCenter
WorkCenterInternalID
WorkCenterTypeCode
MainWorkCenterPlant
WorkCenterText
MainWorkCenter Main Work Center
MainWorkCenterInternalID I_TechnicalObject WorkCenterInternalID
MainWorkCenterTypeCode I_TechnicalObject WorkCenterTypeCode
MainWorkCenterText Main Work Center Text
MaintenancePlant Maintenance Plant
MaintenancePlantName
AssetManufacturerName I_TechnicalObject AssetManufacturerName
ManufacturerPartTypeName I_TechnicalObject ManufacturerPartTypeName
MaintenancePlanningPlant I_TechnicalObject MaintenancePlanningPlant
MaintenancePlannerGroup I_TechnicalObject MaintenancePlannerGroup
MaintenancePlannerGroupName
PlantSection
PlantSectionPersonRespName Person Responsible for Plant Section
AssetRoom
MaintObjectFreeDefinedAttrib
TechnicalObjectCategory I_TechnicalObject TechnicalObjectCategory Technical Object Category
TechnicalObjectCategoryDesc
TechnicalObjectType I_TechnicalObject TechnicalObjectType Object Type
AcquisitionValue I_TechnicalObject AcquisitionValue
Currency I_TechnicalObject Currency
CreatedByUser I_TechnicalObject CreatedByUser
CreationDate I_TechnicalObject CreationDate
LastChangedByUser I_TechnicalObject LastChangedByUser
LastChangeDate I_TechnicalObject LastChangeDate
Division
DivisionName
AssetLocation
LocationName
TechObjIsEquipOrFuncnlLocDesc Technical Object Type Description
TechObjInstallationLocation
HierarchyNodeLevel 0
_TechObjIsEquipOrFuncnlLoc I_TechnicalObject _TechObjIsEquipOrFuncnlLoc
_ABCIndicator
_TechnicalObjectType I_TechnicalObject _TechnicalObjectType
_TechnicalObjectCategory I_TechnicalObject _TechnicalObjectCategory
_MainWorkCenterVH _MainWorkCenterVH
_WorkCenterVH _WorkCenterVH
_MaintenancePlannerGroup _MaintenancePlannerGroup
_AssetLocationVH _AssetLocationVH
_PlanningPlantVH _PlanningPlantVH
_MaintenancePlanningPlant I_TechnicalObject _MaintenancePlanningPlant
_Plant
_MaintPlanningPlant I_TechnicalObject _MaintenancePlanningPlant
_Location
_PlantSection
_MaintenancePlant
_TechnicalObjectCodeCatalog I_TechnicalObject _TechnicalObjectCodeCatalog
_BusinessArea
_CompanyCode
_CreatedByUser _CreatedByUser
_LastChangedByUser _LastChangedByUser
@EndUserText.label: 'Technical Object'
@VDM.viewType: #CONSUMPTION
@AccessControl.authorizationCheck: #CHECK
@AbapCatalog.sqlViewName: 'CTECHOBJFLATVH'
@ObjectModel.representativeKey: 'TechnicalObject'
@ObjectModel.semanticKey:  [ 'TechnicalObject','TechObjIsEquipOrFuncnlLoc' ]

@Search.searchable: true

@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L

define view C_TechnicalObjectFlatVH
  as select from I_TechnicalObject
  association [0..1] to I_Equipment                 as _EquipmentSearch         on  $projection.EquipmentWithLeadingZeros = _EquipmentSearch.Equipment

  association [0..*] to C_PMWorkCenterVH            as _MainWorkCenterVH        on  $projection.MainWorkCenter           = _MainWorkCenterVH.WorkCenter
                                                                                and $projection.MaintenancePlanningPlant = _MainWorkCenterVH.Plant
                                                                                and _MainWorkCenterVH.WorkCenterTypeCode = 'A'

  association [0..*] to C_PMWorkCenterVH            as _WorkCenterVH            on  $projection.workcenter           = _WorkCenterVH.WorkCenter
                                                                                and $projection.Plant                = _WorkCenterVH.Plant
                                                                                and _WorkCenterVH.WorkCenterTypeCode = 'A'

  association [0..1] to C_MaintenancePlannerGroupVH as _MaintenancePlannerGroup on  $projection.MaintenancePlannerGroup  = _MaintenancePlannerGroup.MaintenancePlannerGroup
                                                                                and $projection.MaintenancePlanningPlant = _MaintenancePlannerGroup.MaintenancePlanningPlant
  association [0..1] to C_PMAssetLocationVH         as _AssetLocationVH         on  $projection.assetlocation = _AssetLocationVH.Location
                                                                                and $projection.Plant         = _AssetLocationVH.Plant
  association [0..1] to C_MaintenancePlanPlantVH    as _PlanningPlantVH         on  $projection.Plant = _PlanningPlantVH.MaintenancePlanningPlant

  association [0..1] to I_PMContactCardUser         as _CreatedByUser           on  $projection.CreatedByUser = _CreatedByUser.UserID
  association [0..1] to I_PMContactCardUser         as _LastChangedByUser       on  $projection.LastChangedByUser  = _LastChangedByUser.UserID

{
      @UI.hidden: true
  key I_TechnicalObject.TechnicalObject,

      @EndUserText.label: 'Technical Object Type'
      @ObjectModel.foreignKey.association: '_TechObjIsEquipOrFuncnlLoc'
  key I_TechnicalObject.TechObjIsEquipOrFuncnlLoc,

      @ObjectModel.text.element: 'TechnicalObjectDescription'
      @UI:{lineItem: [{position: 10,importance: #HIGH }]}
      I_TechnicalObject.TechnicalObjectLabel,

      //---------- Search scope (start) ----------

      @UI.hidden: true
      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
      I_TechnicalObject._FunctionalLocationLabel._FuncLocationLabelSearch.FunctionalLocationLabelName,

      @EndUserText.label: 'Description'
      @Search: { defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.8 }
      I_TechnicalObject._TechnicalObjectText[1: Language = $session.system_language ].TechnicalObjectDescription,

      @UI.hidden: true
      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
      _EquipmentSearch.Equipment,
      //---------- Search scope (end) ----------

      //@UI.hidden: true

      // @EndUserText.label: 'Planning Plant'

      @Consumption.valueHelp : '_PlanningPlantVH'
      I_TechnicalObject.MaintenancePlanningPlant                                                              as Plant,

      @Consumption.hidden: true
      I_TechnicalObject.Equipment                                                                             as EquipmentWithLeadingZeros,

      @Consumption.hidden: true
      I_TechnicalObject.FunctionalLocation,

      @ObjectModel.text.element:  [ 'ABCIndicatorDesc' ]
      @ObjectModel.foreignKey.association: '_ABCIndicator'
      I_TechnicalObject._LocationAccountAssignment.ABCIndicator,

      @UI.hidden: true
      I_TechnicalObject._LocationAccountAssignment._ABCIndicator._Text[1: Language = $session.system_language ].ABCIndicatorDesc,

      @EndUserText.label: 'Authorization Group'
      I_TechnicalObject.AuthorizationGroup,

      @ObjectModel.text.element:  [ 'BusinessAreaName' ]
      @ObjectModel.foreignKey.association: '_BusinessArea'
      I_TechnicalObject._LocationAccountAssignment.BusinessArea,
      @Semantics.text: true
      @EndUserText.label: 'Business Area Name'
      I_TechnicalObject._LocationAccountAssignment._BusinessArea._Text[1: Language = $session.system_language ].BusinessAreaName,

      @ObjectModel.foreignKey.association: '_TechnicalObjectCodeCatalog'
      I_TechnicalObject.CatalogProfile,

      @ObjectModel.text.element:  [ 'CompanyCodeName' ]
      @ObjectModel.foreignKey.association: '_CompanyCode'
      I_TechnicalObject._LocationAccountAssignment.CompanyCode,
      @Semantics.text: true
      I_TechnicalObject._LocationAccountAssignment._CompanyCode.CompanyCodeName,

      @ObjectModel.text.element:  [ 'ControllingAreaName' ]
      I_TechnicalObject._LocationAccountAssignment.ControllingArea,
      @Semantics.text: true
      I_TechnicalObject._LocationAccountAssignment._ControllingArea.ControllingAreaName,

      @ObjectModel.text.element:  [ 'CostCenterDescription' ]
      I_TechnicalObject._LocationAccountAssignment.CostCenter,
      @Semantics.text: true
      @EndUserText.label: 'Cost Center Description'
      I_TechnicalObject._LocationAccountAssignment._CostCenter[1: ValidityEndDate = '99991231' ]._Text[1: Language = $session.system_language ].CostCenterDescription,

      @ObjectModel.text.element:  [ 'WorkCenterText' ]
      @Consumption.valueHelp: '_WorkCenterVH'
      @Consumption.hidden: true
      I_TechnicalObject._LocationAccountAssignment._WorkCenter.WorkCenter,

      @UI.hidden: true
      I_TechnicalObject._LocationAccountAssignment.WorkCenterInternalID,

      @UI.hidden: true
      I_TechnicalObject._LocationAccountAssignment.WorkCenterTypeCode,

      @UI.hidden: true
      @ObjectModel.foreignKey.association: '_Plant'
      I_TechnicalObject._LocationAccountAssignment._WorkCenter.Plant                                          as MainWorkCenterPlant,

      @Semantics.text: true
      I_TechnicalObject._LocationAccountAssignment._WorkCenter._Text[1: Language = $session.system_language ].WorkCenterText,

      @ObjectModel.text.element:  [ 'MainWorkCenterText' ]
      @EndUserText.label: 'Main Work Center'
      @Consumption.valueHelp: '_MainWorkCenterVH'
      cast( I_TechnicalObject._WorkCenter.WorkCenter as gewrk )                                               as MainWorkCenter,

      @UI.hidden: true
      I_TechnicalObject.WorkCenterInternalID                                                                  as MainWorkCenterInternalID,

      @UI.hidden: true
      I_TechnicalObject.WorkCenterTypeCode                                                                    as MainWorkCenterTypeCode,

      @EndUserText.label: 'Main Work Center Text'
      @Semantics.text: true
      I_TechnicalObject._WorkCenter._Text[1: Language = $session.system_language ].WorkCenterText             as MainWorkCenterText,


      @ObjectModel.text.element:  [ 'MaintenancePlantName' ]
      @EndUserText.label: 'Maintenance Plant'
      @ObjectModel.foreignKey.association: '_MaintenancePlant'
      I_TechnicalObject._LocationAccountAssignment.MaintenancePlant,

      @Semantics.text: true
      @UI.hidden: true
      I_TechnicalObject._LocationAccountAssignment._MaintenancePlant.PlantName                                as MaintenancePlantName,

      I_TechnicalObject.AssetManufacturerName,

      I_TechnicalObject.ManufacturerPartTypeName,

      @UI.hidden: true
      @ObjectModel.foreignKey.association: '_MaintenancePlanningPlant'
      I_TechnicalObject.MaintenancePlanningPlant,

      //  @ObjectModel.foreignKey.association: '_MaintenancePlannerGroup'

      @Consumption.valueHelp:'_MaintenancePlannerGroup'
      @ObjectModel.text.element:  [ 'MaintenancePlannerGroupName' ]
      I_TechnicalObject.MaintenancePlannerGroup,
      @Semantics.text: true
      I_TechnicalObject._MaintenancePlannerGroup.MaintenancePlannerGroupName,
      @Consumption.valueHelp:'_PlantSection'
      @ObjectModel.text.element:  [ 'PlantSectionPersonRespName' ]
      I_TechnicalObject._LocationAccountAssignment.PlantSection,
      @EndUserText.label: 'Person Responsible for Plant Section'
      @Semantics.text: true
      I_TechnicalObject._LocationAccountAssignment._PlantSection.PlantSectionPersonRespName,

      I_TechnicalObject._LocationAccountAssignment.AssetRoom,

      I_TechnicalObject._LocationAccountAssignment.MaintObjectFreeDefinedAttrib,

      //--[ GENERATED:012:GFBfhxvv7kY4ijLfGS3wvW

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_EquipmentCategoryStdVH',
                     element: 'TechnicalObjectCategory' },
          additionalBinding: [{ localElement: 'TechObjIsEquipOrFuncnlLoc',
                                element: 'TechObjIsEquipOrFuncnlLoc' }]
        }]
      // ]--GENERATED

      @ObjectModel.text.element:  [ 'TechnicalObjectCategoryDesc' ]
      @ObjectModel.foreignKey.association: '_TechnicalObjectCategory'
      @EndUserText.label: 'Technical Object Category'
      I_TechnicalObject.TechnicalObjectCategory,

      @Semantics.text: true
      @UI.hidden: true
      I_TechnicalObject._TechnicalObjectCategory._Text[1: Language = $session.system_language ].TechnicalObjectCategoryDesc,

      //      @ObjectModel.text.element: [ 'TechnicalObjectTypeDesc' ]

      //--[ GENERATED:012:GFBfhxvv7kY4ijLfGS3wvW

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_TechnicalObjectTypeStdVH',
                     element: 'TechnicalObjectType' }
        }]
      // ]--GENERATED

      @EndUserText.label: 'Object Type'
      @EndUserText.quickInfo: 'Type of Object'
      @ObjectModel.foreignKey.association: '_TechnicalObjectType'
      I_TechnicalObject.TechnicalObjectType,

      //      @Semantics.text: true

      //      @UI.hidden: true

      //      I_TechnicalObject._TechnicalObjectType._Text[1: Language = $session.system_language ].TechnicalObjectTypeDesc,


      @Semantics.amount.currencyCode: 'Currency'
      @DefaultAggregation: #NONE
      I_TechnicalObject.AcquisitionValue,
      @Semantics.currencyCode: true
      I_TechnicalObject.Currency,

      @Semantics.user.createdBy: true
      @ObjectModel.foreignKey.association: '_CreatedByUser'
      I_TechnicalObject.CreatedByUser,
      @Semantics.businessDate.createdAt: true
      I_TechnicalObject.CreationDate,
      @Semantics.user.lastChangedBy: true
      @ObjectModel.foreignKey.association: '_LastChangedByUser'
      I_TechnicalObject.LastChangedByUser,
      @Semantics.businessDate.lastChangedAt: true
      I_TechnicalObject.LastChangeDate,

      @ObjectModel.text.element:  [ 'DivisionName' ]
      I_TechnicalObject._LocationAccountAssignment.Division,
      @Semantics.text: true
      I_TechnicalObject._LocationAccountAssignment._Division._Text[1: Language = $session.system_language ].DivisionName,

      // @ObjectModel.text.element:  [ 'LocationName' ]

      @Consumption.valueHelp: '_AssetLocationVH'
      I_TechnicalObject._LocationAccountAssignment.AssetLocation,
      @Semantics.text: true
      I_TechnicalObject._LocationAccountAssignment._Location.LocationName,

      @EndUserText.label: 'Technical Object Type Description'
      I_TechnicalObject._TechObjIsEquipOrFuncnlLoc._Text[1: Language = $session.system_language ].TechObjIsEquipOrFuncnlLocDesc,

      // n3337302 uncomments virtualElement references

      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_MALFUNC_TECHOBJ_EXIT'
      @UI.hidden: true
      cast ( '' as eam_techobj_installation_loc )                                                             as TechObjInstallationLocation,
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_MALFUNC_TECHOBJ_EXIT'
      @UI.hidden: true
      0                                                                                                       as HierarchyNodeLevel,

      // Associations

      I_TechnicalObject._TechObjIsEquipOrFuncnlLoc,
      I_TechnicalObject._LocationAccountAssignment._ABCIndicator,
      I_TechnicalObject._TechnicalObjectType,
      I_TechnicalObject._TechnicalObjectCategory,
      _MainWorkCenterVH,
      _WorkCenterVH,
      _MaintenancePlannerGroup,
      _AssetLocationVH,
      _PlanningPlantVH,
      I_TechnicalObject._MaintenancePlanningPlant,
      I_TechnicalObject._LocationAccountAssignment._WorkCenter._Plant,
      I_TechnicalObject._MaintenancePlanningPlant                                                             as _MaintPlanningPlant,
      I_TechnicalObject._LocationAccountAssignment._Location,
      I_TechnicalObject._LocationAccountAssignment._PlantSection,
      I_TechnicalObject._LocationAccountAssignment._MaintenancePlant,
      I_TechnicalObject._TechnicalObjectCodeCatalog,
      I_TechnicalObject._LocationAccountAssignment._BusinessArea,
      I_TechnicalObject._LocationAccountAssignment._CompanyCode,

      _CreatedByUser,
      _LastChangedByUser
}