Child pages
  • ServoyException

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
{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}[DataException]{span}{td}{tr}{table}\\ 

{table:id=|class=servoy sSummerysSummary}{colgroup}{column:padding=0px|width=80px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Constants SummerySummary{th}{tr}{tbody}{tr}{td}[Number]{td}{td}[#ABSTRACT_FORM]
Exception code for ABSTRACT\_FORM.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#ACQUIRE_LOCK_FAILURE]
Exception code for ACQUIRE\_LOCK\_FAILURE.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#BAD_SQL_SYNTAX]
Exception code for BAD\_SQL\_SYNTAX.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#CLIENT_NOT_AUTHORIZED]
Exception code for CLIENT\_NOT\_AUTHORIZED.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#DATA_ACCESS_RESOURCE_FAILURE]
Exception code for DATA\_ACCESS\_RESOURCE\_FAILURE.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#DATA_INTEGRITY_VIOLATION]
Exception code for DATA\_INTEGRITY\_VIOLATION.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#DEADLOCK]
Exception code for DEADLOCK.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#DELETE_NOT_GRANTED]
Exception code for DELETE\_NOT\_GRANTED.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#EXECUTE_PROGRAM_FAILED]
Exception code for EXECUTE\_PROGRAM\_FAILED.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#INCORRECT_LOGIN]
Exception code for INCORRECT\_LOGIN.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#INVALID_INPUT]
Exception code for INVALID\_INPUT.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#INVALID_INPUT_FORMAT]
Exception code for INVALID\_INPUT\_FORMAT.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#INVALID_RESULTSET_ACCESS]
Exception code for INVALID\_RESULTSET\_ACCESS.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#MAINTENANCE_MODE]
Exception code for MAINTENANCE\_MODE.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#NO_ACCESS]
Exception code for NO\_ACCESS.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#NO_CREATE_ACCESS]
Exception code for NO\_CREATE\_ACCESS.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#NO_DELETE_ACCESS]
Exception code for NO\_DELETE\_ACCESS.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#NO_LICENSE]
Exception code for NO\_LICENSE.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#NO_MODIFY_ACCESS]
Exception code for NO\_MODIFY\_ACCESS.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#NO_PARENT_DELETE_WITH_RELATED_RECORDS]
Exception code for NO\_PARENT\_DELETE\_WITH\_RELATED\_RECORDS.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#NO_RELATED_CREATE_ACCESS]
Exception code for NO\_RELATED\_CREATE\_ACCESS.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#PERMISSION_DENIED]
Exception code for PERMISSION\_DENIED.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#RECORD_LOCKED]
Exception code for RECORD\_LOCKED.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#RECORD_VALIDATION_FAILED]
Exception code for RECORD\_VALIDATION\_FAILED.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#SAVE_FAILED]
Exception code for SAVE\_FAILED.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#UNEXPECTED_UPDATE_COUNT]
Exception code for UNEXPECTED\_UPDATE\_COUNT.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#UNKNOWN_DATABASE_EXCEPTION]
Exception code for UNKNOWN\_DATABASE\_EXCEPTION.{td}{tr}{tbody}{table}\\ 

{table:id=|class=servoy sSummerysSummary}{colgroup}{column:padding=0px|width=80px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method SummerySummary{th}{tr}{tbody}{tr}{td}[Number]{td}{td}[#getErrorCode]\()
Returns the error code for this ServoyException.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getMessage]\()
Returns the string message for this ServoyException.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getStackTrace]\()
Returns the stack trace for this ServoyException.{td}{tr}{tbody}{table}\\ 

{table:id=constant|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Constants Details{th}{tr}{tbody:id=ABSTRACT_FORM|class=node}{tr:id=name}{td}h6.ABSTRACT_FORM{td}{tr}{tr:id=des}{td}{sub-section:ABSTRACT_FORM_des|text=|trigger=button}{sub-section}{sub-section:ABSTRACT_FORM_des|trigger=none|class=sIndent}Exception code for ABSTRACT\_FORM.{sub-section}{td}{tr

This code is used when a form, that cannot be created, is shown (for example, a form without parts).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:ABSTRACT_FORM_snc|text=|trigger=button}{sub-section}{sub-section:ABSTRACT_FORM_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:ABSTRACT_FORM_prs|text=|trigger=button}{sub-section}{sub-section:ABSTRACT_FORM_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:ABSTRACT_FORM_ret|text=|trigger=button}{sub-section}{sub-section:ABSTRACT_FORM_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:ABSTRACT_FORM_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:ABSTRACT_FORM_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:ABSTRACT_FORM_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:ABSTRACT_FORM_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:ABSTRACT_FORM_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:ABSTRACT_FORM_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
{code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=ACQUIRE_LOCK_FAILURE|class=node}{tr:id=name}{td}h6.ACQUIRE_LOCK_FAILURE{td}{tr}{tr:id=des}{td}{sub-section:ACQUIRE_LOCK_FAILURE_des|text=|trigger=button}{sub-section}{sub-section:ACQUIRE_LOCK_FAILURE_des|trigger=none|class=sIndent}Exception code for ACQUIRE\_LOCK\_FAILURE.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:ACQUIRE_LOCK_FAILURE_snc|text=|trigger=button}{sub-section}{sub-section:ACQUIRE_LOCK_FAILURE_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:ACQUIRE_LOCK_FAILURE_prs|text=|trigger=button}{sub-section}{sub-section:ACQUIRE_LOCK_FAILURE_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:ACQUIRE_LOCK_FAILURE_ret|text=|trigger=button}{sub-section}{sub-section:ACQUIRE_LOCK_FAILURE_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=ACQUIRE_LOCK_FAILURE|class=node}{tr:id=name}{td}h6.ACQUIRE_LOCK_FAILURE{td}{tr}{tr:id=des}{td}{sub-section:ACQUIRE_LOCK_FAILURE_seedes|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:ACQUIRE_LOCK_FAILURE_seedes|trigger=none|class=sIndent}Exception code for ACQUIRE\_LOCK\_FAILURE.

This code is used when a database failed to lock a row or table.{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksnc}{td}*External linksSince*\\{sub-section:ACQUIRE_LOCK_FAILURE_linksnc|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:ACQUIRE_LOCK_FAILURE_linksnc|trigger=none|class=sIndent} Replace with version info{sub-section}{divtd}{tdtr}{trbuilder-show}{builder-show:permission=edit}{tr:id=samprs}{td}*SampleParameters*\\{sub-section:ACQUIRE_LOCK_FAILURE_samprs|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:ACQUIRE_LOCK_FAILURE_samprs|trigger=none|class=sIndent}{builder-show:permission=edit}{code:language=javascript}

{codesub-section}{td}{tr}{builder-show}{sub-section}{divtr:id=ret}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=BAD_SQL_SYNTAX|class=node}{tr:id=name}{td}h6.BAD_SQL_SYNTAX{td}{tr*Returns*\\{sub-section:ACQUIRE_LOCK_FAILURE_ret|text=|trigger=button}{sub-section}{sub-section:ACQUIRE_LOCK_FAILURE_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=dessee}{td}*Also see*\\{sub-section:BADACQUIRE_SQLLOCK_SYNTAXFAILURE_dessee|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:BADACQUIRE_SQLLOCK_SYNTAXFAILURE_dessee|trigger=none|class=sIndent}Exception code for BAD\_SQL\_SYNTAX.{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snclink}{td}*SinceExternal links*\\{sub-section:BADACQUIRE_SQLLOCK_SYNTAXFAILURE_snclink|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:BADACQUIRE_SQLLOCK_SYNTAXFAILURE_snclink|trigger=none|class=sIndent} Replace with version info{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prssam}{td}*ParametersSample*\\{sub-section:BADACQUIRE_SQLLOCK_SYNTAXFAILURE_prssam|text=|trigger=button}{sub-section}{sub-section:BAD_SQL_SYNTAX_prs|trigger=none|div:class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:BAD_SQL_SYNTAX_ret|text=|trigger=button}{sub-section}{sub-section:BAD_SQL_SYNTAX_ret:ACQUIRE_LOCK_FAILURE_sam|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:BAD_SQL_SYNTAX_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:BAD_SQL_SYNTAX_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:BAD_SQL_SYNTAX_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:BAD_SQL_SYNTAX_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:BAD_SQL_SYNTAX_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:BAD_SQL_SYNTAX_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=CLIENT_NOT_AUTHORIZED|class=node}{tr:id=name}{td}h6.CLIENT_NOT_AUTHORIZED{td}{tr}{tr:id=des}{td}{sub-section:CLIENT_NOT_AUTHORIZED_des|text=|trigger=button}{sub-section}{sub-section:CLIENT_NOT_AUTHORIZED_des|trigger=none|class=sIndent}Exception code for CLIENT\_NOT\_AUTHORIZED.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:CLIENT_NOT_AUTHORIZED_snc|text=|trigger=button}{sub-section}{sub-section:CLIENT_NOT_AUTHORIZED_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:CLIENT_NOT_AUTHORIZED_prs{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=BAD_SQL_SYNTAX|class=node}{tr:id=name}{td}h6.BAD_SQL_SYNTAX{td}{tr}{tr:id=des}{td}{sub-section:BAD_SQL_SYNTAX_des|text=|trigger=button}{sub-section}{sub-section:CLIENTBAD_NOTSQL_AUTHORIZEDSYNTAX_prsdes|trigger=none|class=sIndent}{sub-section}Exception code for BAD\_SQL\_SYNTAX.

This code is used when a database exception is recognized as an sql syntax error.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=retsnc}{td}*ReturnsSince*\\{sub-section:CLIENTBAD_NOTSQL_AUTHORIZEDSYNTAX_retsnc|text=|trigger=button}{sub-section}{sub-section:CLIENTBAD_NOTSQL_AUTHORIZEDSYNTAX_retsnc|trigger=none|class=sIndent}[Number] Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=seeprs}{td}*Also seeParameters*\\{sub-section:CLIENTBAD_NOTSQL_AUTHORIZEDSYNTAX_seeprs|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:CLIENTBAD_NOTSQL_AUTHORIZEDSYNTAX_seeprs|trigger=none|class=sIndent}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linkret}{td}*External linksReturns*\\{sub-section:CLIENTBAD_NOTSQL_AUTHORIZEDSYNTAX_linkret|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:CLIENTBAD_NOTSQL_AUTHORIZEDSYNTAX_linkret|trigger=none|class=sIndent}[Number]{sub-section}{div}{td}{tr}{builder-show:permission=edit}{tr:id=samsee}{td}*SampleAlso see*\\{sub-section:CLIENTBAD_NOTSQL_AUTHORIZEDSYNTAX_samsee|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:CLIENTBAD_NOTSQL_AUTHORIZEDSYNTAX_samsee|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{codetr:languageid=javascriptlink}

{code}{builder-showtd}*External links*\\{sub-section:BAD_SQL_SYNTAX_link|text=|trigger=button}{sub-section}{div}{td}{tr}{tr:class=lastDetailRowsIndent}{td}{td}{tr}{tbody}{tbody:id=DATA_ACCESS_RESOURCE_FAILURE|class=node}{tr:id=name}{td}h6.DATA_ACCESS_RESOURCE_FAILUREsub-section:BAD_SQL_SYNTAX_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=dessam}{td}*Sample*\\{sub-section:DATABAD_ACCESSSQL_RESOURCESYNTAX_FAILURE_dessam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DATABAD_ACCESSSQL_RESOURCESYNTAX_FAILURE_dessam|trigger=none|class=sIndent}Exception code for DATA\_ACCESS\_RESOURCE\_FAILURE.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:DATA_ACCESS_RESOURCE_FAILURE_snc|text=|trigger=button}{sub-section}{sub-section:DATA_ACCESS_RESOURCE_FAILURE_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:DATA_ACCESS_RESOURCE_FAILURE_prs|text=|trigger=button}{sub-section}{sub-section:DATA_ACCESS_RESOURCE_FAILURE_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:DATA_ACCESS_RESOURCE_FAILURE_ret|text=|trigger=button}{sub-section}{sub-section:DATA_ACCESS_RESOURCE_FAILURE_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:DATA_ACCESS_RESOURCE_FAILURE_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DATA_ACCESS_RESOURCE_FAILURE_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:DATA_ACCESS_RESOURCE_FAILURE_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DATA_ACCESS_RESOURCE_FAILURE_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:DATA_ACCESS_RESOURCE_FAILURE_sam}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=CLIENT_NOT_AUTHORIZED|class=node}{tr:id=name}{td}h6.CLIENT_NOT_AUTHORIZED{td}{tr}{tr:id=des}{td}{sub-section:CLIENT_NOT_AUTHORIZED_des|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DATACLIENT_ACCESSNOT_RESOURCEAUTHORIZED_FAILURE_samdes|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{sub-section}{div|class=sIndent}Exception code for CLIENT\_NOT\_AUTHORIZED.

This code is used when an client performs an action that requires the user to be logged in and the user has not logged in yet.{sub-section}{td}{tr}{trbuilder-show:classpermission=lastDetailRowedit}{tdtr:id=snc}{td}{tr}{tbody}{tbody:id=DATA_INTEGRITY_VIOLATION|class=node}{tr:id=name}{td}h6.DATA_INTEGRITY_VIOLATION{td}{tr*Since*\\{sub-section:CLIENT_NOT_AUTHORIZED_snc|text=|trigger=button}{sub-section}{sub-section:CLIENT_NOT_AUTHORIZED_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=desprs}{td}*Parameters*\\{sub-section:DATACLIENT_INTEGRITYNOT_VIOLATIONAUTHORIZED_desprs|text=|trigger=button}{sub-section}{sub-section:DATACLIENT_INTEGRITYNOT_VIOLATIONAUTHORIZED_desprs|trigger=none|class=sIndent}Exception code for DATA\_INTEGRITY\_VIOLATION.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=sncret}{td}*SinceReturns*\\{sub-section:DATACLIENT_INTEGRITYNOT_VIOLATIONAUTHORIZED_sncret|text=|trigger=button}{sub-section}{sub-section:DATACLIENT_INTEGRITYNOT_VIOLATIONAUTHORIZED_sncret|trigger=none|class=sIndent} Replace with version info[Number]{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prssee}{td}*ParametersAlso see*\\{sub-section:DATACLIENT_INTEGRITYNOT_VIOLATIONAUTHORIZED_prssee|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DATACLIENT_INTEGRITYNOT_VIOLATIONAUTHORIZED_prssee|trigger=none|class=sIndent}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=retlink}{td}*ReturnsExternal links*\\{sub-section:DATACLIENT_INTEGRITYNOT_VIOLATIONAUTHORIZED_retlink|text=|trigger=button}{sub-section}{sub-section:DATA_INTEGRITY_VIOLATION_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:DATA_INTEGRITY_VIOLATION_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DATACLIENT_INTEGRITYNOT_VIOLATIONAUTHORIZED_seelink|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksam}{td}*External linksSample*\\{sub-section:DATACLIENT_INTEGRITYNOT_VIOLATIONAUTHORIZED_linksam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DATACLIENT_INTEGRITYNOT_VIOLATIONAUTHORIZED_linksam|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:DATA_INTEGRITY_VIOLATION_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DATA_INTEGRITY_VIOLATION_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=DEADLOCK|class=node}{tr:id=name}{td}h6.DEADLOCK{td}{tr}{tr:id=des}{td}{sub-section:DEADLOCK_des|text=|trigger=button}{sub-section}{sub-section:DEADLOCK_des|trigger=none|class=sIndent}Exception code for DEADLOCK.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:DEADLOCK_snc|text=|trigger=button}{sub-section}{sub-section:DEADLOCK_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:DEADLOCK_prs|text=|trigger=button}{sub-section}{sub-section:DEADLOCK_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:DEADLOCK_retcode:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=DATA_ACCESS_RESOURCE_FAILURE|class=node}{tr:id=name}{td}h6.DATA_ACCESS_RESOURCE_FAILURE{td}{tr}{tr:id=des}{td}{sub-section:DATA_ACCESS_RESOURCE_FAILURE_des|text=|trigger=button}{sub-section}{sub-section:DEADLOCK_retDATA_ACCESS_RESOURCE_FAILURE_des|trigger=none|class=sIndent}[Number]Exception code for DATA\_ACCESS\_RESOURCE\_FAILURE.

