(Glue-2405) Check for inconsistency in decimal fields.

Data replicated via SLT to ABAP target (BADI implementation) could sometimes get corrupted from a certain position in the table to the end of the structure (except the last 2 fields added by Glue add-on).

The current investigation shows that the issue happens randomly during real-time SLT replication for a few seconds. It happens once every few days/weeks/months and data written to SNP glue queues (compressed entries in the LRAW field) is shifted in the hexadecimal values causing the corruption.

image-20240505-193654.png
An example of a corrupted data.

Because of the data problems mentioned above, a check has been implemented. It inspects hexadecimal values of decimal fields. If there is invalid data, the SLT load will fail and the data will be processed again - this time correctly.

Setup check for specific SLT configuration.

Setup Glue maintenance for specific configurations ().

The value of the last column (Check for inconsistency) should be chosen according to your preferences:

  • No check - check is turned off.

  • Check only for delta loading - The check is turned on only for delta loading, data in the initial load is not checked.

  • Check for full and delta loading - The check is turned on for delta loading and also for the initial loading.

Setup wait when inconsistency is found

The check has the ability to pause execution in an error state for a specified amount of time. It helps to run the debugger and check the values of variables. Pause can be added to the Glue part and also to the SAP SLT part (with includes mentioned below). The implementation is available from the release of Glue SLT 2405.

Steplist:

  • Maintaining table /DVD/GL_SLT_PAR.

    • Param_name: DECIMAL_CHECK:TIMEOUT;EMAIL_ADDRESS

    • Param_value: [waiting_time_in_minutes];[email_address_for_notification]

 

image-20240505-205046.png
Example of setup wait

[waiting_time_in_minutes] defines pause length.

[email_address_for_notification] defines an email address for sending notifications about inconsistency. If the email address is empty, no email message is sent.

Setup wait in SAP SLT

The pause in the SAP SLT part is implemented using 2 includes that need to be added to the Rule assignment of a specific table.

Steplist:

  • Open SLT configuration → Goto → Advanced replication settings.

  • Add the table to Rule Assignment and create 2 Event-Related rule types.

    • Begin of Processing (BOP) with include /DVD/GL_SLT_INCON_CHCK_BOP.

    • End of Record (EOR) with include /DVD/GL_SLT_INCON_CHCK_EOR.

 

 

Check SAP logs

Data inconsistency can be found in standard SAP logs. To access them go to transaction SLG1 and fill in the filter:

  • Object: /DVD/GL

  • Subobject: /DVD/GL_SLT

  • External ID: *INCONSISTENCY*

If there are errors in the logs, it generally means that data inconsistency occurs.

Email sending

There is a possibility to send an email notification about inconsistent data defined in table /DVD/GL_SLT_PAR.

Sender address: SLTcheck@system.com

Subject: Data quality degradation

To test if email sending is configured correctly, use the /DVD/GL_SLT_INCON_EMAIL_TST report.