December 2014 Release Notes: Version 6 R7.1 (2014_02)

Number of Items:
Category :
Number of Items:
387 Added 'Wait for Completion' item to action button operations

Implemented the possibility to add any number of 'Wait for Completion' items to the Action Button actions list.

The 'Add Wait Point' button is used to force the system to wait for the preceding action(s) to complete before running the next action or moving to the final step defined in the 'After executing actions' section. This is useful if one of the actions brings up a new window for a manual conversion or runs actions on records in a related table that should be reflected in this table's record before proceeding.

1313 Enhanced support for digitally signed emails Added support for processing digitally signed emails for the following S/MIME types: Content-Type: application/pkcs7-mime and Content-Type: multipart/signed
1315 Analyze Table button warning Previously there was no warning when an admin clicked the 'Analyze Table' button, which is available through Setup Table > Indexes tab.  Clicking the button can potentially cause the table to lock.  We have added a warning:

The Analyze table can lock the table until all the currently long running operations are completed. Please verify that there is no Import/ Export/ Long running Report or KB Backup in progress before running this action. Are you sure you would like to continue?
"Yes" ["No"]
1327 Added SFTP option to scheduled import file locations Extended possible file locations for scheduled imports by adding a login and password block for the URL option, enabling FTP and SFTP access.

The correct syntax is:

sftp://[ username[: password]@] hostname[: port][ relative-path]
1328 Ternary conditional operator works with choice fields It is now possible to calculate a numeric value based on the values in a choice list in a record.

The correct syntax is:

(($AAA == "choice value n") ? value_if_true : value_if_false)

If the value of the field AAA is "choice value n", then the value_if_true gets stored as result; otherwise, value_if_false is stored as result.

A Text field is created in the Support Cases table in Demo KB, with the formula below as the default value:

(($wfstate == "Open") ? 1 : 0) +
(($wfstate == "Reopened") ? 2 : 0) +
(($wfstate == "Closed") ? 3 : 0) +
(($priority == "Critical") ? 500 : 0) +
(($priority == "High") ? 400 : 0) +
(($priority == "Medium") ? 300 : 0) +
(($priority == "Low") ? 200 : 0) +
(($priority == "Very Low") ? 100 : 0)

A numerical value will be calculated for each record according to its Priority and Status (wfstate) values. For example, for a Support Case with 'Very Low' priority and 'Open' status, the value of the Text field would be 101.
Based on this value, customers may configure filters or if-then conditions.
1333 Changed behavior of linked field lookup popup Previously, if a user clicked the lookup icon for a linked field without first selecting a value, he was taken to another lookup popup with no records shown. The user then had to either click the GO button or input a search term and click GO to display some records.
The extra step (clicking Go) has been removed.  Now when a user clicks the linked field lookup icon, the popup window opens with all valid records displayed (i.e. those included within any saved search filter).  The user can then type text into the search box and click Go to filter further, or select a record from the records list.
1334 Available fields sorting When editing the layout for a Table, all available but unused fields are placed in the 'Available fields' area, or on the Hidden tab.  The fields listed under 'Available fields' are now sorted alphabetically to make working with layouts easier.
1335 Performance tests can be run by ewimpex tool Now performance tests and sst (unified test that measures and shows the performance of the system where Agiloft is installed) may be started from the command line with the ewimpex utility.
Syntax is as follows:
/EnterpriseWizard/bin/ewimpex run-performance-test
/EnterpriseWizard/bin/ant installer:sst
1347 Column sorting in WSDL Implemented an improvement in WSDL generation to keep columns sorted alphabetically.
1354 Sorting capabilities for link to single field with Multiple Values Enabled (MVE)

Added a new sorting option for fields of the type 'Link to single field from other table' with 'Allow the imported fields to hold multiple values'=Yes. The new option is available on the Display tab of the Field wizard, and offers choices to sort alphabetically or using the linked filter sort order.

The Linked filter sort order selection is available for both 'checkboxes' and 'value list' display options.  With the Linked filter sort order option selected, any sort order can be used, defined on the Options tab of the wizard using the Create New Linked Field Search button.

1381 Agiloft now supports Google OAuth 2.0 authentication (SSO)

Agiloft now supports Google-based OAuth 2.0 and can connect to web applications for single-sign on (SSO) authentication.  Google has deprecrated OpenID 2.0 authentication and will discontinue support in early 2015.

