MDLP Note 2022_03_1
Document History
Version | Changes | Effective Date |
3.0 | Updated version 3Keys MDLP Add-On Note 2022_03_1 | 22-Jul-2022 |
2.0 | Updated version 3Keys MDLP Add-On Note 2022_03_1 | 13-Jul-2022 |
1.0 | First approved version 3Keys MDLP Add-On Note 2022_03_1 | 19-May-2022 |
1. Overview
This document describes changes in the 3Keys MDLP connector ABAP part.
2. Description
Functionality MDLP Analytic reporting works incorrectly after MDLP release April 2022. The following corrections have been implemented:
Selection screen field “Max wait time after creation (sec)” type changed to allow input more than 999 seconds
Delay for task creation operation changed from 1 seconds to 30 seconds (New parameters /K3T/MDLP_API_TSK_HRY_DELAY, /K3T/MDLP_API_TSK_MDP_DELAY, /K3T/MDLP_API_TSK_REM_DELAY with value 30 shall be maintained in the transaction /K3T/RU_PARAM)
Error code TASK_LIMIT_EXCEEDED changed to USER_TASK_LIMIT_EXCEEDED and MEMBER_TASK_LIMIT_EXCEEDED
Status “No data” logic corrected to set status not only on task creation but on task control status. If created task returns status “FAILED” plus error text “No data are found for the parameters specified.” Or“Выгрузка не создана. По указанным параметрам не найдено данных.”. To add new error text value for status “No data” new parameters: /K3T/MDLP_API_TSK_NO_DATA_TXT1, /K3T/MDLP_API_TSK_NO_DATA_TXT2, /K3T/MDLP_API_TSK_NO_DATA_TXT3, /K3T/MDLP_API_TSK_NO_DATA_TXT4 shall be maintained in the transaction /K3T/RU_PARAM. Result error text will be combined as text1+text2+text3+text4.
New selection screen field “Queue processing method” added. Available values:
o 1 - “FIFO” (default value) means task will be processed in order task have been created.
o 2 - “Create if slot is available” means program will create new task after each successful task result processing when free slot is available at MDLP side (to minimize wait time between task creation)
New field “Branch ID” is requested from MDLP for report types “Remaining medicines” and “Medicine disposal”
New selection screen field “Retry after max wait times” added into new selection screen block “Task response wait options” with the following processing logic:
o Each task created at MDLP system existing without final status (COMPLETED or ERROR) is checked for processing time (task creation time at MDLP + “Max wait time after creation (sec)” is less than time now). In case task processing time is more than “Max wait time after creation (sec)” seconds task processing is stopped by program and task is deleted from MDLP with error “Maximum response time reached. Setting error status”. For each task now new internal max wait time counter implemented to create new task at MDLP instead of stop task processing if counter value is less than “Retry after max wait times”.
New feature.
Corrections for report types “Remaining medicines” and “Medicine disposal”:
New selection screen fields “Determine lot” and “Maximum Task Lots” added into transactions /K3T/RU_MAR_SCD_MD and /K3T/RU_MAR_SCD_RM. In case one of the following fields “Lot number” criteria or “Determine lot” check box or “Exclude expired Batch” checkbox is selected program selects all lot numbers for each GTIN from SAP system with additional check at least serialized item exists for lot. Selected lots are splitted into groups for each GTIN with maximum lot numbers equal to “Maximum Task Lots” parameter. New MDLP API task creates for each group.
Selection screen validation control implemented for transaction /K3T/RU_MAR_SCD_MD Task scheduler Medicine disposal. Both fields “Start date” and “End date” must be non-empty
Selection screen validation control implemented for transaction /K3T/RU_MAR_SCD_RM Task scheduler Remaining medicines. Program allows one of the following selection fields input:
Utilization date start | Utilization date end | Lot Number |
Non-empty | Always today (hidden) | empty |
empty | Always today (hidden) | Non-empty |
New feature.
New report type “Pricing Report” added to request price information from MDLP system using the common approach for MDLP analytic reporting:
New Transaction /K3T/RU_MAR_SCD_PR Task scheduler Pricing Report created to schedule tasks based on selection screen week or month. Input to both values is not allowed. The value of week/month is transformed to MDLP API task JSON request and saved to database with status 00-New
Program /K3T/RU_MAR_TASK_PROC Russia MDLP Analytics: Task processor read new tasks, creates tasks at MDLP system and receives data (ZIP archive with CSV file) from MDLP system. Status 20-Ready (results downloaded from MDLP) is set for successfully processed tasks
Program /K3T/RU_MAR_TASK_EXEC Russia MDLP Analytics: Task execution read tasks with status 20-Ready (results downloaded from MDLP) and execute processing to save data to final database tables. Processing is based on transaction /K3T/RU_MAR_CONF customizing. Function Modules are assigned for the report type using “Analytic Report” node, for example FM /K3T/RU_MAR_EXEC_SAVE to extract data from ZIP archive, parse CSV file and save data to database tables /K3T/RU_R_PR (Pricing report), /K3T/RU_R_BP (Business partner), view /K3T/RU_R_PR_V (Pricing report) contains full information and FM /K3T/RU_MAR_EXEC_STATUS to set task final status 30-Completed (processed by SAP BI, customer functions).
New feature.
3. Solution
Import related to the transport request.
3.1 Correction instruction FP04
Transport request | Description / Dependencies |
AT1K900961 | 3Keys MDLP Add-On FP04 Note 2022_03_01 Required transport AT1K900937 |
3.2 Correction instruction FP05
Transport request | Description / Dependencies |
D1AK900446 | 3Keys MDLP Add-On FP05 Note 2022_03_01 Required transport D1AK900428 |
3.3 Correction instruction ATTP 3.0
Transport request | Description / Dependencies |
A1DK900328 | 3Keys MDLP Add-On 3.0 Note 2022_03_01 Required transport A1DK900272 |
3.4 Correction instruction ATTP 3.1
Transport request | Description / Dependencies |
A2DK900287 | 3Keys MDLP Add-On 3.1 Note 2022_03_01 Required transport A2DK900213 |
4. Recommendation
Increase value “Max wait time after creation (sec)” if there is errors related to max task processing type in SLG1 log.
Maintain parameters /K3T/MDLP_API_TSK_HRY_DELAY (delay for sscc hierarchy creation task), /K3T/MDLP_API_TSK_MDP_DELAY (delay for medical disposal creation task), /K3T/MDLP_API_TSK_REM_DELAY (delay for remains creation task) in the transaction /K3T/RU_PARAM.
Create new field “Branch_ID” (type character 36) at external database tables for report types medical disposal, remaining medicines.
Test MDLP Analytic reporting works correctly.
5. Source code objects
Short description | Program | Object type | Object name |
Translation for: Domain Definition | LANG | DOMD | /K3T/D_MR_QUEUE_PROC_METHOD |
Translation for: Domain Definition | LANG | DOMD | /K3T/D_MR_PR_REP_TYPE |
Translation for: Domain Definition | LANG | DOMD | /K3T/D_MR_REP_TYPE |
Translation for: Domain Definition | LANG | DOMD | /K3T/RU_NOTE2022_03_01V1 |
Translation for: Data Element Definition | LANG | DTED | /K3T/D_MR_QUEUE_PROC_METHOD |
Translation for: Report Source Code | LANG | REPS | /K3T/RU_MAR_TASK_PROC |
Translation for: Report Texts | LANG | REPT | /K3T/RU_MAR_TASK_PROC |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MDLP_API_TSK_HRY |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MR_CONSTANTS |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MR_UTILS |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_TSK_HRY |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_TSK_MDP |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_TSK_REM |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MDLP_API_TSK_HRY |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MR_CONSTANTS |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MR_UTILS |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR037 |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR038 |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR039 |
Domain Definition | LIMU | DOMD | /K3T/D_MR_REP_TYPE |
Function Module | LIMU | FUNC | /K3T/RU_MAR_EXEC_SAVE |
Single Message | LIMU | MESS | /K3T/REP_RU_MR037 |
Single Message | LIMU | MESS | /K3T/REP_RU_MR038 |
Single Message | LIMU | MESS | /K3T/REP_RU_MR039 |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_REQ GET_INSTANCE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_TSK_HRY CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_TSK_HRY CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_TSK_MDP CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_TSK_MDP COMPOSE_MESSAGE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_TSK_MDP CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_TSK_REM CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_TSK_REM COMPOSE_MESSAGE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_TSK_REM CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_ADBC INSERT_DISPOSAL |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_ADBC INSERT_REMAINS |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_CONSTANTS CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS GET_REPORT_TABLE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS GROUP_LOT_BY_GTIN |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS MAP_AND_SAVE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS PARSE_BP |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS PARSE_BP_PRICING |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS SET_MAPPER |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_MD_C01 |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_MD_SSC |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_RM_C01 |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_RM_SSC |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_TASK_PROC |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_TASK_PROC_C01 |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_TASK_PROC_SSC |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_MD |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_RM |
Report Texts | LIMU | REPT | /K3T/RU_MAR_TASK_PROC |
Report Texts | LIMU | REPT | /K3T/RU_MAR_TASK_PROC_C01 |
Report Texts | LIMU | REPT | /K3T/RU_MAR_TASK_PROC_SSC |
View Definition | LIMU | VIED | /K3T/RU_R_MD_V |
View Definition | LIMU | VIED | /K3T/RU_R_RM_V |
Class (ABAP Objects) | R3TR | CLAS | /K3T/CL_MDLP_API_TSK_PR_REP |
Domain | R3TR | DOMA | /K3T/D_MR_PR_REP_TYPE |
Domain | R3TR | DOMA | /K3T/D_MR_QUEUE_PROC_METHOD |
Domain | R3TR | DOMA | /K3T/RU_NOTE2022_03_01V1 |
Domain | R3TR | DOMA | /K3T/RU_NOTE2022_03_01V2 |
Data Element | R3TR | DTEL | /K3T/D_MR_MAX_RESP_WAIT |
Data Element | R3TR | DTEL | /K3T/D_MR_QUEUE_PROC_METHOD |
Data Element | R3TR | DTEL | /K3T/D_MR_PR_REP_TYPE |
Data Element | R3TR | DTEL | /K3T/D_MR_QUEUE_PROC_METHOD |
Program | R3TR | PROG | /K3T/RU_MAR_SCD_PR |
Program | R3TR | PROG | /K3T/RU_MAR_SCD_PR_C01 |
Program | R3TR | PROG | /K3T/RU_MAR_SCD_PR_SSC |
Table | R3TR | TABL | /K3T/RU_R_BP |
Table | R3TR | TABL | /K3T/RU_R_PR |
Table | R3TR | TABL | /K3T/S_MR_GTIN_LOT_GROUP |
Table | R3TR | TABL | /K3T/S_MR_SCD_LOT |
Table | R3TR | TABL | /K3T/S_RU_MR_DISP_DAT_DB |
Table | R3TR | TABL | /K3T/S_RU_MR_REM_DAT_DB |
Transaction | R3TR | TRAN | /K3T/RU_MAR_SCD_PR |
Table Type | R3TR | TTYP | /K3T/T_MR_GTIN_LOTNO_GROUP |
Table Type | R3TR | TTYP | /K3T/T_MR_SCD_LOT |
View | R3TR | VIEW | /K3T/RU_R_PR_V |