Thursday, August 16, 2018

Calling SQL Server stored procedures from Microsoft Dexterity - revisited

Back in January of 2009, I wrote an article showing a method of calling a SQL Server stored procedure from Dexterity by calling a stored procedure prototype script (sproc) in sanScript.

See, Calling SQL Server stored procedures from Microsoft Dexterity (January 26, 2009).

This sproc tells the runtime engine (Dynamics.exe) that it must connect to either the system or company database to run the stored procedure of the same name. I particularly like this method because it basically it shields the developer from dealing with connections, etc. Also, the procedure executes under the user's security context.

However, there are times when it is necessary to go the extra mile, especially if you have to call procedures you do not want to prototype into your code as a sproc - case in point, calling third party stored procedures, or eConnect stored procedures.

Enter the use of Dexterity SQL library functions and pass-through SQL. The Dexterity SQL library functions are well documented in the help file. If you are familiar with ADO.NET or standard ADO, the steps are pretty similar:

1. Create a connection and set the database context for the stored procedure (akin to a connection string)
2. Create your prepared SQL statement to run the connection, including parameters.
3. Execute and fetch the recordset.

Here's a simple example (for simplicity sake, basic error handling implemented):

1) Write your stored procedure and grant access to the SQL Server DYNGRP role. This will make your stored procedure accessible from your Dexterity application, avoiding SQL Server permission issues. Our stored procedure will need to accept a service call number as a parameter, then return the total amount to be billed on the service call.


IF OBJECT_ID ( 'dbo.uspGetServiceCallTotal', 'P' ) IS NOT NULL
  DROP PROCEDURE dbo.uspGetServiceCallTotal

CREATE PROCEDURE dbo.uspGetServiceCallTotal
  @IN_callnbr char(20) = NULL,
  @IN_service_type smallint,
  @INOUT_serviceTotal numeric(19,5) output

SELECT @INOUT_serviceTotal = TOTAL FROM dbo.SVC00200
WHERE CALLNBR = @IN_callnbr and SRVTYPE = @IN_service_type

GRANT EXECUTE ON dbo.uspGetServiceCallTotal TO DYNGRP

2) The following is a sample Dexterity calling script that retrieves the parameter result as a dataset and issue a simply warning with the returned value:

in string CallNumber;
in integer CallType;

local long sqlConn;
local long sqlStatus;
local text sqlStmt;
local string paramlist = "%1, %2, %3 output;";
local string outparam1  = "@outparam";
local string outparam1Type = "numeric(19,5)";
local currency lServiceTotal;
sqlStatus = SQL_Connect(sqlConn);
if sqlStatus = OKAY then
     clear sqlStmt;
     {setup the output parameter declaration line}
     sqlStmt = sqlStmt + "declare " + outparam1 + CH_SPACE + outparam1Type + CH_SEMICOLON + CRLF;
     {setup parameter list to pass into proc}
     substitute paramlist, SQL_FormatStrings(CallNumber), str(CallType), outparam1 + CRLF;  
     sqlStmt = sqlStmt + "exec dbo.uspGetServiceCallTotal" + CH_SPACE + paramlist + CRLF;
     sqlStmt = sqlStmt + "select " + outparam1;
     sqlStatus = SQL_Execute(sqlConn, sqlStmt);
     if sqlStatus = OKAY then
           sqlStatus = SQL_FetchNext(sqlConn);
           if sqlStatus <> 31 then
                sqlStatus = SQL_GetData(sqlConn, 1, lServiceTotal);
                warning str(lServiceTotal);
           end if;
     end if;
end if;

One of the things the runtime engine will do is run this procedure within the context of the current Microsoft Dynamics GP user connection to SQL Server, this is, another connection will not be created unless it's absolutely necessary. The technique I show above also seeks to declare the parameter list as a string with substitution patterns to reduce chances of SQL code injection. If your SQL procedure will return a larger data set, then you will need a cycle to advance to the next record in the recordset.

Hope you find this useful.

Until next post!

Mariano Gomez, MVP

Friday, July 27, 2018

Missing Dexterity Shared Components cause Word Templates processing to hang