For help configuring Agiloft to use Google/OAuth SSO, please read our Google SSO user guide at

1383 Added better time interval options for time based rules A new option was added for rules that run at selected time intervals to allow the user to specify what time the rule runs in 5 minute increments (previously, the user was limited to 1 hour increments).  This was enabled by adding a second dropdown list to the right of the existing "Start time" option with values of: :00 :05 :10 :15 :20, etc., and adding a 3rd dropdown with values of AM/PM.

The default time value is :00 for all existing rules which already have a "Start time" value.  For rules running on an hourly interval, the Minute option is kept enabled so that the user may schedule for a minute of the hour.
1388 'Disable' and 'Enable' KB buttons in admin console Implemented a 'Disable' and an 'Enable' button next to the 'Delete' button in the admin console on the Setup > Knowledgebases tab.
The 'Disable' button does the following:
1. Logout all seances (sessions) and prevent Agiloft from creating new ones.
2. Disable email.
3. Unschedule rules and other services for a selected KB.
4. Block KB access for scripts.

The 'Enable' KB button does the opposite.

This enhancement is especially useful for "freezing" the state of a KB, such as during migration from a production to development environment.
1389 Pagination using SOAP and REST API Users are already able to go to previous / next / first / last page or a specific page when navigating lists of records in the GUI.  We have extended pagination to the SOAP and REST API.

Introduced SOAP operation EWSearchTablePaginated
  • Executes a pre-configured named Saved Search against the specified table and returns and array of record data for the records that match the search. This operation variant allows iteration through results page by page (pagination). Specify page and limit parameters to retrieve data page by page.
EWWSBaseUserObject[] os = ew.EWSearchTablePaginated(String sessionId, String tableName, String[] fieldNames, String searchName, int page, int limit);

Introduced SOAP operation EWSearchTableWithQueryPaginated
  • Executes a pre-configured named Saved Search against the specified table and/or an ad-hoc query and returns an array of record data for the records that match the criteria. This operation variant allows iteration through results page by page (pagination).
    Specify page and limit parameters to retrieve data page by page.

EWWSBaseUserObject[] os = ew.EWSearchTableWithQueryPaginated(String sessionId, String tableName, String[] fieldNames, String searchName, String query, int page, int limit);

REST API Pagination

We also added pagination support to REST API.The name of the Saved Search or an ad-hoc query may be included in the call. This operation allows retrieval of results page by page (pagination) using "page" and "limit" parameters.

Assume an instance of Agiloft is available on localhost, port 8080 and Demo KB. Now we want to retrieve extra fields in addition to the defaultones. We are retrieving data in pages 3 records at a time and are interested in the 2nd page only. The following request is issued:

http://localhost:8080/ewws/EWSearch?$KB=Demo& $login=admin&$password=qwerty& $table=case&$lang=en&search=Closed%20Cases& field=summary&field=priority&page =1&limit=3

Important note:
At this time REST interface creates a new session an performs explicit logout for each call. As such, though pagination is available, the query will always be rebuilt and re-run. Ability to create a session and issue multiple REST calls within this session (similar to SOAP interface) is in development. We recommend using SOAP interface with pagination for now.
1395 Extended time limit for storing emails on the email server Previously, the Inbound Email account wizard allowed a maximum of 31 days for storing emails on the server. The limit has now been extended, and the drop down selection is replaced by a numeric input box with the limitation of 365 days.  This option is set by navigating to Setup > Email > Configure Inbound Email > [Edit Configuration] > Access.
1397 Multiple conversion mappings for the same table Implemented the ability to set up multiple conversion mappings for the same table. Now the same record may be converted into a target table in multiple ways at different times, with different field mappings.

In the Conversion wizard, a Title field was added to differentiate between multiple conversions to the same table, and also added to the table view of conversions (see image below). By default during the upgrade, the table label is mapped into the Title.

On the Options tab, above the setting 'Allow user to reject creation of this record' we added a new higher-level option that first determines if the mapping is even available:

[ ] Include this conversion mapping if the user uses the “Convert” button on the action bar.

    [ ] Allow user to reject creation of this record (this option is greyed out if the first box is not checked)

Upon upgrade, the new option is checked to enable all existing conversion mappings, and the existing value of the second checkbox is kept intact.

