4 Development Environment

This chapter contains these topics:

4.1 About a Development Environment

A development environment contains objects and data being tested and edited. It is different from your production environment because it should not contain any live data files.

4.1.1 Rules for Creating Development Environments

You should be aware of the following rules when you create development libraries:

  • Do not begin library names with Q, JDF, or JD Edwards World because of IBM standards and the upgrade process.

  • Create custom libraries for custom modifications.

  • Library names should be a maximum of 9 characters in length because of the upgrade process.

  • Do not use JDFDATA for your own test data or live data because of the upgrade process.

  • Do not include JDFDATA in a live user's library list.

To create a Development Environment complete the following tasks:

  • Create Libraries

  • Define Access for a User Profile using J98INITA

  • Define Access for a User Profile using J98INIT

  • Copy Data to Your Development Environment

4.2 JD Edwards World Libraries

The following libraries are delivered with JD Edwards World software:

  • Source Library (JDFSRC)

  • Object Library (JDFOBJ)

  • Data Library (JDFDATA)

  • Install Library (JDEINSTAL)

  • Plans Library (JDFINS)

  • Security Library (CLTSEC) (Optional)

Source Library (JDFSRC)

This is the library that contains source code. Within the JDFSRC library, JD Edwards World has three multi-member source files. The source files and their contents are described below.

The file JDESRC contains the following source code:

  • RPG Programs

  • Printer files

  • Display files

  • CL Programs

  • DDS for physical files

  • DDS for logical files

The file JDECPY contains the source code for copy members.

The file F98CRTCMD contains pre-compiler commands.

  • This is used to compile selected JD Edwards World programs.

Object Library (JDFOBJ) Libraries:source

The object library contains objects for your JD Edwards World software.

  • RPG programs

  • CL programs

  • Display files

  • Report files

Data Library (JDFDATA)

The data library contains data files for your JD Edwards World software (files in this library contain test data provided by JD Edwards World).

Install Library (JDEINSTAL)

The install library is used to install programs and software that upgrade JD Edwards World software.

Plans Library (JDFINS)

The library is used to plan how to upgrade JD Edwards World software.

Security Library (CLTSEC)

You can create a security library which is shared across all environments. The benefit of having a security library is that you enter a user profile only once to have access to any environment. The following files may exist in the security library:

  • User library list (F0092)

  • Library list control (F0093)

  • Library list master (F0094)

  • User Preference (F00921)

In addition, all logical files associated with the above files must also exist in the security library.

The World Technical Foundation manual states that a security library containing the F0092, F00921, F0093, F0094, and F0095 files can be used to minimize profile maintenance between JD Edwards World environments.

Note:

There are many different security scenarios. For that reason, there is little documentation on the security library concept. This is just a discussion of how to use the Security library concept and is NOT a recommendation.

A security library makes most sense when J98INITA is the Initial Program on the IBM user profile. IBM object security may be necessary in addition to the JD Edwards World security options to complete the user security requirements.

  1. The benefits of a security library are minimized if there is more than one. The maintenance and security tasks will have to be duplicated for each environment. If each environment has a different security scenario, a single security library should not be used. However, if separate security libraries are necessary, there will have to be a matching object library with the QJDF data area naming the security library in the User Profile Library field.

  2. If the environments are not all at the same release (A73, A81, etc), the sign-on programs, the menu program, and the control files will all have to be at the highest release level.

  3. If all the environments are at the same release level, other files besides the security files may be placed in the Security library for maintenance or control purposes (for example SVR, Function Key Security, Action code security). Any files in the Security library should apply to all environments and should not be found in any other user data library. The pristine JDFDATA library should still contain all the JD Edwards World files.

  4. On an Upgrade Plan, the Security library should be specified as SEC type. The file duplication issues of paragraph 3 above must be emphasized. The Control File Sets in the Control File Dependencies appendix of the PTF Install Workbook should be maintained.

4.3 Production and Development Examples

There are many ways to set up a production and development environment. The following are some examples.

4.3.1 Basic Production Environment

Library Description
QTEMP IBM Temporary data files
CLTOBJ Client's objects
JDFOBJ JD Edwards World objects
CLTCOM Client's common files
CLTDTA Client's data files
CLTSEC Client's security files
QGPL IBM general public library

4.3.2 Basic Development Environment

Library Explanation
QTEMP IBM Temporary data files
DEVOBJ Development objects
CLTOBJ Client's objects
JDFOBJ JD Edwards World objects
DEVCOM Development common files
DEVDTA Development data files
CLTSEC Client's security files
DEVSRC Development source files
CLTSRC Client's source files
JDFSRC JD Edwards World source files
QGPL IBM general public library

