F Further Program Compiling Details when Setting up Extensibility

This appendix contains these topic:

F.1 Further Program Compiling Details when Setting up Extensibility

Additional program compiling details when setting up Extensibility

  1. Only RPG ILE or SQL RPG ILE programs can be extended and must be in the SVR. Ensure that the application program you want to extend is the correct type and is registered in the SVR. (P9801:F9801, F9802)

  2. Add any custom event definitions that the program needs. All JD Edwards events available for this version of extensibility are already defined. (2/G98X:P98X00:F98X00)

  3. Add the extensibility copy modules D98XBASE and C98XBASE. Plus at least one event copy module that you want the program to be extended with (ex: C00EVEXIT, C00EVSELC). Add all events you want in the program. You can add others later, but will have to do some of the remaining steps again from this point in the process.

  4. Run the xref for the program you are extending. Note: compiling via SVR also forces a xref build if needed.

  5. Define the fields to export for the program. These fields become available for mapping calls to other programs. You can add and change this later, however, you need to recompile for the changes to take effect and be available for mapping. (Defining fields occur in 5/G98X:P98X02:F98X02)

  6. Compile the program via SVR. This step forces a Cross Reference to generate if the source is different from the last build, then runs a pre-processor, which builds a subroutine (S999EV1 and S999EV2) in the source specific to the fields you have marked for exporting. If you have entered an incorrect field name directly (a future enhance may help eliminate errors which occur with the manual entry process), the compile fails and you need to go back to step 5 to modify the exported fields and re-compile.

    • Checks for compile override generation levels.

    • Retrieves any special printer library and add to the library list. A special printer library can be defined in the JD Edwards User Profile record, which places it into the users *LDA during run time and is used by certain processes like compiles and batch jobs. See DD item PRTL.

    • Checks for pre-compiler instructions in F98CRTCMD.

    • Loops through and execute every command, ignoring comments. The pre-compile instructions are basically CL commands in a source file. These are read by the CL program and executed via calls to QCMDEXC.

    • Retrieves the CASE profile for the user/environment specifically for target release of the compile.

      - Gets the target release for the compile.

    • Calls the extensibility pre-processor (J98X0000):

      - Runs the xref for the specified program if the source has changed since last build. If it is an extended program (identified by the extensibility copy modules noted in 3 above).

      - - Generates a JDECPY in library QTEMP with a member of C999EV1

      - - Fills the C999EV1 source with information specific to the events available (xref supplied) and fields to export (user-entered). To see this information you must look at the spool file from the compile (because the copy module is generated at compile time you cannot see this information in the source as it is not available, this is why you have to look at the spooled file), the source is generated and used during the compile only.

    • If SQL, uses the CRTSQLRPGI command.

    • If not SQL, uses the CRTBNDRPG command.

    • If a successful compile and it is for extensibility, it calls J98X0000 again:

      - Creates/Updates the exported events and fields for the program removing any that are no longer exported. F98X12 is updated at this time.

      - Retains overridden descriptions if they existed previously for both events and fields.

    • Depending on spool file options, deletes spool file on a compile.

    • Changes public authority to *ALL and owner to JDE.

    • If an unsuccessful compile, sends a message to the submitter.

  7. Create one or more mapping versions to be executed in an extension. (12/G98X:P98X11:F98X11)

  8. Create one or more extensions via P98X03 and reference the mapping version you want to execute for that extension. Currently you can only attach one mapping F98X11 version to an extension in F98X03.

  9. Attach the extensions to the desired events in the program in P98X01. If the event is not defined in P98X00, go back to step 2. If the event is not in the program, go back to step 3.

  10. If you want environment level conditioning, create a Named Condition and attach it to the Program Event Extension in P98X01.

Test the program to determine if the desired results are accomplished.

Note:

Recompiling is only necessary from this point if you add new event copy modules to the source or add/change the fields to export.