If two mappings exist for the same target table and both allow conversion from the action bar, two records will be created (one for each mapping) when a user clicks Convert from the action bar.

Each conversion mapping may have different search restrictions, or no restriction, selected on the Options tab.  Therefore, when two mappings for the same target table exist, a record may match the search criteria for one mapping but not the other search restriction.  In this case, clicking the Convert button from the action bar performs only one mapping/conversion, and an error is reported about the second prohibited conversion mapping. A record that matches one search is NOT prohibited from conversion if it fails to meet the other search criteria.

There are no specific limitations when combining two or more conversion mappings in actions and rules.  For example, users may select two or more conversion mappings to run in a single action; the same rule may trigger multiple actions, each containing one or multiple conversions to the same table.
1398 Layout editor improvement The 'Available fields' grid is now automatically extended (1 empty row added at the bottom) as soon as the user uses up the last available row of cells by moving a field into it.  This means that the user always has some space to put unnecessary fields.
1399 Manage Web Services screen accurately shows groups list By default all groups are allowed to access REST and SOAP for backward compatibility.

Previously, the Setup > System > Manage Web Services screen showed the "admin" group pre-selected. Clicking Save (if this was the very first save) then changed the whitelist content and effectively disabled any other groups from accessing REST or SOAP.
The screen has been changed to always reflect the situation active in the KB, i.e. in the initial case the screen has no groups pre-selected.
1406 Enhancement to print templates to allow if-then conditions for variables Implemented the capability to insert if-then conditions for the display of particular field variables within a print template in Word.

The correct syntax is :

$if(condition) ? $field1 : $field2

The condition can be any Agiloft formula, for example:

$if ($price*$>100) ? $customer.related1234 : $related56789

Meaning, 'If the Price times the Customer Discount is greater than 100, then show the $customer.related1234 field, otherwise show field $related56789.'

This can be used without an "else" condition (the field/variable after the colon) to optionally show a field only if some condition is met.  For example:

$if ($price>=10000) ? $FIELD

The condition can only be used with Agiloft field variables. It cannot be used to show/not show hard coded Word text paragraphs in the template itself.
It can, however, be used to optionally insert hard coded text held in attached file fields using $merge.

$if(condition) ? $merge(attached_files1) : $merge(attached_files2)

The operators supported in the formulas include:
setBinaryOperatorKey ("==", OPERATOR_EQUAL);
setBinaryOperatorKey ("!=", OPERATOR_DIFFERENT);
setBinaryOperatorKey (">=", OPERATOR_GREATER_OR_EQUAL);
setBinaryOperatorKey ("<=", OPERATOR_LESS_OR_EQUAL);
setBinaryOperatorKey (">", OPERATOR_GREATER);
setBinaryOperatorKey ("<", OPERATOR_LESS);
setBinaryOperatorKey ("||", OPERATOR_LOGICAL_OR);
setBinaryOperatorKey ("&&", OPERATOR_LOGICAL_AND);
setBinaryOperatorKey ("~=", OPERATOR_CONTAINS);
setBinaryOperatorKey ("%", OPERATOR_REMAINDER);
setUnaryOperatorKey ("!", OPERATOR_LOGICAL_NOT);
1407 Encrypted support for KB global variables Added encryption support for KB-level global variables of type 'text' or 'short text'. 

The following options were added to the Global Variables wizard (Setup > System > Manage Global Variables, then select a text variable to edit or create new variable):

   [ ] Encrypt data
       [ ] display characters as ● in record on view, edit and at table views
            Apart from { Left/Right} {__} Characters

            [ ] Also display characters as ● on input

1416 Corrected end user Look & Feel issues Fixed the following Look & Feel issues in the end user interface:

1. Added Action Bar controls for End-User scheme: border color, width, style, radius and padding.
2. Now Action Bars are displayed as specified in the editor. Fixed minor inconsistencies.
3. Added new control to handle the Table Header for Sorted Column for End-User interface.

The options are available via Setup > Look and Feel > Manage End-User Schemes > [Edit scheme] > Tables tab.
1417 Added support for nested Linked Field variables to print templates Implemented a feature for Print Templates which allows users to reference fields in a donor table which are not imported as Linked Fields. In other words, it allows users to configure print templates that include fields from a linked record without adding these fields to a Linked Field set.

