Often times, WebADI can be very confusing to work with. There are just too many issues if it is not properly set up. Sometimes you may encounter VBProject Runtime Error when trying to open Web-ADI template file, or sometimes the Excel spreadsheet just hangs up, or can’t be opened.

There are few steps you will have to take before WebADI can be properly used:

  • Microsoft Office Version
  • Microsoft Excel Settings
  • Internet Explorer Settings


Follow the steps below given in the screenshots and apply the settings exactly as they are depicted. The screenshots are from Excel 2010, however the settings should also work for 2000, 2003, 2007 versions.

A)  Check the Microsoft Office Version
Make sure you are using 32-bit version of Microsoft Office. Click on Excel –> File –> Help. If you are running 64-bit version, you may want to uninstall 64-bit and re-install the 32-bit version of Microsoft Office.

B)  Open Microsoft Excel –> File –> Options –> Trust Center –> Trust Center Settings

B-1)  Trusted Documents:
Make sure to check “Allow documents on a network to be trusted“.


B-2)  Add-Ins:
Make sure to uncheck all the options.


B-3)  ActiveX Settings:
Check only “Enable all controls without restrictions and without prompting“. All other options should be unchecked.




B-4)  Macro Settings:

Check “Enable all macros” and “Trust access to the VBA project object model” options.




B-5)  Protected View:

Check only “Enable Protected View for Outlook attachments” and “Enable Data Execution Prevention mode” options. All other options should be unchecked.


In case the WebADI still does not work, then keep all the options unchecked, and retry.

B-6)  Message Bar:

Check “Show the Message Bar in all applications when achieve content, such as ActiveX controls and macros, has been blocked“.




B-7)  External Content:

Check the “Enable all Data Connections” and “Enable automatic update for all Workbook Links” options only.



C)  Internet Explorer Settings:

Open Internet Explorer –> Tools –> Internet Options –> Security Tab –> Custom Level.



C-1)  Downloads

Scroll down to Downloads section, and make sure File Download is Enabled.



C-2)  Miscellaneous: 

Scroll down to Miscellaneous section, and make sure to match the following setting.



C-3)  Scripting: 

Scroll down to Scripting section, and make sure to match the following setting. Then press OK.



Now log out from your Oracle Applications and re-log back in. Retry the Web-ADI upload.

This article presents a mixed bag of Oracle functionality relating to the identification of host names and IP addresses for Oracle clients and servers.

