Wise up with Wiseguy

September 6, 2011

Just a few days aback, I wrote an article referencing the acclaimed 1984 movie, Ghostbusters. In this occasion, my friend and fellow MVP, Mark Polino, makes an appearance with his new short fictional story, Wiseguy.

Wiseguy is a new twist to the classic mob tale. Prospective mobster Joey is stunned to learn that the family business is going to start filing tax reports with the IRS due to the power of Microsoft Dynamics GP. With the help of Jersey girl, Isabella, Joey must learn to collect cash using Microsoft Dynamics GP, instead of the traditional baseball bat method.

Wiseguy highlights some powerful features in Microsoft Dynamics GP including the Collections module, Accounts Receivable, EFT, and Scheduled Payments. It also highlights The Closer and The Validator. The story shows how learning Microsoft Dynamics GP can be fun and entertaining.

You can download Mark’s work for free using a code from Reporting-Central – With a name like Gianmarco Salsano backing up Mark, you can understand why Wiseguy is becoming so popular.

http://www.reporting-central.com/wiseguydownload.htm

By the way, Wiseguy was one of my favorite 80’s TV series, featuring Ken Wahl as agent Vincent Terranova. You can read a bit more about that series here.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/

Advertisements

New Article on MSDynamicsWorld: When It’s Time to Upgrade an Outdated, Customized Microsoft Dynamics GP System…Who You Gonna Call?

August 19, 2011

It’s been a couple months since I’ve written a business-driven column over at MSDynamicsWorld. This time, my new article looks into an all too common issue: upgrades from older, customized versions of Microsoft Dynamics GP systems.

By “older”, I am not referring to – believe it or not – version 7.0 or 7.5, even though those are very outdated releases. I’m referring to you, still running version C/S+ 3.17, or 4.0 or even GPA. I know you have milked the product as much as you can and you feel it still does what you need it to do, but you are missing out on a unique opportunity to bring your systems up to date and take advantage of the wide array of ISV solutions that will once and for all get you off the development threadmill.

Since it’s Friday, the article is meant to serve as food for thought.

When It’s Time to Upgrade an Outdated, Customized Microsoft Dynamics GP System…Who You Gonna Call?

Leave your comments and feel free to discuss with your peers.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/


Passing arrays as parameters to functions or procedures in Dexterity

June 23, 2011

First, some theory…

The individual pieces that make up an array are called elements. The elements are numbered from 1 to the size of the array. Arrays can have up to 32,767 elements. The number used to indicate a specific element of the array is called the array index. A specific element of the array is referenced in sanScript using its corresponding array index.

Typically, an array can be used in place of several fields that have the same data type and will be storing similar information. For example, if an application keeps track of monthly sales for a year, one monthly sales array field with an array size of 12 could be used to store this information instead of 12 separate fields.

Dexterity applications can use array fields [in tables] and array local variables [in memory]. Array fields are created in the Field Definition window by setting the Array Size field to the size of the array. Array local variables are created by including the size of the array in brackets – [ ] – following the local variable name. When creating local arrays, the array size must be a constant expression. Array sizes can’t be set at runtime.

To access the elements of an array from within a script, simply use the name of the array and add the index number of the element you want to reference. Be sure the index number is included in square brackets after the name of the array and before the qualifier. The following example sets the third element of the Quarterly Sales array field (corresponding to the third quarter) to the sum of the monthly sales for July, August and September.

'Quarterly Sales'[3] = 'Jul Sales' + 'Aug Sales' + 'Sep Sales';

The following example uses a local array field with five elements to act as status flags for the script. The for loop initializes the flags to false.

local boolean status[5];
local integer i;

for i = 1 to 5 do
status[i] = false;
end for;

Now to the problem…

A couple days aback a developer reported issues when passing an array as a parameter to a Dex global procedure – won’t have been any different for a function either. Her code was as follows – I say was as I assumed it has been fixed since.

