Troubleshooting Recordsets

Modifying records in a recordset from the Design Tool can create synchronization problems between the Design Tool and the host. For example, if Host Integrator inserts the first record in a recordset and there are no indicators that it should wait for the host to commit to a modification and make a new blank record appear, Host Integrator reports this as an error. The issue is that the Design Tool refreshes the internal view of the screen in the Terminal window before the host has received the new data.

Use the Model Debug Messages utility to compare what the model expects the screen to be against the host data stream.

Inserting and Updating Records

To fix this modification issue, create an operation using one or more Host Events commands that makes Host Integrator wait until the host is done returning the new input record. Then, configure Host Integrator to execute this operation after a record insert or record update. This operation will finalize a recordset change and write the inserted or updated record to the host. This can be accomplished in the Design Tool by configuring the options in the Inserting records box or the Updating records box of the Recordset Operations dialog box or with a performOperation method using an AppConn data object.

Testing Recordset Fetching and Selecting

The following provide examples of recordset debugging that can be accomplished with the Test Recordset dialog box:

Action

Symptom

Possible Solutions

Fetch Records Only one screen of data is returned. On the Recordset Tab, open the Recordset Operations dialog box. Check to see if you are missing a Page down operation.
Fetch Records   No data is returned. Check the Current record index. If it is not zero, then set the current record index to zero and retry the fetch.
Fetch Records   Fetching records does not terminate. The Break button must be clicked. 1. Check the termination condition of your recordset in theRecordset Termination dialog box.

2. If the termination condition is correct, check the Page down operation to ensure that it is truly paging down on the host. A Page down operation that doesn’t actually page through the host data may cause the termination condition to fail.
Fetch Records First screen is returned twice. The Page Down operation should not complete until the entire screen is displayed. The type of Wait operation for this situation varies by terminal type.
Fetch Records   A number of blank records are returned along with the data. In the Recordset Options dialog box, select Skip blank records.
Any Action After executing an action, the Test Recordset dialog box just displays the message, "The current entity does not contain a recordset." The action that you performed navigated you to a different screen. For selection, this is generally the expected result. If this happens as the result of a fetch or an insert, there may be a problem with a scrolling operation or an insertion operation resulting in unexpected navigation.
Select Record A selection operation did not reach the expected destination.
AND
It did navigate to a different screen.
There is probably something wrong with the selection operation itself. Check to make sure that the expected destination and alternate/intermediate destinations for the selection operation are correct.
Select Record A selection operation did not reach the expected destination.
AND
It did not navigate to a different screen.
AND The current record index is at the end of the recordset.
If the current record index was not reset after executing a previous action, selection will fail.
Set the current record index to 0 and try selection again. If it still fails, check the filter string to make sure that the filter condition is correct. If you can't set the current record index to 0, you may have to leave the entity and come back to the Test Recordset dialog box to reset the recordset. Another alternative is to define a Home operation in the Recordset Operations dialog box that you can navigate back to.
Select Record A selection operation reached the expected destination, but the wrong record was selected. In the Recordset Operations dialog box, check to see if you are missing a Line down operation. For an example of Line down operation:
  1. Open SIDemo.modelx in the Design Tool.
  2. Select CustomerPurchases from the Entity box.
  3. Select the Recordset tab, and click the Operations button.
  4. In the Scrolling box, notice that LineDown is selected from the Line down box.
  5. To view details about the LineDown operation configured here, open the Operation tab and select LineDown from the Name box.

 

Related Topics
Bullet Example of testing a recordset