|
Ken you may find this hard to believe but we use almost the exact same library structure. The only difference I can see is that the template files for qtemp are not in the database library. We had problems with some people doing improper overrides and writing data to the template file. One of the data areas in our database library is called TESTENV and is either a 1 or a 0. This can be retrieved to alter processing for test purposes. For example one of our processes FTP's a file to an outside vendor. When the program reaches that point it checks the TESTENV to see if it should really send the file. Our CPYLIB procedure automatically forces TESTENV to 1 on a copy. This setup works very well. > > Here's my opinion ... > > Database libraries > Contain > Physical and logical files that contain data > Physical and logical files that do not contain data but are > template files for work files in QTEMP that will contain data > Data areas that contain changing data or configuration information > that is specific to a particular environment > Any other objects that are environment specific > Do not contain any source files > Program libraries > Contain > Programs and modules > Device files (display, printer, etc) > Physical files are used for externally described data structures > or OPNQRYF record formats > Data areas that contain configuration that is not specific to a > particular environment > Commands > Source files for the objects contained in the library, using > the standard IBM source file names > Source for the objects contained in the database libraries can > either be in one program library, split across program libraries > by application, or in a special library > > This structure makes it easy to have test environments. > The user portion of the library list for the production environment contains > QTEMP, the production database library, and all of the program libraries. > To make a test environment, just CPYLIB the production database library to a > test database library. Create another library for objects being tested. > The user portion of the library list is QTEMP, the changed objects test > library, the test database library, and all of the program libraries. > > For this to work, there should not be any hard-coded library names except > QTEMP. Each database library should contain a data area with its own name. > If a program needs the database library name for some reason, retrieve the > contents of the data area (which would have the same name in each database > library) and plug it in. > > Ken > Southern Wine and Spirits of Nevada, Inc. > Opinions expressed are my own and do not necessarily represent the views of > my employer or anyone else. > +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.