All modifications and tests are performed in the development environment with the program's object and source residing in DEVOBJ and DEVSRC. After you complete the testing, the program's object is moved from DEVOBJ to CLTOBJ and the source is moved from DEVSRC to CLTSRC. You must create a separate data and common library (DEVDTA and DEVCOM) to ensure that any data changes during testing in the development environment do not affect live data in the production environment.

4.3.3 No Source in Production Environment and a Common Shared Library

Library Explanation
QTEMP IBM Temporary data files
CLTOBJ Client's objects
JDFOBJ JD Edwards World objects
CLTCOM Client's common files
COMMON Common (shared) files
CLTDTA Client's data files
CLTSEC Client's security files
QGPL IBM general public library

4.3.4 Basic Development Environment with a Shared Common

Library Explanation
QTEMP IBM Temporary data files
DEVOBJ Development objects
CLTOBJ Client's objects
JDFOBJ JD Edwards World objects
DEVCOM Development common files
COMMON Common (shared) files
DEVDTA Development data files
CLTSEC Client's security files
DEVSRC Development source files
CLTSRC Client's source files
JDFSRC JD Edwards World source files
QGPL IBM general public library

No source libraries exist in the production environment because source code is not necessary to run JD Edwards World programs. This makes the production environment easier to maintain. The only restriction is that users in the production environment cannot view source code. Another difference is that a third shared common library (COMMON) has been added to the environments. This library contains common files whose data may be changed during the testing process. For example, F98HELP may not be changed but the Vocabulary Overrides, Data Dictionary, User Defined Codes or other Control Files may be changed. By having this type of common library not only are the environments easy to maintain, but you save considerable machine resources.

4.3.5 One Development Source and Object Library

Library Explanation
QTEMP IBM Temporary data files
CLTMOD Client's source and objects under modification
CLTOBJ Client's objects
JDFOBJ JD Edwards World objects
DEVCOM Development common files
COMMON Common unchanged files
DEVDTA Development data files
CLTSEC Client's security files
CLTSRC Client's source files
JDFSRC JD Edwards World source files
QGPL IBM general public library

DEVOBJ and DEVSRC have been combined into one library called CLTMOD. This library contains both source code and compiled objects for programs while they are being modified and tested. After testing, the program objects are copied to CLTOBJ and source code is moved to CLTSRC. The purpose of having one object and source code library like CLTMOD is to aid in change management and simplify the development library list by having one place where all modifications and testing take place.

4.4 Creating Libraries

Create the following libraries:

  • Common and data libraries

  • Development object library

  • Development source library

If you create a common library (DEVCOM), be sure to specify it each time you create another development environment. If you do not specify the common library each time, the files will be created in your development data library.

Your common library should contain control files holding data that is used in several environments that is not application data. These control files may be changed during the development process.

See Appendix A, "Common & Production Library Files"r a list of common and production files. Common files will be marked with a "Y" in the Common File field on the SVR screen. Files marked with an "N" in this field are Production files. If the data is to be copied from JDFDATA into either of these files, the SVR Copy Data Y/N field will be marked 'Y'.

4.4.1 Creating Common and Data Libraries

You will create the libraries that contain common data files (DEVCOM) and test data files (DEVDTA).

To create common and data libraries

Navigation

From Computer Operations (G96), choose Data Base Management

From Data Base Management (G9645), choose Data Libraries

On Create Production Environment

Figure 4-1 Create User Data Libraries screen

Description of Figure 4-1 follows
Description of "Figure 4-1 Create User Data Libraries screen"

  1. Complete the Create User Data Libraries form.

    • Once you correctly complete the form and press Enter, the job (J98102) is submitted to batch.

  2. Repeat the above step for each of the development data libraries you have.

    The program automatically:

    • Creates your libraries

    • Creates the physical and logical files that should be maintained in your common library

    • Creates the physical and logical files necessary for operations control in your development library

    • Creates the physical and logical files for various applications in your development library

    • Generates reports to identify all the physical, logical, and join files created and to identify where they were created

    • Generates a report to identify all the optional files. The report explains why the files are optional so that you can determine if they should be deleted.

4.4.2 Creating a Development Object Library

To create a development object library

Type the IBM command Create Library (CRTLIB) and press F4.

Figure 4-2 Create Library screen

Description of Figure 4-2 follows
Description of "Figure 4-2 Create Library screen"

Field Explanation
Library Your development object library name.
Library Type *PROD or *TEST
Text 'description' The description of your library

4.5 Creating a Development Source Library

To create the development source library (DEVSRC), you create a source environment and a source physical file. The source physical file is the Program Source File (JDESRC). All JD Edwards World source members are located in the JDESRC file.

There are two possible methods to create the JDESRC file. You must determine if you have the JD Edwards World Program Generator (CASE) and then choose the appropriate method.

To create a development source library

Type the IBM command Create Library (CRTLIB) and press F4.

Figure 4-3 Create Library screen

