Archive for EnterpriseOne – Install/Upgrade

How To Redeploy A Package To A Development Client (Fat Client)

Print Friendly

I needed to redeploy a full package and all the update packages associated with the pathcode.  So, I used the SQL below to do the job:

 update sy900.f98825 set upinpkst=20 where upmkey='<DEV CLIENT NAME>' and uppathcd='<PATHCODE>' and upjdepkgnm <> '<PACKAGE NAME>' 

Error Installing An Update Package On An E1 Development Client

Print Friendly

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!

Use Oracle SQL Developer To Modify The JDE LOCAL Database

Print Friendly

During our upgrade process, we apply all of the ESUs to become “code current” before mirroring the upgraded code to the other pathcodes.

The process of doing this does not automatically update the Electronic Software Updates application to reflect that all of the ESUs are in all the pathcodes.

There a couple of different way to update the grid:

  1. Apply the ESUs to the other environments.  This can be a very long and tedious endeavor because there could be thousands of ESUs to apply.
  2. Update the JDE LOCAL database.

I have done option 1 in the past but found it kind of a pain and since I knew that I didn’t really want the process to really do anything except update the table, I chose to come up with a process to do option 2.

Here is what I did:

  1. Install and configure Oracle SQL Developer.  This is really the hardest part, but really not much of an issue.
  2. Create a connection to the JDESY910 database.  Remember, not only is JDESY910 the name of the database, but by default it is also the UserID and Password.
    image
  3. Run the following SQL
     INSERT INTO F9671 (SDPKGNAME,SDSUDET,SDSUDS,SDSUDATE, SDSUTIME,SDSUDFUT1,SDSUDFUT2,SDSUDFUT3,SDUSER,SDPID, SDUPMJ,SDUPMT,SDJOBN) SELECT SDPKGNAME,90,15,113284,111111,' ','DV910',0, 'JDE','SQL',113284,111111,'&lt;deployment name server&gt;' FROM F9671 WHERE SDSUDET=90 AND SDSUDFUT2='PD910' 
    • In this SQL, we upgraded PD910 and then moved the code to DV & PY.
    • We only need the “status 90” records because those are the ones that the grid uses.

Hope this helps.

Upgrade Gotcha: Media Objects

Print Friendly

I got a great reminder from a post today on Shannon’s JDE CNC Technical Blog titled “Media Objects Gotcha-upgrade / deployment server name”.

During an upgrade, switching deployment servers or changing the location of media objects, after moving all the files to the new location, you will need to change the internal pointers to the new location.  Run the following SQL on the F00165:

 UPDATE PRODDTA.F00165 SET GDGTFILENM = REPLACE(RTRIM(GDGTFILENM),
'<OLD_SERVER>','<NEW_SERVER>') 
WHERE GDGTFILENM LIKE '<OLD_SERVER>'

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

Print Friendly

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

Error Installing New Full Package: The selected package is not valid.

Print Friendly

While trying to install a new full package, I selected the package name but when I clicked “Next” I received the following error:

The selected package is not valid.  Please see log…
image

So, I checked the log and found that at the bottom of the log there several entries like the ones below:

INFO: 07/31/13 07:41:56.392 Validation of package in file \\WC-MR-VMDEPLOY\E910\package_inf\PD910B00.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_PY910A00

Now, the odd thing is that PY910A00 is the name of an old PY package and the package that I selected was PD910B00.  So, since it mentioned the package.inf file, I searched through it for PY910A00, the name of the old PY package.  I found that there was an entry for it under the [Oracle Databases] section:

SPEC_PY910A00=ORACLE

I deleted that entry and saved the package.inf file.  Clicked “OK” on the error.  Selected my desired package again.  Clicked “Next” and everything worked perfectly.

Where Did The UBE Logs Go On EnterpriseOne Tools Release 9.1?

Print Friendly

After installing a new instance of E1 9.1 with Tools Release 9.1.3.1, we found that the logs for UBEs that finished without error were not available.

Apparently for Oracle, “Save Empty Debug Log” = UBESaveLogFile.  The “Save Empty Debug Log” is what we see when looking at the configuration information in Server Manager and UBESaveLogFile is what is in the JDE.INI. 

I’m not sure how they think these 2 things are equal but enabling this setting makes the JDE.LOG available after running a UBE.

image

How To Change The Schema Of All Tables In A SQL Server Database

Print Friendly

Below is the SQL that can be used to change the database schema of all tables in an SQL Server Database.  We use it when restoring databases from Production to CRP or Development.

USE JDE_CRP_NEW  --TODO: Change this to DB Name

SET NOCOUNT ON
DECLARE @NewSchema nvarchar(256)
DECLARE @OldSchema nvarchar(256)

Set @NewSchema = 'CRPDTA';  --TODO: Change to New Schema 
Set @OldSchema = 'PRODDTA'; --TODO: Change to Old Schema 

--Don’t need to change anything below this
DECLARE @TableName nvarchar(256)
DECLARE TableName CURSOR FOR
SELECT  DISTINCT QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = @OldSchema

OPEN TableName

FETCH TableName INTO @TableName

WHILE @@Fetch_Status = 0

   BEGIN

   Print 'Modifying ' + @TableName 
   EXEC('ALTER SCHEMA ' + @NewSchema + ' TRANSFER ' + @TableName)

   FETCH TableName INTO @TableName
   END

CLOSE TableName

DEALLOCATE TableName

Finding The Row Count For All Files In An iSeries Library And All Tables In An SQL Server Database

Print Friendly

I’ve been moving several EnterpriseOne databases to SQL Server lately.  In order to do a quick check to make sure that all the data was transferred, I like to compare the number of rows on all the tables.  Below are the SQL queries that I use to get a row count on all tables in a database and all files in a library:

iSeries – SQL query to get a row count on all files in an iSeries library:

SELECT TABLE_SCHEMA, TABLE_NAME,NUMBER_ROWS 
FROM QSYS2.SYSTABLESTAT 
WHERE TABLE_SCHEMA = 'PRODDTA' 
AND NUMBER_ROWS > 0 
ORDER BY NUMBER_ROWS DESC, TABLE_NAME DESC 

SQL Server – SQL query to get a row count on all tables in an SQL Server database:

  
SELECT '[' + SCHEMA_NAME(t.schema_id) + '].[' + t.name + ']' AS fulltable_name,
SCHEMA_NAME(t.schema_id) AS schema_name, t.name AS table_name,i.rows 
FROM sys.tables AS t 
INNER JOIN sys.sysindexes AS i ON t.object_id = i.id 
AND i.indid < 2 
WHERE i.rows > 0
ORDER BY i.rows DESC, t.name DESC

NOTE: the iSeries SQL query is easiest to do from System i Navigator because you can easily copy the records into Excel.

Are there any methods that you use to do a quick data integrity check?

Add A JDE EnterpriseOne Environment To Every Role/Group

Print Friendly

You can use the below SQL to add an EnterpriseOne environment to every role or group in your installation:

INSERT INTO SY910/F0093 (LLUSER,LLLL,LLSEQ,LLMNI)
SELECT ULUSER, 'PD910','1.00','' FROM SY910/F0092