Working recently on an issue, I ran into a situation where I would get the following template processing error attempting to print a SOP Invoice - if you look at the bottom status bar, next to the user ID, you will see a Template Processing accompanied by a yellow warning triangle.

Upon inspecting the Template Processing status, I ran into the following Exception Detail message:

The following error occurred while processing this report:
One or more templates could not be processed. View the exception log for more details.

Since the error was referencing a template, I figured I would go back and check to make sure I could edit the template, which was based on the original SOP Blank Invoice Form Template. Upon attempting to modify the template, I received an error:

File Not Found:"C:\Users\\AppData\Local\Temp\SOP Blank Invoice Form Template.docx".

After attempting to print the template, and after all the subsequent tell-tell sign errors, I attempted to exit Dynamics GP and got the following warning:

Processes are currently being run that cannot be deleted. These processes must be run to completion before you exit.

At this point, I went through the checklist:

  • Microsoft Dynamics GP Add-In for Microsoft Word is installed - Check!
  • Microsoft Office 32 bit is installed - Check!
  • Open XML SDK 2.0 for Microsoft Office is installed - Check!

One thing I noticed was, when I opened Word, the Microsoft Dynamics GP fields object would not appear on Microsoft Word's ribbon. This was a sign that something was not right, considering I had the GP Add-In for Microsoft Word installed.

I ran a repair on Microsoft Dynamics GP and this did not solve the problem either. Upon further inspection, I noticed I was missing the Dexterity Shared Components 16.0 (64-bit). In my system, I run several versions of Microsoft Dynamics GP and I had Dexterity Shared Components for all but the Microsoft Dynamics GP 2016 version I was trying to print the invoice from. 

Once Dexterity Shared Components was installed, I went ahead and gave it a try once more and everything worked as expected.

Until next post,

Mariano Gomez, MVP

Wednesday, July 25, 2018

Microsoft Dynamics 365 Business Central: the perfect complement for Microsoft Dynamics GP users

Microsoft Dynamics GP users rejoice!

If you were a part of the long list of users, partners, and ISVs scared by some imaginary deadline set (by Microsoft) for you to migrate from Dynamics GP and onto Dynamics 365 Business Central, it's now my pleasure to separate fact from fiction in this era of, well, fake news - at least in the Dynamics space.

Microsoft has recently published the October '18 Business Applications Release Notes, a 239 page document describing all the upcoming features and functionality to be included with Dynamics 365 for Sales, Service, Marketing, Finance and Operations, Talent, Retail, and Social Engagement; the Power platform (Power BI, PowerApps, Microsoft Flow, Common Data Services), and Dynamics 365 Business Central.

The words "Dynamics GP" appear 7 times in this document (including the table of content) and span from pages 117 through 133, explaining what is an imminent reality: Dynamics GP is now part of the Business Central plan, although folks at Microsoft will tell you, "it always was!" 😂.

To explain this, I must start from a simple premise: your will be able to use your existing on-premises solution of Dynamics GP to connect to the cloud through Business Central.

Microsoft further consider this to be the "convergence point for Dynamics SMB products" as going forward, GP (along with NAV, and SL) is considered a customer of Business Central, in the cloud or on-premise. Now, the choice words can be confusing and can even a bit overwhelming, but the explanation is rather straight forward. Microsoft Dynamics GP customers will have access to all the built-in capabilities of Business Central -- its Artificial Intelligence (AI) and Machine Learning (ML) based analytical capabilities, its Power BI powered visualizations and reporting capabilities, the ability to create powerful mobile applications and sophisticated worflows with PowerApps and Flow; and uncompromising data access and storage via Common Data Services, all without giving up their investment in Microsoft Dynamics GP.

In turn, Microsoft will continue to invest and provide key updates to Dynamics GP as it has been done for the past 25 years.

The Intelligent Edge

The intelligent edge bridges the digital and real world -- enabling you to deliver a seamless experience and compute capabilities wherever your data exists -- in the cloud or offline, as defined by Microsoft on their Intelligent Edge page. What does this have to do with Dynamics GP? In Microsoft's view, GP is now considered an edge "device".

