Reviewing ChartField Configuration Programs and Processes

This topic discusses:

  • The ChartField configuration driver.

  • The ChartField manual configuration program.

  • The ChartField auto configuration program.

Both standard and advanced configuration use the PeopleSoft Auto Configuration and Manual Configuration programs. Two modes are available:

  • Full Configuration is initiated from the ChartField templates and applies all incomplete template actions to the entire database. This would normally be done when the system is first implemented or when new ChartField actions are made on the template.

  • Project Configuration is initiated from the CF Configuration by Project page and applies completed template actions to objects that are contained in the projects listed on the run control page. You would normally use project configuration when applying fixes.

Full Configuration uses the PeopleSoft Application Engine Program FS_CFCONFIG to call the Manual and Auto-Configuration programs. It also schedules the Configuration report. This driver enables both programs to run as one process.

A commit is taken after each step. In the event of a program abend, you should investigate the reason for the problem, correct it, and then restart the program. This enables the program to restart from the last step that was committed.

Two reasons exist for restarting the program:

Some of the configuration actions (for example, Add a new ChartField) are long-running because they update many database records. Restarting will cut down overall processing time.

The content of the Configuration report is determined by the Manual Configuration and is based on the outstanding actions. If you cancel the program that ended abnormally and start a new program instance, the reporting will show only the outstanding actions at the time the program was started. All actions that were successfully processed prior to the abend will no longer be listed.

The program is structured in the following way:

  • Initialization: This step determines whether the processing is for a Full Configuration or a Project Configuration. If a Project Configuration, the list of projects is held in a global array that is passed to both the manual and automatic configuration programs. It also determines the model and partially configurable ChartFields. These are loaded into strings that are used in later processing to determine the records that will need to be built (for example, create views and indexes and alter tables).

  • Calls the Manual Configuration program.

  • Calls the Automatic Configuration program.

  • Schedules the Configuration BI Publisher report (CFX001).

Manual Configuration uses an Application Engine program (FS_CFMANUAL) to create a report listing all the manual steps that you need to perform to complete the configuration process for both Standard and Advanced Configurations. The Manual Configuration program is always run prior to the Auto Configuration program.

The program enables you to run the configuration for all installed products or for a newly installed product, or you can run it for a specific project containing objects intended to be applied as a software fix.

Initiate the program through the Standard or Advanced Configuration pages by selecting the Preview Configuration Steps process if you want to initially just preview the manual steps needed. You can also choose the Run Full Configuration process if you want to proceed with database updates by calling the ChartField Auto Configuration program.

The program removes any actions that are not necessary because the ChartField might already be in the state specified by that action. This cuts down processing time and reduces the number of manual tasks reported on the Configuration report. Product Logs are then created for each combination of a noncompleted action and an installed product.

The program then looks at each of the Manual Configuration tasks and the Product Log and checks to determine whether the action or actions selected apply for that task. If they do, the task is listed including all the objects affected that need to be acted upon. The objects are grouped by product if it is product-specific with common objects to multiple products listed first. To determine the product that the object is used for, the program looks at the CF_xxx (where xxx is the product code) project for a list of exception objects as well as the FS_CF_ADD, FS_CF_DELETE and FS_CF_REORDER projects. These projects include objects that are not currently dynamic or sensitive to record changes. It also looks at the ChartField Related Program page for PS/nVision reports COBOL and SQR programs in the ChartField Related program are currently empty. It also looks at the Mass Change programs page.

The program also looks at the ChartField Definition page for non product-specific tasks such as ChartField validation records, definition pages, and reports and Query for the single ChartField.

The program changes the status of the ChartField actions and Product Log from N to P at completion.

Auto Configuration is an Application Engine program (FS_CFUPDATE) that automatically performs application metadata updates. These are the direct and related updates that are necessary for records and pages that are required to accommodate the additions or changes that you make on the ChartField Configuration pages.

Within the Application Engine process, the system uses built-in PeopleCode functions to update metadata and perform your specified configurations such as changing field labels, renaming tables, resizing grid field display, changing actual field size, and inserting or deleting fields in records and pages. This ensures that the caching of modified PeopleTools objects is correctly observed.

Full configuration will process ChartField Actions only that have a status of P. This status value indicates to the program that the prerequisite Manual Configuration program has been run. On completion of the process, the status is set to Complete (U for advanced actions and C for standard actions).

Project Configuration processes only completed ChartField actions (for example, status values U and C) and leaves their status unchanged at the end of the run.

For installations that use PeopleSoft Asset Management, this program also schedules the AMCFBULD SQR process. The SQR creates the AMCHARTS.SQC required by Asset Management.

The SQC contains the ChartField definitions, as specified on the template, that are used in Asset Management SQR processing.

The program is structured by ChartField configuration action. It uses a restartable Do/Select of each ChartField for the chosen action. In the event of program failure, this enables the program to be restarted in the middle of a Do/Select loop.

A database commit is performed after each step. The PeopleCode functions that are used to update the application metadata commit their changes on completion independent of the commit scheme specified for the Application Engine program.

In the event of a restart following a program failure, the same PeopleCode function can be called again to perform an update that it previously completed. This is not problematic because the PeopleCode functions used by the program have been developed to handle the scenario without throwing any further errors.

