If you know that it will always be one of the two - “Employee Number” or “Staff ID”, you could surround the first “Lookup datatable” with a “Try/Catch”, and create another “Lookup datatable” (with the other column name) in the “Exception”-part of the Try/Catch-Activity.
One way I’ve handled situations where the source changes is to put the necessary info into a config file. For example you could have something in the config file like this:
Name: ID Column Names
Value: Employee Number,Staff ID,Employee ID
Then you use that list to check if there is a column with one of those names, and rename the column to what you want it to be so you can then code the lookup based on the known column name you change it to.
And if it doesn’t find one of those column names you throw an exception which indicates you have another value to add to the config file list.
In that case there is an alternate Approch using Linq.
Declare a String variable employeeIDColumn : used to store the correct column in Dt2 where the “Employee ID” might be stored, whether it’s named “Employee Number,” “Staff ID,” or “Staff Number.”
Assign activity to Get the column Name : Get the employee ID column in the particular Datatable. Mention All possible entries for the same.
In theory you can add another Try/Catch inside the first Try/Catch and continue like this, untill you cover the known column names.
However its not a “pretty” way to do it… but might work…
Let me know if you need an example.