Today I have 2 issues to write about relating specifically to Canadian Payroll in Dynamics GP; things that a couple of my clients have recently run into that are fairly common and easy fixes.

Issue #1 is regarding stuck batches and the message "The batch is currently in use - Please wait until the other user is finished".

Issue #2 is regarding permissions during the Generate Cheques routine and the message "There is an error in the Transmission Header - Incorrect Length".

Issue 1: Stuck Batches

This first issue is incredibly easy to resolve yet one of those things that consultants are not looking for something this simple; the solution is different than for nearly every other module which requires a SQL script to be run.

The issue is trying to do something to a batch in Canadian Payroll and receiving the following message:

Error message presented to the user stating "The batch is currently in use - Please wait until the other user is finished" with an OK button as the only option to select.
Error message "The batch is currently in use - Please wait until the other user is finished".

The solution is to open the Payroll Batch Setup window, select the batch and click the Reset Button. This resets the batch's status from In Process to Available, freeing it up for the user to proceed with it. When users click Reset, they will get a message to confirm that says something like "Are you sure you want to perform a general cleanup of the batch file?" and the answer is Yes.

💡
Canadian Payroll batch info is not in the SY00500 table like other batches from core Dynamics GP.
A picture of the Payroll Batch Setup in Canadian Payroll where the reset button is. The batch itself is empty on this screenshot.
Payroll Batch Setup in Canadian Payroll where the reset button is.

Issue 2: Permissions

This second error, which occurs during the Generate Cheques process, is permissions-related. Of course, users wouldn't know that by the error message though! We really should help those developers with improving the text on error messages someday!

The error is: "There is an error in the Transmission Header - Incorrect Length".  Meaningful isn't it?  Well, when this first happened, it was with a client who had just upgraded from GP 9 to GP 2010 and this was on processing their first payroll.  They didn't get the error during their test upgrade so it was a little surprising.

An error message with "There is an error in the Transmission Header - Incorrect Length" as the message and an OK button.
Error message "There is an error in the Transmission Header - Incorrect Length"

The solution ended up being that the user - now that GP 2010 was installed on their workstation with their normal permissions, didn't have "write" permissions on the application directory (C:\Program Files\Microsoft Dynamics\GP2010). 

During the Generate Cheques routine, for most Canadian Payroll users, two files are being generated: a direct deposit file which the user sends to the bank, and a Canada Savings Bond file which the user sends to the bank or manually transmits in other ways. Years ago, both files defaulted to the application directory without giving the user the option where to save it; nor was there an option to configure a default location like most other file-based things in other modules. 

After many complaints and suggestions, Microsoft fixed the issue on the Direct Deposit file, which now prompts the user for a location to save the output file.  Unfortunately, they didn't do the same for the CSB file and it continues to default to the application directory, hence those permissions are required if CSB functionality is being used.

At this client, they switched to Windows 7 with the upgrade so the workstations were using default User Account Control settings.  A simple switch to permit the users to create a file in that directory solved the problem.

Hopefully, this helps someone out there when they get one or more of these error messages!