I want to perform a certain action in my script only the first time in the transaction, but not when the same screen is displayed again during this transaction. How can I achieve this?

GuiXT works on a screen basis, without knowing anything about transactions. So there is no simple way to solve your problem. You can use one of the following possibilities:

- If there is a certain field on the screen (e.g. material number, account number) that is initially blank, and has to be filled in by the user, you can use it as an indicator that you are processing this screen the first time:

Set V[MM01_material] "&F[Material]
if  V[
MM01_
material=]
  ....
endif
   

- If the transaction is always started with a particular entry screen, you can reset all transaction-related variables there:

Set V[MM01_*] ""

- If you know that a certain field value will change when the user performs the transaction the next time, use coding of the following type:

Set V[MM01_material] "&F[Material]
if  not V[
MM01_material=&V[MM01_previous_material]]
  Set V[
MM01_previous_material] "&V[MM01_material]"
  ....
endif