local currency l_plan_total, l_month_totals[13];

call TAS_Calculate_Plan_Totals,
'Customer Number' of table TAS_Plan_Header,
Year of table TAS_Plan_Header,
TAS_Plan_Status of table TAS_Plan_Header,
'Revision Number' of table TAS_Plan_Header,
l_plan_total,
l_month_totals[13];

The procedure signature is as follows:

{PROC: TAS_Calculate_Plan_Totals}

in string i_customer;
in integer i_year, i_status;
in long i_revision;
out currency o_total;
out currency o_month[13];

local currency l_month[13];

Things to note… in the calling script, the developer declares an array of monthly totals of 13 elements, then calls the TAS_Calculate_Plan_Totals passing the array as a parameter. The procedure is pretty straight forward and uses an out parameter to pass-back whatever results the developer will calculate and put into each element of the array.

However, when the code is compiled, the developer receives the error type incompatibility on parameter #6. That happens to be the array parameter in the call to the global proc.

Taking a closer look, the developer is passing l_month_totals[13] to in the procedure call. Since, the parameter in the procedure has been declared as an array, l_month_totals[13] is being interpreted by the Dexterity compiler as the currency value represented by the element with an index of 13. In other words, just the plain currency value and not the array as a whole. To correct the code, the developer needed to remove the brackets from the call, just passing l_month_totals, as follows:

local currency l_plan_total, l_month_totals[13];

call TAS_Calculate_Plan_Totals,
'Customer Number' of table TAS_Plan_Header,
Year of table TAS_Plan_Header,
TAS_Plan_Status of table TAS_Plan_Header,
'Revision Number' of table TAS_Plan_Header,
l_plan_total,
l_month_totals;

{PROC: TAS_Calculate_Plan_Totals}

in string i_customer;
in integer i_year, i_status;
in long i_revision;
out currency o_total;
out currency o_month[13];
local currency l_month[13];

I must say that the developer in question is an experienced developer, but at the same time, I can see how this can become confusing even for the experts. I personally believe that a better approach for this call – talking to you Dex compiler gurus in Fargo – would have been as follows:

call TAS_Calculate_Plan_Totals,
'Customer Number' of table TAS_Plan_Header,
Year of table TAS_Plan_Header,
TAS_Plan_Status of table TAS_Plan_Header,
'Revision Number' of table TAS_Plan_Header,
l_plan_total,
l_month_totals[];

Note the use of the brackets as a way to differentiate the array variable from, say, the other currency variable just above it. On that same note, I have a long list of suggested compiler changes for Dexterity, but I am sure these are not a priority at this point.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/


San Andres Island, Colombia – The Trip

June 5, 2011

Back at the Microsoft Dynamics GP Technical Conference 2011 in Fargo, ND and Microsoft Convergence 2011 Atlanta, my sidekick, David Musgrave thought it would be a good idea to introduce my hometown, San Andres Island, as part of our presentations and give all attendees to our sessions a free ticket to the island. If you did not get yours please see David next time – ok, just kidding!

Sprat Bight Beach in the North End of the Island

Well, I decided that after attending the both the Technical Conference and Convergence, and having wrapped up a couple projects, it was about time to visit my parents, siblings, and friends, before things got crazy again – and so I did last week!

Getting to San Andres Island

When I was planning the trip from Atlanta, I was weighing two options to get there:

Option 1: Fly from Atlanta (ATL) to Panama City, Panama (PTY) with Delta Airlines, then take a flight out of Panama City to San Andres Island (ADZ) with Copa Airlines. The problem was two fold with this option: Delta leaves from Atlanta 5:55 PM local time and arrives in Panama at 9:55 PM local time. The Copa flight leaves to the Island at around 10:00 AM local time from Panama. This meant I would have to sleep in Panama City for a night and leave the following morning.

