Microsoft Great Plains Dexterity Customizations


Microsoft Business Solutions is on the way to popularize it’s ERP systems implementation. Right now such products as Microsoft CRM and Small Business Manager (cheap version of Microsoft Great Plains, based on the same Great Plains Dexterity runtime and DYNAMICS.DIC dictionary) are targeted to self-implementation by in-house IT group. This is short article, written in question/answer/FAQ style to give IT Director/Controller balanced top level information on Microsoft Business Solutions Great Plains implementation. If you have decided on Microsoft Great Plains as main accounting and ERP system you need to know some technical details on Great Plains installation and implementation and what is going on behind the scenes. As of right now the current version is Microsoft Great Plains 8.0. Plus you probably should know about programming language of Microsoft Great Plains – Great Plains Dexterity

If you are developer who is asked: how do we customize Great Plains with its native programming language – Great Plains Dexterity – read this and you will have the clues on where to look further.

The history of the Dexterity. Great Plains Dexterity – is proprietary programming language and technology, designed back to earlier 1990th with the goal to build platform independent graphical accounting package – Great Plains Dynamics. Dexterity itself is written in C (following popular those days hope – that C will provide platform independence). You can install Dexterity from Great Plains 7.5 CD #2. Obviously it requires a lot of learning / training, but it allows your custom piece be seamlessly integrated with Great Plains interface.

1. Native Dexterity Cursors. Dexterity was designed as platform independent programming language and so if you want your code to be operable on all currently supported databases – you use Dexterity ranges and loops to manipulate the records

2. Great Plains Dexterity with SQL Stored Procs Nowadays, most of Great Plains installations are moved to SQL Server – so you can use Dexterity for custom forms drawing only and make the buttons run SQL stored procedures.

3. COM Objects calls. Beginning with version 7.0 Dexterity supports COM objects – you register them as libraries in Dexterity. Refer the manual. This technique allows you to call such nice things as web services across the internet.

4. Dexterity Forms – if you like VBA and are comfortable to do all the business logic in VBA – you can use Dexterity as new forms creator/editor. This is OK – but you have to purchase VBA/Modifier and Customization Site Enabler from MBS.

Some restrictions. Great Plains is actually integration of multiple dictionaries: DYNAMICS.DIC, ADVSECUR.DIC, EXP1493.DIC, etc. In your Dexterity customization you can deal with one dictionary – DYNAMICS.DIC. If you need cross dictionaries customization – consider using SQL Stored Procs for crossing dictionary borders and pulling data/making changes in the other dictionary..

Happy customizing! if you want us to do the job – give us a call 1-866-528-0577! help@albaspectrum.com

Microsoft CRM – Typical Customizations


Microsoft CRM was designed to be easily customizable. Microsoft CRM Software Development Kit (MS CRM SDK) which you can download from Microsoft website contains descriptions of the objects or classes, exposed for customization. It has sample code in C# and partially in VB.Net. In Visual Studio.Net you can analyze all the classes, used by Microsoft developers to create MS CRM – you will discover that most of them are not documented in MS CRM SDK. Microsoft will not support your customization if you use undocumented class or do direct SQL access to CRM database.

Let us describe you – programmer, software developer typical cases of MS CRM Customizations.

1. Integration with SQL Server application. If you have legacy system on MS SQL Server – let’s say you are transportation company and have in-house developed cargo tracking database. Now in MS CRM you want lookup the shipments for the customer (or account in CRM). This is SDK programming and calling SQL stored proc to retrieve cargo info. Instead of SQL Server you can have other database (ORACLE, MS Access, PervasiveSQL to name a few) – you can access multiple Database platforms via ADO.Net connection from your .Net application, which is easily integrated into MS CRM Account screen.

2. Email capturing in MS CRM. You have customer with email Bill@customer.com. Now you want all the emails that you receive from customer.com domain to be attached to Bill who is account in CRM. This is more difficult customization – you have to create MS CRM SDK web service, that one will be creating email activity and call it from COM+ application – Microsoft Exchange event handler (ONSYNCSAVE database event sink). This example maybe complicated with the following requirement. Imagine that Bill, instead of answering to your email (sent from CRM and processed by CRM-Exchange connector) sends you new message from MS Outlook. Then this email will not follow into MS CRM (because it doesn’t have GUID in the header and so is ignored by CRM Exchange connector). If you want to capture these emails – you have to do it in Microsoft Exchange event sink. There maybe scenario when you want to capture and analyze in the sink all the outgoing emails – this is even more complex – y!

ou have to place the sink on transport event.

3. ASP Application integration. You have legacy ASP application, where you capture orders from your customers and you want these orders be transferred to the CRM as activity. Here you understand that ASP doesn’t deploy Active Directory security – and the best way is to create HTTP handler and call it from your ASP page. This HTTP handler in turn will call MS CRM SDK web service with predefined (web.config) Active Directory credentials.

Some cautions. Never create your custom SQL objects (like stored procedure, SQL view, table) in MS CRM database. Instead, create your own database and place your objects there. When you see the first caution – you will never try to alter existing CRM objects, like adding new field to the table.

Happy customizing! if you want us to do the job – give us a call 1-866-528-0577! help@albaspectrum.com