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

Wednesday, May 23, 2018

GPUG Amplify South Africa 2018 - Preconference Day 2

Friday, May 18, 2018

What would a delectable breakfast look like without Vegemite?

Toast bread with butter and Vegemite

After breakfast, we were picked up by Adriaan and his cousin, to be taken to The Canvas Riversands Venue, a modern business incubation hub, for our Developer Day Session with the Braintree software development team. This magnificent facility will also serve as the primary venue for GPUG Amplify South Africa 2018.

The Canvas Riversands Venue

Panoramic view of the outside theatre at The Canvas Riversands

The day started by requesting developers to propose the topics they wanted to cover. As topics were voiced out, we added them to a PowerPoint slide we created on-the-fly, with an Agenda title. We have to confess, this was a little intimidating as we weren't sure what topics would be requested, nor did we prepare any material to address any of the items requested. This would be a freeform presentation and we would have to catalog each topic in subject matter segments that we could reconcile into coherent units. At the end of the topics request, the agenda took the following shape:

Microsoft Dexterity
Source Code Control with Visual Studio Team Services
Packaging and Deploying Dexterity Applications

Deploying Microsoft Dynamics GP on Azure
Developing Azure Functions 
Leveraging PowerApps and Flow

Azure Stack 
Azure Blockchain

Microsoft Build 2018

During the first half of the day, we cover all the Microsoft Dexterity proposed topics and went through an in-depth look at the software development lifecycle of a Dex application.

From left to right: Ross Pelser, Deon Dalebout, Pieter Cornelius, Ben Strachan, Loodt Van Niekerk, Adriaan Davel, Christo Booysen, David Musgrave

In the back, from left to right:
Ben Strachan, Deon Dalebout, Ross Pelser, Adriaan Davel, Loodt Van Niekerk, Adriaan Van Maanen, Christo Booysen
In the afternoon, we covered the remaining agenda items and showed practical examples of developing Azure Functions and PowerApps and Flow.

The team had a special interest in understanding the trends emerging from the recent Microsoft Build 2018 conference in Seattle. We touched up on the AI powered cloud, which stood out as primary topic, then looked at Microsoft Azure Stack and the Azure Blockchain Workbench.

Back at the hotel, I took a power nap, then met up with Adriaan and Liezl Davel for dinner. We spent a lovely evening at the excellent Kai Thai Restaurant talking about life in America - Adriaan and Liezl are in the process of relocating to the USA. After a long day, it was time to call it a day and be up early for the next adventure.

Until next post,

Mariano Gomez, MVP

Tuesday, May 22, 2018

GPUG Amplify South Africa 2018 - Preconference Day 1

Thursday, May 17, 2018

The new morning found us having breakfast at the hotel's restaurant. Prior to breakfast, David and Jennifer stopped by my room to drop off the Australian imports, mainly Allen's Chicos and Cadbury's Cherry Ripe. I also had to unload a Microsoft MVP jacket for David, which I had been storing for over a year.

With Jennifer and David Musgrave
Shortly after breakfast, we proceeded to leave the restaurant and take a walk around the premises. The Montecasino complex is primarily a 5-hotel complex with a casino, any number of restaurants, bars, business meeting rooms, a performing arts theater, and even a movie theater, all designed to provide a unique experience that can be enjoyed by families and business visitors alike.

The Piazza
The place has inevitable Las Vegas air and flair, comparable to that of The Venetian hotel. Proof of it is the styling of the buildings and overall décor.

With Jennifer and David

I met up with my Mekorma colleague in South Africa, Adriaan Davel. Adriaan is a Senior Software Engineer and reports directly to me. It was good catching up with him and we were both able to plan out some Mekorma-related work activities for the week and get to talk about dinner plans.

With Adriaan Davel
Later in the evening, the third contingent of international visitors arrived at the hotel. This time is was Alicia Weigel from Rockton Software and Katie Froeber and Angie Ryan from GPUG. The ladies checked in and went to freshen up and, after a few minutes, joined in downstairs for some drinks before dinner.

From left to right:
Mariano Gomez, Alicia Weigel, Jennifer and David Musgrave, Katie Froeber, Angie Ryan, Pieter Cornelius, Deon Dalebout
Deon left for the evening as he had a 2-hour commute back to his home. Pieter joined us for dinner, but left before we ordered dinner was served as he had already ate. We all left for The Metropolis Grill and Bar (The Met Grill) inside the Montecasino complex as everyone had early morning activities planned, so something close was appropriate.

Mariano Gomez, David Musgrave, Jennifer Musgrave, Katie Froeber, Alicia Weigel, Angie Ryan
Katie, Alicia, and Angie had plans for a safari the following day, and David and I would be spending a day with the Braintree development team, covering a number of topics of interest to them.

Until next post,

Mariano Gomez, MVP

Monday, May 21, 2018

GPUG Amplify South Africa 2018 - Getting here

Wednesday, May 16, 2017

