If condition failing with expression too complex
Yes that's a known issue - see also this answer.
The solution is to store the logical expression into a variable, using a multiline statement:
else { var logicalExpression = contains(JSONDict.keys.array, "id") && contains(JSONDict.keys.array, "part_number") && contains(JSONDict.keys.array, "sales_part_number") && contains(JSONDict.keys.array, "include_in_search") logicalExpression = logicalExpression && contains(JSONDict.keys.array, "description") && contains(JSONDict.keys.array, "brand") && contains(JSONDict.keys.array, "product_group") && contains(JSONDict.keys.array, "product_design") // ... etc. if logicalExpression { }}
A little weird for such a powerful language... but it's a (hopefully temporary) trade off.