cancel
Showing results for 
Search instead for 
Did you mean: 

One Process or Multiple

DavidAnderson
Level 3

I have a process best practice question. We are automating application removal for the leaver process. When someone leaves, they have 4 default mainframe applications where access would need to be removed. Would that be one process to remove all 4 applications or 1 process for each application removal for a total of 4 processes.



------------------------------
David Anderson
------------------------------
1 BEST ANSWER

Best Answers

Hi David,


Please find my view on having single and multiple processes below.

 

Approach 1:

We can create a main process to revoke access from all the 4 mainframe applications. In that case you can create a single queue and update the tags in the work queue item after revoking accesses from each application. In case if you require any delay (in minutes, hours) to revoke the access from next application then you can defer the queue item and pick the next item from queue and continue the process (defer logic should be handled in the main process)

Process flow:

1)     Load Process

2)     Main Process

3)     MI Report

Queue : Process_Queue1

Pros:

The process performance can be reviewed using the single work queue.

Cons:

Process may look complex as we need define the entire process flow to revoke access from 4 mainframe applications. On top of this if you are planning to defer the items in queue then managing and monitoring the work queue might be a tedious task for the controllers.

 

Approach 2:

We can create multiple processes and multiple queue each for one application. After the revoking the access for one application the corresponding work item can be marked as completed and new work item can be populated in the next process queue and so on.

 

Process flow:

1)     Load Process_Queue1 

2)     Process A

3)     Process B

4)     Process C

5)     Process D

6)     MI Report

Queue :

1)     Process_Queue1

2)     Process_Queue2

3)     Process_Queue3

4)     Process_Queue4

Pros :

It's easy for the controllers to manage the multiple queue items and allocate the work to multiple bots. Multiple processes will look very simple and easy to maintain.

Cons:

Difficult to obtain a single MI report as we are using multiple work queues (As a workaround, we can create our own customized process to generate a consolidated report)



------------------------------
Athiban Mahamathi
------------------------------

View answer in original post

5 REPLIES 5

harish.m
Level 12


Just to give an outline I follow below process but tweak based on the automation
Process 1 - Input data to load in to queue
Process 2 -  Interact with Application( Here depends on no of screens, complexity of the automation,SLA, business requirment)
Process 3 - Output Data

Based on the description you provided it sounds like you can remove access for all the items in the queue for one application and move to the next application in that case to my best knowledge I would  prefer creating multiple processes  it will give flexible to run multiple bots but that has their own tradeoff you need to monitpor and schedule multiple process in unattended run.



------------------------------
-----------------------
If I answered your query. Please mark it as the "Best Answer"

Harish M
Lead developer
America/New_York TX
------------------------------
----------------------- If I answered your query. Please mark it as the "Best Answer" [FirstName] [LastName] [Designation] [JobTitle] [City] [State] [Phone]

Hi David,


Please find my view on having single and multiple processes below.

 

Approach 1:

We can create a main process to revoke access from all the 4 mainframe applications. In that case you can create a single queue and update the tags in the work queue item after revoking accesses from each application. In case if you require any delay (in minutes, hours) to revoke the access from next application then you can defer the queue item and pick the next item from queue and continue the process (defer logic should be handled in the main process)

Process flow:

1)     Load Process

2)     Main Process

3)     MI Report

Queue : Process_Queue1

Pros:

The process performance can be reviewed using the single work queue.

Cons:

Process may look complex as we need define the entire process flow to revoke access from 4 mainframe applications. On top of this if you are planning to defer the items in queue then managing and monitoring the work queue might be a tedious task for the controllers.

 

Approach 2:

We can create multiple processes and multiple queue each for one application. After the revoking the access for one application the corresponding work item can be marked as completed and new work item can be populated in the next process queue and so on.

 

Process flow:

1)     Load Process_Queue1 

2)     Process A

3)     Process B

4)     Process C

5)     Process D

6)     MI Report

Queue :

1)     Process_Queue1

2)     Process_Queue2

3)     Process_Queue3

4)     Process_Queue4

Pros :

It's easy for the controllers to manage the multiple queue items and allocate the work to multiple bots. Multiple processes will look very simple and easy to maintain.

Cons:

Difficult to obtain a single MI report as we are using multiple work queues (As a workaround, we can create our own customized process to generate a consolidated report)



------------------------------
Athiban Mahamathi
------------------------------

Hi David,

I agree with the other comments here, although I tend to design based on a process by process basis. Generally, and likely in the case of your current scenario, the approach should be 3 processes. One for data gather such as from databases or excel wherever the information comes from and use this to put everything into the queue, the second is for processing the work items and the third for reporting. 

For the scenario you mentioned some might suggest multiple queues depending on which mainframe that work item should be removed from but I usually like to keep to one queue. I would say if the person will only ever be removed from one mainframe then for each item during the data gather either state the mainframe name as part of the item key or tag it to identify it. If they can have multiple mainframes to be removed from then you might not need to state which one they are to be removed from but you could also add work item data the info for which ones they were removed from.



------------------------------
Michael ONeil
Technical Lead developer
NTTData
Europe/London
------------------------------

AbhinavKumar
Level 3

Hi David,

You can create 2 process for this scenario.

1st Process -  Retrieve the data and add into queue. you can use tag like Mainframe1, Mainframe2, Mainframe3 and Mainframe4.

2nd Process (Main Process) - Fetch the item from queue and process it based on the tag and after processing one Mainframe application you can untag it in the queue. 

For example after processing the item for one mainframe application you can remove that application tag from queue

Intial tag - Pending for Mainframe1, Pending for Mainframe2, Pending for Mainframe3 and Pending for Mainframe4.

After processing one application - Pending for Mainframe2, Pending for Mainframe3 and Pending for Mainframe4

Similarly you can process for all 4 application based on item tag in the queue.



------------------------------
Abhinav Kumar
Associate Manager
SimplifyNext Pte Ltd
Asia/Singapore
------------------------------

PvD_SE
Level 12

Hi David,

The thing to do here is to wonder what parts are repeating the same thing. As a rule, as soon as you have something that repeats an earlier bit of code, you should ask yourself if you should program the same thing again, or that you should reuse the existing code.

Obviously, we're not going to make an object or process for a calculation stage offering a simple mathematic formula. But if it is a complicated formula that we use in many places, and it might change sometimes, then it would be an ideal target for its own object.

Ideally, when you were developing the earlier code, you would foresee that it might be reusable and had it developed into its own process or object. This is obviously not always the case but should not stop you to do that later on. Duplicate code is very costly over time.

Reusing existing code is done by giving it the in- and out-parameters to be more flexible. 



------------------------------
Happy coding!
---------------
Paul
Sweden
------------------------------
Happy coding!
Paul, Sweden
(By all means, do not mark this as the best answer!)