It was rainy Monday evening, sitting down the chair doing the usual surfing the net. All of a sudden, a colleague of mine pinged me via MOC, asking me to check the issue they are having. I quickly check what is going on via the log file. It was;t pretty since I need a stable connection just to tail the entire log file – I can’t even open much less grep through the exceptions. Yet as luck would strike, the ctrl + g then ? then keyword “Exception” return an line.
Exception: Column <> is missing
I quickly realise that this was an error due to the inconsistency of data and configuration of our UAT environment across the board. It’s something inevitable and cannot be seen if you don’t look over the scheme of things. I knew how to fix it, I advised that what needs to be done – and problem is solved.
Now I didn’t stop thinking about it, I know that it was solved, but it seems that this kind of issue will keep on creeping us as long as we don’t put a rotational sync of UAT environments – which is not an option since we don’t want to refresh the database every week as it may entail replication issues or UAT data loss. It’s basically a hard sell if it needs to.
Now if you look at it from a different perspective, there will be questions. Questions of, “if this is not possible, why can’t this be done?” Can’t we just work around it? What if the developer has the right tools before this issue happens? What if we can prevent it?”. As I think through all this, 1 solution came to mind.
I clearly see what lacked and know what happened, there is something that can be done and that is to automate the data control management entry on all environments – automate to promote it, not to execute it.
What if: I create a script that by the end of a release, this tool can be used by the developer to promote the DCMs to different test environments? The dev would need to align to different owners of those test environments that the promoted entries is mandatory as it will create the production objects that was recently released?
A python script, gets all DCM > run the DCM links > promote DCM > use a different user (dev?) > generate emails that will be send out to the leads?
That way, we prevent the sync, we aligned to the leads what needs to be done and we prepared whats needed.