Option 2: Fly from Atlanta (ATL) to Bogota, Colombia (BOG) with Delta Airlines, then take a flight out of Bogota to San Andres Island (ADZ) with Avianca Airlines. The problem was two fold with this option: Delta leaves from Atlanta 5:00 PM local time and arrives in Bogota at 10:30 PM local time. The Avianca flight leaves to the Island the following day at around 11:00 AM local time from Bogota. This meant I would have to sleep in Bogota for a night and leave the following day. However, this options gave me a chance to catch up with my sister since she lives in Bogota, so I decided for this option and left for Colombia on Saturday, May 28, 2011.

Bogota City

A bit about Bogota…Nicknamed “The Athens of South America“, Bogota is the District Capital (DC) of Colombia with over 8.5 million inhabitants (including surrounding municipalities) and an infrastructure comparable to that of many large cities in the United States. Bogota has excellent public transportation, sanitary services, and an enviable climate – similar to that of San Diego or San Francisco. The city sits at some 8700 feet above sea level which keeps it cool year round.

After spending a night in Bogota visiting an old spot I used to frequent during my young adult life and catching up with my sister, it was time to go back to the spanking brand new Marriott Hotel, which is located just 1 mile away from the airport.

Bogota Marriott Hotel

Our flight left from the Terminal Puente Aereo, operated by Avianca Airlines, at mid day, and by 1:30 PM local time we were already in the Island. The flight was uneventful – probably a good thing considering half the flight happens over the Colombian Andes and the other half over the Caribbean Sea.

I’m not going to try and narrate all 6 days I spent home in one post, but needless to say, I went out to ran some errands. Among one of these was to purchase my return ticket to Bogota (I had only arranged my round trip between Atlanta and Bogota). In walking around town, I spotted this colourful “chiva” getting ready to take tourist around the Island – if you were at our sessions at the Tech Conference or Convergence, you will remember that San Andres Island is 285,000 times smaller than the island continent of Australia or simply put, some 27 square kilometers.

“Chiva” tour vehicle

One of the things I really enjoy when home is my mom’s cooking and I would say that no one makes a better “rundown” – a traditional island dish – than her. A rundown typically consists of sweet potatoes, yuca, green plantains, flour dumplings, and your choice of meats. For this occasion, my mom added pigs tail and conch to make up the meat portion. This is all cooked and stewed to perfection in coconut milk. My mom added a side of coconut rice and made an ice cold tamarind juice to go along.

Rundown – a typical island dish

One of the days I was there, my brother’s car battery went out, stranding him close to the port. This was perfect in a sense as I had a chance to stroll along the San Andres International Seaport. I had forgotten how beautiful this side of the island was as it is not known for its beaches, but I remember when I was a kid, it was my favorite place to go swimming.

San Andres International Seaport

The port happens to be a commercial seaport. Cruise ships arrive on the other side of the island (South West side) where the waters are much much deeper and there’s no need for docking. I also managed to take a shot of the hotels in the North East end of the island from the same location.

Hotels in the North East side

I stayed 6 days with my parents and wish the trip wasn’t so short, but effectively, all good things must come to an end. I traveled back to Bogota this past Saturday arriving there at 1:00 AM local time and had a short night sleep. It was raining in Bogota all Saturday and Sunday, even as the flight was leaving back to Atlanta.

For those of you interested in visiting the island, the June to August time frame and certainly the November to February time frame seem to always be the best. Is what we locals call the high season. My parents happen to run a B&B at home with very good accommodations and amenities. So please feel free to reach out if you are interested. And now I leave you with some more great pictures.

Seaside Tiki Bar

Johnny Key in the background. This is my mommy, Lois Bent Gomez

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/


Microsoft Dynamics Most Influential People: Popularity vs Influence

May 16, 2011

Now that the Microsoft Dynamics Most Influential People Top 100 list is out I wanted to first congratulate everyone of my fellow MVPs and bloggers whose names appeared somewhere on the list and continue to wish everyone success. However, I also wanted to address those of you who were nominated (or not) and clearly not part of this list – see  David Musgrave‘s article Microsoft Dynamics Top 100 Most Influential People for 2011 published, and Mark Polino‘s article Top 100–Who’s Missing? for more information on the latter.

