Unique id values in CustomAnswerSheet

Hello, I am currently working on generating a custom answer sheet using the CustomAnswerSheet with JSON Markup element in your system, and I’ve encountered an issue with assigning unique identifiers to rows across multiple columns.

Context:

I need to create an answer sheet with 5 columns, each referring to a different group of questions (A, B, C, D, and E). Each group contains 12 questions, such as A1, A2, …, A12 for group A, and similarly for the other groups.

The Problem:

The issue arises with the uniqueness of the row IDs. I am using the %index% variable to assign IDs to each row. While the index resets correctly within each column, it is not providing unique values across all columns. For example:

  • In column A, I have rows labeled as A1, A2, …, A12.
  • In column B, I have rows labeled as B1, B2, …, B12.

However, since %index% resets in each column, the values are not unique across the whole answer sheet. For example, I end up with multiple rows labeled “1” (e.g., A1, B1, C1, etc.), which causes issues with uniqueness and data processing.

Desired Behavior:

I would like the system to allow for the following behavior:

  • The ability to reset the index within each group (A, B, C, D, E) while ensuring that the IDs remain unique across all columns.
  • Ideally, each row could have a distinct identifier such as A1, B1, C1, etc., while still maintaining internal uniqueness for each group (in the OMR pattern we only see the %index% value and not “Row %index%”.

I’ve tried several configurations but haven’t been able to achieve the desired result. Could you kindly advise on how I can ensure unique row IDs across all columns, or whether there is a workaround available to achieve this?

I appreciate your time and assistance with this matter and look forward to your guidance

@dahernandeza

Can you please provide more details about the configurations you have tried to achieve unique row IDs across all columns in your CustomAnswerSheet?

{
“element_type”: “Template”,
“children”: [
{
“element_type”: “Page”,
“orientation”: “Horizontal”,
“rotation_point_position”: “BottomRight2”,
“children”: [
{
“element_type”: “Container”,
“name”: “Five-column layout”,
“columns_count”: 5,
“children”: [
{
“element_type”: “Block”,
“column”: 1,
“children”: [
{
“element_type”: “CustomAnswerSheet”,
“amount”: 12,
“columns_count”: 1,
“row_proportions”: [35, 65],
“children”: [
{
“element_type”: “CustomRow”,
“name”: “A_Row%index%”,
“children”: [
{
“element_type”: “Content”,
“name”: “A%index%”,
“font_size”: 6,
“align”: “center”
},
{
“element_type”: “BubbleArray”,
“name”: “A_Bubbles%index%”,
“answers_list”: [“1”, “2”, “3”, “4”, “5”, “6”],
“font_size”: 5,
“bubble_size”: “small”
}
]
}
]
}
]
},
{
“element_type”: “Block”,
“column”: 2,
“children”: [
{
“element_type”: “CustomAnswerSheet”,
“amount”: 12,
“columns_count”: 1,
“row_proportions”: [35, 65],
“children”: [
{
“element_type”: “CustomRow”,
“name”: “B_Row%index%”,
“children”: [
{
“element_type”: “Content”,
“name”: “B%index%”,
“font_size”: 6,
“align”: “center”
},
{
“element_type”: “BubbleArray”,
“name”: “B_Bubbles%index%”,
“answers_list”: [“1”, “2”, “3”, “4”, “5”, “6”],
“font_size”: 5,
“bubble_size”: “small”
}
]
}
]
}
]
},
{
“element_type”: “Block”,
“column”: 3,
“children”: [
{
“element_type”: “CustomAnswerSheet”,
“amount”: 12,
“columns_count”: 1,
“row_proportions”: [35, 65],
“children”: [
{
“element_type”: “CustomRow”,
“name”: “C_Row%index%”,
“children”: [
{
“element_type”: “Content”,
“name”: “C%index%”,
“font_size”: 6,
“align”: “center”
},
{
“element_type”: “BubbleArray”,
“name”: “C_Bubbles%index%”,
“answers_list”: [“1”, “2”, “3”, “4”, “5”, “6”],
“font_size”: 5,
“bubble_size”: “small”
}
]
}
]
}
]
},
{
“element_type”: “Block”,
“column”: 4,
“children”: [
{
“element_type”: “CustomAnswerSheet”,
“amount”: 12,
“columns_count”: 1,
“row_proportions”: [35, 65],
“children”: [
{
“element_type”: “CustomRow”,
“name”: “D_Row%index%”,
“children”: [
{
“element_type”: “Content”,
“name”: “D%index%”,
“font_size”: 6,
“align”: “center”
},
{
“element_type”: “BubbleArray”,
“name”: “D_Bubbles%index%”,
“answers_list”: [“1”, “2”, “3”, “4”, “5”, “6”],
“font_size”: 5,
“bubble_size”: “small”
}
]
}
]
}
]
},
{
“element_type”: “Block”,
“column”: 5,
“children”: [
{
“element_type”: “CustomAnswerSheet”,
“amount”: 12,
“columns_count”: 1,
“row_proportions”: [35, 65],
“children”: [
{
“element_type”: “CustomRow”,
“name”: “E_Row%index%”,
“children”: [
{
“element_type”: “Content”,
“name”: “E%index%”,
“font_size”: 6,
“align”: “center”
},
{
“element_type”: “BubbleArray”,
“name”: “E_Bubbles%index%”,
“answers_list”: [“1”, “2”, “3”, “4”, “5”, “6”],
“font_size”: 5,
“bubble_size”: “small”
}
]
}
]
}
]
}
]
}
]
}
]
}

When I assign the start_id value for each column, it works fine, but in that case, I lose the functionality that allows me to have A1, B1, C1, etc

@dahernandeza
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): OMRNET-1069

You can obtain Paid Support Services if you need support on a priority basis, along with the direct access to our Paid Support management team.

Hello, @dahernandeza

I have investigated provided template. I can recommend adding a “name” property to CustomAnswerSheet element. This name is concatenated with %index% on result’s name.

Example:

{
                                    "element_type": "CustomAnswerSheet",
                                   "name":"A_Group",
                                    "amount": 12,
                                    "columns_count": 1,
                                    "row_proportions": [35, 65],
                                    "children": [{
                                            "element_type": "CustomRow",
                                            "name": "A_Row % index % ",
                                            "children": [{
                                                    "element_type": "Content",
                                                    "name": "A % index % ",
                                                    "font_size": 6,
                                                    "align": "center"
                                                }, {
                                                    "element_type": "BubbleArray",
                                                    "name": "A_Bubbles % index % ",
                                                    "answers_list": ["1", "2", "3", "4", "5", "6"],
                                                    "font_size": 5,
                                                    "bubble_size": "small"
                                                }
                                            ]
                                        }
                                    ]
                                }

The result from the first row of this CustomAnswerSheet will be named : “A_Group_1”