Skip to Content
Product Information
Author's profile photo Richard Kuba

The DMEE Trace Tool

 

DMEE receives one of the biggest single updates in its lifetime. We implemented a tool that opens and clarifies DMEE Engine processing. In this tool, you can see and analyze how the DMEE tree was processed in detail without the need to debug its code. We call this tool DMEE Trace Tool.

DMEE Trace Tool

DMEE Trace Tool is here to help you to analyze problems that often happen during DMEE Tree creation or modification. Don’t you understand why the node or the level is missing in the output file? Why the mapped value is in a different format than expected? Or would you like to understand how the conditions are processed internally? DMEE Trace Tool can help you to get the answers.

How it works in a nutshell

As you know, the user can’t see into the processing of the output file in DMEE but only inputs (structures) and outputs (files). We opened the process of generation with the DMEE Trace Tool.

The user can mark certain nodes or the whole tree as “to be traced”. The selected nodes or the whole tree extensive log in XML format (Trace Log) is generated simultaneously with the output file. When the process of file creation ends, Trace Log will be stored in the database, but we didn’t stop here.

We created the separate transaction with code “dmee_trace_aba”, which implements a graphical user interface that interprets the XML Trace Log. Because this approach Trace Log can be presented to the user in an interactive and intuitive form-factor.

Enabling the DMEE Trace Tool

You enable the new tracing functionality like the breakpoint. Enter the DMEE tree in display or change mode and right-click the node that you want to analyze. Trace functionality will be enabled for the node you selected as well as for all predecessors above it in the node hierarchy. This ensures that the user receives all contexts in case, for example, condition fails in one of the predecessors.

Alternatively, user can select the whole tree for tracing. In this case, especially for larger tree and/or input data, processing can last a little longer than without tracing and consumes more system memory.

In both cases described, “tracepoint” is valid for 5 days for the user who set it.

You can set the Trace Point for single node (left) or for the whole tree (right).

Execution

As soon as the user enables the node or the tree with a tracepoint, Trace Log is being created together with file generation regardless of integration or tree type. In the other words, it does not matter if the tree is executed as a part of Payment Medium Workbench, DMEE Test Tool or other process.

The Initial Screen

The Initial Screen contains all the Trace Logs stored in the database. User can display certain Trace Log by selecting it and clicking on glasses icon in the toolbar of the application. User can also perform deletion of Trace Logs as well as importing Trace Log from the other system.

Table records themselves containing general data about stored Trace Logs like Tree ID, Tree Name, when the log was generated, who triggered the engine run, and identification about the origin of the Trace Log. Trace Log can either be generated right on the current system – “S” or it can be uploaded externally – “E”.

The initial screen of the DMEE Trace Tool

The Detail View

The Detail View is presented to the user after the selection of certain Trace Log from the Initial Screen. The layout of the detail view is very similar to DMEE transaction. It does not display the tree definition like DMEE, but the recording of „what was done“ inside the DMEE Engine.

On the left side of the screen there is a tree, which displays all the nodes that were marked with Tracepoint in the order they were processed by the engine. Also, if there are repetitions in the tree processing, the DMEE Trace Tool will display them accordingly.

On the right side of the screen the captured data are visible during the engine run. The right side is differs based on the node type.

DMEE Trace Tool: Detail view

The Main Node

The visual of the main node.

 

Besides the general information like the Tree Type, Tree ID, and so on, user can see how long it takes to generate the file using DMEE in the “Statistics” section.

Below the statistics section you can find a table that contains skipped keys of input data. As you know DMEE enables users to define key fields for a certain level, DMEE uses this information to build iterations over the levels – number of unique keys equal to number of repetitions of the level in the output file.

What we often see, based on customers’ feedback, some iterations missing from the output file. In almost all cases the problem is caused by incorrectly defined key field, often by the usage of the length and offset.

Analyzing Conditions

