C_WrkPmtTechnicalObjectVH

DDL: C_WRKPMTTECHNICALOBJECTVH SQL: CWRKPMTTECHOBJVH Type: view CONSUMPTION

Work Permit Technical Object

C_WrkPmtTechnicalObjectVH is a Consumption CDS View that provides data about "Work Permit Technical Object" in SAP S/4HANA. It reads from 1 data source (I_TechnicalObject) and exposes 27 fields with key fields TechObjIsEquipOrFuncnlLoc, TechnicalObject. It has 1 association to related views. It is exposed through 4 OData services (UI_SAFETYCERTIFICATE, UI_SAFETYCERTIFICATETEMPLATE, UI_WORKPERMIT, ...). It is used in 4 Fiori applications: Create Work Permit Request, Manage Work Permit Templates, Manage Work Permits, ....

Data Sources (1)

SourceAliasJoin Type
I_TechnicalObject _TechnicalObject from

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_TechObjIsEquipOrFuncnlLoc _TechObjIsEquipOrFuncnlLoc _TechObjIsEquipOrFuncnlLoc.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName CWRKPMTTECHOBJVH view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #MANDATORY view
VDM.viewType #CONSUMPTION view
Search.searchable true view
ObjectModel.representativeKey TechnicalObject view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.dataCategory #VALUE_HELP view
ClientHandling.algorithm #SESSION_VARIABLE view
Consumption.ranked true view
EndUserText.label Work Permit Technical Object view

OData Services (4)

ServiceBindingVersionContractRelease
UI_SAFETYCERTIFICATE UI_SAFETYCERTIFICATE V2 C1 NOT_RELEASED
UI_SAFETYCERTIFICATETEMPLATE UI_SFTYCERTIFICATETEMPLATE V2 C1 NOT_RELEASED
UI_WORKPERMIT UI_WORKPERMIT V2 C1 NOT_RELEASED
UI_WORKPERMITTEMPLATE UI_WORKPERMITTEMPLATE V2 C1 NOT_RELEASED

Fiori Apps (4)

App IDApp NameTypeDescription
F4691 Create Work Permit Request Transactional Work Permit is initiated during the planning of a maintenance activity and typically created from a predesigned template, together with the work order associated with the maintenance task. You can use this app to create new Work Permit.
F4692 Manage Work Permit Templates Transactional Work permit template provides a predesigned structure that can be used to create work permits of consistent format. This can help you streamline the process when Permits for similar work are required to be created periodically. You can use this app to maintain the re-use library of templates to use them for creating actual work permits.
F6579 Manage Work Permits Transactional Work Permit is initiated during the planning of a maintenance activity and typically created from a predesigned template, together with the work order associated with the maintenance task. You can use this to search and maintain Work Permits.
F6678 Manage Safety Certificates Transactional Safety Certificate defines the safety precautions specific to a process / team for example Ionization Radiation, Vehicle Entry, Diving etc and documents approvals required and performed for the specific environment.

Create Work Permit Request

Business Role: Maintenance Planner

The Create Work Permit Request app allows to create new work permit with reference to an existing maintenance order, a predesigned work permit template, or independently. It provides the abilities to perform the following operations:Allows to create and process new work permit using the optimized work permit management solutionProvides the ability to assign multiple functional locations, equipment, maintenance orders, partners, and attachments to enhance work permit with details related to the work activityAllows the configuration of the nature of work, personal protective equipment, and safety precautions to enhance work permit with safety protocols.Offers easy data validation and a simplified approval process that adheres to a four-eyes principleSupports the printing of work permit in the output form maintained by the userProvides the ability to extend the validity even after the creation of work permitSupports all operations relevant to work permit management such as approval, print, issue, return, close, deactivate, cancel, and mark for deletion.Provides the ability to view the records of data transfers using application logs

Manage Work Permit Templates

Business Role: Industrial Hygienist

The Manage Work Permit Templates app allows to create work permit templates as predesigned models for creating work permits. The templates can be used as they are, or easily modified while work permits are created. Usage of work permit templates can help to streamline the work permit creation process when identical work permits are generated often. The app can perform the following operations:Allows to create, process, and manage work permit templatesProvides the ability to assign multiple functional locations, equipment, partners, and attachmentsAllows the configuration of the nature of work, personal protective equipment, and safety precautionsOffers easy data validation and a simplified approval process that adheres to a four-eyes principleProvides the ability to view the records of data transfers using application logs

Manage Work Permits

Business Role: Maintenance Planner

