I have written a custom .NET application which is integrated within the iMIS framework and is placed in the Events module. In this application there is a datagrid with a column containing iMIS ID's. When you you click on the ID it loads the record in the Customers module.
The URL being used is "imisnet:contact/1234/85a3ab83-7fe3-417f-af85-61f4d29d30e8-key_contact" where 1234 is an example iMIS ID. The GUID is just hardcoded.
When I click on this link, it creates a customer portfolio error. Here is what it shows in the error log:
17:05:29 Type: 'Error' Source: 'Customer Portfolio.ctlHistory.AddToSearchHistory' Desc: Rowset not available
17:05:29 Type: 'Error' Source: 'Customer Portfolio.ctlExecScreen.IMIS_nNewId' Desc: Rowset not available
17:05:31 Type: 'Information' Source: 'Customer Portfolio.EPWAbort' Desc: Aborting EPW.
This worked fine in iMIS 10.6. Since moving to iMIS15 it is having these problems.
I ran a trace, and one of the queries it was running was:
Select Name.ID, Name.CO_ID, Name.COMPANY_RECORD, Name.CITY, Name.STATE_PROVINCE, Name.FULL_NAME, Name.MEMBER_TYPE, Name.TITLE, Name.COMPANY,
Name.ID,Name.LAST_NAME,Name.FIRST_NAME,Name.MIDDLE_NAME,Name.SUFFIX,Name.TITLE,Name.COMPANY,Name.CITY,Name.STATE_PROVINCE,Name.MEMBER_TYPE,Name.CATEGORY,Name.COMPANY_SORT from
Name inner join IQA_Query_Cache on ID = Value where QueryId = '85a3ab83-7fe3-417f-af85-61f4d29d30e8-key_contact'
This is not returning anything because I am not inserting anything into the "IQA_Query_Cache" table.
This was not required before. Is it now a requirement to insert into the IQA_Query_Cache table before you can load a customer record?
I tried removing the GUID and just having the ID in the URL, but that didn't work (record did not load at all).
Now I have the issue of having to insert the ID which was clicked on into the "IQA_Query_Cache" table.
Any ideas on this?
The IQA_Query_Cache table is
The IQA_Query_Cache table is used to provide the full list of results to Customer Portfolio -- so that you can use the "find" grid to move around among results without returning to/rerunning the IQA query, just like with an ad-hoc search.
The following INSERT statement will create the required rows in IQA_Query_Cache. You don't need to worry about cleaning them up, CP will automatically do it for the current customer when it exits.
INSERT INTO IQA_Query_Cache (UserId, QueryId, Value)
VALUES ([current user logon], [the Guid you're passing in your link], [the contact, event, or order ID for the row])
If you want the results grid to be populated with all of your returned rows (not just the one the user clicked), then do an insert for each result row, placing its ID in the Value column.