Intelligent Edge
(Source: Business Applications Release Notes - October '18)

In order to accomplish such feat, GP customers will connect to an instance of intelligent cloud via Business Central, deciding what companies to replicate in the process. In turn, you will get back actionable analysis and content, right inside your Microsoft Dynamics GP application area pages - similar to the Business Analyzer or Power BI experience today, I would assume.

Now, think of this for a second... long gone are the days were you spend hours on end building analytical reports and gathering insight on your data, because you will have at your disposition a powerful AI and ML based decision engine working for you 24/7/365. Also, you will have the infrastructure of the cloud doing this without you ever having to update it. And what about custom insights into your data? You can create those too! What about taking your data with you on your mobile device? That's also there for you with PowerApps and Flow.

And let's be honest here, for a second. IF and when you are ready to move to the cloud, this will be an easier proposition as most of your data will already be replicated. Need ALL your data? There are specialized partners on AppSource waiting to earn your business. Heck, even the folks over at eOne Solutions are on board with SmartConnect, a tool you already know and love.

But also, let's look at the other side of that coin. You've spent your life building the perfect solution for your business in Microsoft Dynamics GP. You have invested thousands of hours, tens of thousands of dollars in consulting, and you have the perfect combination of third party ISV applications you know you are NOT going to get on Business Central. In addition, you simply love the passion guys and gals like Mark Polino, Belinda Allen, David Musgrave, Leslie Vail, Jen Kuntz, Shawn Dorward, Victoria Yudin, and I display at conferences, showing you how to make the most of your investment. You also know that Dynamics GP is a proven and mature solution that simply delivers. Simple: DON'T MOVE! Continue to use Dynamics GP with the insights provided by Business Central and you will still be golden.

A final note: if you look carefully at the info-graphic above, synchronization of your data is unidirectional (from on-prem to cloud). This means that, although you can  enter data in Business Central, you will need integration mechanisms to get that data back into your on-premise solution.

Until next post,

Mariano Gomez, MVP

Tuesday, July 24, 2018

Microsoft Dynamics GP July Hotfix packed with some long awaited features

If you missed it, the Microsoft Dynamics GP Development team has delivered the July Hotfix for versions 2015, 2016, and 2018. What has me really excited are a number of features that were included in this release - I will skip the bug fixes as those are always welcome - as follow:

Support for TWAIN drivers
Why is this important? TWAIN is an API and a communications protocol that regulates communication between software applications and digital imaging devices, such as image scanners and digital cameras. As it turned out, this is EXACTLY what the Document Attach feature needed to overcome some reported compatibility issues with certain scanning devices - Dynamics GP only provided support for Windows Image Acquisition (WIA) protocol.

For additional information on TWAIN, click here.

Applies to GP 2016 and GP 2018.

Web Client support for Non-US regional date settings
For users with a regional setting date format other than MMDDYYYY, web client will now display the proper date format in transaction entry screens. Before, with the regional date settings changed, you could see the correct date in the upper right hand corner of the web client overall ribbon, but not on transaction screens.

Applies to GP 2018, only.

Support for Web Client Organizational Accounts with Workflow.
One of the biggest complaints from users was the lack of support for Azure AD accounts with Workflow over web client. If I had to pinpoint the biggest drawback to web client adoption, this is probably it.

Now, with the hotfix, you can setup your organizational accounts for workflow for the originator, approver, and manager roles in Microsoft Dynamics GP Workflow, as shown by Lucas Miller.

Applies to GP 2018, only.

In conclusion, to take advantage of these new features, consider upgrading to the latest release of Microsoft Dynamics GP (GP 2018). If you are already working with a hosting partner like Njevity or RoseASP, be sure to ask about these new features. If you are hosting your own Microsoft Dynamics GP on-premise or in the cloud, consider applying the hotfix as soon as possible to take advantage of the new features.

Users of Microsoft Dynamics GP 2015 receive some fixed assets updates, along with some W2, W3, and ACA 1094 fixes for HR/Payroll.

Mainstream Support for Microsoft Dynamics GP 2013 ended on April 10, 2018 which means that users on this release no longer receive tax, hotfixes, and year-end updates.  Microsoft Dynamics GP 2013 is currently on Extended Support until April 11, 2023.

Until next post,

Mariano Gomez, MVP

Tuesday, June 5, 2018

Installing Visual Studio Tools for Microsoft Dynamics GP project templates for Visual Studio 2017

While in Johannesburg attending GPUG Amplify South Africa 2018, my friend of 1000 battles and fellow MVP David Musgrave and I sat down to prepare for our Day 1 sessions.

Mariano Gomez and David Musgrave at GPUG Amplify South Africa 2018
In particular, we were preparing for our Microsoft Dynamics GP 2018 Customizing the User Interface session, which featured updated material and sample code from the ones we had shown at previous sessions.

In a cursory review of his environment, we noticed that he did not have the Visual Studio Tools for Microsoft Dynamics GP templates installed. David noted that he was running Microsoft Visual Studio 2017 on his machine and that the GP 2018 templates did not support this version of Visual Studio.

In fact, SDK templates are provided for Visual Studio 2010 through Visual Studio 2015 as of the release of Dynamics GP 2018.

I quickly remembered that my good friend in the UK, Tim Wappat had created the extension manifest files for the VST project templates (based on the VS2015 templates) for Visual Studio 2017 and published them to online Visual Studio extensions library. The templates are available for both C# and VB.NET as originally intended by Microsoft.

Microsoft Dynamics GP Item and Project Templates for Visual Studio 2017
I want to thank Tim for saving our lives as we both needed the templates anyways for our presentation. You can download the extension for Visual Studio 2017 here. and read more about the subject in Tim's article.

Until next post,

Mariano Gomez, MVP

GPUG Amplify South Africa 2018 - Wrap Up

GPUG Amplify South Africa is been over for a bit over a week, yet there's still sense of a conference with a lot potential and room for growth. For some background, I helped organize the preceding event, reIgnite GP 2017 and was a part of the keynote speech delivered last year. In addition, I delivered 6 sessions around various Microsoft Dynamics GP topics, but primarily my focus was on development sessions, having conducted a week of Microsoft Dexterity training prior to the kickoff. This year, I had to watch from the sidelines how this new event was being constructed and organized by the GP User Group (GPUG) organization.

So here’s my take on what went really well and what needs improvement.

1. Having the support of the GPUG, brought legitimacy to the event as a whole. I would like to think local users and partners saw the value in separating this event from its original organizer, Braintree, as a way to bring the South African Dynamics GP user community closer. If you are a local partner and you are still stuck with the idea that another partner is going to steal your client, then you do deserve to have your client go elsewhere. This event is for users and by users and should allow the community as a whole to benefit from knowledge brought by all presenters.

2.  The organizational aspects of the conference were on point. Everything from the venue, presenters, registration process, welcome reception, conference rooms, food and beverage, and, of course, the always smiling Katie and Angie from Dynamic Communities made this event a treat to attend. There wasn’t one moment during the event where attendees couldn’t find someone from the event organization team to answer their questions or direct them throughout the facilities.

3. Microsoft South Africa did a phenomenal job in appointing Wessel Pieterse (LinkedIn) and Thavash Govender (LinkedIn) as representatives of the organization to the event. Wessel’s keynote presentation was very welcomed by the community as it focused on baby steps to embrace and move from on-premise to cloud and Thavash did a phenomenal job at presenting the new Microsoft SQL Server 2017 features along with other work being done by the data platform team. It's very important that Microsoft South Africa continue to support these user events fully.

Now, to the areas of improvement.

1. Although The Canvas Riverside business incubation hub venue was fantastic for the conference and provided the kind of space and ease of moving around required by an event of this type, I have to say it was far away from everything. This may have been a reason for some registered attendees not to show up on different days of the event. In addition, the facility lack proper connectivity speed, which could affect live presentations requiring access to the internet.

2. It is clear to me that the developer/functional two-track format did not work very well. This approach is best suited for a multi-day conference with hundreds, even thousands of attendees and sessions that could be repeated. Many attendees expressed having to choose between two sessions of interest within the same timeslot. I would suggest a dedicated developer pre-conference day, with no more than 4 sessions for that day, all of which could be deep dives. The following 2 days could be spent between partner showcases and functional tracks. Although, interest in topics like SQL Server, PowerApps and Flow were well attended and could serve as repeats for the functional days.

3. The level of complexity of the sessions need to increase. I suggest incorporating more Azure, Office 365, and PowerApps and Flow sessions for the near future and how Microsoft Dynamics GP leverages these technologies. Again, these were the sessions that were most attended and can be leveraged by end users and consultants alike. Functional tracks should also provide a lot more content than they did, although this could be blamed squarely on the limited time allotted to each session. Most sessions had a duration of 45 minutes, which leaves little to no time for diving into complex subjects.

However, don’t let the areas of improvement overshadow the value of this conference. There were many, many positive aspects I heard mentioned by other attendees. The simple fact of being able to interact with international speakers and Microsoft MVPs was worth it to many I spoke to. However, I would like to see more participation from the Dynamics GP African market in general, not just the South African community as there is a potential to round up hundreds more of attendees. Users in Nigeria, Jordan, Saudi Arabia, and other countries in the vicinity have a great deal of Dynamics GP customers that could benefit from this effort, while making the overall community in the area stronger.

Here is a list of articles published in this series:

GPUG Amplify South Africa 2018 
GPUG Amplify South Africa 2018 - Getting here 
GPUG Amplify South Africa 2018 - Preconference Day 1
GPUG Amplify South Africa 2018 - Preconference Day 2 
GPUG Amplify South Africa 2018 - Weekend Edition
GPUG Amplify South Africa 2018 - Day 1 
GPUG Amplify South Africa 2018 - Day 2
GPUG Amplify South Africa 2018 - Post Conference

Here are articles published by fellow MVP David Musgrave:

#GPUGAmplifySA GPUG Amplify South Africa 2018 Conference – Part 1
#GPUGAmplifySA GPUG Amplify South Africa 2018 Conference – Part 2
#GPUGAmplifySA GPUG Amplify South Africa 2018 Conference – Wrap Up

Until next post,

Mariano Gomez, MVP

Thursday, May 31, 2018

GPUG Amplify South Africa 2018 - Post Conference

Wednesday, May 23, 2018

After a long couple days, and especially after Day 2 presentation marathon, I decided to sleep in a bit this morning. I had a commitment at midday to meet with the Premier team. Premier has sponsored my trips to South Africa over the last two years, which has allowed me to participate in both reIgnite GP and GPUG Amplify South Africa conferences, so I wanted to take the time to thank them for their continuous support. We had lunch at Turn 'n Tender Steakhouse, located in the upscale Waterfall district.

Mariano Gomez, David Joosten,  Renier van der Merwe, Wilma van Eck, Jako Diedericks
After lunch, I was in crunch time to get some presents for the wife. I decided to head to the nearby Mall of Africa, South Africa's largest mall built in a single phase, featuring 300 stores on 32 acres of retail space.

Mall of Africa - Exit 12
After a good hour and change of lingering around the mall, I headed back to the hotel and had a chance to share some local music with my Uber driver, Bongani. We had quite a bit of fun talking about life in South Africa and his upbringing.

My good friend, Pieter Cornelius had arranged dinner at Tiger's Milk Cedar Square with a number of his colleagues from Braintree, along with the team from Dynamic Communities. It was truly an awesome evening, and if you ever need some food directions, go for the massive burgers :). The place is also known for its extensive selection of beverages, including its own brewed Tigers Milk Lager.

Left: Angie Ryan, Pieter Cornelius, Mitch Holfeld, David Musgrave
Right: Mariano Gomez, Katie Froeber, Loodt van Niekerk, Ross Pelser, Jennifer Musgrave

After returning to the hotel, we went to the bar for a final round of drinks, then it was time to pack. I could have actually done it in the morning, but where is the fun in that.

Thursday, May 24, 2018

This was my last day in South Africa, so the morning started with breakfast at the hotel with Jennifer and David, then for last minute shopping. I picked up a couple of hand made bracelets and a pendant, all in tiger eye stones of various hues. It was also a nostalgic moment as I would be saying bye to my buddy David. Although we've done this for almost over a decade now, it's never easy to say goodbye.

David and Jennifer Musgrave

We finally managed to exit the buildings and into a beautiful morning outside, where we spent a few minutes walking around the property, before returning to our rooms for our suitcases to check out.

We had one final commitment and that was to go meet up with our good friend Tim Gordon (LinkedIn). Tim is the director of AlphaSoft Dexterity Consultants and the developer behind DexSense, intellisense for Microsoft Dexterity.

Tim Gordon

Tim had invited us over for a braai at his house, which we gladly accepted. We spent the morning discussing a few development topics, before we all jumped into full gaming mode. After lunch, it was time for me to leave to the airport and catch my flight back to the USA. At the airport, I ran into Katie and Angie from Dynamic Communities, who were also on their way to the USA via Amsterdam. We sat down after clearing passport control and had a beer (or two) each.

Mariano Gomez, Angie Ryan, and Katie Froeber
My flight was leaving earlier so I made it to my gate just on time for a final security check, then onto the plane.

This concludes my series of articles about GPUG Amplify South Africa. I will be writing a wrap up article with links to all articles written and my final thoughts on the event.

Until next post,

Mariano Gomez, MVP

Wednesday, May 30, 2018

GPUG Amplify South Africa 2018 - Day 2

Tuesday, May 22, 2018

Day 1 of the conference was really hectic, but today would prove to be even more challenging as David and I had to deliver even more sessions than the day before.

Developing Microsoft Dynamics GP Extensions with PowerApps and Flow session

We presented our remaining 5 sessions, including a repeat session:
  • Ask Us Anything About Microsoft Dynamics GP Development 
  • Developing Microsoft Dynamics GP Extensions w/ Microsoft PowerApps & Flow 
  • Microsoft Dynamics GP 2018: Customizing the User Interface (Repeat session)
  • Partner Solution Showcase: Winthrop Development Consultants – Leveraging GP Power Tools as a Developer 
  • Understanding Microsoft Dynamics GP Security 

We had mixed attendance. Our Ask Us Anything session was attended by 4 developers in total, but with the few questions asked, we managed to talk for a full hour, nonstop! I believe the folks that walked into our session certainly walked away very happy, as they received almost one-on-one attention. Frankly, David and I were pretty happy with the way things turned out.
It is worth noting that most developers had attended our Friday session and were probably okay with attending something else.

The Developing Microsoft Dynamics GP Extensions with PowerApps and Flow session had the most attendees for the day, with over 25 people. The session started with me trying to create the PowerApps and Flow app live, however, internet speeds were proving to be a challenge, so I had to revert back to using the pre-built demo. However, I believe I managed to get the key points across.

All other sessions went down fairly smooth and without much to talk about. The Understanding Microsoft Dynamics GP Security was a session David had presented previously with fellow MVP Shawn Dorward so it was my duty to represent accordingly :) Before this session, our friend Miguel Lozano from TitaniumGP was on his way out to return to the USA, after his short but productive stint in South Africa. He was also on a support case with fellow MVP Ian Grieve from the UK and took this picture to justify why he wasn't getting back to him on time.

