PCR-360 Wiki
Breadcrumbs

Release Notes


Release 2026.1 is a major release that brings new capabilities, refinements to existing features, performance gains, and fixes for PCR-360. 

NOTE: PHP 8.3 is required for this upgrade.

Key


Click to expand...

Bug Fixes


bugFix.png


New Features



addFeature.png


Changed Features


changeFeature.png


Improved Performance


monitor_lightning.jpg


Removed Features


delFeature.png


Release 2026.1 (08-18-2026)


Highlights

  • Custom Form Builder — Administrators can build and edit their own custom forms in PCR-360.

  • AI Assistant for Custom Reports — AI-powered code assistance for Custom Reports, Custom APIs, Custom Events, and Custom Validations.

  • Composer In-UI Updater — Install PCR-360 Composer updates directly from the user interface.

  • Saved Custom Reports — Preview, PDF export, and email — Preview, export to PDF, or email a Saved Custom Report directly from PCR-360.

  • MySQL 8.4 LTS readiness — Database, character-set, and collation prep so you can plan your MySQL 8.4 upgrade.

  • PCR-360 Now Runs on Docker – We've moved PCR-360 and PCR-360 Intelligence to a containerized (Docker) environment. This behind-the-scenes infrastructure change makes upgrades faster and safer, keeps your application better isolated from other services on the server, ensures a more consistent experience across our development, testing, and production environments, and reduces the risk of dependency conflicts — all while simplifying future deployments and, if ever needed, rollbacks. If we host your environment, no action is required on your end. If you manage your own installation, please contact our Installation and Implementation team to discuss this change and next steps.


addFeature.png  New Features

Reporting & Custom Tools

  • Custom Form Builder — Build and edit your own custom forms inside PCR-360 — no PCR engineering involvement required.

  • AI Assistant for Custom Reports, APIs, Events, and Validations — AI-powered code assistance helps authors write and refine queries faster across Custom Reports, Custom APIs, Custom Events, and Custom Validations.

  • Saved Custom Reports — Preview, PDF export, and email — Preview a Saved Custom Report, export it as a PDF, or email it as a PDF directly from the PCR-360 core application. Mirrors the experience already available in Customer Center.

Platform & Administration

  • Composer In-UI Updater — PCR-360 Composer updates can now be installed directly from the user interface, simplifying upgrades.

  • PCR-360 Now Runs on Docker – We've moved PCR-360 and PCR-360 Intelligence to a containerized (Docker) environment. This behind-the-scenes infrastructure change makes upgrades faster and safer, keeps your application better isolated from other services on the server, ensures a more consistent experience across our development, testing, and production environments, and reduces the risk of dependency conflicts — all while simplifying future deployments and, if ever needed, rollbacks. If we host your environment, no action is required on your end. If you manage your own installation, please contact our Installation and Implementation team to discuss this change and next steps.

Service Desk & Integrations

  • Service Desk Labor API now supports updates — In addition to creating labor records, you can now update existing ones via the API. See the API documentation for details.

  • Multi-UDC support on Griddle grids — Multiple UDC sources (Service Desk / Actions and Services) are now supported on:

    • Action tab on Service Orders and Service Requests

    • Service Desk → View / Report → Actions

    • Service Desk → View / Report → Workflow

    • Service Desk → My Service Desk → Assigned Workflow

    • Service Desk → My Service Desk → Workgroup

  • Licenses API endpoint for Orbit integration — A new Licenses API endpoint that lets the Orbit integration manage PCR-360 licenses.

Permissions & Security

  • Action-level permission checking — Permissions gain a third level of granularity alongside module and controller checks, letting you control access at the individual action level for finer role design.

Database & Infrastructure

  • MySQL character sets and collations in INI — New character set and collation constants in constants.ini, plus tools to generate collation-fix SQL for archive, metadata, and default schemas.

  • utf8mb4 character set support — Adds the MySQL character set and encoding to the INI in preparation for utf8mb4.


