Form Actions - Stateless Forms
By default, each form created in Zoho Creator will have a table generated at the back-end to store data submitted through the form. For example, when you create a Contacts form, a Contacts table is created and all data submitted through this form will be stored in this table. Zoho Creator supports creating stateless forms with scriptable buttons, that does not generate a table at the backend. (i.e) w hen you click on the form button, the entered data is not automatically added to the Table as an inserted record. Instead, you can add custom buttons and write deluge script in the "on click" event of the form. The scripts act on the "on click" button that can be programmed to do anything you can do in Deluge Script. This gives you the flexibility of storing the entered data into any field of any record of any Table in Zoho Creator. You can even use it to retrieve data from any field in any record of any Table in Zoho Creator.
Some common usage of the stateless forms are listed below:
- Create Web Forms: Stateless Forms can act as web forms that are embedded in a website. This form data can be submitted to any service or used to update a record in another form/application, without persisting data in Zoho Creator. The Deluge Get URL and Post URL task can be used to get/post data to external websites or other Zoho Creator applications.
- Create multiple forms updating data in a single table: Since a Stateless Form is by definition not joined with any particular Table, you can design different Stateless Forms each with a different subset of fields in a particular Table. For example, you can create one Stateless Form for the role-technician and another Stateless form for the role-manager and share it to the respective roles but persist the data submitted from all the Stateless forms in the same main table. This enables different users within the same organization use the different Stateless Forms to perform their assigned tasks without having access to the other fields in the Table.
- Create user settings dialog for the real time apps: Create a stateless form to enable users to customize all the properties of an application in one single form. For example, add a Settings link to your app that will fetch the record for the current logged in user and set the values in the on load of the stateless form. Users can modify their settings and submit the form. This form will then do an update record in the main form.
- Fetch and Display information from other forms: Create a stateless form to fetch and display information from other Zoho Creator forms or from other services, based on the form input. For instance, assume you have a Status form in your application to display the status of a particular work order. When a user inputs his work order number and clicks on the form button, the status must be displayed. In this case, it is not necessary to store the form data. You can create a Status form and write on click form action to display the Status in a Note field.
- Generate dynamic HTML views: Create stateless forms to generate dynamic HTML views by passing the form data as parameters to the view. For example, specify the search criteria to display records from a Contacts Management application, specify the Month and Year to display records pertaining to a specific period.
- Execute send mail: Create a stateless form to execute any Deluge task like send mail, on click of the form button. In addition to on click form actions, you can also execute On user input field action scripts.
Creating a Stateless Form
To create a stateless form without data storage,
- Select Form -> New Form option. In the New Formdialog.
- Deselect the option Data to be stored in Zoho Creator
- Specify the Form name and click Done to create the stateless form.
- Drag-n-drop the required Fields to the form.
- Click on the Add a Button link, to add Submit, Reset and Custombuttons to the form, by specifying the button name and type.
- Custom button: On mouse click, invokes the "On Click" action of the button.
- Submit button: On mouse click or if Enter Key is pressed, invokes the "On Click" action of the button.
- Reset button: On mouse click, form is taken to the initial state. "On Click" action cannot be configured for reset button.
- Click Done to add the button to the form.
- To perform any action on click of the form button, add the required deluge script in the Form Actions -> < Button Name> -> on click block of the Script tab. For example, if you add a custom button named "Add", write the Deluge script within Form Actions -> Add -> on click block of the script tab.
- Click Save script to update the script.
- Click on Access this application and enter data to the stateless form. On click of the form button, the script added to the "on click" block will be executed.
Assume you have created a Contact form to enter the contact details of your friends like Name , Address , Contact Number and Email id. Now you want to update some existing records which has the address / contact number field as blank. To do this, you can create a stateless form to fetch and display data from the Contact form (main form), enter the required details and update this record in the Contact form.
- Create a stateless form with EmailId as lookup field from the Contact form and other required fields, as shown in the screen-shot given below:
- Add on user input script to the Email_Id field of the stateless form, to fetch the corresponding record from the Contact form and display it in the current form. Refer on user input script highlighted in the Form Definition given below.
- When a Email id is selected, the corresponding record is fetched from the Contact form and displayed in the statelessContact Form, as shown in the screen-shot below.
- Update the form with required values and click on the Update button. The modified values will be updated in the Contact form. This is achieved by writing action script to update the record in the Contact form. The script is added to the Form Actions -> Update -> on click block Refer the code highlighted in the Form Definition given below.
Form Definition of the stateless Contact form with on click action script:
store data in zc = false
displayname = "EmailId"
type = picklist
values = Contact.Email_Id
on user input
r = ContactForm [Email_Id == input.Lookup_1];
input.Address = r.Address;
input.Contact_Number = r.Contact_Number;
input.Name = r.Name;
type = text
type = textarea
displayname = "Contact Number"
type = number
width = 20
type = button
displayname = "Update"
r = ContactForm [Email_Id == input.Lookup_1];
r.Name = input.Name;
r.Address = input.Address;
r.Contact_Number = input.Contact_Number;
type = button
displayname = "reset"