I_WorkPermitStatus

DDL: I_WORKPERMITSTATUS SQL: IWRKPMTSTATUS Type: view BASIC Package: VDM_EAM_WCM_PERMIT_TO_WORK

Work Permit Status

I_WorkPermitStatus is a Basic CDS View that provides data about "Work Permit Status" in SAP S/4HANA. It reads from 2 data sources (I_WorkPermitBasic, jest) and exposes 10 fields with key fields WorkPermit, WorkPermitInternalID, StatusCode. It has 2 associations to related views. It is exposed through 2 OData services (UI_WORKPERMIT, UI_WORKPERMITTEMPLATE). It is used in 2 Fiori applications: Manage Work Permit Templates, Manage Work Permits. Part of development package VDM_EAM_WCM_PERMIT_TO_WORK.

Data Sources (2)

SourceAliasJoin Type
I_WorkPermitBasic I_WorkPermitBasic inner
jest jest from

Associations (2)

CardinalityTargetAliasCondition
[0..1] I_StatusObjectStatusChange _StatusChange $projection.WorkPermitInternalID = _StatusChange.StatusObject and $projection.StatusCode = _StatusChange.StatusCode and $projection.StatusObjectStatusChangeNumber = _StatusChange.StatusObjectStatusChangeNumber
[0..1] I_SystemStatus _SystemStatus $projection.StatusCode = _SystemStatus.SystemStatus

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName IWRKPMTSTATUS view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
ClientHandling.algorithm #SESSION_VARIABLE view
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label Work Permit Status view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.viewType #BASIC view
UI.headerInfo.typeName SystemStatus view
UI.headerInfo.typeNamePlural System Status view
UI.headerInfo.title.type #STANDARD view
UI.headerInfo.title.label System Status view

OData Services (2)

ServiceBindingVersionContractRelease
UI_WORKPERMIT UI_WORKPERMIT V2 C1 NOT_RELEASED
UI_WORKPERMITTEMPLATE UI_WORKPERMITTEMPLATE V2 C1 NOT_RELEASED

Fiori Apps (2)

App IDApp NameTypeDescription
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.

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

Fields (10)

KeyFieldSource TableSource FieldDescription
KEY WorkPermit I_WorkPermitBasic WorkPermit
KEY WorkPermitInternalID jest objnr
KEY StatusCode jest stat
StatusObjectStatusChangeNumber jest chgnr
LastChangeDate _StatusChange LastChangeDate
LastChangeTime _StatusChange LastChangeTime
StatusIsInactive jest inact
StatusShortName
SystemStatusName
_SystemStatus _SystemStatus
@AbapCatalog.sqlViewName: 'IWRKPMTSTATUS'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Work Permit Status'
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #M, dataClass: #TRANSACTIONAL}
@VDM.viewType: #BASIC
@UI: {
    headerInfo: { typeName: 'SystemStatus',
                typeNamePlural: 'System Status' ,
                title: { type: #STANDARD, label: 'System Status'
                }
                },
presentationVariant: [
                         {
                         sortOrder: [{by:  'LastChangeDateTime'}, [ {direction: #ASC }] ],
                         visualizations: [{ type: #AS_LINEITEM}],
                         requestAtLeast: [  'StatusCode'  ]  }
                         ]
                }
define view I_WorkPermitStatus
  as select from jest
    inner join   I_WorkPermitBasic on I_WorkPermitBasic.WorkPermitInternalID = jest.objnr
  association [0..1] to I_StatusObjectStatusChange as _StatusChange on  $projection.WorkPermitInternalID           = _StatusChange.StatusObject
                                                                    and $projection.StatusCode                     = _StatusChange.StatusCode
                                                                    and $projection.StatusObjectStatusChangeNumber = _StatusChange.StatusObjectStatusChangeNumber
  association [0..1] to I_SystemStatus             as _SystemStatus on  $projection.StatusCode = _SystemStatus.SystemStatus
{
           @UI.hidden: true
  key      I_WorkPermitBasic.WorkPermit,
           @UI.hidden: true
  key      jest.objnr                                                                                      as WorkPermitInternalID,
           @UI.hidden: true
           @UI.lineItem: [{ position:  5, label: 'StatusCode' }]
           @EndUserText:{ label: 'Status', quickInfo: 'Status'}
  key      jest.stat                                                                                       as StatusCode,
           @UI.hidden: true
           jest.chgnr                                                                                      as StatusObjectStatusChangeNumber,
           @UI.hidden: true
           _StatusChange.LastChangeDate,
           @UI.hidden: true
           _StatusChange.LastChangeTime,
           @Semantics.systemDateTime.createdAt: true
           cast( dats_tims_to_tstmp( _StatusChange.LastChangeDate,
                        _StatusChange.LastChangeTime,
                        abap_system_timezone( $session.client,'NULL' ),
                        $session.client,
                       'NULL' ) as timestamp )                                                             as LastChangeDateTime,
           @UI.lineItem: [{ position:  10, label: 'Inactive' }]
           @EndUserText:{ label: 'Inactive', quickInfo: 'Inactive'}
           @UI.hidden: true
           jest.inact                                                                                      as StatusIsInactive,
           @UI.lineItem: [{ position:  20, label: 'Status' }]
           @EndUserText:{ label: 'Status', quickInfo: 'Status'}
           _SystemStatus._SystemStatusText[ 1: Language = $session.system_language ].SystemStatusShortName as StatusShortName,
           @UI.lineItem: [{ position:  30, label: 'Description' }]
           @EndUserText:{ label: 'Text', quickInfo: 'Text'}
           _SystemStatus._SystemStatusText[ 1: Language = $session.system_language ].SystemStatusName,
           _SystemStatus
}
where
  jest.inact = ' '