A very quick article as I couldn't find anything on the WWW to document this error.
Why?
During a data migration, I was using a custom function to copy all the data from one app to another. The specific form was for "Leads" which contained a subform with a product line item list. If I run this code, I would get the error:
Expecting ZC_SUBFORM_250 expression found COLLECTION expression
- Expecting ZC_SUBFORM_250 expression found COLLECTION expression
LIST value cannot be assigned to 'mySubform' -- or -- COLLECTION value cannot be assigned to 'mySubform'
- LIST value cannot be assigned to 'mySubform'
- -- or --
- COLLECTION value cannot be assigned to 'mySubform'
How?
Quite simply the error is because the Creator Deluge syntax I was using to insert subform rows was wrong. Contrary to the documentation that says "This task can be used in the following events", effective as of today October 19, 2020, I have not found a place you cannot use this deluge script. The ZC_SUBFORM_250 error is because I am trying to assign the collection or list to the subform when I need to use "INSERT" twice: once to add the row to the collection, and the second time to add the collection to the subform.
Syntax for inserting a row into a subform:
// declare a variable to hold the collection of rows <variable> = Collection(); // declaring the row <row1> = <mainForm_linkName>.<subForm_linkName>(); // assigning values for various subform fields in the row <row1>.<field_linkName> = <value>; <row1>.<field_linkName> = <value>; // insert the row into the collection <variable>.insert( <row1> ); // insert the collection into the subform on the current form input.<subForm_linkName>.insert( <variable> ); // or insert the row(s) into the subform through the record variable r_LeadDetails = Leads[ID == 1234567890]; r_LeadDetails.<subForm_linkName>.insert( <variable> );
- // declare a variable to hold the collection of rows
- <variable> = Collection();
- // declaring the row
- <row1> = <mainForm_linkName>.<subForm_linkName>();
- // assigning values for various subform fields in the row
- <row1>.<field_linkName> = <value>;
- <row1>.<field_linkName> = <value>;
- // insert the row into the collection
- <variable>.insert( <row1> );
- // insert the collection into the subform on the current form
- input.<subForm_linkName>.insert( <variable> );
- // or insert the row(s) into the subform through the record variable
- r_LeadDetails = Leads[ID == 1234567890];
- r_LeadDetails.<subForm_linkName>.insert( <variable> );
Events I have used this task which contradicts documentation:
- In a custom function
- In an Action item in Report
- In a schedule workflow
Source(s):