Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

Velocity Mixing Up OperationBindings?

$
0
0
I'm posting this on the off chance it might support troubleshooting of another post I just made (
http://forums.smartclient.com/showth...446#post113446 )

I noticed some Velocity oddness this morning, thought you'd want to know.

I have these two OperationBindings, the second one created recently:
Code:

<operationBinding appScreen="Review"  operationType="fetch" operationid="filterItem_Names">
 <selectClause>distinct name</selectClause>
 <!-- <selectClause>distinct employee.name</selectClause> // tried this, fails the same -->
 <tableClause>${defaultTableClause}</tableClause>
 <whereClause>${defaultWhereClause}</whereClause>
</operationBinding>

<operationBinding appScreen="Review"  operationType="fetch" operationid="filterItem_OrgId">
 <selectClause>distinct org_id</selectClause>
 <tableClause>${defaultTableClause}</tableClause>
 <whereClause>${defaultWhereClause}</whereClause>
</operationBinding>

I have some client code that calls the first OperationBinding:
Code:

private ListGridField make_ListGridField_Name() {

 // Column for EMPLOYEE.NAME
 ListGridField lgf_Name = new ListGridField("NAME", "Requestor")  {
  {

  setOptionDataSource(ds_Employee);
 
  setWidth("130px");
  setAlign(Alignment.CENTER);
  setCellAlign(Alignment.LEFT);


  setFilterEditorProperties(new SelectItem() {
  {
  setOptionDataSource(ds_Employee);
 
  setOptionOperationId("filterItem_Names");
  setSortField("NAME");
  setMultiple(true);
                                                 
  setMultipleAppearance(MultipleAppearance.PICKLIST);
  setAllowEmptyValue(true);
  }
  });
 }
};

return lgf_Name;

}// make_ListGridField_Name

This generates a SQL query that takes elements from BOTH OperationBindings:
- The OperationID is from the first OperationBinding ("filterItem_Names")
- but the SQL query is derived from the second ("SELECT distinct org_id")
Code:

=== 2013-12-06 09:46:44,063 [0-26] INFO  SQLDriver - [builtinApplication.filterItem_Names] Executing SQL query on 'MyDatabase': SELECT distinct org_id FROM absence_dev.EMPLOYEE WHERE ('1'='1') ORDER BY EMPLOYEE.NAME
=== 2013-12-06 09:46:44,063 [0-26] WARN  RequestContext - dsRequest.execute() failed:
java.sql.SQLException: ORA-01791: not a SELECTed 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.executeQuery(SQLDriver.java:917)
        at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:523)
        at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:517)
        at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1548)
        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)

Eclipse does not indicate any XML errors, nor can I see any.

As it happens, I don't really need the second OperationBinding, so I remarked it out, and the error goes away.

But I thought you'd want to know.

---------------------------------------
SmartClient Version: v9.0p_2013-12-01/PowerEdition Deployment (built 2013-12-01)

IE 8

Viewing all articles
Browse latest Browse all 4756

Trending Articles