Honestly AcidRaZor, you need to understand what SOA really is, before asking these questions.
So SOA is NOT a collection of "services" (or modules if you will) that is re-usable and provides functionality to multiple systems so that, if there's a business change (to, for example, the padding of 0's to make 20 characters), that it would automatically propagate to all other systems using this module??
****, sorry dude. So what is SOA then?
In the perfect world you would have a number of layers in your SOA architecture. A data-abstraction layer would make sure that the data is presented consistently across the consuming services irrespective from where the raw data originates. Sadly most "enterprise architects" equate SOA to writing a bunch of webservices or dropping messages onto queues to be consumed by an ESB.
In a purist SOA implementation it is really irrelevant if data comes from DW or transactional databases - the data layer would take care of it. If your main systems access your data-layer directly via SQL you are not doing SOA.
We're talking multiple systems here, not just one system. And I was pointing towards the idea that the DW would be the data-layer, since it's only important for reporting purposes, because 12345 is different to 00012345 when it comes to a join on those fields. We currently have 4 major systems, each tracking and monitoring 00012345 on it's own. All of which are written by 3rd party developers or in-house ones. So we do get that system 1 doesn't do 00012345 but system 2,3 and 4 does.
If there are anymore suggestions as to how padding a number with 0's (it may sound simplistic, but it's the primary thing we think of, especially when it comes to reporting), *where* would it live so that if dumbass-1 comes in with a new project, we force him to use XYZ to enforce standards. Because he will have his own database that would be an extension to whatever the **** it would be tracking.
I know that if any system accesses another system directly with SQL by-passing the data-layer, that it's not SOA. DUHR. I want to know in terms of a business-logic-layer (or module or collection or whatever you want to call it since I apparently don't know what SOA is), how can we enforce a simple ****ing function that pad's 0's infront of a 20 character number?
Do we do it on the column so that SQL Server does it (minding that we need to then change 5+ databases if we do decide to change, which IMO isn't SOA)
Do we have a UDF on a "SOA" database to do that, which we then force the dev's to use in writing stored procedures that communicates with their own DB's to use?
etc
Was looking for suggestions on how to approach this, not be told that I don't know what SOA is.
If you feel you'd like to "school" me, how about including your opinion on what it is?
And to end: **** you jeanres