UTL_INADDR
SYS_CONTEXT
V$INSTANCE
V$SESSION

    UTL_INADDR

    The UTL_INADDR provide a means of retrieving host names and IP addresses of remote hosts from PL/SQL.
    The GET_HOST_ADDRESS function returns the IP address of the specified host name.
    SQL> SELECT UTL_INADDR.get_host_address('TEST') FROM dual;

    UTL_INADDR.GET_HOST_ADDRESS('TEST')
    --------------------------------------------------------------------------------
    192.167.1.56

    SQL>

     The IP address of the database server is returned if the specified host name is NULL or is omitted.

    SQL> SELECT UTL_INADDR.get_host_address from dual;

    GET_HOST_ADDRESS
    --------------------------------------------------------------------------------
    192.161.1.55

    SYS_CONTEXT

    The SYS_CONTEXT function is able to return the following host and IP address information for the current session:
    • TERMINAL – An operating system identifier for the current session. This is often the client machine name.
    • HOST – The host name of the client machine.
    • IP_ADDRESS – The IP address of the client machine.
    • SERVER_HOST – The host name of the server running the database instance.
    SQL> SELECT SYS_CONTEXT('USERENV','TERMINAL') FROM dual;

    SYS_CONTEXT('USERENV','TERMINAL')
    --------------------------------------------------------------------
    TEST10

    SQL> SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM dual;

    SYS_CONTEXT('USERENV','IP_ADDRESS')
    --------------------------------------------------------------------
    192.167.1.55

    SQL> SELECT SYS_CONTEXT('USERENV','SERVER_HOST') FROM dual;

    SYS_CONTEXT('USERENV','SERVER_HOST')
    --------------------------------------------------------------------
    Z4210gr11

    V$INSTANCE

    The HOST_NAME column of the V$INSTANCE view contains the host name of the server running the instance.
    SQL> SELECT host_name FROM v$instance;

    HOST_NAME
    ------------------------------------------------
    Z4210gR11

    V$SESSION

    The V$SESSION view contains the following host information for all database sessions:

    TERMINAL – The operating system terminal name for the client. This is often set to the client machine name.

    MACHINE – The operating system name for the client machine. This may include the domain name if present.

    The following examples show the typical output for each column.

    SQL> SELECT terminal, machine FROM v$session WHERE username = 'OEAG';

    TERMINAL MACHINE
    ------------------------------ ----------------------------------------------------
    TEST10 ORACLE-BASETEST10

    A ledger set is a group of ledgers that share the same chart of accounts and calendar/period type combination. Ledger sets allow you to run processes and reports for multiple ledgers simultaneously.

    For example, you can open/close periods for multiple ledgers at once, run recurring journals that update balances for multiple ledgers, or run consolidated financial reports that summarize balances across multiple ledgers in a ledger set. You can group all types of ledgers in a ledger set, such as primary ledger, secondary
    ledgers, and reporting currencies (journal and subledger levels), as long as they share the same chart of accounts and calendar/period type combination. The same ledger can belong to multiple ledger sets, and ledger sets can contain other ledger sets.

    To define a ledger set:

    Navigation: General Ledger –> Setup –> Financials –> Ledger sets.

    1. Navigate to the Ledger Set window.

    2. Enter a name for the Ledger Set.

    3. Enter a Short Name for the ledger set.

    4. (Optional) Enter a Description for the ledger set.

    5. Choose a Chart of Accounts.

    6. Choose a Calendar and Period Type.

    7. (Optional) Specify a default ledger. The default ledger automatically defaults in all windows where the Ledger field is required.
    Note: A Default Ledger is required for Financial Statement Generator (FSG).

    8. (Optional) Select the Enable Security checkbox to secure the Ledger Set definition. If you do not enable security, all users who have access to this definition will be able to use, view, and modify the ledger set definition. If the Assign Access function is available for your responsibility, the Assign Access
    button will be enabled once you select the Enable Security checkbox. Choose the Assign Access button to assign the definition to one or more Definition Access Sets with the desired privileges.

    9.In the Ledger/Ledger Set column, choose the ledgers and/or ledger sets to be included in the ledger set. Only those ledgers and ledger sets that share the same chart of accounts, calendar, and period type specified for the ledger set definition will be available.
    If you use reporting currencies (journal or subledger level), you can choose reporting currencies to be included in the ledger set. Only those reporting currencies that share the same chart of accounts, calendar, and period type specified for the ledger set definition will be available

    10. Save your work. The General Ledger Accounting Setup Program will be submitted. Ensure this program completes successfully. Once saved, a ledger set cannot be deleted. You can only add or remove ledgers
    and ledger sets from ledger sets.

    Note: You must have at least one ledger or ledger set assigned to a ledger set. Before you can begin using the ledgers contained in your ledger set for transaction processing, you must assign the ledger set to the profile option, GL: Data Access Set.



    Save.
    Once you create the ledger set system default created a data access set with the same name of the our Ledger set name.

    Navigation: General Ledger –> Setup –> Financials –>Data Access Set

    Assign this ledger set to your Responsibility.
    Navigation: System administrator –> Profiles –> Systems.


    Click on find

    Save.
    Now we can access one or more Ledgers at a time.

    We are very pleased to announce that Oracle E-Business Suite Release 12.2 is generally available for download now:
    • EBS 12.2 represents our most-groundbreaking release in years (Press Release).  It includes new product functionality, new Fusion Middleware and database components, and introduces new tools for installing, configuring, and maintaining E-Business Suite environments:

      Hundreds of new features

      Includes significant enhancements across the integrated suite of business applications spanning enterprise resource planning, human capital management, and supply chain management.  You can find the complete list here:
      Online Patching
      Apply EBS patches while users are still entering transactions and using the E-Business Suite.  Online Patching uses the Oracle Database’s Edition-Based Redefinition feature and other new technologies to allow the E-Business Suite to be updated while the system is still running. You can learn more about Online Patching via our official documentation and this technical webcast.
      WebLogic Server
      Uses Oracle WebLogic Server, which replaces the Oracle Containers for Java (OC4J) application server used in EBS 12.0 and 12.1.  You can learn more about how this improves the system administration experience via our official documentation and this technical webcast.

      Streamlined installation

      • Option for installing EBS 12.2 on to existing database servers.
      • Capability of installation into existing Real Application Clusters environments.
      • Database deployment on Automatic Storage Management (ASM) and other file systems.
      Upgrading to EBS 12.2
      Is there a direct upgrade path from EBS 11i to 12.2?

      Yes, there is a direct upgrade path from EBS 11.5.10.2 to EBS 12.2.  EBS 11.5.10.2 customers do not have to install an intermediary EBS 12 release (such as 12.1.3) before upgrading to EBS 12.2.  EBS 11.5.10.2 customers must have applied the minimum baseline patch requirements for Extended Support as described in Patch Requirements for Extended Support of Oracle E-Business Suite Release 11.5.10 (Document 883202.1). Customers on earlier EBS 11i releases (such as 11.5.7) need to be at the 11.5.10.2 level plus the minimum baseline patch requirements for Extended Support before they can upgrade to EBS 12.2.
      Is there a direct upgrade path from EBS 12.0 to 12.2?

      Yes, there is a direct upgrade path from EBS 12.0.4 and 12.0.6 to EBS 12.2.  EBS 12.0.4 or 12.0.6 customers do not have to install an intermediary EBS 12 release (such as 12.1.3) before upgrading to EBS 12.2.  Customers on earlier EBS 12.0 releases (such as 12.0.3) will need to be at the 12.0.4 or 12.0.6 level before they can upgrade to EBS 12.2.
      Is there a direct upgrade path from EBS 12.1 to 12.2?

      Yes, there is a direct upgrade path from EBS 12.1.1, 12.1.2, and 12.1.3 to EBS 12.2.
      How can I prepare for EBS 12.2?
        More technical references
       concurrent program can provide output in a language if the language is installed in Oracle. To find out which languages are installed in Oracle you can check this article. Generally seeded programs provide output of a program based on the user preferred language. In this example we have illustrated how to override user preference and provide the output of a concurrent program and give multi lingual output based on a certain rule/condition.

      Step 1: Create Multi language function in the database
      We created a multi language packaged function named, XX_MLS_LANG.GET_LANG. The function expects an input from a concurrent program. This input will come from a concurrent program parameter named, Language. In this example the user will enter a language name and this name will be converted into the language code by the function. For example, if the users enter GERMAN the language function will return D, that is the code in Oracle for German.
      The code for this function is given below.
      CREATE OR REPLACE PACKAGE APPS.xx_mls_lang AUTHID CURRENT_USER
      AS
         FUNCTION get_lang
            RETURN VARCHAR2;
      END xx_mls_lang;
      /
       
      CREATE OR REPLACE PACKAGE BODY apps.xx_mls_lang
      AS
         FUNCTION get_lang
            RETURN VARCHAR2
         IS
            p_lingo              VARCHAR2 (40)   := NULL;
            l_select_statement   VARCHAR2 (4000);
            source_cursor        INTEGER;
            lang_string          VARCHAR2 (240)  := NULL;
            l_lang               VARCHAR2 (30);
            l_lang_str           VARCHAR2 (500)  := NULL;
            l_base_lang          VARCHAR2 (30);
            l_dummy              INTEGER;
            ret_val              NUMBER          := NULL;
            parm_number          NUMBER;
            l_trns_lang_check    NUMBER;
         BEGIN
            -- Parameter Entry
            ret_val := fnd_request_info.get_param_number ('Language', parm_number);
       
            IF (ret_val = -1)
            THEN
               p_lingo := NULL;
            ELSE
               p_lingo := fnd_request_info.get_parameter (parm_number);
            END IF;
       
            -- Get Base Language
            SELECT language_code
              INTO l_base_lang
              FROM fnd_languages
             WHERE installed_flag = 'B';
       
            -- If the user has entered a language/value for the parameter then
            -- extract it the value
            IF p_lingo IS NOT NULL
            THEN
               -- Open the cursor
               source_cursor := DBMS_SQL.open_cursor;
       
               -- Create a query string to get languages based on parameters.
               l_select_statement :=
                  'SELECT language_code FROM fnd_languages where nls_language = UPPER(:p_language)';
               DBMS_SQL.parse (source_cursor, l_select_statement, DBMS_SQL.v7);
               DBMS_SQL.bind_variable (source_cursor, ':p_language', p_lingo);
       
               -- Execute the cursor
               DBMS_SQL.define_column (source_cursor, 1, l_lang, 30);
               l_dummy := DBMS_SQL.EXECUTE (source_cursor);
       
               -- If the cursor has returned more than 1 row then
               -- get the output of the cursor into respective variables
               IF DBMS_SQL.fetch_rows (source_cursor) <> 0
               THEN
                  DBMS_SQL.COLUMN_VALUE (source_cursor, 1, l_lang);
                  l_lang_str := l_lang;
               ELSE
                  -- If the cursor returned 0 rows then return the base language
                  l_lang_str := l_base_lang;
               END IF;
       
               -- Close the cursor
               DBMS_SQL.close_cursor (source_cursor);
            ELSE
               -- If the user has not entered any value then return the base language
               l_lang_str := l_base_lang;
            END IF;
       
            fnd_file.put_line
               (fnd_file.LOG,
                'Checking to see if the derived language has a translated layout or not'
               );
       
            BEGIN
               -- Check if the language entered by the user is associated to a translated template or not
               SELECT 1
                 INTO l_trns_lang_check
                 FROM xdo_lobs xl
                WHERE xl.lob_type = 'MLS_TEMPLATE'
                  AND xl.trans_complete = 'Y'
                  AND xl.LANGUAGE = l_lang_str
                  AND xl.lob_code =
                         ( -- Get the actual program name from the MLS request
                          SELECT argument2  -- Prog name
                            FROM fnd_run_req_pp_actions
                           WHERE parent_request_id = fnd_global.conc_request_id -- Request id of the MLS function
                             AND action_type = 6)             -- Template Code
                                                       ;
            EXCEPTION
               WHEN OTHERS
               THEN
                  -- If the chosen language does not have an associated template the SQL will fail
                  -- and therefore return the default language
                  fnd_file.put_line (fnd_file.LOG,
                                        'There is no layout for language: '
                                     || l_lang_str
                                    );
                  fnd_file.put_line
                     (fnd_file.LOG,
                         'Therefore we are using the default template for language: '
                      || l_base_lang
                     );
                  l_lang_str := l_base_lang;
            END;
       
            RETURN (l_lang_str);
         EXCEPTION
            WHEN OTHERS
            THEN
               DBMS_SQL.close_cursor (source_cursor);
               RAISE;
         END get_lang;
      END xx_mls_lang;
      /

      Step 2: Create an executable for Multi Language
      When the multi language packs are installed in Oracle a new type of concurrent executable is created, Multi Language Function. We shall create a concurrent executable of this type for the database function we have created.

      Step 3: Add the parameter to the concurrent program (Optional)
      In this step we are going to modify the seeded program, Active Users, to provide the output in multi language. Since this program does not take any parameters we are going to add a parameter to this program to accept a language name as a user entry (as explained in Step 1).
      Step 4: Attach the multi language executable
      Now we shall attach the multi language executable to the concurrent program, Active Users, so that the output language is taken from the MLS function.
      Once the language packs are installed a field named, MLS function, is enabled on concurrent program form. Enter the MLS executable here.
      Note: MLS function field has a LOV attached to it. The LOV has the list of executables that are of type Multi Language Function, i.e. executables defined as in Step 2.

      Test the concurrent program
      Now we shall execute the concurrent program to check the output. Open the SRS form
      Now select the program as Active Users.
      We get a prompt for the parameter we had created, i.e. Language. Enter a language, say Spanish.
      Press OK and submit the program.
      Notice that 2 concurrent programs are executed by Oracle instead of 1.
      1. Active Users (Multiple Languages)
      2. ES-ES: (Active Users)
      This is because the first request is for the MLS language function and the second request is for the concurrent program.
      When the concurrent programs complete check the log and output of both the requests.
      • Output of request, Active Users (Multiple Languages)
      There is no output of the request that is kicked off for the MLS function.
      • Log of request, Active Users (Multiple Languages)
      +---------------------------------------------------------------------------+
      Application Object Library: Version : 12.0.0
       
      Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
       
      FNDMLSUB module: Multiple Languages
      +---------------------------------------------------------------------------+
       
      Current system time is 15-AUG-2013 08:35:59
       
      +---------------------------------------------------------------------------+
       
      **Starts**15-AUG-2013 08:35:59
      **Ends**15-AUG-2013 08:35:59
      +---------------------------------------------------------------------------+
      Start of log messages from FND_FILE
      +---------------------------------------------------------------------------+
      +---------------------------------------------------------------------------+
      Calling language function xx_mls_lang.get_lang  : 15-AUG-2013 08:35:59
      Language function returned the following languages : E .  : 15-AUG-2013 08:35:59
      +---------------------------------------------------------------------------+
      The following are the details of submitted requests:
      Request ID Language
      ------------------------------------------
           57613357       SPANISH
      +---------------------------------------------------------------------------+
      End of log messages from FND_FILE
      +---------------------------------------------------------------------------+

      Important: When a concurrent request gives output in multiple languages it is the header or the data labels that are changed into different languages. The data remains in the same language as it is stored in the database.
      • Log of request, Active Users (Multiple Languages)
      +---------------------------------------------------------------------------+
      Application Object Library: Version : 12.0.0
       
      Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
       
      FNDSCURS module: Usuarios Activos
      +---------------------------------------------------------------------------+
       
      Hora actual del sistema: 15-AGO-2013 08:35:59
       
      +---------------------------------------------------------------------------+
       
      +-----------------------------
      | Iniciando la ejecución del programa simultáneo...
      +-----------------------------
       
      Argumentos
      ------------
      Language='Spanish'
      ------------
       
      APPLLCSP Environment Variable set to :
       
       Current NLS_LANG and NLS_NUMERIC_CHARACTERS Environment Variables are :
      SPANISH_SPAIN.UTF8
       
      ' '
       
      Introduzca la Contraseña:
      REP-0092: Advertencia: Argumento LANGUAGE versión 1.1 no soportado. Use en su lugar la variable de entorno de Idioma Nacional de ORACLE.
      REP-0092: Advertencia: Argumento LANGUAGE versión 1.1 no soportado. Use en su lugar la variable de entorno de Idioma Nacional de ORACLE.
       
      Report Builder: Release 10.1.2.3.0 - Production on Jue Ago 15 08:36:02 2013
       
      Copyright (c) 1982, 2005, Oracle.  All rights reserved.
       
      +---------------------------------------------------------------------------+
      Inicio del log de mensajes de FND_FILE
      +---------------------------------------------------------------------------+
      +---------------------------------------------------------------------------+
      Fin del log de mensajes de FND_FILE
      +---------------------------------------------------------------------------+
       
      Note that the log file has now changed to Spanish. This means that MLS affects data labels, headers and log files but not data.
      Appendix:
      Now if we were to take off the MLS function from Step 4 and executed Active Users concurrent program then Oracle would have executed only 1 request.