/
MDLP Note 2024_01_2

MDLP Note 2024_01_2

Document History

Version

Changes

Effective Date

1.0

First approved version

3Keys MDLP Add-On Note 2024_01_2

11-Jan-2024

1. Overview

This document describes changes in the 3Keys MDLP connector ABAP part.

2.    Description

New MDLP Analytic reporting methods added to the 3Keys MDLP connector Add-On:

  • GENERAL_PRICING_REPORT

  • GENERAL_REPORT_ON_MOVEMENT

  • GENERAL_REPORT_ON_REMAINING_ITEM

  • GENERAL_REPORT_ON_DISPOSAL

Corrections for transaction /K3T/RU_MAR_MONITOR Russia MDLP Analytics: Task monitor:

  • new function “Download ZIP from MDLP” to download ZIP file for provided GUID. Function is available if user has authorities for object /K3T/RU005 field /K3T/RU005 value “10”. Processing logic:

    • request MDLP GUID and Configuration ID with Popup window

    • read first selected item to check if selected report is General report

    • get result ID from MDLP

    • get file from MDLP for result ID and save file to PC

  • new fields “Period type”, “Period from”, “Period to” at report output

  • some technical hidden fields deleted from output for memory optimization

New database tables added to store analytic reporting data.

  • /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

  • To compress identical entries Business partner data as fields FEDERAL_SUBJECT, CITY, AREA and etc. are stored at existing table /K3T/RU_R_BP Russia MDLP Analytics: Business partner. Database table (for example, /K3T/RU_R_G_MD) contains BP_ID key only and database views /K3T/RU_R_G_MD_V contains all fields from MDLP analytic report

  • /K3T/RU_R_FILE - Russia MDLP Analytics: CSV File as String (help table to split CSV file into several parts on ZIP file processing)

New fields added into database table /K3T/RU_R_TSK and report /K3T/RU_MAR_MONITOR output:

  • period type (values “1” - Week, “2” - Month from report task JSON)

  • period from (period first day from report task JSON)

  • period to (period last day from report task JSON)

New selection screen fields “All GTINs” and “Select GTINs” added into task scheduler programs to allow run without GTIN specification:

  • /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

Error corrections for program /K3T/RU_MAR_REP_PROC - Russia MDLP Analytics: Task processor (General Report):

  • error with API time limit - in some cases task is not created due to API time limit violation. Default delay set to 65 seconds (can be redefined with parameters /K3T/MDLP_API_TSK_RDEL_DELAY (delete file), /K3T/MDLP_API_TSK_R_DP_DELAY (create disposal report), /K3T/MDLP_API_TSK_R_MV_DELAY (create movement report), K3T/MDLP_API_TSK_R_PR_DELAY (create price report), /K3T/MDLP_API_TSK_R_RM_DELAY (create remaining report), /K3T/MDLP_API_TSK_R_RGET_DELAY (get result id), /K3T/MDLP_API_TSK_R_FILE_DELAY (get file), /K3T/MDLP_API_TSK_R_SRCH_DELAY (get all task status), /K3T/MDLP_API_TSK_R_STAT_DELAY (get single task status)

  • ABAP code errors

New function module /K3T/RU_MAR_EXEC_GEN_SAVE created to parse ZIP from task database table and save to relevant database table (can be used as processor at configuration transaction /K3T/RU_MAR_CONF or as example for custom function module). Processing logic:

  • Check there is no previous data at database for this task

  • Decode ZIP file to files as string

  • Split file to parts with 100000 entries (can be redefined with parameter MR_CSV_FILE_PART_SIZE)

  • Save file to database table /K3T/RU_R_FILE (to reduce memory consumption)

  • For each file from database table /K3T/RU_R_FILE:

    • read file header and file content as string

    • split file content by packages with number 20000 (can be redefined with parameter MR_CSV_PACKAGE_SIZE)

    • parse and save file package to database tables

    • repeat until file is not empty

    • commit changes

  • Delete entries from table /K3T/RU_R_FILE

New logic to parse response with ZIP file from connector:

  • in case response is not empty check first character. If it is not “{“ it means connector returns file as base64 without JSON and JSON parse is not required. Return response without correction

  • Otherwise response is JSON and JSON transformation is required. Read parameter MR_JSON_ZIP_PARSE_MODE and transform JSON to ABAP structure fields depending on specified parse mode:

    • empty or “1” - use parse mode based on string search. Reduce string length after search

    • “3” - use ID transformation (recommended approach to transform JSON). In case of big size files runtime error occurs because of memory consumption

3.    Solution

Import related to the transport request.

3.1    Correction instruction ATTP 3.0

Transport request

Description / Dependencies

A1DK900621

 

3Keys MDLP Add-On 3.0 Note 2024_01_02

Required transport A1DK900554

3.2    Correction instruction ATTP 3.1

Transport request

Description / Dependencies

A2DK900691

3Keys MDLP Add-On 3.1 Note 2024_01_02

Required transport A2DK900615

3.3    Correction instruction ATTP 3.2

Transport request

Description / Dependencies

A3DK900276

3Keys MDLP Add-On 3.2 Note 2024_01_02

Required transport A3DK900190

3.4    Correction instruction ATTP 3.3

Transport request

Description / Dependencies

A4DK900080

3Keys MDLP Add-On 3.3 Note 2024_01_02

Required transport A4DK900045 or SAPK-303COINK3T

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.

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

 

Related content

MDLP Note 2024_02_1
MDLP Note 2024_02_1
More like this
MDLP Note 2024_01_1
MDLP Note 2024_01_1
Read with this
MDLP Release 2024_01
MDLP Release 2024_01
More like this
Kazakhstan MPT Release 2024_01
Kazakhstan MPT Release 2024_01
Read with this
MDLP Note 2021_04_4
MDLP Note 2021_04_4
More like this
ISMT Release 2024_01
ISMT Release 2024_01
Read with this