Still, I feel compelled to write this article because I believe that being “influential” has nothing to do with being “popular”. Though one could argue that these two words are used interchangeably, the bottom line is that they do stand their own ground. Being influential allows you to affect outcomes, to drive people to do things because you ask them to do so or because you are doing them and they follow suit, whereas popularity is nice and clearly something my teenage daughters are concerned with – not a seasoned professional who blogs and deliver quality content to the Microsoft Dynamics ERP community and industry as a whole.

Unfortunately, measuring influence is a difficult proposition, so to say that I am influential, or that other person is influential is a mouthful. Influence clearly sounds better, however popularity is much, much easier to measure. Hence nominations and voting are at hand when it comes to select who’s most influential – though most people do so thinking of popularity.

So, is it even possible to measure influence? I personally think influence is more a qualitative than quantitative element of blogging, social media, or any other influence mechanism used in the process and as such I would have to say it’s difficult, if not impossible, to accurately measure. And what about people who work behind the scenes? What about someone like Kirill Tatarinov, Corporate VP at Microsoft for example? How can you measure his influence in the community? How can you tell if he influenced your decision to buy Microsoft Dynamics GP, or CRM, or any other product in the Dynamics ERP family? After all, he is not a blogger and you sure don’t see him directly advertising anything, do you? Of course, he gets to do all these things at conferences, but this is every once in a while. So the question still lingers… how do you measure influence?

Disclaimer: I am not saying the “big boss” is not influential, just merely using him as an example to state my case.

I personally think my influence (if any!) comes from my professional network and my credentials as a Microsoft MVP. If I report a problem to Microsoft, it might be fixed much more faster instead of being buried in a mountain of bug reports and support tickets. If I identify a product feature that the community as a whole is requesting, it might actually get some consideration given my (perceived) status within the community. If I speak at a conference about a product like Support Debugging Tool, chances are people will go back to their organizations to download and test it. I don’t necessarily see how those things can be accurately or fairly measured. How do you/can you measure the effects one person’s action over another? How many minds do you have to change to be “influential”? The bottom line is you can’t measure enough of the elements needed to establish if someone is influential or not.

If you really must rank the Microsoft Dynamics most “influential” people, then clearly you do what you must to get the results, but why not call it what it is… Microsoft Dynamics Most “Popular” People – automatic voting certainly did not help the case either. However, I take issue with this process because it leaves out people who are making a real difference in the Microsoft Dynamics community.

Now, can anyone explain why Doug Burgum is still considered “influential”? Rest my case!

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/


A Peek Behind the Convergence Eval Curtain – Follow Up

April 21, 2011

MVP Mark Polino just released a really nice post about what goes on behind the speaker’s curtain – see Convergence 2011: A Peek Behind the Eval Curtain. I thought I would pick up where he left with my own insight on the subject.

Let’s start by saying that Microsoft Dynamics Convergence is the biggest stage on the planet for us speakers and presenters in the Microsoft Dynamics ERP and CRM world. The amount of time that goes into preparing our sessions, assembling presentations, handouts, and demos, and making sure we are ready by the time the event actually happens is ginormous. In our case (David and I) it’s at the tune of more than 3 months and with a 12-hour difference – we are invited more than 6 months in advance, IF and when we get invited. For those of you who think we just show up on stage, there is no such thing. We actually have to earn our stripes to be in front of you every year.

So how do we earn our stripes you may ask?

Well, the first thing that comes to mind is to introduce topics that are always relevant to the community or act upon the ones that are requested by you. In our case, there’s been much interest in the Support Debugging Tool and Development Tools for the past 3 years now (if you also consider the Microsoft Dynamics GP Technical Conference), that we have become the defacto presenters for these tracks.