For example, in the Support Cases table, the created_by field is a single-value linked field based on the full_name field in the People/Contacts table. Originally it was possible to refer to only $created_by field from the print templates/formulas in the Support Case table. Now it's possible to reference any field in the People/Contacts table which is linked by the created_by field.

Example of nested LF variable for this case:

The returned value for this variable is the ID of the Company record linked to the creator's People/Contact record.  This creates a nested variable chain from Support Case > People > Companies table, linked by the created_by and company_name fields.

Category :
Number of Items:
1288 Fixed error on decimal value calculation in non-English locales Fixed error, which users observed in some non-English locales on decimal values&nbsp; calculation. Previously users observed error like: <br> Error converting column calc (PK = 74601:366) from string '3,6667'<br>. Now decimal values are calculated and saved correctly.
1289 Improved Chat window scrolling for IE11 Fixed a chat window scrolling problem that occurred for end-users when they chat with staff members in IE11. Now it scrolls appropriately, and the user is able to scroll up and read previous messages without immediate return to the last entry.
1290 Custom login page parameters Corrected system behavior in cases where a user is logged in via a login page with custom parameters such as exiturl, timeouturl, and loginurl. Now global variables do not override login parameters.  For example, end-users who log in via a custom login page will be redirected to the desired timeout URL with a link to the custom login page.
1291 Export/import of large Knowledgebases Improved export/import process for KBs that have large history tables or contain very large attached files. KnowledgeBase export now supports 8GB+ for attached files/table structure.
1294 Copying an auto-HTML field value HTML flag is now properly handled for text and short text fields of type "Automatic HTML or plain text'.  If a mass edit operation or a rule copies HTML content from one such field to another, the HTML flag is properly selected and content is displayed accordingly.
1317 Fixed error on adding a source table to a Linked Field Fixed exception on modification of field type "Link to single field from multiple tables" in cases where an additional source table is added to the field definition.
1319 mm:ss display for elapsed time fields now keeps leading zeros If an elapsed time field is displayed with an input box and the mm:ss format, e.g. 07:01 (for minutes and seconds), previously the leading zero was eliminated and it was displayed as 7:1.
For the input box display, leading zeros are now shown to create a two digit display for each unit except for the first number. For example, it is:

7:01:03 for 7 hours 01 minutes 03 seconds [hh mm ss]
1:03 for 1 days 03 hours [dd hh]
2:59 for 2 minutes 59 seconds [mm ss]
1325 Corrected processing of complex email formats with restricted commas Fixed error on parsing inbound emails in complex Outlook 2010 format, such as "Remarque, Erich Maria" <>. Sender names that contain commas are now parsed correctly.
1326 Improved survey fields under high load Previously, concurrent read access to a Survey Presentation field caused locks.  The problem is now fixed.
1329 Fixed error on setting visibilty dependency based on Type field Previously it was not possible to set the 'Dependent Visibility' attribute using the 'Type' field as the criterion. Saving of such fields failed with an exception error.  The problem is fixed now, and fields can be set up to appear on the layout for records belonging to certain subtables, but invisible for other subtables.
1336 Improved functionality of ESA (external system adapter) ESA functionality was improved:
- multi-value linked fields, such as Groups or Teams in People/Contacts table, are accessible for mapping
- implemented support of external sync for multi-choice fields, for example, Roles in People/Contacts
- Implemented getModifiedPaged and getDeletedPaged methods
- ESA Developer Guide and helperAPI documentation updated
1340 Fixed 'Select All Records' in Search dropdown Fixed the behavior of the 'Select all records' item in the Saved Search dropdown in the end user interface. Now it correctly refreshes the records list and displays all permitted records.
1346 Mapping inbound attachments to the same field Fixed an error and incorrect attachments mapping in cases where image and non-image attachments were mapped to the same field. Now they are correctly parsed and attached on record create and update via email.
1349 Enforce conditionally required fields determined by linked fields Fixed enforcing of conditionally required fields in cases where conditional visibility is also applied, and where the field controlling requirement is part of a linked field set.  Conditional requirement with conditional visibility now works correctly for Linked Fields as well as for simple fields.
1350 Asset Polling/Discovery advanced scan fix Fixed a problem with asset polling where the Advanced scan failed if the ESA ran remotely.
1352 LDAP fixes LDAP functionality was improved in the following areas:
1. Fixed logic of application-level errors, such as errors upon a user's update if the record is locked, or a non-LDAP user with the same email is found.  Now LDAP does not stop in such cases, it completes the user's update and reports application-level errors.
2.  Fixed a problem with limited support of special symbols in passwords.
3.  Fixed a bug in which changing the server configuration from MS AD type to LDAP prevented it from working.
4.  Fixed an LDAP searches cache issue which sometimes led to creation of new users instead of update, or new AD groups being inaccessible.
5.  Improved reliability of the sync process in order to prevent reserved logins, such as 'admin', from changing.
1353 Unicode symbol support for localization file uploads Fixed an exception upon uploading localization files, caused by unsupported symbols. The upload works correctly now.
1356 Corrected record selection for Print/Download from table view One of the buttons available from the 'Print/Download Table View' screen worked incorrectly and printed (or exported) all records instead of only the currently selected records. The problem is now fixed, each of the Print and Download buttons process only the selected records.
1358 Improved loop protection for email and rules Introduced a new Global Variable 'disable_email_loop_detection' with default value 'No'.

