{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 sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Constants Summary{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_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 sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}Method Summary{th}{tr}{tbody}{tr}{td}[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}[Object]\[]{td}{td}[#getParameters]\()
Returns the parameters of the SQL query that caused this DataException in an array.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getSQL]\()
Returns the SQL query that caused this DataException.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getSQLState]\()
Returns the SQLState for this DataException.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getScriptStackTrace]\()
Returns the script stack trace for this ServoyException if this could be created.{td}{tr}{tbody}{tbody}{tr}{td}[String]{td}{td}[#getStackTrace]\()
Returns the stack trace for this ServoyException.{td}{tr}{tbody}{tbody}{tr}{td}[Object]{td}{td}[#getValue]\()
Returns the value for this DataException.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getVendorErrorCode]\()
Returns the error code of the error thrown by the back\-end database server.{td}{tr}{tbody}{table}\\ 

{table:id=constant|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:ABSTRACT_FORM_des|trigger=button|text=}{sub-section}{sub-section:ABSTRACT_FORM_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:ABSTRACT_FORM_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:ABSTRACT_FORM_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=ACQUIRE_LOCK_FAILURE|class=node}{tr:id=name}{td}h6.ACQUIRE_LOCK_FAILURE{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:ACQUIRE_LOCK_FAILURE_des|trigger=button|text=}{sub-section}{sub-section:ACQUIRE_LOCK_FAILURE_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:ACQUIRE_LOCK_FAILURE_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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*\\{sub-section:ACQUIRE_LOCK_FAILURE_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:ACQUIRE_LOCK_FAILURE_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:ACQUIRE_LOCK_FAILURE_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:ACQUIRE_LOCK_FAILURE_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:ACQUIRE_LOCK_FAILURE_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:ACQUIRE_LOCK_FAILURE_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=BAD_SQL_SYNTAX|class=node}{tr:id=name}{td}h6.BAD_SQL_SYNTAX{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:BAD_SQL_SYNTAX_des|trigger=button|text=}{sub-section}{sub-section:BAD_SQL_SYNTAX_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:BAD_SQL_SYNTAX_snc|trigger=button|text=}{sub-section}{sub-section:BAD_SQL_SYNTAX_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:BAD_SQL_SYNTAX_prs|trigger=button|text=}{sub-section}{sub-section:BAD_SQL_SYNTAX_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:BAD_SQL_SYNTAX_ret|trigger=button|text=}{sub-section}{sub-section:BAD_SQL_SYNTAX_ret|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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:BAD_SQL_SYNTAX_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=CLIENT_NOT_AUTHORIZED|class=node}{tr:id=name}{td}h6.CLIENT_NOT_AUTHORIZED{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:CLIENT_NOT_AUTHORIZED_des|trigger=button|text=}{sub-section}{sub-section:CLIENT_NOT_AUTHORIZED_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:CLIENT_NOT_AUTHORIZED_snc|trigger=button|text=}{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|trigger=button|text=}{sub-section}{sub-section:CLIENT_NOT_AUTHORIZED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:CLIENT_NOT_AUTHORIZED_ret|trigger=button|text=}{sub-section}{sub-section:CLIENT_NOT_AUTHORIZED_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:CLIENT_NOT_AUTHORIZED_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:CLIENT_NOT_AUTHORIZED_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:CLIENT_NOT_AUTHORIZED_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:CLIENT_NOT_AUTHORIZED_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:CLIENT_NOT_AUTHORIZED_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:CLIENT_NOT_AUTHORIZED_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=DATA_ACCESS_RESOURCE_FAILURE|class=node}{tr:id=name}{td}h6.DATA_ACCESS_RESOURCE_FAILURE{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:DATA_ACCESS_RESOURCE_FAILURE_des|trigger=button|text=}{sub-section}{sub-section:DATA_ACCESS_RESOURCE_FAILURE_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:DATA_ACCESS_RESOURCE_FAILURE_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DATA_ACCESS_RESOURCE_FAILURE_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=DATA_INTEGRITY_VIOLATION|class=node}{tr:id=name}{td}h6.DATA_INTEGRITY_VIOLATION{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:DATA_INTEGRITY_VIOLATION_des|trigger=button|text=}{sub-section}{sub-section:DATA_INTEGRITY_VIOLATION_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:DATA_INTEGRITY_VIOLATION_snc|trigger=button|text=}{sub-section}{sub-section:DATA_INTEGRITY_VIOLATION_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_INTEGRITY_VIOLATION_prs|trigger=button|text=}{sub-section}{sub-section:DATA_INTEGRITY_VIOLATION_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:DATA_INTEGRITY_VIOLATION_ret|trigger=button|text=}{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|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DATA_INTEGRITY_VIOLATION_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:DATA_INTEGRITY_VIOLATION_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DATA_INTEGRITY_VIOLATION_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:DATA_INTEGRITY_VIOLATION_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DATA_INTEGRITY_VIOLATION_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=DEADLOCK|class=node}{tr:id=name}{td}h6.DEADLOCK{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:DEADLOCK_des|trigger=button|text=}{sub-section}{sub-section:DEADLOCK_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:DEADLOCK_snc|trigger=button|text=}{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|trigger=button|text=}{sub-section}{sub-section:DEADLOCK_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:DEADLOCK_ret|trigger=button|text=}{sub-section}{sub-section:DEADLOCK_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:DEADLOCK_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DEADLOCK_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:DEADLOCK_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DEADLOCK_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:DEADLOCK_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DEADLOCK_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=DELETE_NOT_GRANTED|class=node}{tr:id=name}{td}h6.DELETE_NOT_GRANTED{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:DELETE_NOT_GRANTED_des|trigger=button|text=}{sub-section}{sub-section:DELETE_NOT_GRANTED_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:DELETE_NOT_GRANTED_snc|trigger=button|text=}{sub-section}{sub-section:DELETE_NOT_GRANTED_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:DELETE_NOT_GRANTED_prs|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DELETE_NOT_GRANTED_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:DELETE_NOT_GRANTED_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:DELETE_NOT_GRANTED_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=EXECUTE_PROGRAM_FAILED|class=node}{tr:id=name}{td}h6.EXECUTE_PROGRAM_FAILED{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:EXECUTE_PROGRAM_FAILED_des|trigger=button|text=}{sub-section}{sub-section:EXECUTE_PROGRAM_FAILED_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:EXECUTE_PROGRAM_FAILED_snc|trigger=button|text=}{sub-section}{sub-section:EXECUTE_PROGRAM_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:EXECUTE_PROGRAM_FAILED_prs|trigger=button|text=}{sub-section}{sub-section:EXECUTE_PROGRAM_FAILED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:EXECUTE_PROGRAM_FAILED_ret|trigger=button|text=}{sub-section}{sub-section:EXECUTE_PROGRAM_FAILED_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:EXECUTE_PROGRAM_FAILED_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:EXECUTE_PROGRAM_FAILED_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:EXECUTE_PROGRAM_FAILED_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:EXECUTE_PROGRAM_FAILED_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:EXECUTE_PROGRAM_FAILED_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:EXECUTE_PROGRAM_FAILED_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=INCORRECT_LOGIN|class=node}{tr:id=name}{td}h6.INCORRECT_LOGIN{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:INCORRECT_LOGIN_des|trigger=button|text=}{sub-section}{sub-section:INCORRECT_LOGIN_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:INCORRECT_LOGIN_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:INVALID_INPUT_des|trigger=button|text=}{sub-section}{sub-section:INVALID_INPUT_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:INVALID_INPUT_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:INVALID_RESULTSET_ACCESS_des|trigger=button|text=}{sub-section}{sub-section:INVALID_RESULTSET_ACCESS_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:INVALID_RESULTSET_ACCESS_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:MAINTENANCE_MODE_des|trigger=button|text=}{sub-section}{sub-section:MAINTENANCE_MODE_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:MAINTENANCE_MODE_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:NO_ACCESS_des|trigger=button|text=}{sub-section}{sub-section:NO_ACCESS_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_ACCESS_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:NO_CREATE_ACCESS_des|trigger=button|text=}{sub-section}{sub-section:NO_CREATE_ACCESS_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_CREATE_ACCESS_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:NO_DELETE_ACCESS_des|trigger=button|text=}{sub-section}{sub-section:NO_DELETE_ACCESS_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_DELETE_ACCESS_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:NO_LICENSE_des|trigger=button|text=}{sub-section}{sub-section:NO_LICENSE_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_LICENSE_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:NO_MODIFY_ACCESS_des|trigger=button|text=}{sub-section}{sub-section:NO_MODIFY_ACCESS_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_MODIFY_ACCESS_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_des|trigger=button|text=}{sub-section}{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_PARENT_DELETE_WITH_RELATED_RECORDS_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:NO_RELATED_CREATE_ACCESS_des|trigger=button|text=}{sub-section}{sub-section:NO_RELATED_CREATE_ACCESS_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:NO_RELATED_CREATE_ACCESS_snc|trigger=button|text=}{sub-section}{sub-section:NO_RELATED_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_RELATED_CREATE_ACCESS_prs|trigger=button|text=}{sub-section}{sub-section:NO_RELATED_CREATE_ACCESS_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:NO_RELATED_CREATE_ACCESS_ret|trigger=button|text=}{sub-section}{sub-section:NO_RELATED_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_RELATED_CREATE_ACCESS_see|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:NO_RELATED_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=PERMISSION_DENIED|class=node}{tr:id=name}{td}h6.PERMISSION_DENIED{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:PERMISSION_DENIED_des|trigger=button|text=}{sub-section}{sub-section:PERMISSION_DENIED_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:PERMISSION_DENIED_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:PERMISSION_DENIED_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:PERMISSION_DENIED_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:PERMISSION_DENIED_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:PERMISSION_DENIED_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:PERMISSION_DENIED_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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:RECORD_LOCKED_des|trigger=button|text=}{sub-section}{sub-section:RECORD_LOCKED_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:RECORD_LOCKED_snc|trigger=button|text=}{sub-section}{sub-section:RECORD_LOCKED_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:RECORD_LOCKED_prs|trigger=button|text=}{sub-section}{sub-section:RECORD_LOCKED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:RECORD_LOCKED_ret|trigger=button|text=}{sub-section}{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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:RECORD_LOCKED_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_VALIDATION_FAILED|class=node}{tr:id=name}{td}h6.RECORD_VALIDATION_FAILED{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:RECORD_VALIDATION_FAILED_des|trigger=button|text=}{sub-section}{sub-section:RECORD_VALIDATION_FAILED_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:RECORD_VALIDATION_FAILED_snc|trigger=button|text=}{sub-section}{sub-section:RECORD_VALIDATION_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:RECORD_VALIDATION_FAILED_prs|trigger=button|text=}{sub-section}{sub-section:RECORD_VALIDATION_FAILED_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:RECORD_VALIDATION_FAILED_ret|trigger=button|text=}{sub-section}{sub-section:RECORD_VALIDATION_FAILED_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:RECORD_VALIDATION_FAILED_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:RECORD_VALIDATION_FAILED_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:RECORD_VALIDATION_FAILED_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:RECORD_VALIDATION_FAILED_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:RECORD_VALIDATION_FAILED_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:RECORD_VALIDATION_FAILED_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=SAVE_FAILED|class=node}{tr:id=name}{td}h6.SAVE_FAILED{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:SAVE_FAILED_des|trigger=button|text=}{sub-section}{sub-section:SAVE_FAILED_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:SAVE_FAILED_snc|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{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_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:SAVE_FAILED_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:SAVE_FAILED_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:SAVE_FAILED_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:SAVE_FAILED_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:SAVE_FAILED_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=UNEXPECTED_UPDATE_COUNT|class=node}{tr:id=name}{td}h6.UNEXPECTED_UPDATE_COUNT{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:UNEXPECTED_UPDATE_COUNT_des|trigger=button|text=}{sub-section}{sub-section:UNEXPECTED_UPDATE_COUNT_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:UNEXPECTED_UPDATE_COUNT_snc|trigger=button|text=}{sub-section}{sub-section:UNEXPECTED_UPDATE_COUNT_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:UNEXPECTED_UPDATE_COUNT_prs|trigger=button|text=}{sub-section}{sub-section:UNEXPECTED_UPDATE_COUNT_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:UNEXPECTED_UPDATE_COUNT_ret|trigger=button|text=}{sub-section}{sub-section:UNEXPECTED_UPDATE_COUNT_ret|trigger=none|class=sIndent}[Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:UNEXPECTED_UPDATE_COUNT_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:UNEXPECTED_UPDATE_COUNT_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:UNEXPECTED_UPDATE_COUNT_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:UNEXPECTED_UPDATE_COUNT_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:UNEXPECTED_UPDATE_COUNT_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section: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=UNKNOWN_DATABASE_EXCEPTION|class=node}{tr:id=name}{td}h6.UNKNOWN_DATABASE_EXCEPTION{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:UNKNOWN_DATABASE_EXCEPTION_des|trigger=button|text=}{sub-section}{sub-section:UNKNOWN_DATABASE_EXCEPTION_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:UNKNOWN_DATABASE_EXCEPTION_snc|trigger=button|text=}{sub-section}{sub-section:UNKNOWN_DATABASE_EXCEPTION_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:UNKNOWN_DATABASE_EXCEPTION_prs|trigger=button|text=}{sub-section}{sub-section:UNKNOWN_DATABASE_EXCEPTION_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:UNKNOWN_DATABASE_EXCEPTION_ret|trigger=button|text=}{sub-section}{sub-section:UNKNOWN_DATABASE_EXCEPTION_ret|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|trigger=button|text=}{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|trigger=button|text=}{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|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:UNKNOWN_DATABASE_EXCEPTION_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}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{th}{tr}{tbody:id=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}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getErrorCode_des|trigger=button|text=}{sub-section}{sub-section:getErrorCode_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getErrorCode_snc|trigger=button|text=}{sub-section}{sub-section:getErrorCode_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:getErrorCode_prs|trigger=button|text=}{sub-section}{sub-section:getErrorCode_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getErrorCode_ret|trigger=button|text=}{sub-section}{sub-section:getErrorCode_ret|trigger=none|class=sIndent}[Number] -- the error code 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:getErrorCode_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getErrorCode_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getErrorCode_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getErrorCode_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getErrorCode_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getErrorCode_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=getMessage|class=node}{tr:id=name}{td}h6.getMessage{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getMessage{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getMessage_des|trigger=button|text=}{sub-section}{sub-section:getMessage_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getMessage_snc|trigger=button|text=}{sub-section}{sub-section:getMessage_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:getMessage_prs|trigger=button|text=}{sub-section}{sub-section:getMessage_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getMessage_ret|trigger=button|text=}{sub-section}{sub-section:getMessage_ret|trigger=none|class=sIndent}[String] -- the string message for this ServoyException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getMessage_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMessage_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getMessage_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMessage_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getMessage_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMessage_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=getParameters|class=node}{tr:id=name}{td}h6.getParameters{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Object]\[]{span}{span:id=iets|style=float: left; font-weight: bold;}getParameters{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getParameters_des|trigger=button|text=}{sub-section}{sub-section:getParameters_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getParameters_snc|trigger=button|text=}{sub-section}{sub-section:getParameters_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:getParameters_prs|trigger=button|text=}{sub-section}{sub-section:getParameters_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getParameters_ret|trigger=button|text=}{sub-section}{sub-section:getParameters_ret|trigger=none|class=sIndent}[Object]\[] -- the parameters of the SQL query that caused this DataException in an array.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getParameters_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getParameters_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getParameters_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getParameters_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getParameters_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getParameters_sam|trigger=none}{code:language=javascript}
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{   
	var param = record.exception.getParameters();
	for (j = 0; j < param.length; j++)
	{      
		application.output("SQL Parameter [" + j + "]: " + param[j]);  
	}
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getSQL|class=node}{tr:id=name}{td}h6.getSQL{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getSQL{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getSQL_des|trigger=button|text=}{sub-section}{sub-section:getSQL_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getSQL_snc|trigger=button|text=}{sub-section}{sub-section:getSQL_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:getSQL_prs|trigger=button|text=}{sub-section}{sub-section:getSQL_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getSQL_ret|trigger=button|text=}{sub-section}{sub-section:getSQL_ret|trigger=none|class=sIndent}[String] -- the SQL query that caused this DataException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getSQL_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getSQL_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getSQL_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getSQL_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getSQL_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getSQL_sam|trigger=none}{code:language=javascript}
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
	application.output("SQL: " + record.exception.getSQL());
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getSQLState|class=node}{tr:id=name}{td}h6.getSQLState{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getSQLState{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getSQLState_des|trigger=button|text=}{sub-section}{sub-section:getSQLState_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getSQLState_snc|trigger=button|text=}{sub-section}{sub-section:getSQLState_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:getSQLState_prs|trigger=button|text=}{sub-section}{sub-section:getSQLState_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getSQLState_ret|trigger=button|text=}{sub-section}{sub-section:getSQLState_ret|trigger=none|class=sIndent}[String] -- the SQLState for this DataException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getSQLState_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getSQLState_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getSQLState_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getSQLState_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getSQLState_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getSQLState_sam|trigger=none}{code:language=javascript}
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
	application.output("SQLState: " + record.exception.getSQLState());
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getScriptStackTrace|class=node}{tr:id=name}{td}h6.getScriptStackTrace{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getScriptStackTrace{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getScriptStackTrace_des|trigger=button|text=}{sub-section}{sub-section:getScriptStackTrace_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getScriptStackTrace_snc|trigger=button|text=}{sub-section}{sub-section:getScriptStackTrace_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:getScriptStackTrace_prs|trigger=button|text=}{sub-section}{sub-section:getScriptStackTrace_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getScriptStackTrace_ret|trigger=button|text=}{sub-section}{sub-section:getScriptStackTrace_ret|trigger=none|class=sIndent}[String] -- the string stack trace for this ServoyException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getScriptStackTrace_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getScriptStackTrace_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getScriptStackTrace_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getScriptStackTrace_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getScriptStackTrace_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getScriptStackTrace_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=getStackTrace|class=node}{tr:id=name}{td}h6.getStackTrace{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[String]{span}{span:id=iets|style=float: left; font-weight: bold;}getStackTrace{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getStackTrace_des|trigger=button|text=}{sub-section}{sub-section:getStackTrace_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getStackTrace_snc|trigger=button|text=}{sub-section}{sub-section:getStackTrace_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:getStackTrace_prs|trigger=button|text=}{sub-section}{sub-section:getStackTrace_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getStackTrace_ret|trigger=button|text=}{sub-section}{sub-section:getStackTrace_ret|trigger=none|class=sIndent}[String] -- the string stack trace for this ServoyException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getStackTrace_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getStackTrace_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getStackTrace_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getStackTrace_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getStackTrace_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getStackTrace_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=getValue|class=node}{tr:id=name}{td}h6.getValue{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Object]{span}{span:id=iets|style=float: left; font-weight: bold;}getValue{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getValue_des|trigger=button|text=}{sub-section}{sub-section:getValue_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getValue_snc|trigger=button|text=}{sub-section}{sub-section:getValue_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:getValue_prs|trigger=button|text=}{sub-section}{sub-section:getValue_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getValue_ret|trigger=button|text=}{sub-section}{sub-section:getValue_ret|trigger=none|class=sIndent}[Object] -- the value for this DataException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getValue_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValue_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getValue_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValue_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getValue_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getValue_sam|trigger=none}{code:language=javascript}
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
	application.output("VALUE: " + record.exception.getValue());
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{tbody:id=getVendorErrorCode|class=node}{tr:id=name}{td}h6.getVendorErrorCode{td}{tr}{tr:id=sig}{td}{span:style=float: left; margin-right: 5px;}[Number]{span}{span:id=iets|style=float: left; font-weight: bold;}getVendorErrorCode{span}{span:id=iets|style=float: left;}\(){span}{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:getVendorErrorCode_des|trigger=button|text=}{sub-section}{sub-section:getVendorErrorCode_des|trigger=none|class=sIndent}Replace with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getVendorErrorCode_snc|trigger=button|text=}{sub-section}{sub-section:getVendorErrorCode_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:getVendorErrorCode_prs|trigger=button|text=}{sub-section}{sub-section:getVendorErrorCode_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getVendorErrorCode_ret|trigger=button|text=}{sub-section}{sub-section:getVendorErrorCode_ret|trigger=none|class=sIndent}[Number] -- the error code of the error thrown by the back-end database server.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getVendorErrorCode_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getVendorErrorCode_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getVendorErrorCode_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getVendorErrorCode_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getVendorErrorCode_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getVendorErrorCode_sam|trigger=none}{code:language=javascript}
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
	application.output("VendorErrorCode: " + record.exception.getVendorErrorCode());
}
{code}{sub-section}{div}{td}{tr}{tr:class=lastDetailRow}{td}{td}{tr}{tbody}{table}