Choose where you’d like to start

Composite fields and their usage in Deluge

Note:

  • This document is applicable only to Zoho Creator.

Overview

Composite fields are those which consist of one main field and several subfields. Take the example of Name field (a composite field), which is represented by one field, but has multiple subfields like First Name, Last Name, Prefix. and Suffix. Similarly, we have Address, URL, ImageUsers, Subform, and Lookup fields in Zoho Creator which contain subfields.

Composite fields in Zoho Creator

The following is the list of all the composite fields in Zoho Creator:

FieldSubfieldsSubfield Link Name
Name
  • Prefix
  • First Name
  • Last Name
  • Suffix
  • prefix
  • first_name
  • last_name
  • suffix

If more than one Name fields are present in the form, the link names of the subsequent name sub fields will be appended by a number starting from 1. So, if we take the example of the subfield <field>.prefix, the link name of the first such field will be <field>.prefix, the link name of the second such field will be <field>.prefix1, the link name of the third such field will be <field>.prefix2, and so on.

Address
  • Address Line 1
  • Address Line 2
  • City/District
  • State/Province
  • Postal Code
  • Country
  • Longitude
  • Latitude
  • address_line_1
  • address_line_2
  • district_city
  • state_province
  • postal_Code
  • country
  • longitude
  • ​latitude  

If more than one address fields are present in the form, the link names of the subsequent address sub fields will be appended by a number starting from 1. So, if we take the example of the subfield <field>.country, the link name of the first such field will be <field>.country, the link name of the second such field will be <field>.country1, the link name of the third such field will be <field>.country2, and so on. Similarly, for <field>address_line_1 field, the link name of the first such field will be <field>.address_line_1, the link name of the second such field will be <field>.address_line_11, the link name of the third such field will be <field>.address_line_12, and so on.

URL
  • Link Name
  • Title
           NA
Image
  • Title 
  • URL
  • title
Users
  • User Name
  • Email Address
  • User_name
  • email

The main field is listed in the list of fields which can be dragged and dropped on the form builder. The subfields are listed in the main field's properties. 

Apart from the fields mentioned in the table, there are system fields and two advanced field types (which are linked/related to a different form). These fields also contain child fields. 

Advanced composite fields in Zoho Creator:
 

FieldSubfields
SubFormThe subfields depend on the structure of the form being referenced.
LookupThe subfields depend on the structure of the form being referenced.

Composite system fields in Zoho Creator:

FieldSubfields
Added User
  • display_name
  • user_name
  • first_name
  • last_name
  • email
Modified User
  • display_name
  • user_name
  • first_name
  • last_name
  • email

Using composite fields in Deluge tasks

The following Examples are applicable to the Name and Address composite fields:

  • Add Records
     
    • Example: Creating a new record with values for Name and Address subfields.

      <variable> = insert into <form_link_name>
        [
          Added_User = zoho.loginuser
          Name.first_name = <value>
          Name.last_name = <value>
      ​    Name.prefix = <value>
          Name.suffix = <value>
          Address.address_line_1 = <value>
          Address.address_line_2 = <value>
          Address.district_city = <value>
          Address.state_province = <value>
          Address.postal_Code = <value>
          Address.country = <value>
          Address.longitude = <value>
          ​Address.latitude = <value>
        ];

       

      • The link name of the "Name" or the "Address" field can be specified directly without the subfields only when assigning it a value fetched from another "Name" or "Address" field respectively. In all other cases, the values for its sub-fields must be specified individually, as shown in the example.

  • Fetch Records
     
    • Example​: Fetching records based on a criteria containing the first name and country subfields.


      <variable> = <form_link_name> [(Name.first_name == <value>) && (Address.country == <value>)];

       

      • The link name of the "Name" or the "Address" field can be specified directly without the subfields only when comparing it with a value fetched from another "Name" or "Address" field respectively. In all other cases, the values for its sub-fields must be specified individually, as shown in the example.
      • The Name and Address fields do not work with the sort by param while fetching records. Learn more on fetch records task.

  • Update Records
     
    • Example​: Fetching records based on a criteria, and updating the first name and country subfields in that record.
       

      fetch_variable = <form_link_name> [ <criteria> ];
      fetch_variable.Name.first_name = <value>;
      fetch_variable.Address.country = <value>;

       

      • The link name of the "Name" or the "Address" field can be specified directly without the subfields only when updating it with a value fetched from another "Name" or "Address" field respectively. In all other cases, the values for its sub-fields must be specified individually, as shown in the example.
      • The update task only updates the first record in the collection. To update all the records in the collection, you can use the for each task. Learn more on update records task.

  • Delete Records
     
    • Example​: Deleting records based on a criteria containing the first name and country subfields.


      delete from <form_link_name> [(Name.first_name == <value>) && (Address.country == <value>)];

       

      • The link name of the "Name" or the "Address" field can be specified directly without the subfields only when comparing it with a value fetched from another "Name" or "Address" field respectively. In all other cases, the values for its sub-fields must be specified individually, as shown in the example.
      • Learn more on delete records task.

  • Info
     
    • Example​: Displaying the values of first name and country subfields.


      fetch_variable = <form_link_name> [<criteria>];
      ​info fetch_variable.Name.first_name;
      info fetch_variable.Address.country; 

       

      • It is not mandatory to specify the subfields when using the info task with Name or Address field. You can directly specify the fields without the subfields. Example: info.Name;
      • If a collection of records are fetched, only the first record's value is displayed.
      • Learn more on the info task.

