Child pages
  • DataException

Versions Compared

Key

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

{table:id=|class=servoy sSummary}{colgroup}{column:width=80px|padding=0px}{column}{column}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=2}MethodConstants Summary{th}{tr}{tbody}{tr}{td}[Number]{td}{td}[#getErrorCode]\()
Returns the error #ABSTRACT_FORM]
Exception code for this ServoyExceptionABSTRACT\_FORM.{td}{tr}{tbody}{tbody}{tr}{td}[StringNumber]{td}{td}[#getMessage]\()
Returns the string message for this ServoyException#ACQUIRE_LOCK_FAILURE]
Exception code for ACQUIRE\_LOCK\_FAILURE.{td}{tr}{tbody}{tbody}{tr}{td}[Object]\[Number]{td}{td}[#getParameters]\()
Returns the parameters of the SQL query that caused this DataException in an array#BAD_SQL_SYNTAX]
Exception code for BAD\_SQL\_SYNTAX.{td}{tr}{tbody}{tbody}{tr}{td}[StringNumber]{td}{td}[#getSQL]\()
Returns the SQL query that caused this DataException#CLIENT_NOT_AUTHORIZED]
Exception code for CLIENT\_NOT\_AUTHORIZED.{td}{tr}{tbody}{tbody}{tr}{td}[StringNumber]{td}{td}[#getSQLState]\()
Returns the SQLState for this DataException.{td#DATA_ACCESS_RESOURCE_FAILURE]
Exception code for DATA\_ACCESS\_RESOURCE\_FAILURE.{td}{tr}{tbody}{tbody}{tr}{td}[StringNumber]{td}{td}[#getStackTrace]\()
Returns the stack trace for this ServoyException#DATA_INTEGRITY_VIOLATION]
Exception code for DATA\_INTEGRITY\_VIOLATION.{td}{tr}{tbody}{tbody}{tr}{td}[ObjectNumber]{td}{td}[#getValue#DEADLOCK]\()
ReturnsException thecode value for this DataExceptionDEADLOCK.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{td}[#getVendorErrorCode]\()
Returns the error#DELETE_NOT_GRANTED]
Exception code of the error thrown by the back\-end database serverfor DELETE\_NOT\_GRANTED.{td}{tr}{tbody}{tbody}{tr}{td}[Number]{td}{table}\\ 

{table:id=function|class=servoy sDetail}{colgroup}{column:width=100%|padding=0px}{column}{colgroup}{tr:style=height: 30px;}{th:colspan=1}Method Details{thtd}[#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:id=getErrorCode|class=node}{tbody}{tr:id=name}{td}h6.getErrorCode{td}{tr}{tr:id=sig[Number]{td}{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[#INVALID_INPUT]
Exception code for INVALID\_INPUT.{td}{tr}{tbody}{tbody}{tr}{tr:id=des}td}[Number]{td}{sub-section:getErrorCode_des|trigger=button|text=}{sub-section}{sub-section:getErrorCode_des|trigger=none|class=sIndent}Returns 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=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}[#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}{builder-show}{builder-show:permission=edittbody}{tbody}{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}[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}{builder-showtbody}{builder-show:permission=edittbody}{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}[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:id=getMessage|class=node}{tr:id=name}{td}[Object]{td}{td}h6.getMessage[#getValue]\()
Returns the value for this DataException.{td}{tr}{tr:id=sigtbody}{tbody}{tr}{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[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=desname}{td}{sub-section:getMessageh6.ABSTRACT_FORM{td}{tr}{builder-show:permission=edit}{tr:id=des}{td}{sub-section:ABSTRACT_FORM_des|trigger=button|text=}{sub-section}{sub-section:getMessageABSTRACT_FORM_des|trigger=none|class=sIndent}ReturnsReplace the string message for this ServoyException.with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getMessageABSTRACT_FORM_snc|trigger=button|text=}{sub-section}{sub-section:getMessageABSTRACT_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:getMessageABSTRACT_FORM_prs|trigger=button|text=}{sub-section}{sub-section:getMessageABSTRACT_FORM_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getMessageABSTRACT_FORM_ret|trigger=button|text=}{sub-section}{sub-section:getMessageABSTRACT_FORM_ret|trigger=none|class=sIndent}[String] -- the string message for this ServoyException.Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getMessageABSTRACT_FORM_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMessageABSTRACT_FORM_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getMessageABSTRACT_FORM_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMessageABSTRACT_FORM_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getMessageABSTRACT_FORM_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getMessageABSTRACT_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=getParametersACQUIRE_LOCK_FAILURE|class=node}{tr:id=name}{td}h6.getParametersACQUIRE_LOCK_FAILURE{td}{tr}{builder-show:permission=edit}{tr:id=sigdes}{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}{tr:id=des}{td}{sub-section:getParameters_des|trigger=sub-section:ACQUIRE_LOCK_FAILURE_des|trigger=button|text=}{sub-section}{sub-section:getParametersACQUIRE_LOCK_FAILURE_des|trigger=none|class=sIndent}ReturnsReplace the parameters of the SQL query that caused this DataException in an array.with description{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getParametersACQUIRE_LOCK_FAILURE_snc|trigger=button|text=}{sub-section}{sub-section:getParametersACQUIRE_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:getParametersACQUIRE_LOCK_FAILURE_prs|trigger=button|text=}{sub-section}{sub-section:getParametersACQUIRE_LOCK_FAILURE_prs|trigger=none|class=sIndent}{sub-section}{td}{tr}{builder-show}{tr:id=ret}{td}*Returns*\\{sub-section:getParameters_retACQUIRE_LOCK_FAILURE_ret|trigger=button|text=}{sub-section}{sub-section:getParametersACQUIRE_LOCK_FAILURE_ret|trigger=none|class=sIndent}[Object]\[] -- the parameters of the SQL query that caused this DataException in an array.Number]{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=see}{td}*Also see*\\{sub-section:getParametersACQUIRE_LOCK_FAILURE_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getParametersACQUIRE_LOCK_FAILURE_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getParametersACQUIRE_LOCK_FAILURE_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getParametersACQUIRE_LOCK_FAILURE_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getParametersACQUIRE_LOCK_FAILURE_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getParametersACQUIRE_LOCK_FAILURE_sam|trigger=none}{code:language=javascript}
var record = array[i];//this sample script should be attached to onError method handler in the solution settings
application.output('Exception Object: '+ex)
application.output(record.exception);'MSG: '+ex.getMessage())
if (record.exceptionex instanceof DataExceptionServoyException)
{
	/** @type {ServoyException} */
	var paramservoyException = 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}{tr:id=des}{td}{sub-section:getSQL_des|trigger=button|text=}{sub-section}{sub-section:getSQL_des|trigger=none|class=sIndent}Returns the SQL query that caused this DataException.{sub-section}{td}{tr}{builder-show:permission=edit}{tr:id=snc}{td}*Since*\\{sub-section:getSQL_snc 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:getSQL_sncBAD_SQL_SYNTAX_des|trigger=none|class=sIndent} Replace with version infodescription{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=prssnc}{td}*ParametersSince*\\{sub-section:getSQL_prsBAD_SQL_SYNTAX_snc|trigger=button|text=}{sub-section}{sub-section:getSQL_prsBAD_SQL_SYNTAX_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=retprs}{td}*ReturnsParameters*\\{sub-section:getSQL_retBAD_SQL_SYNTAX_prs|trigger=button|text=}{sub-section}{sub-section:getSQL_retBAD_SQL_SYNTAX_prs|trigger=none|class=sIndent}[String] -- the SQL query that caused this DataException.{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:getSQLBAD_SQL_SYNTAX_see|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getSQLBAD_SQL_SYNTAX_see|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{builder-show:permission=edit}{tr:id=link}{td}*External links*\\{sub-section:getSQLBAD_SQL_SYNTAX_link|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getSQLBAD_SQL_SYNTAX_link|trigger=none}{sub-section}{div}{td}{tr}{builder-show}{tr:id=sam}{td}*Sample*\\{sub-section:getSQLBAD_SQL_SYNTAX_sam|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getSQLBAD_SQL_SYNTAX_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}{tr:id=des}{td}{sub-section:getSQLState_des|trigger=button|text=}{sub-section}{sub-section:getSQLState_des|trigger=none|class=sIndent}Returns the SQLState for this DataException.
This is a "SQLstate" string, which follows either the XOPEN SQLstate conventions or the SQL 99 conventions.
The values of the SQLState string are described in the appropriate spec.{sub-section}{td}{tr}{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
//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=linksnc}{td}*External linksSince*\\{sub-section:getSQLState_linkCLIENT_NOT_AUTHORIZED_snc|trigger=button|text=}{sub-section}{div:class=sIndent}{sub-section:getSQLState_linkCLIENT_NOT_AUTHORIZED_snc|trigger=none|class=sIndent} Replace with version info{sub-section}{divtd}{tdtr}{trbuilder-show}{builder-show:permission=edit}{tr:id=samprs}{td}*SampleParameters*\\{sub-section:getSQLState_samCLIENT_NOT_AUTHORIZED_prs|trigger=button|text=}{sub-section}{div:sub-section:CLIENT_NOT_AUTHORIZED_prs|trigger=none|class=sIndent}{sub-section:getSQLState_sam}{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}{code:language=javascript}
var record = array[i];
application.output(record.exception);
if (record.exception instanceof DataException)
{
	application.output("SQLState: " + record.exception.getSQLState());
}[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}ReturnsReplace the stack trace for this ServoyException.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}ReturnsReplace the value for this DataException.
The value is the object thrown in table pre\-insert, pre\-update or pre\-delete triggers.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}ReturnsReplace the error code of the error thrown by the back\-end database server.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}