Posts

Showing posts from March, 2010

Microsoft Dynamics GP Architectural Foundations Series - Built to Grow

Image
This is article 3 of 7 from the series Microsoft Dynamics GP Architectural Foundations Series - featuring Microsoft's Tim Brookins . Tim's whitepaper was originally published in 1999 and it's reproduced here with his permission. Built to Grow We began our discussion with the premise that the true value of a business management system is in the product’s functionality. Our “Built to Last” architectural value allows us to “plug in” new technologies, giving end users access to leading edge technologies while also protecting the functionality from changes in technology. We have established an architecture that allows our product to be “Built to Last,” which allows us to turn our attention to the task of ensuring we can add new functionality to the product. We call this value “Built to Grow.” At Great Plains, we ensure our product is built to grow in three primary ways. Solid Foundation A software developer can’t add new functionality if they are always busy fixing

Microsoft Dynamics GP Architectural Foundations Series - Built to Last

Image
This is article 2 of 7 from the series Microsoft Dynamics GP Architectural Foundations Series - featuring Microsoft's Tim Brookins . Tim's whitepaper was originally published in 1999 and it's reproduced here with his permission. Built to Last The paradox of functionality vs. technology Business management systems are huge. The Dynamics product has more than 1,100 windows, 900 reports, and data stored in more than 500 tables. This robust functionality didn’t happen overnight. Several years ago, a staff of more 100 developers began work on Dynamics. The number of developers has steadily increased, and today more than 240 developers work on the product. That is a huge investment to achieve this level of functionality. This is not unique to Great Plains. In general, the most successful software vendors will be those who can build system functionality not just over years, but decades. However, there is another equally important component in a business management sys

Microsoft Dynamics GP Architectural Foundations Series - Introduction

Image
This is article 1 of 7 from the series Microsoft Dynamics GP Architectural Foundations Series - featuring Microsoft's Tim Brookins . Tim's whitepaper was originally published in 1999 and it's reproduced here with his permission. Microsoft Dynamics GP Architectural Foundations Series Introduction Business managers have an overwhelming challenge in evaluating new business management systems. Even a minimal evaluation of product functionality and technology can be a huge undertaking. However, as Chief Architect at Great Plains, I urge you to expand your evaluation past the basics of functionality and technology into the area of product architecture. Product architecture describes how the various pieces of the business system are assembled and integrated with each other. You may be wondering: “Why should I care how the business management system is designed?” Architecture is important to your evaluation because a product with a solid architecture will move graceful

Microsoft Dynamics GP Architectural Foundations Series - featuring Microsoft's Tim Brookins

Image
Ever wanted to understand (like in really understand ) why Dexterity? or what are the reasons for a dictionary-based architecture? Ever wanted to gain an insight (as in real insight ) on the philosophical principles behind Microsoft Dynamics GP? Well, I pulled out all the stops for this and went to the guy who drafted it all up and architected most of it. Back in 1997, I was first introduced to Tim Brookins at the Certified Installation Specialists Conference held in Fargo, North Dakota. Tim presented an opening session describing the Microsoft Dynamics GP architectural foundations and later materialized this session into a whitepaper. Tomorrow marks the begining of a 7-part series of articles based on Microsoft's Tim Brookins whitepaper Great Plains Dynamics Architectural Foundations . In advance, I would like to thank Tim for allowing me to reproduce his whitepaper, which in my personal opinion, is one of the best I have ever read on the on the subject. At the end of the ser

RW - Creating Branching Logic Fields in Report Writer

Image
After a long hiatus from blogging, here I am again with another interesting case straight from one of my clients in Venezuela. As much as many of you dislike Report Writer, I still have to acknowledge that it still has its benefits, especially when working with tightly integrated Dynamics GP reports. Yeah, yeah, build it in SSRS, build it in Crystal, but it's always good when you don't have to build a complex report from scratch and can leverage the built-in application functionality. The client calls me up and asks, " how can I create a CASE...END CASE statement in Report Writer? " In other reporting systems and SmartList Builder for example, it is possible to enter simple formulas that support complex conditional branching logic, for example: CASE X WHEN 1 THEN 'A' WHEN 2 THEN 'B' WHEN 3 THEN 'C' END CASE While it's not as apparent in Microsoft Dynamics GP Report Writer, it is possible to support this type of conditional structures b

Moving Items out of Inventory and into Fixed Assets

Image
I love challenging customers (and partners) to use their Microsoft Dynamics GP system in very innovative ways. I like hearing things like 'this cannot be done ' or ' there isn't a way to do that '. If there is a way, trust me, I will find it! One of these ways came in the form a simple question: how would you take an item that is already in inventory and move it to Fixed Assets? Right off the start gate, I can think of 3 different ways to do this, but the solution I like the most because of its elegance and simplicity is as follows: 1. Setup an inventory site called FA and one called VIRTUAL or I/O (typically you will already have one of these setup if you have been using Inventory Control for a while). 2. Use the In-Transit Trasfer Transactions to transfer from your warehouse to the FA site using VIRTUAL as via site. Click on the Ship button to initate the 'transfer' to a Fixed Assets. In turn, this should create and in and out to your Inventory acco

New Article on MSDynamicsWorld: "Support Incidents vs. Consulting Engagements"

Image
I am back at MSDynamicsWorld with a new article looking at how Microsoft Dynamics GP support incidents may (relatively quickly) end up being consulting engagements . Please take a look at this new post as it is full with useful guidelines... it may just save you some money next time when you open that new incident. Until next post! MG.- Mariano Gomez, MVP Maximum Global Business, LLC http://www.maximumglobalbusiness.com

New Site Features!

Image
Dear followers, I have been working at large on a few projects hoping to wrap things up before Convergence Atlanta where I will be presenting 2 sessions with my compadre David Musgrave . As such I have been a bit out of touch with publishing new articles. However, I have not forgotten about you, and I am currently adding some new enhancements to The Dynamics GP Blogster site, which will make things more easy for you to find. You will now see a series of links atop of this page (new ones to come!) which will allow you to quickly find articles by subject: Modifier/VBA and SQL scripts. I am working to add a Visual Studio Tools page and a Conference Materials page. Please stay tune and thank you for your continued readership and support. Until next post! MG.- Mariano Gomez, MVP Maximum Global Business, LLC http://www.maximumglobalbusiness.com/

VBA - Suppressing CTRL+Break or CTRL+C in VBA Customizations

Image
VBA is by far one of the best customization tools available to Microsoft Dynamics GP developers and as such it is widely used across a number of production environments to deliver functionality that ranges in various degrees of complexity. However, one of the issues with VBA -- at least until now -- is the fact that an end user can inadvertly press CTRL+Break (older keyboards) or CTRL+C and stop the execution of a script. Now imagine if that script is say, some code developed to calculate 401K contributions when payroll is ran... the results will certainly not be pretty! With this in mind, we can use a USER32.DLL library funcion to disable user input when critical VBA code is required to be executed in a block. The following shows how to implement such code: BlockInput function Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long We can now use this function across any of our VBA customizations, as follows: Sample Window_BeforeOpen code P