dynamically loop through database connections with datamigrator presented by kathy getz, omnicare...
TRANSCRIPT
Dynamically Loop Through Database Connections With DataMigrator
Presented byKathy Getz, Omnicare Inc.
Lori Pieper, Information Builders Inc.
Dynamically Loop Through Database Connections With DataMigrator
Presented byKathy Getz, Omnicare Inc.
Lori Pieper, Information Builders Inc.
AgendaAgenda
Presenter Introductions Omnicare Business Overview Omnicare Architecture Challenges/Solution Questions/Answers
Presenter Introductions Omnicare Business Overview Omnicare Architecture Challenges/Solution Questions/Answers
Omnicare Business OverviewOmnicare 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.
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 ChallengesEnvironmental 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
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
Available OptionsAvailable Options
Maintain 80 sets of Metadata per TableMaintain 80 dataflows per iDM job
Share Metadata and loop through databases
Maintain 80 sets of Metadata per TableMaintain 80 dataflows per iDM job
Share Metadata and loop through databases
Solution: Share Metadata and loop through databases
Solution DetailsSolution Details Dynamically Create Access files (.ACX)
AS/400 change table names dynamically
Dynamically Create Access files (.ACX)AS/400 change table names dynamically
Solution DetailsSolution Details Dynamically Create Access files (.ACX)
HP-UX change connection dynamically
Dynamically Create Access files (.ACX)HP-UX change connection dynamically
Dynamically Creating Access FilesDynamically Creating Access Files
Controlling program obtains system connection information AS/400
Changing “Tablename” Parameter HP-UX
Changing “Connection” Parameter
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
Obtaining Connection Information Controlling Database information
System Connection CompanyID ActiveAS400 OASISDB02 KY4 YAS400 OASISDB03 IND YAS400 OASISDB04 MA1 Y
Obtaining Connection Information Controlling Database information
System Connection CompanyID ActiveAS400 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 LoopControlling the Loop
-SET &TAB_NAM6=&SYS_CONN || '/MSCMPP';
-SET &CONN_NAME=&SYS_CONN;
The LoopThe 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?
Yes
No
?
?
?
Exit
Reading the System ConnectionsReading the System Connections
EX PULL_ACTIVE_DBS_FROM_PHARMACY DM_FOLDER=&DM_FOLDER -SET &NUM_CONNECTIONS = &LINES;
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 ConnectionsReading the System Connections
EX PULL_ACTIVE_DBS_FROM_PHARMACY DM_FOLDER=&DM_FOLDER -SET &NUM_CONNECTIONS = &LINES;
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 ConnectionsReading 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 ConnectionsReading 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/400Process AS/400
ENGINE SQLEDA SET AS400ENGINE SQLEDA SET AS400
-REMOTE BEGIN
EX 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.
Process HP-UXProcess HP-UX
ENGINE SQLEDA SET HP-UXENGINE SQLEDA SET HP-UX
-REMOTE BEGIN
EX 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.
Final StepFinal Step
-INCR_LOOP
-SET &LOOP_CNT = &LOOP_CNT + 1;
-IF &LOOP_CNT LE &NUM_CONNECTIONS THEN GOTO START_PROC ELSE GOTO DONE;
-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.