Living in beautiful Atlanta, I have the opportunity to live close to the busiest airport in the world, Hartsfield-Jackson Atlanta International Airport (ATL). ATL also happens to be the home of arguably, one of the world's largest airline, Delta Airlines. One of the primary benefits of this unique airport-airline combination is that Atlantans very used to direct (non-stop) flights out of ATL to just about anywhere in the world.

As such, Delta features a direct flight from Atlanta to Johannesburg, non-stop! Although, this is comforting, the 15.5 hours trip is a test for anyone remotely suffering from some form of claustrophobia. A big part of overcoming the long trip is quickly engaging in some food eating, paired up with a good dosage of movies. Shortly after boarding and take off - around 6:30 PM on Tuesday, May 15 - I began watching 12 Strong, the true story of a US Special Forces tasked with taking out the Taliban in the immediate aftermath of the events of September 11. I must say that this 2 1/2-hour movie was very compelling and action packed and certainly made the first couple hours of the trip pass by pretty quick.

However, I just decided after the movie, that I would close my to try to sync up with my destination's time zone to minimize the effects of jet lag, which is rather unavoidable on these types of trips.

Flight tracker over Georgetown, Asuncion Island

Between the various cabin service passes I manage to close my eyes and fall asleep. 8 hours later, over Georgetown, the capital of the tiny Ascension Island, a British enclave between Africa and coastal Brazil and a part of the Northern Mariana Islands, I definitely felt the proximity to my final destination, Johannesburg.

One thing about the flight between Atlanta and Johannesburg is your ability to surf the internet via the Gogo Inflight Wi-Fi system. It helped to know I could update my wife in Atlanta on the progress of my flight, while maintaining communication with my friend and conference organizer, Pieter Cornelius in Johannesburg. Frankly, any little thing you can do to make the time go by on these lengthy trips is totally worth it.

4 more hours and I was over the Namib Desert in Namibia (not to be confused with the imaginary republic of Nambia 😋) which is a vast expanse running some 2000 kilometers (1200 miles) along the Atlantic coast of South Africa, Namibia and Angola. I handed my camera to the lady sitting at the window, who managed to snap this beautiful picture under clear skies.

Namib Desert
20 minutes later, I would land safe and sound at O.R. Tambo International Airport (JNB) at around 5:30 PM local time. I was delighted to see Microsoft Azure banners hugging the columns in the passport control area, a sign of the progress the company is making in expanding its cloud data center presence in South Africa.

Microsoft Azure Cloud banner

Passage through passport control was a breeze and exiting the customs area was uneventful. This was a much welcome experience considering I had just spent 15.5 hours in the air and I was a bit tired to say the least. I boarded a taxi cab, not wanting to wait for Uber to go to the Sunsquare Montecasino hotel. This trip was accompanied by the usual Johannesburg rush hour traffic, complicated by the fact that Lionel Messi and his FC Barcelona were in town to play a friendly against the Mamelodi Sundowns

Sunsquare Hotel
Check in was quick with my friend Pieter waiting for me in the lobby. We exchanged pleasantries, had a couple drinks at the hotel bar after I was settled in. Following a couple drinks, we went to Texas Wing Bar to get some finger food.

I had left instructions with the front desk to have my friend and fellow MVP David Musgrave, who was arriving a little later with his lovely wife Jennifer, call me upon his arrival. Once David checked in, he reached out, but by then I was burnt out and ready to call it a day.

Until next post,

Mariano Gomez, MVP

Monday, May 14, 2018

