How the System Builds a Full Server and Client Package

This is an overview of how the JD Edwards Enterprise One system builds a full server and client package. The beginning of each step states whether the process occurs on the client machine or on the Enterprise Server.

Note: Any references to 64-bit apply to Tools Release 9.2.3 and higher.
  1. Client: Server Package UBE (R9621S) initiates the server package build.

  2. Client: The system creates the package build directories on the deployment machine.

  3. Client: The system checks the F00942T->emdbsrcflg value for 1. If value is 0 or blank, the objects have not been inserted into the F98780R table. If value is 1, then the objects have been inserted.

  4. Client: The system checks the F00942T-emenvfu2 value for 1. If the value is 0 or blank, then the include and source files in the F98780R/R98780H have not been converted to 64-bit. If the value is 1, then the include and source files have been converted to include64 and source64 and uploaded into the F98780R/R98780H tables

  5. Client: This is only done once. If F00942T -> emdbsrcflg value is 0 or blank and the F00942T-> emenvfu2 value is 0 or blank, then the system sets F00942T -> emdbsrcflg=2 for processing. It does a fetch from F9860 for all objects that are not system code 88. It checks if there is a file associated with the object on the deployment server pathcode. If there are files then it creates a par file for the object and insert the record with the par file into the F98780R/F98780H. If the foundation selected for the package was 32-bit, then for business functions and tables, the par file will only include source and include files. It sets the object record in the F9860->sigtffu =1 to indicate there are files for this object. When the process is complete, it sets the F00942T->embdsrcflg=1 for completion. It leaves the F00942T-> emenvfu2 as 0 or blank since this indicates that the conversion of the include and source into 64-bit files was not done.

  6. Client: This is only done once. If F00942T -> emdbsrcflg value is 0 or blank and the F00942T-> emenvfu2 value is 0 or blank, then the system sets F00942T -> emdbsrcflg=2 for processing. It does a fetch from F9860 for all objects that are not system code 88. It checks if there is a file associated with the object on the deployment server pathcode. If there are files then it creates a par file for the object and inserts the record with the par file into the F98780R/F98780H. If the foundation selected for the package was 64-bit, then for business functions and tables, it converts the include and source into 64-bit files into a temporary include64 and source64 directory. It creates the par file with all four directories and inserts the record into the F98780R/F98780H . It sets the object record in the F9860->sigtffu =1 to indicate there are files for this object. When the process is complete, it sets the F00942T->embdsrcflg=1 for completion. It also sets the F00942T-> emenvfu2 =1, which indicates the conversion of the include and source into 64-bit files was done.

  7. Client: This is only done once. If F00942T -> emdbsrcflg value is 1, the F00942T-> emenvfu2 value is 0 or blank, and the foundation selected for the package was 64-bit, then it sets F00942T -> emenvfu2 =2 for processing. It does a fetch from F9860 for all objects that have F9860-> sigtffu=1 and that are not APPL, GT or DSTR, and not system code 88. For each fetch, it retrieves the par file from the F98780R, expands the par file, converts the include and source files to 64-bit and places them in temporary include64 and source64 directories. It creates the par file with all four directories and inserts it into the repository. When complete, it sets the F00942T-> emenvfu2 =1 to indicate the files have been converted to 64-bit.

  8. Client: The system initiates the connection with the Primary Enterprise Server.

  9. Enterprise Server: Creates the directories on the Primary Enterprise Server and builds the list of objects from the F96225 table.

  10. Enterprise Server: If client populated the F98780R/F98780H, then the system checks the 'Live' specs F98710 <package name> for the object names F98780R, F98780H, and F00942T. If these specs are not there, then it get the specs from the Central Objects path code and insert them into the 'Live' specs tables, F98710, F98711, F98712 and F98713.

  11. Enterprise Server: If F00942T -> emdbsrcflg= 1, open the F9860 and get all objects where a F9860->sigtffu1=1 and F9860->sy != 88 and not a Named Event Rule (NER) or a Business Service (SBF) object. Open the F98780R and retrieve each object which will put the files into Primary Enterprise Server directories, checkin\source (.c files), checkin\source64 (.c files), checkin\include(.h files) , checkin\include64(.h files) and the bitmaps into the checkin\res directory.

  12. (Release 9.2.7.3) Enterprise Server: The system validates each BSFN and TBLE if there is a record in the F98780R table, the record has a par file, and the .h and/or .c file exist in the checkin location.
  13. (Release 9.2.7.3) Enterprise Server: The system validates each UBE, BSVW, and APPL with F9860->sigtffu1=1 if there is a record in the F98780R table, the record has a par file and for a UBE and BSVW, if the .h file exists in the checkin location and for an APPL, if a bitmap exists.
  14. (Release 9.2.7.3) Enterprise Server: If the validation fails and the Repair Repository flag is set, then the system inserts a record into the F96225 table with package name, pathcode, primary server name, object name, version = “REPAIR”, operation = “11”, and date and time.
  15. (Release 9.2.7.3) Enterprise Server: The system checks if any BSFN or TBLE does not have F9860->sigtffu1=1 and is checked in. If found, the system inserts a record into the F96225 table with package name, pathcode, primary server name, object name, version = “REPAIR” and option = “11”, and date and time.
  16. Client: It compresses the res directory from the check-in location of the deployment server. Transfers the res.cab to the Primary Enterprise Server under the checkin\res folder.

  17. (Release 9.2.7.3) Client: If the Repair Repository flag is set then the system selects F96225 records where package name, pathcode, primary server, operation=”11”, and status = ERROR.

    For each record, the system attempts to get the record from the F98780R table, evaluate what is missing. If the record is not in the F98780R table, the system recreates the par file and inserts the record into the F98780R and F98780H tables.

  18. (Release 9.2.7.3) Enterprise Server: If the Repair Repository flag is set then the system selects the F96225 records where package name, pathcode, primary server, operation=”11”, and status = ERROR. The system then retreives and validates each record in the F98780R table if there is a .h or/and .c file. If successful, then the system sets the F96225 record to status=SUCCESS.
  19. Enterprise Server: If there are other servers, the Primary Enterprise Server will contact each Enterprise Server to start the build process.

  20. Enterprise Server: On the Primary Enterprise Server, the package build checks if there is a difference between data dictionary items in the database compared to what is in ddict/ddtext. The difference fields are the type and length. If there are any differences, then it locks all processes to prevent any UBE to run and waits for all UBEs to finish. It does not affect users on the Web. When the locks are obtained, ddict/ddtext/glbtb are deleted in the path code spec directory.

  21. Enterprise Server: The Named event rules (NERs) are generated into the checkin\source and checkin\include directories if the system on the Enterprise Server is 32-bit. If the system on the Enterprise Server is 64-bit then it will generated the files into the checkin\source64 and checkin\include64 on the Primary Enterprise Server

  22. Enterprise Server: Moves server-only .c and .h files (if 32-bit system moves the checkin include and source, if 64-bit system moves the include64 and source64) to the source and include directories respectively on the Primary Enterprise Server. If there is more than one server, then the Primary Enterprise Server moves the .c and .h files from the source and include directories to the other Enterprise Servers under the source and include directories.

  23. Enterprise Server: Compiles business functions on the Primary Enterprise Server to generate .dll, .so, .sl, or .SRVPGM files. If there are multiple servers, the Primary Enterprise Server sends a message to the other servers to start the build of business functions.

  24. Enterprise Server: IBM i (Starting with Tools Release 9.2.6.0) A new unique library is created in which you can create the SVRPGM, MODULES and FILES. This unique library, is created with the first 2 letters and the last 2 letters of the package, and the job number. For example, if the package is DV920FA, then the unique library is created as "DVFA000340". This name is stored in the F9603 file in phpkgdeffut3.

  25. Enterprise Server: Builds specs on the Primary Enterprise Server from Central Objects, placing the results in the package's spec tables, <table name>_<package name> (for example, F98710_DV920FA) in the database. There are 17 tables that are copied from one location to the other. Also the manifest table is created which holds the name of the package.

  26. Enterprise Server: If the client package was also selected, the Primary Enterprise Server transfers the files from the checkin\source, checkin\source64, checkin\include, checkin\include64 and checkin\res to the deployment server package include, source, include64, source64 and res directories.

  27. Enterprise Server: If client package was selected, it transfers the res.cab from the checkin\res to the package directory. The client then uncompresses it into the <package name>\res directory.

  28. Client: Send message to Primary Server to get status.

  29. Enterprise Server: Checks the status of the other servers to see if BSFNs are complete. Checks its own status to see if BSFNs are complete.

  30. Enterprise Server: When the dll and specs are finished, if the compress feature for server is enabled, it compresses the .dll, .so, .sl, and .SRVPGM files on the Primary Enterprise Servers. The Primary Enterprise Server sends a message to all other servers to compress

  31. Enterprise Server: Transfers the compressed files and the compress.inf file back to the deployment server under the <packagename>/<machine type> directory.

  32. (Starting with Tools Release 9.2.6.0) UNIX/Windows: Under the deploy location, creates the package name under the bin64 and specs folders in these paths, respectively: <pathcode>\bin64\<package name> and <pathcode>\spec\<package name>.

  33. Starting with Tools Release 9.2.6.0) IBMi: Creates a new library with the package name.

  34. Starting with Tools Release 9.2.6.0) IBMi: Copies from the unique library the SVRPGM, MODULES and FILES to the package name library.

  35. (Starting with Tools Release 9.2.6.0) UNIX/Windows: Copies the package bin64 directory to the <pathcode>\bin64\<package name> directory.

  36. (Starting with Tools Release 9.2.6.0) Under <pathcode>\spec\<package name>, creates the spec.ini file with the database datasource location for Central Objects.
  37. Enterprise Server: Check the jde.ini for entry

    [PACKAGE MANIFEST]			CreateJAR=Y
    

    (Release 9.2.7.0) and/or check the F96215->PKGBULFUT3 = "Y" which is set when you select Compress Application Component in the compress options tab.

    If this entry is in jde.ini or F96215 with 'Y', then create a E1_APP_xxxx.jar file under the package name directory on the Enterprise Server. This jar file contains the bin64 directory and the spec.ini populated with the package name. The jar file is used by the Server Manager to create a new Enterprise Server Instance.

  38. Enterprise Server: Transfers the server log (svrpkgbuild.log) from each server to the deployment server under <packagename>\serverLogs directory.

  39. Enterprise Server: Transfers the files located under the text directory on the each Enterprise Server to the Deployment Server under <packagename>\serverlogs\<server name>\text.

  40. Enterprise Server: Transfers the files located under the CompileLogs directory on the each Enterprise Server to the deployment server under <packagename>\serverlogs\<server name>\CompileLog.

  41. Enterprise Server: Transfers the files located under the GenerateNER_logs directory on the Primary Enterprise Server to the deployment server under <packagename>\serverlogs\GenerateNER_logs.

  42. If this is a server only package, the process is complete. However, if client was selected, the system performs the next steps.

  43. Client: Runs Client Package UBE R9622C to initiate the client package build.

  44. Client: Creates the package inf file.

  45. Client: Compiles the .c and .h files using Busbuild.

  46. Client (Starting with Tools Release 9.2.5.0): Creates the spec.ini file that contains the package name and the Central Objects data source. The spec.ini file points to specs of the package tables in the Central Objects data source. The local spec database is no longer created.

    Client (Prior to Tools Release 9.2.5.0): Builds the specs from the package's spec tables <table name>_<package name> (for example, F98710_DV920FA) in the database and puts them into the package's local spec database.

  47. Client: If F00942T-> emdbsrcflg= 1 or 3 then get all the SBF files from the F98780R repository table. If the field was blank or 0 then copy the files from <pathcode>\sbf directory. Build the BSSV - Business Services.

  48. Client: Waits for the compile of the business functions, building of the specs, and the building of the BSSV to complete.

  49. Client: Copies the generated NER .c and .h files back to the check in location.

  50. Client: Compresses the directories on the Deployment Server if compression was selected.

  51. Client and Server package is complete. The User can deploy the Server package.