Configure ETL Source for OUAW

This page describes the integration flow between source data and target data, detailing its preparation process and the configuration steps for the ETL process.

On this page:

Prerequisites

  • Ensure that Oracle GoldenGate Microservices are installed and configured on source and target database servers.
  • Ensure that Oracle GoldenGate Microservices Service Manager, Admin, Receiver, Distribution Servers are up and running on the source and target database servers.
  • Ensure that installing the Oracle Data Integrator (ODI)-based ETL component is completed.
  • Ensure that the Oracle Data Integrator domain is created on the target application server.

Note: To perform the C2M Source Configuration, first complete the CCB Source Configuration and then proceed with MDM Source Configuration.

See Perform Pre-Installation Steps for OUAW for more information.

Back to Top

Set Up Source Database Server for Oracle GoldenGate Microservices

To set up each source instance:

  1. Make sure that the source database is enabled in the ARCHIVELOG mode.
  2. Connect to the source database as a sys user and execute the following statements.

    Copy
    alter database add supplemental log data (primary key) columns;
    alter system set enable_goldengate_replication=TRUE scope=both;

  3. Run the sqlplus to connect to the database using SYSDBA sys user.
  4. Copy
    sqlplus sys/<sys password>@<source db service name>

  5. Create a new user. This will be the Oracle GoldenGate Owner. Make sure to assign to the new user a tablespace that is not assigned to any other.
    • For a standalone database: CCB01SRC
    • For a multi-tenant database: C##GGOWNER   
    • Note: Keep track of the GoldenGate Owner username. It will be used in the Oracle Utilities Analytics Warehouse installation.

  6. Connect to the source database with the sys user and run the following commands.
    • For a standalone database:
    • Note: Replace the GoldenGate Owner placeholder with the actual name for the database user that was created in the previous step.

      Copy
      grant CREATE SESSION,CONNECT,RESOURCE,ALTER SYSTEM to <GoldenGate Owner>;
      grant unlimited tablespace to <GoldenGate owner> with admin option;
      EXECUTE dbms_goldengate_auth.grant_admin_privilege('<GoldenGate Owner>','capture');
      grant unlimited tablespace to <GoldenGate Owner> with admin option;
      Revoke dba from <GoldenGate Owner>;
      grant create any view to <GoldenGate Owner>;
      grant select any dictionary to <GoldenGate Owner>;
      GRANT CREATE ANY DIRECTORY TO <GoldenGate Owner>;
      GRANT DROP ANY DIRECTORY TO <GoldenGate Owner>;
      GRANT EXP_FULL_DATABASE TO <GoldenGate Owner>;
      GRANT IMP_FULL_DATABASE TO <GoldenGate Owner>;

    • For a multi-tenant database:
    • Note: Modify the common user used for the GoldenGate owner placeholder <Common user for GG> with the actual name of the container common user created on your multi-tenant database.

      Copy
      grant CONNECT to <Common user for GG> container=all;
      grant IMP_FULL_DATABASE to <Common user for GG> container=all;
      grant RESOURCE to <Common user for GG> container=all;
      grant EXP_FULL_DATABASE to <Common user for GG> container=all;
      grant DROP ANY DIRECTORY to <Common user for GG> container=all;
      grant UNLIMITED TABLESPACE to <Common user for GG> container=all;
      grant CREATE ANY DIRECTORY to <Common user for GG> container=all;
      grant ALTER SYSTEM to <Common user for GG> container=all;
      grant SELECT ANY DICTIONARY to <Common user for GG> container=all;
      grant CREATE ANY VIEW to <Common user for GG> container=all;
      EXECUTE dbms_goldengate_auth.grant_admin_privilege('<GoldenGate Owner>','capture', container=>'all');

  7. Connect to the <source application> ADM schema (for example, CISADM) and run the following commands.
    • For the Oracle Utilities Customer Care and Billing source database, run the following grants for the USER created in step 4:
    • Copy
      Grant select on <application ADM Schema>.F1_MST_CONFIG to <GoldenGate owner>
      Grant select on <application ADM Schema>.F1_EXT_LOOKUP_VAL to <GoldenGate owner>
      Grant select on <application ADM Schema>.F1_BKT_CONFIG to <GoldenGate owner>
      Grant select on <application ADM Schema>.FF1_BKT_CONFIG_VAL to <GoldenGate owner>

    • For the Oracle Utilities Operational Device Management source database, run the following grants:
    • Copy
      Grant select on <application ADM Schema>.F1_MST_CONFIG to <GoldenGate owner>
      Grant select on <application ADM Schema>.F1_EXT_LOOKUP_VAL to <GoldenGate owner>

    • For the Oracle Utilities Meter Data Management source database, run the following grants:
    • Copy
      Grant select on <application ADM Schema>.F1_MST_CONFIG to <GoldenGate Owner>;
      Grant select on <application ADM Schema>.F1_EXT_LOOKUP_VAL to <GoldenGate Owner>;

    • For the Oracle Utilities Work and Asset Management source database, run the following grants:
    • Copy
      Grant select on <application ADM Schema>.F1_EXT_LOOKUP_VAL to <GoldenGate Owner>;
      Grant select on <application ADM Schema>.F1_MST_CONFIG to <GoldenGate Owner>;
      Grant select on <application ADM Schema>.F1_BKT_CONFIG to <GoldenGate Owner>;
      Grant select on <application ADM Schema>.F1_BKT_CONFIG_VAL to <GoldenGate Owner>;

