Create an E-Business Suite User using a PL/SQL script

Some tasks are easier to do using a simple database script. If you need to create an E-Business Suite user account for testing purposes, it is faster to use a script.

Sure, you could navigate to Application Administrator > User Administration and create an E-Business Suite user account in the Users form. But that just takes too long. And, most of the time you’re creating a simple test user for a specific purpose in a test instance. Don’t waste your time with Users form — it’s much easier using the script below.

Create an E-Business Suite user account with a script instead of trudging through the forms.

But I’m guessing you already have a database session up, so just copy, paste, and run the script below. It will quickly and easily create an E-Business Suite user “USER_NAME” with the password “PASSWORD”. Update those values before running the script. Also, don’t forget to run this under the APPS schema.

After you create an E-Business Suite user, a natural next step is to assign that user roles and responsibilities necessary to complete your testing. I wrote another PL/SQL script that assigns common system administrator responsibilities which would be a great logical next step.

Ultimate script to automate system administrator access

Most Oracle developers and analysts don’t have system administrator access in Oracle Applications production instances due to company policy or SOX/PCI compliance. That lack of access trickles down during every clone process, and each fresh copy requires setting up user accounts all over again. Most of us have to log into Oracle Applications and manually add all of the system administrator access by choosing the different responsibilities we need.

At my current job, I have access to a reporting instance. It is a nightly refresh of all production data. So, it’s extremely useful for testing code and new setups before moving into production. But, because it is refreshed daily I had to automate system administrator access in Oracle Applications.

The reporting instance I often used has forced me to rethink this process of adding system administrator access. I didn’t want to manually update my user account each time. I’m a techno-functional-developer, so I have very few responsibilities granted to my account in production (I’m way too dangerous), but may need a variety of responsibilities depending on my current project.

So, I wrote a script to automate system administrator access in Oracle Applications. It does the following:

  1. identifies the username being changed
  2. creates a list of responsibilities to be added
  3. creates a table of profile options to be set
    • Java Color Scheme
    • Diagnostics
    • Personalizations
  4. updates profile options from table in #3
  5. adds several hardcoded roles
  6. adds responsibilities based on the list from #2


This script could be used to:

  • add system admin access following a clone
  • learn some PL/SQL basic code structures
  • onboard a new analyst or developer or consultant (just adapt the list of responsibilities)
  • automate granting responsibilities to a type of user (for example, if your accounting group is always bringing on new GL accountants who always need a specific set of GL responsibilities in different ledger sets)

Integrated SOA Gateway: Generate WSDL Example

This is a step-by-step guide to deploying a WSDL from the Integrated SOA Gateway in Oracle’s E-Business Suite 12.1.3. This is a simple example that should open up the world of making some of the canned APIs and services available for integration projects.

If you’re looking for hundreds of pages of in-depth info, please refer to Oracle’s Integrated SOA Gateway User Guide. We’re going to keep things simple here and walk though an example step-by-step.

Open the Integration Repository

So, to start off select the Integrated SOA Gateway responsibility and then the Integration Repository. If, when selecting the Integration Repository you don’t also see the Administration area, then you need to assign the correct UMX|FND_IREP_ADMIN role.

Integration Repository navigation

Find the business service interface

For this tutorial, we will deploy the WSDL for the SOA Health Check Test Package. It’s a good one to start out with because it is a very simple PL/SQL package. To find this one you can either search for it by name or internal name (SOA_DIAG_TST). Or, simply browse to it as shown in the image below.

Browsing through the Integration Repository to find the SOA Health Check Test Package

Clicking on the SOA Health Check Test Package link will display more about what functions are available in this package. Please note that it is a PL/SQL interface.

Clicking on the Test Function link in the Procedures and Functions section toward the bottom of the page will display more information about what this function will be doing. You will noticed that it takes in 3 parameters (ARG1, ARG2, and ARG3 — not a very creating naming convention, but this is a very simple function) and returns a number.

Details of the Test Function

Given how simple this particular function is, it would be an ideal first WSDL to deploy from the Integrated SOA Gateway. It would also be a great way to test connectivity to a partner who will be consuming E-Business Suite web services.

Grant appropriate access

Since we now know the details about the SOA Health Check Test Package, it’s time to decide who should have access to the TestFunction function.

Create Grant for Test Function

Check the checkbox for the Test Function near the bottom of the page and click on the Create Grant button. This will take you to the Create Grants page where you can grant to a specific user, a group of users, or open it up for everyone. Since this is a simple example, it would probably be easiest to grant access to All Users. Then hit the Apply button.

Integrated SOA Gateway Generate WSDL Example Create Grant

You should get an information message saying that a grant has been created successfully for operation ‘Test Function’.

Generate WSDL

