I_TechObjWorkReqQuickVw

DDL: I_TECHOBJWORKREQQUICKVW SQL: ITECHOBJWRQVW Type: view COMPOSITE

Technical Object quick view

I_TechObjWorkReqQuickVw is a Composite CDS View that provides data about "Technical Object quick view" in SAP S/4HANA. It reads from 1 data source (I_TechnicalObject) and exposes 22 fields with key field TechnicalObject. It has 4 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_TechnicalObject I_TechnicalObject from

Associations (4)

CardinalityTargetAliasCondition
[0..*] I_TechObjIsEquipOrFuncnlLocT _TechObjIsEquipOrFuncnlLocT _TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
[0..*] I_TechnicalObjectCategoryT _TechnicalObjectCategoryT _TechnicalObjectCategoryT.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc and _TechnicalObjectCategoryT.TechnicalObjectCategory = $projection.TechnicalObjectCategory
[0..*] I_TechnicalObjectTypeText _TechnicalObjectTypeText _TechnicalObjectTypeText.TechnicalObjectType = $projection.TechnicalObjectType
[0..1] I_FunctionalLocation _SuperiorFunctionalLocation _SuperiorFunctionalLocation.FunctionalLocation = $projection.SuperiorFunctionalLocation

Annotations (17)

NameValueLevelField
AbapCatalog.sqlViewName ITECHOBJWRQVW view
VDM.viewType #COMPOSITE view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Technical Object quick view view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.representativeKey TechnicalObject view
UI.headerInfo.typeName Technical Object view
UI.headerInfo.typeNamePlural Technical Objects view
UI.headerInfo.typeImageUrl sap-icon: imageUrl: view
UI.headerInfo.title.value TechnicalObjectDescription view
UI.headerInfo.description.value TechnicalObjectLabel view
Consumption.dbHintsCalculatedBy ABAP:CL_EAM_QUICKVIEW_DBHINT view

Fields (22)

KeyFieldSource TableSource FieldDescription
KEY TechnicalObject TechnicalObject Technical Object
MaintObjectInternalID MaintObjectInternalID
SuperiorFunctionalLocation
FunctionalLocationLabelName Functional Location
FunctionalLocationName
FuncnlLocPrimaryLabelName
TechnicalObjectCategory TechnicalObjectCategory Category
TechnicalObjectType TechnicalObjectType Object Type
MaintenancePlant _LocationAccountAssignment MaintenancePlant Maintenance Plant
PlantName Maintenance Plant Name
PlantSection _LocationAccountAssignment PlantSection Plant Section
AssetLocation _LocationAccountAssignment AssetLocation Location
LocationName Location Name
AssetRoom _LocationAccountAssignment AssetRoom Room
TechObjectWithLeadingZeros
MaintObjectLocAcctAssgmtNmbr MaintObjectLocAcctAssgmtNmbr
AuthorizationGroup AuthorizationGroup
MaintenancePlanningPlant MaintenancePlanningPlant
MaintenancePlannerGroup MaintenancePlannerGroup
_TechnicalObjectCategoryT _TechnicalObjectCategoryT
_TechnicalObjectTypeText _TechnicalObjectTypeText
_LocationAccountAssignment _LocationAccountAssignment
@AbapCatalog.sqlViewName: 'ITECHOBJWRQVW'
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Technical Object quick view'

@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@ClientHandling.algorithm: #SESSION_VARIABLE

@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL

@ObjectModel.representativeKey: 'TechnicalObject'
@UI.headerInfo : {
  typeName: 'Technical Object',
  typeNamePlural: 'Technical Objects',
  typeImageUrl: 'sap-icon://technical-object',

  imageUrl: 'TechnicalObjectThumbnailURL',
  title.value: 'TechnicalObjectDescription',
  description.value: 'TechnicalObjectLabel'
}

@AccessControl.privilegedAssociations: ['_TechObjIsEquipOrFuncnlLocT', '_TechnicalObjectCategoryT', '_TechnicalObjectTypeText']

@Consumption.dbHintsCalculatedBy: 'ABAP:CL_EAM_QUICKVIEW_DBHINT'

