Document History
Version | Changes | Effective Date |
1.0 | First approved version 3Keys MDLP Add-On Note 2024_02_1 | 27-Feb-2024 |
1. Overview
This document describes changes in the 3Keys MDLP connector ABAP part.
2. Description
MDLP Analytic reporting functionality adjustment to MDLP API version 4.58 changes:
new JSON field processing logic added to scheduler programs (Fields “0616_IC_Operation_MDLP_period_all”, “1031_IC_Period_Week_all”). Field value is filled automatically based on internal date calculation logic
new selection screen field “Source type” added into task scheduler programs to restrict analytic report with additional filter:
/K3T/RU_MAR_SCD_GEN_MD - Russia MDLP Analytics: Task scheduler General Report on Disposal
K3T/RU_MAR_SCD_GEN_ON_MV - Russia MDLP Analytics: Task scheduler General Report on Movement
/K3T/RU_MAR_SCD_GEN_PR - Russia MDLP Analytics: Task scheduler General Pricing Report
/K3T/RU_MAR_SCD_GEN_RM - Russia MDLP Analytics: Task scheduler General Report on Remaining Items
new report field support (field “Source type”) added to CSV file parse and database tables:
/K3T/RU_R_G_MD - Russia MDLP Analytics: General report Medicine disposal
/K3T/RU_R_G_MV - Russia MDLP Analytics: General report on Movement
/K3T/RU_R_G_PR - Russia MDLP Analytics: General Pricing report
/K3T/RU_R_G_RM - Russia MDLP Analytics: General report Remaining medicines
New interfaces added to receive response ZIP file from Java part by chunks to support massive ZIP files processing. Default chunk size is 30 Mb. This size could be changed using parameter MR_DOWN_PART_SIZE = new number in Kb (transaction /K3T/RU_PARAM). If for some reasons you would like to ignore new interfaces to receive file with single interface call than parameter MR_ZIP_SPLIT_INACTIVE need to be activated (transaction /K3T/RU_PARAM).
In some scenarios ZIP file could not been processed due to runtime error STRING_SIZE_TOO_LARGE related to response ZIP file size. To correct this problem new approach implemented to function module /K3T/RU_MAR_EXEC_GEN_SAVE to decode response ZIP file with Application server:
save file to application server (default folder is logical file path Z3K_MR_UNPACK_PATH could be changed using parameter MR_UNPACK_PATH = <new logical file path> (transaction /K3T/RU_PARAM)).
unzip file using OS command Z_UNZIP, command must exist at SM69 transaction and allow unzip actions
split file (using OS command Z_SPLIT (if parameter MR_CSV_SPLIT_OS_COMMAND is activated) or using stream file reading). Several CSV files with fixed entries number (default value is 100000, could be redefined with parameter MR_CSV_FILE_PART_SIZE) will be created with file name containing postfix “_XX” where “XX” - number from “00” to ”99”
process file sequentially
clear application server folder (delete ZIP file, unzipped files, splitted CSV files)
This approach is active by default and could be deactivated using parameter MR_PARSE_ZIP_IN_MEMORY (transaction /K3T/RU_PARAM).
3. Solution
Import related to the transport request.
3.1 Correction instruction ATTP 3.0
Transport request | Description / Dependencies |
A1DK9006XX | 3Keys MDLP Add-On 3.0 Note 2024_02_01 Required transport A1DK900554 |
3.2 Correction instruction ATTP 3.1
Transport request | Description / Dependencies |
A2DK9006XX | 3Keys MDLP Add-On 3.1 Note 2024_02_01 Required transport A2DK900615 |
3.3 Correction instruction ATTP 3.2
Transport request | Description / Dependencies |
A3DK9002XX | 3Keys MDLP Add-On 3.2 Note 2024_02_01 Required transport A3DK900190 |
3.4 Correction instruction ATTP 3.3
Transport request | Description / Dependencies |
A4DK9000XX | 3Keys MDLP Add-On 3.3 Note 2024_02_01 Required transport A4DK900045 |
4. Recommendation
Implement new methods for analytic data processing from MDLP as old methods marked as obsolete at MDLP API documentation. Update MDLP connector java part to the latest version.
Create application server folder to process analytic reports and customise logical file path. Use predefined logical path Z3K_MR_UNPACK_PATH value or create own logical path and maintain parameter MR_UNPACK_PATH = <new logical file path> (transaction /K3T/RU_PARAM).
Create OS command Z_UNZIP using transaction SM69:
windows system:
linux system
In case you use Linux system create OS command Z_SPLIT using transaction SM69. Activate parameter MR_CSV_SPLIT_OS_COMMAND (transaction /K3T/RU_PARAM).
5. Source code objects
Short description | Program | Object type | Object name |
Translation for: Domain | LANG | DOMA | /K3T/D_MR_PERIOD_TYPE |
Translation for: Data Element | LANG | DTEL | /K3T/D_MR_CSV_FILE |
Translation for: Data Element | LANG | DTEL | /K3T/D_MR_PERIODFROM |
Translation for: Data Element | LANG | DTEL | /K3T/D_MR_PERIODTO |
Translation for: Data Element | LANG | DTEL | /K3T/D_MR_PERIOD_TYPE |
Translation for: Data Element | LANG | DTEL | /K3T/D_MR_PERIOD_TYPE_TEXT |
Translation for: Single Message | LANG | MESS | /K3T/REP_RU_MR045 |
Translation for: Report Texts | LANG | REPT | /K3T/RU_MAR_SCD_GEN_MD |
Translation for: Report Texts | LANG | REPT | /K3T/RU_MAR_SCD_GEN_ON_MV |
Translation for: Report Texts | LANG | REPT | /K3T/RU_MAR_SCD_GEN_PR |
Translation for: Report Texts | LANG | REPT | /K3T/RU_MAR_SCD_GEN_RM |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MDLP_API_JOB_DEL_RSLT |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MDLP_API_JOB_GEN_R_DP |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MDLP_API_JOB_GEN_R_PR |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MDLP_API_JOB_GEN_R_RM |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MDLP_API_JOB_RESULTS |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MDLP_API_JOB_RSLT |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MDLP_API_JOB_SEARCH |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MDLP_API_JOB_STATUS |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MR_CONSTANTS |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MR_UI_HELPER |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MR_UTILS |
Private Header (ABAP Objects) | LIMU | CPRI | /K3T/CL_MR_UTILS |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_JOB_DEL_RSLT |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_JOB_GEN_R_DP |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_JOB_GEN_R_MV |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_JOB_GEN_R_PR |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_JOB_GEN_R_RM |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_JOB_RESULTS |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_JOB_RSLT |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_JOB_SEARCH |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_JOB_STATUS |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MR_UI_HELPER |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MR_UTILS |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MDLP_API_JOB_DEL_RSLT |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MDLP_API_JOB_GEN_R_DP |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MDLP_API_JOB_GEN_R_PR |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MDLP_API_JOB_GEN_R_RM |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MDLP_API_JOB_RESULTS |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MDLP_API_JOB_RSLT |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MDLP_API_JOB_SEARCH |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MDLP_API_JOB_STATUS |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MR_CONSTANTS |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MR_UI_HELPER |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MR_UTILS |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR043 |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR044 |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR045 |
Domain Definition | LIMU | DOMD | /K3T/D_MR_ACTION |
Function Module | LIMU | FUNC | /K3T/RU_MAR_EXEC_GEN_SAVE |
Function Module | LIMU | FUNC | /K3T/RU_MAR_EXEC_SAVE |
Single Message | LIMU | MESS | /K3T/REP_RU_MR043 |
Single Message | LIMU | MESS | /K3T/REP_RU_MR044 |
Single Message | LIMU | MESS | /K3T/REP_RU_MR045 |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_DEL_RSLT CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_DEL_RSLT CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_DEL_RSLT EXECUTE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_DP CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_DP CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_MV CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_MV CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_PR CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_PR CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_RM CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_RM CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_RESULTS CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_RESULTS COMPOSE_REQUEST |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_RESULTS CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_RSLT CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_RSLT CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_RSLT EXECUTE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_RSLT EXECUTE_MEMORY_OPT |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_SEARCH CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_SEARCH CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_STATUS CLASS_CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_STATUS CONSTRUCTOR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UI_HELPER GET_PERIOD_TYPE_DESCR |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS CONVERT_DATE_EXT_TO_INT |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS CONVERT_DISPOSAL_TYPE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS DECODE_RESPONSE_ZIP |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS DELETE_CSV_FILE_LOB |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS GET_FIRST_LAST_DAY_OF_MONTH |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS GET_FIRST_LAST_DAY_OF_WEEK |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS GET_MONTH_NUMBER |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS GET_REPORT_TABLE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS MAP_AND_SAVE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS MAP_GEN_AND_SAVE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS PARSE_BP |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS PREPARE_CSV_FILE_LOB |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS SET_GEN_MAPPER |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS SET_MAPPER |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS SPLIT_CSV_FILE_HEADER |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS SPLIT_CSV_FILE_PART |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS SPLIT_CSV_FILE_PART_WITH_LOB |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS TRANSFORM_JSON_ZIP_TO_ABAP |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS UPLOAD_CSV_TABLE |
Report Source Code | LIMU | REPS | /K3T/LRU_MAR_EXECUXX |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_MONITOR_C01 |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_REP_PROC_C01 |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_GEN_MD_C01 |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_GEN_MD_SSC |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_GEN_ON_MV_C01 |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_GEN_ON_MV_SSC |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_GEN_PR_C01 |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_GEN_PR_SSC |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_GEN_RM_C01 |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_GEN_RM_SSC |
Report Source Code | LIMU | REPS | /K3T/RU_MAR_SCD_MD_C01 |
Report Texts | LIMU | REPT | /K3T/RU_MAR_MONITOR |
Report Texts | LIMU | REPT | /K3T/RU_MAR_REP_PROC_C01 |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_MD |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_ON_MV |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_PR |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_RM |
Table Definition | LIMU | TABD | /K3T/RU_ALV_MR |
Table Definition | LIMU | TABD | /K3T/RU_R_BP |
Table Definition | LIMU | TABD | /K3T/RU_R_FILE |
Table Definition | LIMU | TABD | /K3T/RU_R_TSK |
Domain | R3TR | DOMA | /K3T/D_MR_EXIT_TYPE |
Domain | R3TR | DOMA | /K3T/D_MR_PERIOD_TYPE |
Domain | R3TR | DOMA | /K3T/RU_NOTE2024_01_02V1 |
Data Element | R3TR | DTEL | /K3T/D_MR_ADDRESS |
Data Element | R3TR | DTEL | /K3T/D_MR_CSV_FILE |
Data Element | R3TR | DTEL | /K3T/D_MR_EXIT_DATE |
Data Element | R3TR | DTEL | /K3T/D_MR_EXIT_TYPE |
Data Element | R3TR | DTEL | /K3T/D_MR_FILE_NAME |
Data Element | R3TR | DTEL | /K3T/D_MR_FILE_PART_NUMBER |
Data Element | R3TR | DTEL | /K3T/D_MR_PERIODFROM |
Data Element | R3TR | DTEL | /K3T/D_MR_PERIODTO |
Data Element | R3TR | DTEL | /K3T/D_MR_PERIOD_TYPE |
Data Element | R3TR | DTEL | /K3T/D_MR_PERIOD_TYPE_TEXT |
Table | R3TR | TABL | /K3T/RU_R_FILE |
Table | R3TR | TABL | /K3T/RU_R_G_MD |
Table | R3TR | TABL | /K3T/RU_R_G_MV |
Table | R3TR | TABL | /K3T/RU_R_G_PR |
Table | R3TR | TABL | /K3T/RU_R_G_RM |
View | R3TR | VIEW | /K3T/RU_R_G_MD_V |
View | R3TR | VIEW | /K3T/RU_R_G_MV_V |
View | R3TR | VIEW | /K3T/RU_R_G_PR_V |
View | R3TR | VIEW | /K3T/RU_R_G_RM_V |