{hidden}
DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY, UNLESS YOU KNOW WHAT YOU'RE DOING.
		THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO EXTRACT CHANGES FROM THE PAGE AND MERGE THEM BACK INTO SERVOY SOURCE{hidden}
{sub-section:description|text=}{sub-section}\\ 

{table:id=|class=servoy sReturnTypes}{tr:style=height: 30px;}{th}Return Types{th}{tr}{tr}{td}{span:class=sWordList}[DEFAULTS]{span}{span:class=sWordList}[JSBean]{span}{span:class=sWordList}[JSButton]{span}{span:class=sWordList}[JSCalendar]{span}{span:class=sWordList}[JSChecks]{span}{span:class=sWordList}[JSCombobox]{span}{span:class=sWordList}[JSComponent]{span}{span:class=sWordList}[JSField]{span}{span:class=sWordList}[JSFooter]{span}{span:class=sWordList}[JSForm]{span}{span:class=sWordList}[JSHeader]{span}{span:class=sWordList}[JSInsetList]{span}{span:class=sWordList}[JSLabel]{span}{span:class=sWordList}[JSList]{span}{span:class=sWordList}[JSMethod]{span}{span:class=sWordList}[JSPassword]{span}{span:class=sWordList}[JSRadios]{span}{span:class=sWordList}[JSText]{span}{span:class=sWordList}[JSTextArea]{span}{span:class=sWordList}[JSTitle]{span}{span:class=sWordList}[JSValueList]{span}{span:class=sWordList}[JSVariable]{span}{td}{tr}{table}\\ 

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[JSForm]{td}{td}[#getForm]\(name)
Gets the specified form object and returns information about the form (see JSForm node).{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]\[]{td}{td}[#getForms]\()
Get an array of all forms.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]\[]{td}{td}[#getForms]\(datasource)
Get an array of forms, that are all based on datasource/servername.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]\[]{td}{td}[#getForms]\(server, tablename)
Get an array of forms, that are all based on datasource/servername and tablename.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#getGlobalMethod]\(scopeName, name)
Gets an existing global method by the specified name.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]\[]{td}{td}[#getGlobalMethods]\()
The list of all global methods.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]\[]{td}{td}[#getGlobalMethods]\(scopeName)
The list of all global methods.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]{td}{td}[#getGlobalVariable]\(scopeName, name)
Gets an existing global variable by the specified name.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]\[]{td}{td}[#getGlobalVariables]\()
Gets an array of all global variables.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]\[]{td}{td}[#getGlobalVariables]\(scopeName)
Gets an array of all global variables.{td}{tr}{tbody}{tbody}{tr}{td}[JSList]{td}{td}[#getListForm]\(formName)
Returns an existing list form.{td}{tr}{tbody}{tbody}{tr}{td}[JSList]\[]{td}{td}[#getListForms]\()
Get an array of all list\-forms.{td}{tr}{tbody}{tbody}{tr}{td}[String]\[]{td}{td}[#getScopeNames]\()
Gets an array of all scope names used.{td}{tr}{tbody}{tbody}{tr}{td}[JSValueList]{td}{td}[#getValueList]\(name)
Gets an existing valuelist by the specified name and returns a JSValueList Object that can be assigned to a field.{td}{tr}{tbody}{tbody}{tr}{td}[JSValueList]\[]{td}{td}[#getValueLists]\()
Gets an array of all valuelists for the currently active solution.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#newForm]\(name, dataSource)
Creates a new JSForm Object.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#newForm]\(name, dataSource, styleName, show_in_menu, width, height)
Creates a new JSForm Object.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#newForm]\(name, serverName, tableName, styleName, show_in_menu, width, height)
Creates a new JSForm Object.{td}{tr}{tbody}{tbody}{tr}{td}[JSMethod]{td}{td}[#newGlobalMethod]\(scopeName, code)
Creates a new global method with the specified code in a scope.{td}{tr}{tbody}{tbody}{tr}{td}[JSVariable]{td}{td}[#newGlobalVariable]\(scopeName, name, type)
Creates a new global variable with the specified name and number type.{td}{tr}{tbody}{tbody}{tr}{td}[JSList]{td}{td}[#newListForm]\(formName, dataSource, textDataProviderID)
Creates a new list form, similar to an inset list but without the inset list's header and relation.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeForm]\(name)
Removes the specified form during the persistent connected client session.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeGlobalMethod]\(scopeName, name)
Removes the specified global method.{td}{tr}{tbody}{tbody}{tr}{td}[Boolean]{td}{td}[#removeGlobalVariable]\(scopeName, name)
Removes the specified global variable.{td}{tr}{tbody}{tbody}{tr}{td}[JSForm]{td}{td}[#revertForm]\(name)
Reverts the specified form to the original (blueprint) version of the form; will result in an exception error if the form is not an original form.{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=getForm-String|class=node}{tr:id=name}{td}h6.getForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]{span}{span:id=iets|style=float: left; font-weight: bold;}getForm{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getForm-String_des|trigger=button|text=}{sub-section}{sub-section:getForm-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getForm-String_snc|trigger=button|text=}{sub-section}{sub-section:getForm-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getForm-String_prs|trigger=button|text=}{sub-section}{sub-section:getForm-String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getForm-String_ret|trigger=button|text=}{sub-section}{sub-section:getForm-String_ret|trigger=none|class=sIndent}[JSForm] -- a JSForm{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getForm-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForm-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getForm-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForm-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getForm-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForm-String_sam|trigger=none}{code:language=javascript}
var myForm = solutionModel.getForm('existingFormName');
//get the style of the form (for all other properties see JSForm node)
var styleName = myForm.styleName;
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getForms|class=node}{tr:id=name}{td}h6.getForms{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getForms{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getForms_des|trigger=button|text=}{sub-section}{sub-section:getForms_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getForms_snc|trigger=button|text=}{sub-section}{sub-section:getForms_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getForms_prs|trigger=button|text=}{sub-section}{sub-section:getForms_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getForms_ret|trigger=button|text=}{sub-section}{sub-section:getForms_ret|trigger=none|class=sIndent}[JSForm]\[] -- an array of JSForm type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getForms_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getForms_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getForms_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms_sam|trigger=none}{code:language=javascript}
var forms = solutionModel.getForms()
for (var i in forms)
	application.output(forms[i].name)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getForms-String|class=node}{tr:id=name}{td}h6.getForms{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getForms{span}{span:id=iets|style=float: left;}\(datasource){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getForms-String_des|trigger=button|text=}{sub-section}{sub-section:getForms-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getForms-String_snc|trigger=button|text=}{sub-section}{sub-section:getForms-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getForms-String_prs|trigger=button|text=}{sub-section}{sub-section:getForms-String_prs|trigger=none|class=sIndent}\{[String]} datasource -- the datasource or servername
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getForms-String_ret|trigger=button|text=}{sub-section}{sub-section:getForms-String_ret|trigger=none|class=sIndent}[JSForm]\[] -- an array of JSForm type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getForms-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getForms-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getForms-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_sam|trigger=none}{code:language=javascript}
var forms = solutionModel.getForms(datasource)
for (var i in forms)
	application.output(forms[i].name)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getForms-String_String|class=node}{tr:id=name}{td}h6.getForms{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getForms{span}{span:id=iets|style=float: left;}\(server, tablename){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getForms-String_String_des|trigger=button|text=}{sub-section}{sub-section:getForms-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getForms-String_String_snc|trigger=button|text=}{sub-section}{sub-section:getForms-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getForms-String_String_prs|trigger=button|text=}{sub-section}{sub-section:getForms-String_String_prs|trigger=none|class=sIndent}\{[String]} server -- the datasource or servername
\{[String]} tablename -- the tablename
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getForms-String_String_ret|trigger=button|text=}{sub-section}{sub-section:getForms-String_String_ret|trigger=none|class=sIndent}[JSForm]\[] -- an array of JSForm type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getForms-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getForms-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getForms-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForms-String_String_sam|trigger=none}{code:language=javascript}
var forms = solutionModel.getForms(datasource,tablename)
for (var i in forms)
	application.output(forms[i].name)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalMethod-String_String|class=node}{tr:id=name}{td}h6.getGlobalMethod{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalMethod{span}{span:id=iets|style=float: left;}\(scopeName, name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getGlobalMethod-String_String_des|trigger=button|text=}{sub-section}{sub-section:getGlobalMethod-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getGlobalMethod-String_String_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalMethod-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getGlobalMethod-String_String_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalMethod-String_String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- the scope in which the method is searched
\{[String]} name -- the name of the specified global method
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getGlobalMethod-String_String_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalMethod-String_String_ret|trigger=none|class=sIndent}[JSMethod] -- a JSMethod{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getGlobalMethod-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethod-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getGlobalMethod-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethod-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getGlobalMethod-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethod-String_String_sam|trigger=none}{code:language=javascript}
var method = solutionModel.getGlobalMethod('globals', 'nameOfGlobalMethod'); 
if (method != null) application.output(method.code);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalMethods|class=node}{tr:id=name}{td}h6.getGlobalMethods{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalMethods{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getGlobalMethods_des|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getGlobalMethods_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getGlobalMethods_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getGlobalMethods_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods_ret|trigger=none|class=sIndent}[JSMethod]\[] -- an array of JSMethod type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getGlobalMethods_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getGlobalMethods_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getGlobalMethods_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods_sam|trigger=none}{code:language=javascript}
var methods = solutionModel.getGlobalMethods('globals'); 
for (var x in methods) 
	application.output(methods[x].getName());
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalMethods-String|class=node}{tr:id=name}{td}h6.getGlobalMethods{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalMethods{span}{span:id=iets|style=float: left;}\(scopeName){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getGlobalMethods-String_des|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getGlobalMethods-String_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getGlobalMethods-String_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods-String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- limit to global methods of specified scope name
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getGlobalMethods-String_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods-String_ret|trigger=none|class=sIndent}[JSMethod]\[] -- an array of JSMethod type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getGlobalMethods-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getGlobalMethods-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getGlobalMethods-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalMethods-String_sam|trigger=none}{code:language=javascript}
var methods = solutionModel.getGlobalMethods('globals'); 
for (var x in methods) 
	application.output(methods[x].getName());
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalVariable-String_String|class=node}{tr:id=name}{td}h6.getGlobalVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalVariable{span}{span:id=iets|style=float: left;}\(scopeName, name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getGlobalVariable-String_String_des|trigger=button|text=}{sub-section}{sub-section:getGlobalVariable-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getGlobalVariable-String_String_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalVariable-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getGlobalVariable-String_String_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalVariable-String_String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- the scope in which the variable is searched
\{[String]} name -- the specified name of the global variable
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getGlobalVariable-String_String_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalVariable-String_String_ret|trigger=none|class=sIndent}[JSVariable] -- a JSVariable{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getGlobalVariable-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariable-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getGlobalVariable-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariable-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getGlobalVariable-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariable-String_String_sam|trigger=none}{code:language=javascript}
var globalVariable = solutionModel.getGlobalVariable('globals', 'globalVariableName');
application.output(globalVariable.name + " has the default value of " + globalVariable.defaultValue);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalVariables|class=node}{tr:id=name}{td}h6.getGlobalVariables{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalVariables{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getGlobalVariables_des|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getGlobalVariables_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getGlobalVariables_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getGlobalVariables_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables_ret|trigger=none|class=sIndent}[JSVariable]\[] -- an array of JSVariable type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getGlobalVariables_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getGlobalVariables_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getGlobalVariables_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables_sam|trigger=none}{code:language=javascript}
var globalVariables = solutionModel.getGlobalVariables('globals');
for (var i in globalVariables)
	application.output(globalVariables[i].name + " has the default value of " + globalVariables[i].defaultValue);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getGlobalVariables-String|class=node}{tr:id=name}{td}h6.getGlobalVariables{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getGlobalVariables{span}{span:id=iets|style=float: left;}\(scopeName){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getGlobalVariables-String_des|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getGlobalVariables-String_snc|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getGlobalVariables-String_prs|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables-String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- limit to global vars of specified scope name
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getGlobalVariables-String_ret|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables-String_ret|trigger=none|class=sIndent}[JSVariable]\[] -- an array of JSVariable type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getGlobalVariables-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getGlobalVariables-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getGlobalVariables-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getGlobalVariables-String_sam|trigger=none}{code:language=javascript}
var globalVariables = solutionModel.getGlobalVariables('globals');
for (var i in globalVariables)
	application.output(globalVariables[i].name + " has the default value of " + globalVariables[i].defaultValue);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getListForm-|class=node}{tr:id=name}{td}h6.getListForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSList]{span}{span:id=iets|style=float: left; font-weight: bold;}getListForm{span}{span:id=iets|style=float: left;}\(formName){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getListForm-_des|trigger=button|text=}{sub-section}{sub-section:getListForm-_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getListForm-_snc|trigger=button|text=}{sub-section}{sub-section:getListForm-_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getListForm-_prs|trigger=button|text=}{sub-section}{sub-section:getListForm-_prs|trigger=none|class=sIndent}formName -- the form's name.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getListForm-_ret|trigger=button|text=}{sub-section}{sub-section:getListForm-_ret|trigger=none|class=sIndent}[JSList] -- the existing list form, or null if it does not exist.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getListForm-_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForm-_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getListForm-_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForm-_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getListForm-_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForm-_sam|trigger=none}{code:language=javascript}
