Error During Build in Visual Studio Tools For Microsoft Dynamics GP

Microsoft Dynamics GPBack in the early years of my career, before I became involved with Microsoft Dynamics GP, I was a trainee developer (admittedly on PICK Databasic) before moving on and learning a little VB6 and then into Microsoft Dynamics GP consultancy.

I’ve kept my hand in enough that I can still do some coding and last weekend, after chatting with a developer in the office who is creating some new screens for GP, I decided to have a little dabble with the Visual Studio Tools for Microsoft Dynamics GP myself. Continue reading “Error During Build in Visual Studio Tools For Microsoft Dynamics GP”

Do Not Use DEX_ROW_ID In Customisations Or Integrations

Microsoft Dynamics GPWell, after assuming it was a bad idea to rely on DEX_ROW_ID never changing, it is now officially a bad idea; David Musgrave has spoken on the Developing for Dynamics GP blog.

As David explains, DEX_ROW_ID was added when support for SQL Server was added to Microsoft Dynamics GP but is not guaranteed to always remain the same. For example, a change to the table structure during an upgrade could result in the DEX_ROW_ID changing. As it isn’t a fixed value, it should never by relied upon in customisations, integrations or custom code.

How To Rename A SQL Server

Microsoft SQL ServerLike some other posts recently, this one is the result of a conversation with a colleague at my new company, where I found they were unaware of something I took for granted; the ability to easily rename a comuter which has a stand alone instance of SQL Server installed.

I do this fairly often as I use quite a lot of Virtual Machines for testing different configurations, but I don’t want to have to build a new one every time, so I make copies of a base VM and rename it each time I want a new one (there is often more than one running at any one time and I want to avoid conflicts).

As well as renaming the machine inside the VM, I also rename the SQL Server to make sure it matches the name of the machine; I’ve had problems before with Microsoft Dynamics GP when I’ve not done so.

Doing this is actually very simple. Continue reading “How To Rename A SQL Server”

Error When Switching Back To Microsoft Dynamics GP From Report Writer

Microsoft Dynamics GPI installed Microsoft Dynamics GP 2010 R2 onto my work laptop a few weeks ago, just after I started working for this company.

I needed a demo environment and so installed the most recent version. I’ve been getting an error since that time whenever I switched back from Report Writer to GP itself;

Unhandled script exception: Illega address for field '[Not Found]' in script 'Unregister_Triggers'. Script terminated.

Continue reading “Error When Switching Back To Microsoft Dynamics GP From Report Writer”

Copy Microsoft Dynamics GP Live Company To Test Automatically

Microsoft Dynamics GPBacking up the a Microsoft Dynamics GP company to test is, unfortunately, not as simple as backing up one database and restoring it to the Test one. There are two scripts which need to be run after doing so; the first changed the INTERID and Company Name and the second changes the database owner to dynsa.

At my last company, we decided to make this process as easy as possible for clients, so we started creating a SQL Agent Job which would do the backup, restore and run the scripts with minimal effort or could even run on a scheduled basis. The basic purpose was to give the client a test or training system which was always, or could very quickly be, up to date. Continue reading “Copy Microsoft Dynamics GP Live Company To Test Automatically”

4th Dynamics Certification Gained: Managing Microsoft Dynamics Implementations

Microsoft Dynamics GPI’ve been a bit quiet again this week posting wise, but this was because I was preparing for a Microsoft Certification exam yesterday.

Fortunately, I passed and am now the holder of a Managing Microsoft Dynamics Implementation certification along side the three Dynamics GP certs I already had; GP 10 Installation & Configuration, GP 10 Financials and GP 2010 Inventory & Order Processing.

I’ve taken a look at the Certification Planner on Microsoft Learning to see how far I am from an MCITP in Installation & Configuration for Microsoft Dynamics GP. I think I’m one certification away but it’s slightly hard to tell as the planner hasn’t been updated with the GP 2010 exams.

Fixing A Corrupt Account Index Master

Microsoft Dynamics GPA while ago I investigated an issue where some reports were not working correctly on a client system; they’d been written with Crystal and were not returning transactions for newly created accounts.

As reports I write tend to do, these reports were joining to the General Ledger via the GL Account Index Master (GL00105) table and then joining to GL Account Master (GL00100) for the account descriptions. I wrote the following script to check the two tables against each other to see where the problem lay (my suspicions were on GL00105 being corrupt as the accounts were being used within Microsoft Dynamics GP Continue reading “Fixing A Corrupt Account Index Master”

Making A Drive Available Over The Remote Desktop Connection

WindowsI needed a colleague to backup and copy a clients Microsoft Dynamics GP System and Company database back to our systems remotely out of standard working hours.

While I may have used FTP or similar if I had control of all software installed on the server, in this case the best way of doing this was to just use the Remote Desktop Connection and a local drive made available and copy the backups to this drive over the connection.

However, the colleague who was going to do this for me out of hours is not from an IT background like I am. He’s one of those Mark Polino laments the absence; a qualified accountant who has moved into a role as a Microsoft Dynamics GP consultant.

As he’s not from a technical background, there are some things I take for granted which he does not know of. I therefore documented the process of making a drive available over the RDP connection for him and I thought I’d post it up here as I thought it might be useful to others. Continue reading “Making A Drive Available Over The Remote Desktop Connection”

Selecting The Correct Microsoft SQL Server 2000 Collation For Microsoft Dynamics GP

Microsoft Dynamics GPAfter initial acclimatisation pains with Microsoft SQL Server 2008 R2 (I largely skipped 2005 and 2008 RTM) I have become used to Management Studio and do now prefer it to Enterprise Manager and Query Analyser.

One of the things I really like about SQL 2008 R2 is the installation process where you pick the collation. Dealing with Microsoft Dynamics GP so much means I need to be careful with server and database collations as GP, once installed, cannot have it’s database collation changed.

We typically install SQL Server for Microsoft Dynamics GP using the SQL_Latin1_CP1_CI_AS (case insensitive, accent sensitive), which is very easy in SQL 2008 R2 Continue reading “Selecting The Correct Microsoft SQL Server 2000 Collation For Microsoft Dynamics GP”

Get Next Journal Entry Number

Microsoft Dynamics GPA colleague is currently working on some development for Microsoft Dynamics GP and needs to create a journal.

I did some digging around the company database looking for the correct way to get the next Journal Entry number and found a function called glGetNextJournalEntry.

A little work and I was able to supply the following to the developer for him to wrap into a stored procedure to get the Journal Entry number and make sure there were no issues in GP;

/*
Created by Ian Grieve of azurecurve | Ramblings of an IT Professional (http://www.azurecurve.co.uk) This code is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0 Int). */
DECLARE @l_tINCheckWORKFiles tinyint = 1 DECLARE @I_iSQLSessionID int = USER_SID() DECLARE @O_tOUTOK tinyint DECLARE @IO_iOUTJournalEntry int = 1 DECLARE @O_iErrorState int EXECUTE glGetNextJournalEntry    @l_tINCheckWORKFiles    ,@I_iSQLSessionID    ,@IO_iOUTJournalEntry OUTPUT    ,@O_tOUTOK OUTPUT    ,@O_iErrorState OUTPUT SELECT @IO_iOUTJournalEntry AS 'NJRNLENT', @O_tOUTOK AS 'OUTOK', @O_iErrorState AS 'ERROR'