changeFeature.png  Changed Features

  • Pools: new Description field — The Pools table now includes a Description field for clearer identification of pools.

  • Pools: UDF support — User Defined Fields can now be associated with the Pools table.

  • Permission Sets ordering on Oracle — The list of Permission Sets now displays in a consistent order on Oracle databases.

  • Service Desk emails now address the assigned User — When PCR-360 sends Service Desk notifications, the "To" field now uses the assigned user's email address.

  • MySQL 8.4 LTS support — The database is now prepared for MySQL 8.4 LTS, so you can plan your MySQL upgrade against the new long-term support version.

  • Yearly framework check (zf1-future) — Internal yearly review of the upstream framework repository. No customer-facing impact.


bugFix.png  Bug Fixes

Service Desk & Workflow

  • Service Desk Remove Actions created via the CLI now properly pull in Service Options and Charges from the Service. Also includes:

    • Service Desk Action charges can now be edited.

    • Service Desk Actions no longer try to stop the same charge multiple times.

    • On non-billable Services, charges can now be stopped (and only stopped).

  • Scheduled "Complete On" and "Finalize On" Service Desk events now respect the scheduled time. Previously, they ran immediately rather than waiting.

  • Split Billing on Service Desk now correctly triggers charge Stop/Starts on the Service at finalization.

  • Purchase Order field on Service Desk records is now read-only after completion/finalization.

  • Imports now handle Service UDFs correctly on Service Desk change actions.

  • Service UDF values are no longer cleared when selecting an Available Service.

  • "Add Destination" button on the Path Leg form now hides correctly when no Pair/Strand is present.

  • User Defined Fields (UDFs) now appear correctly on a Service Desk Add Action for a Service ID that doesn't yet exist.

Billing & Charges

  • Service Orders with recurring charges after the stop date can now be finalized.

  • ARC charges no longer duplicate on Services Bulk Update GLA changes. Stop dates persist correctly, replacement charges carry the stop date forward, audit records serialize datetime values as strings, and BILLING_COMPLETE is set immediately on stopped charges.

  • Custom Validation errors during a Services Bulk Update no longer roll back the entire update.

  • Invoice emails — Fixed an error that prevented Invoice emails from being generated and sent.

  • Charges grid no longer displays incorrect data.

Security & Authentication

  • Single sign-on (Shibboleth) login — Users without an active session are now correctly redirected to the SSO login page instead of an error page.

  • Internal security hygiene — Credentials and secrets were removed from internal code repositories as part of ongoing security best practices. No customer action is required.

UI, Editor & Reporting

  • Adding Remarks now works with the browser language set to Canadian English (en-CA). Resolves a CKEditor crash caused by missing language files. Also adds Canadian English support for the color picker and accessibility help.

  • "Find Usages" now works correctly.

  • Inventory Equipment — The Ports/Pins/Lens buttons now appear immediately after gear is added and saved, without requiring a page refresh.

  • chatbot.css now ships with the Update Module, so pages display correctly when Intelligence is enabled.

  • Grid "Clear Filters" now immediately removes a cleared column filter even when other filters remain active.

  • Scheduled PDF reports now display the filtered total row count in the report header instead of the unfiltered total.

Custom Logic & API

  • Custom logic user-API methods now validate their parameters gracefully and return clear error messages instead of fatal errors.

  • Deleting custom logic on Oracle no longer produces an error.

Calendar & Localization

  • PCR Calendars now display calendar items in the client's time zone instead of the server's time zone.

E911 & Locations

  • E911 Snapshots table — The MySQL reserved keyword FUNCTION has been renamed in column names, completing part of the MySQL 8 readiness work.

  • Multi-location services no longer prompt that "a location is needed for E911 reporting" when the service is not flagged for Report 911.


monitor_lightning.jpg  Improved Performance

  • Receiving large purchase orders (Qty 5000+) — Receiving now runs as a bulk-update event, so very large quantities no longer time out.

  • Oracle: Warehouses with 1000+ Sub Locations — Large full-path queries now use a sub-query instead of a direct join, significantly speeding up affected queries.


delFeature.png  Removed Features

  • Legacy mcrypt usage removed. Internal-only cleanup as part of ongoing PHP modernization. No user-facing change.