GPUG Amplify South Africa 2018
Tomorrow, I embark on a 16-hour journey to beautiful Johannesburg, South Africa, to attend the first GPUG Amplify event powered by Dynamic Communities. I am looking forward to meet up with the Microsoft Dynamics GP African community and my friends traveling from the USA and Australia (yes David, that's you!).

Last year, this event was branded as reIgnite GP and was the brainchild of my friend Pieter Cornelius (Twitter: @pmcornel) with Braintree, a Vox company. Pieter and I worked tirelessly last year to bring some of the most talented individuals in our community and they all answered the call without hesitation: Alicia Weigel (Rockton Software), Miguel Lozano (Titanium GP), Chris Dobkins (Njevity), Lak Chahal (Binary Stream), and David Musgrave (Winthrop Development Consultants) among others, to make this a well attended event - over 100 attendees!

Joining in the success of last year's event, the GPUG community decided to step in and amplify (pun intended) the exposure of reIgnite GP by throwing in all their weight behind morphing and launching the first GPUG Amplify outside of the North American continent.

As is customary, I will be teaming up with my long time friend, co-presenter, and fellow MVP, David Musgrave to deliver a number of sessions. Here's what we have on the agenda:

Monday, May 21

10:45am-11:45am @ The Canvas Riversands
Microsoft Dynamics GP 2018: Customizing The User Interface

2:00pm-2:30pm @ Lecture 2
Partner Solution Showcase: Winthrop Development Consultants – Simplify Administering your system with GP Power Tools

2:45pm-3:45pm @ The Canvas Riversands
Yet Another 25 Dexterity Development Tricks and Hacks in 45 Minutes

Tuesday, May 22

8:30am-9:30am @ The Canvas Riversands
Ask Us Anything About Microsoft Dynamics GP Development

9:45am-10:45am @ The Canvas Riversands
Developing Microsoft Dynamics GP Extensions w/ Microsoft PowerApps and Flow

11:00am-12:00pm @ The Canvas Riversands
Microsoft Dynamics GP 2018: Customizing the User Interface (REPEAT) 

12:15pm-12:45pm @ Lecture 2
Partner Solution Showcase: Winthrop Development Consultants – Leveraging GP Power Tools as a Developer

2:45pm-3:45pm @ The Canvas Riversands
Understanding Microsoft Dynamics GP Security

Wednesday, May 23

8:00am-12:00pm @ The Canvas Riversands
Academy – Introduction to GP Power Tools

1:00pm-5:00pm @ The Canvas Riversands
Academy – Advanced GP Power Tools Tricks and Tips

Minutes before writing this blog, I received a call to action from Bob McAdam to deliver the keynote speech to the event, in case the current presenter cannot make it. To say the least, I am pumped and looking forward to assist where I can. I am also most looking forward to our PowerApps and Flow session, as this is new and preamble of what to come at the GP Tech Conference in Fargo, ND.

You can access the full conference agenda here.

Finally, I want to call your attention to the promo video of the conference:

Looking forward to see you there!

Until next post,

Mariano Gomez, MVP

Tuesday, May 1, 2018

Deploying Microsoft Dynamics GP on an Azure SQL Managed Instance - Part 3/3

In Part 1 of this series, I walked through the process of signing up for an Azure SQL Managed Instance preview (further referred to herein as "Managed Instance" for simplicity sake) and the subsequent deployment process once approved. In Part 2, I looked at some of the issues you would ran into during the deployment of Microsoft Dynamics GP, particularly around the use of Dynamics GP Utilities to create an environment from scratch.

From reading these two articles you may have concluded -- rightfully so -- that it's not possible to deploy Microsoft Dynamics GP using a Managed Instance PaaS. This article focuses on a deployment approach that works.

Migrating Microsoft Dynamics GP to an Azure SQL Managed Instance
Since Dynamics GP Utilities is not yet equipped to create databases on a Managed Instance, the only way to take advantage of this new service is via a migration. This is, taking your on-premise databases and restoring them onto the cloud database service.

I first started by backing up my on-premise system and company databases to an Azure storage account. There are couple ways to do this: a) you can use Microsoft Dynamics GP's built-in backup functionality, or b) you can use Microsoft SQL Server to perform this operation via T-SQL statements or SQL Server Management Studio. I chose the first method, but for more information on the second method, you can refer to MVP Steve Endow's article Back up your Dynamics GP SQL Server databases directly to Azure Storage in minutes!

I first wrote about backing up Microsoft Dynamics GP databases to Azure using the built-in backup utility in my article Microsoft Dynamics GP backups with Windows Azure Blob Storage Service. Nonetheless, I will cover the subject once more in this article as I am sure the Azure Portal has changed since I first wrote that article.

During the Managed Instance deployment steps, a storage account was created to store the diagnostics log, so I figured for ease of explanation, I would use this same account to store my Dynamics GP backups, but I strongly recommend you create a separate storage account (as a part of the same storage resource group) to store database backups.

Backing up the System and Company Databases

1. Once your storage account is in place, open Microsoft Dynamics GP and go to Microsoft Dynamics GP > Maintenance > Backup.

2. Enter the storage account name. This can be found in the list of resources in the Azure Portal.

3. Enter the access key. The access key can be found by clicking on the Storage Account under resources, then by clicking Access Key under Settings in the Azure Portal. You can copy the key and paste it in the Back Up Company window in Dynamics GP.

4. Enter the URL to the container. Click on Containers, under Blob Service for your storage account. Proceed to click on the blob name displayed. Then click on Properties under the blog Settings.

5. Finally, you can enter a File Name in the Backup Company window then click on Verify Account, then OK to complete the backup.

You will need to complete this process for the system and each company database in your environment.

Restoring the databases onto the SQL Managed Instance 

With the first part completed successfully, we now have to restore the databases onto the SQL Managed Instance. To show you how this part works, I found it useful to create this short video:

With the databases restored, I fired up Dynamics GP Utilities. The database version validation completed successfully and I was sent to the window where I could run additional Utilities functions - again, creating companies is not supported at this point.

I was able to launch Dynamics GP and went through running reports, entering and posting transactions, and running SmartLists and nothing seemed out of place and I did not get any error messages.

I want to be extremely clear that this configuration is not yet supported by the Microsoft Dynamics GP Support Team. It's also worth reminding you that the Azure SQL Managed Instance is still in preview mode, which means things may change (for the better for sure) that could still impact this limited test I did. So, if you are going to perform a migration, do so to test as much as you can, but please do not use as a production environment.

I will follow up this series with a video blog just summarizing all this experience and where I believe the Microsoft Dynamics GP development team can make a couple adaptations to make this all work for Dynamics GP customers and partners.

Until next post,

Mariano Gomez, MVP