About Me

My photo
I work for Myriad IT Services . Connect with me on linked in here . I'm always looking for the next strategic engagement.

Monday, 24 October 2016

Trying to log into OATS–404 once again

OATS is often on struggle street,  open up the interface from your favourites and  http://localhost:8088/otm/ – you get a wonderful 404!

Error 404--Not Found

From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.4.5 404 Not Found

The server has not found anything matching the Request-URI. No indication is given of whether the condition is temporary or permanent.

If the server does not wish to make this information available to the client, the status code 403 (Forbidden) can be used instead. The 410 (Gone) status code SHOULD be used if the server knows, through some internally configurable mechanism, that an old resource is permanently unavailable and has no forwarding address.

Great, we know that OATs runs on weblogic and is tightly integrated with the database.  We also know that you can use openScript completely independently of the local database.  You can record any number of scripts locally on a machine, as long as the TestManager or LoadTesting software can see where you have recorded all of your scripts – they can do the coordination.

Anyway, back to the problem.

search for *.log in your OATS install directory and you’ll get a bunch of red herrings:


Standard messages about not being able to connect to the database, arrgghhh.

####<18/10/2016 3:26:24 PM EST> <Info> <EJB> <devsoe-PC> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <oats> <BEA1-00002F17E612A743959C> <> <1476764784913> <WL-010227> <EJB Exception occurred during invocation from home or business: weblogic.ejb.container.internal.StatelessEJBHomeImpl@152942e threw exception: javax.persistence.PersistenceException: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.3.1.v20111018-r10243): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot acquire data source [OATS_common_DS].
Internal Exception: javax.naming.NameNotFoundException: Unable to resolve 'OATS_common_DS'. Resolved ''; remaining name 'OATS_common_DS'>
####<18/10/2016 3:26:24 PM EST> <Error> <HTTP> <devsoe-PC> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1476764784932> <WL-101216> <Servlet: "struts-action" failed to preload on startup in Web application: "olt".
javax.ejb.EJBException: EJB Exception: ; nested exception is:
    javax.persistence.PersistenceException: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.3.1.v20111018-r10243): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot acquire data source [OATS_common_DS].

Load up the Database config utility from the start menu, or run C:\OracleATS\bin\DbConfig.bat


you’ll eventually get a java screen with the local database connection information (sorry, might not be local)


Choose save and it’ll try the connection and give you a MASSIVE hint as to the problem, password expiry!  Wow, that is a painful policy / feature.



Above link will show you what to do, I’ll do the heavy lifting though, save you some work.

sqlplus / as sysdba

select username, account_status, expiry_date, profile from dba_users;


You’ll get a pile of locked accounts as above

select resource_name,limit from dba_profiles;


alter the profile limit and see the results:

alter profile default limit password_life_time unlimited ;


okay, the limit is changed, but we need to unlock the accounts, as they still fail to log in:


Even though I execute an “alter user account unlock”, The password is still expired.

ALTER USER otm identified by XXXX;

ALTER USER oats identified by XXXX;

ALTER USER olt identified by XXXX;

ALTER USER OTM account unlock;

ALTER user OATS account unlock;

ALTER user OLT account unlock;

So, now you need to remember the password you assigned to administrator when you installed oats (well I did), and then “alter user otm identified by XXXXX”;

This triggered the correct change to the profile to get everything working


You should then restart your OATs machine (or just the services) and everything should come up working!



Tuesday, 18 October 2016

Tools and list view

This is a nice enhancement, seen it?

Get a demo account for http://e92demo.myriad-it.com/jde/E1Menu.maf and take a gander.

Have you ever seen the address book look like this:


This is easy to do now with list view.


This is a new type of user override which gives you the ability to look at things a little differently.

You can also search any of the data on the page easily.


Hitting the grid format button above, you’ll see


Add the fields that you want, choosing additional lines


See that 1 will just give you the data and 2 will give you the field title and the data.

You can also choose your sequencing


This is a paste from chrome:


You can use control and select specific rows and act upon just them!

Cut and paste does NOT work from the list view

Address Number    Sch Typ    Tax ID    Alpha Name
4    O         Alternate US Parent
43    V         Asia Supplies
280    O         Argentian Company
301    O         Argentina Company
306    O         Australian Company
610    O         Australian Operations
1002    C         ADDA Laurent
1007    C         Andrew Blabla
1030    E    833776655    Allen, Wayne
1616    E         ABC

