| Status | |
|---|---|
| Owner | YILMAZTURK-ext, Gokhan |
| Stakeholders | LEIGHTON-ext, Dean |
| Jira Request ID | |
| Jira Development ID |
| Parameter | Value |
|---|---|
| Application System | SAP S/4HANA ROW, SAP S/4HANA China, SAP S/4HANA CUI |
| Business Process Reference | 07.05.01.01. Manage Asset, Faults and Incidents |
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.)
This development has 3 main objectives as follows;
![]()
Insert the flowchart and fill in the steps
Step | Description | Comment |
|---|---|---|
| 1 | User 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. |
| 2 | User enters Notification Details | e.g. Notification Description, Technical Object, Maintenance Plant, Company Code, etc. |
| 3 | User 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: |
| 4 | Enhancement triggers checks for WBS Element to see if it's valid | if not it will populate error messages |
5 | User enters Maintenance Event in General Tab | |
| 6 | Enhancement triggers checks for duplication with Notification Type (Y3) and Maintenance Event combination | if there is any duplication, it will populate error messages |
| 7 | User saves the notification | |
| If WBS Element is fulfilled in the notification, it is also supplied to PSP_NR field in VIQMEL table. |
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.
WBS Element needs to be created prior to create a Y3 Notification as a prerequisite.
To detail the security requirements for processing this enhancement, any data integrity issues associated with the object and the teams that will be responsible for processing the object, i.e. authorization/roles required to who can execute the enhancements, etc.
- Custom Tables, enhancement, transaction codes, programs, Web Dynpro Application, Code Data Services (CDS), Open Data Protocol (OData), BI reports, and Functional Modules need to have at least one authority check either standard or custom. (custom should be an exception)
- All custom tables will be maintained in a certain Authorization Group (example: ZFIN, etc.)
- In the case of transaction codes an additional check other than the object S_TCODE is required. You can use SU24 to find the related authorization objects to check.
All other WRICEFs
- If the authorization check is already performed in the calling Programs, this section can be filled as “Follow calling programs authorization check” (example : BADI to redirect DMS to OpenText, in which the calling Manage Purchase requisition Fiori App already performed authorization check)
- If the authorization check is not checked in any of the development, this section should be filled with the proposed authorization check. You can refer to SU24 to see the standard authorization objects. (example: full custom Fiori App to enable user to download/upload the project plan)
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 details of Fiori Tile configuration will be mentioned in the Configuration Requirements section below.
| Configuration | Value |
|---|---|
| Title | Create Maintenance Notification |
| Subtitle | for Projects |
| Keywords | EAMS_WDA_ORDNTF_OIF |
| Icon | sap-icon://request |
| Use semantic object navigation | True |
| Semantic Object | MaintenanceNotification |
| Action | create |
| Parameters | sap-ui-tech-hint=WDA&QMART=Y3 |
Specify the configuration requirements for this object. Like in case of substitution/ routine specify the configuration needed
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.
Specify the language requirements for this object. Specify the required language and type of translation, like labels, data.
Specify any special requirements or considerations that may impact the enhancement based on specific locations, regulatory compliance or system limitations. Clearly outline requirements e.g. localization rules for countries like China
If the enhancement interacts with third-party systems such as Icertis, describe any additional integration, security or authentication considerations that must be taken into account.
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.
Detail the functional requirements that are desired to be achieved by the Enhancement compared to current functionality
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.
Typically, an enhancement will be based on an existing SAP BADI / user exit. If this is the case, please provide the proposed details of the BADI / user exit.
Include an overview of the source
| Table | Field Name | Comments/Calculation/Field Manipulation |
|---|---|---|
| VIQMEL | PROID | If PROID is not initial pass PROID to PSP_NR during save |
| VIQMEL | PSP_NR | If PROID is not initial pass PROID to PSP_NR during save |
Include an overview of the data validation requirement
| Table | Field Name | Comments/Calculation/Field Manipulation |
|---|---|---|
| VIQMEL | PROID | Get PROID |
| PRPS | PSPNR | Go to PRPS with PROID = PSPNR |
| PRPS | BELKZ | Check if BELKZ is True "X", if not throw an error. |
| VIQMEL | REVNR | Check if there is a record in VIQMEL with same PROID and same REVNR, if there is, throw an error. |
| JEST | STAT | Check if the WBS is Released (I0002 is active for the Object) |
| TJ30 | ESTAT | Get User Status Numbers relevant for checks. |
N/A
N/A
<Title Custom Table 1>
<Include an overview of the table and what it’s used for>
| Field | Description | Data Type/Length | Validation rule/ Value Help |
|---|---|---|---|
N/A
Title Configuration Table 1
Include an overview of the table and what it’s used for
| Field | Description | Data Type/Length | Validation rule/ Value Help |
|---|---|---|---|
N/A
This section will give the details on the selection screen parameters, parameter type and whether it’s obligatory or not. This section can be used to define the Import Export parameters for Function Module or User Exit or Screens.
| Field Name | Description | Select: Option or Parameter Check box or Radio button Import or Export | Data Type/Length | Default Value/ Validation rule/ Value Help | Selection Logic |
|---|---|---|---|---|---|
This section defines the detailed step-by-step logic implemented within the BAdI/User Exit to process the data received from the standard SAP program and database retrieval. It explains the operations performed on the data, the expected outcomes in different scenarios and how the system should behave in response to specific conditions.
N/A
Provide volumetrics details: Initial load volumes, Number of Records, Expected Frequency, Expected Long term Growth)
N/A
Specify if there are any specific performance factors that need to be taken into consideration during development i.e. enhancement must be able to be executed by 10 users at the same time, etc.
N/A
Detail how errors will be handled: Notification, Restart/ Recovery and Re-Processing Procedures
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.
Please provide some guidance and/or test data to help the developer unit test the enhancement. Please include both positive and negative testing (to validate error situations handling). The developer will need to test repeatedly, so where appropriate provide instructions to reverse the actions performed so the test may be run again or explain how to create new input data to the test. The developer will need logons for test users representing the various roles within the approval process.
| ID | Condition | Expected Result |
|---|---|---|
| 1 | User launches app “Create Maintenance Notification” (App ID : W0006) with configured App Tile : Create Maintenance Notification for Projects | 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. |
| 2 | User enters WBS Element in Organizational Data Tab under Account Assignment tab, Enhancement triggers validations for WBS Element to see if it's valid | Negative 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. | |
| 4 | User 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. | |
| 6 | User 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. |
List any considerations essential for application test planning (e.g., test this before ABC along with DEF separate from GHI). If the development encompasses a user interface, explain how to test it. List any insights as to how this component could be tested the most efficiently.
| Package Name | Parent Package |
|---|---|
| Enhancement Type | Standard Definition Name | Custom Implementation Name | Design Rationale Reference |
|---|---|---|---|
| BADI | EAM_NOTIFICATION_FIELD_CONTROL | ||
| BADI | NOTIF_EVENT_SAVE |
| Object Type | Object Name | Purpose/High Level Logic | Design Rationale Reference |
|---|---|---|---|
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 | ZFI | ZMM | ZPS | ZCO | ZSD | ZBC | ZFI | ZCA |
|---|---|---|---|---|---|---|---|---|
| TABLES | ZFIT | ZMMT | ZPST | ZCOT | ZSDT | ZBCT | ZFIT | ZCAT |
Insert links and references to other documents which are relevant when trying to understand this decision and its implications. Other decisions are often impacted, so it's good to list them here with links. Attachments are also possible but dangerous as they are static documents and not updated by their authors.
