GPUG Summit 2018 Phoenix Arizona–October 15-18th

If you are into Dynamics GP, Power BI, then head over to GPUG Summit summit this October in Arizona – even better, bring your “IT crowd” too!

 GPUG Summit Site Phoenix, October 15-18, 2018

This event has over 215 GP –specific sessions and a separate parallel conferences going on “under the same roof” for business central and Power BI. There will be lots of ISVs and networking opportunities in the expo hall and corridors.

Session listing can be found here for the four conferences:

(Power BI) PowerBIUG Power Summit

(D365UG) AXUG Summit

(Business Central) BCUG Summit

(Dynamics GP) GPUG Summit

CRMUG Summit

 

It is difficult to emphasise enough the value that can be found in attending this nature of event, with a world class concentration of expertise in the Microsoft Dynamics products housed in the same place for a week. There is a strong sense of community and endless opportunities to get the answers to long held questions, or discover new products and features that you never realised existed. This knowledge could be priceless when brought back to the workplace after the event.

Lots of practical sessions are available on how to better utilise the investment you have in your company systems. This includes discovering the tools you didn’t even realise you already had at your fingertips. Notably, this year there is a real growth in the developer and IT pro tracks – so not only will the accounting, purchasing, warehousing, sales, admin employees find value in attending, now the IT crowd can come along and there will be lots for them to get their teeth into too.

Have you ever considered how much more could be achieved in your company by growing a better understanding of the financial systems that drive the business,  by getting buy in and understanding from your IT support staff and developers? Trust me, once they see the kind of things that are possible from the exhibiting companies and from the technical sessions, they will return enthused and ready to help facilitate change, perhaps brining in improvements (great and small) for everyone! –my message is simple, BRING YOUR IT CROWD TO SUMMIT 2018!

  • Newly released Microsoft Dynamics G 2018 R2 (October 1st) will be in action on stage and within sessions
  • Meet new peers, reunite with existing friends and mentors within the GPUG community
  • GPUG Medics will be onsite and available all week to talk you through your unique GP challenges
  • BI track for Power BI you can attend Power Summit sessions at NO additional cost

See my write up of the 2016 Summit in Tampa for an example of what to expect.

As a bonus I will be presenting two sessions, so see you there!

Dynamics GP 2018 wrong version of GP2018 Power Shell included

Be aware of an issue with the GP2018 installation media

GP2018 Power Shell Additional Product is version 2016

You can see above that the installation media MDGP2018_RTM_DVD_ENUS has under the Additional Products the GP2016 installer for Power Shell.

The correct installer has been provided by Microsoft under Customer Source here: https://mbs.microsoft.com/customersource/northamerica/GP/downloads/service-packs/mdgp2018_dexterityreleases

It is not obvious that a administration module should be under something as specific as Dexterity Development System – buy hey at least it IS available!


Dynamics GP 2018 Power Shell installer found under Dexterity Development System Releases for Dynamics GP 2018

Printing to multiple UPS label printers (from Dynamics GP)

This is a quick note to self:

When an order is fulfilled it is routed electronically to the appropriate carrier depending on nature of the consignment.

The various carriers we use then print the thermal shipping label directly to the warehouse packing bench that is fulfilling that order. With one central thermal label printer an many benches, it is both ergonomically inefficient and too error prone (wrong labels get on wrong parcels).

 

UPS world ship

UPS Worldship allows printers to be defined and named within the world ship software. The printer can be one that is a network printer or a shared printer from another machine.

Each warehouse packing bench has a shared (or network) printer placed on it. Each of these printers is set up in WorldShip with the bench name (BENCH1..2…3..)

The GP fulfilment then sends that printer name of the bench that machine is on, within the XML for the despatch. The Worldship auto XML import picks up that printer name. That ensures that when the shipment is processed, the labels are routed to the originating warehouse packing bench thermal printer.

Drivers

UPS use a bespoke driver for the Zebra thermal printers. In fact they even have their own badged version of the Zebra printers with UPS firmware on. This lets them get the fonts and layout of their label correct, so if using a non-UPS Zebra thermal printer you must install the UPS drivers on the machine and go into the printer settings and replace the stock driver with the UPS one. This works even for old DA402 up to the more modern GK series printers.

