Login in process state

Hi all,
i’m using REFramework without orchestrator queues and BOT provides to manage some orders inside an app via citrix. So the login process is open citrix–>open app1–>open app2

When i finish to manage all orders i need to attach citrix and re-open app1 to login in another instance of this apps and do the same work. That for 10 instances (or room is the same). The composition of app1 is the same for every instances, so i loop the instances in getTransaction Status and for each go to process state and process them.

My issue is about login, i’ve used max retry number via config state to 3, so in case of system error doesn’t increment the instance number of my app, kill all apps and retry login and process.

If i put my app1 login in INIT STATE i’m not be able to change instance, because in case of NO ERROR i won’t go back to INIT, so i put the app1 login in PROCESS STATE.
So, can i put all my login, citrix included, in PROCESS STATE? Is a good solution? So in case of retry close all apps and for the same instance repeat the login in PROCESS STATE or there are some inconvenient?
Thanks in advance

Yes you can do that. The logic of your application / process is such that an application instance and login is required per Transaction.

Keep note that when a system exception occurs the framework will still go back to the Initialization state. If you’re not opening your applications here not much will happen. After initialization the Get Transaction state is triggered and your Transaction is retrieved again. The Process will re-open your applications and try again. At the end of your Process state gracefully close the application(s) related to the current Transaction.

1 Like

Yes, that’s my routine, one transaction, one login. Thanks for reply.

Now i have another issue. in one tab of my process transaction rows i can pass only one time, at second time occur a fatal error. So i put an if statement before, if retry number is 0, work that tab, otherwise no.
My problem now is: if i have a login error, and in that case retry, the retry number increment to 1, and will not pass on that tab, how can i fix it?

Set a boolean to False at the very beginning of each transaction where the retry count is 0. The moment you passed the data to the tab, set this boolean to True.

Now you could use this boolean to check if you have already passed data for this Transaction to the tab.

1 Like

Many thanks, you understand my problem.

I had thought of a similar solution, put a boolean on “YES” if only one row will be worked and reinitialize to “NO” when increment my transactionNumber (so in case of no error or 3 retry) and put my tab on process transaction in a if. if boolean is “NO” process, otherwise, skip onto the next tab. Correct?

Many thanks

Correct. Very welcome and good luck.

1 Like

Hi @OpalSnow i’ve tried and doesn’t work. Unfortunately i haven’t put some write line/log.

I initialize the boolean variable with False at INIT - First run, then i pass it in PROCESS like an in/out argument and when first row is processed change to TRUE.
Return to false when max retries number is reached or in successfull case (In set transaction status).

What i’m wrong?

  1. Set Boolean to False at begin of Process state when retry count is 0.
  2. Check if Boolean is False. If so, continue submitting data to the tab.
  3. Set Boolean to True when the data has been submit to the tab.

Now when a retry occurs, it will not submit the data to the tab again.

Sorry for disturbing you again, this solution doesn’t work when an error occur in this tab.

Example. Enter in process and put in a IF retry number = 0 assign flag to FALSE. Process the first row of tab 2 and at the end put the flag to TRUE, an error occur at the second row and the retry mechanism is active. It goes to FINALLY, i put a write line before set transaction status and the flag is false.
Considered the structure like this: Process Transaction --> Global variable flag, Process STATE–> In/Out argument flag, invoke PROCESS TAB Out argument flag

How can i fix it?

Is each transaction one row? Or do multiple rows belong to one transaction

Is a transaction submit in one tab or multiple tabs?

After the submission into a tab, is the transaction complete or does it require some more data into different tabs?

1 Like
  • Each transaction (instance) contains multiple rows on multiple TABS (every tab is an invoke workflow inside process state)
  • There is a counter for each tab, when there aren’t more rows to process, step into the next TAB, when all TABS are completed, pass to the next instance (TransactionItem via GetTransaction)

Up pls

I am not quite sure as what you mean exactly. Could you perhaps rephrase and restate your issue?

The above mentioned method should stop your application from submitting data to your application upon a system exception when your data has already been submit.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.