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. The exception to this is global label values (see below).
1.2 After the Update
Always check the latest version 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 behaviour of global value sets in all managed package upgrades to match the behaviour of standard value sets. Therefore you will now have to manually update any of ADvendio's global picklists 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 by the following update order:
Coming from a version lower than 2.58
Before updating ADvendio from a lower to the newest version you first need to install version 2.57.2. Please use the following installation links:
Production: Installation Link 2.57.2
Sandbox: Installation Link 2.57.2
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:
Production: Installation Link 2.82.2
Sandbox: Installation Link 2.82.2
Coming from a version lower than 2.104
Afterwards, you will need to install version 2.104. Please use the following installation links:
Production: Installation Link 2.104
Sandbox: Installation Link 2.104
Otherwise, 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 in 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:
Delivery report. Here is how: 5.3.2 How to schedule and manage Delivery Reports / Programmatic Data Imports from AdServers, SSPs, DSPs (New interface)
Account Turnover (class: AccountTurnover). You will have to reschedule with the standard Salesforce function "Schedule Apex". Here is how to: 7.1.6 Schedule Account Revenue Calculation
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 upgrade 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 that run as specific users 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
Concerning picklist values for the field status at Briefing script / Advertising Material you have to be very careful:
Salesforce does NOT allow 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 the 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 is 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. This can be solved by setting 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 the 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 your 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 that 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 your 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 into 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 that 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 behaviour in ADvendio.
Avoid using 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 has 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 to work correctly. Especially if you are upgrading and not installing the first version, some values have to be manually set.
The first step is to read the 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 that you need to consider if you like to introduce a new feature.
So please consider the following if the new feature is used:
Record types you might have to
add them manually using the correct spelling from the change log and
translate or overwrite the value into the local language
Adjust the access rights for the corresponding user profiles.
For additional picklist values, make sure to
add them manually using the correct spelling from the change log and
translate or overwrite the value into the local language
add them to the correct record type(s)
and adjust the access rights to the profiles that are needed.
New fields or deprecated fields in Layouts
Adjust your layouts appropriately to add new fields and their visibility.