This code is used when a database exception received an error accessing storage devices.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=seesnc}{td}*Also seeSince*\\{sub-section:DEADLOCK_seeDATA_ACCESS_RESOURCE_FAILURE_snc|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DEADLOCK_seeDATA_ACCESS_RESOURCE_FAILURE_snc|trigger=none}{|class=sIndent} Replace with version info{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linkprs}{td}*External linksParameters*\\{sub-section:DEADLOCK_linkDATA_ACCESS_RESOURCE_FAILURE_prs|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DEADLOCK_linkDATA_ACCESS_RESOURCE_FAILURE_prs|trigger=none|class=sIndent}{sub-section}{div}{td}{tr}{builder-show}{tr:id=samret}{td}*SampleReturns*\\{sub-section:DEADLOCK_samDATA_ACCESS_RESOURCE_FAILURE_ret|text=|trigger=button}{sub-section}{div:sub-section:DATA_ACCESS_RESOURCE_FAILURE_ret|trigger=none|class=sIndent}[Number]{sub-section:DEADLOCK_sam|trigger=none}{td}{tr}{builder-show:permission=edit}{codetr:languageid=javascriptsee}

{code}{builder-showtd}*Also see*\\{sub-section:DATA_ACCESS_RESOURCE_FAILURE_see|text=|trigger=button}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow:class=sIndent}{sub-section:DATA_ACCESS_RESOURCE_FAILURE_see|trigger=none}{sub-section}{div}{td}{td}{tr}{tbodybuilder-show}{tbodybuilder-show:id=DELETE_NOT_GRANTED|class=nodepermission=edit}{tr:id=namelink}{td}h6.DELETE_NOT_GRANTED{td}{tr}{tr:id=des}{td}{*External links*\\{sub-section:DELETEDATA_ACCESS_NOTRESOURCE_GRANTEDFAILURE_deslink|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DELETEDATA_ACCESS_NOTRESOURCE_GRANTEDFAILURE_deslink|trigger=none|class=sIndent}Exception code for DELETE\_NOT\_GRANTED.{sub-section}{div}{td}{tr}{builder-show:permission=edit}{tr:id=sncsam}{td}*SinceSample*\\{sub-section:DELETEDATA_ACCESS_NOTRESOURCE_GRANTEDFAILURE_sncsam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DELETEDATA_ACCESS_NOTRESOURCE_GRANTEDFAILURE_sncsam|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:DELETE_NOT_GRANTED_prs|text=|trigger=button}{sub-section}{sub-section:DELETE_NOT_GRANTED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:DELETE_NOT_GRANTED_ret|text=|trigger=button}{sub-section}{sub-section:DELETE_NOT_GRANTED_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:DELETE_NOT_GRANTED_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DELETE_NOT_GRANTED_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:DELETE_NOT_GRANTED_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DELETE_NOT_GRANTED_link|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{builder-show}{tr:id=samclass=lastDetailRow}{td}{td}*Sample*\\{sub-section:DELETE_NOT_GRANTED_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:DELETE_NOT_GRANTED_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{{tr}{tbody}{tbody:id=EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION|class=node}{tr:id=name}{td}h6.EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION{td}{tr}{tr:id=des}{td}{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_des|text=|trigger=button}{sub-section}{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_des|trigger=none|class=sIndent}Exception code for EXECUTEDATA\_PROGRAM\_FAILEDINTEGRITY\_VIOLATION.

This code is used when a database exception is recognized as an integrity exception (like constraint violation).{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_snc|text=|trigger=button}{sub-section}{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_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:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_prs|text=|trigger=button}{sub-section}{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_ret|text=|trigger=button}{sub-section}{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:EXECUTEDATA_PROGRAMINTEGRITY_FAILEDVIOLATION_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}
//this sample script {code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=INCORRECT_LOGIN|class=node}{tr:id=name}{td}h6.INCORRECT_LOGIN{td}{tr}{tr:id=des}{td}{sub-section:INCORRECT_LOGIN_des|text=|trigger=button}{sub-section}{sub-section:INCORRECT_LOGIN_des|trigger=none|class=sIndent}Exception code for INCORRECT\_LOGIN.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:INCORRECT_LOGIN_snc|text=|trigger=button}{sub-section}{sub-section:INCORRECT_LOGIN_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:INCORRECT_LOGIN_prs|text=|trigger=button}{sub-section}{sub-section:INCORRECT_LOGIN_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:INCORRECT_LOGIN_ret|text=|trigger=button}{sub-section}{sub-section:INCORRECT_LOGIN_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:INCORRECT_LOGIN_seeshould be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=DEADLOCK|class=node}{tr:id=name}{td}h6.DEADLOCK{td}{tr}{tr:id=des}{td}{sub-section:DEADLOCK_des|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INCORRECTDEADLOCK_LOGIN_seedes|trigger=none|class=sIndent}Exception code for DEADLOCK.

This code is used when a deadlock is detected by the database.{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksnc}{td}*External linksSince*\\{sub-section:INCORRECTDEADLOCK_LOGIN_linksnc|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INCORRECTDEADLOCK_LOGIN_linksnc|trigger=none|class=sIndent} Replace with version info{sub-section}{divtd}{tdtr}{trbuilder-show}{builder-show:permission=edit}{tr:id=samprs}{td}*SampleParameters*\\{sub-section:INCORRECTDEADLOCK_LOGIN_samprs|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INCORRECTDEADLOCK_LOGIN_samprs|trigger=none|class=sIndent}{builder-show:permission=edit}{code:language=javascript}

{codesub-section}{td}{tr}{builder-show}{sub-section}{div}{td}{tr}{tr:classid=lastDetailRowret}{td}{td}{tr}{tbody}{tbody:id=INVALID_INPUT|class=node}{tr:id=name}{td}h6.INVALID_INPUT{td}{tr}{tr:id=des}{td}{sub-section:INVALID_INPUT_des*Returns*\\{sub-section:DEADLOCK_ret|text=|trigger=button}{sub-section}{sub-section:INVALIDDEADLOCK_INPUT_desret|trigger=none|class=sIndent}Exception code for INVALID\_INPUT.[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=sncsee}{td}*SinceAlso see*\\{sub-section:INVALIDDEADLOCK_INPUT_sncsee|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALIDDEADLOCK_INPUT_sncsee|trigger=none|class=sIndent} Replace with version info{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prslink}{td}*ParametersExternal links*\\{sub-section:INVALIDDEADLOCK_INPUT_prslink|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALIDDEADLOCK_INPUT_prslink|trigger=none|class=sIndent}{sub-section}{div}{td}{tr}{builder-show}{tr:id=retsam}{td}*ReturnsSample*\\{sub-section:INVALIDDEADLOCK_INPUT_retsam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALIDDEADLOCK_INPUT_retsam|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:INVALID_INPUT_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALID_INPUT_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:INVALID_INPUT_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALID_INPUT_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:INVALID_INPUT_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALID_INPUT_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=INVALIDDELETE_INPUTNOT_FORMATGRANTED|class=node}{tr:id=name}{td}h6.INVALIDDELETE_INPUTNOT_FORMATGRANTED{td}{tr}{tr:id=des}{td}{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_des|text=|trigger=button}{sub-section}{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_des|trigger=none|class=sIndent}Exception code for INVALIDDELETE\_INPUTNOT\_FORMAT.{sub-section}{td}{GRANTED.

This code is used when a record deletion was rejected by a pre\-delete Servoy trigger.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_snc|text=|trigger=button}{sub-section}{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_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:INVALIDDELETE_INPUTNOT_FORMATGRANTED_prs|text=|trigger=button}{sub-section}{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_ret|text=|trigger=button}{sub-section}{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALIDDELETE_INPUTNOT_FORMATGRANTED_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}
//this sample script should 
{code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=INVALID_RESULTSET_ACCESS|class=node}{tr:id=name}{td}h6.INVALID_RESULTSET_ACCESS{td}{tr}{tr:id=des}{td}{sub-section:INVALID_RESULTSET_ACCESS_des|text=|trigger=button}{sub-section}{sub-section:INVALID_RESULTSET_ACCESS_des|trigger=none|class=sIndent}Exception code for INVALID\_RESULTSET\_ACCESS.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:INVALID_RESULTSET_ACCESS_snc|text=|trigger=button}{sub-section}{sub-section:INVALID_RESULTSET_ACCESS_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:INVALID_RESULTSET_ACCESS_prs|text=|trigger=button}{sub-section}{sub-section:INVALID_RESULTSET_ACCESS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:INVALID_RESULTSET_ACCESS_ret|text=|trigger=button}{sub-section}{sub-section:INVALID_RESULTSET_ACCESS_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:INVALID_RESULTSET_ACCESS_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALID_RESULTSET_ACCESS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:INVALID_RESULTSET_ACCESS_linkbe attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=EXECUTE_PROGRAM_FAILED|class=node}{tr:id=name}{td}h6.EXECUTE_PROGRAM_FAILED{td}{tr}{tr:id=des}{td}{sub-section:EXECUTE_PROGRAM_FAILED_des|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALIDEXECUTE_RESULTSETPROGRAM_ACCESSFAILED_linkdes|trigger=none|class=sIndent}Exception code for EXECUTE\_PROGRAM\_FAILED.

This code is used when an external program was not executed correctly.{sub-section}{div}{td}{tr}{builder-show:permission=edit}{tr:id=samsnc}{td}*SampleSince*\\{sub-section:INVALIDEXECUTE_RESULTSETPROGRAM_ACCESSFAILED_samsnc|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALIDEXECUTE_RESULTSETPROGRAM_ACCESSFAILED_samsnc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{codetr:languageid=javascriptprs}

{codetd}*Parameters*\\{builder-showsub-section:EXECUTE_PROGRAM_FAILED_prs|text=|trigger=button}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{tdsub-section:EXECUTE_PROGRAM_FAILED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{tbody}{tbody:id=MAINTENANCE_MODE|class=nodebuilder-show}{tr:id=nameret}{td}h6.MAINTENANCE_MODE{td}{tr}{tr:id=des}{td}{*Returns*\\{sub-section:MAINTENANCEEXECUTE_PROGRAM_MODEFAILED_desret|text=|trigger=button}{sub-section}{sub-section:MAINTENANCEEXECUTE_PROGRAM_MODEFAILED_desret|trigger=none|class=sIndent}Exception code for MAINTENANCE\_MODE.[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=sncsee}{td}*SinceAlso see*\\{sub-section:MAINTENANCEEXECUTE_PROGRAM_MODEFAILED_sncsee|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:MAINTENANCEEXECUTE_PROGRAM_MODEFAILED_sncsee|trigger=none|class=sIndent} Replace with version info{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prslink}{td}*ParametersExternal links*\\{sub-section:MAINTENANCEEXECUTE_PROGRAM_MODEFAILED_prslink|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:MAINTENANCEEXECUTE_PROGRAM_MODEFAILED_prslink|trigger=none|class=sIndent}{sub-section}{div}{td}{tr}{builder-show}{tr:id=retsam}{td}*ReturnsSample*\\{sub-section:MAINTENANCEEXECUTE_PROGRAM_MODEFAILED_retsam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:MAINTENANCEEXECUTE_MODEPROGRAM_FAILED_retsam|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:MAINTENANCE_MODE_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:MAINTENANCE_MODE_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:MAINTENANCE_MODE_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:MAINTENANCE_MODE_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:MAINTENANCE_MODE_sam}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=INCORRECT_LOGIN|class=node}{tr:id=name}{td}h6.INCORRECT_LOGIN{td}{tr}{tr:id=des}{td}{sub-section:INCORRECT_LOGIN_des|text=|trigger=button}{sub-section}{sub-section:INCORRECT_LOGIN_des|trigger=none|class=sIndent}Exception code for INCORRECT\_LOGIN.

This code is used when the user enters invalid credentials.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:INCORRECT_LOGIN_snc|text=|trigger=button}{sub-section}{sub-section:INCORRECT_LOGIN_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:INCORRECT_LOGIN_prs|text=|trigger=button}{sub-section}{sub-section:INCORRECT_LOGIN_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:INCORRECT_LOGIN_ret|text=|trigger=button}{sub-section}{sub-section:INCORRECT_LOGIN_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:INCORRECT_LOGIN_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INCORRECT_LOGIN_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:INCORRECT_LOGIN_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INCORRECT_LOGIN_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:INCORRECT_LOGIN_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INCORRECT_LOGIN_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=INVALID_INPUT|class=node}{tr:id=name}{td}h6.INVALID_INPUT{td}{tr}{tr:id=des}{td}{sub-section:INVALID_INPUT_des|text=|trigger=button}{sub-section}{sub-section:INVALID_INPUT_des|trigger=none|class=sIndent}Exception code for INVALID\_INPUT.

This code is used when the user enters data that could not be validated.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:INVALID_INPUT_snc|text=|trigger=button}{sub-section}{sub-section:INVALID_INPUT_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:INVALID_INPUT_prs|text=|trigger=button}{sub-section}{sub-section:INVALID_INPUT_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:INVALID_INPUT_ret|text=|trigger=button}{sub-section}{sub-section:INVALID_INPUT_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:INVALID_INPUT_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALID_INPUT_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:INVALID_INPUT_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALID_INPUT_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:INVALID_INPUT_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALID_INPUT_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=INVALID_RESULTSET_ACCESS|class=node}{tr:id=name}{td}h6.INVALID_RESULTSET_ACCESS{td}{tr}{tr:id=des}{td}{sub-section:INVALID_RESULTSET_ACCESS_des|text=|trigger=button}{sub-section}{sub-section:INVALID_RESULTSET_ACCESS_des|trigger=none|class=sIndent}Exception code for INVALID\_RESULTSET\_ACCESS.

This code is used when a data is requested that is not selected in the sql.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:INVALID_RESULTSET_ACCESS_snc|text=|trigger=button}{sub-section}{sub-section:INVALID_RESULTSET_ACCESS_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:INVALID_RESULTSET_ACCESS_prs|text=|trigger=button}{sub-section}{sub-section:INVALID_RESULTSET_ACCESS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:INVALID_RESULTSET_ACCESS_ret|text=|trigger=button}{sub-section}{sub-section:INVALID_RESULTSET_ACCESS_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:INVALID_RESULTSET_ACCESS_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALID_RESULTSET_ACCESS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:INVALID_RESULTSET_ACCESS_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALID_RESULTSET_ACCESS_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:INVALID_RESULTSET_ACCESS_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:INVALID_RESULTSET_ACCESS_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=MAINTENANCE_MODE|class=node}{tr:id=name}{td}h6.MAINTENANCE_MODE{td}{tr}{tr:id=des}{td}{sub-section:MAINTENANCE_MODE_des|text=|trigger=button}{sub-section}{sub-section:MAINTENANCE_MODE_des|trigger=none|class=sIndent}Exception code for MAINTENANCE\_MODE.

This code is used when a client could not be registered with the server because the server is in maintenance mode.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:MAINTENANCE_MODE_snc|text=|trigger=button}{sub-section}{sub-section:MAINTENANCE_MODE_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:MAINTENANCE_MODE_prs|text=|trigger=button}{sub-section}{sub-section:MAINTENANCE_MODE_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:MAINTENANCE_MODE_ret|text=|trigger=button}{sub-section}{sub-section:MAINTENANCE_MODE_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:MAINTENANCE_MODE_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:MAINTENANCE_MODE_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:MAINTENANCE_MODE_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:MAINTENANCE_MODE_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:MAINTENANCE_MODE_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:MAINTENANCE_MODE_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NO_ACCESS|class=node}{tr:id=name}{td}h6.NO_ACCESS{td}{tr}{tr:id=des}{td}{sub-section:NO_ACCESS_des|text=|trigger=button}{sub-section}{sub-section:NO_ACCESS_des|trigger=none|class=sIndent}Exception code for NO\_ACCESS.

This code is used when a user wants to view data and this is disallowed by security settings.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_ACCESS_snc|text=|trigger=button}{sub-section}{sub-section:NO_ACCESS_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:NO_ACCESS_prs|text=|trigger=button}{sub-section}{sub-section:NO_ACCESS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_ACCESS_ret|text=|trigger=button}{sub-section}{sub-section:NO_ACCESS_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NO_ACCESS_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_ACCESS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NO_ACCESS_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_ACCESS_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NO_ACCESS_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_ACCESS_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NO_CREATE_ACCESS|class=node}{tr:id=name}{td}h6.NO_CREATE_ACCESS{td}{tr}{tr:id=des}{td}{sub-section:NO_CREATE_ACCESS_des|text=|trigger=button}{sub-section}{sub-section:NO_CREATE_ACCESS_des|trigger=none|class=sIndent}Exception code for NO\_CREATE\_ACCESS.

This code is used when a user wants to create new records and this is disallowed by security settings.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_CREATE_ACCESS_snc|text=|trigger=button}{sub-section}{sub-section:NO_CREATE_ACCESS_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:NO_CREATE_ACCESS_prs|text=|trigger=button}{sub-section}{sub-section:NO_CREATE_ACCESS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_CREATE_ACCESS_ret|text=|trigger=button}{sub-section}{sub-section:NO_CREATE_ACCESS_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NO_CREATE_ACCESS_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_CREATE_ACCESS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NO_CREATE_ACCESS_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_CREATE_ACCESS_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NO_CREATE_ACCESS_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_CREATE_ACCESS_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NO_DELETE_ACCESS|class=node}{tr:id=name}{td}h6.NO_DELETE_ACCESS{td}{tr}{tr:id=des}{td}{sub-section:NO_DELETE_ACCESS_des|text=|trigger=button}{sub-section}{sub-section:NO_DELETE_ACCESS_des|trigger=none|class=sIndent}Exception code for NO\_DELETE\_ACCESS.