Miguel Lozano, Mariano Gomez, and David Musgrave
The day ended with a few cocktails and an extensive buffet of lasagna, chicken, pasta, salad, rice, etc. However, after having a couple beers and a small plate, I was off to my hotel. It had been a few exhausting days up to that moment.

Upon return to my hotel, courtesy of my Mekorma colleague, Adriaan Davel, I went back to my room and got a quick freshen-up to go to dinner, not without snapping this panorama picture of the Sun Square plaza with the dying sun in the horizon.

Sun Square Plaza view

David, Jennifer, and I had dinner plans and made it over to The Raj Indian Restaurant after their return from buying more biking supplies - David and Jennifer would be traveling to Spain in a couple days to go off biking.

With Jennifer and David Musgrave

While the conference was officially over, there were still a couple of commitments I had on the following day, before saying goodbye. More on that tomorrow.

Until next post,

Mariano Gomez, MVP

Tuesday, May 29, 2018

GPUG Amplify South Africa 2018 - Day 1

Monday, May 21, 2018

Having some fun over the weekend, while here in Johannesburg, was good, but Day 1 of the conference was now here and it was time to unleash the wealth of information that David and I had prepared for this conference.

GPUG Amplify South Africa welcome banner
The morning started with a small tech check since Bob McAdam, VP and General Manager of GPUG would be dialing in via Skype, from his hometown in Tampa, to kickoff the day's event. Katie Froeber, did a small recap of the agenda and it was all Bob from there on, introducing all the new features in Dynamics GP 2018. Although communication was spotty at times, the content was clearly communicated and attendees were rather receptive to the overall future set.

