I'm puzzled: I have ListGrid with a Filter. Depending on which column's Filter Editor is used, sometimes the ListGrid.Criteria is included, and sometimes it's omitted.
As the Criteria are always required at the OperationBinding (per business rule), changes to some Filter Editors are submitting an incomplete SQL query.
Here's my ListGrid, with notations re which ListGridFields include/omit the ListGrid Criteria:
Here are the ListGridFields for which the ListGrid Criteria are included when their Filter Editor criteria are submitted (SUCCESS):
The DateTime ListGridFields OMIT the ListGrid Criteria when their Filter Editor criteria are submitted (FAIL):
And here are the ListGridFields for which the ListGrid Criteria may or may not be OMITTED, depending on how their Filter Editors are configured:
Here is the OperationBinding:
Here is server log output when the ListGrid Criteria are properly included: "WHERE employee.org_id IN ( '43', '44' )"...
...and when the ListGrid Criteria are not included: "WHERE employee.org_id IN ( )"...
Here is SGWT Console RPC info from a Filter query with FAILURE status:
REQUEST: RPCRequest
REQUEST: Raw
REQUEST: DSRequest
RESPONSE: Raw
Your guidance is appreciated, thanks.
---------------------------------
SmartClient Version: v9.0p_2013-12-01/PowerEdition Deployment (built 2013-12-01)
IE 8
As the Criteria are always required at the OperationBinding (per business rule), changes to some Filter Editors are submitting an incomplete SQL query.
Here's my ListGrid, with notations re which ListGridFields include/omit the ListGrid Criteria:
Code:
ListGrid listGrid = new ListGrid(ds_Requests) {
// DetailViewer code here...
{
setFetchOperation("fetch_ListGrid_onModuleLoad_Filter");
setAutoFetchData(true);
setShowFilterEditor(true);
// Restrict the ListGrid to show only ORG_IDs the Approver is allowed to see.
Criteria criteria = new Criteria();
criteria.addCriteria("ORG_ID_ARRAY", approver.getPermittedOrgIds()); // Integer[]
// Apply the Criteria to the ListGrid...
setCriteria(criteria);
// ...and to the ListGrid Filter too
setFilterEditorCriteria(criteria);
setSelectionAppearance(SelectionAppearance.CHECKBOX);
setSelectionType(SelectionStyle.SINGLE);
setFields(
// SUCCESS: ListGrid Criteria are included on Filter Search
// FAIL: ListGrid Criteria are omitted
// Shown Columns
make_ListGridField_RequestId(), // SUCCESS
make_ListGridField_LeaveCode(), // SUCCESS
make_ListGridField_Name(), // SUCCESS
make_ListGridField_DateTime("STARTDATETIME", "From..."), // FAIL
make_ListGridField_DateTime("ENDDATETIME", "...Thru"), // FAIL
make_ListGridField_DateTime("SUBMITDATETIME", "Submitted"), // FAIL
make_ListGridField_Status(), // w/o FilterEditor SUCCESS, w/ FilterEditor FAIL
make_ListGridField_FormCs180(), // *SUCCESS when assigned non-default Filter Editor
// Hidden Columns
make_ListGridField_Hidden("EMAIL"), // SUCCESS when shown
make_ListGridField_Hidden("DESCRIPTION"), // SUCCESS when shown
make_ListGridField_Hidden_GroupBy("APPROVER_NAME", "Approver"), // SUCCESS when shown
make_ListGridField_Hidden_GroupBy("SUBGROUP", "Group"), // SUCCESS when shown
make_ListGridField_Hidden("PAYNOPAY"), // SUCCESS when shown
make_ListGridField_Requestor_OrgId(), // N/A: Filter ignores, uses ListGrid Criteria
// for ORG_ID
make_ListGridField_Hidden("REASON"), // SUCCESS when shown
make_ListGridField_Hidden("NUMHOURS") // SUCCESS when shown
);
groupBy("SUBGROUP", "APPROVER_NAME");
setSortField("STARTDATETIME");
...
}
}Code:
/****************************** make_ListGridField_RequestId ******************************/
private ListGridField make_ListGridField_RequestId() {
// Column for REQUESTS.REQUEST_ID
ListGridField lgf_RequestId = new ListGridField("REQUEST_ID", "Request #") {
{
setWidth("80px");
setAlign(Alignment.CENTER);
setCellAlign(Alignment.RIGHT);
// setCanEdit(false);
// Column Header Filter Control
setFilterEditorProperties(new SpinnerItem() {
{
setKeyPressFilter("[0-9]");
}
});
// Add commas for readability, e.g. "1,234"
setCellFormatter(new CellFormatter() {
@Override
public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
if (value == null)
return null;
try {
NumberFormat nf = NumberFormat.getFormat("###,###,###,###");
return nf.format(((Number) value).doubleValue());
} catch (Exception e) {
return value.toString();
}
}
});
}
};
return lgf_RequestId;
}// make_ListGridField_RequestId
/****************************** make_ListGridField_LeaveCode ******************************/
private ListGridField make_ListGridField_LeaveCode() {
// Column for REQUESTS.LEAVECODE
ListGridField lgf_LeaveCode = new ListGridField("LEAVETYPE", "Code") {
{
setWidth(80);
setAlign(Alignment.CENTER);
setCanEdit(false);
setFilterEditorProperties(new SelectItem() {
{
setOptionDataSource(ds_LeaveCodes);
setMultiple(true);
// This SelectItem has three "columns" (ListGridFields)
// 1) Checkboxes
setMultipleAppearance(MultipleAppearance.PICKLIST);
// 2) Leave Code (e.g., "VAT")
final ListGridField lgf_LeaveCode = new ListGridField("LEAVETYPE", "Code");
lgf_LeaveCode.setWidth(42);
lgf_LeaveCode.setAlign(Alignment.CENTER);
// 3) Leave Description (e.g., "Vacation Taken")
final ListGridField lgf_LeaveDescription = new ListGridField("DESCRIPTION");
lgf_LeaveDescription.setWidth(200);
lgf_LeaveDescription.setAlign(Alignment.CENTER);
lgf_LeaveDescription.setCellAlign(Alignment.LEFT);
// Now add the ListGridFields to the SelectItem
setPickListFields(lgf_LeaveCode, lgf_LeaveDescription);
setSortField("LEAVETYPE");
}
});
}
};
return lgf_LeaveCode;
}// make_ListGridField_LeaveCode
/****************************** make_ListGridField_Name ******************************/
private ListGridField make_ListGridField_Name() {
// Column for EMPLOYEE.NAME
ListGridField lgf_Name = new ListGridField("NAME", "Requestor") {
{
setOptionDataSource(ds_Employee);
// setValueField("EMPLOYEE_ID");
// setDisplayField("NAME");
setWidth("130px");
setAlign(Alignment.CENTER);
setCellAlign(Alignment.LEFT);
// setCanEdit(false);
setFilterEditorProperties(new SelectItem() {
{
setOptionDataSource(ds_Employee);
setOptionOperationId("filterItem_Names");
setSortField("NAME");
setMultiple(true);
setMultipleAppearance(MultipleAppearance.PICKLIST);
setAllowEmptyValue(true);
}
});
}
};
return lgf_Name;
}// make_ListGridField_Name
/*************************************** make_ListGridField_Hidden ***************************************/
protected ListGridField make_ListGridField_Hidden(String name) {
// Hidden Column: Data not shown in ListGrid, but available for DetailViewer & Selection Handlers
ListGridField lgf_Hidden = new ListGridField(name) {
{
setHidden(true);
}
};
return lgf_Hidden;
}// make_ListGridField_Hidden
/*************************************** make_ListGridField_Hidden_GroupBy ***************************************/
protected ListGridField make_ListGridField_Hidden_GroupBy(String name, final String groupTitle) {
ListGridField lgf_ApproverName = new ListGridField(name) {
{
// Use value for Approve/Disapprove actions, but don't show in ListGrid
setHidden(true);
// Put 'Title: ' prompt in front of grouped items
setGroupTitleRenderer(new GroupTitleRenderer() {
@Override
public String getGroupTitle(Object groupValue,
com.smartgwt.client.widgets.grid.GroupNode groupNode, ListGridField field,
String fieldName, ListGrid grid) {
String rowTitle = groupTitle + ": " + groupValue;
return rowTitle;
}
});
}
};
return lgf_ApproverName;
}// make_ListGridField_Hidden_GroupByCode:
/*************************************** make_ListGridField_DateTime ***************************************/
protected ListGridField make_ListGridField_DateTime(String name, String title) {
// Column for REQUESTS.STARTDATETIME
ListGridField lgf_DateTime = new ListGridField(name, title) {
{
setType(ListGridFieldType.DATE);
setAlign(Alignment.CENTER);
setWidth("170px");
setCanEdit(true);
// Apply Formatter to DateTime column
setCellFormatter(new CellFormatter() {
public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
if (value != null) {
try {
Date dateValue = (Date) value;
// Timestamp dateValue = (Timestamp) value; // Nope!
return dateTimeFormatter.format(dateValue);
} catch (Exception e) {
return value.toString();
}
} else {
return "";
}
}
});
}
};
return lgf_DateTime;
}// make_ListGridField_DateTimeCode:
/****************************** make_ListGridField_Status ******************************/
private ListGridField make_ListGridField_Status() {
// Column for REQUESTS.STATUS
ListGridField lgf_Status = new ListGridField("STATUS") {
{
setWidth("80px");
setAlign(Alignment.CENTER);
// setCanEdit(true);
// SUCCESS: If the Filter Editor is removed, then ListGrid Criteria are included.
// FAIL: If this Filter Editor is enabled, then ListGrid Criteria are OMITTED.
setFilterEditorProperties(new SelectItem() {
{
setOptionDataSource(ds_Requests);
setOptionOperationId("filterItem_Status");
// Override default LIKE operator, lest "approved" also retrieve "disapproved"
setOperator(OperatorId.EQUALS);
setSortField("STATUS");
setMultiple(true);
setMultipleAppearance(MultipleAppearance.PICKLIST);
}
});
}
};
return lgf_Status;
}// make_ListGridField_Status
/****************************** make_ListGridField_FormCs180 ******************************/
private ListGridField make_ListGridField_FormCs180() {
// Cool example code re how to place graphic in Column Header:
// http://www.smartclient.com/smartgwt/showcase/#grid_top_header
String title_FormCs180;
title_FormCs180 = Canvas.imgHTML(GWT.getModuleBaseURL() + "Acrobat.png");
// Column for REQUESTS.FORM_CS180
ListGridField lgf_FormCs180 = new ListGridField("FORM_CS180", title_FormCs180) {
{
setType(ListGridFieldType.IMAGEFILE);
setAlign(Alignment.CENTER);
// Kludge: Fix column width to be wide enough to show View/Download icons ONLY.
// Voilà: De facto suppression of '_filename' field text.
// Posted to SGWT Support Forum as
// http://forums.smartclient.com/showthread.php?p=95311#post95311
setWidth("38px");
// Disable remaining built-in column-header controls...
setCanDragResize(false);
setCanSort(false);
setShowDefaultContextMenu(false);
setShowHover(false);
// Hack: If you setCanFilter(false), the default Filter Editor Type (ViewFileItem File Picker)
// returns null, which blows up the Filter query. The workaround is to set a non-default
// Filter Editor Type, then not use it.
// Posted @ http://forums.smartclient.com/showthread.php?t=28708
setFilterEditorProperties(new SelectItem());
setCanFilter(false);
}
};
return lgf_FormCs180;
}// make_ListGridField_FormCs180Code:
<operationBinding appScreen="Review" operationType="fetch" operationId="fetch_ListGrid_onModuleLoad_Filter">
<selectClause>
requests.request_id,
requests.leavetype,
leavecodes.description,
employee.name,
requests.startdatetime,
requests.enddatetime,
requests.submitdatetime,
requests.status,
employee.email,
leavecodes.description,
employee.approver_name,
org.subgroup,
requests.FORM_CS180,
requests.FORM_CS180_date_created,
requests.FORM_CS180_filename,
requests.FORM_CS180_filesize,
requests.paynopay,
employee.org_id,
requests.reason,
requests.numhours
</selectClause>
<tableClause>
requests
JOIN leavecodes ON requests.leavetype = leavecodes.leavetype
JOIN employee ON requests.employee_id = employee.employee_id
JOIN org ON employee.org_id = org.org_id
</tableClause>
<whereClause> employee.org_id IN ( #foreach($org_id in $criteria.ORG_ID_ARRAY)'$org_id'#if( $velocityCount != $criteria.ORG_ID_ARRAY.size()),#end #end )
AND ${defaultWhereClause}
</whereClause>
</operationBinding>Code:
=== 2013-12-06 09:03:06,859 [0-15] DEBUG SQLDataSource - [builtinApplication.fetch_ListGrid_onModuleLoad_Filter] JDBC driver windowed select rows 0->75, result size 75. Query: SELECT
requests.request_id,
requests.leavetype,
leavecodes.description,
employee.name,
requests.startdatetime,
requests.enddatetime,
requests.submitdatetime,
requests.status,
employee.email,
leavecodes.description,
employee.approver_name,
org.subgroup,
requests.FORM_CS180,
requests.FORM_CS180_date_created,
requests.FORM_CS180_filename,
requests.FORM_CS180_filesize,
requests.paynopay,
employee.org_id,
requests.reason,
requests.numhours
FROM
requests
JOIN leavecodes ON requests.leavetype = leavecodes.leavetype
JOIN employee ON requests.employee_id = employee.employee_id
JOIN org ON employee.org_id = org.org_id
WHERE employee.org_id IN ( '43', '44' )
AND ('1'='1')Code:
=== 2013-12-06 08:30:21,046 [0-12] INFO SQLDriver - [builtinApplication.fetch_ListGrid_onModuleLoad_Filter] Executing SQL query on 'MyDatabase': SELECT COUNT(*) FROM
requests
JOIN leavecodes ON requests.leavetype = leavecodes.leavetype
JOIN employee ON requests.employee_id = employee.employee_id
JOIN org ON employee.org_id = org.org_id
WHERE employee.org_id IN ( )
AND (('1'='1' OR '1'='1') AND (REQUESTS.STARTDATETIME >= TO_DATE('2013-12-05 00:00:00','YYYY-MM-DD HH24:MI:SS') AND REQUESTS.STARTDATETIME IS NOT NULL) AND ((REQUESTS.STATUS = 'approved' AND REQUESTS.STATUS IS NOT NULL)))
=== 2013-12-06 08:30:21,046 [0-12] WARN RequestContext - dsRequest.execute() failed:
java.sql.SQLException: ORA-00936: missing expression
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:754)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:804)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1051)
at oracle.jdbc.driver.T4CStatement.executeMaybeDescribe(T4CStatement.java:845)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1156)
at oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:1315)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:604)
at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:533)
at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:526)
at com.isomorphic.sql.SQLDriver.getScalarResult(SQLDriver.java:690)
at com.isomorphic.sql.SQLDriver.executeScalar(SQLDriver.java:924)
at com.isomorphic.sql.SQLDataSource.runRowCountQuery(SQLDataSource.java:2463)
at com.isomorphic.sql.SQLDataSource.executeWindowedSelect(SQLDataSource.java:1887)
at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1542)
at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:408)
at com.isomorphic.sql.SQLDataSource.executeFetch(SQLDataSource.java:352)
at com.isomorphic.datasource.DataSource.execute(DataSource.java:1447)
at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:723)
at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
at com.isomorphic.application.AppBase.execute(AppBase.java:491)
at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:2431)
at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:215)
at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:172)
at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:137)
at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:260)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)REQUEST: RPCRequest
Code:
{
"actionURL":"http://localhost:8888/AbsenceRequestOnline/sc/IDACall",
"showPrompt":true,
"prompt":"Finding Records that match your criteria...",
"transport":"xmlHttpRequest",
"promptStyle":"cursor",
"bypassCache":true,
"data":{
"criteria":{
"operator":"and",
"_constructor":"AdvancedCriteria",
"criteria":[
{
"fieldName":"STARTDATETIME",
"operator":"greaterOrEqual",
"value":"2013-12-05"
},
{
"operator":"iContains",
"fieldName":"ORG_ID_ARRAY",
"value":[
43,
44
]
}
]
},
"operationConfig":{
"dataSource":"REQUESTS",
"repo":null,
"operationType":"fetch",
"textMatchStyle":"substring"
},
"startRow":0,
"endRow":75,
"componentId":"isc_Demo_ListGridFilter_4_0",
"appID":"builtinApplication",
"operation":"fetch_ListGrid_onModuleLoad_Filter",
"oldValues":{
"operator":"and",
"_constructor":"AdvancedCriteria",
"criteria":[
{
"fieldName":"STARTDATETIME",
"operator":"greaterOrEqual",
"value":"2013-12-05"
},
{
"operator":"iContains",
"fieldName":"ORG_ID_ARRAY",
"value":[
43,
44
]
}
]
}
}
}Code:
isc_tnum=3&_transaction=%3Ctransaction%20xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2F10%2FXMLSchema-instance%22%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3CtransactionNum%20xsi%3Atype%3D%22xsd%3Along%22%3E3%3C%2FtransactionNum%3E%3Coperations%20xsi%3Atype%3D%22xsd%3AList%22%3E%3Celem%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Ccriteria%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Coperator%3Eand%3C%2Foperator%3E%3C_constructor%3EAdvancedCriteria%3C%2F_constructor%3E%3Ccriteria%20xsi%3Atype%3D%22xsd%3AList%22%3E%3Celem%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3CfieldName%3ESTARTDATETIME%3C%2FfieldName%3E%3Coperator%3EgreaterOrEqual%3C%2Foperator%3E%3Cvalue%20xsi%3Atype%3D%22xsd%3Adate%22%3E2013-12-05%3C%2Fvalue%3E%3C%2Felem%3E%3Celem%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Coperator%3EiContains%3C%2Foperator%3E%3CfieldName%3EORG_ID_ARRAY%3C%2FfieldName%3E%3Cvalue%20xsi%3Atype%3D%22xsd%3AList%22%3E%3Celem%20xsi%3Atype%3D%22xsd%3Along%22%3E43%3C%2Felem%3E%3Celem%20xsi%3Atype%3D%22xsd%3Along%22%3E44%3C%2Felem%3E%3C%2Fvalue%3E%3C%2Felem%3E%3C%2Fcriteria%3E%3C%2Fcriteria%3E%3CoperationConfig%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3CdataSource%3EREQUESTS%3C%2FdataSource%3E%3CoperationType%3Efetch%3C%2FoperationType%3E%3CtextMatchStyle%3Esubstring%3C%2FtextMatchStyle%3E%3C%2FoperationConfig%3E%3CstartRow%20xsi%3Atype%3D%22xsd%3Along%22%3E0%3C%2FstartRow%3E%3CendRow%20xsi%3Atype%3D%22xsd%3Along%22%3E75%3C%2FendRow%3E%3CcomponentId%3Eisc_Demo_ListGridFilter_4_0%3C%2FcomponentId%3E%3CappID%3EbuiltinApplication%3C%2FappID%3E%3Coperation%3Efetch_ListGrid_onModuleLoad_Filter%3C%2Foperation%3E%3ColdValues%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Coperator%3Eand%3C%2Foperator%3E%3C_constructor%3EAdvancedCriteria%3C%2F_constructor%3E%3Ccriteria%20xsi%3Atype%3D%22xsd%3AList%22%3E%3Celem%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3CfieldName%3ESTARTDATETIME%3C%2FfieldName%3E%3Coperator%3EgreaterOrEqual%3C%2Foperator%3E%3Cvalue%20xsi%3Atype%3D%22xsd%3Adate%22%3E2013-12-05%3C%2Fvalue%3E%3C%2Felem%3E%3Celem%20xsi%3Atype%3D%22xsd%3AObject%22%3E%3Coperator%3EiContains%3C%2Foperator%3E%3CfieldName%3EORG_ID_ARRAY%3C%2FfieldName%3E%3Cvalue%20xsi%3Atype%3D%22xsd%3AList%22%3E%3Celem%20xsi%3Atype%3D%22xsd%3Along%22%3E43%3C%2Felem%3E%3Celem%20xsi%3Atype%3D%22xsd%3Along%22%3E44%3C%2Felem%3E%3C%2Fvalue%3E%3C%2Felem%3E%3C%2Fcriteria%3E%3C%2FoldValues%3E%3C%2Felem%3E%3C%2Foperations%3E%3C%2Ftransaction%3E&protocolVersion=1.0Code:
{
dataSource:"REQUESTS",
operationType:"fetch",
operationId:"fetch_ListGrid_onModuleLoad_Filter",
componentId:"isc_Demo_ListGridFilter_4_0",
data:{
operator:"and",
criteria:[
{
fieldName:"STARTDATETIME",
operator:"greaterOrEqual",
value:"2013-12-05"
},
{
operator:"iContains",
fieldName:"ORG_ID_ARRAY",
value:[
43,
44
]
}
]
},
startRow:0,
endRow:75,
textMatchStyle:"substring",
resultSet:[ResultSet ID:isc_ResultSet_0 (created by: isc_Demo_ListGridFilter_4_0)],
callback:{
caller:[ResultSet ID:isc_ResultSet_0 (created by: isc_Demo_ListGridFilter_4_0)],
methodName:"fetchRemoteDataReply"
},
willHandleError:true,
showPrompt:true,
prompt:"Finding Records that match your criteria...",
oldValues:{
operator:"and",
criteria:[
{
fieldName:"STARTDATETIME",
operator:"greaterOrEqual",
value:"2013-12-05"
},
{
operator:"iContains",
fieldName:"ORG_ID_ARRAY",
value:[
43,
44
]
}
]
},
requestId:"REQUESTS$6275",
clientContext:{
requestIndex:2
},
fallbackToEval:false,
lastClientEventThreadCode:"TMR7",
bypassCache:true
}Code:
[
{
data:"ORA-00936: missing expression\n",
invalidateCache:false,
isDSResponse:true,
queueStatus:-1,
status:-1
}
]---------------------------------
SmartClient Version: v9.0p_2013-12-01/PowerEdition Deployment (built 2013-12-01)
IE 8