Thursday, June 24, 2010

Dex - Dexterity and IntelliSense: It's time to vote!

Yesterday I presented some arguments for IntelliSense implementation in Dexterity. If you are an ISV or application developer who spends a lot of time developing Microsoft Dexterity applications and working in the Dexterity environment, you may certainly appreciate the benefits of having intellisense embedded in the sanScript language. Take this sample muck up of the Script Editor window:

As a result of this, I have opened a Microsoft Connect product suggestion to have this feature implemented, but it cannot be even considered if YOU the reader don't take 1 minute of your time to vote on the suggestion. So, if you are reading this now, please click on the link below the image (or on the image itself) to cast your support for this suggestion.

Microsoft Connect product suggestion 570553

[Ed:] If you have problems accessing the link, visit to associate your Windows Live ID and create profile prior to voting.

The Microsoft Dexterity development community would also appreciate if you could join the cause, even if you happen not to be a developer. Now, go vote and tell everyone you know about the case number!

Until next post!

Mariano Gomez, MVP
Maximum Global Business, LLC

Wednesday, June 23, 2010

Dex - Dexterity and IntelliSense

I have heard many times how it's nearly close to impossible to implement IntelliSense in Microsoft Dexterity. For those of you not familiar with the term, IntelliSense is to software development what autocompletion is to Microsoft Dynamics GP data entry or Office Excel for that matter.

Similar to other autocompletion systems, IntelliSense is a convenient way to access descriptions of functions, particularly their parameter lists. It speeds up software development by reducing the amount of name memorization needed and keyboard input required. It also allows for less reference to external documentation as interactive documentation on many symbols (i.e. variables and functions) in the active scope appears dynamically in the form of tooltips while programming.

IntelliSense works by accessing an automatically generated in-memory database of classes (not [entirely] supported in Dexterity), variable names and other constructs defined in or referenced by the application being edited. With some extra effort, IntelliSense can complete statements too.

Back to Dexterity though, one of the discussion points that seems to prevail around the implementation of IntelliSense is the fact that Dexterity does not support the typical telescopic reference (or scope) for objects, attributes, and properties and that makes sense, because in practical sense Dexterity is not an object-oriented programming (OOP) language. So, for example, you cannot have a construct similar to rmCustomerMaster.CustomerNumber.Value inside of Dexterity as you would if you were using Visual Studio Tools for example.

But then came Microsoft SQL Server 2008 to prove everyone wrong. TSQL - Microsoft SQL Server's programming language - is not an object oriented programming language, hence, it does not allow for contructs in the form of telescopic references as available in any Visual Studio language. However, Microsoft SQL Server 2008 IntelliSense is able to provide enough context for objects like variables, parameter information for most language functions, and then column information for tables, and I am sure if Microsoft had put a little more effort into the the technology, they would have been able to provide parameters for stored procedures.

Now, I intentionally included the word "entirely" couple paragraphs aback when describing Dex's OOP capabilities, the reason being, while Dexterity is not a true OOP environment, it does support object-based development, this is, the ability to create state machines and properties with the use of traditional forms and composite fields. Take for example, the implementation of the Purchase Order Processing module in Microsoft Dynamics GP. This would be one place where IntelliSense could prove very usefull as it would narrow the scope of the Me instantiations created based on composite fields.

I can only hope that this feature be considered -- seriously! -- for future releases of Dexterity. If it could be done in Microsoft SQL Server, I am sure it can be done for Dexterity. Let me know what you think about the subject.

Until next post!

Mariano Gomez, MVP
Maximum Global Business, LLC

Monday, June 21, 2010

IM - Integration Manager Service Packs

Have you ever wonder how many service packs have been issued for each version of Integration Manager 10? Have you asked the question more than 100 times without a straight up answer? Suffer no more, the following is a list of service packs and hotfixes issued so far for Integration Manager 10.0

To check your version and build number, launch Integration Manager and click Help and then click About Integration Manager

Integration Manager version 10.0

RTM Version 10.00.0836
Service Pack 1 10.00.0932
Service Pack 2 10.00.1072
Service Pack 2 Hotfix 10.00.1134
Service Pack 3 10.00.1221
Service Pack 3 March Hotfix 10.00.1305
Service Pack 4 10.00.1378
Service Pack 4 September Hotfix 10.00.1384
Service Pack 5 10.00.1592

Remember that Integration Manager service packs do not rely on Microsoft Dynamics GP service pack level and can be installed at your discretion.

Until next post!

Mariano Gomez, MVP
Maximum Global Business, LLC

09/17/2010 - Included Service Pack 5 build number

Saturday, June 19, 2010

Multilingual GP

I have to admit that translating Microsoft Dynamics GP is a daunting task, especially if your translation techniques rely on the traditional Dexterity string translation used over the years by many international partners providing some sort of non-English version of Dynamics GP for customers abroad.

I have myself done my fair share of Dynamics GP translation work, first with the Spanish version for Latin America and later on with a prototype Russian version. But have to admit, the process is a bit tedious. And what about double-byte languages? There is really no support for this in Dexterity, so translation efforts are limited to single-byte languages.

With this said, I have been fascinated by Multilingual GP. These folks have taken translating Microsoft Dynamics GP to the next level. Not only do they translate the user interface (forms and reports), but they go as far as rendering data on screens and reports in other languages. Can you imagine that? If for example a user stores an item description in English, Multilingual GP can take that data and translate it into any of the supported languages on the fly!

Take a look at the following videos posted on YouTube:

Multilingual GP for Microsoft Dynamics GP

Printing Arabic Invoice

Printing Chinese Invoice

If you are considering implementing Dynamics GP in a multi-country environment, then this is the product you should be looking at.

