Status

  Approved

OwnerYILMAZTURK-ext, Gokhan 
StakeholdersLEIGHTON-ext, Dean 
Jira Request ID

ERP-98 - Getting issue details... STATUS

Jira Development ID

ERP-349 - Getting issue details... STATUS

High- Level Specification

ParameterValue
Application SystemSAP S/4HANA ROW, SAP S/4HANA China, SAP S/4HANA CUI
Business Process Reference07.05.01.01. Manage Asset, Faults and Incidents

Functional Overview

For requesting maintenance on regular activities, the app “Create Maintenance Request”  (App ID : F1511A) will be used. However, when requesting Project Work, we will need to use a different WDA application called “Create Maintenance Notification” (App ID : W0006). In this application, the targeted users will add WBS Element to the notification when they are requesting a Project Work from Maintenance. Once the WBS Element is entered, we will need to validate if this WBSE is a valid one. (e.g. Accounting Indicator must be set etc.)


Scope and Objectives

This development has 3 main objectives as follows;

  1. Launchpad Design & App Tile Configuration: In A2D, the app “Create Maintenance Request”  (App ID : F1511A) will be used for raising maintenance requests on regular activities. However, we will need a separate Fiori application to raise "Project Work". For this purpose, the WDA application called “Create Maintenance Notification” (App ID : W0006) will be used with certain launchpad configuration which is mentioned in detail at the Configuration Details section. This app will be targeted only for certain user groups (e.g. Project Managers), which is also explained in the Security, Integrity and Controls section.
  2. Performing checks and validations: In standard app “Create Maintenance Request”  (App ID : F1511A), WBS Element field (which is also a standard field) is not present. It is also not supplied with OData Services/CDS Views the app is using as well. On the other hand, the field is already available in the app “Create Maintenance Notification” (App ID : W0006) which is intended to be used here. So, once this WBS element field is entered, a validation has to be done to check if the WBS Element is a valid one. A valid WBS Element has Accounting indicator as true ("X") and the Status for WBS Element needs to be "Released". Also, when the maintenance event is created and assigned, there should be another validation to see, there is no other open notification exists with Notification Type: 'Y3' and same maintenance event assigned.
  3. Updating the notification: Once the WBS Element field is entered, Project Number should also be updated in the notification during save.


Process Flow Diagram

Step

Description

Comment

1User launches app “Create Maintenance Notification” (App ID : W0006) using a following parameter: "QMART=Y3". The initial screen where the notification type needs to be selected, will be skipped by providing this parameter in the target url.
2User enters Notification Detailse.g. Notification Description, Technical Object, Maintenance Plant, Company Code, etc.
3User enters WBS Element in Organizational Data Tab under Account Assignment section

While entering the WBS Element, users should be able to use the custom search helps developed via Jira Request:  ERP-610 - Getting issue details... STATUS

4Enhancement triggers checks for WBS Element to see if it's validif not it will populate error messages

5

User enters Maintenance Event in General Tab 
6Enhancement triggers checks for duplication with Notification Type (Y3) and Maintenance Event combinationif there is any duplication, it will populate error messages
7User saves the notification

If WBS Element is fulfilled in the notification, it is also supplied to PSP_NR field in VIQMEL table.


Assumptions

The “Create Maintenance Notification” (App ID : W0006) will only be used for creating Y3 Notifications via a targeted group of users. For regular maintenance activities, “Create Maintenance Request”  (App ID : F1511A) app will be used instead.

Dependencies

WBS Element needs to be created prior to create a Y3 Notification as a prerequisite.

Security, Integrity and Controls

Since the app intended to be used, “Create Maintenance Notification” (App ID : W0006), is a standard one. The authorization checks it has is sufficient. Nevertheless, this app is intended for a targeted user group, therefore, following Launchpad design changes needs to be applied from Security, Integrity and Controls perspective;

  • The app can be copied from Technical Catalog: SAP_TC_EAM_BE_APPS or from the business catalog: SAP_EAM_BC_NTF_MW to a new Business Catalog: ZSAP_EAM_BC_NTF_MW_PS, Description: EAM - Notification for Projects. The new business catalog and fiori app tile than can be added to the dedicated role created for this process.

The details of Fiori Tile configuration will be mentioned in the Configuration Requirements section below.

