/
MDLP Note 2024_02_1

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

 

Related content

MDLP Release 2024_03
MDLP Release 2024_03
Read with this
MDLP Note 2023_03_3
MDLP Note 2023_03_3
More like this
MDLP Note 2024_03_1
MDLP Note 2024_03_1
Read with this
MDLP Note 2024_01_2
MDLP Note 2024_01_2
More like this
ISMT Note 2024_02_1
ISMT Note 2024_02_1
Read with this
MDLP Note 2022_04_4
MDLP Note 2022_04_4
More like this