* Indicates external documentation not written by PCR.



Database Changes in 2026.1


Default Schema


Table Name

Change

Table Changes

CF_INSTANCES_ATTACHMENTS

create

SQL
CREATE TABLE `CF_INSTANCES_ATTACHMENTS`(
                                           `RECID`                          INT                  NOT NULL AUTO_INCREMENT,
                                           `TENANTS_RECID`                  INT                  NOT NULL,
                                           `MODIFIED_DATE`                  DATETIME             NOT NULL,
                                           `MODIFIED_BY`                    VARCHAR(20)          NOT NULL,
                                           `CUSTOM_FORM_INSTANCES_RECID`    INT                  NOT NULL,
                                           `FILES_RECID`                    INT                  NOT NULL,
                                           `FIELD_NAME`                     VARCHAR(100)         NULL    ,

                                           PRIMARY KEY (RECID)
)
    ENGINE = InnoDB
    COLLATE = 'utf8mb4_general_ci'
;
ALTER TABLE `CF_INSTANCES_ATTACHMENTS` ADD INDEX `CF_INSTANCES_ATTACHMENTS_1` (`CUSTOM_FORM_INSTANCES_RECID`);
ALTER TABLE `CF_INSTANCES_ATTACHMENTS` ADD INDEX `CF_INSTANCES_ATTACHMENTS_2` (`FILES_RECID`);
ALTER TABLE `CF_INSTANCES_ATTACHMENTS` ADD INDEX `CF_INSTANCES_ATTACHMENTS_3` (`FIELD_NAME`);
ALTER TABLE `CF_INSTANCES_ATTACHMENTS` ADD INDEX `CF_INSTANCES_ATTACHMENTS_T` (`TENANTS_RECID`);

ALTER TABLE `CF_INSTANCES_ATTACHMENTS` ADD CONSTRAINT `CF_INSTANCES_ATTACHMENTS_1_FK`
    FOREIGN KEY (`CUSTOM_FORM_INSTANCES_RECID`)
        REFERENCES `CUSTOM_FORM_INSTANCES` (`RECID`);
ALTER TABLE `CF_INSTANCES_ATTACHMENTS` ADD CONSTRAINT `CF_INSTANCES_ATTACHMENTS_2_FK`
    FOREIGN KEY (`FILES_RECID`)
        REFERENCES `FILES` (`RECID`);
ALTER TABLE `CF_INSTANCES_ATTACHMENTS` ADD CONSTRAINT `CF_INSTANCES_ATTACHMENTS_T_FK`
    FOREIGN KEY (`TENANTS_RECID`)
        REFERENCES `TENANTS` (`RECID`);

CHRG_CATALOG_FULLPATH

update

SQL
DROP INDEX `CHRG_CATALOG_FULLPATH_3` ON `CHRG_CATALOG_FULLPATH`;
ALTER TABLE `CHRG_CATALOG_FULLPATH` ADD UNIQUE INDEX `CHRG_CATALOG_FULLPATH_3` (`CHRG_CATALOG_RECID`, `PATH_CHRG_CATALOG_RECID`);

CUSTOM_FORM_INSTANCES

create

SQL
CREATE TABLE `CUSTOM_FORM_INSTANCES`(
                                        `RECID`                          INT                  NOT NULL AUTO_INCREMENT,
                                        `TENANTS_RECID`                  INT                  NOT NULL,
                                        `MODIFIED_DATE`                  DATETIME             NOT NULL,
                                        `MODIFIED_BY`                    VARCHAR(20)          NOT NULL,
                                        `FORM_RECID`                     INT                  NOT NULL,
                                        `FORM_VERSION_RECID`             INT                  NULL    ,
                                        `STATUS`                         VARCHAR(20)         DEFAULT 'draft' NULL    ,
                                        `CC_REQUESTS_RECID`              INT                  NULL    ,

                                        PRIMARY KEY (RECID)
)
    ENGINE = InnoDB
    COLLATE = 'utf8mb4_general_ci'
