250 likes | 437 Views
Dynamically Loop Through Database Connections With DataMigrator Presented by Kathy Getz, Omnicare Inc. Lori Pieper, Information Builders Inc. Agenda. Presenter Introductions Omnicare Business Overview Omnicare Architecture Challenges/Solution Questions/Answers. Omnicare Business Overview.
E N D
Dynamically Loop Through Database Connections With DataMigratorPresented byKathy Getz, Omnicare Inc.Lori Pieper, Information Builders Inc.
Agenda Presenter Introductions Omnicare Business Overview Omnicare Architecture Challenges/Solution Questions/Answers
Omnicare Business Overview Omnicare, Inc. OCR, a Fortune 500 company based in Covington, Kentucky, is a leading provider of pharmaceutical care for the elderly. Omnicare serves residents in long-term care facilities and other chronic care settings comprising approximately 1.4 million beds in 47 states, the District of Columbia and Canada. Omnicare is the largest U.S. provider of professional pharmacy, related consulting and data management services for skilled nursing, assisted living and other institutional healthcare providers as well as for hospice patients in homecare and other settings. Omnicare's pharmacy services also include distribution and patient assistance services for specialty pharmaceuticals. Omnicare offers clinical research services for the pharmaceutical and biotechnology industries in 30 countries worldwide.
Environmental Challenges Combining AS/400 data with HP-UX data For reporting from Windows Metadata – Table names shared 16 AS/400 database 64 HP-UX Schemas Standardized Metadata across platforms
Metadata Names by Default AS/400 Metadata HP-UX Metadata
Metadata Names Shared • Standardized naming conventions • User Friendly Metadata
Available Options Maintain 80 sets of Metadata per Table Maintain 80 dataflows per iDM job Share Metadata and loop through databases Solution: Share Metadata and loop through databases
Solution Details Dynamically Create Access files (.ACX)AS/400 change table names dynamically
Solution Details Dynamically Create Access files (.ACX)HP-UX change connection dynamically
Dynamically Creating Access Files Controlling program obtains system connection information AS/400 Changing “Tablename” Parameter HP-UX Changing “Connection” Parameter
Setting owner name value Setting table name value Required file def for .ACX file Required Writing .ACX file
Setting connection value Required file def for .ACX file Required Writing .ACX file
Obtaining Connection Information Controlling Database information System ConnectionCompanyIDActiveAS400 OASISDB02 KY4 YAS400 OASISDB03 IND YAS400 OASISDB04 MA1 Y Controlling the Loop -SET &TAB_NAM6=&SYS_CONN || '/MSCMPP'; System ConnectionCompanyIDActive HP-UX ALEDX Y HP-UX ALQDX Y HP-UX AMADX Y -SET &CONN_NAME=&SYS_CONN;
The Loop Read System Connections Is this AS400? ? No Yes Is this HP-UX? ? Yes No Process AS400 Process HP-UX Issue Message ? Are there more system connections? Yes No Exit
Reading the System Connections EX PULL_ACTIVE_DBS_FROM_PHARMACY DM_FOLDER=&DM_FOLDER -SET &NUM_CONNECTIONS = &LINES; -IF &NUM_CONNECTIONS = 0 THEN GOTO NO_CONNS; -SET &LOOP_CNT = 1; SQL DELETE FROM &Target_DB END -RUN -START_PROC -READ SYS_CONNECTIONS NOCLOSE &SYS_NAME.A25. &SYS_CONN.A20. &CMPY_ID1.A3. &ACTIVE.A1.
Reading the System Connections EX PULL_ACTIVE_DBS_FROM_PHARMACY DM_FOLDER=&DM_FOLDER -SET &NUM_CONNECTIONS = &LINES; • Use Focexec to pull the system information needed: • Active –vs- in-active • Hold output as ALPHA • Set Loop control
Reading the System Connections -IF &NUM_CONNECTIONS = 0 THEN GOTO NO_CONNS; -SET &LOOP_CNT = 1; SQL DELETE FROM &Target_DB END -RUN Set up Loop controls
Reading the System Connections -START_PROC -READ SYS_CONNECTIONS NOCLOSE &SYS_NAME.A25. &SYS_CONN.A20. &CMPY_ID1.A3. &ACTIVE.A1. Read in the information from the ALPHA HOLD file created using the Focexec above.
Process AS/400 ENGINE SQLEDA SET AS400 Point to AS/400 Sub System • -REMOTE BEGIN • EX WRITE_ACCESS_FILE SYS_CONN=&SYS_CONN • -REMOTE END Since source systems are on the sub servers we need to create the ACX files on those sub servers. • EX CMASAP REQ_NAME=AS400_data_flow, CM_ASYNC=OFF, PARMS="CMPY_ID1=&CMPY_ID1" Execute the iDM Data Flow to pull the AS/400 data, passing the “company ID” as a parameter.
Process HP-UX ENGINE SQLEDA SET HP-UX Point to HP-UX Sub System • -REMOTE BEGIN • EX WRITE_ACCESS_FILE SYS_CONN=&SYS_CONN • -REMOTE END Since source systems are on the sub servers we need to create the ACX files on those sub servers. • EX CMASAP REQ_NAME=HP-UX_data_flow, CM_ASYNC=OFF, PARMS="SYS_CONN=&SYS_CONN" Execute the iDM Data Flow to pull the HP-UX data, passing the system connection information.
Final Step -INCR_LOOP -SET &LOOP_CNT = &LOOP_CNT + 1; -IF &LOOP_CNT LE &NUM_CONNECTIONS THEN GOTO START_PROC ELSE GOTO DONE; Increment the Loop counter and test to see if there are more connections to process.