Instead of creating a custom integration mechanism, I wonder if you could do the following:
- Create a view in the GIS database that connects to Maximo via a dblink.
- In the view, generate fake rows for the missing GIS assets -- if those assets haven't already been changed to decommissioned in Maximo. Flag the rows in the view as status=decommissioned (all done dynamically in the view -- we're not creating any data here).
- Then sync those fake rows to Maximo as decommissioned assets.
- The view could contain your existing/real assets too -- not just the fake decommissioned ones.
That way, you could use the out-of-box Maximo/GIS integration mechanism that already exists (the ArcGISDataSync cron). No customization would be required! Sounds a bit too good to be true...
Edit:
One possible problem with that idea: With the fake decommissioned rows, what about all the other attributes that exist on the Maximo side? The fake row would have nulls in all it's fields, which would overrite your Maximo info, so that's likely a problem. Some of those fields would be mandatory in Maximo (the integration would throw an error if you tried to sync nulls). And I would think there would be other valuable fields in Maximo where you'd want to keep that information...you wouldn't want to set those fields to null.
You could grab the data from Maximo...for the missing fields...and put them in the GIS view..and sync the data back to Maximo. But now, this is feeling like a messy/bad idea.
Oh well, it was worth saying it out loud.
Just a side note:
If I remember correctly, when you're syncing an asset to Maximo for the first time, I don't think the status can be decommissioned. I think the status needs to be ACTIVE or something like that -- for the first sync.
You'd have to ask around for details if you thought it'd be an issue, although it sounds like it might not be an issue for you.