/*+[hideWarning] { "IDS" : [ "DOUBLE_JOIN" ]  } */
define view I_TechObjWorkReqQuickVw
  as select from I_TechnicalObject
  association [0..*] to I_TechObjIsEquipOrFuncnlLocT as _TechObjIsEquipOrFuncnlLocT on  _TechObjIsEquipOrFuncnlLocT.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
  association [0..*] to I_TechnicalObjectCategoryT   as _TechnicalObjectCategoryT   on  _TechnicalObjectCategoryT.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
                                                                                    and _TechnicalObjectCategoryT.TechnicalObjectCategory   = $projection.TechnicalObjectCategory
  association [0..*] to I_TechnicalObjectTypeText    as _TechnicalObjectTypeText    on  _TechnicalObjectTypeText.TechnicalObjectType = $projection.TechnicalObjectType
  association [0..1] to I_FunctionalLocation         as _SuperiorFunctionalLocation on  _SuperiorFunctionalLocation.FunctionalLocation = $projection.SuperiorFunctionalLocation
{
          @UI.facet: [{
               purpose: #QUICK_VIEW,
               type: #FIELDGROUP_REFERENCE,
               targetQualifier: 'TechObjQuickView'
          }]
          @EndUserText.label: 'Technical Object'
  key     TechnicalObject,

          @ObjectModel.text.association: '_TechObjIsEquipOrFuncnlLocT'
          @EndUserText.label: 'Technical Object Type'
          @Environment.sql.passValue: true
          @UI: { fieldGroup: [{ qualifier:'TechObjQuickView', position: 10}] }
          //  key    TechObjIsEquipOrFuncnlLoc,


  key     cast( case when Equipment is not initial then 'EAMS_EQUI'
                     when FunctionalLocation is not initial then 'EAMS_FL' end  as eams_tec_obj_type_value )                                                               as TechObjIsEquipOrFuncnlLoc,

  key     cast ( case when I_TechnicalObject.TechObjIsEquipOrFuncnlLoc = 'EAMS_FL'
                      then cast( I_TechnicalObject._FunctionalLocationLabel.FunctionalLocationLabelName as eams_tec_obj )
                      else I_TechnicalObject.TechnicalObject end as eams_tec_obj preserving type )                                                                         as TechnicalObjectLabel,


          cast( case TechObjIsEquipOrFuncnlLoc
                when 'EAMS_EQUI' then _Equipment._EquipmentText[1: Language = $session.system_language ].EquipmentName
                else _FunctionalLocation._FunctionalLocationText[1: Language = $session.system_language ].FunctionalLocationName end as eams_tec_obj_des preserving type ) as TechnicalObjectDescription,

          MaintObjectInternalID,

          cast( SuperiorFunctionalLocation as eams_ui_oid_name preserving type)                                                                                            as SuperiorFunctionalLocation,

          @EndUserText.label: 'Functional Location'
          //         @UI.fieldGroup: [{ qualifier: 'TechObjQuickView', position: 120 }]

          //         @UI.textArrangement: #TEXT_FIRST

          @ObjectModel.text.element: ['FunctionalLocationName']
          @UI.hidden: true
          _LocationAccountAssignment._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName,

          @UI.hidden: true
          @Semantics.text: true
          _LocationAccountAssignment._FunctionalLocation._FunctionalLocationText[1:Language = $session.system_language].FunctionalLocationName,

          @UI.hidden: true
          _SuperiorFunctionalLocation._FunctionalLocationLabel.FuncnlLocPrimaryLabelName,

          @UI: { fieldGroup: [{ qualifier:'TechObjQuickView', position: 30}] }
          @ObjectModel.text.association: '_TechnicalObjectCategoryT'
          @EndUserText.label: 'Category'
          @UI.textArrangement: #TEXT_FIRST
          TechnicalObjectCategory,

          @Semantics.imageUrl: true
          @EndUserText.label: 'Image'
          @Consumption.filter.hidden: true
          case
              when TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI' then 'sap-icon://technical-object'

              when TechObjIsEquipOrFuncnlLoc = 'EAMS_FL'   then 'sap-icon://functional-location'

              else ''  end                                                                                                                                                 as TechnicalObjectThumbnailURL,

          @UI: { fieldGroup: [{ qualifier:'TechObjQuickView', position: 50}] }
          @ObjectModel.text.association: '_TechnicalObjectTypeText'
          @EndUserText.label: 'Object Type'
          @UI.textArrangement: #TEXT_FIRST
          TechnicalObjectType,

          @EndUserText.label: 'Manufacturer'
          cast( case TechObjIsEquipOrFuncnlLoc
             when 'EAMS_EQUI' then AssetManufacturerName
             else  'N/A'
          end as herst preserving type)                                                                                                                                    as AssetManufacturerName,

          @UI: { fieldGroup:  [{ qualifier:'TechObjQuickView', position: 70}] }
          @EndUserText.label: 'Maintenance Plant'
          @ObjectModel.text.element:  [ 'PlantName' ]
          @UI.textArrangement: #TEXT_FIRST
          _LocationAccountAssignment.MaintenancePlant                                                                                                                      as MaintenancePlant,

          @EndUserText.label: 'Maintenance Plant Name'
          _LocationAccountAssignment._MaintenancePlant.PlantName                                                                                                           as PlantName,

          @EndUserText.label: 'Plant Section'
          _LocationAccountAssignment.PlantSection,

          @EndUserText.label: 'Location'
          @ObjectModel.text.element:  [ 'LocationName' ]
          @UI.textArrangement: #TEXT_FIRST
          _LocationAccountAssignment.AssetLocation,
          @EndUserText.label: 'Location Name'
          _LocationAccountAssignment._Location.LocationName,

          @EndUserText.label: 'Room'
          _LocationAccountAssignment.AssetRoom,

          @EndUserText.label: 'Model Number'
          cast( case TechObjIsEquipOrFuncnlLoc
                when 'EAMS_EQUI' then ManufacturerPartTypeName
                else  'N/A' end as typbz preserving type)                                                                                                                  as ManufacturerPartTypeName,

          case TechObjIsEquipOrFuncnlLoc
              when 'EAMS_EQUI'
              then coalesce( _FunctionalLocation._FuncLocationStructure.FuncLocStrucIdentifyingLevel,
                   coalesce(_SuperiorFunctionalLocation._FuncLocationStructure.FuncLocStrucIdentifyingLevel,'00'))
              else FuncLocStrucIdentifyingLevel end                                                                                                                        as FuncLocStrucIdentifyingLevel,

          case TechObjIsEquipOrFuncnlLoc
             when 'EAMS_EQUI'
             then coalesce( _FunctionalLocation._FuncLocationStructure.FuncLocStruc2ndIdentifyingLvl,
                  coalesce(_SuperiorFunctionalLocation._FuncLocationStructure.FuncLocStruc2ndIdentifyingLvl,'00'))
             else FuncLocStruc2ndIdentifyingLvl end                                                                                                                        as FuncLocStruc2ndIdentifyingLvl,

          @UI.hidden: true
          @EndUserText.label: 'Identifying Level'
          cast( coalesce( _FunctionalLocation._FuncLocationStructure._FuncLocationStructureText[1:Language = $session.system_language].IdentifyingLabel,
                coalesce( _SuperiorFunctionalLocation._FuncLocationStructure._FuncLocationStructureText[1:Language = $session.system_language].IdentifyingLabel,
                'N/A' )) as ilom_level_kz_desc )                                                                                                                           as IdentifyingLabel,

          @UI.hidden: true
          @EndUserText.label: 'Second Identifying Level'
          cast( coalesce( _FunctionalLocation._FuncLocationStructure._FuncLocationStructureText[1:Language = $session.system_language].SecondIdentifyingLabel,
                coalesce( _SuperiorFunctionalLocation._FuncLocationStructure._FuncLocationStructureText[1:Language = $session.system_language].SecondIdentifyingLabel,
                'N/A' ) ) as ilom_level_kz2_desc )                                                                                                                         as SecondIdentifyingLabel,


          @UI.hidden: true
          cast(TechnicalObject as char40)                                                                                                                                  as TechObjectWithLeadingZeros,

          @Consumption.hidden
          MaintObjectLocAcctAssgmtNmbr,

          @Consumption.hidden
          AuthorizationGroup,

          MaintenancePlanningPlant,

          MaintenancePlannerGroup,

          @UI: { fieldGroup: [{ qualifier:'TechObjQuickView', position: 130}] }
          @EndUserText.label: 'Superior Functional Location'
          @ObjectModel.text.element:  [ 'SuperiorFunctionalLocationName' ]
          @UI.textArrangement: #TEXT_FIRST
          case
          //    when TechObjIsEquipOrFuncnlLoc = 'EAMS_FL' and SuperiorTechnicalObject is initial

          //    then TechnicalObjectLabel

            when TechObjIsEquipOrFuncnlLoc = 'EAMS_FL' and SuperiorTechnicalObject is not initial
            then _SuperiorFunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName
            when SuperiorFunctionalLocation is not initial
            then _LocationAccountAssignment._FunctionalLocation._FunctionalLocationLabel.FunctionalLocationLabelName  end                                                  as SuperiorFuncnlLocLabelName,


          @UI.hidden: true
          @Semantics.text: true
          case
          //   when TechObjIsEquipOrFuncnlLoc = 'EAMS_FL' and SuperiorTechnicalObject is initial

          //   then _LocationAccountAssignment._FunctionalLocation._FunctionalLocationText[1:Language = $session.system_language].FunctionalLocationName

            when TechObjIsEquipOrFuncnlLoc = 'EAMS_FL' and SuperiorTechnicalObject is not initial
            then SuperiorTechnicalObjectName
            when SuperiorFunctionalLocation is not initial
            then _LocationAccountAssignment._FunctionalLocation._FunctionalLocationText[1:Language = $session.system_language].FunctionalLocationName end                  as SuperiorFunctionalLocationName,



          -- Exposed Associations

          _TechObjIsEquipOrFuncnlLocT,

          _TechnicalObjectCategoryT,

          _TechnicalObjectTypeText,

          _LocationAccountAssignment
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_EQUIPMENT",
"I_EQUIPMENTTEXT",
"I_FUNCLOCATIONSTRUCTURE",
"I_FUNCLOCATIONSTRUCTURETEXT",
"I_FUNCTIONALLOCATION",
"I_FUNCTIONALLOCATIONLABEL",
"I_FUNCTIONALLOCATIONTEXT",
"I_LOCATION",
"I_LOCATIONACCOUNTASSIGNMENT",
"I_PLANT",
"I_TECHNICALOBJECT"
],
"ASSOCIATED":
[
"I_FUNCTIONALLOCATION",
"I_LOCATIONACCOUNTASSIGNMENT",
"I_TECHNICALOBJECTCATEGORYT",
"I_TECHNICALOBJECTTYPETEXT",
"I_TECHOBJISEQUIPORFUNCNLLOCT"
],
"BASE":
[
"I_TECHNICALOBJECT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/