Back to Top

Configure Data Encryption Using ENCKEYS Method

Note: ENCKEYS should be same in both Source and Target GoldenGate Microservices Server.

  1. Change the directory to the Oracle GoldenGate Microservices Installation Home bin directory.
  2. Copy
    cd <Oracle GoldenGate Microservices Installation Home>/bin
    ./keygen <encryption key length (in bits)> [number of keys to generate]

    Example:

    cd </u01/ouaw/goldengate_MA/bin>
    ./keygen 128 1
    0x8CE55035DD6893205A7BD6773FA8E670

  3. Copy the key value to the ENCKEYS file against a logical name such as <CCB1KEY>. You must provide a unique logical name for each key-value generated above. The logical name should have this structure: logical name/space/key-value.
    Example:
  4. <CCB1KEY> 0x8CE55035DD6893205A7BD6773FA8E670

  5. Repeat the step above for each key-value.
  6. Save the file with the name ENCKEYS (upper case only) under <Oracle GoldenGate Deployment Home>/etc/conf/ogg/ path without any extension.
  7. Create an ASCII ENCKEYS file or open an existing ENCKEYS text file and append the generated key.

The source ENCKEYS file entry must be appended to the intermediate server or target server, which would be configured with the source system where the target Oracle GoldenGate Microservices are being configured.

Back to Top

Access Control Operations on Target Database Server

The following steps need to be performed for creation of Access Control List on Target Database Server.

  1. Connect to the target database as a sys user.

    Copy
    sqlplus sys/<sys password>@<database service name> as sysdba

  2. Run the below sql query by providing the Target Oracle GoldenGate Microservices Host and range of ports used in the Target GoldenGate microservices.

    Copy

    Begin
        DBMS_NETWORK_ACL_ADMIN.append_host_ace (
            host       => '< Target Oracle GoldenGate Microservices Host >',
            lower_port => < Lower Port >,
            upper_port => < Higher Port >,
            ace        => xs$ace_type(privilege_list => xs$name_list('http'),
                                        principal_name => 'MDADM',
                                        principal_type => xs_acl.ptype_db)); 
    end;
    /
                

    Example:


    Begin
        DBMS_NETWORK_ACL_ADMIN.append_host_ace (
            host       => 'target.ggms.hostname',
            lower_port => 7860,
            upper_port => 7865,
            ace        => xs$ace_type(privilege_list => xs$name_list('http'),
                                        principal_name => 'MDADM',
                                        principal_type => xs_acl.ptype_db)); 
    end;
    /
                    

    Note:

    • host is referred to Target Oracle GoldenGate Microservices Host
    • lower_port and upper_port are referred to range of ports used in the Target Goldengate microservices
    • principal_name is referred to Oracle Utilities Analytics Metadata Schema, for example MDADM

  3. Run the below sql query by providing the Source Oracle GoldenGate Microservices Host and range of ports used in the Source Goldengate Microservices.

    Copy

    Begin
        DBMS_NETWORK_ACL_ADMIN.append_host_ace (
            host       => '< Source Oracle GoldenGate Microservices Host >',
            lower_port => < Lower Port >,
            upper_port => < Higher Port >,
            ace        => xs$ace_type(privilege_list => xs$name_list('http'),
                                        principal_name => 'MDADM',
                                        principal_type => xs_acl.ptype_db)); 
    end;
    /
                

    Example:


    Begin
        DBMS_NETWORK_ACL_ADMIN.append_host_ace (
            host       => 'source.ggms.hostname',
            lower_port => 7860,
            upper_port => 7865,
            ace        => xs$ace_type(privilege_list => xs$name_list('http'),
                                    principal_name => 'MDADM',
                                    principal_type => xs_acl.ptype_db)); 
    end;
    /
                    

    Note:

    • host is referred to Source Oracle GoldenGate Microservices Host
    • lower_port and upper_port are referred to range of ports used in the Source Goldengate microservices
    • principal_name is referred to Oracle Utilities Analytics Metadata Schema, for example MDADM