var list = solutionModel.getListForm('created_by_sm_2');
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getListForms|class=node}{tr:id=name}{td}h6.getListForms{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSList]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getListForms{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getListForms_des|trigger=button|text=}{sub-section}{sub-section:getListForms_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getListForms_snc|trigger=button|text=}{sub-section}{sub-section:getListForms_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getListForms_prs|trigger=button|text=}{sub-section}{sub-section:getListForms_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getListForms_ret|trigger=button|text=}{sub-section}{sub-section:getListForms_ret|trigger=none|class=sIndent}[JSList]\[] -- an array of IBaseSHList type elements{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getListForms_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForms_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getListForms_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForms_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getListForms_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getListForms_sam|trigger=none}{code:language=javascript}
var forms = solutionModel.getListForms()
for (var i in forms)
	application.output(forms[i].name)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getScopeNames|class=node}{tr:id=name}{td}h6.getScopeNames{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getScopeNames{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getScopeNames_des|trigger=button|text=}{sub-section}{sub-section:getScopeNames_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getScopeNames_snc|trigger=button|text=}{sub-section}{sub-section:getScopeNames_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getScopeNames_prs|trigger=button|text=}{sub-section}{sub-section:getScopeNames_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getScopeNames_ret|trigger=button|text=}{sub-section}{sub-section:getScopeNames_ret|trigger=none|class=sIndent}[String]\[] -- an array of String scope names{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getScopeNames_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getScopeNames_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getScopeNames_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getScopeNames_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getScopeNames_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getScopeNames_sam|trigger=none}{code:language=javascript}
var scopeNames = solutionModel.getScopeNames();
for (var name in scopeNames)
	application.output(name);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getValueList-String|class=node}{tr:id=name}{td}h6.getValueList{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSValueList]{span}{span:id=iets|style=float: left; font-weight: bold;}getValueList{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getValueList-String_des|trigger=button|text=}{sub-section}{sub-section:getValueList-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getValueList-String_snc|trigger=button|text=}{sub-section}{sub-section:getValueList-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getValueList-String_prs|trigger=button|text=}{sub-section}{sub-section:getValueList-String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the valuelist
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:getValueList-String_ret|trigger=button|text=}{sub-section}{sub-section:getValueList-String_ret|trigger=none|class=sIndent}[JSValueList] -- a JSValueList object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getValueList-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueList-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getValueList-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueList-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getValueList-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueList-String_sam|trigger=none}{code:language=javascript}
var myValueList = solutionModel.getValueList('myValueListHere')
//now set the valueList property of your field
//myField.valuelist = myValueList
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getValueLists|class=node}{tr:id=name}{td}h6.getValueLists{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSValueList]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getValueLists{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getValueLists_des|trigger=button|text=}{sub-section}{sub-section:getValueLists_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getValueLists_snc|trigger=button|text=}{sub-section}{sub-section:getValueLists_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prs}{td}*Parameters*\\{sub-section:getValueLists_prs|trigger=button|text=}{sub-section}{sub-section:getValueLists_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getValueLists_ret|trigger=button|text=}{sub-section}{sub-section:getValueLists_ret|trigger=none|class=sIndent}[JSValueList]\[] -- an array of JSValueList objects{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getValueLists_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueLists_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getValueLists_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueLists_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getValueLists_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueLists_sam|trigger=none}{code:language=javascript}
var valueLists = solutionModel.getValueLists();
if (valueLists != null && valueLists.length != 0)
	for (var i in valueLists)
		application.output(valueLists[i].name);
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newForm-String_String|class=node}{tr:id=name}{td}h6.newForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]{span}{span:id=iets|style=float: left; font-weight: bold;}newForm{span}{span:id=iets|style=float: left;}\(name, dataSource){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newForm-String_String_des|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newForm-String_String_snc|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newForm-String_String_prs|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form
\{[String]} dataSource -- the specified name of the datasource for the specified table
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newForm-String_String_ret|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_ret|trigger=none|class=sIndent}[JSForm] -- a new JSForm object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newForm-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newForm-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newForm-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_sam|trigger=none}{code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'db:/my_server/my_table')
//now you can add stuff to the form (under JSForm node)
//add a label
myForm.newLabel('Name', 1)
//add a "normal" text entry field
myForm.newTextField('dataProviderNameHere', 2)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newForm-String_String_String_Boolean_Number_Number|class=node}{tr:id=name}{td}h6.newForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]{span}{span:id=iets|style=float: left; font-weight: bold;}newForm{span}{span:id=iets|style=float: left;}\(name, dataSource, styleName, show_in_menu, width, height){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newForm-String_String_String_Boolean_Number_Number_des|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_Boolean_Number_Number_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_snc|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_Boolean_Number_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_prs|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_Boolean_Number_Number_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form
\{[String]} dataSource -- the specified name of the datasource for the specified table
\{[String]} styleName -- the specified style
\{[Boolean]} show_in_menu -- if true show the name of the new form in the menu; or false for not showing
\{[Number]} width -- the width of the form in pixels
\{[Number]} height -- the height of the form in pixels
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_ret|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_Boolean_Number_Number_ret|trigger=none|class=sIndent}[JSForm] -- a new JSForm object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_Boolean_Number_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_Boolean_Number_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newForm-String_String_String_Boolean_Number_Number_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_Boolean_Number_Number_sam|trigger=none}{code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'db:/my_server/my_table', 'myStyleName', false, 800, 600)
//now you can add stuff to the form (under JSForm node)
//add a label
myForm.newLabel('Name', 20, 20, 120, 30)
//add a "normal" text entry field
myForm.newTextField('dataProviderNameHere', 140, 20, 140,20)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newForm-String_String_String_String_Boolean_Number_Number|class=node}{tr:id=name}{td}h6.newForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]{span}{span:id=iets|style=float: left; font-weight: bold;}newForm{span}{span:id=iets|style=float: left;}\(name, serverName, tableName, styleName, show_in_menu, width, height){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_des|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_snc|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_prs|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form
\{[String]} serverName -- the specified name of the server for the specified table
\{[String]} tableName -- the specified name of the table
\{[String]} styleName -- the specified style
\{[Boolean]} show_in_menu -- if true show the name of the new form in the menu; or false for not showing
\{[Number]} width -- the width of the form in pixels
\{[Number]} height -- the height of the form in pixels
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_ret|trigger=button|text=}{sub-section}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_ret|trigger=none|class=sIndent}[JSForm] -- a new JSForm object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newForm-String_String_String_String_Boolean_Number_Number_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newForm-String_String_String_String_Boolean_Number_Number_sam|trigger=none}{code:language=javascript}
var myForm = solutionModel.newForm('newForm', 'my_server', 'my_table', 'myStyleName', false, 800, 600)
//With only a datasource:
//var myForm = solutionModel.newForm('newForm', datasource, 'myStyleName', false, 800, 600)
//now you can add stuff to the form (under JSForm node)
//add a label
myForm.newLabel('Name', 20, 20, 120, 30)
//add a "normal" text entry field
myForm.newTextField('dataProviderNameHere', 140, 20, 140,20)
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newGlobalMethod-String_String|class=node}{tr:id=name}{td}h6.newGlobalMethod{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSMethod]{span}{span:id=iets|style=float: left; font-weight: bold;}newGlobalMethod{span}{span:id=iets|style=float: left;}\(scopeName, code){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newGlobalMethod-String_String_des|trigger=button|text=}{sub-section}{sub-section:newGlobalMethod-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newGlobalMethod-String_String_snc|trigger=button|text=}{sub-section}{sub-section:newGlobalMethod-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newGlobalMethod-String_String_prs|trigger=button|text=}{sub-section}{sub-section:newGlobalMethod-String_String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- the scope in which the method is created
\{[String]} code -- the specified code for the global method
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newGlobalMethod-String_String_ret|trigger=button|text=}{sub-section}{sub-section:newGlobalMethod-String_String_ret|trigger=none|class=sIndent}[JSMethod] -- a JSMethod object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newGlobalMethod-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalMethod-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newGlobalMethod-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalMethod-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newGlobalMethod-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalMethod-String_String_sam|trigger=none}{code:language=javascript}
var method = solutionModel.newGlobalMethod('globals', 'function myglobalmethod(){foundset.newRecord()}')
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newGlobalVariable-String_String_Number|class=node}{tr:id=name}{td}h6.newGlobalVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSVariable]{span}{span:id=iets|style=float: left; font-weight: bold;}newGlobalVariable{span}{span:id=iets|style=float: left;}\(scopeName, name, type){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newGlobalVariable-String_String_Number_des|trigger=button|text=}{sub-section}{sub-section:newGlobalVariable-String_String_Number_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newGlobalVariable-String_String_Number_snc|trigger=button|text=}{sub-section}{sub-section:newGlobalVariable-String_String_Number_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newGlobalVariable-String_String_Number_prs|trigger=button|text=}{sub-section}{sub-section:newGlobalVariable-String_String_Number_prs|trigger=none|class=sIndent}\{[String]} scopeName -- the scope in which the variable is created
\{[String]} name -- the specified name for the global variable
\{[Number]} type -- the specified number type for the global variable
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newGlobalVariable-String_String_Number_ret|trigger=button|text=}{sub-section}{sub-section:newGlobalVariable-String_String_Number_ret|trigger=none|class=sIndent}[JSVariable] -- a JSVariable object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newGlobalVariable-String_String_Number_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalVariable-String_String_Number_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newGlobalVariable-String_String_Number_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalVariable-String_String_Number_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newGlobalVariable-String_String_Number_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newGlobalVariable-String_String_Number_sam|trigger=none}{code:language=javascript}
var myGlobalVariable = solutionModel.newGlobalVariable('globals', 'newGlobalVariable', JSVariable.INTEGER); 
myGlobalVariable.defaultValue = 12;
//myGlobalVariable.defaultValue = "{a:'First letter',b:'Second letter'}" // an js object, type must be media.
//myGlobalVariable.defaultValue = '"some text"'; // Use two pairs of quotes if you want to assign a String as default value.
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=newListForm-String_String_String|class=node}{tr:id=name}{td}h6.newListForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSList]{span}{span:id=iets|style=float: left; font-weight: bold;}newListForm{span}{span:id=iets|style=float: left;}\(formName, dataSource, textDataProviderID){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:newListForm-String_String_String_des|trigger=button|text=}{sub-section}{sub-section:newListForm-String_String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:newListForm-String_String_String_snc|trigger=button|text=}{sub-section}{sub-section:newListForm-String_String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:newListForm-String_String_String_prs|trigger=button|text=}{sub-section}{sub-section:newListForm-String_String_String_prs|trigger=none|class=sIndent}\{[String]} formName -- the new form's name.
\{[String]} dataSource -- the list will be populated based on this datasource.
\{[String]} textDataProviderID -- can be null; it's a convenience argument for setting the dataprovider that will be used to populate the main text area of the list's items.
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:newListForm-String_String_String_ret|trigger=button|text=}{sub-section}{sub-section:newListForm-String_String_String_ret|trigger=none|class=sIndent}[JSList] -- the newly created list form.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:newListForm-String_String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newListForm-String_String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:newListForm-String_String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newListForm-String_String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:newListForm-String_String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:newListForm-String_String_String_sam|trigger=none}{code:language=javascript}
var f = solutionModel.newForm("created_by_sm_1","udm","contacts",null,false,100,380);
// create a button to go to it on the main form
b = f.newButton("Show created list form",0,9,10,10,
	f.newMethod("function showListForm() { forms.created_by_sm_2.controller.show(); }"));
