Print

Expecting ZC_SUBFORM_250 expression found COLLECTION

What?
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:
copyraw
Expecting ZC_SUBFORM_250 expression found COLLECTION expression
  1.  Expecting ZC_SUBFORM_250 expression found COLLECTION expression 
Another error you may get when using the deluge script is:
copyraw
LIST value cannot be assigned to 'mySubform'
-- or --
COLLECTION value cannot be assigned to 'mySubform'
  1.  LIST value cannot be assigned to 'mySubform' 
  2.  -- or -- 
  3.  COLLECTION value cannot be assigned to 'mySubform' 
or
copyraw
expecting ZC_SUBFORM_70 expression found COLLECTION expression
  1.  expecting ZC_SUBFORM_70 expression found COLLECTION expression 

How?
Quite simply the error is because the Creator Deluge syntax I was using to insert subform rows was wrong. Contrary to what 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" method twice and not the equals sign: 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:
copyraw
// 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> );
  1.  // declare a variable to hold the collection of rows 
  2.  <variable> = Collection()
  3.   
  4.  // declaring the row 
  5.  <row1> = <mainForm_linkName>.<subForm_linkName>()
  6.   
  7.  // assigning values for various subform fields in the row 
  8.  <row1>.<field_linkName> = <value>
  9.  <row1>.<field_linkName> = <value>
  10.   
  11.  // insert the row into the collection 
  12.  <variable>.insert( <row1> )
  13.   
  14.  // insert the collection into the subform on the current form 
  15.  input.<subForm_linkName>.insert( <variable> )
  16.   
  17.  // or insert the row(s) into the subform through the record variable 
  18.  r_LeadDetails = Leads[ID == 1234567890]
  19.  r_LeadDetails.<subForm_linkName>.insert( <variable> )

Events I have used this task which contradicts documentation:
Source(s):
Category: Zoho :: Article: 730