This code is used when a user wants to delete data and this is disallowed by security settings.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_DELETE_ACCESS_snc|text=|trigger=button}{sub-section}{sub-section:NO_DELETE_ACCESS_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:NO_DELETE_ACCESS_prs|text=|trigger=button}{sub-section}{sub-section:NO_DELETE_ACCESS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_DELETE_ACCESS_ret|text=|trigger=button}{sub-section}{sub-section:NO_DELETE_ACCESS_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NO_DELETE_ACCESS_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_DELETE_ACCESS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NO_DELETE_ACCESS_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_DELETE_ACCESS_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NO_DELETE_ACCESS_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_DELETE_ACCESS_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NO_LICENSE|class=node}{tr:id=name}{td}h6.NO_LICENSE{td}{tr}{tr:id=des}{td}{sub-section:NO_LICENSE_des|text=|trigger=button}{sub-section}{sub-section:NO_LICENSE_des|trigger=none|class=sIndent}Exception code for NO\_LICENSE.

This code is used when a client could not be registered with the server because of license limitations.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_LICENSE_snc|text=|trigger=button}{sub-section}{sub-section:NO_LICENSE_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:NO_LICENSE_prs|text=|trigger=button}{sub-section}{sub-section:NO_LICENSE_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_LICENSE_ret|text=|trigger=button}{sub-section}{sub-section:NO_LICENSE_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NO_LICENSE_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_LICENSE_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NO_LICENSE_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_LICENSE_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NO_LICENSE_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_LICENSE_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NO_MODIFY_ACCESS|class=node}{tr:id=name}{td}h6.NO_MODIFY_ACCESS{td}{tr}{tr:id=des}{td}{sub-section:NO_MODIFY_ACCESS_des|text=|trigger=button}{sub-section}{sub-section:NO_MODIFY_ACCESS_des|trigger=none|class=sIndent}Exception code for NO\_MODIFY\_ACCESS.