With the default value of "No," it automatically applies a reject filter for all emails sent by rules to one of the inbound emails of the current KB.  The variable was introduced to avoid infinite loops and out-of-memory (OOM) errors on servers in cases where a KB may be misconfigured, and as a result rules are sending emails to Agiloft inbound addresses.  It is not recommended to set this value to 'Yes'.

Added email alarm about mail/rules loop in cases where monitoring is enabled for the Agiloft instance.
1359 Corrected display of URLs containing the '|' character Previously, URLs containing the vertical bar ( | ) character appeared with strike-through text despite the security setting. The problem is now fixed, and such URLs are correctly displayed as normal links if they are allowed by security settings.
1360 Support for WMI fields in IE11 WMI functionality is now supported in the IE11 browser, and returns correct WMI values instead of the previously observed error 'Your browser does not support the Windows Management Instrumental technology, the WMI field(s) is not working.'
1361 Corrected errors in the mobile interface 1. Fixed incorrect conditional requirement handling, observed in the mobile interface under iPhone Safari browser. The system just enforced the 'requirement' attribute for strict linked fields despite the condition matching. Now conditional requirements work in the mobile interface correctly, and are enforced only if the condition is satisfied.
2. M
ulti-choice fields' requirements property is now correctly validated through the low_res interface.
3. Fixed a problem of sporadic blanking out of multi-choice values on record edit.
1362 MSSQL - fixed exception errors caused by deletion of records or choice field values The following errors have been fixed for Agiloft instances that are running under MSSQL:
  1. Previously, users observed exceptions upon deleting records or Agiloft table structures under certain circumstances (e.g., when other tables have many references to the selected table). It is now corrected, and an optimized way to overcome MSSQL restriction on deletion of records from tables with a lot of back referenced FKs (foreign tokens) was implemented.
  2. An error, observed on attempts to delete choice values, is now fixed.
1363 New system property for rule transaction timeout Corrected a time-based rule timeout problem which could cause slow server response times or mis-triggered rules. Now time-based rules use a default transaction timeout of 6 hours. The default timeout period can be changed by editing a new system property, rule_transaction_timeout=86400 (in seconds).  This property may be defined either via admin console Setup > Debugging > Bean Shell or via jboss.local properties file, and is set for the entire Agiloft instance (server).

Syntax for bean shell:
System.setProperty("rule_transaction_timeout", "86400")

Syntax for AL Directory/jboss/server/sw/conf/ file:
1364 Corrected validation with option to pass through for action buttons Corrected behavior of validation actions in cases where they are triggered via an action button and followed by another action. Previously, it failed to work if the option 'Save record before running actions' had been selected. Now the validation action works correctly and displays the validation warning. The following action is triggered correctly as well.
1366 Error on saving records Fixed an exception on creating/editing records under certain circumstances (history saved search or FTS saved search applied to the table) where the retriever failed to activate after 15-20 minutes of user inactivity, which led to SoD on saving the record. The retriever now handles these situations properly.
1367 mp4 files are excluded from FTS indexing Corrected FTS indexing: mp4 files have been added to the binary files extension list to avoid FTS indexing for such files and improve FTS results.
1368 Added KB global variable "strip_non_printable_characters" Added new variable "strip_non_printable_characters" with values Yes/No and default value=No.