// create the actual list form
var list = f.createListForm('created_by_sm_2', databaseManager.getDataSource("udm","contacts"),"name_first");
list.onAction = solutionModel.getForm('created_by_sm_2').newMethod("function goBack() { history.back(); }");
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeForm-String|class=node}{tr:id=name}{td}h6.removeForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeForm{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:removeForm-String_des|trigger=button|text=}{sub-section}{sub-section:removeForm-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeForm-String_snc|trigger=button|text=}{sub-section}{sub-section:removeForm-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeForm-String_prs|trigger=button|text=}{sub-section}{sub-section:removeForm-String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form to remove
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeForm-String_ret|trigger=button|text=}{sub-section}{sub-section:removeForm-String_ret|trigger=none|class=sIndent}[Boolean] -- true is form has been removed, false if form could not be removed{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeForm-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeForm-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeForm-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeForm-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeForm-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeForm-String_sam|trigger=none}{code:language=javascript}
//first remove it from the current history, to destroy any active form instance
var success = history.removeForm('myForm')
//removes the named form from this session, please make sure you called history.remove() first
if(success)
{
	solutionModel.removeForm('myForm')
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeGlobalMethod-String_String|class=node}{tr:id=name}{td}h6.removeGlobalMethod{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeGlobalMethod{span}{span:id=iets|style=float: left;}\(scopeName, name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:removeGlobalMethod-String_String_des|trigger=button|text=}{sub-section}{sub-section:removeGlobalMethod-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeGlobalMethod-String_String_snc|trigger=button|text=}{sub-section}{sub-section:removeGlobalMethod-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeGlobalMethod-String_String_prs|trigger=button|text=}{sub-section}{sub-section:removeGlobalMethod-String_String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- the scope in which the method is declared
\{[String]} name -- the name of the global method to be removed
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeGlobalMethod-String_String_ret|trigger=button|text=}{sub-section}{sub-section:removeGlobalMethod-String_String_ret|trigger=none|class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeGlobalMethod-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeGlobalMethod-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeGlobalMethod-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeGlobalMethod-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeGlobalMethod-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeGlobalMethod-String_String_sam|trigger=none}{code:language=javascript}
var m1 = solutionModel.newGlobalMethod('globals', 'function myglobalmethod1(){application.output("Global Method 1");}');
var m2 = solutionModel.newGlobalMethod('globals', 'function myglobalmethod2(){application.output("Global Method 2");}');

var success = solutionModel.removeGlobalMethod('globals', 'myglobalmethod1');
if (success == false) application.output('!!! myglobalmethod1 could not be removed !!!');

var list = solutionModel.getGlobalMethods('globals');
for (var i = 0; i < list.length; i++) { 
	application.output(list[i].code);
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=removeGlobalVariable-String_String|class=node}{tr:id=name}{td}h6.removeGlobalVariable{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Boolean]{span}{span:id=iets|style=float: left; font-weight: bold;}removeGlobalVariable{span}{span:id=iets|style=float: left;}\(scopeName, name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:removeGlobalVariable-String_String_des|trigger=button|text=}{sub-section}{sub-section:removeGlobalVariable-String_String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeGlobalVariable-String_String_snc|trigger=button|text=}{sub-section}{sub-section:removeGlobalVariable-String_String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeGlobalVariable-String_String_prs|trigger=button|text=}{sub-section}{sub-section:removeGlobalVariable-String_String_prs|trigger=none|class=sIndent}\{[String]} scopeName -- the scope in which the variable is declared
\{[String]} name -- the name of the global variable to be removed
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:removeGlobalVariable-String_String_ret|trigger=button|text=}{sub-section}{sub-section:removeGlobalVariable-String_String_ret|trigger=none|class=sIndent}[Boolean] -- true if the removal was successful, false otherwise{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:removeGlobalVariable-String_String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeGlobalVariable-String_String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeGlobalVariable-String_String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeGlobalVariable-String_String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeGlobalVariable-String_String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeGlobalVariable-String_String_sam|trigger=none}{code:language=javascript}
var v1 = solutionModel.newGlobalVariable('globals', 'globalVar1', JSVariable.INTEGER);
var v2 = solutionModel.newGlobalVariable('globals', 'globalVar2', JSVariable.TEXT);

