USE:
In most cases eCATT recordings will be added to test case repository to support interface postings which require manual actions (and are normally done by users). Usually these manual steps generate new business documents in SAP backend system,
and these document numbers must be passed to following interface test cases in the process chain. For this purpose the IFTT variables concept is used. Next test case, which Parent ID points back to the eCATT step, will have values passed by variables
declared during ECATT configuration object creation.
Extracting values from eCATT log
SAP eCATT stores a special log after each script execution. The logs are accessible through SECATT transaction and they contain all system responses:
Technically the log is stored in SAP system as an XML message. The native XML content can be displayed by executing function module ECATT_LOG_SHOW_PARAM_XML and entering the eCATT execution number. As already mentioned, in most cases there is a need
to pass numbers of documents created during an eCATT test case execution to next test cases. Usually standard SAP transactions return the document numbers through system messages (as presented on the screenshot). if not, it is possible to read them
during eCATT recordings (instruction GET). To fill the variable with such document number, first we need to define processing parameters for the variable. When we define the variable processor as ECATT_LOG we need to add an expath as the processing parameter.
The xpaths task is to point to the exact location of the value we want to pass in our declared variable. Take a look at some basic xpath syntax rules:
The XPath for standard SAP message should have following syntax:
/GuiScripting/ProcessedScreen/Message[Id="XX"][Number="YYY"]/ParameterZ/text(), where:
XX is a message class (like VL)
YYY is a message number (like 311)
Z is Parameter number (1,2,3,4)
The main node GuiScripting is common for all eCATT logs. Other node names are visible in the tree structure using the regular eCATT log viewer.
Example:
to fetch delivery number that was created by tcode VL01:
/GuiScripting/ProcessedScreen/Message[Id="VL"][Number="311"]/Parameter2/text()
There is also a way to log any custom variables in eCATT script by code block:
MESSAGE (MSG_1).
LOGMSG ( LOC_MESG_1 ).
ENDMESSAGE (MSG_2).
Where LOC_MESG_1 contains local variable as MSGV1:
To access it from IFTT the xpath expression should look like below:
//item[MSGID='ZZZ']/MSGV1/text()
Extracting values from eCATT export parameters
It is also possible to read values directly from eCATT export parameters. THis option is available for scripts executed locally on the same system where IFTT is installed.
For this variable processor ECATT_EXP can be used with parameter name matching eCATT export parameter: