URL Level Parameters in zeroCode
 
 
 
zeroCode supports a number of URL level parameters that empower you to exercise better control over run-time behavior during data retrieval. As the name suggests, you can apply these parameters at the URI level. You can apply multiple parameters at a time by separating the conditions with the symbol &. These conditions are applicable only on the database nodes. Listed below are a few of the parameters that you can apply.
  
response__uri:
A response UDM is the page on which your UDM opens up after performing a specified action on the current UDM. The condition response__uri allows you to specify a response UDM at the URI level in any generated application. This helps you transfer control from a given page to another page of your choice or even to an external URI.
In the site root, under UDM files, you will find listed, both the custom and the auto UDM files. If you click on any UDM, it opens up a page on the right panel displaying the UDM details. Under UDM Submission, click on Edit button. This opens up an interface to edit the response UDM. A drop down list appears from which you can select a particular response UDM. You will come across the last option in this dropdown list as the “external URI”.
Select any response UDM and click on the “Next ” button. A dialog box opens up where you can specify the complete response URI, which can either be an existing UDM or an external URL. Click on the “Save” button. This sets the response UDM.
In the generated application, you can apply the parameter at the URL level. Pass the parameter using the notation: ?response__uri=
Here you can pass the value as the path for the response UDM. Once the action you perform on the current list page is over, the control will automatically shift to the response UDM you mentioned at the URL level. By doing so, you now have the choice to overwrite the response UDM as selected at the zDE level, from the generated application.
order__by__nn:
This parameter helps you gain additional sorting edge at the runtime while retrieving any data. Using this condition, you can specify an ordering sequence for sorting while retrieving content for a vector node with id nn. The value specifies a compound key for sorting. You can pass multiple values for this parameter – both positive and negative integers. Remember, a comma must separate each integer specified. The integers should denote the node ids of leaf descendants of the vector node concerned. While positive node ids represent ascending sort, the negative node ids represent descending sort.
For example, the value order__by__17=12,-4,6 implies that the contents for the vector node with Id =17 must be returned sorted first by the values of node id 12 (ascending sort), then by the values of node id 4 (descending sort) and finally by the values of node id 6 (ascending sort).
page__size__nn:
At the time of retrieving content for a vector node with id nn you can specify the number of records it must retrieve for the node. This parameter can be passed at the URL level. All you need to do is apply the correct URL, followed by the notation ?page__size__nn=x, where nn represents the node id and x represents the value you pass for the number of records to be retrieved. For example: page__size__4=24 would imply that you are trying to retrieve values for node id 4 and the number of records you want to retrieve for this node is 24. It will automatically override the number of records to be retrieved, as mentioned at the time of creation of UDM.
condition__nn:
You can use this parameter to apply the retrieval filter to any parent node with an id nn. More than one such parameter can be applied at the same time. For example you can apply Condition__2 and condition__15, both specified in the same request. In this case, both node id 2 and node id  15 are vector nodes. You can apply these parameters only on database nodes. If you have already applied a predicate at a particular node, the parameter you pass also gets and-ed with the condition you have applied earlier during creation of the Predicate. This parameter acts like a where_clause that you can pass at the URL level.
For example you may need to retrieve data pertaining to a particular project undertaken by your company.  Say your database contains, among others,  a table called "Projects" which has several records containing the list of projects. Your application created on the zDE has a list UDM called "Projects" with a vector node that represents this table. This vector node has id=1. The list UDM contains the list of projects and you need to retrieve details of only one project from this list of projects. Say the particular project for which you need to retrieve details is called Delay Tracking System and the  id associated with this project in the Projects table is 106. To retrieve this data you need to pass the parameter, the notation for which is as follows: ?condition__1=Projects.id=106. Note that in this parameter, Projects refers to the table name and id=106 refers to the record, Delay tracking System which has id=106. This parameter will retrieve the data only for the project called Delay Tracking System. 
Here's another example: Let's say you have an auto/list UDM for listing customers, you could list just those in, say, California via the URL, as shown below:
http://192.168.0.7:42012/zcSite/testEtailer/auto/list/Customer.html?condition__1=customer.billing_address_id%20=%20address.id%20and%20address.state_id%20=us_state.id%20and%20us_state.abbreviation%20=%20'CA'
While it may be inconvenient to remember a long URL such as this, a better idea would be to POST from a form, so that the query doesn't show up in the address bar.
page__number:
Any list page that has one or multiple pages can now be accessed directly through the browser from any location in the site (your generated application). You can do this by passing a parameter page__number with the URL and it will display the corresponding page. The exact notation for using this parameter is http://....anything.html?page__number=n where “n” is the particular page number that you want to access. The corresponding page will be retrieved and displayed.  This gives you the additional advantage of accessing a particular page directly through the URL, apart from being able to access it through the paging links provided in the respective list UDMs. The page number passed as part of the parameter enables retrieval of the relevant page. This parameter is used by the links in the paging ribbon.
display__mode:
You can use this parameter to dynamically select columns of a vector node that need to be displayed. Pass this parameter with the URL by specifying the list of leaf children associated with any vector node. You need to make the different leaf nodes you include in the parameter, comma-separated. The resultant page will display the data entered against those particular leaf nodes only.
For example, suppose the UDM you are retrieving contains a vector node called “Address” that has leaf children with ids 2, 3, 4, 5, 6, 7 etc.  The screenshot below displays the vector node and its leaf children.
Suppose then, that the UDM designer has designated only the leaves 3, 4, 5 and 7 as being visible.  Node id=6 is not visible. Passing the parameter  using notation ?display__mode=3, 4, 6 causes the columns associated with leaf nodes 3 (Street Address) and 4 (Address Line 2) only to be visible. The column corresponding to node 6 (zip) does not get displayed. You can view the result in the screenshot below.
Note that if display__mode is not specified, the UDM defaults to its usual behavior, displaying the columns according to their specification in the UDM. Note also that the visibility specified in the UDM overrides that in the parameter; for instance, the above example specifies node 6 in the display__mode parameter, but since the UDM has designated this leaf as not being visible, the output will not display this particular column.