As is customary, and before the agenda was introduced, David and I got the usual "wave photo" from attendees.

Several times throughout the presentation, there were thank you notes to the event sponsors. It is worth mentioning that ISVs and VARs in attendance were more than happy to present their products in the expo area, but I feel should have gotten at least 5 minutes on stage to present their companies, products, and services.

Event Sponsors
All conference attendees were treated to 1 year of free GPUG membership, which I thought was a pretty nice gesture from Dynamic Communities. I encourage all who received this benefit to take full advantage of the perks from day 1, including webinars, past webinar recordings, chapter meetings, etc.

It was time for the main keynote speech, by Wessel Pieterse (LinkedIn), Senior Sales Manager, Azure Applications and Infrastructure at Microsoft.

Wessel Pieterse
Wessel's presentation, Transforming Business for the Digital Age (here), walked through Microsoft's commitment to cloud and how the company is transforming the global landscape with its 50 Azure regions and 100+ datacenters, along with a discussion on the Intelligent Cloud, presenting enough reasons and compelling benefits (both business and economic) for moving to the cloud. The one slide that stood out for me was this one, which outlined the challenges of running GP on-premise or in a hosted environment.

Once the keynote ended, David and I went off to present our sessions. Our first session, Microsoft Dynamics GP 2018: Customizing the User Interface was low in attendance, but we had a chance to discuss the topic in a very intimate setting, with the few attendees that came along for the ride.