Configuration Requirements

Below you can find the details for the App Tile Configuration;

ConfigurationValue
TitleCreate Maintenance Notification
Subtitlefor Projects
KeywordsEAMS_WDA_ORDNTF_OIF
Iconsap-icon://request
Use semantic object navigationTrue
Semantic ObjectMaintenanceNotification
Actioncreate
Parameters

sap-ui-tech-hint=WDA&QMART=Y3


Language Requirements

Since this is a standard Fiori app, there is no language requirement for the UI. However, the error messages that will be used, needs to be translated accordingly.

Special Requirements


Design Rationale

Functional Requirements

During notification creation, a valid WBS Element needs to be entered. For this process, a valid WBS Element requires Accounting Element field (PRPS-BELKZ) to be set as true ('X') and the Status for WBS Element needs to be "Released". In addition to System Status, following user statuses will require another check as well -> In case of User Statuses ONHOLD and CNCL, it should also throw an error. This is because only than the maintenance costs later in the maintenance order can be settled to this WBS Element.

When the notification is created using this WDA app, the WBS Element in Organization Tab will be entered. Once saved, this entry only populates VIQMEL-PROID field with corresponding data. However, it's also required to fill the following field: VIQMEL-PSP_NR with same value. This is not possible in the standard behavior. For that, Save BADI mentioned below can be used.

Proposed Technology to Use

  1. Check if the WBS Element field is valid & validate if the notification does not have duplicates: For that purpose, SAP BADI: EAM_NOTIFICATION_FIELD_CONTROL can be used.
    1. Once the field "WBS Element" is populated with a value, it needs to go to PRPS table and see if Accounting Indicator (BELKZ) is set. If not, it needs to throw an error with following message; "This WBS Element is not set as Accounting Element, please use a valid WBS Element".
    2. The Status of the WBS Element needs to be read using FM → STATUS_READ . In order to call this FM, OBJNR can be taken from PRPS. Once the FM called, check if it returns I0002 (Released). If not, throw an error with following message; "This WBS Element is not Released, please use a valid WBS Element".
    3. When both "WBS Element" and "Maintenance Event" field is populated, this enhancement needs to check if there is any other open maintenance notification exists with following criteria;
      1. Maintenance Notification is not closed: VIQMEL-PHASE < 4
      2. Maintenance Notification Type is "Y3": VIQMEL-QMART = "Y3"
      3. Maintenance Notification has the same "WBS Element" (VIQMEL-PROID) & "Maintenance Event/Revision" (VIQMEL-REVNR) with the current one 
      4. In this case, it should throw following error: "There is already a maintenance notification with &1 and &2 is assigned. Please check notification &3" (&1=Maintenance Event/Revision, &2=WBS Element, &3=Maintenance Notification) 
  2. Pass WBS Element from PROID to PSP_NR field in VIQMEL: For this purpose, SAP BADI: NOTIF_EVENT_SAVE can be used to pass WBS Element data accordingly. In this BADI, filter type: QMART is used. Here the filter value will be "Y3". In the CHANGE_DATA_AT_SAVE method, if the PROID field is not empty, it needs to be also copied to PSP_NR field in the structure; CS_VIQMEL.

Here is an example code;

  METHOD if_ex_notif_event_save~change_data_at_save.
    IF cs_viqmel-proid IS NOT INITIAL AND cs_viqmel-psp_nr IS INITIAL.
      cs_viqmel-psp_nr = cs_viqmel-proid.
    ENDIF.
  ENDMETHOD.


Data Source Considerations

TableField NameComments/Calculation/Field Manipulation
VIQMELPROIDIf PROID is not initial pass PROID to PSP_NR during save
VIQMELPSP_NRIf PROID is not initial pass PROID to PSP_NR during save





Data Validation Considerations

TableField NameComments/Calculation/Field Manipulation
VIQMELPROIDGet PROID
PRPSPSPNRGo to PRPS with PROID = PSPNR
PRPSBELKZCheck if BELKZ is True "X", if not throw an error.
VIQMELREVNRCheck if there is a record in VIQMEL with same PROID and same REVNR, if there is, throw an error.
JESTSTAT

Check if the WBS is Released (I0002 is active for the Object)

TJ30ESTAT