var success = solutionModel.removeGlobalVariable('globals', 'globalVar1');
if (success == false) application.output('!!! globalVar1 could not be removed !!!');

var list = solutionModel.getGlobalVariables('globals');
for (var i = 0; i < list.length; i++) {
	application.output(list[i].name + '[ ' + list[i].variableType + ']: ' + list[i].variableType);
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=revertForm-String|class=node}{tr:id=name}{td}h6.revertForm{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[JSForm]{span}{span:id=iets|style=float: left; font-weight: bold;}revertForm{span}{span:id=iets|style=float: left;}\(name){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:revertForm-String_des|trigger=button|text=}{sub-section}{sub-section:revertForm-String_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:revertForm-String_snc|trigger=button|text=}{sub-section}{sub-section:revertForm-String_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:revertForm-String_prs|trigger=button|text=}{sub-section}{sub-section:revertForm-String_prs|trigger=none|class=sIndent}\{[String]} name -- the specified name of the form to revert
{sub-section}{td}{tr}{tr:id=ret}{td}*Returns*\\{sub-section:revertForm-String_ret|trigger=button|text=}{sub-section}{sub-section:revertForm-String_ret|trigger=none|class=sIndent}[JSForm] -- a JSForm object{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:revertForm-String_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:revertForm-String_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:revertForm-String_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:revertForm-String_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:revertForm-String_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:revertForm-String_sam|trigger=none}{code:language=javascript}
// revert the form to the original solution form, removing any changes done to it through the solution model.
var revertedForm = solutionModel.revertForm('myForm')
// add a label on a random place.
revertedForm.newLabel("MyLabel",Math.random()*100,Math.random()*100,80,20);
// make sure that the ui is up to date.
forms.myForm.controller.recreateUI();
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}