Development

The EnterpriseOne Development category will include all posts and pages pertaining to the development of EnterpriseOne applications, reports, table conversions, integrations, etc.

 

Better Performance On Work with Payroll Transaction Ledger (P050999) With An Index On F0618

We have been getting complaints about the Work with Payroll Transaction Ledger (P050999) grid loading performance. So, I decided to take a look. What I found was that upon entering the application it does an automatic find on the grid using the following SQL statement with the current G/L date in the WHERE clause.

SELECT
YTDGL,YTMCU,YTSBLT,YTPAYM,YTPB,YTSBL,YTUAMT,YTPCUN,YTPRTR,YTDWK,YTSHRT,YTAN8,YTSHD,YTPPRT,YTPALF,YTBHRT,YTOBJ,YTGPA,YTSUB,YTCMTH,YTAUBP,
YTPHRW,YTPDBA,YTCO,YTAID,YTCRCD,YTCRDC
FROM PRODDTA.F0618
WHERE (YTDGL 

As you can see, this SQL statement is returning every record in the F0618 that has a G/L Date less than or equal to the system's current G/L Date. I don't know about your installation but the one that I was working on had 17+ million records. Why the heck would it need to return all that?

That screen was taking 8+ minutes to present information to the user.

With the help of my coworker Geordy and Technet, I came up with an index on the F0618 that didn't make the SQL statement finish any quicker, but it does present the user the first page of data extremely fast (LESS THAN 3 SECONDS!).

CREATE INDEX [F0618_CUSTOM]
ON [JDE_PRODUCTION].[PRODDTA].[F0618] ([YTDWK] ASC)
INCLUDE ([YTDGL],[YTAN8], [YTPALF], [YTPRTR], [YTCO], [YTMCU], [YTOBJ], [YTSUB], [YTSBL], [YTSBLT], [YTPHRW], [YTPCUN], [YTPPRT], [YTBHRT],
[YTSHRT], [YTSHD], [YTPAYM], [YTGPA], [YTPDBA], [YTPB], [YTUAMT], [YTAID], [YTCMTH], [YTCRCD], [YTCRDC], [YTAUBP])

You can see from the index that all I did was create an index over the field that the SQL was sorting on (YTDWK or Date of Work) and included the rest of the fields that were in the query.

There must be other little tricks with indexes in EnterpriseOne. Have you found any?

 

VBScript To Insert Values Into UBE Data Selection List Of Values

First off… Shannon Moir ROCKS!

He has put together a VBScript that will insert a list of values into the UBE Data Selection List of Values text area on a fat client. If you do much data migration or data refresh work this script will really help.

set objShell = wscript.createobject("WScript.Shell")
 
Do until success = True
  Success = objshell.AppActivate("List Of Values") 
  wscript.sleep 1000 
Loop
 
wscript.sleep 100 
wscript.echo "Start data pump"
wscript.sleep 100 
Success = objshell.AppActivate("List Of Values") 
objshell.sendkeys "+{tab}+{tab}"
 
objshell.sendkeys "F98840~"
objshell.sendkeys "F98800~"
objshell.sendkeys "F98830~"
objshell.sendkeys "F98810~"
objshell.sendkeys "F594218~"
objshell.sendkeys "F590001~"
objshell.sendkeys "F594213~"
objshell.sendkeys "F590120~"
objshell.sendkeys "F594109~"
objshell.sendkeys "F4096~"
objshell.sendkeys "F0901D~"
objshell.sendkeys "F38111~"
objshell.sendkeys "F594111~"
objshell.sendkeys "F594110~"
objshell.sendkeys "F599312~"
objshell.sendkeys "F62UI13~"
objshell.sendkeys "F56108~"
objshell.sendkeys "F1204~"
objshell.sendkeys "F01131~"
objshell.sendkeys "F56107~"
objshell.sendkeys "F03B16~"
objshell.sendkeys "F3403~"
objshell.sendkeys "F6110~"
objshell.sendkeys "F57150~"
objshell.sendkeys "F470561~"
objshell.sendkeys "F00165~"
objshell.sendkeys "F43199~"

Recover Lost Disk Space

We currently share development clients and so there can be many people that use each one. Several times some of those clients have filled their C: drives and I have been unable to find where it went. I checked user desktops, downloads, etc. However, I was unable to find anything.

Then, I ran across a simple command that can empty the recycle bins of every user on the PC and help you recover your lost disk space:

rd /s /q "C:\$Recycle.Bin"

Hopefully, writing this little tip here will help me remember and maybe help someone else that has lost disk space and doesn’t know where it went.

Error Installing An Update Package On An E1 Development Client

imageEvery once in a while we get errors when installing update packages on our E1 Development Clients.

An error occurred during the interview for this component. EnterpriseOne Development Client 1.0.0.0.5. The selected package is not valid. Please see log

So, we go check the log and we see entries like the following that refer to an old full package:

INFO: 01/23/14 10:10:13.731 Cannot get information about the database from file E:\E910\package.inf. Empty file name for DataFileDestDirSPEC_DV910D00
INFO: 01/23/14 10:10:13.731 Cannot get information about the database.  Reason: Cannot get information about the database from file E:\E910\package.inf. Empty file name for DataFileDestDirSPEC_DV910D00
INFO: 01/23/14 10:10:13.731 Cannot get information about the database from file E:\E910\package.inf. Cannot get information about the database.  Reason: Cannot get information about the database from file E:\E910\package.inf. Empty file name for DataFileDestDirSPEC_DV910D00
INFO: 01/23/14 10:10:13.732 Cannot get information about the package’s database. Cannot get information about the database from file E:\E910\package.inf. Cannot get information about the database.  Reason: Cannot get information about the database from file E:\E910\package.inf. Empty file name for DataFileDestDirSPEC_DV910D00
INFO: 01/23/14 10:10:13.732 Package validation failed. An existing package is installed, but we cannot get information about it from the file E:\E910\package.inf. Cannot get information about the package’s database. Cannot get information about the database from file E:\E910\package.inf. Cannot get information about the database.  Reason: Cannot get information about the database from file E:\E910\package.inf. Empty file name for DataFileDestDirSPEC_DV910D00
INFO: 01/23/14 10:10:13.733 Validation of package in file \\WC-CORP-VMDEPLY\E910\package_inf\PD910E00.inf failed!!! Package validation failed. An existing package is installed, but we cannot get information about it from the file E:\E910\package.inf. Cannot get information about the package’s database. Cannot get information about the database from file E:\E910\package.inf. Cannot get information about the database.  Reason: Cannot get information about the database from file E:\E910\package.inf. Empty file name for DataFileDestDirSPEC_DV910D00

The errors continually reference the package.inf file, so we go check that out.  There is only one reference to our old full package (DV910D00). It is in the following stanza:

[Oracle Databases]
SPEC_DV910D00=ORACLE
JDELocal_DV910=ORACLE
SPEC_DV910G00=ORACLE
JDELocal_PY910=ORACLE
SPEC_PY910G00=ORACLE
JDELocal_PD910=ORACLE
SPEC_PD910E00=ORACLE

So, it looks like the old package was not completely removed.  We delete that line from the package.inf file and everything works perfectly.

E1 Development Clients can really be a pain in the butt!

Business Services SBF and EAR File Are Not Created During BSSV Package Build

I was trying to build a BSSV package for a new EnterpriseOne 9.1 installation and received a R9621 that said the build was successful.  However, when I tried to deploy the package I received an R98825F that said Failed to initiate BSSV deploy. 

After some investigation, I found that the .ear file was not created in the SBF directory of the package. Then, I found this on the Oracle Support site that solved the issue:

Symptoms:

When trying to build a client package for a standard business service.

The logs do not include the following lines:
*************************************************
Thu Jul 10 18:36:12 – Copy \\INFVA02670\E812\DV812\java\sbfjars to \\INFVA02670\E812\DV812\package\DVBSSV4\java\sbfjars.
Thu Jul 10 18:36:36 – Copy \\INFVA02670\E812\DV812\work to \\INFVA02670\E812\DV812\package\DVBSSV4\work.
********************************************************************

When these lines are missing, the system is not copying the required sbjars to the sbf folder under the package build folder.

Solution:

BSSV’s cannot be individually built – so if you have an update package (does not matter if this is from an ESU or not) and if it contains BSSV’s – they will be deleted since all BSSV’s have to be compiled and an EAR file created.

If the update pkg being created contains BSSV’s (specifically selected in Package Assembly) and is not marked as MASTERING, then pkgbld will delete the objects from its list and build the remaining objects (from package assembly or ESU). This is not an error – but working as designed.

So here, since the customer selected specific BSSV’s in Package Assembly and they did not have MASTERING turned on (you can check this – Fastpath to GH9083, Select Package Build, Right click – Prompt for Values and MASTERING is the second one and it should be blank – which means it is turned off) the pkgbld process is deleting the BSSV objects from the list and the sbfjars are not getting copied.

For a regular BSSV package the MASTERING flag should be turned OFF.

When building a regular BSSV package (generate the BSSV EAR that will be later deployed to a BSSV server) do not select individual BSSV’s during package assembly.

Note – The MASTERING flag is only set/turned on, if the customer is going through Product Package and building the ESU. This is generally not done by the customers. When MASTERING is turned on, you can specify individual BSSV’s in package assembly in which case the .zip files are copied from the pathcode to the package sbf folder and compressed and delivered as part of the MASTERED update (ESU) package. In this case the BSSV EAR will not be created.

Source: Oracle Support Doc# 1368331.1