The second thing is to make sure that we can actually deliver… and here comes the catch 22. Delivery can only be measured by your evaluations. So it takes A LOT of convincing, a lot of good ol’ politics (in the good sense), and a good track record with the Microsoft Dynamics community to get on stage the first time around.

Once selected as speakers, we begin working on our presentations for the event. I have to be honest here… David and I always look forward to beat Mark Polino and become The Number One Microsoft Dynamics GP session and the top Convergence session, if at all possible. So yes, 1/100 of a point does count in that pursuit.

As Mark mentioned in his post, this is all in good spirit and the only one benefitting from this fierce competition is you, the attendee. Now, take our collective competitiveness and multiply it times 120. That’s how many other speakers and presenters are looking to beat everyone else across all 4 products + CRM. Every single one of us walks into the speaker room just hoping to see our names in the top 10 sessions of the ENTIRE event. Yes, those fancy flat screens are not there to catch up on Days of Our Lives, but rather to see how we are doing overall.

Speaker Room

Like Mark, we strive not only to deliver good presentations, but to hear back from you. Hearing back from you allows us to correct, fine tune, adjust, make changes for IF and when we are invited again. So your comments are important. Here are some of the ones that bring joy to our lives and relieve some of the stress:

“Excellent beyond excellent. Great dynamic between the presenters and the info was beyond useful, wish I would have had this 6 months ago on a project. Thanks for this class!”

“These two should go On Tour………..at first you get worried that their comedy act will delay getting the facts out but somehow they manage to not only give you what you need but even more before the session expires. EXCELLENT”

We don’t know who you are, but you sure know who you are, so if you are reading this thank you, thank you, thank you for your input.

We also suffer from the odd comments that makes us scratch our heads too:

“Too much information trying to be pushed out for the time allotted. Speaker talked the whole time while going through slide and the demos were just screen shots no real demos.”

Too much information? Talk through slides? Demos were screen shots? If you are familiar with David and I, you will probably know by now that we only used a summary version of our 150+ presentation slide deck and love to deliver lots of information and demos instead. This is why you paid money to come to the event to begin with! So buddy, there’s no such thing as too much information when it comes to Convergence.

We also tend to get the one comment that makes us do what we do even more and better:

“I know many people like these presenters, but personally I find them to be a bit over-the-top and too much in love with themselves. They obviously know their stuff, but their ego’s get in the way of me enjoying the session to be honest.”

I have never (ever) claimed to not have an ego and much less not being in love with myself – ask David or Michael Johnson! Yes, if you want to be on THIS KIND of stage and perform at this level you do have to know your stuff and I am frankly not ashame of either. Attendees want to know that you are a confident person who they can come up to and ask a question that have been tormenting them for months, but better yet, they want to know that they can get an answer on the spot.

That’s why I am invited in the first place, but then again, comments like these are very far and in-between.

As for the ego part, the next time you see us, don’t be surprised if we are being chauffeured in a limo to our session room. Did I mention Microsoft putting us up in the presidential suite at the Ritz Carlton?

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/


>New Article on MSDynamicsWorld: "The Future of Microsoft Dynamics GP – 5 Cool Technologies"

March 30, 2011

>

“Understanding the Microsoft products that will drive Dynamics GP forward”

My new article is up over at MSDynamicsWorld.com. This time I take a look at The Future of Microsoft Dynamics GP: 5 Cool Technologies You Should Watch For (and Learn) in the Coming Years, based on my past experiences and learnings at the Microsoft Dynamics GP Technical Conference 2011 in Fargo, North Dakota – see my article Microsoft Dynamics GP Technical Conference 2011 Wrap Up. In this article I explore Microsoft Lync, Microsoft Silverlight, Microsoft Visual Studio Lightswitch, cloud computing, and even Microsoft Dexterity.

If you have experience with any of these technologies it would be very cool to know your thoughts and how they have helped your work.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/