Skip to main content
Skip table of contents

Custom Validation

Basics

The feature allows the Admin to define customized Validation routines on any table. These routines can be executed before Saving or Deleting records on any table. The validation routines can also target specific records in the table the validation is assigned to.

Custom Validations Grid

This Grid will allow Users to add Custom Validation routines to Save and Delete actions on the application data.

  • Description: A description field to provide an identifying name for this validation routine.

  • Table Name: The Database table name to which this validation is be applied.

  • Table Record: The specific RECID number that should be validated. Leave this blank to apply the validation to all records.

  • Action: Save or Delete options specifying the table action that should be validated.

CAUTION: When creating Custom Validations, it is better to have a handful of large Custom Logic than it is to have numerous amounts of short Custom Logics defined for your Organizations Custom Validations. This is because as the number of Custome Validations that trigger on the same form increases, application performance begins to suffer, and can eventually start risking application timeouts. It is also important to ensure the same Custom Logic is not running multiple times on the same records as this also will reduce application performance if a large number of records undergo this same change at once, such as the case with any Validations that might trigger from a Service Desk Action. The performance issue originates from the delay in starting a new validation after one executes. When this delay occurs multiple times during the execution of an extended task, such as completing a large number of Service Desk Actions, this can push the process to take too long and trigger application timeouts.

Logic tab

Example of Custom Validation Form

Example of Custom Validation Form

The Logic tab is where the Custom Logic can be written and reviewed. A User can quickly review the code written for the specific event with the image-20240820-165134.png button. Users will be limited to the white-listed functions for PHP and some PCR-360 specific functions. A list of the functions can be seen in PCR-360 by clicking on the image-20240820-165141.png button.

Debug tab

Debug Tab Example

Debug Tab Example

The Debug tab shows the results of debug function calls. This debug information is cleared after 24 hours. The Debug tab can be used to monitor data using the Custom Logic.

Prerequisites

This feature is intended for Administrators and an understanding of PHP language and syntax is Required. You must also be aware of language compatibility for the version of PHP installed on the webserver. For validation that requires querying other data, an understanding of SQL is necessary, particularly variants specific to your database platform.

Usage

In a typical validation routine, some Boolean condition is tested, and FALSE is returned if it fails. Returning false at any time during the routine will stop the routine processing and cause the validation to fail, preventing the Save or Delete. Before the return, an error message should be set to provide feedback to the Users.

Scope

Validators are written and executed within a subset of PHP syntax, and at run time they have scope access to three arrays of data $data, $params, and $user. For security purposes, only a subset of PHP functions has been whitelisted.

$data

A key/value paired array of data that is being sent to the database.

'Save:' The array contains the actual data that is being saved to the database. There will be a key/value pair for every column that is being passed to the SQL insert or update command, keys matching the actual table column names. The array will always contain a RECID index. For updates, this will be an integer value. For inserts, it will be the string “addNew”.

In this example, the "RECID" index in the $data array is used to determine if this Save is adding a new record.

