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”. For the selected nodes or the whole tree, an 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 of this approach Trace Log can be presented to the user in an interactive and intuitive form factor.
Enabling the DMEE Trace Tool
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 the whole context in case, for example, a condition fails in one of the predecessors.
Alternatively, the 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 a single node (left) or for the whole tree (right).
As soon as the user enables the node or the tree with a tracepoint, Trace Log is 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 another process.
The Initial Screen
The Initial Screen contains all the Trace Logs stored in the database. Users can display a certain Trace Log by selecting it and clicking on the glasses icon in the toolbar of the application. Users can also perform deletion of Trace Logs as well as import Trace Log from the other system.
Table records themselves contain general data about stored Trace Logs like Tree Type, Tree Name, when the log was generated, who triggered the engine run, and identification of 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 a certain Trace Log from the Initial Screen. The layout of the detail view is very similar to the 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 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, the user can see how long it took 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 – the number of unique keys equal to the number of repetitions of the level in the output file.
What we often see, based on customers’ feedback, are some iterations missing from the output file. In almost all cases the problem is caused by incorrectly defined fields, often by the usage of the length and offset.
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 the partial expression. Logical operators like AND or OR are always evaluating two expressions below them in the hierarchy.
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
The mapping section can be found on all mapping nodes – element, technical node, XML attribute, and atom. It can provide you an insight into 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 with 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.
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
From the standpoint of the engine, aggregations are calculated on the node where the value is mapped from the input data (source node for aggregation), and then the value is referred to the node where the 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!
If you want to benefit from the DMEE Trace Tool immediately, you can get it via SAP Note 3138271 – DMEE – Trace Tool.
Alternatively, DMEE Trace Tool is available for all supported releases of software component SAP_ABA from the 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
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 procedures, and the overall process of file generation (loops, missing data, etc.).
If you have any questions regarding the new tool for DMEE, you can use the Q&A area. You are welcome to provide feedback in the comment section below.
Sounds like a very useful tool! Also great to see it is made available on older releases. Thank you!
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?
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:
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.
the problem is fixed with a new version of SAP Note. Please implement the new version of SAP Note and its prerequisite.
Hope you are in good spirits!
I implmented the note and followed the instructions
I activated the trace on DMEE tree node for tree format PAYM / US_CGI_XML_CT and ran the Payment run that generates the XML in that same client
However, when I go to dmee_trace_aba, I can't see any logs but I could find the logs in dmeex_trace tcode
What is the difference between dmee_trace_aba and dmeex_trace tcodes?
Why nothing is getting logged in dmee_trace_aba in my case?
many thanks for you comment. US_CGI_XML_CT is a format tree created and modifiable in DMEEX hence the results are available in transaction DMEEX_TRACE.
Because of technical differences, it wasn't possible to have a same transaction for DMEE and DMEEX trees.
The rule is simple:
On the other hand the functionality of both trace tools is pretty similar. I wrote more about DMEEX Trace Tool is this blog post: The DMEEX Trace Tool | SAP Blogs
I hope my comment helped you clarify your questions. Let me know if you have other questions.
Thank you very much Richard, for taking time and clarifying !
When marking the last element in trace in DMEE_TRACE_ABA i got a short dump:
Category ABAP Programming Error
Runtime Errors RAISE_EXCEPTION
ABAP Program DMEETRACE_ABA
Application Component CA-GTF-CSC
Any idea what's happening?
thanks for your comment. I will need more details to analyze this issue. I sent you connection request on LinkedIn, so that we can connect in a reliable way.
I will update this comment as soon as we have the solution.