{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}[JSButton]{span}{span:class=sWordList}[JSComponent]{span}{span:class=sWordList}[JSField]{span}{span:class=sWordList}[JSForm]{span}{span:class=sWordList}[JSLabel]{span}{span:class=sWordList}[JSMethod]{span}{span:class=sWordList}[JSPart]{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}[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, 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}[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|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}{tr:id=des}{td}{sub-section:getForm_des|trigger=button|text=}{sub-section}{sub-section:getForm_des|trigger=none|class=sIndent}Gets the specified form object and returns information about the form (see JSForm node).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getForm_snc|trigger=button|text=}{sub-section}{sub-section:getForm_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getForm_prs|trigger=button|text=}{sub-section}{sub-section:getForm_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_ret|trigger=button|text=}{sub-section}{sub-section:getForm_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_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForm_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getForm_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForm_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getForm_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getForm_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}{tr:id=des}{td}{sub-section:getForms_des|trigger=button|text=}{sub-section}{sub-section:getForms_des|trigger=none|class=sIndent}Get an array of all forms.{sub-section}{td}{tr}{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}{tr:id=des}{td}{sub-section:getForms-String_des|trigger=button|text=}{sub-section}{sub-section:getForms-String_des|trigger=none|class=sIndent}Get an array of forms, that are all based on datasource/servername.{sub-section}{td}{tr}{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}{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}Get an array of forms, that are all based on datasource/servername and tablename.{sub-section}{td}{tr}{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}{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}Gets an existing global method by the specified name.{sub-section}{td}{tr}{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}{tr:id=des}{td}{sub-section:getGlobalMethods_des|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods_des|trigger=none|class=sIndent}The list of all global methods.{sub-section}{td}{tr}{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}{tr:id=des}{td}{sub-section:getGlobalMethods-String_des|trigger=button|text=}{sub-section}{sub-section:getGlobalMethods-String_des|trigger=none|class=sIndent}The list of all global methods.{sub-section}{td}{tr}{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}{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}Gets an existing global variable by the specified name.{sub-section}{td}{tr}{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}{tr:id=des}{td}{sub-section:getGlobalVariables_des|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables_des|trigger=none|class=sIndent}Gets an array of all global variables.{sub-section}{td}{tr}{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}{tr:id=des}{td}{sub-section:getGlobalVariables-String_des|trigger=button|text=}{sub-section}{sub-section:getGlobalVariables-String_des|trigger=none|class=sIndent}Gets an array of all global variables.{sub-section}{td}{tr}{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=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}{tr:id=des}{td}{sub-section:getScopeNames_des|trigger=button|text=}{sub-section}{sub-section:getScopeNames_des|trigger=none|class=sIndent}Gets an array of all scope names used.{sub-section}{td}{tr}{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|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}{tr:id=des}{td}{sub-section:getValueList_des|trigger=button|text=}{sub-section}{sub-section:getValueList_des|trigger=none|class=sIndent}Gets an existing valuelist by the specified name and returns a JSValueList Object that can be assigned to a field.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getValueList_snc|trigger=button|text=}{sub-section}{sub-section:getValueList_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:getValueList_prs|trigger=button|text=}{sub-section}{sub-section:getValueList_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_ret|trigger=button|text=}{sub-section}{sub-section:getValueList_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_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueList_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getValueList_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueList_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getValueList_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValueList_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}{tr:id=des}{td}{sub-section:getValueLists_des|trigger=button|text=}{sub-section}{sub-section:getValueLists_des|trigger=none|class=sIndent}Gets an array of all valuelists for the currently active solution.{sub-section}{td}{tr}{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_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}{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}Creates a new JSForm Object.

NOTE: See the JSForm node for more information about form objects that can be added to the new form.{sub-section}{td}{tr}{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}{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}Creates a new JSForm Object.

NOTE: See the JSForm node for more information about form objects that can be added to the new form.{sub-section}{td}{tr}{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}{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}Creates a new global method with the specified code in a scope.{sub-section}{td}{tr}{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(){currentcontroller.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}{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}Creates a new global variable with the specified name and number type.

NOTE: The global variable number type is based on the value assigned from the SolutionModel\-JSVariable node; for example: JSVariable.INTEGER.{sub-section}{td}{tr}{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=removeForm|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}{tr:id=des}{td}{sub-section:removeForm_des|trigger=button|text=}{sub-section}{sub-section:removeForm_des|trigger=none|class=sIndent}Removes the specified form during the persistent connected client session.

NOTE: Make sure you call history.remove first in your Servoy method (script).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:removeForm_snc|trigger=button|text=}{sub-section}{sub-section:removeForm_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:removeForm_prs|trigger=button|text=}{sub-section}{sub-section:removeForm_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_ret|trigger=button|text=}{sub-section}{sub-section:removeForm_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_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeForm_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:removeForm_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeForm_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:removeForm_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:removeForm_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}{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}Removes the specified global method.{sub-section}{td}{tr}{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}{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}Removes the specified global variable.{sub-section}{td}{tr}{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|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}{tr:id=des}{td}{sub-section:revertForm_des|trigger=button|text=}{sub-section}{sub-section:revertForm_des|trigger=none|class=sIndent}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.

NOTE: Make sure you call history.remove first in your Servoy method (script) or call form.controller.recreateUI() before the script ends.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:revertForm_snc|trigger=button|text=}{sub-section}{sub-section:revertForm_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{tr:id=prs}{td}*Parameters*\\{sub-section:revertForm_prs|trigger=button|text=}{sub-section}{sub-section:revertForm_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_ret|trigger=button|text=}{sub-section}{sub-section:revertForm_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_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:revertForm_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:revertForm_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:revertForm_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:revertForm_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:revertForm_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}