PHP
if($data["RECID"] == "addNew"){

'Delete:' The array is a listing of integer RECIDs for all the records that will be deleted from the table. It is an array of arrays the inner level being key/value pairs corresponding to column names and database values for the records that will be deleted.

$params

A key/value paired array of parameters that were passed to the Save or Delete functions. This parameter array will be different from form to form and Grid to Grid. Since the validation happens on the table level, it is not good to rely on this data unless the use-case depends on only validating interactions from a specific source.

In this example, an "isCompletion" index in the $params array from the Service Desk Action form is used to determine if this save is completing the Service Order Action. Since we cannot rely on these indexes always being present, we use the isset() check to look for the existence before checking the value.

PHP
if(isset($params["isCompletion"]) && $params["isCompletion"] === true){

$user

A key/value paired array of User information about the currently logged in User. The example below shows options that are available in this array.

PHP
$user = [
     'isSysAdmin' => TRUE
     'isCoordinator' => FALSE
     'isCustomerCenterOnly' => FALSE
     'attributes' => [
		'USERS_RECID' => 494,
		'USERID': "demo",
        'CONTACTS_RECID' => 1
        'NAME' => 'Pcr Demo'
        'FIRST_NAME' => 'Pcr'
        'LAST_NAME' => 'Demo'
        'DEPT_HIERARCHY_RECID' => NULL
        'TENANTS_RECID' => 0
        'EMAIL' => 'demo@pcr.com'
    ],
    'permittedGlas' => [
        '29',
        '30',
        '31'
    ]
]


$backtrace

This is a development/debugging tool that shows the stack-trace of a call. The allows the Custom Logic to programmatically determine the source of the call.

$backtrace Example
PHP
$backtrace = [
    {
        "file": "\/var\/www\/pcr360\/prod\/application\/modules\/core\/traits\/CustomLogic.php",
        "line": 155,
        "function": "debugBacktrace",
        "class": "PCR_Validate_Custom",
        "object": {
            "zfBreakChainOnFailure": null
        },
        "type": "-",
        "args": []
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/library\/PCR\/Validate\/Custom.php(177) : eval()'d code",
        "line": 6,
        "function": "callCustomEvent",
        "class": "PCR_Validate_Custom",
        "object": {
            "zfBreakChainOnFailure": null
        },
        "type": "-",
        "args": [
            "prod-Event-9323",
            {
                "RECID": "26425",
                "TENANTS_RECID": "0",
                "MODIFIED_DATE": "09\/16\/2024 11:12:35",
                "MODIFIED_BY": "Rob Alber",
                "BILL": "1",
                "LEDGER": "1",
                "STATUS": "1",
                "SPEED_CODE": null,
                "DESCRIPTION": "INFORMATICS & COMPUTING BLDG",
                "FORMAT": "ADMIN",
                "REVENUE": "0",
                "EXPENSE": "1",
                "TAXABLE": "0",
                "STATUS_DATE": null,
                "called_by_custom_identifier": "PCR_Validate_Custom:",
                "custom_identifier": "prod-Event-9323",
                "checkStatus": true
            }
        ]
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/library\/PCR\/Validate\/Custom.php",
        "line": 177,
        "function": "eval"
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/library\/PCR\/Db\/Table\/Abstract.php",
        "line": 492,
        "function": "isValid",
        "class": "PCR_Validate_Custom",
        "object": {
            "zfBreakChainOnFailure": null
        },
        "type": "-",
        "args": [
            {
                "data": {
                    "RECID": "26425",
                    "TENANTS_RECID": "0",
                    "MODIFIED_DATE": "09\/16\/2024 11:12:35",
                    "MODIFIED_BY": "Rob Alber",
                    "BILL": "1",
                    "LEDGER": "1",
                    "STATUS": "1",
                    "SPEED_CODE": null,
                    "DESCRIPTION": "INFORMATICS & COMPUTING BLDG",
                    "FORMAT": "ADMIN",
                    "REVENUE": "0",
                    "EXPENSE": "1",
                    "TAXABLE": "0",
                    "STATUS_DATE": null
                },
                "params": {
                    "status": "1",
                    "gla_item_1": "BL9021293",
                    "format": "ADMIN",
                    "speed_code": null,
                    "description": "INFORMATICS & COMPUTING BLDG",
                    "revenue": "0",
                    "expense": "1",
                    "bill": "1",
                    "ledger": "1",
                    "taxable": "0",
                    "modified_by": "Rob Alber",
                    "modified_date": "09\/16\/2024 11:12:35",
                    "identifier": "7694d6c806c9cd0f663f",
                    "RECID": "26425",
                    "TEMP_RECID": "-1061586351",
                    "WRITE_TENANT_NAME": null,
                    "TENANTS_RECID": "0",
                    "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                    "charge_grid": {
                        "value": [],
                        "identifier": "aad55c204dfcd56d1fc8",
                        "total-records": 0
                    },
                    "contacts_grid": {
                        "value": [],
                        "identifier": "34054bf5c3137d1ddfae",
                        "total-records": 0
                    },
                    "address_grid": {
                        "value": [],
                        "identifier": "1da7f0741344c107ac8b",
                        "total-records": 0
                    },
                    "activity_grid": {
                        "value": [],
                        "identifier": "f9bd1d769f8b0894f88d",
                        "total-records": 0
                    },
                    "billing_grid": {
                        "value": [],
                        "identifier": "348828996c8dbeec0223",
                        "total-records": 0
                    },
                    "attach_grid": {
                        "value": [],
                        "identifier": "95fc40066bbde5151117",
                        "total-records": 0
                    },
                    "udf": {
                        "61": {
                            "VALUE": "2018-12-01 00:00:00",
                            "DATATYPE": "DATETIME"
                        },
                        "202": {
                            "VALUE": null,
                            "DATATYPE": "VARCHAR"
                        },
                        "245": {
                            "VALUE": null,
                            "DATATYPE": "VARCHAR"
                        },
                        "261": {
                            "VALUE": "OIT2308428",
                            "DATATYPE": "VARCHAR"
                        },
                        "62": {
                            "VALUE": "738",
                            "DATATYPE": "INTEGER"
                        },
                        "63": {
                            "VALUE": "45",
                            "DATATYPE": "VARCHAR"
                        },
                        "64": {
                            "VALUE": "BL",
                            "DATATYPE": "VARCHAR"
                        },
                        "65": {
                            "VALUE": "1269",
                            "DATATYPE": "INTEGER",
                            "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                        },
                        "66": {
                            "VALUE": "2012-09-27 00:00:00",
                            "DATATYPE": "DATETIME"
                        },
                        "67": {
                            "VALUE": null,
                            "DATATYPE": "DATETIME"
                        },
                        "68": {
                            "VALUE": null,
                            "DATATYPE": "INTEGER",
                            "udf-68-VALUE_display": null
                        }
                    },
                    "form-action": "save",
                    "components": [
                        "BL9021293"
                    ]
                },
                "user": {
                    "isSysAdmin": true,
                    "isCoordinator": false,
                    "isCustomerCenterOnly": false,
                    "attributes": {
                        "USERS_RECID": "494",
                        "USERID": "prod",
                        "CONTACTS_RECID": "101464",
                        "NAME": "Robert Alber",
                        "FIRST_NAME": "Robert",
                        "LAST_NAME": "Alber",
                        "DEPT_HIERARCHY_RECID": null,
                        "TENANTS_RECID": "0",
                        "EMAIL": "prod42@mailinator.com"
                    }
                },
                "backtrace": [
                    {
                        "file": "\/var\/www\/pcr360\/prod\/library\/PCR\/Db\/Table\/Abstract.php",
                        "line": 1594,
                        "function": "validate",
                        "class": "PCR_Db_Table_Abstract",
                        "object": {
                            "udfvModelName": "Application_Model_Gla_Udfv"
                        },
                        "type": "-",
                        "args": [
                            {
                                "RECID": "26425",
                                "TENANTS_RECID": "0",
                                "MODIFIED_DATE": "09\/16\/2024 11:12:35",
                                "MODIFIED_BY": "Rob Alber",
                                "BILL": "1",
                                "LEDGER": "1",
                                "STATUS": "1",
                                "SPEED_CODE": null,
                                "DESCRIPTION": "INFORMATICS & COMPUTING BLDG",
                                "FORMAT": "ADMIN",
                                "REVENUE": "0",
                                "EXPENSE": "1",
                                "TAXABLE": "0",
                                "STATUS_DATE": null
                            },
                            {
                                "status": "1",
                                "gla_item_1": "BL9021293",
                                "format": "ADMIN",
                                "speed_code": null,
                                "description": "INFORMATICS & COMPUTING BLDG",
                                "revenue": "0",
                                "expense": "1",
                                "bill": "1",
                                "ledger": "1",
                                "taxable": "0",
                                "modified_by": "Rob Alber",
                                "modified_date": "09\/16\/2024 11:12:35",
                                "identifier": "7694d6c806c9cd0f663f",
                                "RECID": "26425",
                                "TEMP_RECID": "-1061586351",
                                "WRITE_TENANT_NAME": null,
                                "TENANTS_RECID": "0",
                                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                                "charge_grid": {
                                    "value": [],
                                    "identifier": "aad55c204dfcd56d1fc8",
                                    "total-records": 0
                                },
                                "contacts_grid": {
                                    "value": [],
                                    "identifier": "34054bf5c3137d1ddfae",
                                    "total-records": 0
                                },
                                "address_grid": {
                                    "value": [],
                                    "identifier": "1da7f0741344c107ac8b",
                                    "total-records": 0
                                },
                                "activity_grid": {
                                    "value": [],
                                    "identifier": "f9bd1d769f8b0894f88d",
                                    "total-records": 0
                                },
                                "billing_grid": {
                                    "value": [],
                                    "identifier": "348828996c8dbeec0223",
                                    "total-records": 0
                                },
                                "attach_grid": {
                                    "value": [],
                                    "identifier": "95fc40066bbde5151117",
                                    "total-records": 0
                                },
                                "udf": {
                                    "61": {
                                        "VALUE": "2018-12-01 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "202": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "245": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "261": {
                                        "VALUE": "OIT2308428",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "62": {
                                        "VALUE": "738",
                                        "DATATYPE": "INTEGER"
                                    },
                                    "63": {
                                        "VALUE": "45",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "64": {
                                        "VALUE": "BL",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "65": {
                                        "VALUE": "1269",
                                        "DATATYPE": "INTEGER",
                                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                                    },
                                    "66": {
                                        "VALUE": "2012-09-27 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "67": {
                                        "VALUE": null,
                                        "DATATYPE": "DATETIME"
                                    },
                                    "68": {
                                        "VALUE": null,
                                        "DATATYPE": "INTEGER",
                                        "udf-68-VALUE_display": null
                                    }
                                },
                                "form-action": "save",
                                "components": [
                                    "BL9021293"
                                ]
                            },
                            "SAVE",
                            "26425"
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/application\/models\/Gla\/Gla.php",
                        "line": 314,
                        "function": "save",
                        "class": "PCR_Db_Table_Abstract",
                        "object": {
                            "udfvModelName": "Application_Model_Gla_Udfv"
                        },
                        "type": "-",
                        "args": [
                            {
                                "status": "1",
                                "gla_item_1": "BL9021293",
                                "format": "ADMIN",
                                "speed_code": null,
                                "description": "INFORMATICS & COMPUTING BLDG",
                                "revenue": "0",
                                "expense": "1",
                                "bill": "1",
                                "ledger": "1",
                                "taxable": "0",
                                "modified_by": "Rob Alber",
                                "modified_date": "09\/16\/2024 11:12:35",
                                "identifier": "7694d6c806c9cd0f663f",
                                "RECID": "26425",
                                "TEMP_RECID": "-1061586351",
                                "WRITE_TENANT_NAME": null,
                                "TENANTS_RECID": "0",
                                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                                "charge_grid": {
                                    "value": [],
                                    "identifier": "aad55c204dfcd56d1fc8",
                                    "total-records": 0
                                },
                                "contacts_grid": {
                                    "value": [],
                                    "identifier": "34054bf5c3137d1ddfae",
                                    "total-records": 0
                                },
                                "address_grid": {
                                    "value": [],
                                    "identifier": "1da7f0741344c107ac8b",
                                    "total-records": 0
                                },
                                "activity_grid": {
                                    "value": [],
                                    "identifier": "f9bd1d769f8b0894f88d",
                                    "total-records": 0
                                },
                                "billing_grid": {
                                    "value": [],
                                    "identifier": "348828996c8dbeec0223",
                                    "total-records": 0
                                },
                                "attach_grid": {
                                    "value": [],
                                    "identifier": "95fc40066bbde5151117",
                                    "total-records": 0
                                },
                                "udf": {
                                    "61": {
                                        "VALUE": "2018-12-01 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "202": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "245": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "261": {
                                        "VALUE": "OIT2308428",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "62": {
                                        "VALUE": "738",
                                        "DATATYPE": "INTEGER"
                                    },
                                    "63": {
                                        "VALUE": "45",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "64": {
                                        "VALUE": "BL",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "65": {
                                        "VALUE": "1269",
                                        "DATATYPE": "INTEGER",
                                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                                    },
                                    "66": {
                                        "VALUE": "2012-09-27 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "67": {
                                        "VALUE": null,
                                        "DATATYPE": "DATETIME"
                                    },
                                    "68": {
                                        "VALUE": null,
                                        "DATATYPE": "INTEGER",
                                        "udf-68-VALUE_display": null
                                    }
                                },
                                "form-action": "save",
                                "components": [
                                    "BL9021293"
                                ]
                            },
                            {
                                "GLA": {
                                    "status": "STATUS",
                                    "format": "FORMAT",
                                    "speed_code": "SPEED_CODE",
                                    "description": "DESCRIPTION",
                                    "revenue": "REVENUE",
                                    "expense": "EXPENSE",
                                    "bill": "BILL",
                                    "ledger": "LEDGER",
                                    "taxable": "TAXABLE",
                                    "modified_by": "MODIFIED_BY",
                                    "modified_date": "MODIFIED_DATE",
                                    "TENANTS_RECID": "TENANTS_RECID"
                                },
                                "GLA_GLA_COMPONENTS": {
                                    "gla_item_1": "GLA_COMPONENTS_RECID"
                                },
                                "RECID": "RECID"
                            },
                            []
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/application\/models\/Gla\/Gla.php",
                        "line": 369,
                        "function": "save",
                        "class": "Application_Model_Gla_Gla",
                        "object": {
                            "udfvModelName": "Application_Model_Gla_Udfv"
                        },
                        "type": "-",
                        "args": [
                            {
                                "status": "1",
                                "gla_item_1": "BL9021293",
                                "format": "ADMIN",
                                "speed_code": null,
                                "description": "INFORMATICS & COMPUTING BLDG",
                                "revenue": "0",
                                "expense": "1",
                                "bill": "1",
                                "ledger": "1",
                                "taxable": "0",
                                "modified_by": "Rob Alber",
                                "modified_date": "09\/16\/2024 11:12:35",
                                "identifier": "7694d6c806c9cd0f663f",
                                "RECID": "26425",
                                "TEMP_RECID": "-1061586351",
                                "WRITE_TENANT_NAME": null,
                                "TENANTS_RECID": "0",
                                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                                "charge_grid": {
                                    "value": [],
                                    "identifier": "aad55c204dfcd56d1fc8",
                                    "total-records": 0
                                },
                                "contacts_grid": {
                                    "value": [],
                                    "identifier": "34054bf5c3137d1ddfae",
                                    "total-records": 0
                                },
                                "address_grid": {
                                    "value": [],
                                    "identifier": "1da7f0741344c107ac8b",
                                    "total-records": 0
                                },
                                "activity_grid": {
                                    "value": [],
                                    "identifier": "f9bd1d769f8b0894f88d",
                                    "total-records": 0
                                },
                                "billing_grid": {
                                    "value": [],
                                    "identifier": "348828996c8dbeec0223",
                                    "total-records": 0
                                },
                                "attach_grid": {
                                    "value": [],
                                    "identifier": "95fc40066bbde5151117",
                                    "total-records": 0
                                },
                                "udf": {
                                    "61": {
                                        "VALUE": "2018-12-01 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "202": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "245": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "261": {
                                        "VALUE": "OIT2308428",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "62": {
                                        "VALUE": "738",
                                        "DATATYPE": "INTEGER"
                                    },
                                    "63": {
                                        "VALUE": "45",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "64": {
                                        "VALUE": "BL",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "65": {
                                        "VALUE": "1269",
                                        "DATATYPE": "INTEGER",
                                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                                    },
                                    "66": {
                                        "VALUE": "2012-09-27 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "67": {
                                        "VALUE": null,
                                        "DATATYPE": "DATETIME"
                                    },
                                    "68": {
                                        "VALUE": null,
                                        "DATATYPE": "INTEGER",
                                        "udf-68-VALUE_display": null
                                    }
                                },
                                "form-action": "save",
                                "components": [
                                    "BL9021293"
                                ]
                            },
                            {
                                "GLA": {
                                    "status": "STATUS",
                                    "format": "FORMAT",
                                    "speed_code": "SPEED_CODE",
                                    "description": "DESCRIPTION",
                                    "revenue": "REVENUE",
                                    "expense": "EXPENSE",
                                    "bill": "BILL",
                                    "ledger": "LEDGER",
                                    "taxable": "TAXABLE",
                                    "modified_by": "MODIFIED_BY",
                                    "modified_date": "MODIFIED_DATE",
                                    "TENANTS_RECID": "TENANTS_RECID"
                                },
                                "GLA_GLA_COMPONENTS": {
                                    "gla_item_1": "GLA_COMPONENTS_RECID"
                                },
                                "RECID": "RECID"
                            },
                            []
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/application\/forms\/Gla\/Gla.php",
                        "line": 426,
                        "function": "saveWithComponents",
                        "class": "Application_Model_Gla_Gla",
                        "object": {
                            "udfvModelName": "Application_Model_Gla_Udfv"
                        },
                        "type": "-",
                        "args": [
                            {
                                "status": "1",
                                "gla_item_1": "BL9021293",
                                "format": "ADMIN",
                                "speed_code": null,
                                "description": "INFORMATICS & COMPUTING BLDG",
                                "status_date": null,
                                "revenue": "0",
                                "expense": "1",
                                "bill": "1",
                                "ledger": "1",
                                "taxable": "0",
                                "modified_by": "Rob Alber",
                                "modified_date": "09\/16\/2024 11:12:35",
                                "identifier": "7694d6c806c9cd0f663f",
                                "RECID": "26425",
                                "TEMP_RECID": "-1061586351",
                                "WRITE_TENANT_NAME": null,
                                "TENANTS_RECID": "0",
                                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                                "charge_grid": {
                                    "value": [],
                                    "identifier": "aad55c204dfcd56d1fc8",
                                    "total-records": 0
                                },
                                "contacts_grid": {
                                    "value": [],
                                    "identifier": "34054bf5c3137d1ddfae",
                                    "total-records": 0
                                },
                                "address_grid": {
                                    "value": [],
                                    "identifier": "1da7f0741344c107ac8b",
                                    "total-records": 0
                                },
                                "activity_grid": {
                                    "value": [],
                                    "identifier": "f9bd1d769f8b0894f88d",
                                    "total-records": 0
                                },
                                "billing_grid": {
                                    "value": [],
                                    "identifier": "348828996c8dbeec0223",
                                    "total-records": 0
                                },
                                "attach_grid": {
                                    "value": [],
                                    "identifier": "95fc40066bbde5151117",
                                    "total-records": 0
                                },
                                "udf": {
                                    "61": {
                                        "VALUE": "2018-12-01 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "202": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "245": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "261": {
                                        "VALUE": "OIT2308428",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "62": {
                                        "VALUE": "738",
                                        "DATATYPE": "INTEGER"
                                    },
                                    "63": {
                                        "VALUE": "45",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "64": {
                                        "VALUE": "BL",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "65": {
                                        "VALUE": "1269",
                                        "DATATYPE": "INTEGER",
                                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                                    },
                                    "66": {
                                        "VALUE": "2012-09-27 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "67": {
                                        "VALUE": null,
                                        "DATATYPE": "DATETIME"
                                    },
                                    "68": {
                                        "VALUE": null,
                                        "DATATYPE": "INTEGER",
                                        "udf-68-VALUE_display": null
                                    }
                                },
                                "form-action": "save",
                                "components": [
                                    "BL9021293"
                                ]
                            },
                            {
                                "GLA": {
                                    "status": "STATUS",
                                    "format": "FORMAT",
                                    "speed_code": "SPEED_CODE",
                                    "description": "DESCRIPTION",
                                    "status_date": "STATUS_DATE",
                                    "revenue": "REVENUE",
                                    "expense": "EXPENSE",
                                    "bill": "BILL",
                                    "ledger": "LEDGER",
                                    "taxable": "TAXABLE",
                                    "modified_by": "MODIFIED_BY",
                                    "modified_date": "MODIFIED_DATE",
                                    "TENANTS_RECID": "TENANTS_RECID"
                                },
                                "GLA_GLA_COMPONENTS": {
                                    "gla_item_1": "GLA_COMPONENTS_RECID"
                                },
                                "RECID": "RECID"
                            },
                            [],
                            [
                                "BL9021293"
                            ],
                            null
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/application\/modules\/core\/controllers\/FormController.php",
                        "line": 194,
                        "function": "save",
                        "class": "Application_Form_Gla_Gla",
                        "object": {},
                        "type": "-",
                        "args": [
                            {
                                "status": "1",
                                "gla_item_1": "BL9021293",
                                "format": "ADMIN",
                                "speed_code": null,
                                "description": "INFORMATICS & COMPUTING BLDG",
                                "status_date": null,
                                "revenue": "0",
                                "expense": "1",
                                "bill": "1",
                                "ledger": "1",
                                "taxable": "0",
                                "modified_by": "Rob Alber",
                                "modified_date": "09\/16\/2024 11:12:35",
                                "identifier": "7694d6c806c9cd0f663f",
                                "RECID": "26425",
                                "TEMP_RECID": "-1061586351",
                                "WRITE_TENANT_NAME": null,
                                "TENANTS_RECID": "0",
                                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                                "charge_grid": {
                                    "value": [],
                                    "identifier": "aad55c204dfcd56d1fc8",
                                    "total-records": 0
                                },
                                "contacts_grid": {
                                    "value": [],
                                    "identifier": "34054bf5c3137d1ddfae",
                                    "total-records": 0
                                },
                                "address_grid": {
                                    "value": [],
                                    "identifier": "1da7f0741344c107ac8b",
                                    "total-records": 0
                                },
                                "activity_grid": {
                                    "value": [],
                                    "identifier": "f9bd1d769f8b0894f88d",
                                    "total-records": 0
                                },
                                "billing_grid": {
                                    "value": [],
                                    "identifier": "348828996c8dbeec0223",
                                    "total-records": 0
                                },
                                "attach_grid": {
                                    "value": [],
                                    "identifier": "95fc40066bbde5151117",
                                    "total-records": 0
                                },
                                "udf": {
                                    "61": {
                                        "VALUE": "2018-12-01 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "202": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "245": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "261": {
                                        "VALUE": "OIT2308428",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "62": {
                                        "VALUE": "738",
                                        "DATATYPE": "INTEGER"
                                    },
                                    "63": {
                                        "VALUE": "45",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "64": {
                                        "VALUE": "BL",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "65": {
                                        "VALUE": "1269",
                                        "DATATYPE": "INTEGER",
                                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                                    },
                                    "66": {
                                        "VALUE": "2012-09-27 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "67": {
                                        "VALUE": null,
                                        "DATATYPE": "DATETIME"
                                    },
                                    "68": {
                                        "VALUE": null,
                                        "DATATYPE": "INTEGER",
                                        "udf-68-VALUE_display": null
                                    }
                                },
                                "form-action": "save"
                            },
                            {
                                "GLA": {
                                    "status": "STATUS",
                                    "format": "FORMAT",
                                    "speed_code": "SPEED_CODE",
                                    "description": "DESCRIPTION",
                                    "status_date": "STATUS_DATE",
                                    "revenue": "REVENUE",
                                    "expense": "EXPENSE",
                                    "bill": "BILL",
                                    "ledger": "LEDGER",
                                    "taxable": "TAXABLE",
                                    "modified_by": "MODIFIED_BY",
                                    "modified_date": "MODIFIED_DATE",
                                    "TENANTS_RECID": "TENANTS_RECID"
                                },
                                "GLA_GLA_COMPONENTS": {
                                    "gla_item_1": "GLA_COMPONENTS_RECID"
                                },
                                "RECID": "RECID"
                            }
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Controller\/Action.php",
                        "line": 522,
                        "function": "formEventAction",
                        "class": "Core_FormController",
                        "object": {
                            "viewSuffix": "phtml",
                            "view": {
                                "form": null,
                                "grid": null,
                                "layoutData": null,
                                "requestParams": null
                            },
                            "contexts": null
                        },
                        "type": "-",
                        "args": []
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Controller\/Dispatcher\/Standard.php",
                        "line": 308,
                        "function": "dispatch",
                        "class": "Zend_Controller_Action",
                        "object": {
                            "viewSuffix": "phtml",
                            "view": {
                                "form": null,
                                "grid": null,
                                "layoutData": null,
                                "requestParams": null
                            },
                            "contexts": null
                        },
                        "type": "-",
                        "args": [
                            "formEventAction"
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Controller\/Front.php",
                        "line": 954,
                        "function": "dispatch",
                        "class": "Zend_Controller_Dispatcher_Standard",
                        "object": {},
                        "type": "-",
                        "args": [
                            {},
                            {
                                "headersSentThrowsException": true
                            }
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Application\/Bootstrap\/Bootstrap.php",
                        "line": 106,
                        "function": "dispatch",
                        "class": "Zend_Controller_Front",
                        "object": {},
                        "type": "-",
                        "args": []
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Application.php",
                        "line": 400,
                        "function": "run",
                        "class": "Zend_Application_Bootstrap_Bootstrap",
                        "object": {
                            "frontController": {}
                        },
                        "type": "-",
                        "args": []
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/public\/index.php",
                        "line": 99,
                        "function": "run",
                        "class": "Zend_Application",
                        "object": {},
                        "type": "-",
                        "args": []
                    }
                ],
                "eval": false
            },
            false
        ]
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/library\/PCR\/Db\/Table\/Abstract.php",
        "line": 1594,
        "function": "validate",
        "class": "PCR_Db_Table_Abstract",
        "object": {
            "udfvModelName": "Application_Model_Gla_Udfv"
        },
        "type": "-",
        "args": [
            {
                "data": {
                    "RECID": "26425",
                    "TENANTS_RECID": "0",
                    "MODIFIED_DATE": "09\/16\/2024 11:12:35",
                    "MODIFIED_BY": "Rob Alber",
                    "BILL": "1",
                    "LEDGER": "1",
                    "STATUS": "1",
                    "SPEED_CODE": null,
                    "DESCRIPTION": "INFORMATICS & COMPUTING BLDG",
                    "FORMAT": "ADMIN",
                    "REVENUE": "0",
                    "EXPENSE": "1",
                    "TAXABLE": "0",
                    "STATUS_DATE": null
                },
                "params": {
                    "status": "1",
                    "gla_item_1": "BL9021293",
                    "format": "ADMIN",
                    "speed_code": null,
                    "description": "INFORMATICS & COMPUTING BLDG",
                    "revenue": "0",
                    "expense": "1",
                    "bill": "1",
                    "ledger": "1",
                    "taxable": "0",
                    "modified_by": "Rob Alber",
                    "modified_date": "09\/16\/2024 11:12:35",
                    "identifier": "7694d6c806c9cd0f663f",
                    "RECID": "26425",
                    "TEMP_RECID": "-1061586351",
                    "WRITE_TENANT_NAME": null,
                    "TENANTS_RECID": "0",
                    "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                    "charge_grid": {
                        "value": [],
                        "identifier": "aad55c204dfcd56d1fc8",
                        "total-records": 0
                    },
                    "contacts_grid": {
                        "value": [],
                        "identifier": "34054bf5c3137d1ddfae",
                        "total-records": 0
                    },
                    "address_grid": {
                        "value": [],
                        "identifier": "1da7f0741344c107ac8b",
                        "total-records": 0
                    },
                    "activity_grid": {
                        "value": [],
                        "identifier": "f9bd1d769f8b0894f88d",
                        "total-records": 0
                    },
                    "billing_grid": {
                        "value": [],
                        "identifier": "348828996c8dbeec0223",
                        "total-records": 0
                    },
                    "attach_grid": {
                        "value": [],
                        "identifier": "95fc40066bbde5151117",
                        "total-records": 0
                    },
                    "udf": {
                        "61": {
                            "VALUE": "2018-12-01 00:00:00",
                            "DATATYPE": "DATETIME"
                        },
                        "202": {
                            "VALUE": null,
                            "DATATYPE": "VARCHAR"
                        },
                        "245": {
                            "VALUE": null,
                            "DATATYPE": "VARCHAR"
                        },
                        "261": {
                            "VALUE": "OIT2308428",
                            "DATATYPE": "VARCHAR"
                        },
                        "62": {
                            "VALUE": "738",
                            "DATATYPE": "INTEGER"
                        },
                        "63": {
                            "VALUE": "45",
                            "DATATYPE": "VARCHAR"
                        },
                        "64": {
                            "VALUE": "BL",
                            "DATATYPE": "VARCHAR"
                        },
                        "65": {
                            "VALUE": "1269",
                            "DATATYPE": "INTEGER",
                            "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                        },
                        "66": {
                            "VALUE": "2012-09-27 00:00:00",
                            "DATATYPE": "DATETIME"
                        },
                        "67": {
                            "VALUE": null,
                            "DATATYPE": "DATETIME"
                        },
                        "68": {
                            "VALUE": null,
                            "DATATYPE": "INTEGER",
                            "udf-68-VALUE_display": null
                        }
                    },
                    "form-action": "save",
                    "components": [
                        "BL9021293"
                    ]
                },
                "user": {
                    "isSysAdmin": true,
                    "isCoordinator": false,
                    "isCustomerCenterOnly": false,
                    "attributes": {
                        "USERS_RECID": "494",
                        "USERID": "prod",
                        "CONTACTS_RECID": "101464",
                        "NAME": "Robert Alber",
                        "FIRST_NAME": "Robert",
                        "LAST_NAME": "Alber",
                        "DEPT_HIERARCHY_RECID": null,
                        "TENANTS_RECID": "0",
                        "EMAIL": "prod42@mailinator.com"
                    }
                },
                "backtrace": [
                    {
                        "file": "\/var\/www\/pcr360\/prod\/library\/PCR\/Db\/Table\/Abstract.php",
                        "line": 1594,
                        "function": "validate",
                        "class": "PCR_Db_Table_Abstract",
                        "object": {
                            "udfvModelName": "Application_Model_Gla_Udfv"
                        },
                        "type": "-",
                        "args": [
                            {
                                "RECID": "26425",
                                "TENANTS_RECID": "0",
                                "MODIFIED_DATE": "09\/16\/2024 11:12:35",
                                "MODIFIED_BY": "Rob Alber",
                                "BILL": "1",
                                "LEDGER": "1",
                                "STATUS": "1",
                                "SPEED_CODE": null,
                                "DESCRIPTION": "INFORMATICS & COMPUTING BLDG",
                                "FORMAT": "ADMIN",
                                "REVENUE": "0",
                                "EXPENSE": "1",
                                "TAXABLE": "0",
                                "STATUS_DATE": null
                            },
                            {
                                "status": "1",
                                "gla_item_1": "BL9021293",
                                "format": "ADMIN",
                                "speed_code": null,
                                "description": "INFORMATICS & COMPUTING BLDG",
                                "revenue": "0",
                                "expense": "1",
                                "bill": "1",
                                "ledger": "1",
                                "taxable": "0",
                                "modified_by": "Rob Alber",
                                "modified_date": "09\/16\/2024 11:12:35",
                                "identifier": "7694d6c806c9cd0f663f",
                                "RECID": "26425",
                                "TEMP_RECID": "-1061586351",
                                "WRITE_TENANT_NAME": null,
                                "TENANTS_RECID": "0",
                                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                                "charge_grid": {
                                    "value": [],
                                    "identifier": "aad55c204dfcd56d1fc8",
                                    "total-records": 0
                                },
                                "contacts_grid": {
                                    "value": [],
                                    "identifier": "34054bf5c3137d1ddfae",
                                    "total-records": 0
                                },
                                "address_grid": {
                                    "value": [],
                                    "identifier": "1da7f0741344c107ac8b",
                                    "total-records": 0
                                },
                                "activity_grid": {
                                    "value": [],
                                    "identifier": "f9bd1d769f8b0894f88d",
                                    "total-records": 0
                                },
                                "billing_grid": {
                                    "value": [],
                                    "identifier": "348828996c8dbeec0223",
                                    "total-records": 0
                                },
                                "attach_grid": {
                                    "value": [],
                                    "identifier": "95fc40066bbde5151117",
                                    "total-records": 0
                                },
                                "udf": {
                                    "61": {
                                        "VALUE": "2018-12-01 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "202": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "245": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "261": {
                                        "VALUE": "OIT2308428",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "62": {
                                        "VALUE": "738",
                                        "DATATYPE": "INTEGER"
                                    },
                                    "63": {
                                        "VALUE": "45",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "64": {
                                        "VALUE": "BL",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "65": {
                                        "VALUE": "1269",
                                        "DATATYPE": "INTEGER",
                                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                                    },
                                    "66": {
                                        "VALUE": "2012-09-27 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "67": {
                                        "VALUE": null,
                                        "DATATYPE": "DATETIME"
                                    },
                                    "68": {
                                        "VALUE": null,
                                        "DATATYPE": "INTEGER",
                                        "udf-68-VALUE_display": null
                                    }
                                },
                                "form-action": "save",
                                "components": [
                                    "BL9021293"
                                ]
                            },
                            "SAVE",
                            "26425"
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/application\/models\/Gla\/Gla.php",
                        "line": 314,
                        "function": "save",
                        "class": "PCR_Db_Table_Abstract",
                        "object": {
                            "udfvModelName": "Application_Model_Gla_Udfv"
                        },
                        "type": "-",
                        "args": [
                            {
                                "status": "1",
                                "gla_item_1": "BL9021293",
                                "format": "ADMIN",
                                "speed_code": null,
                                "description": "INFORMATICS & COMPUTING BLDG",
                                "revenue": "0",
                                "expense": "1",
                                "bill": "1",
                                "ledger": "1",
                                "taxable": "0",
                                "modified_by": "Rob Alber",
                                "modified_date": "09\/16\/2024 11:12:35",
                                "identifier": "7694d6c806c9cd0f663f",
                                "RECID": "26425",
                                "TEMP_RECID": "-1061586351",
                                "WRITE_TENANT_NAME": null,
                                "TENANTS_RECID": "0",
                                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                                "charge_grid": {
                                    "value": [],
                                    "identifier": "aad55c204dfcd56d1fc8",
                                    "total-records": 0
                                },
                                "contacts_grid": {
                                    "value": [],
                                    "identifier": "34054bf5c3137d1ddfae",
                                    "total-records": 0
                                },
                                "address_grid": {
                                    "value": [],
                                    "identifier": "1da7f0741344c107ac8b",
                                    "total-records": 0
                                },
                                "activity_grid": {
                                    "value": [],
                                    "identifier": "f9bd1d769f8b0894f88d",
                                    "total-records": 0
                                },
                                "billing_grid": {
                                    "value": [],
                                    "identifier": "348828996c8dbeec0223",
                                    "total-records": 0
                                },
                                "attach_grid": {
                                    "value": [],
                                    "identifier": "95fc40066bbde5151117",
                                    "total-records": 0
                                },
                                "udf": {
                                    "61": {
                                        "VALUE": "2018-12-01 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "202": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "245": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "261": {
                                        "VALUE": "OIT2308428",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "62": {
                                        "VALUE": "738",
                                        "DATATYPE": "INTEGER"
                                    },
                                    "63": {
                                        "VALUE": "45",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "64": {
                                        "VALUE": "BL",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "65": {
                                        "VALUE": "1269",
                                        "DATATYPE": "INTEGER",
                                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                                    },
                                    "66": {
                                        "VALUE": "2012-09-27 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "67": {
                                        "VALUE": null,
                                        "DATATYPE": "DATETIME"
                                    },
                                    "68": {
                                        "VALUE": null,
                                        "DATATYPE": "INTEGER",
                                        "udf-68-VALUE_display": null
                                    }
                                },
                                "form-action": "save",
                                "components": [
                                    "BL9021293"
                                ]
                            },
                            {
                                "GLA": {
                                    "status": "STATUS",
                                    "format": "FORMAT",
                                    "speed_code": "SPEED_CODE",
                                    "description": "DESCRIPTION",
                                    "revenue": "REVENUE",
                                    "expense": "EXPENSE",
                                    "bill": "BILL",
                                    "ledger": "LEDGER",
                                    "taxable": "TAXABLE",
                                    "modified_by": "MODIFIED_BY",
                                    "modified_date": "MODIFIED_DATE",
                                    "TENANTS_RECID": "TENANTS_RECID"
                                },
                                "GLA_GLA_COMPONENTS": {
                                    "gla_item_1": "GLA_COMPONENTS_RECID"
                                },
                                "RECID": "RECID"
                            },
                            []
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/application\/models\/Gla\/Gla.php",
                        "line": 369,
                        "function": "save",
                        "class": "Application_Model_Gla_Gla",
                        "object": {
                            "udfvModelName": "Application_Model_Gla_Udfv"
                        },
                        "type": "-",
                        "args": [
                            {
                                "status": "1",
                                "gla_item_1": "BL9021293",
                                "format": "ADMIN",
                                "speed_code": null,
                                "description": "INFORMATICS & COMPUTING BLDG",
                                "revenue": "0",
                                "expense": "1",
                                "bill": "1",
                                "ledger": "1",
                                "taxable": "0",
                                "modified_by": "Rob Alber",
                                "modified_date": "09\/16\/2024 11:12:35",
                                "identifier": "7694d6c806c9cd0f663f",
                                "RECID": "26425",
                                "TEMP_RECID": "-1061586351",
                                "WRITE_TENANT_NAME": null,
                                "TENANTS_RECID": "0",
                                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                                "charge_grid": {
                                    "value": [],
                                    "identifier": "aad55c204dfcd56d1fc8",
                                    "total-records": 0
                                },
                                "contacts_grid": {
                                    "value": [],
                                    "identifier": "34054bf5c3137d1ddfae",
                                    "total-records": 0
                                },
                                "address_grid": {
                                    "value": [],
                                    "identifier": "1da7f0741344c107ac8b",
                                    "total-records": 0
                                },
                                "activity_grid": {
                                    "value": [],
                                    "identifier": "f9bd1d769f8b0894f88d",
                                    "total-records": 0
                                },
                                "billing_grid": {
                                    "value": [],
                                    "identifier": "348828996c8dbeec0223",
                                    "total-records": 0
                                },
                                "attach_grid": {
                                    "value": [],
                                    "identifier": "95fc40066bbde5151117",
                                    "total-records": 0
                                },
                                "udf": {
                                    "61": {
                                        "VALUE": "2018-12-01 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "202": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "245": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "261": {
                                        "VALUE": "OIT2308428",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "62": {
                                        "VALUE": "738",
                                        "DATATYPE": "INTEGER"
                                    },
                                    "63": {
                                        "VALUE": "45",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "64": {
                                        "VALUE": "BL",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "65": {
                                        "VALUE": "1269",
                                        "DATATYPE": "INTEGER",
                                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                                    },
                                    "66": {
                                        "VALUE": "2012-09-27 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "67": {
                                        "VALUE": null,
                                        "DATATYPE": "DATETIME"
                                    },
                                    "68": {
                                        "VALUE": null,
                                        "DATATYPE": "INTEGER",
                                        "udf-68-VALUE_display": null
                                    }
                                },
                                "form-action": "save",
                                "components": [
                                    "BL9021293"
                                ]
                            },
                            {
                                "GLA": {
                                    "status": "STATUS",
                                    "format": "FORMAT",
                                    "speed_code": "SPEED_CODE",
                                    "description": "DESCRIPTION",
                                    "revenue": "REVENUE",
                                    "expense": "EXPENSE",
                                    "bill": "BILL",
                                    "ledger": "LEDGER",
                                    "taxable": "TAXABLE",
                                    "modified_by": "MODIFIED_BY",
                                    "modified_date": "MODIFIED_DATE",
                                    "TENANTS_RECID": "TENANTS_RECID"
                                },
                                "GLA_GLA_COMPONENTS": {
                                    "gla_item_1": "GLA_COMPONENTS_RECID"
                                },
                                "RECID": "RECID"
                            },
                            []
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/application\/forms\/Gla\/Gla.php",
                        "line": 426,
                        "function": "saveWithComponents",
                        "class": "Application_Model_Gla_Gla",
                        "object": {
                            "udfvModelName": "Application_Model_Gla_Udfv"
                        },
                        "type": "-",
                        "args": [
                            {
                                "status": "1",
                                "gla_item_1": "BL9021293",
                                "format": "ADMIN",
                                "speed_code": null,
                                "description": "INFORMATICS & COMPUTING BLDG",
                                "status_date": null,
                                "revenue": "0",
                                "expense": "1",
                                "bill": "1",
                                "ledger": "1",
                                "taxable": "0",
                                "modified_by": "Rob Alber",
                                "modified_date": "09\/16\/2024 11:12:35",
                                "identifier": "7694d6c806c9cd0f663f",
                                "RECID": "26425",
                                "TEMP_RECID": "-1061586351",
                                "WRITE_TENANT_NAME": null,
                                "TENANTS_RECID": "0",
                                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                                "charge_grid": {
                                    "value": [],
                                    "identifier": "aad55c204dfcd56d1fc8",
                                    "total-records": 0
                                },
                                "contacts_grid": {
                                    "value": [],
                                    "identifier": "34054bf5c3137d1ddfae",
                                    "total-records": 0
                                },
                                "address_grid": {
                                    "value": [],
                                    "identifier": "1da7f0741344c107ac8b",
                                    "total-records": 0
                                },
                                "activity_grid": {
                                    "value": [],
                                    "identifier": "f9bd1d769f8b0894f88d",
                                    "total-records": 0
                                },
                                "billing_grid": {
                                    "value": [],
                                    "identifier": "348828996c8dbeec0223",
                                    "total-records": 0
                                },
                                "attach_grid": {
                                    "value": [],
                                    "identifier": "95fc40066bbde5151117",
                                    "total-records": 0
                                },
                                "udf": {
                                    "61": {
                                        "VALUE": "2018-12-01 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "202": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "245": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "261": {
                                        "VALUE": "OIT2308428",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "62": {
                                        "VALUE": "738",
                                        "DATATYPE": "INTEGER"
                                    },
                                    "63": {
                                        "VALUE": "45",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "64": {
                                        "VALUE": "BL",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "65": {
                                        "VALUE": "1269",
                                        "DATATYPE": "INTEGER",
                                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                                    },
                                    "66": {
                                        "VALUE": "2012-09-27 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "67": {
                                        "VALUE": null,
                                        "DATATYPE": "DATETIME"
                                    },
                                    "68": {
                                        "VALUE": null,
                                        "DATATYPE": "INTEGER",
                                        "udf-68-VALUE_display": null
                                    }
                                },
                                "form-action": "save",
                                "components": [
                                    "BL9021293"
                                ]
                            },
                            {
                                "GLA": {
                                    "status": "STATUS",
                                    "format": "FORMAT",
                                    "speed_code": "SPEED_CODE",
                                    "description": "DESCRIPTION",
                                    "status_date": "STATUS_DATE",
                                    "revenue": "REVENUE",
                                    "expense": "EXPENSE",
                                    "bill": "BILL",
                                    "ledger": "LEDGER",
                                    "taxable": "TAXABLE",
                                    "modified_by": "MODIFIED_BY",
                                    "modified_date": "MODIFIED_DATE",
                                    "TENANTS_RECID": "TENANTS_RECID"
                                },
                                "GLA_GLA_COMPONENTS": {
                                    "gla_item_1": "GLA_COMPONENTS_RECID"
                                },
                                "RECID": "RECID"
                            },
                            [],
                            [
                                "BL9021293"
                            ],
                            null
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/application\/modules\/core\/controllers\/FormController.php",
                        "line": 194,
                        "function": "save",
                        "class": "Application_Form_Gla_Gla",
                        "object": {},
                        "type": "-",
                        "args": [
                            {
                                "status": "1",
                                "gla_item_1": "BL9021293",
                                "format": "ADMIN",
                                "speed_code": null,
                                "description": "INFORMATICS & COMPUTING BLDG",
                                "status_date": null,
                                "revenue": "0",
                                "expense": "1",
                                "bill": "1",
                                "ledger": "1",
                                "taxable": "0",
                                "modified_by": "Rob Alber",
                                "modified_date": "09\/16\/2024 11:12:35",
                                "identifier": "7694d6c806c9cd0f663f",
                                "RECID": "26425",
                                "TEMP_RECID": "-1061586351",
                                "WRITE_TENANT_NAME": null,
                                "TENANTS_RECID": "0",
                                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                                "charge_grid": {
                                    "value": [],
                                    "identifier": "aad55c204dfcd56d1fc8",
                                    "total-records": 0
                                },
                                "contacts_grid": {
                                    "value": [],
                                    "identifier": "34054bf5c3137d1ddfae",
                                    "total-records": 0
                                },
                                "address_grid": {
                                    "value": [],
                                    "identifier": "1da7f0741344c107ac8b",
                                    "total-records": 0
                                },
                                "activity_grid": {
                                    "value": [],
                                    "identifier": "f9bd1d769f8b0894f88d",
                                    "total-records": 0
                                },
                                "billing_grid": {
                                    "value": [],
                                    "identifier": "348828996c8dbeec0223",
                                    "total-records": 0
                                },
                                "attach_grid": {
                                    "value": [],
                                    "identifier": "95fc40066bbde5151117",
                                    "total-records": 0
                                },
                                "udf": {
                                    "61": {
                                        "VALUE": "2018-12-01 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "202": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "245": {
                                        "VALUE": null,
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "261": {
                                        "VALUE": "OIT2308428",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "62": {
                                        "VALUE": "738",
                                        "DATATYPE": "INTEGER"
                                    },
                                    "63": {
                                        "VALUE": "45",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "64": {
                                        "VALUE": "BL",
                                        "DATATYPE": "VARCHAR"
                                    },
                                    "65": {
                                        "VALUE": "1269",
                                        "DATATYPE": "INTEGER",
                                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                                    },
                                    "66": {
                                        "VALUE": "2012-09-27 00:00:00",
                                        "DATATYPE": "DATETIME"
                                    },
                                    "67": {
                                        "VALUE": null,
                                        "DATATYPE": "DATETIME"
                                    },
                                    "68": {
                                        "VALUE": null,
                                        "DATATYPE": "INTEGER",
                                        "udf-68-VALUE_display": null
                                    }
                                },
                                "form-action": "save"
                            },
                            {
                                "GLA": {
                                    "status": "STATUS",
                                    "format": "FORMAT",
                                    "speed_code": "SPEED_CODE",
                                    "description": "DESCRIPTION",
                                    "status_date": "STATUS_DATE",
                                    "revenue": "REVENUE",
                                    "expense": "EXPENSE",
                                    "bill": "BILL",
                                    "ledger": "LEDGER",
                                    "taxable": "TAXABLE",
                                    "modified_by": "MODIFIED_BY",
                                    "modified_date": "MODIFIED_DATE",
                                    "TENANTS_RECID": "TENANTS_RECID"
                                },
                                "GLA_GLA_COMPONENTS": {
                                    "gla_item_1": "GLA_COMPONENTS_RECID"
                                },
                                "RECID": "RECID"
                            }
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Controller\/Action.php",
                        "line": 522,
                        "function": "formEventAction",
                        "class": "Core_FormController",
                        "object": {
                            "viewSuffix": "phtml",
                            "view": {
                                "form": null,
                                "grid": null,
                                "layoutData": null,
                                "requestParams": null
                            },
                            "contexts": null
                        },
                        "type": "-",
                        "args": []
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Controller\/Dispatcher\/Standard.php",
                        "line": 308,
                        "function": "dispatch",
                        "class": "Zend_Controller_Action",
                        "object": {
                            "viewSuffix": "phtml",
                            "view": {
                                "form": null,
                                "grid": null,
                                "layoutData": null,
                                "requestParams": null
                            },
                            "contexts": null
                        },
                        "type": "-",
                        "args": [
                            "formEventAction"
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Controller\/Front.php",
                        "line": 954,
                        "function": "dispatch",
                        "class": "Zend_Controller_Dispatcher_Standard",
                        "object": {},
                        "type": "-",
                        "args": [
                            {},
                            {
                                "headersSentThrowsException": true
                            }
                        ]
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Application\/Bootstrap\/Bootstrap.php",
                        "line": 106,
                        "function": "dispatch",
                        "class": "Zend_Controller_Front",
                        "object": {},
                        "type": "-",
                        "args": []
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Application.php",
                        "line": 400,
                        "function": "run",
                        "class": "Zend_Application_Bootstrap_Bootstrap",
                        "object": {
                            "frontController": {}
                        },
                        "type": "-",
                        "args": []
                    },
                    {
                        "file": "\/var\/www\/pcr360\/prod\/public\/index.php",
                        "line": 99,
                        "function": "run",
                        "class": "Zend_Application",
                        "object": {},
                        "type": "-",
                        "args": []
                    }
                ]
            },
            {
                "status": "1",
                "gla_item_1": "BL9021293",
                "format": "ADMIN",
                "speed_code": null,
                "description": "INFORMATICS & COMPUTING BLDG",
                "revenue": "0",
                "expense": "1",
                "bill": "1",
                "ledger": "1",
                "taxable": "0",
                "modified_by": "Rob Alber",
                "modified_date": "09\/16\/2024 11:12:35",
                "identifier": "7694d6c806c9cd0f663f",
                "RECID": "26425",
                "TEMP_RECID": "-1061586351",
                "WRITE_TENANT_NAME": null,
                "TENANTS_RECID": "0",
                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                "charge_grid": {
                    "value": [],
                    "identifier": "aad55c204dfcd56d1fc8",
                    "total-records": 0
                },
                "contacts_grid": {
                    "value": [],
                    "identifier": "34054bf5c3137d1ddfae",
                    "total-records": 0
                },
                "address_grid": {
                    "value": [],
                    "identifier": "1da7f0741344c107ac8b",
                    "total-records": 0
                },
                "activity_grid": {
                    "value": [],
                    "identifier": "f9bd1d769f8b0894f88d",
                    "total-records": 0
                },
                "billing_grid": {
                    "value": [],
                    "identifier": "348828996c8dbeec0223",
                    "total-records": 0
                },
                "attach_grid": {
                    "value": [],
                    "identifier": "95fc40066bbde5151117",
                    "total-records": 0
                },
                "udf": {
                    "61": {
                        "VALUE": "2018-12-01 00:00:00",
                        "DATATYPE": "DATETIME"
                    },
                    "202": {
                        "VALUE": null,
                        "DATATYPE": "VARCHAR"
                    },
                    "245": {
                        "VALUE": null,
                        "DATATYPE": "VARCHAR"
                    },
                    "261": {
                        "VALUE": "OIT2308428",
                        "DATATYPE": "VARCHAR"
                    },
                    "62": {
                        "VALUE": "738",
                        "DATATYPE": "INTEGER"
                    },
                    "63": {
                        "VALUE": "45",
                        "DATATYPE": "VARCHAR"
                    },
                    "64": {
                        "VALUE": "BL",
                        "DATATYPE": "VARCHAR"
                    },
                    "65": {
                        "VALUE": "1269",
                        "DATATYPE": "INTEGER",
                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                    },
                    "66": {
                        "VALUE": "2012-09-27 00:00:00",
                        "DATATYPE": "DATETIME"
                    },
                    "67": {
                        "VALUE": null,
                        "DATATYPE": "DATETIME"
                    },
                    "68": {
                        "VALUE": null,
                        "DATATYPE": "INTEGER",
                        "udf-68-VALUE_display": null
                    }
                },
                "form-action": "save",
                "components": [
                    "BL9021293"
                ]
            },
            "SAVE",
            "26425"
        ]
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/application\/models\/Gla\/Gla.php",
        "line": 314,
        "function": "save",
        "class": "PCR_Db_Table_Abstract",
        "object": {
            "udfvModelName": "Application_Model_Gla_Udfv"
        },
        "type": "-",
        "args": [
            {
                "status": "1",
                "gla_item_1": "BL9021293",
                "format": "ADMIN",
                "speed_code": null,
                "description": "INFORMATICS & COMPUTING BLDG",
                "revenue": "0",
                "expense": "1",
                "bill": "1",
                "ledger": "1",
                "taxable": "0",
                "modified_by": "Rob Alber",
                "modified_date": "09\/16\/2024 11:12:35",
                "identifier": "7694d6c806c9cd0f663f",
                "RECID": "26425",
                "TEMP_RECID": "-1061586351",
                "WRITE_TENANT_NAME": null,
                "TENANTS_RECID": "0",
                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                "charge_grid": {
                    "value": [],
                    "identifier": "aad55c204dfcd56d1fc8",
                    "total-records": 0
                },
                "contacts_grid": {
                    "value": [],
                    "identifier": "34054bf5c3137d1ddfae",
                    "total-records": 0
                },
                "address_grid": {
                    "value": [],
                    "identifier": "1da7f0741344c107ac8b",
                    "total-records": 0
                },
                "activity_grid": {
                    "value": [],
                    "identifier": "f9bd1d769f8b0894f88d",
                    "total-records": 0
                },
                "billing_grid": {
                    "value": [],
                    "identifier": "348828996c8dbeec0223",
                    "total-records": 0
                },
                "attach_grid": {
                    "value": [],
                    "identifier": "95fc40066bbde5151117",
                    "total-records": 0
                },
                "udf": {
                    "61": {
                        "VALUE": "2018-12-01 00:00:00",
                        "DATATYPE": "DATETIME"
                    },
                    "202": {
                        "VALUE": null,
                        "DATATYPE": "VARCHAR"
                    },
                    "245": {
                        "VALUE": null,
                        "DATATYPE": "VARCHAR"
                    },
                    "261": {
                        "VALUE": "OIT2308428",
                        "DATATYPE": "VARCHAR"
                    },
                    "62": {
                        "VALUE": "738",
                        "DATATYPE": "INTEGER"
                    },
                    "63": {
                        "VALUE": "45",
                        "DATATYPE": "VARCHAR"
                    },
                    "64": {
                        "VALUE": "BL",
                        "DATATYPE": "VARCHAR"
                    },
                    "65": {
                        "VALUE": "1269",
                        "DATATYPE": "INTEGER",
                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                    },
                    "66": {
                        "VALUE": "2012-09-27 00:00:00",
                        "DATATYPE": "DATETIME"
                    },
                    "67": {
                        "VALUE": null,
                        "DATATYPE": "DATETIME"
                    },
                    "68": {
                        "VALUE": null,
                        "DATATYPE": "INTEGER",
                        "udf-68-VALUE_display": null
                    }
                },
                "form-action": "save",
                "components": [
                    "BL9021293"
                ]
            },
            {
                "GLA": {
                    "status": "STATUS",
                    "format": "FORMAT",
                    "speed_code": "SPEED_CODE",
                    "description": "DESCRIPTION",
                    "revenue": "REVENUE",
                    "expense": "EXPENSE",
                    "bill": "BILL",
                    "ledger": "LEDGER",
                    "taxable": "TAXABLE",
                    "modified_by": "MODIFIED_BY",
                    "modified_date": "MODIFIED_DATE",
                    "TENANTS_RECID": "TENANTS_RECID"
                },
                "GLA_GLA_COMPONENTS": {
                    "gla_item_1": "GLA_COMPONENTS_RECID"
                },
                "RECID": "RECID"
            },
            []
        ]
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/application\/models\/Gla\/Gla.php",
        "line": 369,
        "function": "save",
        "class": "Application_Model_Gla_Gla",
        "object": {
            "udfvModelName": "Application_Model_Gla_Udfv"
        },
        "type": "-",
        "args": [
            {
                "status": "1",
                "gla_item_1": "BL9021293",
                "format": "ADMIN",
                "speed_code": null,
                "description": "INFORMATICS & COMPUTING BLDG",
                "revenue": "0",
                "expense": "1",
                "bill": "1",
                "ledger": "1",
                "taxable": "0",
                "modified_by": "Rob Alber",
                "modified_date": "09\/16\/2024 11:12:35",
                "identifier": "7694d6c806c9cd0f663f",
                "RECID": "26425",
                "TEMP_RECID": "-1061586351",
                "WRITE_TENANT_NAME": null,
                "TENANTS_RECID": "0",
                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                "charge_grid": {
                    "value": [],
                    "identifier": "aad55c204dfcd56d1fc8",
                    "total-records": 0
                },
                "contacts_grid": {
                    "value": [],
                    "identifier": "34054bf5c3137d1ddfae",
                    "total-records": 0
                },
                "address_grid": {
                    "value": [],
                    "identifier": "1da7f0741344c107ac8b",
                    "total-records": 0
                },
                "activity_grid": {
                    "value": [],
                    "identifier": "f9bd1d769f8b0894f88d",
                    "total-records": 0
                },
                "billing_grid": {
                    "value": [],
                    "identifier": "348828996c8dbeec0223",
                    "total-records": 0
                },
                "attach_grid": {
                    "value": [],
                    "identifier": "95fc40066bbde5151117",
                    "total-records": 0
                },
                "udf": {
                    "61": {
                        "VALUE": "2018-12-01 00:00:00",
                        "DATATYPE": "DATETIME"
                    },
                    "202": {
                        "VALUE": null,
                        "DATATYPE": "VARCHAR"
                    },
                    "245": {
                        "VALUE": null,
                        "DATATYPE": "VARCHAR"
                    },
                    "261": {
                        "VALUE": "OIT2308428",
                        "DATATYPE": "VARCHAR"
                    },
                    "62": {
                        "VALUE": "738",
                        "DATATYPE": "INTEGER"
                    },
                    "63": {
                        "VALUE": "45",
                        "DATATYPE": "VARCHAR"
                    },
                    "64": {
                        "VALUE": "BL",
                        "DATATYPE": "VARCHAR"
                    },
                    "65": {
                        "VALUE": "1269",
                        "DATATYPE": "INTEGER",
                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                    },
                    "66": {
                        "VALUE": "2012-09-27 00:00:00",
                        "DATATYPE": "DATETIME"
                    },
                    "67": {
                        "VALUE": null,
                        "DATATYPE": "DATETIME"
                    },
                    "68": {
                        "VALUE": null,
                        "DATATYPE": "INTEGER",
                        "udf-68-VALUE_display": null
                    }
                },
                "form-action": "save",
                "components": [
                    "BL9021293"
                ]
            },
            {
                "GLA": {
                    "status": "STATUS",
                    "format": "FORMAT",
                    "speed_code": "SPEED_CODE",
                    "description": "DESCRIPTION",
                    "revenue": "REVENUE",
                    "expense": "EXPENSE",
                    "bill": "BILL",
                    "ledger": "LEDGER",
                    "taxable": "TAXABLE",
                    "modified_by": "MODIFIED_BY",
                    "modified_date": "MODIFIED_DATE",
                    "TENANTS_RECID": "TENANTS_RECID"
                },
                "GLA_GLA_COMPONENTS": {
                    "gla_item_1": "GLA_COMPONENTS_RECID"
                },
                "RECID": "RECID"
            },
            []
        ]
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/application\/forms\/Gla\/Gla.php",
        "line": 426,
        "function": "saveWithComponents",
        "class": "Application_Model_Gla_Gla",
        "object": {
            "udfvModelName": "Application_Model_Gla_Udfv"
        },
        "type": "-",
        "args": [
            {
                "status": "1",
                "gla_item_1": "BL9021293",
                "format": "ADMIN",
                "speed_code": null,
                "description": "INFORMATICS & COMPUTING BLDG",
                "status_date": null,
                "revenue": "0",
                "expense": "1",
                "bill": "1",
                "ledger": "1",
                "taxable": "0",
                "modified_by": "Rob Alber",
                "modified_date": "09\/16\/2024 11:12:35",
                "identifier": "7694d6c806c9cd0f663f",
                "RECID": "26425",
                "TEMP_RECID": "-1061586351",
                "WRITE_TENANT_NAME": null,
                "TENANTS_RECID": "0",
                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                "charge_grid": {
                    "value": [],
                    "identifier": "aad55c204dfcd56d1fc8",
                    "total-records": 0
                },
                "contacts_grid": {
                    "value": [],
                    "identifier": "34054bf5c3137d1ddfae",
                    "total-records": 0
                },
                "address_grid": {
                    "value": [],
                    "identifier": "1da7f0741344c107ac8b",
                    "total-records": 0
                },
                "activity_grid": {
                    "value": [],
                    "identifier": "f9bd1d769f8b0894f88d",
                    "total-records": 0
                },
                "billing_grid": {
                    "value": [],
                    "identifier": "348828996c8dbeec0223",
                    "total-records": 0
                },
                "attach_grid": {
                    "value": [],
                    "identifier": "95fc40066bbde5151117",
                    "total-records": 0
                },
                "udf": {
                    "61": {
                        "VALUE": "2018-12-01 00:00:00",
                        "DATATYPE": "DATETIME"
                    },
                    "202": {
                        "VALUE": null,
                        "DATATYPE": "VARCHAR"
                    },
                    "245": {
                        "VALUE": null,
                        "DATATYPE": "VARCHAR"
                    },
                    "261": {
                        "VALUE": "OIT2308428",
                        "DATATYPE": "VARCHAR"
                    },
                    "62": {
                        "VALUE": "738",
                        "DATATYPE": "INTEGER"
                    },
                    "63": {
                        "VALUE": "45",
                        "DATATYPE": "VARCHAR"
                    },
                    "64": {
                        "VALUE": "BL",
                        "DATATYPE": "VARCHAR"
                    },
                    "65": {
                        "VALUE": "1269",
                        "DATATYPE": "INTEGER",
                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                    },
                    "66": {
                        "VALUE": "2012-09-27 00:00:00",
                        "DATATYPE": "DATETIME"
                    },
                    "67": {
                        "VALUE": null,
                        "DATATYPE": "DATETIME"
                    },
                    "68": {
                        "VALUE": null,
                        "DATATYPE": "INTEGER",
                        "udf-68-VALUE_display": null
                    }
                },
                "form-action": "save",
                "components": [
                    "BL9021293"
                ]
            },
            {
                "GLA": {
                    "status": "STATUS",
                    "format": "FORMAT",
                    "speed_code": "SPEED_CODE",
                    "description": "DESCRIPTION",
                    "status_date": "STATUS_DATE",
                    "revenue": "REVENUE",
                    "expense": "EXPENSE",
                    "bill": "BILL",
                    "ledger": "LEDGER",
                    "taxable": "TAXABLE",
                    "modified_by": "MODIFIED_BY",
                    "modified_date": "MODIFIED_DATE",
                    "TENANTS_RECID": "TENANTS_RECID"
                },
                "GLA_GLA_COMPONENTS": {
                    "gla_item_1": "GLA_COMPONENTS_RECID"
                },
                "RECID": "RECID"
            },
            [],
            [
                "BL9021293"
            ],
            null
        ]
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/application\/modules\/core\/controllers\/FormController.php",
        "line": 194,
        "function": "save",
        "class": "Application_Form_Gla_Gla",
        "object": {},
        "type": "-",
        "args": [
            {
                "status": "1",
                "gla_item_1": "BL9021293",
                "format": "ADMIN",
                "speed_code": null,
                "description": "INFORMATICS & COMPUTING BLDG",
                "status_date": null,
                "revenue": "0",
                "expense": "1",
                "bill": "1",
                "ledger": "1",
                "taxable": "0",
                "modified_by": "Rob Alber",
                "modified_date": "09\/16\/2024 11:12:35",
                "identifier": "7694d6c806c9cd0f663f",
                "RECID": "26425",
                "TEMP_RECID": "-1061586351",
                "WRITE_TENANT_NAME": null,
                "TENANTS_RECID": "0",
                "PARENT_GRID": "gridb602ab7e97cfdcb628b2",
                "charge_grid": {
                    "value": [],
                    "identifier": "aad55c204dfcd56d1fc8",
                    "total-records": 0
                },
                "contacts_grid": {
                    "value": [],
                    "identifier": "34054bf5c3137d1ddfae",
                    "total-records": 0
                },
                "address_grid": {
                    "value": [],
                    "identifier": "1da7f0741344c107ac8b",
                    "total-records": 0
                },
                "activity_grid": {
                    "value": [],
                    "identifier": "f9bd1d769f8b0894f88d",
                    "total-records": 0
                },
                "billing_grid": {
                    "value": [],
                    "identifier": "348828996c8dbeec0223",
                    "total-records": 0
                },
                "attach_grid": {
                    "value": [],
                    "identifier": "95fc40066bbde5151117",
                    "total-records": 0
                },
                "udf": {
                    "61": {
                        "VALUE": "2018-12-01 00:00:00",
                        "DATATYPE": "DATETIME"
                    },
                    "202": {
                        "VALUE": null,
                        "DATATYPE": "VARCHAR"
                    },
                    "245": {
                        "VALUE": null,
                        "DATATYPE": "VARCHAR"
                    },
                    "261": {
                        "VALUE": "OIT2308428",
                        "DATATYPE": "VARCHAR"
                    },
                    "62": {
                        "VALUE": "738",
                        "DATATYPE": "INTEGER"
                    },
                    "63": {
                        "VALUE": "45",
                        "DATATYPE": "VARCHAR"
                    },
                    "64": {
                        "VALUE": "BL",
                        "DATATYPE": "VARCHAR"
                    },
                    "65": {
                        "VALUE": "1269",
                        "DATATYPE": "INTEGER",
                        "udf-65-VALUE_display": "BL-INFO: SCHOOL OF INFORMATICS COMPUTING & ENGIN"
                    },
                    "66": {
                        "VALUE": "2012-09-27 00:00:00",
                        "DATATYPE": "DATETIME"
                    },
                    "67": {
                        "VALUE": null,
                        "DATATYPE": "DATETIME"
                    },
                    "68": {
                        "VALUE": null,
                        "DATATYPE": "INTEGER",
                        "udf-68-VALUE_display": null
                    }
                },
                "form-action": "save"
            },
            {
                "GLA": {
                    "status": "STATUS",
                    "format": "FORMAT",
                    "speed_code": "SPEED_CODE",
                    "description": "DESCRIPTION",
                    "status_date": "STATUS_DATE",
                    "revenue": "REVENUE",
                    "expense": "EXPENSE",
                    "bill": "BILL",
                    "ledger": "LEDGER",
                    "taxable": "TAXABLE",
                    "modified_by": "MODIFIED_BY",
                    "modified_date": "MODIFIED_DATE",
                    "TENANTS_RECID": "TENANTS_RECID"
                },
                "GLA_GLA_COMPONENTS": {
                    "gla_item_1": "GLA_COMPONENTS_RECID"
                },
                "RECID": "RECID"
            }
        ]
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Controller\/Action.php",
        "line": 522,
        "function": "formEventAction",
        "class": "Core_FormController",
        "object": {
            "viewSuffix": "phtml",
            "view": {
                "form": null,
                "grid": null,
                "layoutData": null,
                "requestParams": null
            },
            "contexts": null
        },
        "type": "-",
        "args": []
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Controller\/Dispatcher\/Standard.php",
        "line": 308,
        "function": "dispatch",
        "class": "Zend_Controller_Action",
        "object": {
            "viewSuffix": "phtml",
            "view": {
                "form": null,
                "grid": null,
                "layoutData": null,
                "requestParams": null
            },
            "contexts": null
        },
        "type": "-",
        "args": [
            "formEventAction"
        ]
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Controller\/Front.php",
        "line": 954,
        "function": "dispatch",
        "class": "Zend_Controller_Dispatcher_Standard",
        "object": {},
        "type": "-",
        "args": [
            {},
            {
                "headersSentThrowsException": true
            }
        ]
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Application\/Bootstrap\/Bootstrap.php",
        "line": 106,
        "function": "dispatch",
        "class": "Zend_Controller_Front",
        "object": {},
        "type": "-",
        "args": []
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/vendor\/pcr\/zf1-future\/library\/Zend\/Application.php",
        "line": 400,
        "function": "run",
        "class": "Zend_Application_Bootstrap_Bootstrap",
        "object": {
            "frontController": {}
        },
        "type": "-",
        "args": []
    },
    {
        "file": "\/var\/www\/pcr360\/prod\/public\/index.php",
        "line": 99,
        "function": "run",
        "class": "Zend_Application",
        "object": {},
        "type": "-",
        "args": []
    }
]

Example

Syntax of Validations and Building Queries

Custom Validation shares a set of common syntax and available functions with the other types of Custom Logic. There are also various built-in functions to assist in querying data in order to do the lookups validations require.

Content

There's no easy way to monitor Custom Validation for output, especially while writing the code for it because there's no "real" data to pass through the code when it is being written.

Here are a couple of options, one of which is fairly easy but doesn't show the actual data being validated, the other is more involved, but makes it possible to observe actual data that goes through the code that is being written.

Note: Too many different "Call" methods contained within Custom Validations may cause timeouts

Data Dictionary

If only the key names of the $data array are of interest, that is always the database row that is being validated. The columns that belong to the table can be found in the Data Dictionary by navigating to "Admin > Data Dictionary"

Look up the table that the code is being written for, the column names are the keys that are expected to be seen in that variable, this will enable references to them to be made in the code. For example, SERVICES:

Services References Example

Then write PHP code for the check desired.

PHP
if ($data['BILLABLE'] == 0) {
// Set an error because Services aren't Billable, or whatever...
}

This approach doesn't let you view real data, though. 

  • Not ALL column/value pairs are always included. Some inserts and updates omit columns that have defaults or are left unaltered in a given process.

    • The User writing the validation should monitor the data in order to observe what is being passed through.

Error Messages

Once a Custom Validation has been triggered, regardless of what data input method triggers the Validation, a message will be reported back to the User identifying itself as a result of Custom Validation. The first part of the error will display the name of the organization to help identify that the error was a Custom Validation and not one of the standard errors from the application. The message from the Validation will appear after the name.

These two functions setError() and setWarning() can have a number of different returns. In addition to the type of message set, the return will also determine behavior. The following table explains the expected results of using either function and the return values. In the table, "not-false" means any return that is not Boolean false. False-ish values (0, empty string, etc.) do not count.

Function

Return

Result

setError()

false

Error is issued, Save or Delete fails

setError()

not-false

Warning issued, save or delete passes

setWarning()

false

Error is issued, save or delete fails

Note: An additional generic Error line will display because a false return implies an error message should have been set and was not.

  Generic Message text: "A Validation Error has occurred"

setWarning()

not-false

Warning issued, save or delete passes.

setError() + setWarning()

false

Error issued with both messages, save or delete fails.

setError() + setWarning()

not-false

Warning issued with both messages, save or delete passes.

What this means is that the return dictates whether the action passes (false: no, not-false: yes)and what dialog type Users get (false: error, not-false: warning). Messages just correspond to the type of return sent.

For all of the following examples, a Custom Validation was written to require a Reference on all Services.

Forms

 If a Custom Validation is triggered while using a given form, the message will appear in the following manner:

Custom Validation error example

Imports

When a Custom Validation is triggered during an Import the message will be output into the Imported Records grid as an Error. The message content from the Error will appear in the 'Error Description' column of the grid.

To see the errors, navigate to Admin > Imports/ Exports: Import Files > Imported Records.

Importred Records Error Description Column example

API

Custom Validations returned from the API will return a status of "failure" and the Customer Validation message.

Custom Validation message example

Custom Validation message example


Custom Validations can also be configured to call the API to create other application records.

Sample Validation to API
XML
// set the save data
$payload = [
    "type" => "IN",
    "csr" => "1",
    "owner" => "1",
    "owner_type" => "contact",
    "prob_code" => "1",
    "description" => "Sample Validation to create an Incident"
];

$this->call("saveServiceDesk", $payload);

return true;

The above example is for how a User might create a Custom Validation to the Service Desk API endpoint and create an Incident.

For more information see this page on: Calling API Logic from Custom Logic or see that API Functionality Articles in this wiki.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.