If this variable is set to Yes, all non-printable characters will be stripped from the input data (text fields). This ensures all data can be served as XML via Web Services. The variable is available in the staff interface via Setup > System > Manage Global Variables.

1369 Record rendering improvement Improved opening records for View and Edit in cases where a large number of Calculated Result type fields led to significant slowdown upon opening a record. In some cases, users had to wait several minutes before the record could be edited. Logging has been optimized as well to improve performance on record opening.
1370 Improved table name validation by table wizard
A new validation was added to the Tables setup wizard that prevents table names that start with numeric characters.  Now, if a user tries to create a new table with a numerical name (e.g. '555'), the internal Knowledgebase name is automatically prefixed with 't_', ('555' becomes 't_555').  The Table Label, which is visible to all permitted users, is unchanged.

Previously, users could experience problems while working with table name variables beginning with numeric characters.  The validation was added to avoid these issues.
1371 Fixed default value for field type "Link to selected fields from other table" with multiple values enabled. Corrected handling of "Link to selected fields from other table" with multiple values enabled where the default value is set based on matching a field value from the current record to a field value in a linked record.

As soon as the user selects a value in the matching/filtering field, the multiple-value-enabled (MVE) Linked field is refreshed automatically with its default values, and all matching records are linked to the current record. Changing the value correctly refreshes the MVE 'Link to selected fields from other table'. It works correctly with Saved Search limitations as well.
1372 Corrected embedded pictures parsing on record update via email Corrected parsing of inbound emails for cases where embedded images are parsed and added to an Auto-HTML text field as the result of inbound email parsing and record update. Previously, the system changed the 'HTML' flag to 'Plain text', and pictures displayed as raw HTML code. The error is now fixed: the picture is displayed properly and the field's flag is set to 'HTML'.
1373 Fixed logic of 'contains' operator for Multi-choice field filter Now if-else conditions in rules interpret 'contains' for multi-choice fields the same way as 'contains' in Saved Searches, i.e. it interprets it as 'contains any element from the selected ones'. The if-action works according to this logic.

For example, a multi-choice field has the following choices:
  • choice1
  • choice2
  • choice3
  • choice4
  • choice5

And a set of records where:

  • record #1 has 'choice1, choice5' selected
  • record #2 has 'choice2' selected
  • record #3 has no choices selected 
  • record #4 has 'choice2, choice3, choice5' selected 

Then a rule with and if-else action:

if multi-choice contains values 'choice3,choice5'
    then run action A
    run action B

...triggers action A for records #1 and #4, and action B for records #2 and #3.
1374 Linked field Saved Search restriction is enforced Previously it was possible to bypass a Saved Search condition that restricted possible values in a Linked Field by inputting and saving a value manually when the 'Automatically Update in the background' option was selected. Now the system clears incorrect values from the input box and warns the user when an entry that does not satisfy the search condition is entered. The warning in this case looks like:

‘John Smith’ is not a valid entry. To select a valid entry, please use the Lookup tool next to the ‘Customer Name’ field.
1376 Improved import of elapsed time values It is now possible to import elapsed time values with a colon ( : ) delimiter from the import file to an elapsed time field where the selected display format is 'An input box for each time unit'.
1377 Image widgets improved The 'Caption' option now works for home page widgets of type Images. The caption text is shown beneath an image. Multilingual support for captions was added, and now diacritical marks and special characters are correctly displayed as caption text.
1378 API form uses correct KB name Fixed API problem for cases where the KB name and KB label are different. Now the KB name is used in the embedded HTML example downloaded from the API tab (Setup > Tables > [Edit Table] > API) via the 'Download HTML' button, and submitting a record via API using the example HTML code is successful.
1384 Error on record deletion Improved the error message on record deletion for cases where some Saved Search refers to the record. Now dependent searches are listed with the corresponding table names.

The error now looks like:
Status: Saved searches My entries last week (Time Entries), My assigned cases (Support Cases) depend on records (ID: 397)
1386 Chrome windows now close properly Previously, Chrome sometimes failed to close popup windows after field addition, field deletion, or record deletion.  This works correctly now and the browser windows close properly.
1387 PDF image rotation upon upload Fixed a problem of PDF images being rotated (from portrait to landscape orientation) upon uploading to a File with Versioning field in cases where the options "OCR: Run OCR and convert to PDF" and "PDF Searchable: Create PDF Searchable document" are selected. Now the PDF maintains the correct orientation upon upload and running OCR.
1391 Fixed incorrect triggering of the required field warning Fixed incorrect triggering of the warning 'Please fill out the $required_field', which appeared in rare circumstances upon saving the record, even when the required field did contain a value.

