How the System Builds an Update Server/Client Package

This is an overview of how the JD Edwards EnterpriseOne system builds an update server and client package. The beginning of each step states whether the process occurs on the client from where the build is performed or on the Enterprise Server.

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

  2. Client: The system creates the package build directories.

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

  4. Enterprise Server: Creates the directories on the Primary Enterprise Server.

  5. Enterprise Server: The system builds a link list of objects in the update package from the F96225 table. If F00942T-> emdbsrcflg = 0 or blank, then it builds the list of business functions, NER, and Table ER in a file called "bsfnfile.txt". A list of bitmaps are listed in a file called "bitmapfile.txt". Both files are transferred from the <package name>\work directory to the Deployment Server.

  6. Client: If F00942T-> emdbsrcflg = blank or 0 then the system opens the "bsfnfile.txt" for the list of .c and .h files to transfer from the deployment server check-in location to the Primary Enterprise Server directories, checkin\source (.c files) and checkin\include (.h files). This is done to preserve a snapshot of the .c and .h files at the time of the build.

  7. Client: If F00942T-> emdbsrcflg=blank or 0, then system opens the "bitmapfile.txt".for the list of bitmaps to transfer from the res directory check in location on the deployment server to the Primary Enterprise Server checkin\res directory.

  8. Enterprise Server: If F00942T->emdbsrcflg=1, then the system opens the link list of Objects and if the F9860->sigtffu1, it retrieves the par file from the F98780R and puts them in the checkin\include, checkin\include64, checkin\source, checkin\source64 and checkin\res directories.

  9. (Release 9.2.7.3) Enterprise Server: For each object, 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 exists in the checkin location.
  10. (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, a .h file exists in the checkin location and for an APPL, a bitmap exists.
  11. (Release 9.2.7.3) Enterprise Server: If the validation failed and the Repair Repository flag was 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.
  12. (Release 9.2.7.3) Enterprise Server: For each UBE, BSVW, and APPL which does not have F9860->sigffu1=1, the system inserts a record into the F96225 table as a REPAIR record. The client checks if there is a file associated with it and repairs it.
  13. (Release 9.2.7.3) Client: If the Repair Repository flag is set, the system selects F96225 where package name, pathcode, primary server, operation=”11”, and status = ERROR.

    For each record retrieved from the F98780R table, the system evaluates what is wrong or missing and recreates the par file. The system then inserts the record back in the F98780R and F98780H tables.

  14. (Release 9.2.7.3) Enterprise Server: If the Repair Repository flag is set, then the system selects F96225 records where package name, pathcode, primary server, operation=”11”, and status = ERROR. The system then retrieves and validates each record from the F98780R table if there is a .h or/and .c file or a bitmap. If the validation is successful, the system sets the F96225 record to status=SUCCESS.

  15. Enterprise Server: On the Primary Enterprise Server, if the objects in the update package contain NER, on the Primary Enterprise Server, the package build checks if there is a difference between data dict 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 the package build 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. The locks are then released.

  16. Enterprise Server: The system generates named event rules (NERs) on the Primary Enterprise Server. The generated files are created either in the checkin\source and checkin\include directories or checkin\source64 and checkin\include64 directories depending on the bitness.

  17. Enterprise Server: The Primary Enterprise Server copies server only .c and .h files to the source and include directories respectively. If there are more than one server, then the Primary Enterprise Server transfers the .c and .h files to the other Enterprise Servers under the source and include directories.

    (Starting with Tools Release 9.2.4.0) If 64-bit is enabled in Release Master, only the include64 and source64 artifacts are copied into the checkin location (Release 9.2.4).

  18. Enterprise Server: Copies the parent dlls from the parent package to the update package. This dll is used in the compile of the business functions for the update package. If there are multiple servers, the Primary Enterprise Server sends a message to the other servers to start the build of business functions.

  19. (Starting with Tools Release 9.2.6.0) IBMi: Opens the F9603 to get the unique library of the parent package from phpkgdeffut3. It copies SVRPGM to the update package library, and compiles the business functions and links with the library location of the parent package.
  20. Enterprise Server: The Primary Enterprise Server builds specs from Central Objects, placing the results in the package's spec tables, <table name>_<package name> (for example, F98710_DV920FA) in the database. The 17 tables are created and the records for the objects are inserted into the new tables. The Manifest table is created with the name of the package and all the objects in the update package.

  21. Enterprise Server: The Primary Enterprise Server creates the tables F989999 and F989998 in the Central objects location with the name F989999_<package name> and F989998_ <package name>.
  22. Enterprise Server: If the client package was also selected, the Primary Enterprise Server transfers the files from the checkin\source, checkin\include, checkin\source64 and checkin\include64 to the deployment server package include, source, include64 and source64 directories.

  23. Enterprise Server: If client package was selected, the Primary Enterprise Server transfers back res bitmaps from the checkin\res to the Deployment Server in the <package name>\res directory.

  24. Enterprise Server: The system waits for specs to finish and for dlls to finish building. If there were other servers, it will wait for them to complete.

  25. Enterprise Server: When the dlls and specs are finished building, if the compression was selected for the server, then the system compresses the .dll, .so, .sl, and .SRVPGM files on the Enterprise Servers.

  26. Enterprise Server: The Primary Enterprise Server transfers the compressed files and the compress.inf file back to the Deployment Server under the <packagename>/<machine type> directory.

  27. Enterprise Server: The Primary Enterprise Server transfers the server log (svrpkgbuild.log) from each server to the Deployment Server under <packagename>\serverLogs directory.

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

    (Starting with Tools Release 9.2.4.0) If 64-bit is enabled in Release Master, only the include64 and source64 artifacts are copied to the client and the res files to the Deployment Server.

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

  30. 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.

  31. If this is a server only package, the process is complete. However, if you have selected to build a client, the system also performs the next steps.

  32. Client: The Client Package UBE R9622C initiates the client package build.

  33. Client: The system creates the package inf file.

  34. Client: The system compiles the .c and .h files using Busbuild. Busbuild copies the dll from the parent package to build the update business functions into the parent package dll.

  35. Client (Starting with Tools Release 9.2.5.0): No specs are built. For each object a .par file is created under the spec\"package name" directory.

    Client (Prior to Tools Release 9.2.5.0): The system builds the specs from the package's spec tables <table name>_<package name> (for example, F98710_DV920FA) into TAM files located under the spec directory.

  36. Client: The system waits for the business functions to compile and the spec build to complete.

  37. Client: The system copies the generated NER .c and .h files back to the check-in location.

  38. Client (optional): The system compresses the directories on the Deployment Server. This is only necessary if building an ESU. The client install process does not use the compressed update package files.