;
ALTER TABLE `CUSTOM_FORM_INSTANCES` ADD INDEX `CUSTOM_FORM_INSTANCES_1` (`FORM_RECID`);
ALTER TABLE `CUSTOM_FORM_INSTANCES` ADD INDEX `CUSTOM_FORM_INSTANCES_2` (`FORM_VERSION_RECID`);
ALTER TABLE `CUSTOM_FORM_INSTANCES` ADD INDEX `CUSTOM_FORM_INSTANCES_3` (`STATUS`);
ALTER TABLE `CUSTOM_FORM_INSTANCES` ADD INDEX `CUSTOM_FORM_INSTANCES_4` (`CC_REQUESTS_RECID`);
ALTER TABLE `CUSTOM_FORM_INSTANCES` ADD INDEX `CUSTOM_FORM_INSTANCES_T` (`TENANTS_RECID`);

ALTER TABLE `CUSTOM_FORM_INSTANCES` ADD CONSTRAINT `CUSTOM_FORM_INSTANCES_1_FK`
    FOREIGN KEY (`FORM_RECID`)
        REFERENCES `FORMS` (`RECID`);
ALTER TABLE `CUSTOM_FORM_INSTANCES` ADD CONSTRAINT `CUSTOM_FORM_INSTANCES_2_FK`
    FOREIGN KEY (`FORM_VERSION_RECID`)
        REFERENCES `CUSTOM_FORM_VERSIONS` (`RECID`)
        ON DELETE SET NULL;
ALTER TABLE `CUSTOM_FORM_INSTANCES` ADD CONSTRAINT `CUSTOM_FORM_INSTANCES_T_FK`
    FOREIGN KEY (`TENANTS_RECID`)
        REFERENCES `TENANTS` (`RECID`);

CUSTOM_FORM_INSTANCE_LIST_VALUES

create

SQL
CREATE TABLE `CUSTOM_FORM_INSTANCE_LIST_VALUES`(
                                                   `RECID`                          INT                  NOT NULL AUTO_INCREMENT,
                                                   `TENANTS_RECID`                  INT                  NOT NULL,
                                                   `MODIFIED_DATE`                  DATETIME             NOT NULL,
                                                   `MODIFIED_BY`                    VARCHAR(20)          NOT NULL,
                                                   `CUSTOM_FORM_INSTANCES_RECID`    INT                  NOT NULL,
                                                   `USER_DEFINED_FIELDS_RECID`      INT                  NOT NULL,
                                                   `LISTS_RECID`                    INT                  NOT NULL,

                                                   PRIMARY KEY (RECID)
)
    ENGINE = InnoDB
    COLLATE = 'utf8mb4_general_ci'
;
ALTER TABLE `CUSTOM_FORM_INSTANCE_LIST_VALUES` ADD UNIQUE INDEX `CUSTOM_FORM_INSTANCE_LIST_VA_1` (`CUSTOM_FORM_INSTANCES_RECID`, `USER_DEFINED_FIELDS_RECID`);
ALTER TABLE `CUSTOM_FORM_INSTANCE_LIST_VALUES` ADD INDEX `CUSTOM_FORM_INSTANCE_LIST_VA_2` (`LISTS_RECID`);
ALTER TABLE `CUSTOM_FORM_INSTANCE_LIST_VALUES` ADD INDEX `CUSTOM_FORM_INSTANCE_LIST_VA_3` (`USER_DEFINED_FIELDS_RECID`);
ALTER TABLE `CUSTOM_FORM_INSTANCE_LIST_VALUES` ADD INDEX `CUSTOM_FORM_INSTANCE_LIST_VA_T` (`TENANTS_RECID`);

ALTER TABLE `CUSTOM_FORM_INSTANCE_LIST_VALUES` ADD CONSTRAINT `CUSTOM_FORM_INSTANCE_LIST_1_FK`
    FOREIGN KEY (`CUSTOM_FORM_INSTANCES_RECID`)
        REFERENCES `CUSTOM_FORM_INSTANCES` (`RECID`);