This code is used when a user wants to update data and this is disallowed by security settings.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_MODIFY_ACCESS_snc|text=|trigger=button}{sub-section}{sub-section:NO_MODIFY_ACCESS_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:NO_MODIFY_ACCESS_prs|text=|trigger=button}{sub-section}{sub-section:NO_MODIFY_ACCESS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_MODIFY_ACCESS_ret|text=|trigger=button}{sub-section}{sub-section:NO_MODIFY_ACCESS_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NO_MODIFY_ACCESS_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_MODIFY_ACCESS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NO_MODIFY_ACCESS_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_MODIFY_ACCESS_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NO_MODIFY_ACCESS_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_MODIFY_ACCESS_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NO_PARENT_DELETE_WITH_RELATED_RECORDS|class=node}{tr:id=name}{td}h6.NO_PARENT_DELETE_WITH_RELATED_RECORDS{td}{tr}{tr:id=des}{td}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_des|text=|trigger=button}{sub-section}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_des|trigger=none|class=sIndent}Exception code for NO\_PARENT\_DELETE\_WITH\_RELATED\_RECORDS.

This code is used when a record could not be deleted because a non\-empty relation exists for the record that does not allow parent delete when having related records.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_snc|text=|trigger=button}{sub-section}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_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:NO_PARENT_DELETE_WITH_RELATED_RECORDS_prs|text=|trigger=button}{sub-section}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_ret|text=|trigger=button}{sub-section}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NO_RELATED_CREATE_ACCESS|class=node}{tr:id=name}{td}h6.NO_RELATED_CREATE_ACCESS{td}{tr}{tr:id=des}{td}{sub-section:NO_RELATED_CREATE_ACCESS_des|text=|trigger=button}{sub-section}{sub-section:NO_RELATED_CREATE_ACCESS_des|trigger=none|class=sIndent}Exception code for NO\_RELATED\_CREATE\_ACCESS.

