Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    dsRequest.resultSet is undefined

    I get this error in the developers console from the code below that handles a click event for a button. There are three (3) listgrids involved in a hierarchy. The top one lists topics, the second issues, the third tasks. I fetchData for the topics. That works. I let expansionMode="related" create the tasks. That should work. My problem is with the issues.

    I need to populate a custom resultset for each bunch of issues under a topic. I create criteria from fields in each topic record and use it to fetchData. However, I need to remove records from the resultset before I use it to setData for the grid to be displayed on expansion of the topic.

    I can get the issue fetch to work. My problem is getting access to the resultset of the successful fetchData.

    I tried using the resultSet property of the dsRequest in the callback of the fetchData.

    I use a statement: var issueResults = dsRequest.resultSet.duplicate();

    I am not sure why this does not work.

    Code:
    Log.setPriority("Log", 5);
    Log.logDebug("****getExpansionComponent version****************** OnlineMeetingButton.Click");
    
    OnlineMeetingWindow.autoDraw = false;
    //OnlineAgendaGrid.autoDraw = false;
    
    if (!window.OnlineMeetingForm) {
    	var message = "Component ID \"OnlineMeetingForm\", target of action \"Edit rec\" does not exist";
    	isc.Log.logWarn(message);
    	if (isc.designTime) {
    		isc.say(message);
    	}
    }
    
    OnlineMeetingForm.setValue("MeetingName", Application.currentMeetingName);
    OnlineMeetingForm.setValue("TeleconferenceInfo", Application.currentTeleconferenceInfo);
    
    OnlineAgendaGrid.canExpandRecords=true;
    OnlineAgendaGrid.canExpandMultipleRecords=false;
    OnlineAgendaGrid.detailDS="Issue";
    OnlineAgendaGrid.expansionMode="related";
    
    var IssueDuplicateList = new Array( 0 );
    
    function DuplicateIssue (issueNumber) {
    	var dup;
    	if (IssueDuplicateList.indexOf(issueNumber) < 0 ) {
    		IssueDuplicateList.push(issueNumber);
    		dup = false;
    	} else {
    		dup = true;
    	}
    	return dup;
    }
    
    OnlineAgendaGrid.fetchData( { "MeetingTypeID" : Application.currentMeetingTypeID }, 
    	function (dsResponse, data, dsRequest) {
    		Log.logDebug("************meeting topic records fetched: " + this.echo(dsResponse));
    		if (dsResponse.status >= 0) {
    			if (dsResponse.totalRows > 0) { 
    				var totalTopics = OnlineAgendaGrid.getTotalRows();
    				for (var currentTopic = 0; currentTopic < totalTopics; currentTopic++) {
    					var currentTopicRecord = OnlineAgendaGrid.getRecord(currentTopic);
    					Log.logDebug("************ currentTopicRecord: " + this.echo(currentTopicRecord));
    					if (currentTopicRecord.SearchEnabled) {
    						var issueCriteria = "";
    						if (!(typeof currentTopicRecord.IssueTypeID === "undefined")) {
    							issueCriteria = "IssueTypeID: " + String(currentTopicRecord.IssueTypeID); 
    						}
    						if (!(typeof currentTopicRecord.CategoryID === "undefined")) {
    							if (issueCriteria !== "") { issueCriteria = issueCriteria + ", "; }
    							issueCriteria = issueCriteria + "CategoryID: " + String(currentTopicRecord.CategoryID) ;
    						}
    						if (!(typeof currentTopicRecord.ImpactID === "undefined")) {
    							if (issueCriteria !== "") { issueCriteria = issueCriteria + ", "; }
    							issueCriteria = issueCriteria + "ImpactID: " + String(currentTopicRecord.ImpactID) ;
    						}					
    						Issue.fetchData( issueCriteria,
    							function (dsResponse, data, dsRequest) {
    								Log.logDebug("************ dsRequest: " + this.echo(dsRequest));
    								Log.logDebug("************ dsResponse: " + this.echo(dsResponse));
    								if (dsResponse.status >= 0) {
    									if (dsResponse.totalRows > 0) {
    										var issueResults = dsRequest.resultSet.duplicate();
    										if (issueResults.lengthIsKnown) {
    											if (issueResults.getLength() > 0) {
    												var totalIssues = issueResults.getLength();
    												for (var currentIssue = 0; currentIssue < totalIssues; currentIssue++) {
    													if (DuplicateIssue(issueResults.get(currentIssue).IssueNumber)) {
    														issueResults.removeAt(currentIssue);
    														currentIssue-- ;
      													}
    												}
    												if (issueResults.getLength() > 0) {
    													var issueSubGrid = OnlineAgendaGrid.getCurrentExpansionComponent(currentTopicRecord);
    													issueSubGrid.autoFetchData = false;
    													issueSubGrid.setAutoFitData("both");
    													issueSubGrid.canEdit = false;
    													issueSubGrid.canExpandRecords=true;
    													issueSubGrid.canExpandMultipleRecords=false;
    													issueSubGrid.expansionMode="related";
    													issueSubGrid.detailDS="IncompleteTask";
    													issueSubGrid.expansionRelatedProperties = { 
    														autoFetchData:true, 
    														autoFetchTextMatchStyle:"exact", 
    														canExpandRecords:false, 
    														canExpandMultipleRecords:false, 
    													//	height:"200", 
    														overflow:"visible",
    														recordDoubleClick:"Log.setPriority(\"Log\", 5);\nLog.logDebug(\"********************** IssueTasksGrid.recordDoubleClick\");\n\n    var rec = this.getSelectedRecord();\n    Application.currentTaskID = rec.TaskID;\n    Application.currentTaskTitle = rec.TaskTitle;\n    Application.currentIssueID = rec.IssueID;\n    Application.currentIssueNumber = rec.IssueNumber;\n    Application.currentIssueTitle = rec.IssueTitle;\n    Application.currentProjectID = rec.ProjectID;\n    Application.currentProjectNumber = rec.ProjectNumber;\n    Application.currentProjectTitle = rec.ProjectTitle;\n	    \n    //alert(\"TaskID=\" + Application.currentTaskID );\n    \n    if (!window.TaskForm) {\n        var message = \"Component ID \\\"TaskForm\\\", target of action \\\"Edit Record\\\" does not exist\";\n        isc.Log.logWarn(message);\n        if (isc.designTime) {\n            isc.say(message);\n        }\n    }\n    TaskForm.editRecord(rec);\n\n    if (!window.TaskWindow) {\n        var message = \"Component ID \\\"TaskWindow\\\", target of action \\\"Show\\\" does not exist\";\n        isc.Log.logWarn(message);\n        if (isc.designTime) {\n            isc.say(message);\n        }\n    }\n    TaskWindow.show();\n    TaskWindow.setTitle(\"Task# \" + rec.TaskNumber + \": \" + rec.TaskTitle);\n    \nLog.logDebug(\"***END***END***END*** IssueTasksGrid.recordDoubleClick\")"
    													};
    													issueSubGrid.setData(issueResults);
    													issueSubGrid.markForRedraw("setData(issueResults)");
    												} else {
    													currentIssueRecord.canExpand(false);
    												} 	// end if length is zero from duplicate check
    											} else {
    												currentTopicRecord.canExpand(false);
    											} 	// end if length is zero
    										} else {
    											isc.say("Error issueResults.lengthIsKnown is false for MeetingTypeID: " + Application.currentMeetingTypeID);
    										} // end if lengthIsKnown									
    									} else {
    										currentTopicRecord.canExpand(false);
    									} 
    								} else {
    									isc.say("Error fetching topic issue records for MeetingTypeID: " + Application.currentMeetingTypeID);
    								}
    							}	// end of Issue.fetchData function	
    						);	// end of Issue.fetchData call
    ////////////////////////what do I do here after issue fetch?						
    					} else {
    						currentTopicRecord.canExpand(false);
    					}	// end if SearchEnabled
    				}	// end topic for loop
    			} else {
    				isc.say("No meeting topic records fetched for MeetingTypeID: " + Application.currentMeetingTypeID);
    			}	// end if (dsResponse.totalRows > 0)
    		} else {
    			isc.say("Error fetching meeting topic records for MeetingTypeID: " + Application.currentMeetingTypeID);
    		}
    	}	// end of OnlineAgendaGrid.fetchData function
    );	// end OnlineAgendaGrid.fetchData call
    
    OnlineMeetingWindow.setTitle("Project:" + Application.currentProjectNumber + " " + Application.currentMeetingName);
    OnlineMeetingWindow.show();
        
    Log.logDebug("****END***END***END*** OnlineMeetingButton.Click");
    Below is the developer console output I got for the last topic. It is typical of what I get for each topic.
    Code:
    13:14:00.579:XRP5:DEBUG:Log:************ dsRequest: {operationType: "fetch",
    dataSource: "Issue",
    data: null,
    callback: $376(),
    requestId: "Issue$62735",
    bypassCache: true,
    showPrompt: true,
    unconvertedDSRequest: Obj,
    oldValues: null}
    13:14:00.579:XRP5:DEBUG:Log:************ dsResponse: {operationId: "custom",
    clientContext: Obj,
    context: Obj,
    transactionNum: 35,
    httpResponseCode: 200,
    httpResponseText: "//isc_RPCResponseStart-->[{data:[{Projec..."[6029],
    xmlHttpRequest: [object XMLHttpRequest],
    transport: "xmlHttpRequest",
    status: 0,
    clientOnly: undef,
    httpHeaders: Obj,
    isStructured: true,
    callbackArgs: null,
    results: Obj,
    data: Array[9],
    endRow: 9,
    invalidateCache: false,
    isDSResponse: true,
    operationType: "fetch",
    queueStatus: 0,
    startRow: 0,
    totalRows: 9}
    13:14:00.582:XRP5:WARN:Log:TypeError: dsRequest.resultSet is undefined
        unnamed({Obj}, [object Array], {Obj})
        [c]Class.fireCallback(_1=>function (dsResponse, data, dsRequest),  _2=>"dsResponse,data,dsRequest",  _3=>[object Array],  _4=>{Obj},  _5=>undef)
        [c]Class.fireCallback(_1=>function (dsResponse, data, dsRequest),  _2=>"dsResponse,data,dsRequest",  _3=>[object Array])
        DataSource.fireResponseCallbacks({Obj}, {Obj}, {Obj}, {Obj})
        DataSource._completeResponseProcessing([object Array], {Obj}, {Obj}, {Obj}, {Obj})
        DataSource._handleSCServerReply({Obj}, [object Array], {Obj})
        [c]Class.fireCallback(_1=>{Obj},  _2=>"rpcResponse,data,rpcRequest",  _3=>[object Array],  _4=>{Obj},  _5=>undef)
        [c]Class.fireCallback(_1=>{Obj},  _2=>"rpcResponse,data,rpcRequest",  _3=>[object Array])
        [c]RPCManager.fireReplyCallback(_1=>{Obj},  _2=>{Obj},  _3=>{Obj},  _4=>[object Array])
        [c]RPCManager.fireReplyCallbacks(_1=>{Obj},  _2=>{Obj})
        [c]RPCManager.performOperationReply(_1=>{Obj},  _2=>{Obj})
        RPCManager._performTransactionReply(35)
        [c]RPCManager.performTransactionReply(_1=>35,  _2=>"//isc_RPCResponseStart-->[{data:[{Proje..."[ 6237],  _3=>undef)
        anonymous(35, [object XMLHttpRequest])
        [c]Class.fireCallback(_1=>"isc.RPCManager.performTransactionReply(..."[ 67],  _2=>"transactionNum,results,wd",  _3=>[object Array])
        [c]Comm.performXmlTransactionReply(_1=>35,  _2=>[object XMLHttpRequest])
        anonymous([object XMLHttpRequest])
        [c]Class.fireCallback(_1=>"isc.Comm.performXmlTransactionReply(35,..."[ 57],  _2=>"xmlHttpRequest",  _3=>[object Array],  _4=>[object Proxy],  _5=>true)
        Comm._fireXMLCallback([object XMLHttpRequest], "isc.Comm.performXmlTransactionReply(35,..."[ 57])
        unnamed([object Event])
        unnamed() @
    I am not sure if it is related, but I find the folowing java.lang.ClassCastException in the server console.

    Code:
    === 2013-01-28 18:13:57,703 [sor6] DEBUG RPCManager - Processing 1 requests.
    === 2013-01-28 18:13:58,390 [sor6] DEBUG RPCManager - Request #1 (DSRequest) payload: {
        criteria:{
        },
        operationConfig:{
            dataSource:"MeetingTopic",
            operationType:"fetch"
        },
        appID:"builtinApplication",
        operation:"MeetingTopic_fetch",
        oldValues:null
    }
    === 2013-01-28 18:13:58,390 [sor6] INFO  IDACall - Performing 1 operation(s)
    === 2013-01-28 18:13:58,390 [sor6] DEBUG AppBase - [builtinApplication.MeetingTopic_fetch] No userTypes defined, allowing an
    yone access to all operations for this application
    === 2013-01-28 18:13:58,453 [sor6] DEBUG AppBase - [builtinApplication.MeetingTopic_fetch] No public zero-argument method na
    med '_MeetingTopic_fetch' found, performing generic datasource operation
    === 2013-01-28 18:13:58,453 [sor6] INFO  SQLDataSource - [builtinApplication.MeetingTopic_fetch] Performing fetch operation
    with
            criteria: {}    values: {}
    === 2013-01-28 18:13:58,453 [sor6] INFO  SQLWhereClause - [builtinApplication.MeetingTopic_fetch] empty condition
    === 2013-01-28 18:13:58,453 [sor6] INFO  SQLDataSource - [builtinApplication.MeetingTopic_fetch] derived query: SELECT $defa
    ultSelectClause FROM (MeetingType, MeetingTopic) LEFT JOIN TeamMember ON MeetingTopic.TopicLeaderID = TeamMember.TeamMemberI
    D LEFT JOIN Category ON MeetingTopic.CategoryID = Category.CategoryID LEFT JOIN IssueType ON MeetingTopic.IssueTypeID = Issu
    eType.IssueTypeID LEFT JOIN IssueImpact ON MeetingTopic.ImpactID = IssueImpact.ImpactID  WHERE MeetingTopic.MeetingTypeID =
    MeetingType.MeetingTypeID AND ($defaultWhereClause)
    === 2013-01-28 18:13:58,453 [sor6] INFO  SQLDataSource - [builtinApplication.MeetingTopic_fetch] Executing SQL query on 'Pla
    netProjectDB': SELECT MeetingTopic.CategoryID, Category.CategoryName, MeetingTopic.CommunityID, MeetingTopic.Created, Meetin
    gTopic.ExpectedResults, MeetingTopic.ImpactID, IssueImpact.ImpactName, MeetingTopic.IssueTypeID, IssueType.IssueTypeName, Me
    etingType.MeetingName, MeetingTopic.MeetingTopicID, MeetingTopic.MeetingTypeID, MeetingTopic.Modified, MeetingTopic.ProjectI
    D, MeetingTopic.SearchEnabled, MeetingTopic.SessionTime, MeetingTopic.SessionType, MeetingTopic.TopicLeaderID, TeamMember.Te
    amMemberName AS TopicLeaderName, MeetingTopic.TopicNumber, MeetingTopic.TopicTitle FROM (MeetingType, MeetingTopic) LEFT JOI
    N TeamMember ON MeetingTopic.TopicLeaderID = TeamMember.TeamMemberID LEFT JOIN Category ON MeetingTopic.CategoryID = Categor
    y.CategoryID LEFT JOIN IssueType ON MeetingTopic.IssueTypeID = IssueType.IssueTypeID LEFT JOIN IssueImpact ON MeetingTopic.I
    mpactID = IssueImpact.ImpactID  WHERE MeetingTopic.MeetingTypeID = MeetingType.MeetingTypeID AND (('1'='1'))
    === 2013-01-28 18:13:58,453 [sor6] DEBUG PoolableSQLConnectionFactory - [builtinApplication.MeetingTopic_fetch] DriverManage
    r fetching connection for PlanetProjectDB via jdbc url jdbc:mysql://localhost:3306/PUBLIC
    === 2013-01-28 18:13:58,484 [sor6] DEBUG PoolableSQLConnectionFactory - [builtinApplication.MeetingTopic_fetch] Passing cred
    entials getConnection separately from JDBC URL
    === 2013-01-28 18:13:58,906 [sor6] DEBUG PoolableSQLConnectionFactory - [builtinApplication.MeetingTopic_fetch] Returning po
    oled Connection
    === 2013-01-28 18:13:58,906 [sor6] DEBUG SQLTransaction - [builtinApplication.MeetingTopic_fetch] Started new PlanetProjectD
    B transaction "17681783"
    === 2013-01-28 18:13:58,906 [sor6] INFO  SQLDriver - [builtinApplication.MeetingTopic_fetch] Executing SQL query on 'PlanetP
    rojectDB': SELECT MeetingTopic.CategoryID, Category.CategoryName, MeetingTopic.CommunityID, MeetingTopic.Created, MeetingTop
    ic.ExpectedResults, MeetingTopic.ImpactID, IssueImpact.ImpactName, MeetingTopic.IssueTypeID, IssueType.IssueTypeName, Meetin
    gType.MeetingName, MeetingTopic.MeetingTopicID, MeetingTopic.MeetingTypeID, MeetingTopic.Modified, MeetingTopic.ProjectID, M
    eetingTopic.SearchEnabled, MeetingTopic.SessionTime, MeetingTopic.SessionType, MeetingTopic.TopicLeaderID, TeamMember.TeamMe
    mberName AS TopicLeaderName, MeetingTopic.TopicNumber, MeetingTopic.TopicTitle FROM (MeetingType, MeetingTopic) LEFT JOIN Te
    amMember ON MeetingTopic.TopicLeaderID = TeamMember.TeamMemberID LEFT JOIN Category ON MeetingTopic.CategoryID = Category.Ca
    tegoryID LEFT JOIN IssueType ON MeetingTopic.IssueTypeID = IssueType.IssueTypeID LEFT JOIN IssueImpact ON MeetingTopic.Impac
    tID = IssueImpact.ImpactID  WHERE MeetingTopic.MeetingTypeID = MeetingType.MeetingTypeID AND (('1'='1'))
    === 2013-01-28 18:13:59,015 [sor6] INFO  DSResponse - [builtinApplication.MeetingTopic_fetch] DSResponse: List with 5 items
    === 2013-01-28 18:13:59,015 [sor6] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
    === 2013-01-28 18:13:59,015 [sor6] DEBUG SQLTransaction - Committing PlanetProjectDB transaction "17681783"
    === 2013-01-28 18:13:59,015 [sor6] DEBUG RPCManager - non-DMI response, dropExtraFields: false
    === 2013-01-28 18:13:59,031 [sor6] DEBUG SQLTransaction - Ending PlanetProjectDB transaction "17681783"
    === 2013-01-28 18:13:59,031 [sor6] INFO  Compression - /isomorphic/IDACall: 1784 -> 496 bytes
    === 2013-01-28 18:13:59,218 [sor6] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 5
    .1; rv:12.0) Gecko/20100101 Firefox/12.0': Moz (Gecko) with Accept-Encoding header
    === 2013-01-28 18:13:59,234 [sor6] DEBUG XML - Parsed XML from (in memory stream): 0ms
    === 2013-01-28 18:13:59,468 [sor6] DEBUG RPCManager - Processing 1 requests.
    === 2013-01-28 18:13:59,562 [sor6] ERROR IDACall - Top-level servlet error:
    java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
            at com.isomorphic.datasource.DSRequest.<init>(DSRequest.java:405)
            at com.isomorphic.datasource.DSRequest.<init>(DSRequest.java:482)
            at com.isomorphic.rpc.RPCManager.parseRequest(RPCManager.java:1919)
            at com.isomorphic.rpc.RPCManager.<init>(RPCManager.java:296)
            at com.isomorphic.rpc.RPCManager.<init>(RPCManager.java:281)
            at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:116)
            at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
            at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at com.isomorphic.js.JSSyntaxScannerFilter.doFilter(JSSyntaxScannerFilter.java:241)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
            at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665
    )
            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
            at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
            at java.lang.Thread.run(Thread.java:722)
    === 2013-01-28 18:13:59,562 [sor6] INFO  Compression - /isomorphic/IDACall: 2613 -> 704 bytes
    === 2013-01-28 18:13:59,671 [sor3] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 5
    .1; rv:12.0) Gecko/20100101 Firefox/12.0': Moz (Gecko) with Accept-Encoding header
    === 2013-01-28 18:13:59,671 [sor8] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 5
    .1; rv:12.0) Gecko/20100101 Firefox/12.0': Moz (Gecko) with Accept-Encoding header
    === 2013-01-28 18:13:59,671 [sor8] DEBUG XML - Parsed XML from (in memory stream): 0ms
    === 2013-01-28 18:13:59,687 [sor3] DEBUG XML - Parsed XML from (in memory stream): 16ms
    === 2013-01-28 18:13:59,703 [or12] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 5
    .1; rv:12.0) Gecko/20100101 Firefox/12.0': Moz (Gecko) with Accept-Encoding header
    === 2013-01-28 18:13:59,703 [or12] DEBUG XML - Parsed XML from (in memory stream): 0ms
    === 2013-01-28 18:13:59,703 [sor4] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 5
    .1; rv:12.0) Gecko/20100101 Firefox/12.0': Moz (Gecko) with Accept-Encoding header
    === 2013-01-28 18:13:59,703 [sor4] DEBUG XML - Parsed XML from (in memory stream): 0ms
    === 2013-01-28 18:13:59,843 [sor3] DEBUG RPCManager - Processing 1 requests.
    === 2013-01-28 18:13:59,843 [sor3] ERROR IDACall - Top-level servlet error:
    java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
            at com.isomorphic.datasource.DSRequest.<init>(DSRequest.java:405)
            at com.isomorphic.datasource.DSRequest.<init>(DSRequest.java:482)
            at com.isomorphic.rpc.RPCManager.parseRequest(RPCManager.java:1919)
            at com.isomorphic.rpc.RPCManager.<init>(RPCManager.java:296)
            at com.isomorphic.rpc.RPCManager.<init>(RPCManager.java:281)
            at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:116)
            at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
            at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at com.isomorphic.js.JSSyntaxScannerFilter.doFilter(JSSyntaxScannerFilter.java:241)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
            at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665
    )
            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
            at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
            at java.lang.Thread.run(Thread.java:722)
    === 2013-01-28 18:13:59,843 [sor3] INFO  Compression - /isomorphic/IDACall: 2613 -> 704 bytes
    === 2013-01-28 18:13:59,843 [sor1] INFO  Download - Returning 304: Not modified on conditional get of: D:\My Websites\Planet
     Project\isomorphic\skins\SilverWave\images\ListGrid\group_opening.gif
    === 2013-01-28 18:13:59,843 [sor8] DEBUG RPCManager - Processing 1 requests.
    === 2013-01-28 18:13:59,843 [sor8] ERROR IDACall - Top-level servlet error:
    java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map
            at com.isomorphic.datasource.DSRequest.<init>(DSRequest.java:405)
            at com.isomorphic.datasource.DSRequest.<init>(DSRequest.java:482)
            at com.isomorphic.rpc.RPCManager.parseRequest(RPCManager.java:1919)
            at com.isomorphic.rpc.RPCManager.<init>(RPCManager.java:296)
            at com.isomorphic.rpc.RPCManager.<init>(RPCManager.java:281)
            at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:116)
            at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
            at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at com.isomorphic.js.JSSyntaxScannerFilter.doFilter(JSSyntaxScannerFilter.java:241)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
            at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665
    )
            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
            at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
            at java.lang.Thread.run(Thread.java:722)
    === 2013-01-28 18:13:59,843 [sor6] INFO  Download - Returning 304: Not modified on conditional get of: D:\My Websites\Planet
     Project\isomorphic\skins\SilverWave\images\DynamicForm\checked_Disabled.png
    === 2013-01-28 18:13:59,843 [sor4] DEBUG RPCManager - Processing 1 requests.
    === 2013-01-28 18:13:59,843 [or12] DEBUG RPCManager - Processing 1 requests.
    === 2013-01-28 18:13:59,906 [sor8] INFO  Compression - /isomorphic/IDACall: 2613 -> 704 bytes
    === 2013-01-28 18:14:00,000 [sor4] DEBUG RPCManager - Request #1 (DSRequest) payload: {
        criteria:{
        },
        operationConfig:{
            dataSource:"Issue",
            operationType:"fetch"
        },
        appID:"builtinApplication",
        operation:"Issue_fetch",
        oldValues:null
    }
    === 2013-01-28 18:14:00,000 [sor4] INFO  IDACall - Performing 1 operation(s)
    === 2013-01-28 18:14:00,000 [sor4] DEBUG AppBase - [builtinApplication.Issue_fetch] No userTypes defined, allowing anyone ac
    cess to all operations for this application
    === 2013-01-28 18:14:00,000 [sor4] DEBUG AppBase - [builtinApplication.Issue_fetch] No public zero-argument method named '_I
    ssue_fetch' found, performing generic datasource operation
    === 2013-01-28 18:14:00,000 [sor4] INFO  SQLDataSource - [builtinApplication.Issue_fetch] Performing fetch operation with
            criteria: {}    values: {}
    === 2013-01-28 18:14:00,000 [or12] DEBUG RPCManager - Request #1 (DSRequest) payload: {
        criteria:{
        },
        operationConfig:{
            dataSource:"Issue",
            operationType:"fetch"
        },
        appID:"builtinApplication",
        operation:"Issue_fetch",
        oldValues:null
    }
    === 2013-01-28 18:14:00,000 [or12] INFO  IDACall - Performing 1 operation(s)
    === 2013-01-28 18:14:00,000 [or12] DEBUG AppBase - [builtinApplication.Issue_fetch] No userTypes defined, allowing anyone ac
    cess to all operations for this application
    === 2013-01-28 18:14:00,000 [or12] DEBUG AppBase - [builtinApplication.Issue_fetch] No public zero-argument method named '_I
    ssue_fetch' found, performing generic datasource operation
    === 2013-01-28 18:14:00,000 [or12] INFO  SQLDataSource - [builtinApplication.Issue_fetch] Performing fetch operation with
            criteria: {}    values: {}
    === 2013-01-28 18:14:00,000 [or12] INFO  SQLWhereClause - [builtinApplication.Issue_fetch] empty condition
    === 2013-01-28 18:14:00,000 [or12] INFO  SQLDataSource - [builtinApplication.Issue_fetch] derived query: SELECT $defaultSele
    ctClause FROM (Project, IssueImpact, IssueLikelihood, IssueType, Issue) LEFT JOIN Category ON Issue.CategoryID = Category.Ca
    tegoryID LEFT JOIN TeamMember OwnerMember ON Issue.OwnerID = OwnerMember.TeamMemberID LEFT JOIN TeamMember OrigMember ON Iss
    ue.OwnerID = OrigMember.TeamMemberID  WHERE Issue.ProjectID = Project.ProjectID AND Issue.ImpactID = IssueImpact.ImpactID AN
    D Issue.LikelihoodID = IssueLikelihood.LikelihoodID AND Issue.IssueTypeID = IssueType.IssueTypeID AND ($defaultWhereClause)
    === 2013-01-28 18:14:00,000 [or12] INFO  SQLDataSource - [builtinApplication.Issue_fetch] Executing SQL query on 'PlanetProj
    ectDB': SELECT Issue.CategoryID, Category.CategoryName, Issue.ClosedDate, Issue.CommunityID, Issue.Created, Issue.Descriptio
    n, Issue.GoalStatus, Issue.ImpactDescription, Issue.ImpactID, IssueImpact.ImpactName, Issue.IssueDueDate, Issue.IssueID, Iss
    ue.IssueNumber, Issue.IssueStatus, Issue.IssueTitle, Issue.IssueTypeID, IssueType.IssueTypeName, Issue.LikelihoodID, IssueLi
    kelihood.LikelihoodTitle, Issue.Log, Issue.Modified, Issue.OriginalDueDate, Issue.OriginatorID, OrigMember.TeamMemberName AS
     OriginatorName, Issue.OwnerID, OwnerMember.TeamMemberName AS OwnerName, Issue.Private, Issue.ProjectID, Project.ProjectNumb
    er, Project.ProjectTitle, Issue.Resolution, Issue.SpecificDetails FROM (Project, IssueImpact, IssueLikelihood, IssueType, Is
    sue) LEFT JOIN Category ON Issue.CategoryID = Category.CategoryID LEFT JOIN TeamMember OwnerMember ON Issue.OwnerID = OwnerM
    ember.TeamMemberID LEFT JOIN TeamMember OrigMember ON Issue.OwnerID = OrigMember.TeamMemberID  WHERE Issue.ProjectID = Proje
    ct.ProjectID AND Issue.ImpactID = IssueImpact.ImpactID AND Issue.LikelihoodID = IssueLikelihood.LikelihoodID AND Issue.Issue
    TypeID = IssueType.IssueTypeID AND (('1'='1'))
    === 2013-01-28 18:14:00,000 [or12] DEBUG PoolableSQLConnectionFactory - [builtinApplication.Issue_fetch] DriverManager fetch
    ing connection for PlanetProjectDB via jdbc url jdbc:mysql://localhost:3306/PUBLIC
    === 2013-01-28 18:14:00,000 [or12] DEBUG PoolableSQLConnectionFactory - [builtinApplication.Issue_fetch] Passing credentials
     getConnection separately from JDBC URL
    === 2013-01-28 18:14:00,000 [sor4] INFO  SQLWhereClause - [builtinApplication.Issue_fetch] empty condition
    === 2013-01-28 18:14:00,000 [sor4] INFO  SQLDataSource - [builtinApplication.Issue_fetch] derived query: SELECT $defaultSele
    ctClause FROM (Project, IssueImpact, IssueLikelihood, IssueType, Issue) LEFT JOIN Category ON Issue.CategoryID = Category.Ca
    tegoryID LEFT JOIN TeamMember OwnerMember ON Issue.OwnerID = OwnerMember.TeamMemberID LEFT JOIN TeamMember OrigMember ON Iss
    ue.OwnerID = OrigMember.TeamMemberID  WHERE Issue.ProjectID = Project.ProjectID AND Issue.ImpactID = IssueImpact.ImpactID AN
    D Issue.LikelihoodID = IssueLikelihood.LikelihoodID AND Issue.IssueTypeID = IssueType.IssueTypeID AND ($defaultWhereClause)
    === 2013-01-28 18:14:00,000 [sor4] INFO  SQLDataSource - [builtinApplication.Issue_fetch] Executing SQL query on 'PlanetProj
    ectDB': SELECT Issue.CategoryID, Category.CategoryName, Issue.ClosedDate, Issue.CommunityID, Issue.Created, Issue.Descriptio
    n, Issue.GoalStatus, Issue.ImpactDescription, Issue.ImpactID, IssueImpact.ImpactName, Issue.IssueDueDate, Issue.IssueID, Iss
    ue.IssueNumber, Issue.IssueStatus, Issue.IssueTitle, Issue.IssueTypeID, IssueType.IssueTypeName, Issue.LikelihoodID, IssueLi
    kelihood.LikelihoodTitle, Issue.Log, Issue.Modified, Issue.OriginalDueDate, Issue.OriginatorID, OrigMember.TeamMemberName AS
     OriginatorName, Issue.OwnerID, OwnerMember.TeamMemberName AS OwnerName, Issue.Private, Issue.ProjectID, Project.ProjectNumb
    er, Project.ProjectTitle, Issue.Resolution, Issue.SpecificDetails FROM (Project, IssueImpact, IssueLikelihood, IssueType, Is
    sue) LEFT JOIN Category ON Issue.CategoryID = Category.CategoryID LEFT JOIN TeamMember OwnerMember ON Issue.OwnerID = OwnerM
    ember.TeamMemberID LEFT JOIN TeamMember OrigMember ON Issue.OwnerID = OrigMember.TeamMemberID  WHERE Issue.ProjectID = Proje
    ct.ProjectID AND Issue.ImpactID = IssueImpact.ImpactID AND Issue.LikelihoodID = IssueLikelihood.LikelihoodID AND Issue.Issue
    TypeID = IssueType.IssueTypeID AND (('1'='1'))
    === 2013-01-28 18:14:00,000 [sor4] DEBUG PoolableSQLConnectionFactory - [builtinApplication.Issue_fetch] DriverManager fetch
    ing connection for PlanetProjectDB via jdbc url jdbc:mysql://localhost:3306/PUBLIC
    === 2013-01-28 18:14:00,000 [sor4] DEBUG PoolableSQLConnectionFactory - [builtinApplication.Issue_fetch] Passing credentials
     getConnection separately from JDBC URL
    === 2013-01-28 18:14:00,046 [sor4] DEBUG PoolableSQLConnectionFactory - [builtinApplication.Issue_fetch] Returning pooled Co
    nnection
    === 2013-01-28 18:14:00,062 [sor4] DEBUG SQLTransaction - [builtinApplication.Issue_fetch] Started new PlanetProjectDB trans
    action "20252382"
    === 2013-01-28 18:14:00,062 [sor4] INFO  SQLDriver - [builtinApplication.Issue_fetch] Executing SQL query on 'PlanetProjectD
    B': SELECT Issue.CategoryID, Category.CategoryName, Issue.ClosedDate, Issue.CommunityID, Issue.Created, Issue.Description, I
    ssue.GoalStatus, Issue.ImpactDescription, Issue.ImpactID, IssueImpact.ImpactName, Issue.IssueDueDate, Issue.IssueID, Issue.I
    ssueNumber, Issue.IssueStatus, Issue.IssueTitle, Issue.IssueTypeID, IssueType.IssueTypeName, Issue.LikelihoodID, IssueLikeli
    hood.LikelihoodTitle, Issue.Log, Issue.Modified, Issue.OriginalDueDate, Issue.OriginatorID, OrigMember.TeamMemberName AS Ori
    ginatorName, Issue.OwnerID, OwnerMember.TeamMemberName AS OwnerName, Issue.Private, Issue.ProjectID, Project.ProjectNumber,
    Project.ProjectTitle, Issue.Resolution, Issue.SpecificDetails FROM (Project, IssueImpact, IssueLikelihood, IssueType, Issue)
     LEFT JOIN Category ON Issue.CategoryID = Category.CategoryID LEFT JOIN TeamMember OwnerMember ON Issue.OwnerID = OwnerMembe
    r.TeamMemberID LEFT JOIN TeamMember OrigMember ON Issue.OwnerID = OrigMember.TeamMemberID  WHERE Issue.ProjectID = Project.P
    rojectID AND Issue.ImpactID = IssueImpact.ImpactID AND Issue.LikelihoodID = IssueLikelihood.LikelihoodID AND Issue.IssueType
    ID = IssueType.IssueTypeID AND (('1'='1'))
    === 2013-01-28 18:14:00,062 [or12] DEBUG PoolableSQLConnectionFactory - [builtinApplication.Issue_fetch] Returning pooled Co
    nnection
    === 2013-01-28 18:14:00,078 [or12] DEBUG SQLTransaction - [builtinApplication.Issue_fetch] Started new PlanetProjectDB trans
    action "22942148"
    === 2013-01-28 18:14:00,078 [or12] INFO  SQLDriver - [builtinApplication.Issue_fetch] Executing SQL query on 'PlanetProjectD
    B': SELECT Issue.CategoryID, Category.CategoryName, Issue.ClosedDate, Issue.CommunityID, Issue.Created, Issue.Description, I
    ssue.GoalStatus, Issue.ImpactDescription, Issue.ImpactID, IssueImpact.ImpactName, Issue.IssueDueDate, Issue.IssueID, Issue.I
    ssueNumber, Issue.IssueStatus, Issue.IssueTitle, Issue.IssueTypeID, IssueType.IssueTypeName, Issue.LikelihoodID, IssueLikeli
    hood.LikelihoodTitle, Issue.Log, Issue.Modified, Issue.OriginalDueDate, Issue.OriginatorID, OrigMember.TeamMemberName AS Ori
    ginatorName, Issue.OwnerID, OwnerMember.TeamMemberName AS OwnerName, Issue.Private, Issue.ProjectID, Project.ProjectNumber,
    Project.ProjectTitle, Issue.Resolution, Issue.SpecificDetails FROM (Project, IssueImpact, IssueLikelihood, IssueType, Issue)
     LEFT JOIN Category ON Issue.CategoryID = Category.CategoryID LEFT JOIN TeamMember OwnerMember ON Issue.OwnerID = OwnerMembe
    r.TeamMemberID LEFT JOIN TeamMember OrigMember ON Issue.OwnerID = OrigMember.TeamMemberID  WHERE Issue.ProjectID = Project.P
    rojectID AND Issue.ImpactID = IssueImpact.ImpactID AND Issue.LikelihoodID = IssueLikelihood.LikelihoodID AND Issue.IssueType
    ID = IssueType.IssueTypeID AND (('1'='1'))
    === 2013-01-28 18:14:00,234 [or12] INFO  DSResponse - [builtinApplication.Issue_fetch] DSResponse: List with 9 items
    === 2013-01-28 18:14:00,234 [or12] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
    === 2013-01-28 18:14:00,234 [or12] DEBUG SQLTransaction - Committing PlanetProjectDB transaction "22942148"
    === 2013-01-28 18:14:00,234 [or12] DEBUG RPCManager - non-DMI response, dropExtraFields: false
    === 2013-01-28 18:14:00,234 [sor4] INFO  DSResponse - [builtinApplication.Issue_fetch] DSResponse: List with 9 items
    === 2013-01-28 18:14:00,234 [sor4] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
    === 2013-01-28 18:14:00,234 [sor4] DEBUG SQLTransaction - Committing PlanetProjectDB transaction "20252382"
    === 2013-01-28 18:14:00,234 [sor4] DEBUG RPCManager - non-DMI response, dropExtraFields: false
    === 2013-01-28 18:14:00,250 [sor4] DEBUG SQLTransaction - Ending PlanetProjectDB transaction "20252382"
    === 2013-01-28 18:14:00,250 [or12] DEBUG SQLTransaction - Ending PlanetProjectDB transaction "22942148"
    === 2013-01-28 18:14:00,250 [or12] INFO  Compression - /isomorphic/IDACall: 6029 -> 1288 bytes
    === 2013-01-28 18:14:00,250 [sor4] INFO  Compression - /isomorphic/IDACall: 6029 -> 1288 bytes
    === 2013-01-28 18:16:31,734 [or12] INFO  RequestContext - URL: '/isomorphic/skins/SilverWave/images/Dialog/confirm.png', Use
    r-Agent: 'Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0': Moz (Gecko) with Accept-Encoding header
    === 2013-01-28 18:16:31,828 [or12] INFO  Download - done streaming: D:/My Websites/Planet Project/isomorphic/skins/SilverWav
    e/images/Dialog/confirm.png
    I am encouraged by all data that gets retrieved. And, frustrated that I cannot get my hands on it so I can edit the resultSet.

    Any ideas would be appreciated.

    Thanks,

    Rick

    P.S. I am running SmartClient Version: v8.2p_2013-01-14/EVAL Development Only on Mozilla Firefox 12.0 with Firebug using Windows XP Pro 32 bit.

    #2
    We're not 100% clear on what you're attempting to achieve but it sounds like you're taking an approach that is going to be difficult to support.

    If you issue a fetchData() request on a grid, the following steps occur:
    - a ResultSet instance is created automatically and assigned to the grid as this.data.
    - the grid attempts to "get" the set of rows to be displayed, which causes the ResultSet to issue a dataSource fetch request, using the criteria and callback you supplied.
    - The callback will fire when the fetch request completes.
    dsResponse.data will contain the data returned by the server (raw-records).

    The response would not contain a direct pointer to the resultSet instance as you seem to be expecting. You could get at it by looking at the listGrid's "data" object, but attempting to manipulate it directly may be difficult.

    --
    If your goal is to perform a dataSource fetch, manipulate the returned results in some way, and populate the grid with them, it's easiest to do this without ever using a ResultSet or performing a dataBoundComponent fetchData() call.
    Instead you can call DataSource.fetchData(), and in the callback, manipulate the dsResponse.data array as you need, then assign it to the grid via a simple setData() call.

    Having said that, we are not clear on your use case, so if this won't work for you, please try to describe exactly what you're trying to achieve at a high level so we have a better idea of what you're doing.

    Comment


      #3
      A very quick reply on a complicated goal. I am going for the following 'use case' presentation with grids.
      Code:
      +topic 1  (issues 1-8 unexpanded)
      +topic 2  (issues 9-10 unexpanded)
      -topic 3
                +issue 11 (tasks unexpanded)
                +issue 12 (tasks unexpanded)
                +issue 13 (tasks unexpanded)
                -issue 14
                      -task 23
                      -task 24
                      -task 25
                      -task 26
                +issue 15 (tasks unexpanded)
                +issue 16 (tasks unexpanded)
      +topic 4  (issues unexpanded)
      +topic 5  (issues unexpanded)
      Actually, I had this structure working. I did it by using expansionRelated stuff. I created the task grids using expansionRelatedProperties from the listgrid above. There actually IS one related relation. Tasks each have an IssueID for the issue that owns them.

      This let me click around, but it was missing a number of elements I really need.

      1) the issues are not really 'related' to topics. The topics contain fields that make up criteria to select issues. (That's why I was doing the Issue.fetchData.)

      2) issues 'found' by criteria in topic 1 should not be duplicated under topic 2 or any other later topic.

      3) as an added complication, a recordDoubleClick on an issue or task should open an appropriate window.

      I may have been close. I did see the returned data: "Array[9]". I guess as long as I am in the callback function, I can removeAt() the duplicate records without having to make a copy.

      Code:
      Instead you can call DataSource.fetchData(), and in the callback, manipulate the dsResponse.data array as you need, then assign it to the grid via a simple setData() call.
      I will try to make this change and see what blows up!

      Thanks,

      Rick

      Comment


        #4
        I am revising my approach. However, I hit a bump. Before I assign issues to topics, I need to have all the issues for the particular project assembled in one place. I thought cacheAllData would give me a synchronous result. When I check hasAllData it is false. The call is below.

        Code:
        Issue.getClientOnlyDataSource( { ProjectID: Application.currentProjectID },
            function (dataSource) {
                Log.logDebug("************ project issue records fetched: " + this.echo(dataSource));
                if (dataSource.hasAllData()) {
                    if (dataSource.cacheData.getLenth() > 0) {
                        Log.logDebug("************ done with successful MeetingTopic.fetchData call with recordcount"  );
                    } else {
                        isc.say("No project issue records fetched for ProjectID: " + Application.currentProjectID);
                    }   // end if (dataSource.cacheData.getLenth() > 0)
                } else {
                    isc.say("Error: dataSource.hasAllData() is not true fetching project issue records for ProjectID: " + Application.currentProjectID);
                }
            }, // end of Issue.getClientOnlyDataSource function
            {   showPrompt: true }, // requestProperties
            {   ID: "ProjectIssue", addGlobal: true, cacheAllData: true }  // dataSourceProperties
        );  // end of Issue.getClientOnlyDataSource call
        How can I force hasAllData to be true? Do I need to loop or delay or something?

        Rick

        Comment


          #5
          This post can be ignored. I don't need a synchronous result. That would be too difficult, anyway.

          Rick

          Comment

          Working...
          X