ALTER TABLE `CUSTOM_FORM_INSTANCE_LIST_VALUES` ADD CONSTRAINT `CUSTOM_FORM_INSTANCE_LIST_2_FK`
    FOREIGN KEY (`USER_DEFINED_FIELDS_RECID`)
        REFERENCES `USER_DEFINED_FIELDS` (`RECID`);
ALTER TABLE `CUSTOM_FORM_INSTANCE_LIST_VALUES` ADD CONSTRAINT `CUSTOM_FORM_INSTANCE_LIST_3_FK`
    FOREIGN KEY (`LISTS_RECID`)
        REFERENCES `LISTS` (`RECID`);
ALTER TABLE `CUSTOM_FORM_INSTANCE_LIST_VALUES` ADD CONSTRAINT `CUSTOM_FORM_INSTANCE_LIST_T_FK`
    FOREIGN KEY (`TENANTS_RECID`)
        REFERENCES `TENANTS` (`RECID`);

CUSTOM_FORM_THEMES

create

SQL
CREATE TABLE `CUSTOM_FORM_THEMES`(
                                     `RECID`                          INT                  NOT NULL AUTO_INCREMENT,
                                     `TENANTS_RECID`                  INT                  NOT NULL,
                                     `NAME`                           VARCHAR(100)         NOT NULL,
                                     `DESCRIPTION`                    VARCHAR(500)         NULL    ,
                                     `THEME_DATA`                     LONGTEXT             NOT NULL,
                                     `IS_DEFAULT`                     TINYINT             DEFAULT 0 NOT NULL,
                                     `CREATED_DATE`                   DATETIME             NOT NULL,
                                     `CREATED_BY`                     VARCHAR(50)          NOT NULL,
                                     `MODIFIED_DATE`                  DATETIME             NOT NULL,
                                     `MODIFIED_BY`                    VARCHAR(50)          NOT NULL,

                                     PRIMARY KEY (RECID)
)
    ENGINE = InnoDB
    COLLATE = 'utf8mb4_general_ci'
;
ALTER TABLE `CUSTOM_FORM_THEMES` ADD INDEX `CUSTOM_FORM_THEMES_1` (`NAME`);
ALTER TABLE `CUSTOM_FORM_THEMES` ADD INDEX `CUSTOM_FORM_THEMES_T` (`TENANTS_RECID`);

ALTER TABLE `CUSTOM_FORM_THEMES` ADD CONSTRAINT `CUSTOM_FORM_THEMES_T_FK`
    FOREIGN KEY (`TENANTS_RECID`)
        REFERENCES `TENANTS` (`RECID`);

CUSTOM_FORM_VERSIONS

create

SQL
CREATE TABLE `CUSTOM_FORM_VERSIONS`(
                                       `RECID`                          INT                  NOT NULL AUTO_INCREMENT,
                                       `TENANTS_RECID`                  INT                  NOT NULL,
                                       `FORM_RECID`                     INT                  NOT NULL,
                                       `VERSION_NUMBER`                 VARCHAR(20)          NOT NULL,
                                       `OPTIONS`                        LONGTEXT             NULL    ,
                                       `WIDGETS`                        LONGTEXT             NULL    ,
                                       `ON_LOAD_EVENT`                  INT                  NULL    ,
                                       `ON_SAVE_EVENT`                  INT                  NULL    ,
                                       `ON_DELETE_EVENT`                INT                  NULL    ,
                                       `ADHOC_GRIDS_RECID`              INT                  NULL    ,
                                       `IS_DRAFT`                      TINYINT             DEFAULT 0 NOT NULL,
                                       `IS_PUBLISHED`                   TINYINT             DEFAULT 0 NOT NULL,
                                       `VERSION_NOTES`                  VARCHAR(1000)        NULL    ,
                                       `CREATED_DATE`                   DATETIME             NOT NULL,
                                       `CREATED_BY`                     VARCHAR(50)          NOT NULL,
                                       `MODIFIED_DATE`                  DATETIME             NOT NULL,
                                       `MODIFIED_BY`                    VARCHAR(50)          NOT NULL,

                                       PRIMARY KEY (RECID)
)
    ENGINE = InnoDB
    COLLATE = 'utf8mb4_general_ci'