The final step is to click on the Generate WSDL button in the top right corner. Simple right? Again, you should see an information message, and when the operation is finished you should notice a new section in the main page of the SOA Health Check Test Package. The Web Service – Web Service Provider area now clearly shows the status as Deployed. The WSDL URI is also shown for your environment.


You’re done!

Start using the Integrated SOA Gateway

The Integrated SOA Gateway in the Oracle E-Business Suite (EBS 12.1.3) is a fantastic resource for system integrators. But, the Oracle-provided documentation isn’t very clear. Here are some notes that may help you start using the Integrated SOA Gateway.

The obvious first step is to assign the responsibility “Integrated SOA Gateway” to the user needing access. This will give that user access to browse through all of the APIs provided by the Integrated SOA Gateway. But, it is a read-only access. Feel free to browse through the available APIs and get familiar with what is out there.

To really start using the Integrated SOA Gateway, you will need to assign the “Irep Administrator” role. After this is done correctly, you should be able to see an Administration tab at the top of the Integration Repository page.

The "Administration" tab only shows up after assigning the correct role.

There are a few key roles which unlock some of the hidden features of the Integrated SOA Gateway:

  • System Integration Analyst (UMX|FND_SYSTEM_INTEGRATION_ANALYST)
  • System Integration Developer (UMX|FND_SYSTEM_INTEGRATION_DEVELOPER)
  • Irep Administrator (UMX|FND_IREP_ADMIN)

Unfortunately Oracle wasn’t very consistent with their naming conventions in this case. At first, I only granted myself the “System Integration Developer” role because I didn’t know about Irep Administrator. As a result, I walked through the Oracle documentation ( and kept wondering why my “Administration” tab wasn’t showing up. So, the key is to assign the Irep Administrator role as shown below.

  1. Log into the Oracle EBS applications
  2. Navigate to User Management responsibility
  3. Navigate to Users web page
  4. Find the user
  5. Click on Update
  6. Click on Assign Roles button
  7. Find and choose “Irep Administrator” role
  8. Apply

Assign Irep Administrator role to start using the Integrated SOA Gateway

Please note: If you haven’t granted roles before, you’ll need to follow the same steps after logging in as SYSADMIN and performing the same steps for your user. But grant the “Security Administrator” role, which allows you to assign other roles (like Irep Administrator).

The workflow background engine will need to run successfully before the changes are applied. But, that’s it. Now you have unlocked the Administration tab. Now you can really start using the Integrated SOA Gateway. You should also notice the “Generate WSDL” button is available so you can start deploying web services right from the Integration Repository.

Now the Generate WSDL button should be available


Updating the random team name generator

A couple years ago I needed some team name ideas for a fantasy football league. I searched around the web for a random team name generator, but didn’t find anything that suited me.

I was learning PHP at the time, so I decided building a random team name generator would be a fun project, and not too hard for a PHP novice. I documented the main points of my approach here in this post, which shows a few of the basics.

The random team name generator only generates errors

Unfortunately, I let the original team name generator languish. I didn’t put a whole lot of effort into maintaining it. It still generated team names just fine, so why bother upgrading it? Well, the problem was that my website platform was still being actively developed and changed. WordPress changed so much, in fact, that soon my original team name generator was causing serious issues on my site. It even was generating HTTP 500 errors for a while. Not a good situation. My rankings on search engines for keywords like “fantasy football team name generator”, “funny team names”, “random team name generator” and several others fell drastically. The original team name generator was on the first page of most search engines for those key words, but quickly fell. Traffic ground to a halt.

But, I wasn’t too worried about it, because writing the first random team name generator was not a commercial endeavor. I did it just for fun—to see if I could build something that would give me some team name ideas for my fantasy team.

The new random team name generator

So when a project at work required me to write some PHP code, I thought I should dust off the old random team name generator, and update it, but this time I would make it a little more robust. I probably won’t actively develop it, but the new random team name generator should be able to:

  • Be edited and updated easily
  • Survive WordPress version updates
  • Be independent of theme or other plugins

So, after much research I converted the old random team name generator into a custom WordPress plugin. Many of the core PHP functions are the very similar to the original. I still have a get_random_team_name function which builds one random team name from the three arrays. The get_list_of_team_names function contains a loop that gets 10 random team names. Some other code handles the HTML formatting and appending to the page content. When the plugin is enabled, the random team names simply to the bottom of the Team Name Generator page.

What is next for the team name generator?

There were some features of the old version that I haven’t added yet into the new random team name generator. However, looking bag at my old traffic logs, they weren’t used very often. It seems most visitors come to the site looking simply for a list of ten random team names. The current version of the Team Name Generator does just that.

I will follow the comments closely and see what else needs to be added. I will occasionally tweak my lists that build the random team names. I may need to add some social sharing capabilities. However, I am much happier with the new solution. Hopefully it will be able to provide some good random team names for many people.