Skip to main content
Arrow Backward IconBack to Overview

Core 2.0.704

September 5, 2023

Released on all test and acceptance environments on September 5, 2023

Will be released to production in EUW and ASE on September 11, 2023*

Will be released to production in CUS on September 12, 2023*


release notes image

Breaking

No breaking changes.

Added

Differentiating between orders in SearchOrders

The service SearchOrders now holds the property HasSoldToOrganizationUnit to let you filter between orders from OUs to customers and OUs to OUs, essentially displaying either sales or purchase orders. When it's set to true, you would display POs, Interbranch and Returns to supplier orders.

As a reminder, it's already possible to search for orders of specific types by specifying its enum values in the service's Properties field.

for example: "Properties":[4, 4096] which will produce both IsInterbranch and IsTransferOrder orders.

UnitPriceOverride indications

In case of a unit price override by an employee, an order ledger item of type UnitPriceOverride will now be created and made visible in an order's History tab in Admin Suite - just as for a unit price correction.

Deleting price lists

We've created the service DeletePriceList to allow for proper archiving of price lists. Corresponding front-end functionality is incoming and will be usable by users with the Delete scope in the Pricing permission.

EventExports extension point

We've made a few additions to the EventExports extension point.

The Orders object now supports the following properties:

  • IsReturnToSupplier
  • SoldToOrganizationUnit - this lets you determine if an order is interbranch or not
  • HasSoldToOrganizationUnit

Custom field security and eligibility

When it comes to custom fields, EVA differentiates between security and eligibility. In short, security is what guides interacting with custom fields from the perspective of a logged in user (read: employee), while eligibility does the same thing but from (for example) a customer's perspective.

Aside from the currently available basic security configuration in Custom field settings, it's also already possible to extend the security aspect by means of the CustomFieldSecurity extension point.

Now as for what's new: we're introducing a bunch of extension points that will let you customize custom field eligibility. In practice this means you will be able to indicate when custom fields should be required, visible and/or editable based on variables such as a CountryID, ShippedFromOU or PaidAmount. You'll be able to script it any way you want with its corresponding extension point.

For an overview of the various new eligibility extension points, check out our Extension points docs.

One more thing: when creating and updating custom fields, any errors will now clearly display what exactly is wrong or missing, e.g. "CustomField xx is required" or "You are not allowed to edit CustomField 123".

Changes to how we return custom field data

GetCustomFields now returns an additional property CustomFieldOptions with the following structure. This service is best used for getting custom field settings.

CustomFieldOptions

{
[CustomFieldID]: {
IsRequired: true, // nullable
MinimumValue: 1, // nullable
MaximumValue: 100, // nullable
MinimumLength: 3, // nullable
MaximumLength: 256, // nullable
MinimumDate: "2023-08-24", // nullable
MaximumDate: "2023-08-24", // nullable
DefaultCustomFieldValue: [CustomFieldValueObject], // nullable,
IsEditable: false
}
}

The ExtendedCustomFields custom fields in GetApplicationConfiguration have been adjusted to the following structure.

CustomFieldOptions

{
[CustomFieldID]: {
IsRequired: true, // nullable
MinimumValue: 1, // nullable
MaximumValue: 100, // nullable
MinimumLength: 3, // nullable
MaximumLength: 256, // nullable
MinimumDate: "2023-08-24", // nullable
MaximumDate: "2023-08-24", // nullable
DefaultCustomFieldValue: [CustomFieldValueObject], // nullable,
IsEditable: false
}
}

Everything else that was not metadata that was available is still available, so this is not a breaking change. However, using them moving forward is highly discouraged. Consider them deprecated.

There is also a new service GetCustomFieldMetadata that gives back the same structure as in the example above, as a lighter alternative which doesn't come with other contextual properties and everything else from GetApplicationConfiguration.

Changing users to SSO only

We've added a new service called SetUserToSingleSignOnOnly to convert users to be allowed access via the single sign-on flow only. This service requires the functionality ChangeUserLoginType and accepts an ID (UserID).

Other additions

  • Expose MinimumLoyaltyPointsRequired in discount prefigure result.
  • Added CreatedByID and CreatedByFullName in ListCashTransactionLedgerItem.
  • Added ApplyTo property to the response of PrefigureDiscounts.

Improved

Subtypes in GetUserTaskTypes

The GetUserTaskTypes service now allows you to optionally IncludeSubTypes, making it clearer what the task consists of. A Ship from Store type task for example will then include its Pick, Pack, Ship, Deliver (and possibly) Print task.

Updates to users in visibility groups

We've made a small, but impactful change to how EVA deals with updates to employees' user information when they have multiple accounts (sharing an email address) across visibility groups:

  • If an employee edits its own user, these changes will be reflected across all their accounts
  • If an employee edits another user, these changes will be contained to that specific user instance

CaptureMoment in PushSalesOrder

We've added the CaptureMoment property to PushSalesOrder allowing for better integration with Clientella.

Other improvements

  • EVA now takes visibility groups into account when fetching OrganizationUnits/Functionalities.

Fixed

  • Filter the roles on the ClientPrincipal on the requested UserType.
  • Pass the usertype as override into the authenticator to limit the roles.
  • Authentication data handling for LiveGuard.
  • Multi-Currency Transfer Orders.
  • Prevent stack overflow on splitting order line with product requirement.
  • Prevent "truncation error" from db when creating a role.
  • Handle product availability for configurable product with 1 child.
  • Validate cron in a consistent way.
  • Reduce size of message published to Kafka.

    max message size defaults to 1 MB, reducing number of product IDs to 10000 would leave 100 bytes per product ID in the message, which should be plenty

  • Fetch the last successful action for a payment transaction.

Deprecations

⚡ Removed from typings

These deprecations are now halfway through their deprecation timeline. As of now, these services and/or fields will no longer be exposed by our typings.

Deprecated

Low

  • Low PageConfig is deprecated and will be removed in 2.0.708: This service is using infinite scrolling from now on because the result sets are huge.
    • ListGeneralLedgers.PageConfig

🚫 Effective

These deprecations are now effective. As of now, these services and/or fields are no longer available in EVA and can no longer be used.

Deprecated

Medium

  • Medium OrderLineID is deprecated since 2.0.704: Use OrderLineIDs..
    • SetOrderSoldBy.OrderLineID




Release dates may vary

The exact date for deploying a Core release to production environments may vary. See How we handle Core releases for more details.