This code is used when a user wants to create new related records and this is disallowed by security settings.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_RELATED_CREATE_ACCESS_snc|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:MAINTENANCE_MODE_samNO_RELATED_CREATE_ACCESS_snc|trigger=none|class=sIndent}{builder-show:permission=edit}{code:language=javascript}

{code Replace with version info{sub-section}{td}{tr}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRowbuilder-show:permission=edit}{tr:id=prs}{td}{td}{tr}{tbody}{tbody:id=NO_ACCESS|class=node}{tr:id=name}{td}h6.NO_ACCESS{td}{tr*Parameters*\\{sub-section:NO_RELATED_CREATE_ACCESS_prs|text=|trigger=button}{sub-section}{sub-section:NO_RELATED_CREATE_ACCESS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=desret}{td}*Returns*\\{sub-section:NO_RELATED_CREATE_ACCESS_desret|text=|trigger=button}{sub-section}{sub-section:NO_RELATED_CREATE_ACCESS_desret|trigger=none|class=sIndent}Exception code for NO\_ACCESS.[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=sncsee}{td}*SinceAlso see*\\{sub-section:NO_RELATED_CREATE_ACCESS_sncsee|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_RELATED_CREATE_ACCESS_sncsee|trigger=none|class=sIndent} Replace with version info{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prslink}{td}*ParametersExternal links*\\{sub-section:NO_RELATED_CREATE_ACCESS_prslink|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_RELATED_CREATE_ACCESS_prslink|trigger=none|class=sIndent}{sub-section}{div}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\sam}{td}*Sample*\\{sub-section:NO_RELATED_CREATE_ACCESS_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_RELATED_CREATE_ACCESS_retsam|text=|trigger=buttonnone}{sub-section}{sub-section:NO_ACCESS_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NO_ACCESS_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_ACCESS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NO_ACCESS_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_ACCESS_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NO_ACCESS_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_ACCESS_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NOPERMISSION_CREATE_ACCESSDENIED|class=node}{tr:id=name}{td}h6.NO_CREATEPERMISSION_ACCESSDENIED{td}{tr}{tr:id=des}{td}{sub-section:NOPERMISSION_CREATEDENIED_ACCESS_des|text=|trigger=button}{sub-section}{sub-section:NOPERMISSION_CREATE_ACCESSDENIED_des|trigger=none|class=sIndent}Exception code for NO\_CREATE\_ACCESSPERMISSION\_DENIED.

