Executive Summary
Xytech Release 26.3 delivers 27 new features and resolves 72 issues. It includes broad enhancements across scheduling, transmission workflow, time management, API capabilities, and platform fundamentals.
Highlights include:
- A suite of Visual Path automation improvements for Transmission — including:
- Auto-assignment of resources at booking
- Resource-prompt support for selecting resources interactively
- One-click order access directly from the Schedule Book
- Scheduling gains the ability to:
- Assign resources directly to open orders from the Schedule Book
- Define and assign public holidays based on country
- Cloud-native deployments benefit from new Amazon S3 export support for Excel reports, eliminating dependence on mapped network drives.
- Time Entry now supports custom fields from TC Batch and exposes the full approval lifecycle in the Time Entry List.
- REST API gains
$ORoperator support in query parameters and enhanced webhook performance.
The resolved issues address:
- Performance & Reliability: Long-standing bottlenecks in Bid save/delete operations and API timeout conditions have been resolved, significantly reducing wait times for heavily-used workflows.
- Scheduling Accuracy: Multiple fixes address crewing event date errors, report failures caused by non-shared views, and resource booking inconsistencies that produced duplicate or missing dates.
- Platform Stability: Framework and dashboard fixes resolve split-screen pane behavior, dashboard tab renaming, MCR order-click accuracy, and other UI inconsistencies affecting daily navigation.
- API & Integration Integrity: Business exception handling and error reporting improvements ensure integrations receive accurate responses for non-existent parent records and malformed queries.
Deprecation Announcements
Smart Client for End Users
Smart Client is no longer supported for normal users in version 11.0 and beyond. Smart Client will still be supported for Layouts and Report Writer until a replacement of equivalent functionality in the web UX is made available in a future release.
Configuration
The Application Server configuration entry for SKY_BROADCAST_CHANGES is deprecated in version 11.0 and beyond. It has been determined that this setting was causing major, unnecessary performance issues in systems with 100 or more users. Going forward the system will not broadcast changes to all user sessions. Users will continue to receive changes from other users upon re-opening a particular Maintenance Document or Search List. This primarily affects refreshing of searches, and the population of dropdown lists when new values are recently added. Broadcasting of booking changes into the Schedule Book will remain active.
REST API V1 (version 1)
The REST API V1 (version 1) has been deprecated as of 11.0. The API will not be removed from the product, but we will no longer enhance the capabilities of the deprecated API, and support for the deprecated version may be limited. It is strongly recommended you do not use deprecated APIs for any new development and begin now to port all API usage to the REST API V2 (version 2). While porting, we recommend taking advantage of the new Webhooks features available in the REST API V2 for outbound integrations.
Pre-Announcing Deprecations in Future Releases
APIs
The SOAP API will be deprecated in a future version. The API will not be removed from the product, but we will no longer enhance the capabilities of the deprecated API, and support for the deprecated API may be limited. It is strongly recommended you do not use deprecated APIs for any new development and begin now to port all API usage to the REST API V2 (version 2). While porting, we recommend taking advantage of the new Webhooks features available in the REST API V2 for outbound integrations.
New Features
API & Web Hooks
REST API JmWorkOrder Save Argument for WO transaction date change option - 27013
The REST API has been enhanced to support the synchronization of Order transaction times when modifying Work Order times. This update ensures that transaction records remain aligned with changes made at the Work Order level through a streamlined process.
- Introduced support for the Save Argument header to manage transaction time behavior within a single PATCH call.
- Added
TrxTimeOptionMoveto move transaction times in direct alignment with Work Order changes. - Added
TrxTimeOptionAdjustto adjust transaction times based on the relative shift of the Work Order. - Eliminated the need for multiple manual updates by enabling these synchronizations through the API.
Note: For detailed implementation instructions and header requirements, please refer to the latest version of the REST API User Guide.
Webhooks - Performance Improvement for Logs - 28521
To improve system efficiency and ensure smoother operations during high-volume data exports, the Webhook logging mechanism has been optimized. This update focuses on the performance of the underlying log tables to prevent latency and reduce the overhead associated with tracking webhook activities.
- Enhanced the performance of the
sys_export_adapter_logto handle large datasets more effectively during webhook execution. - Streamlined the logging process to reduce database contention and improve overall system responsiveness when webhooks are triggered.
- Optimized data handling for export adapters, ensuring that performance remains stable even as log volume increases.
Event Trigger 'send to queue' enhanced logic - 30972
The Event Triggers logic has been enhanced to provide greater control over message routing. This update ensures that the "send to queue" setting is strictly honored across all system scenarios, preventing unintended message transmission when the option is disabled.
- Improved the underlying logic for Event Triggers to ensure that unchecking the "send to queue" option effectively prevents messages from being sent to MSMQ in all cases.
- Resolved edge cases where manual or automated triggers might have bypassed the queue suppression settings.
- Streamlined the communication workflow between the application and the message queue to ensure data integrity and configuration consistency.
Support $OR Operator in API Query Parameters - 39170
The Xytech Platform API now supports an $or operator in list endpoint query parameters, allowing consumers to retrieve records matching any of several field-based conditions in a single request. Previously, OR logic across different fields required multiple round-trips and client-side result merging; this enhancement eliminates that overhead and simplifies integration code.
What's New:
- API list endpoints now accept an
$orquery clause — for example:{"$or": [{"job_no": 4}, {"job_no": 5}]}returns records where any condition is true. - Conditions across entirely different fields can be combined in a single request — for example, filtering by priority range OR by list ID in one call.
- Nested operators such as
$inand$likeandare supported within$orclauses for multi-value and pattern-based matching. $oris combinable with$andand other existing query operators in the same request for complex compound filtering.
API Calls Timing Out / Performance Issues - 37871
The system has been updated to address performance bottlenecks and timeout issues associated with heavy API calls and large data transactions. These improvements focus on infrastructure stability and database efficiency to ensure a more reliable experience during high-volume operations.
Xytech has implemented several optimizations to prevent gateway timeouts and resolve record-locking conflicts. These changes ensure that the system can handle complex data requests—such as loading over 200 service rows—while maintaining overall responsiveness and data integrity across the platform.
- Increased the Azure Application Gateway and SQL timeout thresholds to 120 seconds for heavy endpoints, providing the necessary processing time for large-scale data tasks.
- Optimized database performance on large tables, such as
lib_master_title, by establishing regular maintenance schedules for rebuilding indexes and updating SQL statistics. - Enforced stricter data filtering requirements (mandatory
ResultColumns) in API calls to limit excessive field retrieval and reduce resource exhaustion. - Implemented asynchronous processing patterns for high-volume operations, transitioning to a status-polling model to prevent connection terminations during long-running tasks.
- Deployed a concurrency patch to resolve "Document Leased" errors and record-locking conflicts during simultaneous PATCH operations.
Bids / Budgets
Bids (Budgets) List - Add Recalculate Budget - 29736
The Bids search list has been enhanced with a new "Recalculate Budget" action, specifically designed for Budget items. This feature allows users to quickly refresh financial data across one or more budgets, ensuring that all totals are accurate and reflect the most current rate structures without requiring manual line-by-line updates.
- Introduced the Recalculate Budget action for single or bulk updates, which resets budget detail amounts based on existing Rate Sets while preserving the original rate configurations.
- Automated the synchronization of totals across the Bid Header, Bid Detail, and Version levels to maintain financial integrity after recalculation.
- Updated the logic for loading actuals in multi-tier Rate Sets to ensure all tiers are visible in the bid/budget, even when a transaction tier has an amount of zero.
- Improved visibility for stakeholders by allowing them to see all transaction tiers within the budget, providing a more comprehensive view of activity regardless of specific charges.
Note: This feature ensures that while totals are updated, the underlying Rate Sets and rate details remain unchanged, preserving the original pricing logic.
Framework, Dashboards, Fundamentals
Search Lists - Select and Open in New Tab - 9006
Users can now efficiently manage large datasets by isolating specific records for further action. This feature allows you to highlight multiple rows within a search list and open them in a separate browser tab, maintaining your original search results in the primary window while you focus on a targeted subset.
- Added a new action to most search lists that enables opening a selection of highlighted rows in a new browser tab.
- Streamlines workflows for reports, grid updates, or rapid updates by allowing users to work on a smaller, specific list of records.
Select the rows and click 'Open Results in New Tab':
New tab has opened with only the selected rows:
- Note: At present, this selection tool is limited to rows within the current page and does not support selecting across multiple pages of search results.
Sparse Sequencing for Display Sequence - 29866
A new option for sparse sequencing has been made available. When enabled, the system generates sequences with gaps to reduce the need for full resequencing during row operations. For example, sequences will now appear as 10, 20, 30, 35, 40 instead of 1, 2, 3, 4, 5. This improves performance and minimizes unnecessary data churn.
This applies to grids where Display Sequence (dsp_seq) is present. Because the following involves more involved coding around dependencies, they have been excluded from the change:
- Media Order / Transmission Order (Service Rows, Operations)
- Media Order / Transmission Order Service (Profile Tasks, Service Packages)
- Media Order / Transmission Order Service Template (Service Template Details, Service Template Tasks)
- Project (Activities)
- Project Templates (Template Details)
Warning: If enabled, display sequences will appear with gaps and may confuse users. No data migration is required.
Upgrade Kendo - 35882
The application's core UI framework has been upgraded to a newer version of Kendo. This foundational engineering investment ensures the platform remains compatible with modern browser standards, receives ongoing security updates, and provides a more robust base for future interface enhancements.
- Upgraded the underlying Kendo UI components to improve overall application stability and performance.
- Migrated existing UI themes to more efficient SASS-based themes, paving the way for improved visual consistency across the platform.
- Optimized the framework to support future NuGet updates and modern development dependencies.
- SQL Repositories methods (22 methods) have been refactored to use QueryTree implementation so that data access layer be consistent , without hard-coding of SQL queries in the code and less prone to SQL injection.
- Reduced tab spacing and font size to maximize screen real estate.
Banner has been set to NONE by default.
When List Document is Closed, "Previous" or "Next" Buttons visually disabled - 39935
The user interface has been enhanced to ensure that navigation controls on maintenance documents accurately reflect the availability of their parent list. This update improves visual clarity and prevents navigation errors by dynamically disabling controls when the source data context is no longer active.
- Automatically disables the Previous and Next buttons on an open maintenance document (such as a Title) immediately upon the closure of the associated list document.
- Ensures a more predictable workflow by preventing attempts to navigate through record sets that have been removed from the workspace.
- Updates the button state to a visually inactive (grayed out) mode, providing users with immediate feedback that the list context is lost.
When list is still open:
After list is closed:
Errors in Xytech Server Log: Document class not found - 39936
System logging has been improved to eliminate redundant error entries related to document class resolution. This update ensures that the server logs remain clean and focused on actionable events, specifically addressing issues seen during PDF generation and report viewing.
- Resolved an issue where the Xytech Server Log would incorrectly record "Document class not found" errors for specific Document IDs (e.g., 529, 1067, 11059).
- Optimized the logging switch logic to ensure that setting the trace level to "Everything" does not trigger false-positive error reports during standard report generation.
- Improved the stability of the document customization framework, ensuring that PDF previews and report exports no longer generate unnecessary noise in the backend logs.
UX Modernization Improvements - 37836
Reduced tab spacing and font size to maximize screen real estate.
Banner has been set to NONE by default.
Pentest - Missing HTTP Security Headers - 37692
To enhance the application's defense-in-depth strategy, several industry-standard HTTP security headers have been implemented. These headers provide an additional layer of security by instructing web browsers on how to handle scripts, frames, and secure connections, effectively reducing the attack surface for client-side vulnerabilities.
- Implemented HTTP Strict-Transport-Security (HSTS) with a
max-ageof one year and theincludeSubDomainsdirective to ensure all browser interactions occur over secure HTTPS connections. - Added the X-Frame-Options header set to
SAMEORIGINto protect the application from Clickjacking attacks by preventing it from being embedded in frames on external sites. - Configured a robust Content-Security-Policy (CSP) to define trusted sources for scripts, styles, and images, significantly mitigating the risk of Cross-Site Scripting (XSS) and unauthorized data injections.
- Applied the X-Content-Type-Options: nosniff header to prevent browsers from interpreting files as a different MIME type than what is declared, protecting against content-type spoofing.
- Introduced a Referrer-Policy (set to
strict-origin-when-cross-origin) and enhanced Cache-Control directives to better manage how sensitive information is shared and stored in browser caches.
Jobs, Orders, Billing (Job Management)
W/O Template 'Load' Button - 38912
The Work Order interface has been updated to restore the 'Load' button for templates and introduce a new validation layer. This ensures that users are consistently prompted to load selected templates, preventing scenarios where a template is assigned to an order but its associated transactions are not actually processed.
- Reinstated the Load button on the Work Order, Media Order, and Transmission Order headers to provide a clear, manual trigger for template application.
- Introduced a mandatory validation check upon saving an order; if a template is selected but has not been loaded, a pop-up will ask, "A template has been selected and not loaded. Do you want to load the template on saving the order?"
- Added a "Don't ask again" option to the validation prompt, allowing users to persist their preference and streamline future saves.
- Maintained the follow-on logic that allows users to choose whether to append template data to existing transactions or replace them entirely.
Media Order / Transmission Shared Functionality
Ability to Duplicate Condition or Set Fields records in the Media Order Service Template Rule pop-up - 29747
A new duplication feature has been added to the Rule Dialog settings to improve efficiency when configuring complex logic. This enhancement allows users to quickly replicate existing "Condition" or "Set Fields" records, reducing the manual effort required to build out extensive profiles.
- Introduced a Duplicate option within the Rule Dialog that creates an exact copy of a selected condition or field set.
- Streamlined the workflow for adding multiple "OR" conditions to service profiles, specifically benefiting high-volume workflows like those used by Apple.
- Enhanced the usability of the MO Service setup by allowing users to modify a duplicated record rather than creating each new entry from scratch.
Scheduled Reports
S3 Export Infrastructure - 39948
This update introduces a robust, configuration-driven S3 export service designed to streamline how files are delivered to AWS. By providing a unified infrastructure for workflow activities, the system ensures consistent file delivery to S3 buckets while maintaining a local fallback for non-cloud environments.
- Standardized Delivery: Workflows can now deliver files directly to Amazon S3 using a standardized service, eliminating the need for duplicate integration code across different activities.
- Flexible Organization: The system supports automatic file organization via configurable key prefixes and handles duplicate filenames by intelligently appending numeric suffixes.
- Secure Access: Security is enhanced through support for temporary HTTPS pre-signed URLs or dedicated SFTP endpoint paths for exported files.
- Credential Management: System administrators can manage credentials securely using AWS Secrets Manager, with the ability to resolve sensitive configuration tokens at startup.
- Hybrid Fallback: For local environments, a fallback file system service ensures that exports continue to function by routing files to designated local folders when S3 is not configured.
App Server Configuration
The following entries are registered in ConfigEntryNames and accessible via XEConfiguration:
| Key | Default | Encrypted |
|---|---|---|
| S3_EXPORT_BUCKET | — | No |
| S3_EXPORT_ACCESS_KEY | — | No |
| S3_EXPORT_SECRET_KEY | — | Yes |
| S3_EXPORT_REGION | us-east-1 | No |
| S3_EXPORT_SERVICE_URL | — | No |
| S3_EXPORT_SFTP_ENDPOINT | — | No |
| S3_EXPORT_PRESIGNED_URL_EXPIRATION_MINUTES | 60 | No |
Note: This infrastructure is utilized by the to support cloud-native Excel exports without dependency on traditional network file shares.
Scheduling
Create and Assign Public Holidays Based on Country - 25843
This feature introduces the ability to assign and manage public holidays at the country level, providing much-needed precision for global teams. By decoupling holidays from broader divisions, the system ensures that resource calendars accurately reflect local observances regardless of organizational structure.
- Country-Based Holiday Assignment: Administrators can now define and maintain public holiday lists specific to individual countries.
- Resource Configuration: Scheduling Resources and Groups can be assigned to a specific "Holiday Country," allowing for automated calendar synchronization with local dates.
Automated Days Off Utility: The "Create Days Off" utility has been enhanced to filter by location, enabling the bulk generation of holiday entries based on a resource's assigned country.
- Visual Schedule Integration: Assigned country-specific holidays are now visible within the Schedule Book, providing immediate clarity on resource availability and potential conflicts.
Rule Engine Enhancements: Scheduling Counters and Payroll Rules now recognize holiday logic based on the resource’s assigned country, ensuring accurate pay and conflict checking.
Assign Resources to Open Orders from Schedule Book - 29529
A new "Add to Order" capability has been introduced to the Schedule Book, allowing users to seamlessly link new bookings to existing orders. This enhancement streamlines the scheduling workflow by enabling the direct assignment of resources to open Work, Media, or Transmission orders without leaving the scheduling interface.
- Added an Add to Order button to the Edit/New Booking popup in the Schedule Book, providing immediate access to the Work Orders search list.
- Enabled a unified search that covers Work, Media, and Transmission Orders to ensure the correct parent order can be located quickly.
- Automated the creation of new transactions within the selected order, with the new transaction inheriting all relevant settings and validation rules from the booking window.
Standard Adaptors
Implement MS Exchange Out Of Office Status - 32752
Xytech has enhanced its Microsoft Exchange integration to support "Out of Office" (OOF) status synchronization for resource scheduling. This update ensures that specific absence types in Xytech—such as holidays or personal leave—are accurately reflected in Outlook calendars, providing better visibility for global teams and preventing accidental scheduling during staff absences.
- Added an Out of Office option to the "Show Exchange Server Time As" configuration within the Off/Day Type setup.
- Enabled automated synchronization with MS Graph, allowing the system to set a resource's presence as
oofwhen specific roster or transaction phases are triggered. - Improved calendar consistency by ensuring that recipients of meeting invites see blocked, clearly defined unavailability in their Outlook interface.
- Streamlined the workflow for resource schedulers by allowing Xytech-specific absence types to drive native Exchange calendar behavior.
Time Card
Copy Time Card Activities from Previous Date - 26228
A new option has been added to the Time Card batch interface that allows users and employees to streamline their workflow by copying activities from previous dates to the current or future dates. This feature is specifically designed for users who perform repetitive tasks across different days, significantly reducing the manual effort required for weekly time card entries.
- Introduced a new copy process within the Time Card batch that opens a dedicated pop-up for selecting a source date range and a target start date.
- Enabled synchronization of Job, Order, and Multi-Bill entries during the copy process to maintain data consistency across activities.
- Supported multi-date copying, where activities are automatically generated for subsequent dates based on the selected historical range.
- Optimized for standalone Time Card workflows, ensuring that custom fields and job links are preserved even when not using standard scheduling or work orders.
Time Card Batch - Employee ID Available for Document Customization Overrides - 31698
The Time Card Batch functionality has been updated to include the 'Employee ID' field within the Employees section. This enhancement provides greater flexibility for system administrators when configuring document layouts and logic.
- Enabled the 'Employee ID' field for use in the Employees section of the Time Card Batch document.
- Supported the use of 'Employee ID' for setting up Document Customization overrides, allowing for more granular control over document behavior based on specific employee data.
- Streamlined the process of applying site-specific overrides by making a key identifier readily available within the customization interface.
Transmission
Visualiser - Include Visual Path on a Report - 21311
Transmission users can now include the path graphic directly on report layouts, such as customer confirmation reports. This provides a clear, visual representation of the booked transmission path, significantly enhancing the clarity of service documentation for stakeholders and clients.
- Visualiser Graphic in Report Layouts — A new data source field is available in the report layout editor, allowing the transmission order's Visualiser diagram to be rendered directly within the document.
- Positioning and Resizing — Layout editors can freely position and resize the Visualiser graphic to fit specific branding or formatting needs within the report.
- Auto-fit Scaling — The graphic automatically scales to fit the allocated space. For simpler orders with fewer nodes, magnification is limited to ensure a clean, professional appearance.
- Email Support — Reports containing the Visualiser graphic can be emailed to recipients with the path image fully embedded in the document for seamless communication.
Transmission Default Task - 24806
Transmission users can now streamline their workflow by setting a universal default task for transmission orders. This improvement eliminates the need to manually assign or manage tasks in scenarios where they do not add direct value to the transmission process, allowing users to focus on core order management.
- System-Wide Default Task — Administrators can now define a default transmission task at the system level, which is automatically applied to new services and operations.
- Streamlined Order Management — For sites that do not require granular task tracking, this feature removes the requirement for users to manually interact with task assignments during the order lifecycle.
- Maintained Compatibility — While hidden from daily transmission workflows when a default is set, tasks remain fully supported within the system to ensure continued compatibility with Media Orders and future functional requirements.
Visual Path - Support 'Resource Required' Parameter 'Prompt' to Select Resource - 26478
Transmission users can now experience a more seamless resource assignment workflow when booking services. When a service is configured with the 'Resource Required' parameter set to 'Prompt', the system now automatically triggers the modern resource selector instead of the legacy interface.
- Integrated Resource Selection — The modern resource selector now appears automatically during the booking process, providing a consistent and intuitive interface for assigning assets.
- Sequential Dependency Prompting — For service profiles containing multiple tasks with the 'Prompt' setting, the system intelligently guides the user through the path of dependencies. It prompts for resources in order—starting with primary tasks before moving through branches—ensuring a logical setup.
- Flexible Assignment — Users maintain full control during the booking process and can choose to cancel the prompt to create an operation without an immediate resource assignment if necessary.
Visual Path - Auto Assign Resources as I Book the Service Profile - 29606
Transmission users can now experience immediate resource allocation when adding service profiles to an order via the . This enhancement automates the assignment process during the booking phase, providing instant feedback on asset availability and reducing the administrative steps required to finalize a transmission path.
- Instant Auto-Assignment — When a Service Profile containing an auto-assign group is added, the system now identifies and assigns available resources immediately. This removes the previous requirement to save the order before the auto-assignment logic would trigger.
- Real-Time Availability Validation — Users receive immediate confirmation of resource availability during the selection process. If a resource cannot be auto-assigned due to conflicts or phase state dependencies, the system provides that feedback instantly so alternative plans can be made.
- Streamlined Booking Workflow — By eliminating the "save-and-check" cycle, this update ensures that the visual representation of the transmission path is accurate and fully populated from the moment the service is selected.
Avoid unnecessary Media Order functionality for Transmission Orders - 36331
The Transmission module has been optimized to decouple it from legacy Media Order logic that is no longer applicable. By removing these unnecessary restrictions, the system provides a cleaner, more performant environment for managing transmissions while simplifying the path for future module-specific enhancements.
- Refined the underlying framework of Transmission Orders to eliminate overhead from unused Media Order features, such as specific Operation Sources and Targets.
- Streamlined Service Row automation and "GoTo" functionality to align strictly with transmission-related workflows.
- Improved system responsiveness and reduced configuration complexity by removing redundant Media Order validations that previously impacted Transmission Order processing.
Open Transmission Order Layout From Schedule Book With a Double Click - 36356
Users can now customize their navigation experience within the Schedule Book by selecting which layout opens upon a double-click. This improvement allows for faster access to comprehensive order details by bypassing the standard transaction view when preferred.
- Configurable Double-Click Behavior — A new option allows users to set a double-click action to open the full Order layout instead of the default Transaction layout directly from the Schedule Book.
- Granular Type Control — This setting can be applied globally to all order types or targeted specifically to Media, Transmission, or Work Orders, providing flexibility for different departmental workflows.
- Enhanced Navigation Efficiency — By aligning the primary interaction with the user's most frequent destination, this feature reduces the number of clicks required to view and manage detailed order information.
Resolved Issues
API & Web Hooks
API Calls Timing Out - 31645
Resolved an issue where certain API calls would time out or fail with a "502 Bad Gateway" error when processing large datasets. This resulted in significant delays and prevented users from successfully retrieving necessary system information.
The root cause was a performance bottleneck in the database execution plan caused by a missing composite index on the operations table, which forced inefficient data scans and sorting during complex join queries.
Solution
We optimized the database performance by adding the missing composite index to the operations table. This significantly reduces latency and ensures that high-volume API requests are processed efficiently without triggering timeouts.
Rest API - LibTitleHierarchyFacade Business Exception Handling - 32169
Attempting to add or update a Title with a non-existent parent via the REST API would fail without providing a clear error message. This lack of feedback prevented users from identifying and correcting hierarchy data entry errors during API integrations.
The root cause was a missing validation check in the endpoint logic that failed to trigger a business exception when a specified parent record could not be found in the database.
Solution
We updated the API validation logic to verify parent record existence before processing hierarchy changes. The system now correctly returns a 400 Bad Request status code and a descriptive error message when a Parent Title is missing, providing immediate feedback for troubleshooting.
Bids / Budgets
Saving and Deleting Bid Details Takes Minutes - 28269
Resolved a performance issue where deleting rows and saving a Bid would take several minutes to complete. This delay occurred when Bids contained a large number of rows, significantly impacting workflow efficiency for high-volume users.
The root cause was a sequencing logic that forced a full-table reindex upon every row deletion. This triggered redundant updates across the entire dataset, even for minor changes to individual rows.
Solution
We enabled a sparse sequencing feature that allows for gaps in the display sequence, eliminating the need for a full re-index during row operations. This allows users to delete and save Bid Details in seconds rather than minutes.
Approving a Bid with 1700 or so rows is very slow - 36422
Resolved a significant performance issue where approving a large Bid with approximately 1,700 detail rows was extremely slow. Users experienced long wait times and intermittent application unresponsiveness, often leading to "Page Unresponsive" errors during the approval and Work Order creation process.
The root cause involved several inefficiencies in the approval logic, including redundant recalculations of Bid totals for every detail line, high CPU usage from inefficient data validation methods, and performance bottlenecks within the trigger handling system when processing large datasets.
Solution
We optimized the Bid approval process by suspending unnecessary recalculations during the approval sequence and replacing inefficient data processing methods with higher-performance alternatives. These changes resulted in a 30–50% improvement in processing speed, ensuring a more stable and responsive experience when handling high-volume Bids.
Budget: Load Rate from Sources Issue - 36462
Resolved an issue in Budgets where using the "Load Rate from Source" action failed to refresh the Actual Totals. This resulted in outdated or incorrect financial figures being displayed in the Budget and Bid Maintenance views.
The root cause was that the "Load Rate From Source" action did not trigger a reset of the actual value fields (such as WIP and Job Actual Amounts) in the underlying budget detail tables, which also prevented the header totals from updating.
Solution:
We updated the "Load Rate From Source" logic in Bids and Budget Maintenance to correctly reset actual values to zero during the refresh process. This ensures that the Actual Amount Totals in both the detail rows and the headers are accurately recalculated and displayed.
Precision Loss in Bid Detail Discount Amount - 37694
Resolved an issue where entering a manual Discount Amount on a Bid Detail row caused a small calculation error of $0.02. This occurred when navigating away from the field or clicking into the header, leading to inconsistent financial totals on the bid.
The root cause was a floating-point rounding error during the conversion process. The system converted the manual amount into a stored decimal percentage, which resulted in precision loss when the system re-multiplied that decimal against the Gross Total.
Solution:
We updated the calculation logic to maintain decimal precision when handling manual discount amounts. The system now ensures that the entered value remains exact upon validation and focus changes, preventing rounding discrepancies in Bid totals.
Actual Cost and Actual Cost Variance Not Populated on Bid Detail Search - 39749
Resolved an issue where the "Actual Cost" and "Actual Cost Variance" fields remained empty within the Bid Detail Search results. This lack of data prevented users from accurately monitoring financial performance and identifying budget discrepancies directly from the search list.
The root cause was an error in the data retrieval logic where the specific columns required for these calculations were omitted from the database query. Because the fields relied on these missing values for their computed expressions, the system defaulted to displaying them as empty.
Solution
We updated the Bid Detail Search logic to ensure all necessary cost columns are included in the underlying query. The "Actual Cost" and "Actual Cost Variance" fields now correctly calculate and display their values, providing accurate financial oversight within the search interface.
Crewing
Date Error Attempting to Create Crewing Event - 32231
Resolved an issue where creating a new crewing event using the calendar date selection caused duplicate dates and unexpected behavior. This included duplicating the current row, placing additional rows out of order, and repeatedly locking the row selector on the first entry.
The root cause was a regression introduced during the Job Crewing Phase 1 modifications, which negatively impacted the date handling and row sequencing logic within the crewing event interface.
Solution
We corrected the date selection and row management logic for crewing events. Users can now successfully create events via the calendar picker without encountering duplicate rows or indexing errors, ensuring that all data is recorded accurately and in the correct sequence.
Crewing Jobs Omitting Some Event Dates, Doubling Others - 32232
Resolves an issue where, depending on timezone and how close an event start/end time is to midnight, some dates were skipped when creating the crew schedule for a new crew position on a job. This could lead to incomplete scheduling data or overlapping entries that required manual correction.
The root cause was a timezone handling discrepancy in the date calculation logic for events scheduled near midnight, which caused the system to miscalculate date boundaries and skip or duplicate specific calendar days.
Solution
We updated the date generation logic to correctly account for timezone offsets and midnight transitions. The crew schedule now consistently displays all Air Day activity dates without omissions or duplications, ensuring accurate scheduling across all timezones.
Framework, Dashboards, Fundamentals
MCR Opens Incorrect Order During Auto-Refresh - 31523
Resolved an issue in the Master Control Room (MCR) list where clicking an order would occasionally open a different record than the one selected. This occurred when an auto-refresh cycle triggered at the exact moment of user interaction, disrupting high-volume monitoring workflows.
The root cause was a timing race condition between the background auto-refresh mechanism and the row-selection logic, which caused the internal row identifiers to shift before the application finalized the request to open the specific order.
Solution
We implemented an enhanced synchronization mechanism that passes specific validation tokens during the click event to verify the integrity of the selection. The system now ensures the exact order clicked is the one opened by the backend, maintaining accuracy regardless of auto-refresh timing.
Unable to Delete a Space in Text Field After Copying Over Next Empty Cell - 32266
Copying text from a grid field and accidentally selecting part of an adjacent empty cell resulted in an unremovable trailing space when pasted into another field. This forced users to delete and re-type the entire entry to correct the formatting, hindering data entry efficiency.
The root cause was a limitation in the text field's input validation that prevented the deletion of certain whitespace characters once they were committed to the field during a paste operation.
Solution
We updated the grid update logic to properly handle and allow the removal of trailing spaces. Users can now edit or delete these extra spaces manually after pasting without needing to clear the entire field.
Unable to Move Documents to a Split Screen Dashboard - 32279
Resolved an issue where document tabs could not be successfully moved into a split-screen dashboard layout. This prevented users from effectively organizing their workspace and multi-tasking across different document views.
The root cause was an error in the UI logic that incorrectly handled the assignment of panels to the child list of a parent dashboard container, causing the move operation to fail.
Solution
We updated the dashboard management logic to properly handle panel transitions between screen segments. Documents can now be moved freely into split-screen configurations, and the system correctly displays the content without encountering "already open" errors.
Closing a pane closes all panes - 32281
Resolved an issue when using a split-screen layout with two open documents. If a document was closed from one pane, both documents were unexpectedly closed and the split layout (including the splitter bar) was removed. The expected behavior now works where only the selected document is closed, with the remaining document and split layout preserved.
The root cause was a logic error during the "close pane" sequence where the system failed to correctly identify the remaining sibling panes. Instead of checking the specific dashboard where the pane was being closed, the system used an incorrect index, resulting in the entire dashboard closing when it detected only one pane remaining.
Solution
We updated the dashboard management logic to correctly track pane indices during a close event. The system now accurately identifies the current dashboard's active panels, ensuring that only the targeted document is closed while maintaining the split-screen layout for any remaining documents.
Dashboard Tabs Incorrectly Change Names - 32284
Resolved an issue where closing all tabs in a Dashboard and opening a new application or document could lead to duplicate Dashboard tabs. These duplicate tabs would incorrectly display the name of the second Dashboard, creating confusion during navigation.
The root cause was a logic error where the dashboard did not fully terminate upon closing its last pane, leaving stale references that caused naming conflicts when subsequent dashboards were opened.
Solution
We corrected the dashboard termination logic to ensure that a dashboard is fully cleared when its final pane is closed. This includes resetting internal arrays to ensure that subsequent dashboard and document tabs are created with the correct, unique titles.
Save Failed Error Message - 36452
Resolved an issue where users encountered a confusing "Save failed" error message when attempting to edit specific records without the necessary security rights. The error message previously included redundant text, making it difficult to identify the exact permission issue.
The root cause was a formatting inconsistency in the core application logic: a legacy string prefix was appended to error messages that already contained their own failure descriptions, resulting in a cluttered, repetitive notification.
Solution:
We updated the error handling logic to provide cleaner, more concise feedback. The "Save failed" prefix has been standardized to ensure that, when a permission error occurs, the message is displayed clearly without unnecessary repetition, making it easier for users to understand why an action was restricted.
Query Expression Loading - 36461
Resolved an issue where the system automatically loaded all columns from a flex list expression, regardless of whether that expression was required for the current layout. This caused unnecessary data processing and could impact performance when viewing lists.
The root cause was a lack of conditional logic in the SQL generation process, which failed to verify if an expression was actually in use before fetching its associated columns.
Solution:
We updated the query logic to ensure that columns from an expression are only loaded when the expression is explicitly required or included in the layout. This optimizes data retrieval and improves overall system efficiency.
User-Selected Job Status Colors Not Reflecting in Work Order Search - 38445
Resolved an issue where Job Status colors configured in User Preferences were not being applied to the Job status field within the Work Order Search list. This made it difficult for users to visually identify the status of linked Jobs at a glance, impacting navigation efficiency.
The root cause was a missing data mapping in the Work Order list's display logic; the system was retrieving the status text correctly but failing to fetch and apply the associated color metadata from the user's customized preference settings.
Solution
We updated the Work Order search list to properly integrate with the User Preference color configurations. The Job status field now correctly displays the user-defined background colors, ensuring visual consistency across all search documents.
Operations Search List on a Dashboard Not Displaying Results on the First Page - 38671
Resolved an issue where an Operations List on a Dashboard set to display only "Ready" operations would show invisible rows, requiring users to page forward multiple times to find the intended data. This behavior disrupted the user's ability to quickly view and manage active tasks.
The root cause was an architectural limitation in custom layouts that utilized the "Operation Sources" table without the parent "Operations" table present. Because the system was paginating based on the parent records—some of which contained no source information—the first several pages of the results appeared blank to the user.
Solution
We updated the Operations List logic to detect when the parent table is absent from a custom layout. In these instances, the system now automatically filters the retrieval process to only include operations with valid source information, ensuring that results are displayed correctly starting from the very first page.
Multi-select popup missing Confirm and Cancel buttons in Full Screen Mode - 39254
Resolved an issue where the header text and action buttons (Confirm/Cancel) were not visible when interacting with a multi-select pop-up field in full-screen mode. This prevented users from applying or saving their selected values while in this view.
The root cause was a limitation in the dialog management logic where a single instance was used for all multi-select pop-ups, which failed to adjust its visibility and layout when transitioning between normal and full-screen modes.
Solution
We updated the interface logic to properly reset and recreate the multi-select dialog whenever the screen mode changes. This ensures that the Confirm and Cancel buttons are correctly rendered and accessible in both standard and full-screen views.
Title Hierarchy Facade (Doc Id 10491) has an incorrect Document description - 39262
Resolved an issue where the Title Hierarchy Facade document was incorrectly labeled with a description of "Taker Emails." This caused confusion for users attempting to identify and access the correct document within the system library.
The root cause was a data corruption issue that occurred when a document ID was repurposed from a legacy system document. The prompts were checked in from a database that inadvertently merged the old descriptions with the new record.
Solution
We updated the document prompts to ensure that Doc ID 10491 correctly displays the "Title Hierarchy Facade" description. All legacy descriptions have been removed to restore accurate labeling for the title hierarchy tools.
Missing Dashboards After User Profile Updates - 39726
Resolved an issue where a user's dashboard assignments were inadvertently removed when their Role or Profile was updated. This resulted in the loss of access to critical operational views, such as the Schedule Book and Calendar gadgets, even when the new Role maintained the necessary security permissions.
The root cause was a validation error within the dashboard management logic. The system failed to correctly recognize permissions for specific scheduling components because it was attempting to match the record against an internal identifier that did not align with the user's primary permission set during the role transition.
Solution
We updated the dashboard validation logic to ensure consistent identification of the Schedule Book and Calendar views. The system now accurately verifies permissions during role changes, ensuring that all assigned dashboards remain intact and visible to the user.
Jobs, Orders, Billing (Job Management)
Not Loading WO Template When Updating The Resource On Schedule Book - 33769
Resolved an issue where dragging a booking to a new resource on the Schedule Book could result in incorrect transaction lines. In some cases, resources from the previous Work Order template were retained or layered alongside the new template's resources, causing duplicate or conflicting entries.
The root cause was a failure in the template update logic to properly clear existing child transactions before loading the data for the newly assigned resource.
Solution
We updated the Work Order template logic to ensure a clean transition when resources are changed. The system now correctly prompts users to replace existing transactions, ensuring that only the relevant template data is applied to the booking.
Load Actual Template list order not working correctly - 36429
Resolved an issue where detail rows in an Actuals Action Template were not saved in the correct order. This caused the template to load rows in the wrong order, impacting the accuracy of template-based entries.
The root cause was that new data rows were being added to the data table before the display sequence was set. This resulted in incorrect sorting identifiers being assigned to the rows within the user interface.
Solution
We updated the logic to ensure the display sequence is set before a new detail row is added to the data table. This ensures that templates now load and display rows in the correct, intended order.
Partial Billing Code Launches Billing Codes List with Inaccurate Information - 36436
Resolved an issue where entering a partial Billing Code in a Bid Detail row and tabbing out of the field would display search results with inaccurate data. Specifically, optional columns like the "OOP" checkbox would incorrectly appear blank, leading to potential data entry errors and confusion regarding item statuses.
The root cause was a framework-level issue where the lookup entry logic failed to load optional columns when a search returned multiple results. This occurred because a specific configuration was incorrectly filtering out these additional data fields during the initial search population.
Solution
We corrected the framework's lookup logic to ensure all relevant columns are populated during a partial ID search. Users will now see accurate and complete information, including all optional checkboxes and status indicators, immediately upon tabbing out of the field.
Query Timeout Issue - 36448
Resolved an issue where performing a Job search from Order Transactions caused a query timeout error when computed columns were included in the results. This performance bottleneck prevented users from efficiently retrieving transaction data for jobs with a large volume of activity.
The root cause was an inefficient SQL join structure in the transaction list; the system attempted to process a high volume of joins and computed columns before applying the job filter, leading to excessive processing times and connection timeouts.
Solution:
We optimized the database query logic by moving the job filter to the beginning of the search process. This ensures the system only processes relevant records from the start, significantly improving performance and eliminating timeout errors during job-based searches.
HTML Tags Showing for WO Note on Order Form - 36451
Resolved an issue where the Work Order Note field displayed raw HTML tags instead of rendered text when viewed from the Order Form. This made notes difficult for users to read and interpret within the layout.
The root cause was an incorrect data subtype configuration for the specific work order note column, which caused the system to treat the content as plain text rather than Rich Text Format (RTF).
Solution:
We updated the field properties to correctly identify the content as RTF. The Work Order Note now properly renders formatted text on the Order Form, ensuring notes are clear and legible for users.
Changing Job Type Changes Rate Card on Job Based on Customer's Setup - 38729
The system was executing a "Reset to Default" logic whenever the Job Type was changed, causing the Rate Card field to update unexpectedly. This behavior disrupted workflows where specific rate card associations needed to be preserved despite changes to the job classification.
The root cause was that the job logic bypassed specific configuration conditions—defined in TDO 52813—when a Job Type was modified, leading the system to trigger a standard customer rate card lookup instead of respecting the existing setup.
Solution
We updated the logic to ensure the Rate Card only updates during a Job Type change if specific criteria are met, such as the Job & Customer Preference being enabled. The system now correctly maintains the current Rate Card if no new association is explicitly defined for the new Job Type.
Unable to Post Invoice Batches - 39178
Resolved an issue where generating invoices for Work Orders linked to Purchase Orders would fail with a database error. This prevented affected invoice batches from posting and caused work-in-progress (WIP) data to remain unbilled longer than intended.
The root cause was a mismatch between Accounts Payable and Accounts Receivable categories during the invoice generation process. When a Purchase Order was attached, the system incorrectly attempted to use an AP category ID that did not exist within the AR category table, triggering a database constraint violation.
Solution
We updated the invoice generation logic to ensure the system no longer attempts to map AP-specific categories into AR distribution rows. The system now correctly identifies the required G/L accounts without relying on mismatched category IDs, allowing invoice batches to post successfully regardless of the Purchase Order link.
Billing Reflected Incorrectly for Split Regular and Overtime Hours - 39211
Resolved a critical billing error where Work Order transactions incorrectly retained "Regular" actual hours after a payroll recalculation shifted those hours to "Overtime." This caused the transaction's billing rate to be incorrectly set to "Multi," leading to doubled billing entries and inaccurate financial totals.
The root cause was a synchronization failure during the update of work order actuals; while the system correctly added the new overtime hours, it failed to remove the stale regular hour records from the transaction when the payroll sequence changed.
Solution
We updated the billing logic to ensure that regular actual actions are strictly removed when a payroll recalculation shifts those hours to overtime. The system now correctly aligns the transaction billing rate and hours regardless of the order in which time card details are entered.
Custom Work Order List Layout Excel Export Errors - 39714
Resolved an issue where attempting to export records to Excel from the Work Orders search results would trigger an "Object Reference not set" error when using a custom site layout. This prevented users from successfully generating reports and extracting data for external analysis.
The root cause was a conflict in the export helper logic regarding organization template naming conventions. The system incorrectly performed a global string replacement on specific internal identifiers within the column names, leading to a null reference when the application attempted to map the custom fields for the export.
Solution
We updated the export helper logic to precisely target and remove internal identifiers only when they appear as suffixes. This ensures that custom organization fields are correctly identified and processed during the Excel export, allowing the generation of reports without internal errors.
Media Order
Usability | All Source Dropdown Fields - Resetting - 27639
Resolved an intermittent issue in the Source grid where dropdown fields would unexpectedly reset to their original values during rapid data entry. Users experienced silent data loss that required manual re-entry, particularly during high-volume workflows.
The root cause was a timing race condition within the grid control's initialization sequence; when a new row was created, the background process for populating default values would occasionally trigger after the user had already interacted with the dropdown, causing the manual entry to be overwritten.
Solution
We updated the grid control logic to prioritize user-inputted data. The system now checks for active selections before applying background defaults, effectively "locking" the user's choice during the initialization window.
Order Transactions In/Out Date/Time not auto setting per WO - 34042
Resolved an issue where clearing the Due Date or Due Date Out fields on a Media Order Service Row failed to reset the Service Row Start/End dates to match the parent order. The system continued to apply inherited values from the Service Spec, preventing the expected synchronization of dates when the fields were emptied.
The root cause was a failure in the date handling logic to consistently recognize the "clear" state of the Due Date fields. Because these states were ignored, the system defaulted to Work Order start/end times instead of deriving the correct In/Out values from the task's completion hours or the order's duration.
Solution
We updated the interface logic to properly detect when Due Date fields are cleared by the user. The system now automatically resets the Service Row dates to align with the parent order upon clearing, ensuring that transaction timing remains accurate and consistent across the workflow.
Usability | Service fields - Disappearing text - 34974
Resolved an intermittent issue where editing a Service row dropdown on a Media Order failed to retain user input. The selected value would frequently "snap back" or revert to its original state before the user could finish typing or confirm the selection, causing significant frustration during data entry.
The root cause was a race condition between the background grid refresh cycle and the UI's inline editor initialization. A background synchronization process would occasionally trigger a DOM re-render at the exact moment of user interaction, replacing the active editor with stale data from the server.
Solution
We implemented a state-management "shield" that detects when a user is actively editing a field and defers any background refreshes until the interaction is complete. This ensures that the local user input remains the priority and prevents the system from overwriting active changes with background data.
Template Sequence Row Numbers Shuffling - 36403
Resolved an issue where moving rows within the Service Template Details list caused row numbers to display out of order. This visual shuffling occurred when updating the grid or rearranging header rows, leading to a confusing and inconsistent sequence for users.
The root cause was a synchronization failure between the user interface and the backend during sequence updates. A calculation error in the document logic, combined with the frontend's failure to re-index row numbers after a move operation, allowed the display to fall out of sync.
Solution
We updated the sequence logic to ensure that row insertions are calculated accurately across all display modes. Additionally, the interface now forces a complete refresh of the row index following any move operation, ensuring the template sequence remains in the correct order.
Media Order / Transmission Shared Functionality
Media Orders and Transmission Orders Lists Not Finding Orders by Order No. w/o Sequence - 31395
Resolved an issue where Media Orders and Transmission Orders could not be retrieved using only the Order Number on their respective lists. While these orders were searchable within the general Work Orders list, they failed to appear in specific order type lists unless the exact sequence number was included in the search criteria.
The root cause was a code regression introduced during a merge from a previous version. This specific commit altered the search logic, causing the Media and Transmission order lists to strictly require sequence identifiers, unlike the more flexible search functionality used by Work Orders.
Solution
We updated the Media Order and Transmission Order search logic to align with the standard Work Order search behavior. Users can now find orders using just the Order Number, though the results remain filtered to the specific order type associated with the list being viewed.
MO/Xmit Order Set to Inactive Phase by Service Status Update - 36404
Resolved an issue where updating a Service Status in a Media or Transmission Order could inadvertently set the entire Work Order to an inactive Phase. This occurred because the system failed to verify the "Active" status of the targeted Phase, leading to orders being moved into restricted states without warning or user consent.
The root cause was a validation gap in the status update logic; the system was programmed to trigger Phase changes based on service milestones but did not include a check to ensure the destination Phase was currently active and valid for the order.
Solution
We updated the order management logic to include a mandatory status check during Service Status transitions. The system now verifies that a Phase is Active before allowing an automatic update, ensuring that Media and Transmission Orders remain in the correct, functional lifecycle stage.
Media Purchase Order
Creating Purchase Order from MO Service Search - 36457
Resolved an issue where attempting to automatically create Purchase Orders from multiple Media Order Services triggered a "Can't lease document" error. This prevented the system from successfully generating Purchase Order details for all selected services.
The root cause was an asynchronous background process that added documents to an "obsolete wake" for purging. Because this process occurred independently of the save operation, subsequent changes would fail if the document was not yet up to date in the cache.
Solution:
We updated the system to purge the Purchase Order document and increment its generation directly as part of the save process. This ensures the document status is always current during bulk creation, allowing multiple Purchase Orders to be generated without errors.
Payroll Rules, Scheduling Counters & Personnel Rules
Update Earned in Entitlements Fails - 36444
Resolved an issue where updating earned entitlements failed when the "Special Holiday" penalty type was not configured to accumulate entitlements. This prevented the system from correctly calculating and crediting entitlement hours to resources.
The root cause was a configuration mismatch where the specific counter used for special holidays was set to not accumulate, causing the update action to ignore valid time entries.
Solution:
We updated the system logic to ensure that entitlements are correctly processed when the "Accumulate Entitlement" setting is enabled. Users can now successfully execute the Update Earned Entitlement action to credit resource hours as expected.
Purchase Order
Clear Export Date Fails on PO Invoice Reconciliation List - 36426
Resolved an issue in the PO Reconciliation List where the 'Clear Export Date' action resulted in all highlighted rows being skipped. Although the export date was successfully cleared in the background, users were presented with an error message indicating that the rows were not processed.
The root cause was the use of an incorrect message tag when building the informational message for the user, which incorrectly flagged the successful clearing of the export date as a skipped action.
Solution
We updated the message handling logic to use the correct tag for the 'Clear Export Date' action. The system now accurately reports successful updates, and the Export Status is correctly updated to "Available" without erroneous skip notifications.
Issues with Item Code Facades - 36446
Resolved an issue where the "Item Code Facade" option was incorrectly displayed in the Purchase Order New menu, even when system preferences were set to hide it. Additionally, when adding rows to Vendors or Vendor Item Codes, the system failed to dynamically replace the "Next" placeholder with the assigned identification number upon saving, requiring users to close and reopen the document to see the update.
The root cause was missing logic in the application module list to correctly filter maintenance options based on Purchase Order preferences, combined with a display refresh failure that prevented the UI from updating placeholder text with generated IDs after a save operation.
Solution:
We updated the Purchase Order menu logic to strictly adhere to user preferences, ensuring the Item Code Facade option only appears when explicitly enabled. We also corrected the data refresh behavior so that generated ID numbers immediately replace placeholder text in the Vendors and Vendor Item Codes sections upon saving the record.
View /Edit Costs in PO Detail Changes Pricing to N - 36458
Resolved an issue where using the "View/Edit Costs" action from a Purchase Order Detail incorrectly reset the rate and changed the Quantity Price setting to "N." This also caused the Costs button and associated actions to become disabled, preventing further edits to the row.
The root cause was a functional gap in the Item Code Pricing logic combined with a software exception that occurred when closing the cost view without making changes.
Solution:
We updated the Purchase Order Detail logic to ensure that viewing or editing costs preserves the existing rate and pricing settings. The system now correctly handles the "View/Edit Costs" action without disabling interface elements or triggering errors upon closing the window.
Reporting
Excel Report Download Creates Multiple Sheets - 38775
Resolved an issue where exporting a standard, continuous report to Excel would generate multiple individual worksheets instead of a single file. This made it difficult for users to analyze and manage data within a single spreadsheet.
The root cause was an architectural limitation in the report engine that forced all reports into a "page-by-page" export mode to accommodate complex merged reports. Additionally, the system was not respecting the specific "Single File" export configuration defined within the Report Designer.
Solution
We updated the report engine to correctly respect the export settings configured in the Report Designer. Standard, non-merged reports now correctly export to a single Excel sheet as intended, while merged reports continue to utilize multiple sheets to ensure data integrity.
Scheduled Reports
Change in XLS/XLSX Export Behavior - 31484
A change has been implemented to ensure that the Excel export behavior respects the export mode configured in the report layout.
Previously, when exporting reports to XLS/XLSX, the layout export mode setting was ignored, and all reports were exported as a single sheet in a single file, regardless of the layout configuration.
With this update, the system now honors the export mode defined in the report layout. As a result, some existing reports may render differently when exported to Excel.
Customer Impact Reports that previously exported to a single sheet may now produce multiple sheets if the layout is configured for Page-by-Page Excel export.
Action / Recommendation
If a single-sheet Excel file is required, update the report layout: Report Editor → Report → Behavior → Export Options → XLSX Export Mode → “Single File”
Scheduling
Non-shared Views Entered in Criteria of Scheduling Reports Causes Errors - 28144
Resolved an issue where running a report that included a Scheduling View not shared with the user would result in a "Scheduling View is not allowed" error. This prevented users from accessing necessary reporting data if they did not have explicit sharing permissions for the underlying view, even if the report itself was available to them.
The root cause was a validation logic error that incorrectly restricted report execution for users who were not the private owners or direct sharers of the scheduling view used within the report's criteria.
Solution
We updated the reporting logic to ensure that scheduling reports now run successfully when the selected view is properly assigned or shared. Users can now run reports containing these views without encountering access errors, provided the view is part of their assigned scheduling views.
Unable to update Status of multiple Time Offs from the Schedule Book - 34983
Resolved an issue where the Edit Roster window, opened from the Schedule Book's right-click menu, was completely disabled when multiple records were selected. This prevented users from performing bulk status updates or modifications to time-off entries, forcing them to edit records individually.
The root cause was a validation logic error that enforced "Allow Change" restrictions intended for single-record edits across multi-select scenarios. Because the system incorrectly evaluated the relationship between the group selection and the underlying configuration, it defaulted to a disabled state for the entire interface.
Solution
We updated the Roster update logic to properly account for multi-selection workflows. The system now correctly evaluates the state of selected records, ensuring the Edit Roster window remains interactive and allows for batch updates as intended.
Order Times when dragging on Schedule View/Book with zoom level 3 are not displayed correctly - 35026
Resolved an issue in the Schedule Book where dragging to create a booking at zoom level 3 displayed an incorrect time preview, often shifting the range two hours earlier than intended. This caused the New Booking window to populate with incorrect start and end times, forcing users to manually correct the data.
The root cause was twofold: a rounding error in the time formatting logic that incorrectly handled interval boundaries, and a grid calculation error that failed to account for days partially scrolled off-screen, leading to inaccurate snapping during horizontal navigation.
Solution
We updated the schedule calculation logic to use exclusive boundaries for time blocks, ensuring that specific hours snap to the correct interval without overlap. Additionally, the system now correctly identifies the position of all on-screen days during a scroll, ensuring that drag-and-drop interactions remain accurate at all zoom levels.
'Add Resource(s)' for WO in Schedule Book Doesn't Work - 36402
Resolved an issue where right-clicking a Work Order block in the Schedule Book and selecting "Add Resource(s)" failed to add a resource to the order. While the function worked correctly for individual transactions, it was non-responsive when used directly on a Work Order block added via the Items configuration.
The root cause was that the "Add Resources" logic did not account for order-type bars that lacked a specific transaction number, causing the command to fail for these high-level blocks.
Solution
We updated the Schedule Book logic to correctly handle order-type bars. The "Add Resource(s)" function now successfully identifies the underlying order and adds resources as intended, regardless of whether a transaction number is present on the visual block.
Scheduling Resources List Issue With Nested Qualifications (Style Code 'Q') - 36408
The system was failing to return data for nested Qualifications tab pages on the Resources document when configured with a specific Style Code. This caused the expand icon to appear even when no matching data was displayed, leading to confusion regarding available records.
The relationship between parent and child tables in the nested master/detail configuration could not be established by the grid control.
Solution
We updated the data source logic for the detail grid to correctly identify and maintain the parent-child relationship. The system now accurately retrieves and displays nested qualifications when the Style Code criteria are met.
Reordered Items not saving in Schedule View - 36440
Resolved an issue in the Schedule Book where items could not be resorted even when the 'Specify Seq' setting was active. This prevented users from manually organizing their schedules, as items would not retain their new positions after being moved.
The root cause was related to how new rows were handled in the grid; when a row was added, it was assigned a fixed position identifier that overrode the display sequence logic, causing the drag-and-drop repositioning to fail.
Solution
We updated the grid logic to reset the position identifier when a row is dragged. This ensures that all items, including newly added ones, are correctly sorted by their display sequence, allowing for seamless reordering in the Schedule View.
Phase Dropdown is not Filtered By Phase Class in SB Quick Add Popup - 36443
Resolved an issue where the Phases list in the Quick Add popup within the Schedule Book did not correctly filter based on the user's Phase Class security settings. This allowed users to potentially see and select phases they were not authorized to use.
The root cause was an issue with the phase list caching mechanism, which shared the list across all users. If a user with high-level permissions (such as a super user) opened the Schedule Book, the full list of phases was cached and subsequently displayed to all other users regardless of their individual security restrictions.
Solution:
We updated the Schedule Book logic to ensure the Phase dropdown is correctly filtered by the active user's Phase Class security. The system now validates permissions for each individual user session, preventing unauthorized phases from appearing in the Quick Add popup.
Scheduling Book Client-Side Error - 36449
Resolved an issue in the Schedule Book where repeatedly opening and saving a quick hold through the edit popup sometimes resulted in an unhandled "Client-Side" error. This intermittent failure disrupted the scheduling workflow and required users to refresh the application.
The root cause was a timing conflict involving a 800ms double-click timer; if the Schedule Book refreshed while the timer was active, the system would attempt to trigger an action on a controller that had already been destroyed.
Solution:
We updated the Schedule Book logic to properly manage the lifecycle of background timers. The system now ensures that pending actions are cleared if the interface refreshes, preventing the client-side error and providing a more stable experience when managing quick holds.
Calendar Selection Highlight Fails When Logged In with Non-English Language - 36455
Resolves an issue where the Schedule Book date picker failed to highlight selected dates when the user is logged in with a language other than English. This prevented users from clearly seeing their current selections when navigating the calendar interface.
The root cause was a failure in the system's ability to parse date strings into date objects when the application was set to a non-English language. Because the parsing failed, the highlighting logic was never triggered for the selected dates.
Solution:
We updated the calendar logic to retrieve date objects directly via the Kendo calendar object rather than relying on string parsing. This ensures that date selections are accurately identified and highlighted regardless of the user's language settings.
Select Quick View Option Removed from Schedule Book - 36593
Resolved an issue where the "Select Quick View" option appeared in the Schedule Book Actions menu but did not function correctly, failing to display or expand groups. This legacy feature was not intended for the Schedule Book interface and caused confusion when accessed.
The root cause was the accidental inclusion of a specialized action menu item—originally designed for Resource and Group lists—within the general Schedule Book menu where it lacked the necessary supporting logic.
Solution:
We removed the "Select Quick View" option from the Schedule Book Actions menu to streamline the interface and prevent non-functional commands from being displayed. This feature remains available and fully functional within the Resources and Groups menus where it was originally intended to reside.
Entitlement Notifications Not Displaying When Vacation Days Exceeded - 38099
Resolved an issue where users did not receive warning notifications when manually applying entitlement time that exceeded their available balance. This resulted in a mismatch between scheduled, applied, and recorded hours, often showing fewer hours taken than were actually used.
The root cause was a validation failure in the time-application logic which did not correctly handle cases where the system passed a zero value for manually applied roster entitlements. Because the system compared the request against zero rather than the actual computed amount, overages were not detected.
Solution:
We updated the entitlement validation logic to accurately derive the requested hours or days before performing overage checks. The system now correctly identifies when an entitlement limit has been reached or exceeded and displays the appropriate warning prompt to the user.
Resource Inventory: Append (+) Barcode Option Not Available in Barcode Details Tab - 38102
Resolved an issue in the Resource Inventory utility where the Duplicate button was incorrectly available in the Barcode Details grid, while the Append and Delete buttons were sometimes hidden during an active inventory session. The presence of the Duplicate button could lead to data entry errors, as inventory barcodes must be unique.
The root cause was that the underlying system class did not explicitly control row-level operations for inventory details. This allowed the framework to default to a standard "editable" state—enabling the Duplicate button—without accounting for the unique constraints and specific workflow requirements of barcode-based inventory tracking.
Solution:
We updated the Resource Inventory logic to strictly manage available grid actions during an "Inventory In Progress" state. The Duplicate button has been removed to prevent errors, and the system now ensures that the Append (+) and Delete (-) buttons are correctly displayed and functional for manual barcode management.
Quick Hold – Save / Save & Close Fails Based on Entry Order - 38602
Resolved an issue in the Quick Hold document where the system would fail to save or provide feedback if the Resource field was populated before other mandatory fields. Instead of receiving a validation warning, users experienced a silent failure that prevented the record from being saved without explanation.
The root cause was a missing null check within the validation logic. When the Transaction Begin or End dates were left blank, the system encountered a software exception that blocked the display of all subsequent mandatory field messages.
Solution:
We updated the validation process to properly handle empty date fields. The system now correctly identifies missing mandatory data and displays the appropriate warning messages to the user, ensuring the Quick Hold can be saved successfully once all required information is provided.
Date Picker and "Today" Navigation Errors in Schedule Book - 38635
Resolved an issue where the date picker and "Today" action button would default to the previous day if the user's local system time lagged behind the application's configured timezone. This caused the interface to visually reflect the wrong date, leading to confusion during navigation and scheduling.
The root cause was the application's reliance on the browser's native JavaScript date constructor, which captured the user's local machine time rather than the specific application or server timezone settings.
Solution
We updated the date picker and navigation logic to retrieve time data directly from the application's internal calendar objects. This ensures that the date picker highlights the correct day and the "Today" button navigates to the expected date based on the active timezone setting, regardless of the user's local computer time.
Schedule Book :: Duplicating Multiple Orders Simultaneously Copies Them to the Wrong Date - 39371
Resolved an issue in the Schedule Book where using the "Duplicate All" function on multiple selected orders would cause the copies to be created two days prior to the intended target date. This discrepancy forced users to manually locate and move duplicated orders, significantly disrupting high-volume scheduling workflows.
The root cause was a time zone handling error during the multi-select duplication process; the system failed to correctly apply the active schedule's time zone offset to the target date, resulting in a date shift during the record creation sequence.
Solution
We updated the duplication logic to ensure that the target date is properly validated against the active time zone before the new orders are generated. The system now correctly honors the selected date for all duplicated items, ensuring visual and data consistency across the Schedule Book.
Schedule Book Bar Hover Cuts-Off when Order has a long list of Transactions (23+) - 39738
The schedule book hover text was being cut off when a work order contained a long list of transactions. This resulted in the filter options and hover content becoming partially inaccessible to users.
The issue was caused by the system failing to account for maximum height limits and automatic overflow behaviors when displaying notes and lists within the bar hover pop-overs.
Solution
We adjusted the style sheet to properly handle overflow content within the hover pop-overs. Users will now see a scrollbar if the content exceeds the display height, ensuring all information and filters remain accessible.
MySchedule Gadget Not Displaying Text Properly in Week View - 39742
Resolved a display issue in the MySchedule gadget where text on booking bars was cut off or rendered incorrectly when using the Week View. This prevented users from reading critical information, such as room assignments, directly from the calendar interface.
The root cause was a recent update to the overflow styling intended for the Schedule Book hover text; this implementation did not account for the specific layout requirements of the calendar gadget, leading to negative display side effects in the agenda and week views.
Solution
We adjusted the CSS styles to ensure that text overflow is handled correctly across all scheduling components. The MySchedule gadget now displays booking text properly without interference from other hover-text configurations, restoring full visibility to calendar entries.
Schedule Book not Refreshing Properly in Dashboard Views - 39839
Resolved an issue where the Schedule Book would stop refreshing or experience significant performance degradation when multiple view panels were open simultaneously within a dashboard. This caused the interface to become unresponsive or slow to update, disrupting real-time monitoring and scheduling workflows.
The root cause was a resource contention issue where multiple background update processes were attempting to access shared dashboard resources simultaneously. This led to a timing conflict (deadlock) that prevented the refresh cycle from completing effectively.
Solution
We optimized the dashboard update logic to handle concurrent refreshes more efficiently and reduced the duration of resource locks. These changes ensure that all Schedule Book panels refresh reliably and maintain high performance, even in complex multi-panel dashboard configurations.
An internal error message is displayed when attempting to move any row using the drag move icon in the Items section - 39886
Resolved an issue where attempting to drag and move a row within the Items section would trigger an internal error message. This prevented users from manually reordering items, disrupting workflows that require specific sequence management.
The root cause was a failure in the system to handle empty or "null" sequence values during the sorting process. When a user attempted to move a row that had not yet been assigned a database identifier, the application encountered a calculation error that halted the operation.
Solution
We updated the sequence sorting logic to safely handle unassigned or null values during drag-and-move operations. The system now correctly processes the reordering of all rows, ensuring a stable and error-free experience when organizing items.
Duplicate Screen Issues - 39912
Resolved several performance and visual issues within the Duplicate Screen windows, including a significant "hang" or lag when opening the Job Duplicate screen. Users also reported that the first day of the month would occasionally appear pre-selected, and multi-date selection using the Shift key would momentarily highlight incorrect dates.
The root cause was a combination of an inefficient asynchronous rendering process for calendars, which caused the framework to attempt to refresh controls before they existed, and a focus-ring conflict that utilized the same styling as an active date selection.
Solution
We updated the duplicate screen logic to generate all calendars synchronously, ensuring the interface is fully built before the framework attempts a refresh. Additionally, the styling logic was refined to distinguish between keyboard focus and actual date selection, providing a smooth and accurate user experience during high-volume duplication tasks.
Transmission
Xmit Visualizer Permits adding Operations and Services on Invoiced Orders - 33930
Resolved an issue in the Xmit Visualizer where users were able to add new operations and services to Transmission Orders that had already been invoiced or batch posted. This bypassed standard system locks, potentially leading to billing discrepancies and unauthorized changes to finalized records.
The root cause was a missing validation check within the Visualizer interface that failed to verify the order's "editable" status before allowing interactions with the operations and services buttons.
Solution
We implemented a new verification step that checks the order status whenever a Visualizer item is clicked. If the Transmission Order is invoiced or otherwise locked, the system now prevents further additions and displays a clear error message, ensuring the Visualizer adheres to the same business rules as the standard grid.
Transmission Service Template - Object Not Set to An Instance of Object Error - 36397
Resolved an issue where editing a Transmission Service Template caused a "Null Reference" error. This occurred specifically when a user cleared the Transaction Group Code field and pressed the Enter key while the Resource Code was still populated, leading to an immediate application crash.
The root cause was a missing validation check in the code that failed to handle null values when looking up the Order Type assigned to a Group. When the group was cleared (returning null), the system attempted to reference a non-existent object, triggering the exception.
Solution
We updated the template validation logic to properly handle empty or null Group assignments. The system now correctly processes the removal of a Group code without error, ensuring that all subsequent changes to the Transmission Service Template can be saved successfully.
Performance Issues with MCR Auto-Refresh - 36522
Resolved a critical issue where the Transmission module's MCR list would become unresponsive when the Auto-Refresh feature was enabled. Users experienced significant performance lag and browser instability that persisted even after the affected tabs were closed.
The root cause was a failure in the application's timer management system; background synchronization processes were not being properly terminated when panes were closed or refreshed, leading to a continuous accumulation of unreleased memory.
Solution
We updated the module logic to ensure that all background timers and event listeners are strictly destroyed when a tab or pane is closed. This ensures that system memory is fully released, maintaining consistent performance and stability during long-running operational sessions.
Approx Out Incorrectly Added to Transaction End Time - 38269
Resolved an issue where adding a resource to a Transmission order via Order Transactions or the Schedule Book resulted in an incorrect transaction end time. These methods caused the system to incorrectly add the "Approx Out" duration to the calculated end time, which exceeded the defined order boundaries.
The root cause was an error in the timeline rendering logic where the "Approx Out" value was being added to the transaction's end date during the update process.
Solution
We updated the transaction logic to ensure that the end time is calculated correctly regardless of the method used to add the resource. The system now respects defined order boundaries and correctly accounts for "Approx Out" durations without unintentionally extending the transaction end time.
Transmission - Incorrectly prompted for additional resources when a default Service Profile is enabled - 38467
Resolved an issue where the system incorrectly triggered resource prompts for the "Default" Profile when adding a Transmission Service via the Visualizer, even if a different profile was selected. Users were forced to navigate a redundant and unnecessary prompt for a configuration that was not being added to the order.
The root cause was a double execution of the service and profile change events; the system would automatically load the default profile prompts before processing the user's actual selection.
Solution:
We updated the service selection logic to prevent the automatic loading of default profile resources when a specific profile has been chosen. The system now only displays the resource prompt for the selected profile, ensuring a streamlined and accurate scheduling workflow.
Cannot Read Properties Error In MCR Tab With Auto-Refresh Set To 3-5s - 39032
Users experienced a client-side crash when closing the MCR dashboard while the Auto-Refresh feature was active. This issue occurred because the system attempted to perform a background update on a dashboard that had already been removed from memory, leading to a "Cannot read property of null" error and a disrupted workflow.
The root cause was a frontend race condition where background processes or delayed timers continued to execute and attempt to access document properties after the associated UI component had been destroyed.
Solution
We updated the dashboard logic to include safety checks that verify if a component still exists before attempting to access its data. Additionally, a new "destroyed" flag now ensures that any pending background tasks immediately exit if the user has closed the dashboard, preventing further crashes during disposal.
Duplicated Screen Layout does not properly set the Layout Property class 12 - 39771
Resolved an issue where duplicating a screen layout would fail to correctly map specific layout properties, specifically those related to auto-expanding tree grids. This resulted in duplicated layouts containing invalid or negative block numbers, causing the screen to display incorrectly or fail to match the source layout's configuration.
The root cause was a logic error in the layout editor's duplication process which failed to identify and replace "AutoExpandAll" block values within the system's layout property table. This prevented the new layout from correctly referencing its own components after being copied.
Solution
We updated the layout save logic to properly handle and adjust block numbers for all property classes during the duplication process. The system now ensures that all layout properties, including tree grid expansion settings, are correctly re-mapped to the new layout's identifiers, maintaining visual and functional consistency with the original source.
Transmission Visualizer 'Add Service' Error - 39838
Resolved an issue within the Transmission Visualizer where attempting to add a service to an order would trigger an unexpected error. This prevented users from successfully modifying or building out transmission paths using the visual interface.
The root cause was a failure in the system to handle specific sequence numbering for work orders during the service addition process, which led to a conflict when the application attempted to assign default document identifiers to the new records.
Solution
We updated the visualizer logic to correctly process and validate work order sequences. The system now properly handles default order identifiers during the "Add Service" workflow, ensuring that services are added smoothly without errors.