Fix Manifest for Classic Myob for Administrator users

TransPost will work with all current versions of Windows but if the user has administrator privileges some adjustment needs to be made as classic MYOB was originally developed for older versions of Windows.

Running with Administrator rights

If you are running as a Windows user with administrator privileges, the manifest as set up causes the classic AccountRight program, either myob.exe or myobp.exe, to run at the administrator level. A symptom of this is that MYOB triggers a UAC prompt to ask for your permission to run as administrator.

So why is this a problem?

You are running 3 programs:
  • TransPost running as a normal user because its manifest says “AsInvoker” (as recomended by Microsoft unless a program needs to change registry entries or files not to accessible to normal users)

  • MYOB ODBC driver, supplied by MYOB, launched by TransPost and running at the level invoked

  • MYOB which, with the default manifest as supplied by MYOB runs at HighestAvailable, which means that if your login has Admin rights means as Administrator
These three programs are passing data to and fro between them and programs running normally cannot communicate properly with or receive messages from a program running as Administrator, even if the latter has permission to run. Microsoft has tightened up such security loopholes.

The operating system does not know MYOB is harmless, only that it is running as Administrator.

The solution

A simple change to the manifest, Myob.exe.manifest (or for Premier and Enterprise versions Myobp.exe.manifest) will fix this.

  1. Using Notepad or your favourite text editor go to the MYOB program folder and open the manifest

  2. Change

    level="HighestAvailable"

    to

    level="AsInvoker"

  3. Save and Close the file

Symptoms of this problem

There are many ways in which this issue manifests, and it often looks like quite a different type of problem. here are some of the things that may be caused by this issue:
  • Error message "Record ID may not be blank or invalid" when importing a sale or purchase

    TransPost tries to retrieve card details to ensure that the data refers to a valid and unambiguous card and then uses the returned RecordId. The error occurs because the card data has not been returned.

  • Error message "There was no error returned by MYOB but it does not appear that the insert into Customer Cards was successful."

    Variation of this can appear for a variety of import types. it indicates that generally messages are nto getting back to the ODBC from the MYOB program.

  • Importing Customer cards into Premier or Enterprise, the address fields all move up one

    This occurs because the ODBC driver fails to get the response that would tell it that it is Premier or Enterprise and should therefore construct an input line with a field for currency code. (Even if you are not using currencies the import record reserves a field for it)

  • As the MYOB ODBC launches MYOB itself invisibly this can also be an issue as the UAT question would need an answer when connecting.

    This becomes a significant issue when the process is being launched behind the scenes by the TransPost Service

Other MYOB ODBC addons

This problem is not restricted to TransPost. This problem can affect any program that writes to AccountRight via the MYOB ODBC driver.

Running as a Normal User

There is no reason why MYOB needs to run as Administrator as it is meant to work, and does, for normal users. The manifest has just never been corrected since the old XP days when it did not matter.

This problem simply does not arise if you have a normal user login, as MS recommend however this may not suit IT admins and developers.

If you are testing the set-up or developing a system on behalf of your users, who will have a normal log-in, you need not change the MYOB manifest for them.

Why not turn off the UAC prompt?

Turning off the UAC will only stop the pop-up UAC message but MYOB will still be running as administrator because its manifest still says run as “HighestAvailable”.

We do not recommend turning off the UAC. That does allow MYOB (and other applications) to run without the prompt but that is all. It can be a security risk regarding stuff off the web you may not want to run and still does not fix any of the above issues.