Get User Status Numbers relevant for checks.


Custom Tables

N/A

Master Data

N/A

FieldDescriptionData Type/LengthValidation rule/ Value Help









Configuration Table

N/A

FieldDescriptionData Type/LengthValidation rule/ Value Help








Selection Screen Enhancement

N/A

Field NameDescription

Select:

Data Type/LengthDefault Value/ Validation rule/ Value HelpSelection Logic













Processing Logic

N/A

Volumetrics

N/A

Performance Considerations


N/A

Error Handling

In the first scenario; "Check if the WBS Element field is valid & validate if the notification does not have duplicates", if the WBS Element is not valid or the notification has duplicates, it should not be possible to save the notification.

Testing

How to Test

Test Conditions and Expected Results

IDConditionExpected Result
1User launches app “Create Maintenance Notification” (App ID : W0006) with configured App Tile : Create Maintenance Notification for Projectsusing a following parameter: "QMART=Y3". The initial screen where the notification type needs to be selected, will be skipped by providing this parameter in the target url.
2User enters WBS Element in Organizational Data Tab under Account Assignment tab, Enhancement triggers validations for WBS Element to see if it's validNegative Scenario: WBS is not valid, enhancement populates error messages, user should not be able to save the notification if the error messages are not resolved by selecting correct WBS element.
3
Positive Scenario: WBS is valid, user can continue and save the notification.
4User assigns Maintenance Event/Revision to notification, Enhancement triggers validations for the Maintenance Event to see if there is any duplication

Negative Scenario: There is already a saved notification with Y3 Type and same Maintenance Event assigned, enhancement populates error messages, user should not be able to save the notification if the error messages are not resolved by selecting a different Maintenance Event which is not a duplicate.

5
Positive Scenario: There is no duplication, user can continue and save the notification.
6User saves the notification, If WBS Element is fulfilled in the notification, it is also supplied to PSP_NR field in VIQMEL table.Negative Scenario: WBS is not fullfiled but PSP_NR field is already populated in VIQMEL before. This might happen when the WBS is entered in a previous save but deleted afterwards. In this case, PSP_NR needs to be cleared as well.
7
Positive Scenario: WBS is fulfilled, PSP_NR field is populated in VIQMEL.


Test Considerations/Dependencies


Other Information


Development Details

Package

Package NameParent Package




Enhancement Implementation

Enhancement TypeStandard Definition NameCustom Implementation NameDesign Rationale Reference
BADIEAM_NOTIFICATION_FIELD_CONTROL

BADINOTIF_EVENT_SAVE


Other Development Objects

Object TypeObject NamePurpose/High Level LogicDesign Rationale Reference








Appendix

Custom Authorization Group Naming Convention

This table is based on the Syensqo development standards document. It provides the naming conventions for authorization groups to associated with custom reports and tables to comply with security requirements.

ABAP

ZFIZMMZPSZCOZSDZBCZFIZCA
TABLESZFITZMMTZPSTZCOTZSDTZBCTZFITZCAT

See also


  File Modified
File ERP-349-Flow draw.io diagram Dec 02, 2025 by YILMAZTURK-ext, Gokhan
File ~ERP-349-Flow.tmp draw.io Draft Dec 02, 2025 by YILMAZTURK-ext, Gokhan

Change log

Version Published Changed By Comment
CURRENT (v. 24) Dec 02, 2025 17:30 YILMAZTURK-ext, Gokhan
v. 23 Dec 02, 2025 17:22 YILMAZTURK-ext, Gokhan
v. 22 Dec 02, 2025 17:17 YILMAZTURK-ext, Gokhan
v. 21 Nov 20, 2025 09:49 YILMAZTURK-ext, Gokhan
v. 20 Nov 13, 2025 14:22 YILMAZTURK-ext, Gokhan
v. 19 Nov 13, 2025 13:44 YILMAZTURK-ext, Gokhan
v. 18 Nov 12, 2025 14:10 YILMAZTURK-ext, Gokhan
v. 17 Nov 11, 2025 17:27 YILMAZTURK-ext, Gokhan
v. 16 Nov 11, 2025 17:24 YILMAZTURK-ext, Gokhan
v. 15 Nov 11, 2025 17:16 YILMAZTURK-ext, Gokhan

Go to Page History