This code is used when a database exception is recognized as a authorization error.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NOPERMISSION_CREATE_ACCESSDENIED_snc|text=|trigger=button}{sub-section}{sub-section:NOPERMISSION_CREATEDENIED_ACCESS_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:NOPERMISSION_CREATE_ACCESSDENIED_prs|text=|trigger=button}{sub-section}{sub-section:NOPERMISSION_CREATEDENIED_ACCESS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_CREATE_ACCESS_ret|PERMISSION_DENIED_ret|text=|trigger=button}{sub-section}{sub-section:PERMISSION_DENIED_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:PERMISSION_DENIED_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NOPERMISSION_CREATE_ACCESSDENIED_retsee|trigger=none|class=sIndent}[Number]{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=seelink}{td}*AlsoExternal seelinks*\\{sub-section:NOPERMISSION_CREATEDENIED_ACCESS_seelink|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NOPERMISSION_CREATEDENIED_ACCESS_seelink|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksam}{td}*External linksSample*\\{sub-section:PERMISSION_DENIED_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NOPERMISSION_CREATE_ACCESS_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_CREATE_ACCESS_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NO_CREATE_ACCESS_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_CREATE_ACCESS_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NO_DELETE_ACCESS|class=node}{tr:id=name}{td}h6.NO_DELETE_ACCESS{td}{tr}{tr:id=des}{td}{sub-section:NO_DELETE_ACCESS_des|text=|trigger=button}{sub-section}{sub-section:NO_DELETE_ACCESS_des|trigger=none|class=sIndent}Exception code for NO\_DELETE\_ACCESS.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_DELETE_ACCESS_snc|text=|trigger=button}{sub-section}{sub-section:NO_DELETE_ACCESS_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:NO_DELETE_ACCESS_prs|text=|trigger=button}{sub-section}{sub-section:NO_DELETE_ACCESS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_DELETE_ACCESS_retDENIED_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=RECORD_LOCKED|class=node}{tr:id=name}{td}h6.RECORD_LOCKED{td}{tr}{tr:id=des}{td}{sub-section:RECORD_LOCKED_des|text=|trigger=button}{sub-section}{sub-section:NORECORD_DELETELOCKED_ACCESS_retdes|trigger=none|class=sIndent}[Number]Exception code for RECORD\_LOCKED.

This code is used when a record could not be updated or deleted because it is locked by another client.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=seesnc}{td}*Also seeSince*\\{sub-section:NORECORD_DELETELOCKED_ACCESS_seesnc|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NORECORD_DELETELOCKED_ACCESS_seesnc|trigger=none|class=sIndent} Replace with version info{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linkprs}{td}*External linksParameters*\\{sub-section:NORECORD_DELETELOCKED_ACCESS_linkprs|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NORECORD_DELETELOCKED_ACCESS_linkprs|trigger=none|class=sIndent}{sub-section}{div}{td}{tr}{builder-show}{tr:id=samret}{td}*SampleReturns*\\{sub-section:NORECORD_DELETELOCKED_ACCESS_samret|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NORECORD_DELETELOCKED_ACCESS_samret|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{|class=sIndent}[Number]{sub-section}{div}{td}{tr}{trbuilder-show:class=lastDetailRow}{td}{tdpermission=edit}{tr}{tbody}{tbody:id=NO_LICENSE|class=nodesee}{tr:id=name}{td}h6.NO_LICENSE{td}{tr}{tr:id=des}{td}{td}*Also see*\\{sub-section:NORECORD_LICENSELOCKED_dessee|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NORECORD_LICENSELOCKED_dessee|trigger=none|class=sIndent}Exception code for NO\_LICENSE.{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snclink}{td}*SinceExternal links*\\{sub-section:NORECORD_LICENSELOCKED_snclink|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NORECORD_LICENSELOCKED_snclink|trigger=none|class=sIndent} Replace with version info{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prssam}{td}*ParametersSample*\\{sub-section:NORECORD_LICENSELOCKED_prssam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NORECORD_LICENSELOCKED_prssam|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_LICENSE_ret|text=|trigger=button}{sub-section}{sub-section:NO_LICENSE_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NO_LICENSE_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_LICENSE_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NO_LICENSE_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_LICENSE_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NO_LICENSE_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_LICENSE_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-showcode:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NORECORD_MODIFYVALIDATION_ACCESSFAILED|class=node}{tr:id=name}{td}h6.NORECORD_MODIFYVALIDATION_ACCESSFAILED{td}{tr}{tr:id=des}{td}{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_des|text=|trigger=button}{sub-section}{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_des|trigger=none|class=sIndent}Exception code for NO\_MODIFY\_ACCESS}Exception code for RECORD\_VALIDATION\_FAILED.

This code is used when a record update/insert was rejected by a pre\-update/insert Servoy trigger.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_snc|text=|trigger=button}{sub-section}{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_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:NORECORD_MODIFYVALIDATION_ACCESSFAILED_prs|text=|trigger=button}{sub-section}{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_ret|text=|trigger=button}{sub-section}{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NORECORD_MODIFYVALIDATION_ACCESSFAILED_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=NO_PARENT_DELETE_WITH_RELATED_RECORDS|class=node}{tr:id=name}{td}h6.NO_PARENT_DELETE_WITH_RELATED_RECORDS{td}{tr}{tr:id=des}{td}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_des|text=|trigger=button}{sub-section}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_des|trigger=none|class=sIndent}Exception code for NO\_PARENT\_DELETE\_WITH\_RELATED\_RECORDS.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_snc|text=|trigger=button}{sub-section}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_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:NO_PARENT_DELETE_WITH_RELATED_RECORDS_prs|text=|trigger=button}{sub-section}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_ret|text=|trigger=button}{sub-section}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_linkcode:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=SAVE_FAILED|class=node}{tr:id=name}{td}h6.SAVE_FAILED{td}{tr}{tr:id=des}{td}{sub-section:SAVE_FAILED_des|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NOSAVE_PARENT_DELETE_WITH_RELATED_RECORDS_linkFAILED_des|trigger=none|class=sIndent}Exception code for SAVE\_FAILED.

