Microsoft Dynamics GP Support Debugging Tool

July 30, 2008

You may have heard about the Support Debugging Tool for Microsoft Dynamics GP previewed a few months ago at the Microsoft Dynamics GP Technical Airlift 2008 in May with good reception among the attending crowd.

What is the Support Debugging Tool?

The Support Debugging Tool is a Dexterity application which contains a collection of utilities and tools to make the task of supporting, developing and debugging Microsoft Dynamics GP easier and faster.

David Musgrave, author of the tool says “I originally developed the tool when our Microsoft Dynamics Support in the Asia Pacific region was assisting a customer with a situation that produced invalid data in a table, but no cause could be replicated. Looking at the customer’s data it was verified that there was an incorrect value in the table. No one was able to identify when the previously correct value in the table was being changed to the incorrect value.

Using Dexterity triggers and the ability to programmatically control Dexterity and SQL logging, the Support Debugging Tool was built and used to monitor the table field in question and log the steps which led up to the field changing to the incorrect value. It was able to identify the situation and provide the exact scripts being executed up to the point the error occurred. This information allowed the code issue to be identified and fixed.

Since then the features of the tool have been expanded and will continue to expand as feedback and needs demand.

For more information on Support Debugging Tool please see David Musgrave’s article on the topic.

Until next post!

MG.-
Mariano Gomez, MIS, MVP, MCP, PMP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com

Advertisements

Microsoft Dynamics GP’s History… from a Logo Perspective

July 30, 2008

I am not sure if my friend David Musgrave has too much time on his hands, but one thing is for sure: the guy does have some of the coolest articles around the GP blogosphere. This time, David surprises us with a time progression of Dynamics GP logos. If the product history could be documented in pictures, this would be it.

Let’s see, I started working with Dynamics GP when the wheat and red sun logo was around back in 1996. Back then I took R3.15 to Latin American Spanish… not how I want to be reminded of my age.

Until next post!

MG.-
Mariano Gomez, MIS, MVP, MCP, PMP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/


Create your own taGetNextNumber stored procedure

July 30, 2008

I have heard this one very often on developers and users newsgroups alike. In past releases of eConnect (8.0 and before) it was not possible to retrieve the next document number for a few existing transactions in the system via eConnect’s COM interface, case in point the Purchasing Receipt Transaction. However, the problem is not limited to eConnect. Many developers have tried to retrieve transactions next document numbers via Integration Manager and have faced the same issue.

The following sample code segment creates a wrapper around the little known dbo.ivNumber_Inc_Dec stored procedure, present within the company database.


create procedure sptaGetNextNumber
@poprctnm char(17) output,
@errorstate int output
as
declare @nextrctnm char(17)

select @poprctnm = poprctnm, @nextrctnm = poprctnm from pop40100
-- call Inc_Dec procedure

exec @errorstate = dbo.ivNumber_Inc_Dec 1, @nextrctnm output, @errorstate output

if @errorstate = 0
update pop40100 set poprctnm = @newrctnm

return
go

grant execute on sp_taGetNextNumber to DYNGRP

The dbo.ivNumber_Inc_Dec stored procedure takes a document number string and increments or decrements the numeric portion based on a flag. The stored procedure uses the following parameters:


[dbo].[ivNumber_Inc_Dec]
@I_tInc_Dec tinyint = NULL,
@IO_vDocNumber varchar(21) = NULL output,
@O_iErrorState int = NULL output

Until next post!

MG.-
Mariano Gomez, MIS, MVP, MCP, PMP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/


Microsoft Dynamics GP 10.0 Service Pack 2 Login Issue Fixed

July 25, 2008

Mark has interesting information posted on his blog on a security fix addressed in Microsoft Dynamics GP 10.0 Service Pack 2 (10.00.1061). The original issue had to do with turning on password control with password expiration in GP, which is in turn address by Active Directory. Go on to read Mark’s post on the issue to get the full details.

Until next post!

MG.-
Mariano Gomez, MIS, MVP, MCP, PMP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com


Cross Dictionary Development with Microsoft Dexterity

July 25, 2008

When I first started working in 1996 as a Software Development Engineer on the Dynamics GP Spanish release for Latin America project in Colombia for my former company Nucleus S.A. — a Microsoft regional partner at the time — I was challenged by a number of puzzling coding issues that seem to have no solution. Our inability to access third party dictionary information interactively with Dynamics GP was the absolutely most disappointing issue we faced since we had great plans for integrating Fixed Assets (back then a Forestar product) with GP for some Latin American localizations needed at the time. Those issues propagated over a period of 2 years, and during the time our only possibilities were database triggers and stored procedures after the fact. I must say that I worked hand to hand with some of the most brilliant people on the International Team at the former Great Plains Software in getting the product off the ground from a development perspective: Tom Irsfeld, Dave Gaboury, Tadeuz Komorovski and Papa Ndoye.