However, in the event of a program failure, you might see some of the metadata changes that have been made because of the PeopleCode commit policy. Therefore, the ChartField Configuration Process must continue to completion before you permit general access to the Application Designer and other PeopleTools that affect metadata.

The program is structured in the following way:

  • Initialization: In addition to setting some global variables used throughout the program, it also generates two sets of application designer projects, Bulk Operations Projects and Build Projects that facilitate the creation of database objects (Tables, Views, Indexes). If project configuration has been initiated, the bulk operation projects are generated from any records and pages contained in the projects on the run control page. If full configuration has been initiated, the system automatically determines the records and pages that will be affected by the chosen bulk operation. It does this by cross-referencing the records and pages that incorporate the model and partially configurable ChartFields. Due to some technical considerations, bulk operation APIs might not be able to automatically modify every record or page that is delivered by Oracle. A number of exclusion projects are reserved that identify these objects, such as:

    Note: Exclusion projects might not exist in your system. They are delivered only if the PeopleSoft software has specific pages that must be excluded for an action.

  • FS_CF_ADD - excludes objects that cannot be processed by BulkInsertField().

  • FS_CF_DELETE - excludes objects that cannot be processed by BulkDeleteField().

  • FS_CF_REORDER - excludes objects that cannot be processed by BulkModifyPageFieldOrder().

This step also builds the following Application Designer projects that facilitate database administration and must be performed before the system is ready for use. It does this by analyzing the ChartField actions that are going to be processed. The projects are:

  • FS_CF_ALTER_TABLE - tables containing ChartFields that must be altered. This contains records (parent records if the field is held in a subrecord) that include the model ChartField and deleted, renamed, and resized ChartFields.

  • FS_CF_CREATE_INDEX - tables containing ChartFields that require their indexes to be created. This contains records (parent records if the field is held in a subrecord) that include ChartFields that have been activated or inactivated.

  • FS_CF_CREATE_VIEW - views containing ChartFields that must be created. This contains records (parent records if the field is held in a subrecord) that include the model ChartField and deleted and renamed ChartFields. It also includes views affected by the intraunit related ChartField changes. Additional views that do not contain ChartFields but reference other views in their view text also need to be built but cannot easily be identified programmatically. They are defined in a PeopleSoft-delivered project called FS_CF_VIEW_EXCEPTIONS. The records in this project are also added to the view build project.

  • Activate/Inactivate - This step updates the contents of the ChartField inheritance and the bank ChartField inheritance application tables. If the ChartField is activated, records are added to these tables. Inactivating a ChartField removes corresponding data from these tables. The ChartField metadata properties are updated using the PeopleCode function SetDBFieldNotUsed(). This action applies only to full configuration.

  • Delete - This step deletes data from the ledger group ChartField, ChartField inheritance, and bank ChartField inheritance application tables. The ChartField is removed from all records and pages contained in the projects built during the initialization step using PeopleCode function BulkDeleteField(). The ChartField metadata properties are made inactive by the PeopleCode function SetDBFieldNotUsed(). The results of the bulk operation are reported in a file called BulkOps.Log

  • Add - This step adds data to the ledger group ChartField, ChartField inheritance, and bank ChartField inheritance application tables. If the field does not already exist, it creates a new field using the PeopleCode functions SetDBFieldCharDefn(), SetDBFieldAuxFlag, SetDBFieldFormatLength(), and SetDBFieldLabel(). The field is then added to all records and pages contained in the projects built during the initialization step using PeopleCode functions BulkInsertField() and SetRecFieldEditTable(). If the new field is an Intraunit ChartField, it will also put the prompt tables whose names were entered on the ChartField Template into the TableSet Record Group of the related ChartField. The prompt tables are added to the ChartField record listing that PeopleSoft maintains for internal processing purposes and also updates the dynamic edit prompt table. The results of the bulk operation are reported in a file called BulkOps.Log.

  • Relabel - This step updates the base and, if appropriate, the foreign language labels that were modified on the template. It uses PeopleCode function SetDBFieldLabel(). This action applies only to full configuration.

  • Resize - This step updates the field length for a ChartField using PeopleCode function SetDBFieldLength(). This action applies only to full configuration.

  • Reorder - This step changes the order and display size of the ChartFields on pages contained in the projects built during the initialization step. It uses PeopleCode function BulkModifyPageFieldOrder() to modify the order and display length of ChartFields contained in Grids. It also uses PeopleCode function SetDBFieldFormatLength() to change the display length of the ChartField when the field appears in a nongrid edit box. The results of the bulk operation are reported in a file called BulkOps.Log.

  • IntraUnit - This step moves the SetID records that are associated with the IntraUnit ChartField from the record group of the previous related ChartField into the record group of new related ChartField.

  • Rename - This step renames the field using the PeopleCode function RenameDBField(). It also modifies the page field name on all pages contained in the projects built during the initialization step using PeopleCode function SetPageFieldPageFieldName(). Rename will change all metadata referencing the old field name as well as application data that uses the field FIELDNAME in its record. Some ChartField names are held in application tables in records that do not use the field FIELDNAME. Additional processing in this step modifies the data in these application tables.

  • Product Log - This step updates the status on the Product Log files that are viewable through the Product Status page.

  • SQL - This step generates the common SQL objects used throughout PeopleSoft software that enable the software to dynamically react to your ChartField Configuration. It also schedules the AM SQR referred to previously.