25
Dynamically Loop Through Database Connections With DataMigrator Presented by Kathy Getz, Omnicare Inc. Lori Pieper, Information Builders Inc.

Dynamically Loop Through Database Connections With DataMigrator Presented by Kathy Getz, Omnicare Inc. Lori Pieper, Information Builders Inc

Embed Size (px)

Citation preview

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.

iWay Data Migrator Architectural DiagramiWay Data Migrator Architectural Diagram

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

Metadata Names by DefaultMetadata Names by Default

AS/400 Metadata

HP-UX Metadata

Metadata Names SharedMetadata Names Shared

•Standardized naming conventions

•User Friendly Metadata

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

Setting connection 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.

Parameter as FilterParameter as Filter

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.

Parameter as TransformationParameter as Transformation

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.

Questions and AnswersQuestions and Answers