what i mean is not while executing the job from web management console. when i schedule the job based on creteria ETL job needs to select Database userid. basically can i pass datastore userid globle variable?
Not quite sure if you mean you have 2 schemas on the same database, or 2 databases with 2 schemas each, but might have a couple options you could use.
If two schema’s on the same database, could you setup a user that has access to both? If so you could use the SQL Transform and use a variable to set which schema you read from at run time. (As much as I like to minimize use of SQL Transform)
If not, I would setup one data store for each possibility, then you could just have nested conditional’s that would run a data flow based on what data store you should read from.
I like Johanne’s solution, but can create some overhead based on specifics of the job, and support people might hate you
Thanks a lot Tim and Johanne for your suggestions. basically i’m developing a Framework for fault tolerant flip / flop mechanism for Datamart ETL load prototype, enabling zero downtime for reporting
Your datastores could also point to clustered or fault-tolerant database arrangements, and BODS could remain ignorant of all the fault-tolerant wizardry being handled by your database platform. BODS is a great hammer, but many problems aren’t nails.
Can also write dbms procs which can accept parameters that point queries at different sources (typically by using lots of dynamic SQL), but calling procs from BODS SQL transforms is a nasty business – no lineage, opaque, etc.
Can also make heavy use of running BODS jobs on the command line, and run them by scripting them out, w/ an enterprise scheduler, workflow engine, ESB, BODS itself, PowerShell, whatever. Can specify the system configuration on the command line.
In your suggestion
'Work-a-round would be to dynamically call the job server from another job and start a new job with the system configuration that you require. ’
How do we start a new job with desired system configuration? Could you provide exact command for this from a different job please?
For ex :
Consider 2 DB instances DB1 and DB2 which have equivalent system configurations: config1 and config2.
if i have 2 jobs : parent_job and child_job
if i am executing parent job, what would be the command to invoke ‘child_job’ with ‘config2’ as system configurations?
if i got ur question correctly, if you have two jobs BJ_Parent and BJ_CHILD, you want execute BJ_CHILD with different configs based on the criteria derived in BJ_PARENT. Am i Correct?
If Yes, then Lets say you have 2 configs: config1 and config2.
Use Export Execution command for BJ_CHILD with both Configs.
ex: BJ_CHILD_CONFIG1.bat and BJ_CHILD-CONFIG2.bat
once your BJ_PARENT runs, you can Use If else in Script and to decide as per your requirement and call the respective BAT files using exec.