Product Customization & Upgrades

You are here:
< Back

You have added your own JS/CSS. Now what?

Congratulations on opting to improve the product (although locally only). We are sure that you have tested and you love the customisations you have made on the product, but we are also sure you are worried about Automatic Upgrades potentially breaking your customizations. I am afraid I am not coming with good news – yes, upgrades can potentially break your customizations, however there are some measures you can take to prevent this from happening. Please read along.

Automatic Upgrades vs Manual Upgrades

  • If you haven’t opted out of Automatic Upgrades and you are planning/have already made a customization on the product, then maybe now is a good time to get in touch with us and submit a case for us to opt you out of Automatic Upgrades. Please go here: Case.page and inform us that you want to opt out of automatic upgrades.

 

  • Manual Upgrades can also break stuff – here is a scenario – Someone within your organisation calls us and reports Forms are broken and not working and you cannot collect Invoice payments. We would step in and attempt to fix the issue which may happen in a new Hotfix (Patch) release. If this happens, we must be informed in advance if there are any customizations – and although we will thoroughly check the Custom Metadata before upgrading, it may just slip from our radar. So, please inform us if you have customized your version of the product before one of our support representatives upgrades your instance

Notice: Due to the huge volume of customers, we may deny to check if your customizations are compatible with the new version of the software that is planned to be installed on your Salesforce Instance. Please bare with us.

What do 3B Forms do to prevent Upgrade Issues?

We maintain the code in a fashion that is upgrade-friendly. We also keep an active Changelog in the Knowledgebase which will contain information about what is changing from one version to another. This is what you can expect from us:

  • We will maintain function names and parameters as long as we can
  • If a function or function parameters are going to change, they will be documented in the Changelog section of the Knowledgebase
  • We will keep return values as similar as possible
  • We will not deprecate functions without prior notice

Some versions of the product are more likely to change/deprecate functions and parameters than others. Please refer to Version Upgrading article.

What do you need to do to prevent Upgrade Issues?

Just follow standard coding practices. Do not override functions but rather use hooks. Avoid changing return values.

For example, if the following function is in 3B Forms:

function createAwesomeForm(p1, p2){
     callOtherFunction();
     
     return true;
}

Do not override the function by just creating the same function in your custom JS file but instead do the following:

var old_createAwesomeForm =createAwesomeForm;
createAwesomeForm = function(p1, p2) {
     var return_val = old_createAwesomeForm(p1, p2);
     ... your custom code goes here ;
     return return_val;
}

Happy coding, and please share the knowledge!