Monday, 17 October 2016

JD Edwards release dates–makes me feel old

Release LayerAscending Status Release Date Description Features
World Applications    

Reference point for migrations to JD Edwards EnterpriseOne.

Xe Applications Sustaining Support 15-Sep-2000

Originally called OneWorld.

8.0 Applications Sustaining Support 15-Jun-2002

Originally called ERP 8.

8.9 Applications Sustaining Support 15-Sep-2003   120
8.10 Applications Sustaining Support 15-Jun-2004   92
8.11 Applications Sustaining Support 15-Dec-2004

Includes release 8.11 SP1.

8.12 Applications Sustaining Support 21-Apr-2006   202
9.0 Applications Extended Support 23-Sep-2008   166
9.0 Update 1 Applications Premier Support 30-Oct-2009   19
9.0 Update 2 Applications Premier Support 10-Nov-2010   67
9.1 Applications Premier Support 16-Mar-2012   125
9.1 Update 2 Applications Premier Support 19-Sep-2013 Additional features have been periodically delivered since the release of 9.1.2:

- February 2014

- April 2014

- July 2014

- December 2014

- January 2015

- April 2015

- July 2015

9.2 (previous released February 2014) Applications Premier Support 06-Oct-2015 For additional information on these features and how to access them prior to Applications 9.2, see article 1620420.1 on MyOracle Support. 10
9.2 (previously released April 2014) Applications Premier Support 06-Oct-2015 For additional information on these features and how to access them prior to Applications 9.2, see article 1632021.1 on My Oracle Support. 22
9.2 (previously released July 2014) Applications Premier Support 06-Oct-2015 For additional information on these features and how to access them prior to Applications 9.2, see article 1901372.1 on My Oracle Support. 18

Friday, 14 October 2016

Gamification in JD Edwards vi Google analytics

Gamification is a fairly simple concept where you try and make something fun that is not fun.  So, how are we going to make JD Edwards fun? (wait, am I saying JDE is not fun…).  Actually, perhaps the term fun is not appropriate, perhaps competitive is a better term. 

If you could inject an element of competition in your workers, perhaps they would like to win that competition and depending on how the competition is put together – you might all benefit from it.  An analogy is classic “sales volume”, where you could dashboard this by user by summing their sales orders for the day and putting it on a TV screen on the sales floor!  That’d be a nice thing.  We find that in Australia – that can go one of two ways.  People like it and get involved, or people think it’s a waste of time and don’t want the see the details up in lights – it’s a fine line.  I must admit though – competitive nature does tend to shine through…

We’re are using a metric of “clicks” or interactions with the ERP and reporting on this on a weekly basis for a mobile work order solution that we’ve written for a client.  We have an automated google analytics report that is emailed to all of the managers at the end of every week which summarises the interactions of their staff by user ID.  This has turned out to be a terrific success for getting people on the system.  It turned out to be quite competitive that nobody wanted to be at the bottom of the list, it has increased the usage of the application significantly.

We can also drill down into the detail of the usage and know that users are putting in real transactions – not just “playing”.


You can see from the above that we are seeing a healthy upward trend in usage.

We can apply the same mechanism to promote certain behaviors in ERP usage too.  We can export usage data by user and application from JD Edwards on a daily, weekly or monthly basis.  We can filter by certain applications to ensure that only valid applications are being counted towards the tally.  Regular “machine” based emails (not up to an administrator to collate) can be sent to a group which will show the new leader board.


As you can see from the above, we can see the users, the screen they are using (in this case a JD Edwards mobile application) and also how often those interactions have been over a period of time. 

This detailed analysis allows us to EASY gauge improvements in our design, whether that is navigation or new functionality.  We immediately know whether the new functionality is being used.  Who is using it (and who is not!).

You could compare departments, functional roles, geographic regions – anything!  The data can be sliced and diced in numerous ways to create a competitive landscape.

Wednesday, 12 October 2016

uninstall deployment server…

It hurts, but it needs to be done.

I’ve been fighting an install of JDE92 on a dep server and need to start again, I’ve messed up tnsnames and the import of the data has failed.

I was able to run “attach_

but, now I’ve got problems with C:\JDEdwards\E920_1\Planner\data\attach_metadata

