ChartField Auto Configuration Program
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.