Insert a delay after the input action
Inserting a delay is the best solution if the session is an ordinary TN3270 session or if the session is a TN3270E session without contention-resolution. That is, after the Input action (in ScreenA in our example) that causes the host to send a new application screen, insert a pause of several hundred milliseconds or longer. This delay allows enough time for the host to update the application screen before the macro runtime starts processing the actions in the next macro screen (ScreenB).
In this scenario there are several ways to insert a pause after
the Input action:
- Increase the Pause Between Actions delay.
- Increase the Set Pause Time for ScreenA. This method is a good one. You are increasing the pause time only for ScreenA, so that only ScreenA is affected.
- Add a Pause action to ScreenA immediately after the Input action. This method is also good. You are inserting a pause exactly where it is needed.
- Add a Pause action as the first action of ScreenB. You might prefer this method in certain scenarios. However, using this method, if there are several macro screens that can occur after ScreenA (such as ScreenB, ScreenC, ScreenD), and if the screen completion problem occurs for each of these following macro screens, then you must to insert a Pause as the first action for each of these following macro screens. It is easier to use the method in the previous bullet and insert a Pause Action in one macro screen, ScreenA.
If your macro has to run both on ordinary TN3270 sessions and also on TN3270E sessions with contention-resolution enabled, the XML macro language has several attributes that can help you. See Attributes that deal with screen completion.