MDLP Note 2024_02_1
Document History
Version | Changes | Effective Date |
1.0 | First approved version 3Keys MDLP Add-On Note 2024_02_1 | 29-Feb-2024 |
2.0 | Updated version | 03-Apr-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 selection screen field “Aggregation type” added into task scheduler program /K3T/RU_MAR_SCD_GEN_PR - General Pricing Report to set aggregation type (“1” - GTIN, “2” - GTIN and Lot). Selection screen value will be transformed to JSON field “1158_IC_Agg_115_type_realiz” with value “Agg_General_one___1026” - aggregation type by GTIN or value “Agg_General_two___1026” - aggregation type by GTIN and Lot
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_KB = new number value in Kb (transaction /K3T/RU_PARAM). If for some reasons you would like to ignore new interfaces to receive file with single interface call parameter MR_ZIP_SPLIT_INACTIVE need to be activated (transaction /K3T/RU_PARAM).
In some scenarios ZIP file could not been processed on program /K3T/RU_MAR_TASK_EXEC execution 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 Z3K_UNZIP, command must exist at SM69 transaction and allow unzip actions
split file (using OS command Z3K_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 “_XXXX” where “XXXX” - number from “0000” to ”9999”
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).
New Web service interfaces created at Java (called from ABAP part using proxy classes):
/K3T/CO_RU_MAR_GET_FILE_PART
/K3T/CO_RU_MAR_GET_RES_ID_FL
/K3T/CO_RU_MAR_DEL_FILE
New RFC interfaces created at Java (called from ABAP part using RFC function modules):
/K3T/RU_MDLP_MAR_DELETE_FILE - Russia MDLP analytic reporting: Delete file from Connector
/K3T/RU_MDLP_MAR_GET_FILE_PART - Russia MDLP analytic reporting: Get file segment from Connector
/K3T/RU_MDLP_REQ_SIGNED - Russia MDLP analytic reporting: Get General Report result file
3. Solution
Import related to the transport request.
Activate BC set depending on ATTP version /K3T/CUST_MDLP_3_0_2024_02_01 or /K3T/CUST_MDLP_3_1_2024_02_01 or /K3T/CUST_MDLP_3_2_2024_02_01 or /K3T/CUST_MDLP_3_3_2024_02_01 with transaction SCPR20.
3.1 Correction instruction ATTP 3.0
Transport request | Description / Dependencies |
A1DK900663
| 3Keys MDLP Add-On 3.0 Note 2024_02_01 Required transport A1DK900631 |
3.2 Correction instruction ATTP 3.1
Transport request | Description / Dependencies |
A2DK900737 | 3Keys MDLP Add-On 3.1 Note 2024_02_01 Required transport A2DK900699 |
3.3 Correction instruction ATTP 3.2
Transport request | Description / Dependencies |
A3DK900324 | 3Keys MDLP Add-On 3.2 Note 2024_02_01 Required transport A3DK900289 |
3.4 Correction instruction ATTP 3.3
Transport request | Description / Dependencies |
A4DK900171 | 3Keys MDLP Add-On 3.3 Note 2024_02_01 Required transport A4DK900103 |
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 Z3K_UNZIP using transaction SM69:
Windows system: operation system command “powershell”, parameters for OS Command “Expand-Archive”, Additional Parameters allowed indicator active
Linux system: operation system command “unzip”, Additional Parameters allowed indicator active
Optional: in case you use Linux system create OS command Z3K_SPLIT using transaction SM69. Activate parameter MR_CSV_SPLIT_OS_COMMAND (transaction /K3T/RU_PARAM):
operation system command “split”, Additional Parameters allowed indicator active
Update Connector Java part. In case HTTP based and create binding for new services using SOAMANAGER for consumer proxy:
/K3T/CO_RU_MAR_GET_FILE_PART
/K3T/CO_RU_MAR_GET_RES_ID_FL
/K3T/CO_RU_MAR_DEL_FILE
5. Source code objects
Short description | Program | Object type | Object name |
Translation for: Single Message | LANG | MESS | /K3T/REP_RU_MR048 |
Translation for: Single Message | LANG | MESS | /K3T/REP_RU_MR049 |
Translation for: Single Message | LANG | MESS | /K3T/REP_RU_MR050 |
Translation for: Single Message | LANG | MESS | /K3T/REP_RU_MR051 |
Translation for: BC Set or Customizing Profile | LANG | SCP1 | /K3T/CUST_MDLP_3_2_2024_02_01 |
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_MV |
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_RSLT |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MR_CONSTANTS |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_MR_UTILS |
Class Definition (ABAP Objects) | LIMU | CLSD | /K3T/CL_RU_MDLP_CONNECTOR |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MDLP_API_JOB_RSLT |
Protected Header (ABAP Objects) | LIMU | CPRO | /K3T/CL_MR_UTILS |
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_MV |
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_RSLT |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MR_CONSTANTS |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_MR_UTILS |
Public Header (ABAP Objects) | LIMU | CPUB | /K3T/CL_RU_MDLP_CONNECTOR |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR046 |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR047 |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR048 |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR049 |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR050 |
Documentation | LIMU | DOCU | NA/K3T/REP_RU_MR051 |
Function Module | LIMU | FUNC | /K3T/RU_MAR_EXEC_GEN_SAVE |
Function Module | LIMU | FUNC | /K3T/RU_MDLP_MAR_GET_FILE |
Single Message | LIMU | MESS | /K3T/REP_RU_MR046 |
Single Message | LIMU | MESS | /K3T/REP_RU_MR047 |
Single Message | LIMU | MESS | /K3T/REP_RU_MR048 |
Single Message | LIMU | MESS | /K3T/REP_RU_MR049 |
Single Message | LIMU | MESS | /K3T/REP_RU_MR050 |
Single Message | LIMU | MESS | /K3T/REP_RU_MR051 |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_DP COMPOSE_MESSAGE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_MV COMPOSE_MESSAGE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_PR COMPOSE_MESSAGE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_GEN_R_RM COMPOSE_MESSAGE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_RSLT COMPOSE_REQUEST |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_RSLT EXECUTE_MEMORY_OPT |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MDLP_API_JOB_RSLT EXECUTE_USING_CHUNKS |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS CLEANUP_DIR_AS |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS CONVERT_DISPOSAL_TYPE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS CONVERT_SOURCE_TYPE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS DECODE_RESPONSE_ZIP |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS DECODE_RESPONSE_ZIP_AS |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS DELETE_FILE_ON_AS |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS GET_SOURCE_TYPE_TEXT |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS GET_UNPACK_FILE_PATH |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS GET_WEEK_NUMBER |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS IS_DATE_IN_LAST_2_WEEKS |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS MAP_GEN_AND_SAVE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS READ_CSV_FILE_ON_AS |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS SAVE_RESPONSE_ZIP_TO_AS |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS SET_GEN_MAPPER |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS SPLIT_CSV_FILE_ON_AS |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS SPLIT_CSV_FILE_OS_COMMAND |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_MR_UTILS UNZIP_FILE_ON_AS |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_RU_MDLP_CONNECTOR MAR_DELETE_FILE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_RU_MDLP_CONNECTOR MAR_GET_EXPORT_RESULT_ID_FILE |
Method (ABAP Objects) | LIMU | METH | /K3T/CL_RU_MDLP_CONNECTOR MAR_GET_FILE_PART |
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 |
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 |
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 |
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 |
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 Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_MD |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_MD_C01 |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_MD_SSC |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_ON_MV |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_ON_MV_C01 |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_ON_MV_SSC |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_PR |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_PR_C01 |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_PR_SSC |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_RM |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_RM_C01 |
Report Texts | LIMU | REPT | /K3T/RU_MAR_SCD_GEN_RM_SSC |
Table Definition | LIMU | TABD | /K3T/RU_R_G_MD |
Table Definition | LIMU | TABD | /K3T/RU_R_G_MV |
Table Definition | LIMU | TABD | /K3T/RU_R_G_PR |
Table Definition | LIMU | TABD | /K3T/RU_R_G_RM |
Table Definition | LIMU | TABD | /K3T/S_RU_MR_REQ_DB |
Class (ABAP Objects) | R3TR | CLAS | /K3T/CL_MR_TASK_STOR_DB |
Class (ABAP Objects) | R3TR | CLAS | /K3T/CO_RU_MAR_GET_FILE_PART |
Class (ABAP Objects) | R3TR | CLAS | /K3T/CO_RU_MAR_GET_RES_ID_FL |
Class (ABAP Objects) | R3TR | CLAS | /K3T/CO_RU_MDLP_MAR_DEL_FILE |
Domain | R3TR | DOMA | /K3T/D_MR_SOURCE_TYPE |
Domain | R3TR | DOMA | /K3T/D_MR_TIMEFORMAT |
Domain | R3TR | DOMA | /K3T/RU_NOTE2024_02_01V1 |
Data Element | R3TR | DTEL | /K3T/D_MR_FILE_PART_COUNT |
Data Element | R3TR | DTEL | /K3T/D_MR_FILE_PART_SIZE |
Data Element | R3TR | DTEL | /K3T/D_MR_SOURCE_TYPE |
Data Element | R3TR | DTEL | /K3T/D_MR_TIMEFORMAT |
Function Group | R3TR | FUGR | /K3T/REP_RU_MDLP |
BC Set or Customizing Profile | R3TR | SCP1 | /K3T/CUST_MDLP_3_2_2024_02_01 |
Proxy Object | R3TR | SPRX | CLAS/K3T/CO_RU_MAR_GET_FILE_PART |
Proxy Object | R3TR | SPRX | CLAS/K3T/CO_RU_MAR_GET_RES_ID_FL |
Proxy Object | R3TR | SPRX | CLAS/K3T/CO_RU_MDLP_MAR_DEL_FILE |
Proxy Object | R3TR | SPRX | TABL/K3T/RU_MAR_GET_FILE_PART_INP |
Proxy Object | R3TR | SPRX | TABL/K3T/RU_MAR_GET_FILE_PART_OUT |
Proxy Object | R3TR | SPRX | TABL/K3T/RU_MAR_GET_RES_ID_FL_INP |
Proxy Object | R3TR | SPRX | TABL/K3T/RU_MAR_GET_RES_ID_FL_OUT |
Proxy Object | R3TR | SPRX | TABL/K3T/RU_MDLP_MAR_DEL_FILE_INP |
Proxy Object | R3TR | SPRX | TABL/K3T/RU_MDLP_MAR_DEL_FILE_OUT |
Table | R3TR | TABL | /K3T/RU_MAR_GET_FILE_PART_INP |
Table | R3TR | TABL | /K3T/RU_MAR_GET_FILE_PART_OUT |
Table | R3TR | TABL | /K3T/RU_MAR_GET_RES_ID_FL_INP |
Table | R3TR | TABL | /K3T/RU_MAR_GET_RES_ID_FL_OUT |
Table | R3TR | TABL | /K3T/RU_MDLP_MAR_DEL_FILE_INP |
Table | R3TR | TABL | /K3T/RU_MDLP_MAR_DEL_FILE_OUT |
Table | R3TR | TABL | /K3T/S_MR_SELFLD |
Table | R3TR | TABL | /K3T/S_MR_SOURCERANGE |
Table Type | R3TR | TTYP | /K3T/T_MR_SOURCERANGE |
Virtual End Point | R3TR | WEBI | /K3T/RU_MDLP_MAR_DELETE_FILE |
Virtual End Point | R3TR | WEBI | /K3T/RU_MDLP_MAR_GET_FILE_PART |
Virtual End Point | R3TR | WEBI | /K3T/RU_MDLP_MAR_GET_RES_ID_FL |