This was caused by clicking the Save button during a very small window of time when the record content loading was not completed but the Save button was already available, leading to the incorrect warning about filling out the required field.
1392 Handling of invalid email transactions is improved Fixed an error in processing rolled-back or invalid email transactions. The error did not take into account specific transaction states, and then prevented commit of invalid transaction. That caused a new exception which blocked additional pool processing.  In other words, certain transaction rollbacks (for example, a validation rule preventing record creation with missing required fields) previously led to interruptions in inbound email processing, but now this specific transaction error does not block inbound processing.
1393 Fixed handling of BCC email addresses in customer replies Fixed wrong CC/BCC address building for anonymous users. Now the BCC is not converted into a CC in customer replies for addresses which are not found in the People (contact) table (i.e. anonymous addresses).
1394 Fixed error on related Twitter account login Fixed error 403 on test login and screen name fetching for Twitter account via the Setup > Twitter menu.
1396 Disabled Activity Log subtable creation Subtable creation is now forbidden for the Activity Log table, because it is a system table. Any attempt to create a subtable triggers the error message:
This table does not allow the creation of subtypes!
1400 Fixed exception on adding/modifying tables Fixed an exception during table modification when a previous modification is in progress and not yet completed. Now, users cannot start a new table modification until the first operation is completed. A corrected warning is reported when a user attempts to access the table setup:


DDL operation is in progress: Adding field <text1>
1402 Corrected data format detection for ESA from Excel Fixed incorrect data type detection for Numeric/Date formats for ESA sync from Excel.
1404 Invalid XML characters check Fixed invalid XML characters check for streamed xlsx export. Now export file does not contain invalid characters.
1408 Fixed custom search options for subtables Fixed error on saving a custom search for subtables on the first tab of the Setup Table wizard.  The option to 'Use custom search' can be used to set the default search/filter applied to a (sub)table the first time it is loaded in a user's session.
1409 KB invalidation on running internal checker while modifying col Previously in cases where the KB 'checker' (available from the Admin Console, Setup > Patches) and column change (modification of field settings) started at the same time, the KB could be rendered invalid.  The problem is fixed; checker does not start during a column operation and the following warning is reported:

Structure of the table 'Support Case' is being modified, please try again later. Lock(s) held by admin.
1410 Browser Popup distribution in EUI2 Corrected built-in EUI templates so that end users logged in to the EUI2 will receive browser pop-up when a popup rule/action is triggered (such as system notifications, messaging).  The fix was implemented by adding the following to each template:
<iframe src="#ew_url("/do/ticker")" style="display:none"></iframe>

The same fix can be added to any custom EUI templates.
1411 No limit on field Formula length Fixed a formula truncating problem, observed when a field's default value formula was longer than 500 characters.
Now, the formula may be longer than max field length and the formula container is not limited by max field length. However, the field value (calculated result of the formula) can be no longer than the maximum field length; otherwise, the field value is truncated.
1415 Improved searching: match on single linked field to multi-value linked field Implemented ability to run searches matching a single linked field value to multi-value linked field values. Supported filter is "linked field with multiple values CONTAINS_ITEM/DOESNT_CONTAIN_ITEM in another field"

Example:Saved Search with filter 'staff ccs~=='$_1901_full_name' returns all records where 'Staff CCs' (a Multi-value Linked Field) contains the name of the record creator (where $_1901_full_name is 'Created By' field variable).
1418 License assignment Fixed a cache bug which caused a problem with license management/assignment.  In some circumstances, users experienced an inability to manually assign a license to a user.  The issue has been resolved.
1419 Order of running actions Changed behavior of certain actions to improve reliability. Previously, Linked Record Actions worked with DB record data and didn't see the latest field value until the record was saved. In other words, if  the option "Save record" was selected for action button under 'Before executing actions,' the correct data was used, but if "Do nothing" was selected then an incorrect (non-updated) value could be used.

In order to fix this problem we improved Linked Record Actions and Update Fields Actions to use in-memory record data.  These actions now work with the most recent data, even if a new value itself is not yet saved to the DB.