Description of Figure 4-3 follows
Description of "Figure 4-3 Create Library screen"

Field Explanation
Library Your development object library name.
Library Type *PROD or *TEST
Text 'description' The description of your library

4.5.1 Creating JDESRC for JD Edwards World Program Generator

When an RPGIII or RPGIV program is moved into production at JD Edwards World, the record length is 92 bytes. If you have J.D. Edward's Program Generator product, the program source file format must be 142 bytes to allow for the Program Generator Serial Number and additional required data.

To create JDESRC for JD Edwards World Program Generator

  1. To copy an existing file with the correct format (F93002), type the IBM Copy File command (CPYF) and press F4.

    Figure 4-4 Copy File screen

    Description of Figure 4-4 follows
    Description of "Figure 4-4 Copy File screen"

    Field Explanation
    From file The file and library containing the data to be copied. The file is F93002 and the library can default to *LIBL.
    To file The name of the source file and your development source library. Generally, the file is JDESRC and the library is DEVSRC.
    From member The member name that will be the beginning of the copy process. Generally, this value is *FIRST.
    To member or label The member name that will be the beginning of the receiving process. Generally, this value is *FIRST.
    Replace or add records Specifies whether the records copied should replace or be added to the records in the To file. In this case since the To file does not exist, this value is *NONE.
    Create file Specifies whether the To file does not exist and needs to be created. This value is *YES.
    Print format Specifies whether the characters are printed in character or character and hexadecimal format. This option only applies if the To file is *PRINT.

  2. To remove the empty member copied from JDESRC, type the IBM Remove Member command (RMVM) and press F4.

Figure 4-5 Remove Member screen

Description of Figure 4-5 follows
Description of "Figure 4-5 Remove Member screen"

Field Explanation
Database file Type the source file and your development source library that contains the record to be removed. Generally, this file is JDESRC and the library is DEVSRC.
Member Type the name of the member that is to be removed. This is F93002.

4.5.2 Creating JDESRC Without the Program Generator

If you do not have JD Edwards World World Program Generator product, the program source file format can remain at 92 bytes, as it is when a program is moved into production at JD Edwards World. To create the JDESRC file with a 92 byte record format, you can execute the IBM Create Source Physical File command (CRTSRCPF).

To create JDESRC without the Program Generator

Type the Create Source Physical File command (CRTSRCPF) and press F4.

Figure 4-6 Create Source Physical File screen

Description of Figure 4-6 follows
Description of "Figure 4-6 Create Source Physical File screen"

Field Explanation
File The source file and your development source library that contains the record to be removed. Generally, this file is JDESRC and the library is DEVSRC.
Record Length The number of bytes in the length of the records to be stored in the source file. This value is 92.
Member, if desired The member to be added to the source file. Generally, this member is left to *NONE.
Text Description The description of your source file.

4.6 About User Profiles

You must create profiles that allow users to have access to new environments.

There are two separate methods to define access to an environment. The method you choose depends upon whether the User Profile accesses JD Edwards World software using J98INITA or J98INIT.

4.7 Defining Access for a User Profile using J98INITA

Navigation

From Security Office (G94), choose Library List Control

From Library List Control (G944), choose Library List Revisions

If you are allowing access to your development environment for a user profile that is using J98INITA, you must define a development environment library list name. In addition, the User Signon List must contain the Development Environment Library List name.

To define access for a user profile using J98INITA

  1. On Library List Revisions define the libraries that comprise the list.

    Figure 4-7 Library List Revisions screen

    Description of Figure 4-7 follows
    Description of "Figure 4-7 Library List Revisions screen"

  2. To assign the library list to each user, select User Signon List Revisions from the Library List Control menu (G944).

Figure 4-8 User Signon List Revisions screen

Description of Figure 4-8 follows
Description of "Figure 4-8 User Signon List Revisions screen"

4.7.1 Defining Access for a User Profile Using J98INIT

If you are allowing access to your development environment for a user profile that is using J98INIT, you must define a new library list.

To define access for a User Profile using J98INIT

Select User Information from the Security Officer menu (G9401).

Figure 4-9 User Information screen

Description of Figure 4-9 follows
Description of "Figure 4-9 User Information screen"

Note:

Each user profile for the JD Edwards World software must have an IBM profile. To define an IBM profile, use the command, Create User Profile (CRTUSRPRF). When a JD Edwards World user profile is created or changed, the IBM JOBD is created or changed in the library specified in the Processing Option for J00JOBD. The default library is QGPL. If J98INITA is used as the initial program to execute, the JOBD is copied into QTEMP and modified.

4.8 Copy Data to Your Development Environment

You can use several methods to copy data to your development environment. The method you choose should depend upon how much data you need to copy to your development environment. You may copy the following:

  • Libraries

  • Files

  • Records

  • JD Edwards World Record Types