For analysis of conditions the DMEE Trace Tool can show you the condition evaluation tree. Each line starts with either green or red icon indicating the result of partial expression. Logical operators like AND or OR are always evaluating two expressions below them in the hierarchy. (not correct, revision is needed before the publishment.)

Each line continues with the types that are being compared, for example, “Constant = Structure Field, as the last thing actual values of the fields “1 = 2”.

Condition evaluation in the DMEE Trace Tool

Analyzing Mapping

The mapping section can be found on all mapping nodes – element, technical node, XML attribute and atom. It can provide you an insight on how the value was processed internally. It all starts with the value of the source field. Then, as you can see from the screenshot, DMEE Trace Tool provides you all important values from the conversion perspective – length, target offset and conversion function. Also, it can show you the internal type in which the value was processed. For more information about this, please read the appendix of this blog post.

The last field in this section is “Output value”, which is the input value after applying all conversions (length, t. offset, conversion function).

In DMEE Trace Tool, you can see how the value was transformed from the input value into the output value of the node

Analyzing Aggregations

From the standpoint of the engine, aggregations are calculated on the node where the value in mapped form the input data (source node for aggregation) and then the value is referred to the node where user selected the aggregation to be outputted (target node for aggregation). In DMEE Trace Tool you can find how the aggregation was calculated on every so-called source node for aggregation.

DMEE Trace Tool also highlights every source node for aggregation with yellow color.

Example of aggregations in DMEE Trace Tool

I want this!

Update 27.7.2022: SAP Note 3138271 – DMEE – Trace Tool is currently causing implementation errors, because of the delivery infrastructure problem. Please DO NOT IMPLEMENT this SAP Note.

If you would wish to be notified, when SAP Note is ready, please write a comment in the comment section below.

DMEE Trace Tool is available for all supported releases of software component SAP_ABA from following support packs:

  • SAP_ABA 75G SP 02
  • SAP_ABA 75F SP 04
  • SAP_ABA 75E SP 06
  • SAP_ABA 75D SP 09
  • SAP_ABA 75C SP 11
  • SAP_ABA 752 SP 11
  • SAP_ABA 751 SP 15
  • SAP_ABA 750 SP 25
  • SAP_ABA 740 SP 28
  • SAP_ABA 731 SP 31
  • SAP_ABA 702 SP 25
  • SAP_ABA 701 SP 25
  • SAP_ABA 700 SP 40

Wrap-up

Configuration of the DMEE can be tricky and DMEE Trace Tool is here to help you with the analysis of the tree behavior. As we learned above it can be used for the analysis of conditions, aggregations, mapping procedure and overall process of file generation (loops, missing data etc.).

If you have any questions regarding the new tool for DMEE, you can use Q&A area . You are welcome to provide feedback in the comment section bellow.

Assigned Tags

      3 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Hugo de Groot
      Hugo de Groot

      Sounds like a very useful tool! Also great to see it is made available on older releases. Thank you!

       

      Author's profile photo Samuel Lawrence
      Samuel Lawrence

      Hallo Richard,

       

      I have implemented all the notes related to DMEE Trace.

       

      While call the transaction DMEE_TRACE_ABA, I got an error message that  Field  "CON_LENGTH"  is unknown (that´s in Interface-Section IF_DMEE_FILE_ABA) row 7.

       

      Could you please help me out?

       

      VG

      Samuel

      Author's profile photo Richard Kuba
      Richard Kuba
      Blog Post Author

      Dear Samuel,

      thank you for your comment and please accept my apology for the implementation problem you face.

      The constant con_length was most likely implemented at the very end of the interface if_dmee_file_aba.

      As a temporary solution, please open if_dmee_file_aba in the code editor and move the definition of constant con_length:

      constants:
            con_length type int4 value 1500.

      from the very end of the file to the top - under the "public" section.

      We are working together with colleagues from snote to solve this issue which is happening on certain codelines.

      I will let you know, when the solution is finalized.

      Best regards,
      Richard