How to upgrade ADvendio

If you have been using ADvendio for quite some time you might be reluctant to update to the newest version. But overall we recommend updating frequently (at least 2-4 times a year) to make sure that you can participate in the newest development, minimise bugs, and enable all new features. Please make sure to read the following notes before upgrading to a newer ADvendio Version:

1. Manual Adjustments

1.1 Before the Update

  • Use a sandbox to test a new version before installing it in production
    • and define recurring test cases for core business processes.
    • Refresh your sandbox before installing a release
    • and think about relevant test-data.
  • Deactivate Dashboards if you have too many in the system
  • Use the Translation Workbench *

* We are recommending the use of the Translation Workbench and overwrite/translate picklist values and record types. This will not be changed by the package upgrade. Additionally you can safely add your own values. Exception to this are global label values (see below).

1.2 After the Update 

  • Always check the latest Change Log to make sure your picklists and record types are up to date and work with the new features. Also make sure to not use deprecated objects or fields any more.
  • Check the Global Value Sets (Global Picklists) for Spring 2018 and up. Salesforce changed the behavior of global value sets in all managed package upgrades to match the behavior of standard value sets. Therefore you will now have to manually update any of ADvendio's global picklist with 
    • Label and API names for non-packaged individual values don’t change.
    • Global label values change back to the standard package values with each upgrade!
  • Enable new features (see below)
  • Reschedule Apex Jobs for ADvendio classes after an update to ensure the correct function.

2. How to handle Upgrade Error Messages

2.1 Upgrade Order

Attention - Please abide the following update order:

Coming from a version lower than 2.82.2

Before updating ADvendio from a lower to the newest version you first need to install version 2.82.2. Please use the following installation links:

Coming from a version lower than 2.104

Afterwards you will need to install version 2.104. Please use the following installation links:

Else you will receive an error message upon installation. Don't worry your data and current installation won't be affected by that error.

2.2 Apex jobs errors

Updating to the latest ADvendio release might have caused a runtime error of your apex jobs.

If you are getting error messages similar to 'Ad-Server Delivery Report Lifetime' : Attempt to de-reference a null object Please reschedule the following APEX jobs:

  1. Delivery report. Here is how: 5.3.2 Edit Delivery Data Report Interval
  2. Account Turnover (class: AccountTurnover). You will have to reschedule with the standard Salesforce function "Schedule Apex" here is how to: 7.1.7 Update automated Revenue Calculation
  3. Campaign Item Revenue Split (class: CampaignItemRevenueSplit). You will have to reschedule with the standard Salesforce function "Schedule Apex" here is how to: 7.2.5.1 Schedule APEX job for Revenue Split

2.3 Dashboards errors

You might get an error when try to upgarde to 2.93 or higher.

(ADvendioDashboards/cxymANPhZuiMbGdgdENRbfENDpTXQf1) You reached the limit for dashboards run as the logged-in user. 

Depending on your Salesforce Edition you have a limit of dynamic dashboards set to 5 or 10. Dashboards which run as specific user are not counted. Solution: Deactivate your dashboards before installation and change back afterwards.

2.4 Path Record Type errors

2.4.1 Media Campaign Path

Message: (MediaCampaignExample) Duplicate Record Type
MediaCampaignExample: Duplicate Record Type

You manually created a sales path for the Media Campaign object, we added the path with version 2.85, if you're installing from a lower version and encounter this error you need to delete your path, install (a version that has the path disabled 2.102 and up) and afterwards create your own path using record types.

2.4.2 Advertising Material Path

Concering picklist values on for the field status at Briefing script / Advertising Material you have to be very carefully. Salesforce does NOT allows you to use your own picklist values AND deactivate the ADvendio packaged picklist values!

Options:

  • Use ADvendio picklist values and change the labels or use translation workbench
  • Alternatively create your own record type and add your values to this new record type.

otherwise you can not upgrade to a newer version.

2.5 Active Lookup Limit

The Limit of active lookups for an object reached (in one version we added 3 active lookups, which we later removed because of that error) This error will happen if you already have 5 active and required lookups for an object and then the package tries to add a new one. Can be solved be settings your lookups to optional.

The two errors when trying to skip the 2.82.2 installation before installing 2.83

2.6 Custom Field Naming Error 

This error occurs when you have created a custom field and ADvendio tries to add a new field / object with same API name.


3. General Recommendations

To upgrade safely please adhere to the following recommendations:

3.1 Dos

  • Keep as close as possible to the standard.
  • Think about changing internal processes first before changing the system.
  • Before developing custom functionalities on your own, ask you ADvendio consultant if there is already something similar on the roadmap or if ultimately an existing feature could be enhanced.
  • Read the release notes carefully.
    • In case of any questions, please don´t hesitate to contact us.

    • Pay special attention to all custom developments which might be interacting with ADvendio

  • Use a sandbox to test a new version before installing it in production
  • Determine your own release cycle and reserve resources (especially human resources) to implement own development and Advendio releases.
  • Use as many as possible of the embedded standard workflows and processes
  • Use the provided JavaScript API to embed your own business logic to the media configuration and commercial optimizer

  • Reschedule Apex Jobs for ADvendio classes after an update to ensure the correct function.

3.2 Don'ts

  • Don’t install a release without testing it in a sandbox!
  • Don’t integrate Custom JavaScript in the Media Configuration which works contrary to logic, workflows or processes in the standard of the ADvendio package.
  • Don’t re-develop a function on your own that is already part of the ADvendio Package.

  • Don’t use the same API names for objects or fields in ADvendio objects which are already defined in the package. An object or field in an ADvendio object even without prefix (in its API name) will be considered part of a component of ADvendio which leads to incorrect behavior in ADvendio.

  • Avoid to use validations for "irrelevant" data-changes in order to prevent errors in automated processes (e.g. when validating an account phone number, check if the number had been changed - don’t start this validation if other fields have been updated only.)

4. How to adapt or enable new ADvendio features

Some of the new features can't be packaged in Salesforce and therefore need manual work in order work correctly. Especially if you are upgrading and not installing a first version, some values have to be manually set.
The first step is to read newest Change Logs.  Change logs can be found next to the release notes in the corresponding seasonal release folder. The Change Log lists all values and fields which you need to consider if you like to introduce a new feature. 
So please consider the following if the new feature uses:
  1. Record types you might have to
    1. add them manually using the correct spelling from the change log and
    2. translate or overwrite the value into local language
    3. adjust the access rights for the corresponding user profiles. 
  2. Additional picklist values, make sure to
    1. add them manually using the correct spelling from the change log and
    2. translate or overwrite the value into local language
    3. add them to the correct record type(s)
    4. and adjust the access rights to the profiles which need.
  3. New fields or deprecated fields in Layouts
    1. Adjust your layouts appropriately to add new fields and their visibility.