This code is used when a javascript exception occurred during saving data to the database.{sub-section}{div}{td}{tr}{builder-show:permission=edit}{tr:id=samsnc}{td}*SampleSince*\\{sub-section:NOSAVE_PARENT_DELETE_WITH_RELATED_RECORDS_samFAILED_snc|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NOSAVE_PARENT_DELETE_WITH_RELATED_RECORDS_samFAILED_snc|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{|class=sIndent} Replace with version info{sub-section}{divtd}{tdtr}{trbuilder-show}{trbuilder-show:classpermission=lastDetailRowedit}{tdtr:id=prs}{td}{tr}{tbody}{tbody:id=NO_RELATED_CREATE_ACCESS|class=node}{tr:id=name}{td}h6.NO_RELATED_CREATE_ACCESS{td}{tr*Parameters*\\{sub-section:SAVE_FAILED_prs|text=|trigger=button}{sub-section}{sub-section:SAVE_FAILED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=desret}{td}*Returns*\\{sub-section:NOSAVE_RELATED_CREATE_ACCESS_desFAILED_ret|text=|trigger=button}{sub-section}{sub-section:NOSAVE_RELATED_CREATE_ACCESS_desFAILED_ret|trigger=none|class=sIndent}Exception code for NO\_RELATED\_CREATE\_ACCESS.[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=sncsee}{td}*SinceAlso see*\\{sub-section:NOSAVE_RELATED_CREATE_ACCESS_sncFAILED_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NOSAVE_RELATED_CREATE_ACCESS_sncFAILED_see|trigger=none|class=sIndent} Replace with version info}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prslink}{td}*ParametersExternal links*\\{sub-section:NOSAVE_RELATED_CREATE_ACCESS_prsFAILED_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NOSAVE_RELATED_CREATE_ACCESS_prsFAILED_link|trigger=none|class=sIndent}{sub-section}{div}{td}{tr}{builder-show}{tr:id=retsam}{td}*ReturnsSample*\\{sub-section:NOSAVE_RELATED_CREATE_ACCESS_retFAILED_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NOSAVE_RELATED_CREATE_ACCESS_retFAILED_sam|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:NO_RELATED_CREATE_ACCESS_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_RELATED_CREATE_ACCESS_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:NO_RELATED_CREATE_ACCESS_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_RELATED_CREATE_ACCESS_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:NO_RELATED_CREATE_ACCESS_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:NO_RELATED_CREATE_ACCESS_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=PERMISSION_DENIED|class=node}{tr:id=name}{td}h6.PERMISSION_DENIED{td}{tr}{tr:id=des}{td}{sub-section:PERMISSION_DENIED_des|text=|trigger=button}{sub-section}{sub-section:PERMISSION_DENIED_des|trigger=none|class=sIndent}Exception code for PERMISSION\_DENIED.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:PERMISSION_DENIED_snc|text=|trigger=button}{sub-section}{sub-section:PERMISSION_DENIED_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:PERMISSION_DENIED_prs|text=|trigger=button}{sub-section}{sub-section:PERMISSION_DENIED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:PERMISSION_DENIED_ret|text=|trigger=button}{sub-section}{sub-section:PERMISSION_DENIED_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:PERMISSION_DENIED_see{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=UNEXPECTED_UPDATE_COUNT|class=node}{tr:id=name}{td}h6.UNEXPECTED_UPDATE_COUNT{td}{tr}{tr:id=des}{td}{sub-section:UNEXPECTED_UPDATE_COUNT_des|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:PERMISSION_DENIED_see|trigger=none}{sub-section}{divsub-section:UNEXPECTED_UPDATE_COUNT_des|trigger=none|class=sIndent}Exception code for UNEXPECTED\_UPDATE\_COUNT.

This code is used when a data could not be deleted or updated when expected (for example 
when a record was deleted outside Servoy and a Servoy client wants to update the record).{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksnc}{td}*External linksSince*\\{sub-section:PERMISSIONUNEXPECTED_UPDATE_DENIEDCOUNT_linksnc|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:PERMISSIONUNEXPECTED_UPDATE_DENIEDCOUNT_linksnc|trigger=none|class=sIndent} Replace with version info{sub-section}{divtd}{tdtr}{trbuilder-show}{builder-show:permission=edit}{tr:id=samprs}{td}*SampleParameters*\\{sub-section:PERMISSIONUNEXPECTED_UPDATE_DENIEDCOUNT_samprs|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:PERMISSION_DENIED_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=RECORD_LOCKED|class=node}{tr:id=name}{td}h6.RECORD_LOCKED{td}{tr|trigger=button}{sub-section}{sub-section:UNEXPECTED_UPDATE_COUNT_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=desret}{td}*Returns*\\{sub-section:RECORDUNEXPECTED_UPDATE_LOCKEDCOUNT_desret|text=|trigger=button}{sub-section}{sub-section:RECORDUNEXPECTED_UPDATE_LOCKEDCOUNT_desret|trigger=none|class=sIndent}Exception code for RECORD\_LOCKED.[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=sncsee}{td}*SinceAlso see*\\{sub-section:RECORDUNEXPECTED_UPDATE_LOCKEDCOUNT_sncsee|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:RECORDUNEXPECTED_UPDATE_LOCKEDCOUNT_sncsee|trigger=none|class=sIndent} Replace with version info{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prslink}{td}*ParametersExternal links*\\{sub-section:RECORDUNEXPECTED_UPDATE_LOCKEDCOUNT_prslink|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:RECORDUNEXPECTED_UPDATE_LOCKEDCOUNT_prslink|trigger=none|class=sIndent}{sub-section}{div}{td}{tr}{builder-show}{tr:id=retsam}{td}*ReturnsSample*\\{sub-section:RECORDUNEXPECTED_UPDATE_LOCKEDCOUNT_retsam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:RECORD_LOCKED_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:RECORD_LOCKED_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:RECORD_LOCKED_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:RECORD_LOCKED_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:RECORD_LOCKED_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:RECORD_LOCKED_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:RECORD_LOCKED_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{:UNEXPECTED_UPDATE_COUNT_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION|class=node}{tr:id=name}{td}h6.RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION{td}{tr}{tr:id=des}{td}{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_des|text=|trigger=button}{sub-section}{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_des|trigger=none|class=sIndent}Exception code for RECORDUNKNOWN\_VALIDATION\_FAILEDDATABASE\_EXCEPTION.

This code is used when an unrecognized database exception has occurred.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_snc|text=|trigger=button}{sub-section}{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_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:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_prs|text=|trigger=button}{sub-section}{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_ret|text=|trigger=button}{sub-section}{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links links*\\{sub-section:UNKNOWN_DATABASE_EXCEPTION_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:UNKNOWN_DATABASE_EXCEPTION_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_linksam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:RECORDUNKNOWN_VALIDATIONDATABASE_FAILEDEXCEPTION_linksam|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:RECORD_VALIDATION_FAILED_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:RECORD_VALIDATION_FAILED_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=SAVE_FAILED|class=node}{tr:id=name}{td}h6.SAVE_FAILED{td}{tr}{tr:id=des}{td}{sub-section:SAVE_FAILED_des|text=|trigger=button}{sub-section}{sub-section:SAVE_FAILED_des|trigger=none|class=sIndent}Exception code for SAVE\_FAILED.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:SAVE_FAILED_snc|text=|trigger=button}{sub-section}{sub-section:SAVE_FAILED_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:SAVE_FAILED_prs|text=|trigger=button}{sub-section}{sub-section:SAVE_FAILED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:SAVE_FAILED_ret|text=|trigger=button}{sub-section}{sub-section:SAVE_FAILED_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:SAVE_FAILED_seecode:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=getErrorCode|class=node}{tr:id=name}{td}h6.getErrorCode{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getErrorCode{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:getErrorCode_des|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:SAVEgetErrorCode_FAILED_seedes|trigger=none|class=sIndent}Returns the error code for this ServoyException. Can be one of the constants declared in ServoyException.{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=linksnc}{td}*External linksSince*\\{sub-section:SAVEgetErrorCode_FAILED_linksnc|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:SAVEgetErrorCode_FAILED_linksnc|trigger=none|class=sIndent} Replace with version info{sub-section}{divtd}{tdtr}{trbuilder-show}{builder-showshow:permission=edit}{tr:id=samprs}{td}*SampleParameters*\\{sub-section:SAVEgetErrorCode_FAILED_samprs|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:SAVEgetErrorCode_FAILED_samprs|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{|class=sIndent}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{tdbuilder-show}{tr}{tbody}{tbody:id=UNKNOWN_DATABASE_EXCEPTION|class=noderet}{tr:id=name}{td}h6.UNKNOWN_DATABASE_EXCEPTION{td}{tr}{tr:id=des}{td}td}*Returns*\\{sub-section:UNKNOWN_DATABASE_EXCEPTION_desgetErrorCode_ret|text=|trigger=button}{sub-section}{sub-section:UNKNOWN_DATABASE_EXCEPTION_desgetErrorCode_ret|trigger=none|class=sIndent}Exception[Number] -- the error code for UNKNOWN\_DATABASE\_EXCEPTIONthis ServoyException. Can be one of the constants declared in ServoyException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=sncsee}{td}*SinceAlso see*\\{sub-section:UNKNOWN_DATABASE_EXCEPTION_sncgetErrorCode_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:UNKNOWN_DATABASE_EXCEPTION_sncgetErrorCode_see|trigger=none|class=sIndent} Replace with version info{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prslink}{td}*ParametersExternal links*\\{sub-section:UNKNOWN_DATABASE_EXCEPTION_prsgetErrorCode_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:UNKNOWN_DATABASE_EXCEPTION_prsgetErrorCode_link|trigger=none|class=sIndent}{sub-section}{div}{td}{tr}{builder-show}{tr:id=retsam}{td}*ReturnsSample*\\{sub-section:UNKNOWN_DATABASE_EXCEPTION_retgetErrorCode_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:UNKNOWN_DATABASE_EXCEPTION_retgetErrorCode_sam|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:UNKNOWN_DATABASE_EXCEPTION_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:UNKNOWN_DATABASE_EXCEPTION_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:UNKNOWN_DATABASE_EXCEPTION_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:UNKNOWN_DATABASE_EXCEPTION_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:UNKNOWN_DATABASE_EXCEPTION_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:UNKNOWN_DATABASE_EXCEPTION_sam|trigger=none}{builder-show:permission=edit}{code:language=javascript}

{code}{builder-show}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output('MSG: '+ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (servoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( 'Error',  'It seems you did not fill in a required field', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output('SQL: '+dataException.getSQL())
				application.output('SQLState: '+dataException.getSQLState())
				application.output('VendorErrorCode: '+dataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:padding=0px|width=100%}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=getErrorCodegetMessage|class=node}{tr:id=name}{td}h6.getErrorCodegetMessage{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[NumberString]{span}{span:id=iets|style=float: left; font-weight: bold;}getErrorCodegetMessage{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:getErrorCodegetMessage_des|text=|trigger=button}{sub-section}{sub-section:getErrorCodegetMessage_des|trigger=none|class=sIndent}Returns the errorstring codemessage for this ServoyException. Can be one of the constants declared in this ServoyException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getErrorCodegetMessage_snc|text=|trigger=button}{sub-section}{sub-section:getErrorCodegetMessage_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:getErrorCodegetMessage_prs|text=|trigger=button}{sub-section}{sub-section:getErrorCodegetMessage_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getErrorCodegetMessage_ret|text=|trigger=button}{sub-section}{sub-section:getErrorCodegetMessage_ret|trigger=none|class=sIndent}[NumberString] -- the errorstring codemessage for this ServoyException. Can be one of the constants declared in ServoyException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getErrorCodegetMessage_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getErrorCodegetMessage_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getErrorCodegetMessage_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getErrorCodegetMessage_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getErrorCodegetMessage_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getErrorCodegetMessage_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
var e =
arguments[0];
application.output("'Exception Object: "'+eex)
application.output("'MSG: "'+eex.getMessage())
if (eex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+eservoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (eservoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( "'Error"',  "'It seems you did not fill in a required field"', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
				  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output("'SQL: "'+recorddataException.exception.getSQL())
				application.output("'SQLState: "'+recorddataException.exception.getSQLState())
				application.output("'VendorErrorCode: "'+record.exceptiondataException.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getMessagegetStackTrace|class=node}{tr:id=name}{td}h6.getMessagegetStackTrace{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getMessagegetStackTrace{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{tr:id=des}{td}{sub-section:getMessagegetStackTrace_des|text=|trigger=button}{sub-section}{sub-section:getMessagegetStackTrace_des|trigger=none|class=sIndent}Returns the stringstack messagetrace for this ServoyException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getMessagegetStackTrace_snc|text=|trigger=button}{sub-section}{sub-section:getMessagegetStackTrace_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:getMessagegetStackTrace_prs|text=|trigger=button}{sub-section}{sub-section:getMessagegetStackTrace_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getMessagegetStackTrace_ret|text=|trigger=button}{sub-section}{sub-section:getMessagegetStackTrace_ret|trigger=none|class=sIndent}[String] -- the string stack messagetrace for this ServoyException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getMessagegetStackTrace_see|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getMessagegetStackTrace_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getMessagegetStackTrace_link|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getMessagegetStackTrace_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getMessagegetStackTrace_sam|text=|trigger=button}{sub-section}{div:class=sIndent}{sub-section:getMessagegetStackTrace_sam|trigger=none}{code:language=javascript}
//this sample script should be attached to onError method handler in the solution settings
var e = arguments[0];
application.output("'Exception Object: "'+eex)
application.output("'MSG: "'+e.getMessage())
if (e instanceof ServoyException)
{ex.getMessage())
if (ex instanceof ServoyException)
{
 /** @type {ServoyException} */
 var servoyException = ex;
	application.output("is a ServoyException")
	application.output("Errorcode: "+e.getErrorCode())servoyException.getErrorCode())
 var trace = "";
 if (ex.getScriptStackTrace) trace = servoyException.getScriptStackTrace();
 else if (servoyException.getStackTrace)  trace = servoyException.getStackTrace();
	if (eservoyException.getErrorCode() == ServoyException.SAVE_FAILED)
	{
 		plugins.dialogs.showErrorDialog( "'Error"',  "'It seems you did not fill in a required field"', 'OK');
 		//Get the failed records after a save
 		var array = databaseManager.getFailedRecords()
 		for( var i = 0 ; i < array.length ; i++ )
 		{
			  var record = array[i];
			  application.output(record.exception);
			  if (record.exception instanceof DataException)
			  {
             /** @type {DataException} */
             var dataException = record.exception;
				application.output("'SQL: "'+record.exceptiondataException.getSQL())
				application.output("'SQLState: "'+recorddataException.exception.getSQLState())
				application.output("'VendorErrorCode: "'+recorddataException.exception.getVendorErrorCode())
			  }
		}
		return false
	}
}
//if returns false or no return, error is not reported to client; if returns true error is reported
//by default error report means logging the error, in smart client an error dialog will also show up
return true
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}