Developing Microsoft Dynamics GP hybrid integrating applications

October 12, 2009

As I prepare for the 2009 Microsoft Dynamics GP Technical Conference, one of the topics that keeps coming across the sample applications we are planning on showcasing to the attendees and frankly, something that David Musgrave and I have been informally publishing and talking about for quite some time now is the topic of hybrid integrating applications development.

Simply put, in the world of Software Development the Earth doesn’t always revolve around the Sun. In fact, in the world of Software Development, there are times when the Sun and other planets may need to revolve around the Earth. This is, as a developer your solution becomes the center of the Solar system and all resouces at your disposal work to make that solution robust and to meet the requirements established by your customer — customer used here in the broad sense of the word.

Hybrid application development involves using multiple development tools and techniques to make your solution a viable one. In the case of the Dynamics GP development, those development tools involve the use of Microsoft Dexterity, Visual Basic for Applications (VBA), and Visual Studio Tools for Microsoft Dynamics GP. In today’s world, to think that one tool is enough to build an application is ludocrus (take this from the Microsoft Dexterity developer in me). In fact, as the Microsoft Dynamics GP application suite continues to expand its use of managed code, using one tool to deliver a solution is becoming very (if not extremely) limiting!

A hybrid development approach will then allow you to take advantage of the best features available with each tool. A Microsoft tool that best represent this hybrid approach in the Dynamics GP space is Menus for Visual Studio Tools for Microsoft Dynamics GP — save the joke about the name… MVP Mark Polino once called this the longest name for any Microsoft product — VSTM for a short, uses Microsoft Dexterity to expose a menu managing API that allows Visual Studio developers to add their customizations to Microsoft Dynamics GP standard menu structure.

A hybrid development approach can be use for even VBA customizations, where you need to run Microsoft Dynamics GP internal functions and procedures. By now, many of you may have explored running Dexterity sanScript code from your VBA customizations with the Dynamics Continuum Integration Library… yeah, yeah, I have also heard the claims and place the disclaimers myself about supportability of this approach. You may even be taking advantage of calling .NET assemblies from Dexterity. In fact, your Visual Studio Tools solutions are by nature hybrid, since they take advantage of Microsoft Dynamics GP resources that are accessed via .NET assemblies.

Hybrid development forces developers to broaden their knowlege of tools and leave their comfort zones, but I firmly believe it makes for better integrating application solutions.

Related Articles

Sample Hybrid Customizations @ Developing for Dynamics GP
VBA – Creating a keyboard shortcut for a Microsoft Dynamics GP window expansion button
This week, free Visual Basic for Applications workshop with the Dynamics GP Blogster
Using Menus for Visual Studio Tools from VBA – Calling native VBA forms
How to display existing record notes on an existing Dynamics GP window with Modifer and VBA
Using pass-through sanScript in VBA to return a file path to a Dynamics GP Modified form field

Until next post!

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


MVP Headlines at Dynamics Conference

October 12, 2009

The Microsoft MVP Award Program blog has a stub running today on my appearance at the 2009 Microsoft Dynamics GP Technical Conference in Fargo, ND. If you are planning on attending the conference, please don’t forget to register. There are still plenty of seats open and you can still get some decent hotel rates around town. The Conference will be held from November 9th – 11th, with an entire day of post-conference training FREE!!

Don’t miss out on this great opportunity to meet some of your fellow peers doing the technical heavy lifting in the trenches. A big reason why these conferences are successful is because you have the ability to interact with other people who understand your pains and may even give you a tip or two on how to tackle your issues.

Until next post,

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


The Technology Corner – Microsoft Office 2010 and Microsoft Dynamics GP v10

October 6, 2009

Thanks to the MVP Award Program, I got a hold of Microsoft Office 2010 Professional Technical Preview. While the Technical Preview copy has been out since the beginning of July via Microsoft MVP Connect Services, I have just come around to installing it and testing the traditional Dynamics GP operations with SmartLists and Navigation Lists. I have to say I am pretty impressed, but before we get there, let’s take a look at a few Microsoft Office 2010 improvements.

The New Startup Splashes

Well, the old saying has it that “food enters through the eyes” and Office 2010 is not the exception. Microsoft has departed from the old boring splashes to some really modern polychromatic animated art. Here are a few artworks for some of the most recognized products within the suite.


The installation process went pretty smooth and I was surprised to see all my Microsoft Office 2007 components upgrade without a hitch. Visio continues to be provided as a separate install, but even this wasn’t a deterrent to installing the product. The startup process for all these applications is fairly fast when compared to previous versions of Microsoft Office, even the 2007 version.

The Features

Microsoft Office 2010 is jam-packed with new features, but hear it directly from the Microsoft Office Product Management team.

See What’s New in Microsoft Office 2010

See What’s New in Microsoft Excel 2010

See What’s New in Microsoft Word 2010

See What’s New in Microsoft Outlook 2010

See What’s New in Microsoft PowerPoint 2010