Until next post!

Mariano Gomez, MVP
Maximum Global Business, LLC

Thursday, June 10, 2010

From the Newsgroups: Upgrading 150+ company databases

This week the partner newsgroup takes on the topic of upgrades and you will be surprise to know the different approaches available to do upgrades for large amounts of company databases, especially when down time is not much of an option.

Q: Have got a situation with a client with 150+ companies (databases) on version 9. Client is extememly downtime sensitive. Is there a supported upgrade technique or method to minimized downtime?

The answer comes courtesy of Microsoft's Randal Mayer, Partner Technical Online Community moderator.

A: The supported approach is to prioritize the databases by urgency and importance of being completed. It is the high priority databases which will require being upgraded first, validated, backed up and then released to production. For the remaining databases of less importance and less urgency, run Utilities to convert them afterwards ideally after hours.

NOTE: All company databases are not required to be upgraded. In other words, once the system database DYNAMICS and a company database are upgraded, users having the new GP client can access GP to view the upgraded company data.

Dynamics GP Utilities by design does not allow an in-place upgrade of a database to run while users are in that database. In order to upgrade a database, a lock is placed on the database (duLCK table) to ensure users cannot access it from within Dynamics GP.

As you know, once the system DYNAMICS database is upgraded, no user will be able to access Dynamics GP unless using a GP install at the new version.

Not found in a manual but known to be occurring, you can also run Dynamics GP Utilities from multiple GP installs. The risk is of an interruption or resource issue at the SQL Server machine. If SQL Server machine has the resources and ideally designated strictly for SQL Server, multiple clients running GP Utilities can be converting company databases. I find this batch type approach where high priority companies are upgraded via GP Utilities at the SQL Server and lower priority companies from a client or two machine.

There are other approaches like upgrading databases amongst multiple SQL Server instances then restoring plus others. To stay within a supported approach as you request, I will stop here with the above information.

It is becoming not all that uncommon to find 100+ database GP installations. In summary, prioritize the databases during your upgrade planning.

I hope this information is useful and that it will help you when planning your next upgrade.

Until next post!

Mariano Gomez, MVP
Maximum Global Business, LLC

Wednesday, June 9, 2010

The Dynamics GP Blogster to visit Toronto, Canada

The Dynamics GP Blogster will be in the beautiful city of Toronto, Ontario, Canada from June 14 to June 16 on a business assignment, but for those of you who would like to exchange business cards and ideas please don't hesitate to reach me at the Marriot Downtown Eaton Centre. I will be available in the evenings after 5:30 PM and as time permits.

For those of you who decide to tag along for dinner or otherwise, table topics are fairly open. Everything, but politics and religion goes :-) Hope to see some of you there.

Until next post!

Mariano Gomez, MVP
Maximum Global Business, LLC

Tuesday, June 8, 2010

Encumbrance vs PO Commitments

Two modules often confused are the Encumbrance and PO Commitments modules. They do have some similarities, but also have clear differences.

The basic differences are:

  1. Encumbrance tracks history in Great Plains while PO Commitments does not.

  2. Encumbrance doesn’t integrate with Requisition Management only PO Commitments. You can still use Encumbrance instead of Commitments, but you can’t track against a budget within Business Portal Requisition Management until you create a PO in Great Plains.

  3. Encumbrance requires all budgets to be entered for all open fiscal years but PO Commitment's budgets can be entered for any years you want to.

Their similarities:

  1. They are initiated in the Purchase Order Entry window.

  2. Budgets are for Purchase Orders only.

  3. Can do multiple purchases simultaneously (mass).

  4. Inquiries on current view.

  5. No MC functionality.

  6. Maintenance available.
Hope this helps shed some light.

Until next post!

Mariano Gomez, MVP
Maximum Global Business, LLC

Wednesday, June 2, 2010

Microsoft SQL Server 2008 Upgrade Advisor

With the release of Microsoft Dynamics GP 2010, I have been seing more and more questions regarding upgrading from earlier versions of Microsoft SQL Server -- for example Microsoft SQL Server 2000 -- to Microsoft SQL Server 2008. The questions usually comes in the form of "we are currently running [some prior version of SQL Server here] and they are ready to move to Microsoft SQL Server 2008. Is there a checklist in place for this upgrade? How does this affect GP?"

To start, the reason you will not find much of a checklist on upgrading Microsoft SQL Server on CustomerSource or PartnerSource is because this topic does not have much to do with the Microsoft Dynamics GP application itself, but rather falls in the domain of the Microsoft SQL Server Team. As such, one of the cool tools available from the SQL Server Team is the SQL Server Upgrade Advisor.

SQL Server Upgrade Advisor is a wizard-based application that helps you prepare for upgrades to SQL Server 2008 or SQL Server 2008 R2. The Upgrade Advisor analyzes installed components from earlier versions of SQL Server, and then generates a report that identifies issues to fix either before or after you upgrade your database server.

Upgrade Advisor analyzes the following SQL Server components:

  • Database Engine
  • Analysis Services
  • Reporting Services
  • Integration Services
  • Data Transformation Services
While Notification Services appears in the Analysis Wizard, it is not included in Upgrade Advisor scans because it has been removed beginning in SQL Server 2008 R2.

You can find more information about Microsoft SQL Server Upgrade Advisor at the following links:

Using Upgrade Advisor to Prepare for Upgrades @ MSDN
Microsoft SQL Server Upgrade Advisor download page @ MS Download Center
Microsoft SQL Server versions and editions upgrade @ MSDN

Until next post!

Mariano Gomez, MIS, MCP, PMP, MVP
Maximum Global Business, LLC