Recently, many customers contacted me for queries related to the Interact Flowchart Test run. In one such case, I observed that the Test run of flowchart stopped running, because of the data being inserted into the background table was greater than the table column size. In another scenario, the Interact user wanted to understand which audienceID falls under which segment. To gain this information, the user was repeatedly running the flowchart in a test run to view the result in the flowchart itself. The input data was huge and the customer did not want to reduce it. Hence, the flowchart run completion took a significant amount of time.
While designing the flowchart in Unica Interact, the developer generally test runs the flowchart to ensure that the configuration is correct. But what happens if the flowchart fails with an error? What happens to the data? Where does it get stores? They have become the common issues for which the user always seeks an answer. So, I penned down this blog, which further talks about the tables that are created in the background when a flowchart runs. It talks about what data gets stored where.
We talked about how, while executing a test run of the flowchart in the Interact session, the developers observe various error messages. All this information is stored in 4 different types of tables. When an Interact session flowchart is executed, in the background, it creates 4 types of tables in the Profile database- TESTATTR_n, TESTCOUNT_n, TESTSEG_n and TESTERROR_n tables, where _n indicates the number which is generated at run time. This number (_n) is the same for all the above tables for the same Interactive Flowchart. In the present case, Unica will generate TESTATTR_142, TESTCOUNT_142, TESTSEG_142, and TESTERROR_142.
To figure out the correct answer to the question, Why did my flowchart fail in the test run? It is crucial to understand the significance of each table for better analysis.
Test Run before executing the flowchart
The information that gets stored in the tables varies as per different environments, segments, audiences, and many other factors. For example, depending on the type of target audience the audienceID will change. It can be a customerID for an individual while remains audienceID for the household. The first table focuses on audiences.
- How to use the TESTATTR_n table?
TESTATTR_n table is created under the profile database per interactive flowchart. This table contains the result of the test run of the interactive flowchart, as displayed in Image 2. Only the audienceIDs are recorded in this table. If there are composite audienceIDs with two audienceIDs, the table will then have two columns. The maximum number of audience IDs output will depend on the configuration created in the Interaction Processes.
While running a test run, sometimes, the user will not seek to view all 1000 records. For such scenarios, he can limit the output to 15 records (like in the image below).
- How to use the TESTCOUNT_n table?
How many process boxes were involved in the flow chart configuration? Which process system failed and under which cell code? All such information is stored under TESTCOUNT_n. It is created under the profile database per interactive flowchart. The table has 5 columns. PROCESSID, CELLID, CELLCOUNT, CELLNAME, CELLCODE.
PROCESSID: The column contains the ID (Numeric data) for each process box taken into the Interactive Flowchart
CELLID : Different process boxes like Decision, Sample processes can create multiple cells from it. This column contains the IDs for each of the cells created from the Interactive Flowchart. Interaction Process, Select Process can create a maximum of one output cell. Sample Process, Decision Process, can create one or more output cells. Snapshot Process and Populate Seg Process do not contain any of the output cells.
CELLCOUNT: This column contains the count in each of the cell populated when the test run of the Interactive flowchart is done.
CELLNAME: This column contains the name of each output cell created in the Interactive flowchart after it is test run. OutPut cell names are created in the Processes box.
- How to use the TESTSEG_n table?
The flowchart creates segments. In the present case, the segment is divided into 2 groups- Male Segments & Female Segments. So which audienceID belongs to which segment? The information gets stored in TESTSEG_n. The table has the following columns – AUDIENCEID, ASSIGNED_SEGMENTID, ASSIGNED_SEGMENTNAME.
AUDIENCEID: If the data contains CustomerID as the audienceID, the name of the column will be CUSTOMERID. Its datatype will be dependent on the data type of the audienceID created in the HCL Campaign.
ASSIGNED_SEGMENTID: The column contains the IDs of the Smart Strategic Segment in which the audience ID falls.
ASSIGNED_SEGMENTNAME: The column contains the NAME of the Smart Strategic Segment in which the audience ID falls. In case, if the audienceID does not fall in any of the Smart Strategic Segment, then the value next to the audienceID remains NULL.
Understanding Errors to identify potential configuration issues
So, what is the error message with which my flowchart failed? The information on all error messages gets stored in the table TESTERROR_n.
- How to use the TESTERROR_n table?
If the test run of the interactive flowchart fails with some error message, then the respective ERRORMESSAGE, ERRORCODE, and the ID of the processes box which fails are inserted into this table.
PROCESSESID: This column has a numeric data type. It contains the ID of the processes box, which failed to run in the Interactive Flowchart.
ERRORCODE: This column contains the Error code by which the Processes box in the interactive flowchart failed to run.
ERRORMESSAGE: This column contains the description of the Error message, describing the reason by which the Processes box in the interactive flowchart failed to run.
SEQID: This is a system-generated unique field for each record inserted into the table.
Issues and Troubleshooting
But how do I troubleshoot and fix the issue? Let me take some help from an example. If the Test run of the Interactive Flowchart fails with the database error as- value too large for the column “TESTERROR_<>.””ERRORMESSAGE”.
Cause: Interactive flowchart throws the error message, which is larger than the size of the Table column “ERRORMESSAGE’ from Table TESTERROR_n table. By default, for every interactive flowchart, one TESTERROR_n table is created in the profile database. The Size of the column ERRORMESSAGE in this table is 512 bytes and if the error message is bigger than the 512, it fails with the database error as mentioned below:
Test Run Error [run id=6u2keu1n90] at row :
com.unicacorp.interact.exceptions.DataAccessException: An error was encountered (ORA-12899: value too large for column “UNICAINTERACTTR”.”TESTERROR_3900774″.”ERRORMESSAGE” (actual: 1059,maximum: 512) ) when executing the following database query: INSERT INTO UNICAINTERACTTR.TestError_3900774 (SeqID,ErrorMessage,ErrorCode,ProcessID) VALUES (?,?,?,?)
To resolve the error, the easiest way is to alter the TESTERROR_n table created for the interactive flowchart by increasing the size of ERRORMESSAGE. While designing a flowchart in an Interact, it is essential to test run them before the final execution. It helps to analyze and fix the issues at an earlier stage with the configuration. So, the next time your test run fails, just look into these 4 tables for a specific set of information.
You can always reach out to our support community, for any Unica related questions, at any time Contact Us
You can also Register on our Ideas Portal and never miss a chance to influence a product’s roadmap.