Back to Top

Add the Source Root CA Certificate to Target Client Wallet

Note: Ignore the below steps if all Source and Target Certificates are trusted by one ROOT CA Certifcate.

  1. Copy the Source Root CA certificate to Target GoldenGate Microservices Server.
  2. You can find the exact Target GoldenGate Microservices client wallet location and client wallet name under <Target GoldenGate Microservices Deployment Home>/etc/conf/deploymentConfiguration.dat file and search for the outbound section. You can find the target client wallet location under the file: tag.

    Example:


    cat /u01/ouaw/goldengate_Deploy/etc/conf/deploymentConfiguration.dat
                                
    "outbound": {
        "authMode": "client_server",
        "wrl": "file:/u01/ouaw/goldengate_Deploy/etc/ssl/distclient/target_client_wallet",
        "crlEnabled": false,
        "role": "client",
        "wrlPassword": ""

    Note: Here, the target client wallet location is /u01/ouaw/goldengate_Deploy/etc/ssl/distclient/target_client_wallet.

  3. Run the below commands to add the Source Root CA Certificate in Target GoldenGate Microservices Client Wallet.

    Copy

    export ORACLE_HOME=<Oracle Database or client Home Path>
    export PATH=$ORACLE_HOME/bin:$PATH
    orapki wallet add -wallet <Target Client Wallet location> -cert <Source Root CA Certificate> -pwd <Target client wallet password>
                

    Example:


    orapki wallet add -wallet /u01/ouaw/goldengate_Deploy/etc/ssl/distclient/target_client_wallet -cert source_root_ca.pem -pwd oracle123
                        

  4. Restart the Deployment from the GoldenGate Microservices Service Manager Console web console after you add the trusted certificates.

Back to Top

Create the Directories for Trail Files in the Source and Target GoldenGate Microservices Server

Create a directory under <Oracle GoldenGate Microservices Deployment Home>/var/lib/data/<Product Name with Context Code> in both the Source and Target GoldenGate Microservices servers.

Example:

cd /u01/ouaw/goldengate_Deploy/var/lib/data/

mkdir -p <CCB1>

Note: Here, goldengate_Deploy is referred to as Oracle GoldenGate Microservice Deployment Home.

Back to Top

Configure Buckets and Extract Parameters

Before attaching a specific source system to Oracle Utilities Analytics Warehouse, it is necessary to complete some source application configurations as detailed on Configure ETL Parameters and Buckets.

Source Configuration Using OUAW Wizard

  1. For the Network Management System (NMS) source application only, perform in ODI Studio the steps from the section Network Management System (NMS) Source ApplicationNetwork Management System (NMS) Source Applicationbefore continuing with this process. Ignore this step for other source applications.
  2. Log in to the Target Application Server.
  3. Navigate to <ETL Home>/bin and run the following: ./config.sh. The configuration wizard opens.
  4. On the Welcome page, click Next.

    Operation Engine Welcome screen.

  5. On the Configuration Type page, select Configure Source and click Next.

    Operation Engine page, Configuration Type screen. Configure Source is the third and last option.

  6. On the Source Configuration Type page, select Register Source and click Next.

    Operation Engine page, Source Configuration Type screen. Register Source is the first of two options.

  7. On the Source Context page, select the appropriate source product and instance number from the drop-down menu and click Next.

    Operation Engine page, Source Context screen. Choose the appropriate option from the dropdown menus.

  8. On the Source DB Connection Details page, enter the information as in the table below and click Next.

    Operation Engine page, Source DB Connection Details screen, where there are eight text fields to be populated by the user.

    Field Name and Description

    Value

    Host: Enter the source database host name.

    <Source Database Server Host>

    Example: <dbserver.hostname>

    Port: Enter the source database server port.

    Example: <1521>

    PDB Name: Enter the source database PDB name.

    For Non-Container database, PDB Name is the same as CDB Name.

    <Source PDB name>

    CDB Name: Enter the source Database CDB name.

    Example: <Source CDB name>

    Drillback URL: Enter the Edge product application URL.

    Example: <http://source.application.host:port/ouaf>

    Schema Name: Enter the source database schema name.

    Example: <CISADM>

    Extract Start Date (YYYYMMDD): This is the date from which data should be
    extracted from the source database.

    20000101

    Socks Proxy: This is the socks proxy host and port separated by a ( : ). Provide the value only if
    a socks proxy has been set up. Otherwise, leave the field blank.

    [BLANK]

  9. On the Source GoldenGate Microservices Details page, enter the details as in the table below and click Next.

    Operation Engine page, Source Goldenate Details screen. This screen contains ten text fields to be populated by the user.

    Field Name and Description

    Value

    GoldenGate Host: Enter the source database host where Source GoldenGate Microservices are installed.

    <Source GoldenGate Microservice Host>

    Example: <source.ggms.hostname> or <dbserver.hostname>

    GoldenGate User: Enter the source Oracle GoldenGate Microservices Admin user.

    Example: <ggadmin>

    GoldenGate Password: Enter the source Oracle GoldenGate Microservices Admin user password.

    Example: <ggadmin password>

    Confirm GoldenGate Password: Re-enter the source Oracle GoldenGate Microservices Admin user password.

    Example: <ggadmin password>

    GoldenGate Admin Service Port: Enter the source Oracle GoldenGate Microservice Admin port.

    Example: <7861>

    GoldenGate Algorithm: This is the algorithm configured in GoldenGate Microservices on the source database server.

    AES128

    GoldenGate Encryptkey: The GoldenGate Microservices Encryptkey configured the source database server.

    Generate ENCKEY. See Configure Data Encryption Using ENCKEYS Method.

    GoldenGate Distribution Service Port: Enter the source Oracle GoldenGate Microservices Distribution port.

    Example: <7862>

    GoldenGate Owner User: This is the user name of the GoldenGate Owner user.

    Example: <C##GGOWNER>

    GoldenGate Owner Password: This is the password of the GoldenGate Owner user.

    <GoldenGate Owner user password>

    Confirm GoldenGate Owner Password: Re-enter the password of the GoldenGate Owner user.

    <GoldenGate Owner user password>

  10. On the Configuration Summary page, review the summary to verify that the entered information is correct, and click Configure.

    Operation Engine page, Configuration Summary screen. It shows the log file location and connection details.

  11. On the Configuration Progress page, review the progress of the configuration. Click Next when the progress bar is 100%.

    Operation Engine page, Configuration Progress screen. It shows the percentage of completion of the configuration.

  12. On the Complete Summary page, review the log file path and the source database connection details. Click Finish. Upon completion, the status of the source registration is shown in a prompt.

    Completion Summary screen showing the details of the configuration.

    Note: The detailed logs of the operation will be available in the logs/system/deployodi.log  file in the Oracle Utilities Analytics Warehouse home.

    Example:

    Copy
    <ETL Home>/logs/system/deployodi.log

Back to Top

Move Param Files from Target Application Server to Source and Target GoldenGate Microservices Servers

  1. After source configuration is completed successfully, extracts and replicas param files (.prm files) are generated on the target application server. Param files are found under <OUA_ETL HOME>/GGScriptsGen/<Models with Context Code Name>.
  2. Remove all existing param files from Source and Target GoldenGate Microservices under <Oracle GoldenGate Microservice Deployment Home>/etc/conf/ogg.

    Copy

    cd <Oracle GoldenGate Microservice Deployment Home>/etc/conf/ogg
    rm -rf <Context Code>*
                            

    Example:


    cd /u01/ouaw/goldengate_Deploy/etc/conf/ogg
    rm -rf CCB1*
                    

    Note: Here, CCB1(*) represents all param files with Context Code CCB1.

  3. Copy all respective EXTRACT param files from Target Application Server under the <OUA_ETL HOME>/GGScriptsGen/<Each Models with Context Code Name>/src/dirprm/*.prm path to the <Source Oracle GoldenGate Microservice Deployment Home>/etc/conf/ogg path on Source GoldenGate Microservices Server.

    Copy

    scp -rp <App Server>:<OUA_ETL HOME>/GGScriptsGen/<Context Code>*/src/dirprm/*.prm <Source GoldenGate Microservice Server>:<Source Oracle GoldenGate Microservice Deployment Home>/etc/conf/ogg
                            

    Example:


    scp -rp <appserver.hostname>:<OUA_ETL HOME>/GGScriptsGen/CCB1*/src/dirprm/*.prm <Source GoldenGate Microservice Server>:/u01/ouaw/goldengate_Deploy/etc/conf/ogg
                    

    Notes:

    • In the example, CCB1(*) represents all models with Context Code CCB1.
    • All Param files must be copied from each model with same context code.
    • src is the directory which contains Extract param files.
    • Ensure all copied param files has rw permissions and required ownership (for example, same user and group that are used in OGG MS Installation).

  4. Copy all respective REPLICAT param files from Target Application Server under the <OUA_ETL HOME>/GGScriptsGen/<Each Models with Context Code Name>/stg/dirprm/*.prm path to the <Target Oracle GoldenGate Microservice Deployment Home>/etc/conf/ogg path on Target GoldenGate Microservices Server.

    Copy

    scp -rp <App Server>:<OUA_ETL HOME>/GGScriptsGen/<Context Code>*/stg/dirprm/*.prm <Target GoldenGate Microservice Server>:<Target Oracle GoldenGate Microservice Deployment Home>/etc/conf/ogg
                    

    Example:


    scp -rp <appserver.hostname>:<OUA_ETL HOME>/GGScriptsGen/CCB1*/stg/dirprm/*.prm <Target GoldenGate Microservice Server>:/u01/ouaw/goldengate_Deploy/etc/conf/ogg
                    

    Notes:

    • In the example, CCB1(*) represents all models with Context Code CCB1.
    • All Param files must be copied from each model with same context code.
    • stg is the directory which contains Replicat param files.
    • Ensure all copied param files has rw permissions and required ownership (for example, user and group that are used in OGG MS Installation).

Add the Schema Trandata

  1. Log in to the Source GoldenGate Microservices Administration Server.

    Source GoldenGate Microservices Administration Server login screen.

  2. Click Application Navigation then Configuration.

    Application Navigation

    Configuration

  3. Navigate to Credentials then Action with Domain and Alias with the configured Context Code and select Connect to Database.

    Example:

    Context Code: WAM1

  4. In TRANDATA Information, click +, enter the appropriate parameters, and click Submit.

    Note: Provide the Schema Name as <PDB NAME>.<SOURCE ADM SCHEMA> for container database. For Non-Container database, provide only <SOURCE ADM SCHEMA>.

  5. Verify the schema trandata.

Back to Top

Start GoldenGate Microservices Extracts, Distribution, and Replicats

  1. In ODI Studio, navigate to Load Plans and Scenarios > Framework > Scheduler then right click B1_START_GGMS_PROCESS and click Run with Context Code to start the extract, distribution, and replicate process.

  2. Log in to GoldenGate Microservices consoles and verify the status of the extract, distribution path and replicats.

    Note: You can start all GoldenGate Extract and Replicat processes from the Source or Target GoldenGate Microservices Administration Server console respectively, and start Distribution path from the Source GoldenGate Microservices Distribution Server console.

Back to Top

Configure the Source Product in Oracle Data Integrator

  1. Log in to the Target GoldenGate Microservices Administration Server.

    Source GoldenGate Microservices Administration Server login screen.

  2. Stop all replicates with configured Context Code one by one.

  3. Navigate to <FMW HOME>/odi/studio/bin, set JAVA HOME and PATH, and execute the ODI file. Oracle Data Integrator Studio opens.

    Copy

    export JAVA_HOME=<JAVA HOME>
    export PATH=$JAVA_HOME/bin:$PATH
    ./odi

  4. Click Connect to Repository and provide the necessary inputs to execute the connection.

    Oracle Data Integrator Studio showing the connection to the repository in the left-hand pane, and the start page details on the main section.

    Field Name and Description

    Value

    ODI Connection 

     

    Login Name: Enter the name.

    Example: <ODIREPO2800>

    Username: Enter the username as SUPERVISOR

    SUPERVISOR

    Password: Enter the password of user SUPERVISOR.

    <password of SUPERVISOR>

    Database connection (Master repository)

     

    User: Target database master repository username

    Example: <OUA_MASTER>

    Password: Target database master repository user password

    Enter the password of Target database master repository user password

    Driver list: Select the drivers from the list

    Oracle JDBC Driver

    Driver Name: Select the driver name from the list

    oracle.jdbc.OracleDriver

    Credentials Details

     

    URL: Provide the target database connection url

    Example: <targetdatabase.host>:<port>/<target database servicename>

    Work Repository

     

    Work Repository: Select the work repository from the search

    OBIU

  5. Click the Designer tab and navigate to the Load Plans and Scenario folder.

    Oracle Data Integrator Studio with the Designer tab expanded on the left, and the Data Integrator start page on the main section.

  6. Expand the Framework and Scheduler folders.

    Oracle Data Integrator Studio with the Designer tab expanded on the left, and the Data Integrator start page on the main section.

  7. Right click on B1_SYNC_CONTEXT Version 001 and click Run. A popup window opens.

    Oracle Data Integrator Studio with the Designer tab expanded on the left, and the Data Integrator start page on the main section. This screenshot also shows the options menu that appears after right-clicking the element mentioned.

  8. In the Context menu, select the appropriate source product and instance number. In this example, Context is CCB1, which refers to instance 1 of the Customer Care and Billing (CCB) application.

  9. In the Logical Agent field, select the appropriate logical agent. In this example, Logical Agent is set to WLS_Agent (ODI Agent).

    Oracle Data Integrator Studio with the Designer tab expanded on the left, and the Data Integrator start page on the main section. This screenshot also shows the Run popup window.

  10. Click OK.

Back to Top

Network Management System (NMS) Source Application

This section details the steps for the source application setup in different versions of Network Management System (NMS).

Notes: The steps below are to be performed in ODI Studio. To execute the scenario below, right-click on the selected scenario name in ODI, click run, select context as Global, and then click OK.

Versions 2.6.0.0 and Later

  1. Navigate to Load Plans and Scenarios > Framework > Data correction.
  2. Run the B1_UPD_NMS_SCEN_FROM_260 and B1_UPD_NMS_ACCT_SCEN_FROM_24013 scenarios.
  3. Perform step 3 and the succeeding steps from Source Configuration Using OUAW Wizard.

Back to Top

Versions 2.5.0.2 and below 2.6.0.0

  1. Navigate to Load Plans and Scenarios > Framework > Data correction.
  2. Run the B1_UPD_NMS_SCEN_FROM_2502_UNDER_260 and B1_UPD_NMS_ACCT_SCEN_FROM_24013 scenarios.
  3. Perform step 3 and the succeeding steps fromSource Configuration Using OUAW Wizard

Back to Top

Versions 2.4.0.1.3 and below 2.5.0.2

  1. Navigate to Load Plans and Scenarios > Framework > Data correction.
  2. Run the B1_UPD_NMS_SCEN_FROM_2401_UNDER_2502 and B1_UPD_NMS_ACCT_SCEN_FROM_24013 scenarios.
  3. Perform step 3 and the succeeding steps fromSource Configuration Using OUAW Wizard

Back to Top

Versions 2.4.0.1. and below 2.4.0.1.3

  1. Navigate to Load Plans and Scenarios > Framework > Data correction.
  2. Run the B1_UPD_NMS_SCEN_FROM_2401_UNDER_2502 and B1_UPD_NMS_ACCT_SCEN_UNDER_24013 scenarios.
  3. Perform step 3 and the succeeding steps fromSource Configuration Using OUAW Wizard

Back to Top

Versions below 2.4.0.1

  1. Navigate to Load Plans and Scenarios > Framework > Data correction.
  2. Run the B1_UPD_NMS_SCEN_UNDER_2401 and B1_UPD_NMS_ACCT_SCEN_UNDER_24013 scenarios.
  3. Perform step 3 and the succeeding steps fromSource Configuration Using OUAW Wizard

Back to Top