The Manage Work Permits app allows you to create, manage, and monitor work permits and gain valuable insights about the progress of your maintenance operations. Using the app, new work permits can be created with reference to an existing maintenance order, a predesigned work permit template, or independently. It provides the following capabilities:Allows to create and process new work permit using the optimized work permit management solutionProvides the ability to assign multiple functional locations, equipment, maintenance orders, partners, and attachments to enhance work permit with details related to the work activityAllows the configuration of the nature of work, personal protective equipment, and safety precautions to enhance work permit with safety protocols.Offers easy data validation and a simplified approval process that adheres to a four-eyes principleSupports the printing of work permit in the output form maintained by the userProvides the ability to extend the validity even after the creation of work permitSupports all operations relevant to work permit management such as approval, print, issue, return, close, deactivate, cancel, and mark for deletion.Provides the ability to view the records of data transfers using application logs

Manage Safety Certificates

Business Role: Maintenance Planner

With this app, you can create new safety certificates or manage the existing certificates that are active, non-active, or closed in the system. New safety certificates can be created with reference to an existing work permit, a pre-designed safety certificate template, or independently. Once the safety certificate has been created, you can enhance the record with additional details.

Key Features: Enables maintenance planners to create and manage safety certificates Supports the creation of certificates with reference to a work permit and/or a safety certificate template and independently Allows the configuration of the safety precautions as an integral component of the safety certificate solution Provides the ability to assign work permits, partners, and multiple functional locations or equipment to the safety certificate Offers easy data validation and a simplified approval process that adheres to a four-eyes principle In addition, the app supports the following technical features and options: Attachment Service Application Logs

Fields (27)

KeyFieldSource TableSource FieldDescription
KEY TechObjIsEquipOrFuncnlLoc I_TechnicalObject TechObjIsEquipOrFuncnlLoc
KEY TechnicalObject I_TechnicalObject TechnicalObject
FunctionalLocationLabelName
TechObjIsEquipOrFuncnlLocDesc Technical Object Type Description
TechnicalObjectDescription Technical Object Description
WorkCenter
WorkCenterText
MainWorkCenterInternalID I_TechnicalObject WorkCenterInternalID
MainWorkCenterPlant
Equipment I_TechnicalObject Equipment
FunctionalLocation
AssetRoom
AssetLocation
LocationName
MaintenancePlanningPlant MaintenancePlanningPlant
MaintenancePlannerGroup MaintenancePlannerGroup
PlantSection
PlantName
TechObjStatusIsInactive TechObjStatusIsInactive
CostCenter _LocationAccountAssignment CostCenter
ControllingArea _LocationAccountAssignment ControllingArea
MaintenancePlant _LocationAccountAssignment MaintenancePlant
AuthorizationGroup AuthorizationGroup
MaintObjectLocAcctAssgmtNmbr I_TechnicalObject MaintObjectLocAcctAssgmtNmbr
_TechObjIsEquipOrFuncnlLoc _TechObjIsEquipOrFuncnlLoc
_LocationAccountAssignment _LocationAccountAssignment
MaintObjectInternalID I_TechnicalObject MaintObjectInternalID
@AbapCatalog.sqlViewName: 'CWRKPMTTECHOBJVH'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #MANDATORY
@VDM.viewType: #CONSUMPTION
@Search.searchable: true
@ObjectModel.representativeKey: 'TechnicalObject'
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass:  #MIXED
@ObjectModel.dataCategory: #VALUE_HELP
@ClientHandling.algorithm: #SESSION_VARIABLE
@Consumption.ranked: true
@EndUserText.label: 'Work Permit Technical Object'