See What’s New in Microsoft SharePoint Workspace 2010 (Formerly Microsoft Off…

Microsoft Dynamics GP

I am currently running Microsoft Dynamics GP v10 Service Pack 4 on Windows 7 Enterprise. Upon launching Dyanamics GP I thought I would encounter my first issue with the Home Page perhaps not being able to address the new version of Microsoft Outlook 2010 components.

However, it seems that Microsoft Office development team made a concious effort to preserve the COM automation interfaces for compatibility with other applications that have come to rely on these objects. Next step involved testing SmartList exports to Microsoft Excel 2010 and Microsoft Word 2010. I went ahead and selected the Account Summary SmartList and click the Export to Excel button. The test completed successfully as shown in this video:

Microsoft Office 2010 – The Movie

Finally, I leave you with a really cool teaser released on YouTube. I am sure more of these will pop up as the release date approaches.

If you are currently participating in the Microsoft Office 2010 Technical Preview please feel free to add your comments to this post sharing your experiences. In particular, if you are testing Microsoft Dynamics GP with the Technical Preview, I would like to know of your findings.

Until next post!

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


Microsoft Small Business Summit Online

October 2, 2009

More on OLE attachments and record notes

October 2, 2009

Microsoft’s David Musgrave takes on OLE attachments and record notes based on a support case he tackled recently. David reviews the process use by Dynamics GP to retrieve the next note index value and how the system associates the note to a record. He explores the OLE container and how the file names are encoded along with the path.

Furthermore, he provides some Dexterity and SQL code to demonstrate how you would retrieve the hexadecimal value used to compose the notes file name. Be sure to read David’s article to get the complete scoop.


Related articles

All About the Dexterity OLE Container – click here
Understanding Notes and the Note Index Field @ Developing for Dynamics GP, click here

Until next post!

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


MVP Frank Hamelly’s gptip42day

October 1, 2009

Folks, if you are not taking advantage of MVP Frank Hamelly’s gptip42day daily columns featured in his gp2themax blog, you are missing out on some of the best “from the trench” tips you will ever find (Mark, your “50 tips in 50 minutes” are very good too, so no offense).

Frank explores some of the hidden, dark secrets of Microsoft Dynamics GP in a friendly manner and presents real life examples of their usage and how they affect your daily work. Kudos to Frank!

Until next Post!

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


Congratulations to Mark Polino, MVP!

October 1, 2009

“I would do this stuff without recognition from anyone…”

Dynamics GP MVP Mark Polino has been granted another clean bill of health by Microsoft, renewing his current status as MVP for the 2010 year. Mark has been a regular contributor to the Microsoft Dynamics GP user community newsgroups, the Microsoft Dynamics GP partner forum, and has been featured as one of the Microsoft Dynamics Top 100 most influencial professionals in 2009. Mark also runs one of the most succesful blogs in the community, DynamicAccounting.net, where he is constantly featuring articles around the Dynamics blogosphere and his customary columns, Weekly Dynamic and Weekly Review.

Be sure to stop over at DynamicAccounting.net and congratulate Mark for his MVP renewal achievement.

Related Links

The Microsoft MVP Award Program Blog – Click here.

Until next post,

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


Inside multi-platform integrations with Integration Manager

October 1, 2009

I have been working on a very challenging systems conversion project, from JD Edwards on AS/400 and DB2 to Microsoft Dynamics GP v9. Part of the challenge stems from the fact that certain processes, mainly in-house applications developed for the AS/400 will continue to support existing business processes pass the “go-live” date.

I am tasked with developing multiplatform integrations to support application processes in place and by doing so, I’ve had to dust off my DB2 – AS/400 skills. Per the client’s request, the integrations need to be easy to use, extremely flexible and adaptable, and low maintenance (as in little to no programming required). Many of you may think that due to the nature of the systems involved, this could very well be an eConnect implementation. However, Integration Manager was chosen because of the characteristics previously described.

As I work through implementing the first integration to manage expense reimbursements from Lotus Notes, my integration needs to read data from some interface tables in a DB2 catalog. As such, we deployed the IBM Client Access ODBC driver. Working through the configuration was fairly simple, but due to the driver features I was afraid Integration Manager was not going to be able to store the DSN configuration.

One thing I discovered while working with IM v9 SP4 (9.00.0054) is that due to it’s underlaying implementation of the almost outdated use of ADO technology, it cannot perform a preview of the source queries, with the following error message:

Upon further research, it seems this error is generated because server-side cursors are not supported with ISAM (Indexed Sequential Access Method) files. As it turns out, ISAM was originally developed by IBM and later replaced with a storage file system called methodology called VSAM (Virtual Storage Access Method). VSAM is the physical access method used in DB2.
What does this have to do with IM? Well, IM — version 9 specifically — uses ADO to connect and retrieve data. The problem with ADO and VSAM file systems is that the cursor location needs to be set to AdUseClient and the cursor type needs to be checked for bookmark support:

oRecordSet.Supports(adBookmark)

Apparently, this is not being done in IM v9’s internal ADO implementation. The good news is, I checked this against IM v10 and I have to say it works just fine, since, IM v10 was developed from the ground up with ADO.NET.

Given there was no preview available, testing began with a small dataset.

Integration Manager began importing expense vouchers and in the process neglected randomly to import the distributions. I executed the same integration a few times and obtained random results: transactions that previously imported fine along with their distributions did not import and failed the second time around. I verified the RecordSource Rule and Source properties to make sure they were set to Default Non-Imported and the source query for the distributions, respectively.


Upon adding some VBScript to write the records that were being read and attempted during the integration, I noticed that the header records were being read in order while the distribution records were shifting randomly. In some cases IM would match the header record with the distribution record, but in some cases it would skip a valid set of distributions for an expense voucher. By changing the UseOptimizedFiltering flag in IM to False the imports began to work as expected.

Integration Manager is a very useful tool and should not be overlooked when considering multiplatform systems integrations, especially if the customer insists on easy of use. All the integrations will be scheduled on a server and will run unattended, which only validates IM’s flexibility.

Until next post!

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


Microsoft Dynamics GP Roadmap Update

September 27, 2009

Back in April I published an article describing Microsoft Dynamics GP roadmap up to release GP 11 Future Pack. The timeline also described what would happen at least up to 2011.

Just recently the Microsoft Dynamics GP Product Management and Marketing team released a new stub titled Microsoft Dynamics GP “11″ Preview with a link to the Dynamics GP “11″ Presentation Pack (visit their site for more info). The presentation pack contained a Microsoft Office PowerPoint presentation describing the Dynamics GP roadmap up to GP “14″.

To comment a bit on the roadmap, the Product team has a vision that extends beyond the initial 2011 scope delivered back in April, throughout to 2016, which quiets down rumors as to the future of Dynamics GP and reafirming Microsoft’s real commitment. While the bullet points accompanying GP “12″ and GP “14″ are pretty vague, it’s worth mentioning that GP “14″ is contemplating a major user interface update. I won’t be surprised to see more improvements to the GP ribbon and perhaps even extensibility of forms and reports with Visual Studio Tools for Applications. What is Visual Studio Tools for Applications? It’s Microsoft’s replacement for VBA. After all, VBA is old technology –reminiscence of Visual Basic 6 — and served it’s purpose already if you ask me.

What else to expect? Integration, integration, integration… tighter integration with Microsoft Office, tighter integration with Microsoft SharePoint Server, bigger-broader enhancements to BI, and even support for cloud computing deployments with SQL Azure.

Keep in mind as you read this article that these comments are my personal point of view based on the trends I am seeing across all Microsoft product stacks and do not represent the views and/or directions of Microsoft.

Until next post!

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


How to startup GP with a default navigation page rather than the home page

September 23, 2009

So you want to be able to startup GP with a navigation bar option instead of the typical home page? This request was posted today by Mary Fetsch on the Microsoft Dynamics GP community public newsgroup.

After playing around with the navigation bar for a while and some head scratching, the light bulb went off… use a macro! One peculiarity about the navigation bar is, while click actions are off limits to the macro system — the navigation bar is part of the .NET managed code application wrapper — each option can be accessed with a combination of the Control key on the keyboard and a numeric sequence associated to the option. As such, Home can be accessed with the CTRL+1 keyboard combination; Financial, with the CTRL+2 combination, and so on.


The macro

The macro I created is the typical login macro documented in the Integration Manager manual with an extra touch: I recorded extra steps to close all windows and the keyboard combination for the default startup navigation option, in this case the Purchasing option. The macro looks like this:

Purchasing.mac

# DEXVERSION=10.0.324.0 2 2Logging file 'macro.log'CheckActiveWin dictionary 'default'  form Login window Login  MoveTo field Password  TypeTo field Password , 'somePassword'  MoveTo field 'OK Button'  ClickHit field 'OK Button'NewActiveWin dictionary 'default'  form sheLL window sheLLNewActiveWin dictionary 'default'  form 'Switch Company' window 'Switch Company'  MoveTo field 'OK Button'  ClickHit field 'OK Button'NewActiveWin dictionary 'default'  form sheLL window sheLLNewActiveWin dictionary 'default'  form sheLL window sheLLNewActiveWin dictionary 'default'  form syReminders window syRemindersActivateWindow dictionary 'default'  form sheLL window sheLL  CommandExec dictionary 'default'  form 'Command_System' command CloseAllWindowsActivateWindow dictionary 'default'  form Toolbar window 'Main_Menu_1'ShellCommand 'Navigate to \cmdNavigationPane\PurchasingButton\PurchasingAreaPage' # PurchasingActivateWindow dictionary 'default'  form sheLL window sheLL

Once the macro was ready, all that’s needed is to change the Dynamics GP application shortcut to launch and play the macro all at the same time, as follows:

“C:\Program Files\Microsoft Dynamics\GP\Dynamics.exe” Dynamics.set purchasing.mac

One thing I like about these type of user questions is, they are real life situations that can shave minutes from someone’s daily routine making life a bit easier.

Until next post!

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