4.8.1 Copying a Library

If you need to duplicate several files into your development environment you can copy one or more libraries.

To copy a library

To display the parameters, type the IBM Copy Library command (CPYLIB) and press F4.

Figure 4-10 Copy Library screen

Description of Figure 4-10 follows
Description of "Figure 4-10 Copy Library screen"

Caution:

If you use CPYLIB, any files that are in use are not copied.
Field Explanation
Existing Library The library to be copied in your Production Environment.
New Library The new library that will be used in your Development Environment
Create Library Specifies whether the New Library does not exist and needs to be created.

4.8.2 Copying a File

Navigation

From Computer Operations (G96), choose Data Base Management

From Data Base Management (G9645), choose Data Files

If you need to copy specific files from a library in your production environment to a library in your development environment, you use the JD Edwards World copy file utility.

To copy a file

  1. On Data File Creation enter the following fields:

    • System Code

    • Create in Library

    • FROM Library

  2. Do the following:

    • Enter a 1 next to the files you wish to create from source.

    • Enter a 2 next to the files to be duplicated without data. This is mainly Logical files but could be a Physical file also. Logical files will only be created if the based-on physical file is in the destination library.

    • Enter a 3 next to the files to be duplicated with data. This applies only to Physical files.

  3. Each selection will be submitted to batch.

Figure 4-11 Copy Data Files screen

Description of Figure 4-11 follows
Description of "Figure 4-11 Copy Data Files screen"

Note:

When using this utility, be sure to copy all related files. All the physical files are listed first, followed by the logical files.

4.8.3 Copying a Record

If you wish to copy a file with only selected records, use the IBM Copy File command (CPYF).

To copy a record

  1. Type the Copy File command (CPYF) and press F4.

    Figure 4-12 Copy File screen

    Description of Figure 4-12 follows
    Description of "Figure 4-12 Copy File screen"

  2. Press F10 to display additional parameters.

    Field Explanation
    From file The file and library containing the data to be copied.
    To file The name of the file and your development library the data will be copied to.
    From member The member name that will be the beginning of the copy process.
    Replace or add records Specifies whether the records copied should replace or be added to the records in the To file.
    Create file Specifies whether the To file does not exist and needs to be created.
    Print format Specifies whether the characters are printed in character or character and hexadecimal format. This option only applies if the To file is *PRINT.
    Copy from record number Specifies the record number from which to start the copy.

  3. Page down and enter the record number of the record to which you wish to copy.

    The Copy to record number is the field in which you specify the record number of the last record to be copied.

Figure 4-13 Copy File screen

Description of Figure 4-13 follows
Description of "Figure 4-13 Copy File screen"

Field Explanation
Copy to Record Number Specifies the record number of the last record to be copied.
Copy from Record Key Only applies when copying a file with keyed fields.

4.8.4 Copying JD Edwards World Control Records

You can copy any of the following control records:

  • Vocabulary Overrides

  • Data Dictionary

  • Software Inventory Revisions

  • User Defined Code

  • DREAM Writer

  • Menu

  • Generic Rate/Msg

To copy a JD Edwards World record type

Navigation

From Computer Assisted Programming (CAP ) (G93), choose Developer's Workbench

From Developer's Workbench(G9362), choose Copy DD,VO,DW,UDC,SVR,Menus

On Copy DD,VO,DW,UDC,SVR,Menus.

Figure 4-14 DD, VO, DW, UDC, SVR, Menus screen

Description of Figure 4-14 follows
Description of "Figure 4-14 DD, VO, DW, UDC, SVR, Menus screen"

Field Explanation
From Library The library containing the data to be copied.
To Library The library in your Development Environment to receive the data.
Dictionary Item The RPG data name. This data field has been set up as a 10-byte field for future use. Currently, it is restricted to 4 bytes so that, when preceded by a 2-byte file prefix, the RPG data name does not exceed 6 bytes.

Within the Data Dictionary, all data items are referenced by this 4-byte data name. As they are used in database tables, a 2-character prefix is added to create unique data names in each table specification (DDS). Special characters are not allowed as part of the data item name, with the exception of #, @, $.

You can create protected data names by using $xxx and @xxx, where you define xxx.

Messages can contain up to 10 characters. Types of messages are further defined by glossary group.

Vocabulary Overrides The name of the screen or report record to be copied. All records for soft coding will be copied.
DREAM Writer Form The name of the DREAM Writer Form ID to be copied. All versions of the specified form will be copied.
User Def Codes Sys The system code and type of the table to be copied. All values for the specified table will be copied.
Software Versions Rep The record of the Software Versions Repository member to be copied.
Menu Identification The menu ID and the display language of the record to be copied.

Note:

You can enter and copy only one item at a time. If the item exists in the To Library, it is replaced.