;
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD INDEX `CUSTOM_FORM_VERSIONS_1` (`FORM_RECID`);
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD INDEX `CUSTOM_FORM_VERSIONS_2` (`IS_DRAFT`);
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD INDEX `CUSTOM_FORM_VERSIONS_3` (`IS_PUBLISHED`);
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD INDEX `CUSTOM_FORM_VERSIONS_4` (`ADHOC_GRIDS_RECID`);
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD UNIQUE INDEX `CUSTOM_FORM_VERSIONS_5` (`FORM_RECID`, `VERSION_NUMBER`);
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD INDEX `CUSTOM_FORM_VERSIONS_T` (`TENANTS_RECID`);

ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD CONSTRAINT `CUSTOM_FORM_VERSIONS_1_FK`
    FOREIGN KEY (`FORM_RECID`)
        REFERENCES `FORMS` (`RECID`);
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD CONSTRAINT `CUSTOM_FORM_VERSIONS_2_FK`
    FOREIGN KEY (`ADHOC_GRIDS_RECID`)
        REFERENCES `ADHOC_GRIDS` (`RECID`)
        ON DELETE SET NULL;
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD CONSTRAINT `CUSTOM_FORM_VERSIONS_T_FK`
    FOREIGN KEY (`TENANTS_RECID`)
        REFERENCES `TENANTS` (`RECID`);
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD CONSTRAINT `CUSTOM_FORM_VERSIONS_3_FK`
    FOREIGN KEY (`ON_LOAD_EVENT`)
        REFERENCES `LOGIC` (`RECID`)
        ON DELETE SET NULL;
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD CONSTRAINT `CUSTOM_FORM_VERSIONS_4_FK`
    FOREIGN KEY (`ON_SAVE_EVENT`)
        REFERENCES `LOGIC` (`RECID`)
        ON DELETE SET NULL;
ALTER TABLE `CUSTOM_FORM_VERSIONS` ADD CONSTRAINT `CUSTOM_FORM_VERSIONS_5_FK`
    FOREIGN KEY (`ON_DELETE_EVENT`)
        REFERENCES `LOGIC` (`RECID`)
        ON DELETE SET NULL;

DEPT_HIERARCHY_FULLPATH

update

SQL
DROP INDEX `DEPT_HIERARCHY_FULLPATH_3` ON `DEPT_HIERARCHY_FULLPATH`;
ALTER TABLE `DEPT_HIERARCHY_FULLPATH` ADD UNIQUE INDEX `DEPT_HIERARCHY_FULLPATH_3` (`DEPT_HIERARCHY_RECID`, `PATH_DEPT_HIERARCHY_RECID`);

E911_SNAPSHOTS

update

ALTER TABLE E911_SNAPSHOTS RENAME COLUMN `FUNCTION` TO FUNCTION_TYPE;

EQP_CATALOG_FULLPATH

update

SQL
DROP INDEX `EQP_CATALOG_FULLPATH_3` ON `EQP_CATALOG_FULLPATH`;
ALTER TABLE `EQP_CATALOG_FULLPATH` ADD UNIQUE INDEX `EQP_CATALOG_FULLPATH_3` (`EQP_CATALOG_RECID`, `PATH_EQP_CATALOG_RECID`);

EXPORT_COLUMNS

update

UPDATE EXPORT_COLUMNS SET DATA_COLUMN='FUNCTION_TYPE' WHERE DATA_COLUMN='FUNCTION';

FORMS

create

SQL
CREATE TABLE `FORMS`(
                        `RECID`                          INT                  NOT NULL AUTO_INCREMENT,
                        `TENANTS_RECID`                  INT                  NOT NULL,
                        `MODIFIED_DATE`                  DATETIME             NOT NULL,
                        `MODIFIED_BY`                    VARCHAR(20)          NOT NULL,
                        `NAME`                           VARCHAR(255)         NOT NULL,
                        `FORM_KEY`                       VARCHAR(255)        DEFAULT '' NOT NULL,
                        `DESCRIPTION`                    VARCHAR(500)         NULL    ,
                        `AVAILABLE_IN_CC`                TINYINT(1)          DEFAULT '0' NOT NULL,
                        `CREATE_CC_REQUEST`              TINYINT(1)          DEFAULT '0' NOT NULL,

                        PRIMARY KEY (RECID)
)
    ENGINE = InnoDB
    COLLATE = 'utf8mb4_general_ci'
