Dynamically Loop Through Database Connections With DataMigrator Presented by Kathy Getz, Omnicare...
description
Transcript of Dynamically Loop Through Database Connections With DataMigrator Presented by Kathy Getz, Omnicare...
Dynamically Loop Through Database Connections With DataMigrator
Presented 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.
iWay Data Migrator Architectural Diagram
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
Writing .ACX file
Required
Setting connection value
Required file def for .ACX file
Writing .ACX file
Required
Obtaining Connection Information Controlling Database informationSystem Connection CompanyID Active
AS400 OASISDB02 KY4 YAS400 OASISDB03 IND YAS400 OASISDB04 MA1 Y
System Connection CompanyID ActiveHP-UX ALEDX Y HP-UX ALQDX YHP-UX AMADX Y
Controlling the Loop
-SET &TAB_NAM6=&SYS_CONN || '/MSCMPP';
-SET &CONN_NAME=&SYS_CONN;
The LoopRead System Connections
Is this AS400?
Yes No
Process AS400 Process HP-UX
Is this HP-UX?
Yes No
Issue Message
Are there more system connections?
YesNo
?
?
?
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_DBEND -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
Set up Loop controls
-IF &NUM_CONNECTIONS = 0 THEN GOTO NO_CONNS; -SET &LOOP_CNT = 1;
SQL DELETE FROM &Target_DBEND -RUN
Reading the System Connections
Read in the information from the ALPHA HOLD file created using the Focexec above.
-START_PROC -READ SYS_CONNECTIONS NOCLOSE &SYS_NAME.A25.
&SYS_CONN.A20. &CMPY_ID1.A3. &ACTIVE.A1.
Process AS/400ENGINE SQLEDA SET AS400
-REMOTE BEGINEX WRITE_ACCESS_FILE SYS_CONN=&SYS_CONN-REMOTE END
EX CMASAP REQ_NAME=AS400_data_flow, CM_ASYNC=OFF, PARMS="CMPY_ID1=&CMPY_ID1"
Point to AS/400 Sub System
Since source systems are on the sub servers we need to create the ACX files on those sub servers.
Execute the iDM Data Flow to pull the AS/400 data, passing the “company ID” as a parameter.
Parameter as Filter
Process HP-UX
ENGINE SQLEDA SET HP-UX
-REMOTE BEGINEX WRITE_ACCESS_FILE SYS_CONN=&SYS_CONN-REMOTE END
EX CMASAP REQ_NAME=HP-UX_data_flow, CM_ASYNC=OFF, PARMS="SYS_CONN=&SYS_CONN"
Point to HP-UX Sub System
Since source systems are on the sub servers we need to create the ACX files on those sub servers.
Execute the iDM Data Flow to pull the HP-UX data, passing the system connection information.
Parameter as Transformation
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.
Questions and Answers