2022.4.1

New Features and Enhancements

Recurrence

New bundle components have been added for the in development Recurrence feature: custevent_nx_recurrence_propcomplete

Project Tasks

Project Tasks now support the Task Number custevent_nx_task_number field as a searchable, unique identifier. The Task Number field defaults to the Internal ID of the Project Task on creation.

Additionally, Project Tasks now support manually and automatically sending Service Reports. A Service Report button will appear on completed Project Tasks that allows users to preview and send the Service Report pdf in an email. Notification emails can be configured to be sent automatically on Status change on Project Tasks. Project Tasks come preconfigured with a servicereport email that uses the projecttaskreport.html email template and projecttaskreport.xml pdf template included in the bundle.

The Quote tab is now supported on Project Tasks in the app. It functions identically to the Quote tab for CRM Tasks.

Deprecated Ad Hoc Scheduled Script Deployments

The following Ad Hoc Scheduled Script deployments will no longer be generated. Instead their processing will be handled by the dedicated Scheduled Script deployment for their corresponding feature:

  • Assets

    customdeploy_nx_asset_*_uca

  • Consumables

    customdeploy_nx_case_*_usowt

  • Contact

    customdeploy_nx_proj_*_ar

  • File Management

    customdeploy_nx_update_fc_1

  • Notifications

    • customdeploy_nx_task_*_sn

    • customdeploy_nx_case_*_sn

  • Program

    • customdeploy_nx_proj_*_apc

    • customdeploy_nx_proj_*_rpc

    • customdeploy_nx_case_*_npt

  • Status Management

    customdeploy_nx_case_*_cc

  • Unbilled Amounts

    customdeploy_nx_case_*_rua

For information about how each of these scripts process, please refer to the new Documentation articles for these features.

Send To Customer

The Case field Send to Customer now defaults to false when a Case record is loaded in non-user interface contexts and the Support Preference Auto Set Reply is enabled. This allows Cases records to freely be submitting by SuiteScript, without being obstructed by an error prompting a new Message. This is configured by the module components/case/autosetreply.

Restrict Image Uploads

A new camera option for Image elements has added to restrict image capture to only directly from the device camera. Available values are:

  • false: (Default) Camera not required.

  • true: Use any camera.

  • environment: Use rear camera.

  • user: Use front camera.

QR Code Support for Barcode Scanner

The in app barcode scanner, currently available on Text and Select elements, now supports scanning QR codes for plain text values.

Search Filter for Assigned Tasks, Unassigned Tasks, and People Panels

A Search filter has been added to the Assigned Tasks, Unassigned Tasks, and People panels on the Scheduler. Users can use this to filter Tasks and Resources by searching for text found in the properties of the Task or Resource. For example, a specific Task can be searched for by typing in the Name or Number of the Task or its Case, Project, Customer, and/or Asset.

Search results will match if they contain ANY of the words in the search text. For example, a search for apple orange will return all Tasks that contain either apple or orange.

The Date Picker and Date Range Pickers in the Scheduler have been restyled as part of a migrating from legacy technologies. These components functionally are unchanged.

Bug Fixes

  • IS00348: The Generate Invoice button on the Case has been changed to only apply Time and Expenses lines that have custcol_nx_task set to a Task on the Case. The previous behaviour, that applies all Time and Expenses on the Invoice for the containing Project, can be enabled by configuring the models/case.prototype.applyCaseTimeExpenseOnly option to false.

  • IS01115: A problem was resolved on the mobile that navigated the user to the parent tab index instead of parent record form when clicking the Back button on a child tab form.

Config Changes

The following configuration options have been moved to the namespace of their corresponding feature:

  • Asset options moved:

    • models/asset.parentFields to asset.parentFields

    • models/asset.inherifFields to asset.inheritFields

  • Consumable options moved:

    • accounting.automatic_sales_order to consumable.bill

    • models/salesorder.prototype.autofulfill to consumable.fulfill

  • Contact options moved and attachments options removed:

    attachments.project.contacts.filters to contact.projectUpdateFilter

  • Notification options moved and notification.email section removed:

    • notification.task to notification.taskRules

    • notification.case to notification.caseRules

    • notification.email.taskreport to notification.taskEmail.servicereport

    • notification.email.casereport to notification.caseEmail.servicereport

    • notification.email.casereport.attachments.pdf to notification.caseEmail.servicereport.attachments.servicereport

    • notification.email.mobilelogin to notification.employeeEmail.mobilelogin

    • notification.*.attachments.pdf to notification.*.attachments.servicereport

    • notification.*.template.file to notification.*.template

  • Program options moved:

    • program.case to program.caseRules

    • program.project to program.projectRules

    • Project program fields in models/project.prototype.map to program.projectMap and program.projectData

    • Case program fields in models/case.prototype.map to program.caseMap and program.caseData

    • models/project.status.PROGRESS to program.projectInactive

    • models/case.status.NOTSTART to program.caseInactive and status.caseNotStarted

  • Status options moved and changed to formulas:

    • models/case.prototype.autoclose to status.caseCloseFormula

    • models/task.prototype.autoclose to status.taskCloseFormula

    • models/case.status.PROGRESS to status.caseOpenFormula

Templating syntax in configurations have been streamlined to one format to simplify configuration and development. Configurations using the deprecated {tag} syntax must be updated to use the now standard Template Literal ${tag} syntax.

  • views/asset/parent.schedule: Param this renamed to asset

  • models/asset.prototype.customers: Param this renamed to asset

  • model/asset.errors.duplicate: Params * moved to asset.*.

    Note:

    Duplicate template was not updated and still expects * params

  • views/asset/program.schedule: Param this renamed to asset warranty.asset: Param this renamed to asset

  • views/case/notification.schedule: Param this renamed to supportcase

  • views/case/program.schedule: Param this renamed to supportcase

  • models/customer.prototype.assets: Param this renamed to customer

  • notifications.emails.mobilelogin: Param this renamed to employee

  • models/project.prototype.address: Params * moved to project.*.

  • attachments.project: Param this renamed to project

  • notifications.emails.*: Params * except api moved to projecttask.*, task.*, supportcase.*, employee.*.

    Model functions are no longer in scope

  • routes/mobile.*: Params * moved to options.*.

    Templates still have request parameters in scope.

  • routes/scheduler.event.*.filters: Params * moved to request.parameters.*.

    Templates still have request parameters in scope

  • routes/scheduler.resource.*.filters: Params * moved to request.parameters.*.

    Templates still have request parameters in scope

  • attachments.project.contacts.filters: Params * moved to project.*.

  • views/case/projects.options: Params * moved to supportcase.*.

  • views/case/projects.schedule: Params * moved to supportcase.*.

  • views/case/tasks.schedule: Params * moved to supportcase.*.

  • views/itemfulfillment/assets.schedule: Params * moved to itemfulfillment.*.

  • views/project/subprojects.schedule: Params * moved to project.*.

Additional configuration changes include:

  • All view modules now support hidden as a configuration option to show or hide the feature.

  • Configuration property comments using the comment keyword have been made obsolete by using the // prefix. Support for comment has been dropped and must be updated in exisiting configs.

  • Searches defined in Config now no longer support referencing model maps as a source for search columns. Configuration searches must be updated to replace the use of the model option with field maps containing the required search columns. Service Reports should be checked to ensure that dependant fields previously configured as fields in models are now defined as search columns.

General Notices