We have all had those “WTH?” moments. Since the release of Project Service Automation(PSA) I have been working with the product on a trial version, which was then upgraded to a Production version. As a result of this upgrade, I started to encounter strange form behavior randomly through the solution.

That behavior started with forms freezing on load then progressed to completely reloading after about 10 seconds, duplicating the record and then starting a new record line. Whatever data you had started with was auto saved and the new record started blank. If you continued to enter data into the refreshed form, on save you received a message of a duplicate record already existed. Very frustrating to say the least.

In a painful effort to diagnose the problem, I found a small seemingly innocent Jscript web resource on Project Service forms that had caused this issue. Here is what happened:

  1. Activated a Trial Instance of Project Service Automation.
  2. During the Trail version, there is a banner notice that you are working with a Trial version that appears, for about 10 seconds, whenever you loaded a PSA form.
  3. Trial version message

  4. Upgraded to a Production purchased Project Service Automation.
  5. Form behavior started to appear possessed.

Forms that appear evil and possessed are not good for the user experience. What is happening is that during the upgrade, this JScript is not disabled or removed. It is activated on load but errors out as the instance is no longer a trial. The User does not receive an error message and the form simply reloads, not to the form you were using but to the first form in the form order.

This, coupled with auto save, causes a duplicate record with the GUID in the background so the data will not save.

To resolve this, simply disable the Jscript on the form. DO NOT REMOVE THE JSCRIPT as your next upgrade will refresh the PSA form and add the script back in, as active and your problems will start all over again. The culprit JScript is the msdyn_/Common/Trial/ProjectServiceTrial.js and the bad function is msdyn_ProjectServiceTrial.showTrialNotification.

JScript

Happy CRMing.

This post originally appeared on LinkedIn.