Connected to: Oracle Database 12c Enterprise Edition Release - 64bit
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing opt
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-31640: unable to open dump file "C:\JDEdwards\E920_1\Planner\spec\SPEC_E920.
DMP" for read
ORA-27041: unable to open file
OSD-04002: unable to open file
O/S-Error: (OS 2) The system cannot find the file specified.

This is not good.  I find this – and it basically says start again - https://support.oracle.com/epmos/faces/DocContentDisplay?id=2149904.1

Note that I did learn that the default passwords for system etc are admin in all of the install scripts.  I used ReconfigureMSDE a number of times to change the admin password,s this was handy…  I got the attach_planner to work, but the attach spec would not – Doh!

So start again – ouch!

I find 2012 hard to navigate still – which is bad I know.  Too much time selling and not doing!

I find the program files in this folder, C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Oracle - JDE_DEP920_HOME1\Oracle Installation Products

So, easy to run the correct uninstaller from there.


The corrective actions suggested in AWS are:

Step 2: Corrective actions to ensure connection to database
1, Make sure copy the tnsnames.ora file from X:\Oracle\E1Local\Network\Admin to 32BIT Client Home\Network\Admin
For example: C:\Oracle\E1Local\Network\Admin\tnsnames.ora to C:\app\product\12.2.0\client_1\network\admin
was this process done.This has the necessary information to connect to E1Local
2.Set the ORACLE_HOME value for the E1Local database to <drive:>\Oracle\E1Local from command prompt.This precautionary measure helps in case there is an old installation of E1Local interfering with the OUI installer.
3.Make sure the tnsnames.ora and the listener.ora have a host name or IP address instead of localhost (both tnsnames.ora and listener.ora should consistently have either a host name or IP address in both the places).

I had 1 and 2 covered…  I did number 3 and the install worked…  Although this could have been a restart between config too…

if you connect to e1local on the deployment server,


you’ll see the above owners when things are right

Tuesday, 4 October 2016

Building blocks–exactly what a DD is!

This is a post for all DEV and CNC people to use when deciding how they are going to change some description on a screen.  It’s important to consider the lifecycle of the change, not just the time it takes for you to hack the change into FDA.  You need to think about ESU’s, upgrades and more to ensure that you are doing the right thing and the cheapest method of making your change.

Verbatim from oracle support – “To override the data dictionary default text in the application, the following methods are available and the text override method is applied in the following order:”

And here are the handy documents and some description from me.

  1. Data Dictionary Text Change
    Review Document 626622.1 E1: DD: Data Dictionary Text Change
  2. Data Dictionary Jargon
    Review Document 626565.1 E1: DD: Data Dictionary Jargon Code
  3. Vocabulary Overrides
    Review Document 626466.1 E1: DD: Vocabulary Overrides
  4. Event Rule Code
    Review Document 865183.1 E1: DD: Override Application Text using Event Rule code


  • DD Text is easy and goes everywhere that there has not been a specific override done, P92001
  • DD affects interactive and batch the same
  • Do a full package after a DD change, just to be sure.  Then you’ll know what you have to do next if some text does not change
  • If you have made a change with FDA / Jargon or Vocab overrides – this is NOT going to work!


  • This is like an override per system code
  • So finance people call MCU Business Unit and Distribution call it warehouse, cool
  • We have a Jargon code for a task which says whether it’s 09 or 42 and we have an alternate description based upon that
  • Note that a task can have a jargon code, and a application can define it with OMW Product System Code of the Application




Note that the screen shot above is for the various descriptions per system code for MCU

Vocab overrides (VO)

  • first rule of vocab overrides is don’t use vocab overrides
  • The second rule of vocab overrides is don’t use vocab overrides
  • The third rule of vocab overrides is to understand them to use them properly! (thanks fightclub!)
  • Apart from changing code, this is as hard core as configuration gets. 
  • The only thing that is going to trump a VO is code change.  So – unless you are tucking into FDA and RDA – this is your last chance to get your description correct.
  • Remember that vocab overrides write DIRECTLY to central objects, no check-out needed!  WOW!
  • So you change a VO, the change is written to the F987* files for the pathcode that the project status allows you to check-in to.  There is a leap of faith there, I hope you understand what I wrote.  It does not change your local SPECS.  You need to do a get!  (When making Vocabulary Override changes in the Vocabulary Overrides application, the application updates the information in the Central Objects repository directly. The information is not updated in the local client specifications. In order to see the changes the specifications can be deployed in a package or the specifications can be refreshed on the individual local client.)
  • You should only do VO’s under the guise of OMW, as the objects will need to be promoted.
  • They are cheeky and sometimes require a bunch of builds and deploys.
  • You need a fatty for them
  • They do not survive an upgrade or ESU
  • After checking in the application, the vocabulary overrides can be verified using P9220
  • Vocabulary Overrides are stored by language:
    • in FDATEXT by Interactive Application name, TextID, Language
    • in RDATEXT By Batch Application template/version, TextID, Language
  • Below is an interesting sequence of screen shots demonstrating JDE not recognising a subsequent change to a VOCAB, a rechange / back to original messes everything up.
  • It shows that the specs on the app have the new description of “Shannon”, but the vocab overrides app thinks that it’s the first changed value – wow – what a mess.