After our session, we went to show some support for Alicia Weigel, from Rockton Software, who was delivering the Making Dynamics GP Work Simpler & Easier, a partner solution showcase presentation of the products currently sold by Rockton.

It was time for lunch. We mingled and took it easy for a bit before our next session.

After lunch, David and I went to deliver his partner solution showcase session, Simplify Administering your system with GP Power Tools. This was a 30-minute session showcasing the administrative features of the product and was spent demonstrating these capabilities.

Following that session we did Yet Another 25 Dexterity Development Tricks and Hacks in 45 minutes, which was well attended.

Yet Another 25 Dexterity Development Tricks and Hacks session
The previous year, at reIgniteGP 2017, we had presented both the 25 Dexterity Development Tricks and Hacks and the Another 25 Dexterity Development Tricks and Hacks sessions, which were very well attended, so this time we added yet another 25 to build up on the previous 50. All tricks and hacks presented to date are a part of the slide deck which can be found here.

After all sessions, Pieter Cornelius from Braintree delivered even more good news to all attendees by introducing the new South African GPUG chapter which he will be chairing with the help of David Joosten from Premier Foods, one of the largest Microsoft Dynamics GP sites in the region with close to 1000 GP users.

It was now time for the welcome Cocktail Reception and Expo. 

Until next post,

