Session handling
Report Frame ID
Every DirectLink contains an InstanceID parameter. By default, its
value is set to 1. It appears in the DirectLink URL as:
InstanceID=1
This parameter specifies the unique identifier for the frame in which the report is displayed. The ID relates a specific frame in the web browser with a specific spreadsheet in the WebHost process on the web server. So, if a web page contains more than one DirectLink, each DirectLink must have a separate InstanceID.
Example
Portal.html contains three IFrame html elements that display three Application Studio WebServices (ASWS) reports.
Each IFrame contains a DirectLink url that points to a report on the ASWS web server.
On the client, the portal page is hosted in one browser instance. This corresponds to one server session and one WebHost.exe worker process.
The WebHost process hosts three spreadsheets; each spreadsheet corresponds to one report.
The report frame ID is used to relate reports in the client/browser to the corresponding WebHost spreadsheet modules on the server. For example, if the user drills down the report hosted in frame 2 then the browser sends a drill down request to the WebHost with InstanceID=2.
Notes
The IDs must be unique.
The IDs need not be consecutive integers (e.g.1,2,3...etc. ). It is only important that they are unique.
The ID is not related to the report. It links a specific frame in the browser with a specific spreadsheet in WebHost on the web server.
The number of IDs can change. You can programmatically add an IFrame to a portal page at run time and assign a DirectLink to it. This will create a new spreadsheet instance in the WebHost on the server.
There are two kinds of portal:
- With a constant number of IFrames. The number of IDs equals the number of IFrames. In this case you define the IDs once.
- With a variable number of IFrames. IFrames can be created and destroyed programmatically in the client and assigned to DirectLinks. In this case the ID must also be assigned programmatically.
It is the responsibility of the portal developer to maintain the IDs
Example
Three IFrames (with InstanceIDs 1, 2 and 3) host three reports (Report1, Report2 and Report3).
The portal developer adds a fourth frame to host Report4 but assigns it a DirectLink with InstanceId=3.
Report4 overwrites the spreadsheet corresponding to Report3 on the server
If the user triggers a request in Report3 (e.g. selects from a combo box) the request fails.