User Defined Columns (UDC)#

Features of User Defined Columns#

ProCon
Workflow can access and update this dataModification of the table structure is not supported
Date Sensitive changes will carry forward the valuesRequires users to get out, and a restart of the application
Change Audit Logging is supportedPrecise setup is needed, or the system may have problems
Supported by Object Security and Form Object SecurityRequires access to the database
Translatable to other languages
Natively read by report generators like Discoverer
More performant (faster) than User Defined Fields
Note: UDC’s used in where clauses and find blocks, or as the 1st column of an LOV, can result in performance degradation. UDC’s are meant to contain supplemental information.

BEST PRACTICES for User Defined Columns#

  • Create the Column on IMCD with a number range in excess of 9000
  • Identify the column in the database with a name prefix that is unique to your organization (.e.g BEN_DUE_DATE rather than just DUE_DATE)
  • User Defined Columns are recommended over User Defined Fields if you are going to use them for any processing (where clauses, workflow, approvals, loading, etc.). If you are just storing data to be reported on, user defined fields may be sufficient to the task.
  • Lexicons that are associated to a User Defined Column must be prefixed with "X_" (.e.g X_CUST_VALUE rather than CUST_VALUE)
  • The name of the User Defined Column should not start with a number. Depending on its planned usage in the application, this will cause errors that are not apparent with initial or form setup and usage (usercalcs).

Steps to Set up a new User Defined Column#

The following steps need to be followed to add a new column.

A. In the Database #

In SQL*Plus as the P2K user:

  1. Set up the session audit information
    BEGIN
    P2K_PMSESSION.LOGIN('SQ','Modifying code in the database - put name here');
    DBMS_SESSION.SET_ROLE(p2k_pmsec.smsr(user));
    END;
    /
  2. Add the column to the database
    ALTER TABLE P2K_xx_xxxxxx ADD (COLUMN_NAME COLUMN_TYPE);
    • where xx_xxxxxx is the table name
    • where COLUMN_NAME is the new column name
    • where COLUMN_TYPE is the data type of the new column: DATE, NUMBER, NUMBER(10,4), VARCHAR2(30), etc.
      Sample:
      ALTER TABLE P2K_HR_ASSIGNMENT_DETAILS ADD (ANNIVERSARY_MONTH VARCHAR2(16));
    • Multiple columns can be added using this script before running and moving onto the next stage of processing.
  3. Recompile the database:
    @DB_RECOMPILE.sql
  4. Rebuild the workflow triggers:
    @SEED_CREATE_BIUD.sql
  5. Close the session
    BEGIN
    p2k_pmsession.logoff;
    END;
    /
You may now exit SQL*Plus

B. In Personality#

  1. Have all users sign out of system
  2. In IMCD form – add the new column with a column usage of “User Defined Column”. Ensure that Data Type, Domain Name and Length are all entered at a minimum. Review other columns for samples, as needed.
  3. Exit from the Personality system

C. Restart the application#

  1. On your Oracle Application server (OAS or WebLogic) restart the container for this application. If you have a separate HLAppResources instance in WebLogic, this must also be restarted
    • This is required because the column definitions are only loaded at start up.
  2. Sign in to the Personality system
  3. The new column is now available to be used in form definitions (IMFD) or workflow (IMUC) or for any other purpose

Notes#

Click to create a new notes page