There may be other ways but this is how I would do it.
We need somewhere to store the currently selected Country for each LoggedInRegularUser
So, add an attribute to the RegularUser BO called CurrentCountry of type Text of the same length as the Country Text Attribute in the Country BO.
Now, we will have two scenarios....
Firstly, when the user has never logged in before and hence has no Country selected and,
Secondly, when the have indeed logged in previously and hence have their last log in Country name stored in the CurrentCountry attribute oh the RegularUser BO.
Now Create a new BO Called CountrySelect with a single Attribute called SelectedCountry of type Country (peer). Make Sure the BO is set to Non Persistant. For the Main form of this BO ensure the Attribute is set to Drop Down so it displays a Drop Down Combo box on the screen for the user to select a country from.
So, create a new Process called UserLoginCountrySelection.
In the Conditions add this line.....
LoggedInRegularUser.CurrentCountry IS DEFINED
ENTER NEW CountrySelect WITH CountrySelect.SelectedCountry=Country.Country
LoggedInRegularUser.CurrentCountry=SelectedContryNP.Country
AS it seem you are new to Aware you may not know that you cannot enter an IF THEN ELSE structure from the normal builder so you need to edit this textually from that tab...see down the bottom.
When you select Enter Textually (I cannot remember the exact terminology as I am not in fron t of my Aware machine)
You will see the following...
If LoggedInRegularUser.CurrentCountry IS DEFINED Then
ENTER NEW CountrySelect WITH CountrySelect.SelectedCountry=Country.Country
LoggedInRegularUser.CurrentCountry=SelectedContryNP.Country
You need to modify this as follows....
If LoggedInRegularUser.CurrentCountry IS DEFINED Then
ENTER NEW CountrySelect WITH CountrySelect.SelectedCountry=Country.Country
LoggedInRegularUser.CurrentCountry=SelectedContryNP.Country
Else
ENTER NEW CountrySelect
LoggedInRegularUser.CurrentCountry=SelectedContryNP.Country
No in the Visual Perspective (I think it is in Properties) there is an option for you to run a Process at Login. Enter this process there, UserLoginCountrySelection.
So now when the user logs in for the first time they will be presented with a form requiring them to select a Country from the Combo Drop Down.
Once selected, that value will be stored in the RegularUser BO of the user who has logged in.
After the first time the same will happen except the Country they chose last time they logged in will be the once initially appearing in the Combo Drop Down.
They can change if they want to.
Note that the newly created instance of CountrySelect will die as soon as you are logged in as it is Not Persisted and will get destroyed (as you want it to do) as soon as it falls out of context.
As soon as they click Create you will be able to establish the Country they logged into anywhere in the app by referring to LoggedInRegularUser.CurrentCountry
As I said, I am not in front of an Aware machine so I am describing this off the top of my head. May not work precisely like that but should be pretty close.
Test it out and see how you go.
Hope that helps.