Mariano Gomez, MVP

Friday, May 25, 2018

GPUG Amplify South Africa 2018 - Weekend Edition

Saturday, May 19, 2018

After a busy day yesterday, at the Developer Day session for the Braintree dev team, it was time for some a little R&R and getting to know a bit more of Johannesburg. Jennifer, David's better half, arranged a tour to the Lion and Safari Park and the Township of Soweto - Soweto is short for South West Townships. Our driver, Pike, arrived at 8:00 AM local time to take us on our tour.

The initial arrangement was to first do a tour of the township, then go to the Lion's Park. Pike suggested we did the opposite to better enjoy the experience, as the Lion and Safari Park would be less concurred. We went with his recommendations and it turned out to be a great decision. After arriving, we arranged for Pike to buy our tickets which gave us access to all the park's attractions: petting the lion's and the cheetah, a tour through the park, and the new hyena and leopard exhibits.

Cob lions exhibit

Cheetah exhibit

With David and Jennifer

Lions exhibit


David and I with our park guide Princess


After completing the tour through the park, we were off to our next adventure in the township of Soweto. On our way there, we stopped at the First National Bank (FNB) Stadium (formerly known as Soccer City and The Calabash), located in Nasrec, bordering Soweto. David and I literally jumped out of the car to go take pictures of this engineering marvel. This stadium can accommodate close to 88,000 people.

