We have an integration scenario that takes data from many different objects in Salesforce and outputs them to a SQL database for data warehousing. In this case, all of the maps are very straightforward as the target database is created to match the source output exactly. The more objects we add, however, the more the number of processes is growing to a difficult to maintain level.
My question is how we can take these 20+ processes and condense them. Each process has a start shape to grab all records, another one to take a delta, shapes to store properties, maps, and error logging to our own separate database. Each process is the same except for the connector operations, the XML and database profiles, and the maps. With the current setup of different identical processes, trying to make a change to the overall setup (say, to add some other kind of custom logging) would require making the same change over 20 times.
Is there a way to have a standardized process where the objects underlying the shapes can be changed out? If we were writing this in code, it would be accomplished by having the maps/profiles/etc. access base classes. Also, I'm curious if there's any other ways to approach which must be a common problem.