define view C_WrkPmtTechnicalObjectVH
  as select from I_TechnicalObject as _TechnicalObject
  association [0..1] to I_TechObjIsEquipOrFuncnlLoc as _TechObjIsEquipOrFuncnlLoc on  _TechObjIsEquipOrFuncnlLoc.TechObjIsEquipOrFuncnlLoc = $projection.TechObjIsEquipOrFuncnlLoc
 {
      @ObjectModel.foreignKey.association: '_TechObjIsEquipOrFuncnlLoc'
      @ObjectModel.text.element: ['TechObjIsEquipOrFuncnlLocDesc']
      @UI.hidden
  key _TechnicalObject.TechObjIsEquipOrFuncnlLoc,
      @EndUserText.label: 'Technical Object'
      @ObjectModel.text.element:  [ 'TechnicalObjectDescription' ]
  key case when TechObjIsEquipOrFuncnlLoc = 'EAMS_FL'   then cast ( TechnicalObjectLabel as eams_tec_obj   preserving type ) // code added to remove leading zeros

          when TechObjIsEquipOrFuncnlLoc = 'EAMS_EQUI' then ltrim( TechnicalObjectLabel,'0' )
       end                                                                                                          as TechnicalObjectLabel,
      @UI.hidden: true
      @Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
  key _TechnicalObject.TechnicalObject,
      @Search: {defaultSearchElement: true, ranking: #MEDIUM, fuzzinessThreshold: 0.8}
      @UI.hidden: true
      _TechnicalObject._FunctionalLocationLabel._FuncLocationLabelSearch.FunctionalLocationLabelName,
      @Consumption.valueHelpDefinition: [{
        entity: {
          name: 'I_TechObjIsEquipOrFuncnlLoc',
          -- Note: is corrected via filter transformation
          --       reason: EAMS_EQUI / EAMS_FL should not be shown on UI, but performance is bad when searching with text.
          element: 'TechObjIsEquipOrFuncnlLoc'
        }
      }]
      @ObjectModel.filter.transformedBy: 'CL_EAM_TECHOBJTYPE_FILTER_EXIT'
      @EndUserText.label: 'Technical Object Type Description'
      _TechObjIsEquipOrFuncnlLoc._Text[1:Language=$session.system_language].TechObjIsEquipOrFuncnlLocDesc,
      @EndUserText.label: 'Technical Object Description'
      @Search: {defaultSearchElement: true, ranking: #LOW, fuzzinessThreshold: 0.7 }
      _TechnicalObject._TechnicalObjectText[1:Language=$session.system_language].TechnicalObjectDescription,
      @Semantics.text: true
      @ObjectModel.text.element: ['WorkCenterText']
      @Search.defaultSearchElement: true
      @Search.ranking: #MEDIUM
      @Search.fuzzinessThreshold: 0.7
      _TechnicalObject._WorkCenter.WorkCenter,
        @UI.hidden: true
      _WorkCenter._Text[ 1: Language = $session.system_language ].WorkCenterText,
      _TechnicalObject.WorkCenterInternalID                                                                         as MainWorkCenterInternalID,
      @UI.hidden: true
//      @ObjectModel.foreignKey.association: '_Plant'

      _TechnicalObject._LocationAccountAssignment._WorkCenter.Plant                                                 as MainWorkCenterPlant,
      @UI.hidden: true
      _TechnicalObject.Equipment,
      @UI.hidden: true
      cast ( FunctionalLocation as eams_ui_oid_name preserving type )                                               as FunctionalLocation,
      @UI.hidden: true
      _TechnicalObject._LocationAccountAssignment.AssetRoom,
      @Consumption.valueHelp: '_AssetLocationVH'
      @ObjectModel.text.element: ['LocationName']
      @UI.hidden: true
      _TechnicalObject._LocationAccountAssignment.AssetLocation,
      @UI.hidden: true
      _TechnicalObject._LocationAccountAssignment._Location.LocationName,
      @Consumption.filter.hidden: true
      MaintenancePlanningPlant,
      @Consumption.hidden: true
      MaintenancePlannerGroup,
      @Consumption.valueHelpDefinition: [
       { entity:  { name:    'I_PlantSectionStdVH',
                    element: 'PlantSection' },
         additionalBinding: [{ localElement: 'MaintenancePlanningPlant',
                               element: 'Plant', usage: #FILTER_AND_RESULT }]
       }]
      @UI.hidden: true
      _TechnicalObject._LocationAccountAssignment.PlantSection,
      @UI.hidden: true
      _TechnicalObject._LocationAccountAssignment._PlantSection._Plant.PlantName,
      @UI.hidden: true
      concat_with_space( _TechnicalObject._LocationAccountAssignment._PlantSection.PlantSectionPersonRespName,
                         _TechnicalObject._LocationAccountAssignment._PlantSection.PlantSectionPersonRespPhone, 1 ) as PlantSectionDesc,
      @Consumption.hidden: true
      @UI.hidden: true
      TechObjStatusIsInactive,
      @Consumption.hidden: true
      _LocationAccountAssignment.CostCenter,
      @Consumption.hidden: true
      _LocationAccountAssignment.ControllingArea,
//      @Consumption.hidden: true

      _LocationAccountAssignment.MaintenancePlant,
      @Consumption.hidden: true
      AuthorizationGroup,
      @Consumption.hidden: true
      _TechnicalObject.MaintObjectLocAcctAssgmtNmbr,
      @Consumption.filter.hidden
      _TechObjIsEquipOrFuncnlLoc,
      @Consumption.hidden: true
      _LocationAccountAssignment,
//      @Consumption.hidden: true

//      _LocationAccountAssignment._PlantSection,

      _TechnicalObject.MaintObjectInternalID
}
where
      IsDeleted               <> 'X'
  and TechObjStatusIsInactive <> 'X'