FNB Stadium is host to some of the best football and rugby matches, both domestic and international.

FNB Stadium
I found this promo video on YouTube, which gives you an idea of the sense of pride.

After our stop at FNB we stopped at the Orlando Towers for some food. Originally the site of a coal fired power station, the Orlando Towers have become one of the most distinctive landmarks in the neighborhood of Soweto and the site of the world's first bungee jump between two cooling towers, as well as other thrilling adventure sports such as abseiling and SCAD (suspended catch air device) falling.

Pike and I

Both of the 33-story towers are completely covered in brightly colored murals, one of which depicts scenes and images from the township's culture and the other with corporate branding.

We had lunch at the famous Chaf Pozi Restaurant and Bar. We decided to treat our tour driver to launch and ordered some good BBQ, while we watched a few of the braves bungee jump from the platform between the two towers.

Off we went into the township and started off at the internationally recognized welcome sign.

At the "Welcome to Soweto" sign
The evolution of this place has been from one of forced habitation to an address of pride and social prestige as well as a destination in its own right.

Soweto Township
Our driver would take us to visit places of tremendous historical significance such as the former home of Nelson Mandela, and the Hector Pieterson Memorial. Nearby is the home of Archbishop Desmond Tutu (not open to visitors); Winnie Mandela also has a property a short walk away, too
Nelson Mandela House Museum

Hector Pieterson Memorial
After a hectic day, David, Jennifer and I were dropped off at the hotel, where we met up with the rest of the group as we would be having dinner with Pieter Cornelius from Braintree, Kathie and Angie from Dynamic Communities, and Alicia from Rockton Software at The ROCK Diner in the Design Quarter in Sandton, a very .

From left to right: Mariano Gomez, David Musgrave, Jennifer Musgrave, Katie Froeber, Pieter Cornelius, Angie Ryan, and Alicia Weigel

Sunday, May 20, 2018

This morning I woke up fairly early and went down to grab a coffee. Minutes later, my good friend Miguel Lozano from TitaniumGP made his appearance. Miguel had flown from San Diego to Zurich, had a long layover, then flew from Zurich to Joburg for the conference.

With Miguel Lozano
Brunch was planned from a few days aback with a number of the guys from Braintree and their families, so we ended up going to FEGO Caffé Montecasino. I was joined by Jennifer and David Musgrave; Liezl and Adriaan Davel, my colleague from Mekorma in South Africa, Janet and Mitch Holfeld, and Christel and Ben Strachan. Miguel Lozano joined us a bit later as he was freshing up from a long trip.

Back at the hotel, I took a power nap and met up with David in the afternoon to go over our sessions and presentation plans.

At the Sun Square bar lounge
After ensuring all our slide decks were in order and working through minor details, it was almost time for dinner. Pieter had plan a big dinner for all international guess and sponsors, at Chief's Boma Restaurant, located on the premises of the Indaba Hotel, Spa & Conference Centre.

Left: Tony Sinton, Miguel Lozano, Pieter Cornelius, Rob Bowden, Kathryne Brindley, Katie Froeber
Right: Mariano Gomez, Nick Botha, Michelle Van Aardt, Alicia Weigel, Angie Ryan, Jennifer Musgrave, David Musgrave
Center Back: Vaughan Proctor
Chief's Boma offers a unique African cuisine experience and I wasn't going to shy away from some good sirloin, buffalo, and ostrich to get my gastronomical fix.

Sirloin, Ostrich, and Buffalo
Back at the hotel, it was time for some rest as the conference would officially begin tomorrow.

Until next post,

Mariano Gomez, MVP