It was not until 1998 when I traveled to Fargo, ND that I met David Musgrave for the first time. I attended his Integrating with Third Party Dictionaries session, becoming familiar with some not too ortodox, but highly effective methods (at the time) he engineered for accessing data on foreign third party forms and tables from Dynamics GP using Dexterity 4.0. His materials became the bible I (and many Dexterity programmers around the world) followed to train new developers and forward my career in the company as a Senior Software Architect. I also attended his conference in Summer of 2000 where he unleashed other cross dictionary techniques that until today are still considered the absolute best practices.

I followed up with his Pushing the Limits with Dexterity which he co-hosted with Mark Rockwell from Rockton Software in 2002. By then, Dexterity had gained new functionalities from a scripting perspective and it was showing its maturity.

David and Mark have always made these conference materials available from each of their sites, but you can now download directly from David’s blog.

Until next post!

MG.-
Mariano Gomez, MIS, MVP, MCP, PMP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/


Microsoft Dynamics GP Scrolling Windows and Line Sequence Numbers

July 24, 2008

I thought I would write about something meaningless that no one really thinks about. However, I realized that this is a compelling topic since it makes for some interesting discussion around the ability to insert line items withinin most transaction scrolling windows.

Let’s take some time to understand where Line Sequence Numbers come from. A Line Sequence Number is auto generated by Dynamics GP and uses a seed value of 16,384 as a basis for the first line. Each subsequent line in the scrolling window is incremented by this number, so line number 2 would have a Line Sequence Number value of 32,768, line number 3 would have Line Sequence Number Value of 49,152, and so on.

Since most GP transaction entry scrolling windows allow inserting rows in between line items, the newly inserted Line Sequence Number value is calculated as an average between the previous and the next line item sequences, i.e., if you were to insert an item in between row 1 and row 2 in the scrolling window — keep in mind the values 16,384 and 32,768 respectively — the Line Sequence Number would then be calculated as:

Line Sequence Number = (16,384 + 32,768)/2 = 24,576.

To visually represent this:

row1…. 16,384
row2…. 24,576 — newly inserted row
row3…. 32,768

Now, if you were to insert a new row in between 1 and your previously inserted row 2, the new Line Sequence Number is now calculated as follows:

Line Sequence Number = (16,384 + 24,576)/2 = 20,480.

Once again, to visually represent this:

row1…. 16,384
row2…. 20,480 — newly inserted row
row3…. 24,576 — previously inserted row 2 is now row 3
row4…. 32,768

At this point, you may be asking, how is this nonsense even relevant? Just imagine for one instance that you attempt to insert line items at the same spot in the scrolling window, say for example at row 2, what would happen? You receive a “You cannot insert a row” error!

What happened? Let’s go back to our visual representation, this time with a real example:


ITEMNMBR LNITMSEQ
-------- -----------
FOO1 16,384
FO16 16,385
FO15 16,386
FO14 16,388
FO13 16,392
FO12 16,400
FO11 16,416
FO10 16,448
FOO9 16,512
FOO8 16,640
FOO7 16,896
FOO6 17,408
FOO5 18,432
FOO4 20,480
FOO3 24,576
FOO2 32,768

The first time around, you will only be able to insert up to 14 rows in one location before experiencing the error mentioned previously. After the error, you will need to move one to a much more “suitable” location within the scrolling window to insert a new row, for example, row 4 (FO14) where only one item can be inserted due to the Line Sequence Number on FO15 and FO14.

Until next post!

MG.-
Mariano Gomez, MIS, MVP, MCP, PMP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/


New article on MSDynamicsWorld: Five Tips for Getting Your Microsoft Dynamics GP Implementation Right – The First Time!

July 23, 2008

Please stop by MSDynamicsWorld.com and read my new article “Five Tips for Getting Your Microsoft Dynamics GP Implementation Right – The First Time“. In this article, I explore the reasons why most implementations go sour and provide some guiding principles for customers (and partners/consultants) to be successful.

Implementations are enterprise transformation projects and not just mere software installations.

Until next post!

MG.-
Mariano Gomez, MIS, MVP, MCP, PMP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com