Hi Kenan,
You can create 1 table and 2 program and add programs in each process chain.
Add 4 fields in table - Country, user(Optional), DSO name (If more than on DSO in process chain) and time(System time)
Since your user is same; in all country process chain, you can use country and system time to run process chains in parallel with behavior as Queue.
your process chain steps will be
1. Program to create entry of DSO in table
2. Info package for DSO
3. DTP for DSO
4. Program to delete entry of DSO from table
Note: your have to use WHILE Loop in step 1 so that if DSO is locked other user then execution will wait and as soon as locked is removed then execution continues.
For example, if you are loading data from 4 countries - C1, C2, C3 and C4.
if you have DSO say - D_DSO.
then in table during execution entries are created as follows
Country DSO Time
C1 D_DSO 11:11:15
C3 D_DSO 11:11:18
C2 D_DSO 11:11:20
C4 D_DSO 11:11:22
So Step one will execute for first entry, and make other 3 wait. as soon as C1 country finished execution that entry is removed from table and C3 execution starts and goes on.
If you have multiple DSO then you have to add DSO name in table else not required.
Tell Your ABAPer to create those 2 code and 1 table.
Regards,
Pritesh.