;
ALTER TABLE `FORMS` ADD INDEX `FORMS_1` (`NAME`);
ALTER TABLE `FORMS` ADD INDEX `FORMS_T` (`TENANTS_RECID`);
ALTER TABLE `FORMS` ADD UNIQUE INDEX `FORMS_3` (`FORM_KEY`);

ALTER TABLE `FORMS` ADD CONSTRAINT `FORMS_T_FK`
    FOREIGN KEY (`TENANTS_RECID`)
        REFERENCES `TENANTS` (`RECID`);

LOCATIONS_FULLPATH

update

SQL
DROP INDEX `LOCATIONS_FULLPATH_3` ON `LOCATIONS_FULLPATH`;
ALTER TABLE `LOCATIONS_FULLPATH` ADD UNIQUE INDEX `LOCATIONS_FULLPATH_3` (`LOCATIONS_RECID`, `PATH_LOCATIONS_RECID`);

MENU_FULLPATH

update

SQL
DROP INDEX `MENU_FULLPATH_3` ON `MENU_FULLPATH`;
ALTER TABLE `MENU_FULLPATH` ADD UNIQUE INDEX `MENU_FULLPATH_3` (`MENU_RECID`, `PATH_MENU_RECID`);

PERMISSIONS_MDL_CNTRLLRS

update

Multiple inserts into this table to create data for Custom Form permissions.

PERMISSIONS_MENU

update

Multiple inserts for the Custom Form permissions menu.

PERMISSIONS_SETS

update

ALTER TABLE `PERMISSIONS_SETS` ADD `SYSTEM_USE` TINYINT DEFAULT 0 NOT NULL;

Also includes multiple inserts for the Custom Form permission sets.

POOLS

update

ALTER TABLE POOLS ADD DESCRIPTION VARCHAR(255) NULL;

ROLES

update

Create new roles for Custom Form permission sets.

ROLES_PERMISSIONS_SETS

update

Multiple inserts for the Custom Form permission set roles.

SERV_CATALOG_FULLPATH

update

SQL
DROP INDEX `SERV_CATALOG_FULLPATH_3` ON `SERV_CATALOG_FULLPATH`;
ALTER TABLE `SERV_CATALOG_FULLPATH` ADD UNIQUE INDEX `SERV_CATALOG_FULLPATH_3` (`SERV_CATALOG_RECID`, `PATH_SERV_CATALOG_RECID`);

SLA_CATALOG_FULLPATH

update

SQL
DROP INDEX `SLA_CATALOG_FULLPATH_3` ON `SLA_CATALOG_FULLPATH`;
ALTER TABLE `SLA_CATALOG_FULLPATH` ADD UNIQUE INDEX `SLA_CATALOG_FULLPATH_3` (`SLA_CATALOG_RECID`, `PATH_SLA_CATALOG_RECID`);

TENANTS_FULLPATH

update

SQL
DROP INDEX `TENANTS_FULLPATH_3` ON `TENANTS_FULLPATH`;
ALTER TABLE `TENANTS_FULLPATH` ADD UNIQUE INDEX `TENANTS_FULLPATH_3` (`TENANTS_RECID`, `PATH_TENANTS_RECID`);

USERS

update

ALTER TABLE `USERS` MODIFY COLUMN `PASSWORD` VARCHAR(255) NULL;

UPDATE `USERS` SET `PASSWORD` = NULL WHERE `PASSWORD` IN ('SHIBBOLETH', 'CAC');

Metadata Schema


Table Name

Change

Table Changes

No changes


Archive Schema


Table Name

Change

Table Changes

No changes