If you are putting your own logo on the UPS labels by using the custom label templates within Worldship, and thus are using the extended size label stock, you must also ensure that you use the zebra printer media calibration, found in the printer settings tools section to calibrate the printer stock size.

 

Thus we can now fulfil orders on many warehouse packing benches with one Worldship instance and thermal labels will print on the correct bench’s thermal printer.

Converting Dynamics GP SOP Master numbers to file system folder hierarchy

There are a number of cases where I need to store a document or documents against an “object” in GP for the various system integrations and modifications. This can be problematic, even more so with the latest update to Windows 10 that seemed to seriously detrimentally affect the performance of folders with large numbers of files or subfolders in them. Take the SOP document in GP. SOP documents are threaded together via a relationship called the master number. This master number relates all documents together between quote, order, invoice, return.

It is appropriate in some cases to store files against those master numbers. This could be done in a flat structure where a documents folder contains a sub folder for each master number and in side those folders lie the documents we wish to preserve. This starts out great, however by the time you end up with 500,000 sales master numbers and documents, opening the network store folder starts taking up to three to four minutes.  Although anything over a few thousand files or subfolders in a folder has always incurred a performance hit, with the new update this seemed to get a whole lot worse (it felt like a caching issue as subsequent re-opening of folder happened instantaneously).

Storing all those folders in a single folder is not a good user experience either, it is overwhelming to try and find a folder of interest among all those folders. A much better way is to store the folders in a hierarchy so there are never more than 1000 folders in each sub folder. This keeps the file system happy and quick.

 

So how to migrate the flat structure to hierarchy?

 

I love powershell and wish I could script in it more fluently than I can. Powershell seems to have the power to address any mundane task to do with windows servers and clients. Using power shell it is possible to move the flat structure into a new root directory, building it up into a hierarchy. My preference is for each folder to intuitively orientate the user as to where they are without having to digest/process too much of the path information.

There are lots of options for a directory arrangement scheme, but I like to do as follows, for a master number of 13224223, the folders can be organised like this:

\\SalesArchive\13220000\13224000\13224200\13224223\

This then necessitates a way to transform the number 13224223 to this directory arrangement. This is something regular expressions can help with, I’ve been using this technique for many, many years now.

Regular expression:

([0-9a-zA-Z]*)([0-9a-zA-Z]{1})([0-9a-zA-Z]{1})([0-9a-zA-Z]{2})$

Replacement expression:

${1}0000\${1}${2}000\${1}${2}${3}00

So integrating this into our powershell with optional date limit we get the following…

$sourcePath = "\\SalesArchive\"
$destPath = "\\SalesArchive\New\"
Write-Debug($destPath)
Get-ChildItem "$sourcePath\*" |? {$_.psiscontainer -and $_.lastwritetime -le (get-date).adddays(0)} |%{
if($_.Name -ne "New" -and $_.Name -ne "New2"){
$newFolder = ($destPath + "\" + ($_.Name -replace '([0-9a-zA-Z]*)([0-9a-zA-Z]{1})([0-9a-zA-Z]{1})([0-9a-zA-Z]{2})$','${1}0000\${1}${2}000\${1}${2}${3}00'));

New-Item -Path $newFolder -Type Directory -Force
Move-Item $_ $newFolder
Write-Host "source: $sourcepath dest: $newFolder"
}
}

This will move the folders into the new shape for us.

In .NET we can also use the same regular expression to open the folder or fetch/save files but using the .NET regular expression library something like this:


Return RootFolder & System.Text.RegularExpressions.Regex.Replace(DocumentMasterNumber,
"([0-9a-zA-Z]*)([0-9a-zA-Z]{1})([0-9a-zA-Z]{1})([0-9a-zA-Z]{2})$",
"${1}0000\${1}${2}000\${1}${2}${3}00")

Working things this way lets users access the folders instantly again and makes manual navigation of the folder structure possible, should it be needed.