The following Examples are applicable to the Users, Subform, and Lookup composite fields:

  • Fetch Records
     
    • Example​: Fetching records based on a criteria containing the Users, Subform, and lookup subfields.


      <variable> = <form_link_name> [(<Users_field>.User_name == <value>) && (<Subform_field>.<field> == <value>) && (<Lookup_field>.<field> == <value>)];

       

      • The Users field can have User_name or email as the subfields, both of which are not case sensitive. Learn more on fetch records task.
      • The Users field can be directly specified without the User_name subfield in the criteria. In this case, the Users field checks with the username value, and not the email.
      • The Subform field can be specified without the subfields in the criteria, in which case it must be compared with the ID of the subform record.
      • The Lookup field can be specified without the subfields in the criteria, in which case it must be compared with the ID of the linked record.
  • Info
     
    • Example​: Displaying the subfields' values of Users, Subform, and Lookup fields.


      fetch_variable = <form_link_name> [<criteria>];
      ​info <Users_field>.user_name;
      info <Users_field>.email;
      info <Subform_field>.<field>; 
      info <Lookup_field>.<field>;

       

      • Learn more on the info task.
      • The Users field can be directly specified without the User_name subfield. In this case, the Users field displays the username value, and not the email.
      • The Subform field can be specified without the subfields, in which case it returns the IDs of the subform records.
      • The Lookup field can be specified without the subfields, in which case it returns the ID of the linked record.
      • If a collection of records are fetched, only the first record's value is displayed.

The following Example is applicable to the Image composite field:

  • Info
     
    • Example​: Displaying the value of Image title subfield.


      fetch_variable = <form_link_name> [<criteria>];
      ​info fetch_variable.<Image_field>.title; 

       

      • The title subfield is case-sensitive when using it with the info task. Learn more on the info task.
      • The Image field can be specified without the title subfield, in which case the value is returned in HTML text format.
      • If a collection of records are fetched, only the first record's value is displayed.

Using composite fields with the 'input' keyword 

The input keyword is generally used to access or represent the value stored in a field.

It can be used to simply assign the value of a field to a variable. Or to assign a value to the field. For example:

<variable> = input.Email; 
input.Email = <value>;

Or it can be used in expressions in various deluge tasks.

The following are a few points to note when using it with composite fields.

  • When using it with Name or Address fields, it is mandatory to specify the subfields. When using the country subfield, the value must be one of the applicable countries in the field's properties. Otherwise, the specified value will not be considered, and instead will be set to null.
  • When using it with the Users field, you can specify the User_name and email subfields. Or you can directly specify the Users field without the subfields, in which case the User_name subfield is taken by default. However, the value specified is considered, or is taken to be true, only when the value pertains to an actual user. Please note that when using the User_name subfield, the username of the user has to be specified, and when using the email subfield, the email of the user has to be specified for it to work.
  • The URL field will work when the value is specified in a HTML format like the following:
    <a href= \"<URL>\" title = \"<TITLE>\" target = \"_blank\"><linkname></a> 
    where: title, link name and target are optional params 
    For example

    input.URL = "<a href= \"https://www.zoho.com\" title = \"Zoho webpage\" target = \"_blank\">zoho</a>"; 
  • Values of subform fields in the current form can be accessed using the row keyword.

Get Started Now

Execute