Supported Versions

PCR will patch the application during the support timeline outlined in the version history below. Customers will continue to receive Help Desk Support for releases outside of the support period for a given release.  Bug fixes are only released for versions that are actively supported.

 

Key

Active support

A release that is actively supported.

Critical Fixes Only

A release that is supported for critical security issues only. Releases are only made on an as-needed basis.

End of life

A release that is no longer supported and will not receive bug fixes. Customers using one of these releases should upgrade as soon as possible.


Version History


Release Types


LTS Release

An LTS Release is a Major Release that PCR will support for at least 12+ months. All other releases are supported for two release cycles. LTS Releases will be patched (as a hotfix) for any Critical or High-Impact bugs applied after a release. These include (but are not limited to): service-impacting issues, billing issues, or charge-related bugs. These issues have no workaround, or the workaround is cumbersome. LTS Releases are intended to relieve “Upgrade Fatigue” for Customers who may not need all of the latest features but need critical bugs fixed. Once the LTS time period has elapsed, PCR will work with customers to move them to the next LTS release.
Once an LTS reaches the last few months of support, it will receive only critical fixes and security patches.

Major Release

Major releases consist of new features and some bug fixes. These features have a relatively large scope with a greater impact on development and testing, e.g. Accounts Receivable, Service Desk Archiving, Work Order, etc.

Minor Release

Minor releases consist mostly of bug fixes and occasionally minor enhancements to the application. Minor enhancements are relatively small changes with a low impact on development and testing, e.g. adding a column to a grid, a new field, or tweaking the API. The specification process will occur in at least the month prior to being assigned.

The specification process will occur in tandem with the traditional development and testing cycle.



Version

Release Type

Release Date

Receives Patches Until

End of Life

2026.1

Major

2025.2

Major

2025.1

Major

  


Archived Releases No Longer Supported

Click to expand...


Version

Release Type

Release Date

Support Ends

Release Notes

2024.2

LTS

https://pcr360.atlassian.net/wiki/x/X-MQAQ

2024.1

Major

  

https://pcr360.atlassian.net/wiki/x/3-MQAQ

2023.1

Major

  

 

https://pcr360.atlassian.net/wiki/x/hZEQAQ

2022.2

Minor

 

 

https://pcr360.atlassian.net/wiki/x/NpEQAQ

2022.1

LTS

 

https://pcr360.atlassian.net/wiki/x/Q5AQAQ

2021.3

Minor

 

 


https://pcr360.atlassian.net/wiki/x/zo8QAQ

2021.2

Minor

 

 

https://pcr360.atlassian.net/wiki/x/eY8QAQ

2021.1

LTS

 

 

https://pcr360.atlassian.net/wiki/x/Yo8QAQ

2020.4

Major

 

 

https://pcr360.atlassian.net/wiki/x/A48QAQ

2020.3

Major

 

 

https://pcr360.atlassian.net/wiki/x/g44QAQ

2020.2

Minor

 

 

https://pcr360.atlassian.net/wiki/x/U_IQAQ

2020.1

Major

 

 

https://pcr360.atlassian.net/wiki/x/FI0QAQ

2019.7

LTS

 

 

https://pcr360.atlassian.net/wiki/x/v4sQAQ

2019.6

Minor

 

 

https://pcr360.atlassian.net/wiki/x/DeAQAQ

2019.5

Minor

 

 

https://pcr360.atlassian.net/wiki/x/FosQAQ

2019.4

Major

 

 

https://pcr360.atlassian.net/wiki/x/qIoQAQ

2019.3

Minor

 

 

https://pcr360.atlassian.net/wiki/x/wNUQAQ

2019.2

Minor

 

 

https://pcr360.atlassian.net/wiki/x/DeAQAQ

2019.1

Major

 

 

https://pcr360.atlassian.net/wiki/x/DeAQAQ

2018.1

Major

 

 

https://pcr360.atlassian.net/wiki/x/DeAQAQ

2.1.4.7

Minor

 

 

https://forums.pcr.com/t/release-notes-2-1-4-7-2018-10-09/526