This release is scheduled to go live on the evening of May 18, 2018 Pacific Time.


Web Services enhancements

Introducing Web Services authorizations

With this release, company administrators can use Web Services authorizations to control who makes Web Services requests to a given company. Previously, anyone with a Web Services sender ID could send requests to any Sage Intacct company for which they had company login credentials. Now, sender IDs must be included in a company’s Web Services authorizations list first.

Web Services authorization list

Sage Intacct will perform a onetime update to automatically add sender IDs that made Web Services requests to a company within the last six months to the company’s Web Services authorizations list. Despite this, it’s possible that integrations or other Web Services activity might fail with the following error:

<response>
    <control>
        <status>success</status>
        <senderid>test_sender_id</senderid>
        <controlid>hello_world</controlid>
        <uniqueid>false</uniqueid>
        <dtdversion>3.0</dtdversion>
    </control>
    <operation>
        <authentication>
            <status>failure</status>
            <userid>test_user_id</userid>
            <companyid>test_company_id</companyid>
        </authentication>
        <errormessage>
            <error>
                <errorno>XL03000006</errorno>
                <description>Invalid Web Services Authorization</description>
                <description2>The sender ID &#039;test_sender_id&#039; is not authorized to make Web Services requests to company ID &#039;test_company_id&#039;.</description2>
                <correction>Contact the company administrator to grant Web Services authorization to this sender ID.</correction>
            </error>
        </errormessage>
    </operation>
</response>

If this happens, ask the company administrator to review the Web Services authorizations list on the Company Configuration Security tab, and add your sender ID if it’s not present. For more information, see Web Services authorizations in the Sage Intacct product help.

The ajax sender ID must be included in the authorizations list when the Platform Services AJAX gateway is used from page scripts.


User changes

Improved Web Services user management for company administrators

The purpose of a Web Services user has not changed—it still provides company login credentials that allow for Web Services access, but not UI access. However, with this release, company administrators can create a separate Web Services user in the Sage Intacct UI directly. They no longer need to create a standard user and check the Web Services only checkbox. The underlying functionality is the same.

Partners should consider updating any documentation they provide explaining how to create a Web Services user.

New warehouse user type - coming soon!

A new warehouse user type on the USERINFO object provides access to select features in the Order Entry, Purchasing, and Inventory Control applications.

For more, see the information about the USERTYPE parameter on these functions:


Advanced Audit Trail

You can now get information about personal data access in the system. With a subscription to Advanced Audit Trail, you can track access to all records that contain personal data stored in contact, vendor, and customer records. You can return information about who made changes to the data as well who simply read it, which can be important for regulatory purposes.

Information about read access covers using listers in the UI, accessing objects that reference other objects with personal data, viewing reports, using Smart Events, and making read, readByQuery, readMore, and readByName API calls. Returned elements have an ACCESSMODE of Personal data access, for example:

<advaudithistory>
    <OBJECTTYPE>customer</OBJECTTYPE>
    <OBJECTKEY>C-0018</OBJECTKEY>
    <USERID>jjr</USERID>
    <ACCESSTIME>05/07/2018 20:11:49</ACCESSTIME>
    <ACCESSMODE>Personal data access</ACCESSMODE>
    <WORKFLOWACTION>Create</WORKFLOWACTION>
    <IPADDRESS>xxx.xxx.xx.xx</IPADDRESS>
    <SOURCE>ui</SOURCE>
    <ID>sessionidxxx</ID>
</advaudithistory>

Information about write access corresponds with information that is returned by the existing audit trails functions, with the difference that all returned elements have an ACCESSMODE of System audit.

For more information:


Platform Services and Customization Services enhancements

Change in requirements for Smart Event API calls and Smart Event emails

In previous releases, you could create a Smart Event API in the UI without providing any content for the API body. You could also create a Smart Event email without supplying a subject for the email message. Both of these error cases are now prevented, and you will be prompted if you forget to supply this information when creating new Smart Events. If you edit an existing Smart Event that does not meet these requirements, you will need to correct the problem before saving your changes.

If your Customization Services package or Platform Services application has Smart Events that do not meet these requirements, it will not be installable. You can either fix the Smart Events or remove them, then republish the package or application.

Change in requirements for conditions

In previous releases, a condition for a Smart Rule, Smart Event, Smartlink Click, or Smartlink Fetch could include an expression that resulted in a divide-by-zero or a modulo-by-zero operation. For example, a condition that divided the value of one field by the value of a second field was allowed even though the value of the second field (INVOICE.QTY in our example) might be zero:

( {!INVOICE.PRICE!} / {!INVOICE.QTY!} ) > 5000

The current release provides better error checking and prevents any such conditions from being saved in the UI. You can easily correct the problem by providing logic to test for the error case. For example, the following ensures that INVOICE.QTY is not zero before performing the division:

{!INVOICE.QTY!} != 0 && ( {!INVOICE.PRICE!} / {!INVOICE.QTY!} ) > 500

If you edit an existing Smart Rule, Smart Event, Smartlink Click, or Smartlink Fetch with one of the problematic conditions, you will need to correct the problem before saving your changes.

If your Customization Services package or Platform Services application includes one of the conditions, it will not be installable. Also, if you notice incorrect behavior in your company that might be related to a Smart Rule, Smart Event, Smartlink Click, or Smartlink Fetch, it’s possible you are using an existing Customization Services package or Platform Services application that has not been updated to address the new requirements. In either case, the solution is to fix the condition or remove the Smart “item” altogether, then republish the package or application.

Improved error message in AJAX SDK for JavaScript

UI error messages thrown by the Platform Services AJAX SDK for JavaScript have been improved for clarity and completeness. Instead of printing only the first description line of an error, the second description and any correction is also printed.


Enhancements to Contracts

Modify the GL posting date for contract lines with unbilled accounting entries

You can now specify the dates that Unbilled AR and Unbilled deferred revenue will post for contract lines.

For more, see the information about the GLPOSINGDATE parameter on these functions:

New deliver function for contract lines

A new deliver function for contract lines lets you set the delivery status and date for contract lines as part of an event-driven revenue recognition flow.

For more information:

Support for bill in advance for renewals

The API now supports bill-in-advance for contract renewals.

For more information, see the RENEWALADVBILLBY and RENEWALADVBILLBYTYPE parameters on:


Simple tax rate at the line level for Purchasing and Order Entry transactions

Previously, Simple Tax automatically applied the same tax (amounts or percentages) across all the items in a transaction for Order Entry or Purchasing. With this release, you can apply different tax rates at the line level, which lets you reduce the number of transaction definitions and streamline transaction entry.

For more, see the information about the linelevelsimpletaxtype parameter on these functions:


Reallocate previously posted revenue recognition schedule entries in Order Entry

You can now reallocate the entire revenue recognition schedule, including entries that already posted. The new unpostall parameter on reallocate_revrecschedule unposts any previously posted entries and reallocates all entries in the given time period.

See the information about the unpostall parameter:


Deliver to contact for Purchasing transactions

You can now provide a Deliver to contact for purchasing transactions to help with tax calculations. You can configure at the header level, then override for the individual line items if need be.

For more, see the information about the deliverto parameter on these functions:

Provide feedback