If you look in UTB for local specs:


The id is 2088 and it’s got a value of Shannon, but if you look at vocab overrides, it’s default


Where is it coming from?

Delete glbltbl and dd* from spec dir – still wrong  - delete runtimecache for fdaspec in spec dir – still wrong.

Restart JDE on fatty

Still wrong locally


I change to Wrong Side failure (note that I cannot use the overridden DD item description, as it marks the item as not changed if I use this)


When I open the item, I get the standard description:


But, it’s been overridden in CO in PY.

No matter if I get from PY too, I still do not get the override


ER Code:

This one is simple, open the app and change the description.  Follow your SDLC and it’ll work like any other change.

Thursday, 15 September 2016

using mnConnect without specifying passwords in a text file

Easy, well you’d think.

There is a bit of a caveat, we  are creating a key file and a credential file.  If people can get a hold of these, then they can run nm commands as that user without needing to know the username and password, so you need to keep these files a little bit secure and secret.  chmod is your friend.

firstly, lets explain the problem

if a shell script, you run the following to start a server

/u01/oracle/Oracle/Middleware/Oracle_Home/oracle_common/common/bin/wlst.sh /u01/startscripts/nmStartServer.py

import sys;
print 'Starting with :',str(sys.argv);
if len(sys.argv) != 1:
  print 'Usage nmstartsvr.py servername'
  print 'Connecting to nodemanager and creating encrypted credentials'
  nmConnect('weblogic','mySecurityHole',domainName='e1_apps', port='5556', nmType='ssl');

So that is great, we need to stop using mySecurityHole, so we now create a new script:

This has the connect and the following line:

import sys;
print 'Starting with :',str(sys.argv);
if len(sys.argv) != 1:
  print 'Usage nmEncryptPassword.py '
  print 'Connecting to nodemanager and creating encrypted credentials'
  nmConnect('weblogic',’mySecurityHole;,domainName='e1_apps', port='5556', nmType='ssl');
  storeUserConfig(userConfigFile='/u01/startscripts/userconfig.secure', userKeyFile='/u01/startscripts/userkey.secure',nm='true');
  print 'Could not change the password or store it to nodemanager'

So you can create the two files '/u01/startscripts/userconfig.secure', & '/u01/startscripts/userkey.secure' – the script will do this for you.

You only run the above once, which is nice.  The next thing you do is change your nmConnect line like below:

import sys;
print 'Starting with :',str(sys.argv);
if len(sys.argv) != 1:
  print 'Usage nmstartsvr.py servername'
  print 'Connecting to nodemanager and creating encrypted credentials'
  nmConnect(userConfigFile='/u01/startscripts/userconfig.secure', userKeyFile='/u01/startscripts/userkey.secure',domainName='e1_apps', port='5556', nmType='ssl');

viola! You are now using a keyfile to run start, not the plain text credentials.

Note that in between I started to get:

Connecting to nodemanager
Connecting to Node Manager ...
This Exception occurred at Thu Sep 15 14:09:14 AEST 2016.
java.io.IOException: Get a TLS/SSL Alert. Connection is rejected. Probably caused by attempting to connect to a SSL server (SecureListener==true in nodemanager.properties) with a Plain client.
Could not connect to nodemanager

I noticed that I’d cut and pasted wrong  nmConnect(userConfigFile='/u01/startscripts/userconfig.secure', userKeyFile='/u01/startscripts/userkey.secure',domainName='e1_apps', port='5556', nmType=’plain’);

Once this was back to ssl, all was good in the WLST world.