Page 1 of 11412345678910...2025303540...Last »

Microsoft Convergence Atlanta 2015 (#CONV15) – Wrap Up

Hey, not that this concerns anyone, but finally here is the wrap up post for the Convergence 2015 event. It’s really been a busy couple of seasons for this writer (not that I’m complaining!), so I have had to opt for work instead of blogging which I’m sure you will understand as a reader.

Microsoft Convergence Atlanta 2015: GPPC PreGame

Microsoft Convergence Atlanta 2015 (#CONV15) – Day 1

Microsoft Convergence Atlanta 2015 (#CONV15) – Day 1 Continued

Microsoft Convergence Atlanta 2015 (#CONV15) – Day 2

Microsoft Convergence Atlanta 2015 (#CONV15) – Day 3

Microsoft Convergence Atlanta 2015 (#CONV15) – Day 4

Other entries on the event, from my good friend David Musgrave:

#CONV15 – Convergence 2015 Atlanta – Day 0 – PreGame

#CONV15 – Convergence 2015 Atlanta – Day 1 – Opening Keynote

#CONV15 – Convergence 2015 Atlanta – Day 1 – Dynamics GP Session

#CONV15 – Convergence 2015 Atlanta – Day 1 – Continued

#CONV15 – Convergence 2015 Atlanta – Day 2

#CONV15 – Convergence 2015 Atlanta – Day 3

#CONV15 – Convergence 2015 Atlanta – Day 4

#CONV15 – Convergence 2015 Atlanta – Post Conference and Getting Home

At the time of this writing, I’m preparing myself for the GPUG Summit conference in Reno, Nevada. Things are continuing to be hectic

Until next post!

MG.-
Mariano Gomez, MVP
Intelligent Partnerships, LLC
http://www.intelligentpartnerships.com/

Read More:
Microsoft Convergence Atlanta 2015 (#CONV15) – Wrap Up

May 24, 2015 · Mariano Gomez · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 17

Friday Funny: Finally…. The correct way to eat Vegemite

David Meego - Click for blog homepageIn recent years when I have come to conferences in the US, I have been bringing a stash of goodies with me.

Usually, this includes Arnott’s Tim Tams and Allen’s Chicos*, which are liked by almost everyone who tries them. And then there is the Aussie Icon, Vegemite.

The reaction I get from most people is one of abject terror, completely horrified when I suggest they try some vegemite. They will tell me how they have seen other Americans try it and that it is horrible, disgusting and compared to vomit.

US TV Hosts try Vegemite for the first time live on-air to celebrate Australia Day (direct link)

 

The problem is that those people who have tried it (including celebrities and TV show hosts) usually have tried it wrong. Usually very wrong. To quote one of my favourite TV comedies:

Wrong, wrong, brimming over with wrongability – Rimmer, Red Dwarf.

The problem is that Vegemite is very (read VERY) concentrated. Imagine an extremely salty beef and vegetable stock boiled down to a thick paste. Would you eat a spoonful neat? You just can’t spread it thick like peanut butter or Nutella and expect it to taste anything but disgusting.

It was first made as a by-product from another Australian favourite, beer. It is a dark brown food paste made from leftover brewers’ yeast extract with various vegetable and spice additives developed by Cyril P. Callister in Melbourne, Victoria, in 1922.

Here is another reaction from a recent episode of Jimmy Fallon’s Tonight show:

Jimmy Fallon and Steve Higgins try Vegemite (direct link)

 

So, finally it takes a famous Australian actor (and X-Man) Hugh Jackman to show Jimmy how to really eat Vegemite:

Hugh Jackman Shows Jimmy How to Really Eat Vegemite (direct link)

 

Hint: The butter (not margarine) should melt into the hot toast and the vegemite should be spread extremely thinly. If you can’t see the surface of the bread, you have it spread too thick and need to scrape some off.

That little 150g (5oz) jar should last a good 5 to 10 years. You can ignore the use by date. It never goes off and does not need refrigeration.

Go find some Vegemite and enjoy.

David

* While Allen’s is a Nestle brand, it seems they are too embarrassed to include Chicos in the product list.

This article was originally posted on http://www.winthropdc.com/blog.

Filed under: Fun, Public Service Announcement Tagged: Friday Funny, Fun

View article:
Friday Funny: Finally…. The correct way to eat Vegemite

May 22, 2015 · WinthropDC · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 17

The future of the Support Debugging Tool

David Meego - Click for blog homepageSince leaving Microsoft in October last year, I have been asked many times about the future of the Support Debugging Tool.

So I wanted to let people know what is happening with the tool and what to expect.

As mentioned in my earlier post: Update: Where is the Support Debugging Tool for Microsoft Dynamics GP 2015?, I have an exclusive agreement in place with Microsoft which allows me to continue work on and release the tool. In that post I asked via a survey what the new name for the tool should be.

So, as it has become a pain to keep talking about “the rebranded and upgraded Support Debugging Tool”, I have decided to confirm that the new name will be

GP Power Tools

Thank-you to all who voted.

GP Power Tools will be initially released for the following Microsoft Dynamics GP versions:

  • v11.0: Microsoft Dynamics GP 2010
  • v12.0: Microsoft Dynamics GP 2013 and GP 2013 R2
  • v14.0: Microsoft Dynamics GP 2015

GP Power Tools will be available via an annual subscription for each customer site at the special introductory price of US$365.00. That’s a dollar a day, and every four years you will get a day for free.

Here is the cool bit… with GP Power Tools you will get:

  • Everything you love about the Support Debugging Tool
  • New simpler Navigation with menus and area page
  • Database Validation, to ensure that your upgrades work
  • Numerous enhancements and the odd bug fix
  • And lots more….

So for now continue to use the free Support Debugging Tool for Microsoft Dynamics GP 2010 and GP 2013 (inc. GP 2013 R2) available from http://winthropdc.com/SDT. Stay tuned for more information on when to upgrade to GP Power Tools for continued support and improved functionality.

Those of you on Microsoft Dynamics GP 2015 will need to be patient and wait for the release of GP Power Tools.

Watch this space (blog), especially the GP Power Tools Portal page at

Please post comments and feedback.

David

This article was originally posted on http://www.winthropdc.com/blog.

Filed under: 2010, 2013, 2013 R2, 2015, Dynamics, GP, GP Power Tools, Microsoft, News, Products, Support Debugging Tool Tagged: GP Power Tools, GPPT, SDT, Support Debugging Tool

See the original post:
The future of the Support Debugging Tool

May 20, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 22

Using the Support Debugging Tool to create user accessible SQL Scripts – Part 3

David Meego - Click for blog homepageThis is the third and final article in the series, make sure you look at the previous articles before this one.

The previous articles can be found at:

Today’s article adds the final step by adding a method for a user to execute the code we have written so far without requiring access to any Support Debugging Tool windows.

The Runtime Execute window and SQL Execute windows are Advanced Mode features which makes them only available to users with access to the Administrator features via the security roles AND the system password (if used) AND SQL dbo or SysAdmin privileges. You would not want this sort of access to be given to the average user, so you can use the method in this article to provide access to the scripts we have written from an existing window.

Using the Automatic Debugger Mode we can create a non-logging trigger to call our scripts when an event occurs in the system. The event used can be any of the system events supported by Dexterity, such as opening or closing a window, moving focus in to or out of a field (with or without changing to the field), or clicking on a button. You can also create your own items on the Additional menu to trigger off.

For our example, we are going to use two methods; an additional menu and re-purposing the window print button on the Customer Maintenance window.

Part 3: Exposing the script to any user

The final step is to use Automatic Debugger Mode Setup to call our previously created Runtime Execute script.

  1. Open the Support Debugging Tool main window (Microsoft Dynamics GP >> Tools >> Support Debugging Tool or Ctrl-D).
  2. Open the Support Debugging Tool Setup window (Options >> Setup Automatic Debugger Mode).
  3. Enter the Trigger ID, Trigger Description as desired for menu based trigger.
  4. Check the Start Trigger Automatically on Login, Do not activate Logging Mode and Minimize Debugger Log Entries checkboxes.
  5. Select the Trigger Type: Add Form Menu, Trigger Event: Form Level, and Trigger Attach: After Menu Selected.
  6. On the Resource tab, select Product Name: Microsoft Dynamics GP, Form Name: RM_Customer_Maintenance, Menu Entry: Check and Update Hold, Accelerator Key: U.
    Trigger1
  7. On the Script tab, set Context: Microsoft Dynamics GP and the script to:
    out boolean OUT_Condition;
    local text MBS_Text_Field;
    local integer MBS_Dictionary;
    local integer MBS_Status;
    
    OUT_Condition = false;
    
    if isopen(form RM_Customer_Maintenance) then
    	OUT_Condition = true;
    
    	call with name "MBS_Script_Load_Dex" in dictionary 5261,
    		"DEMO1", MBS_Text_Field, MBS_Dictionary;
    
    	call with name "MBS_Runtime_Execute" in dictionary 5261,
    		MBS_Text_Field, MBS_Dictionary, MBS_Status;
    	if MBS_Status <> OKAY then
    		warning MBS_Text_Field;
    	end if;
    
    end if;
    

    Trigger2

  8. You can use the Helper Button at the bottom of the window to insert Helper Functions at the current cursor location for loading and executing the Dexterity Runtime Execute script. Variables needed will be automatically added to the top of the script.
  9. No changes needed on the Actions and Options tabs
  10. Click Save.
  11. Enter the Trigger ID, Trigger Description as desired for button based trigger.
  12. Check the Start Trigger Automatically on Login, Do not activate Logging Mode and Minimize Debugger Log Entries checkboxes.
  13. Select the Trigger Type: Focus Event, Trigger Event: Field Change, and Trigger Attach: Before Original.
  14. On the Resource tab, select Product Name: Microsoft Dynamics GP, Form Name: RM_Customer_Maintenance, Window: RM_Customer_Maintenance, Field Name: WindowPrint.
    Trigger3
  15. On the Script tab, set Context: Microsoft Dynamics GP and the script to:
    in string IN_OldValue;
    in string IN_NewValue;
    out boolean OUT_Condition;
    
    local text MBS_Text_Field;
    local integer MBS_Dictionary;
    local integer MBS_Status;
    
    OUT_Condition = false;
    
    if isopen(form RM_Customer_Maintenance) then
    	OUT_Condition = true;
    
    	call with name "MBS_Script_Load_Dex" in dictionary 5261,
    		"DEMO1", MBS_Text_Field, MBS_Dictionary;
    
    	call with name "MBS_Runtime_Execute" in dictionary 5261,
    		MBS_Text_Field, MBS_Dictionary, MBS_Status;
    	if MBS_Status <> OKAY then
    		warning MBS_Text_Field;
    	end if;
    
    end if;
    

    Trigger4

  16. You can use the Helper Button at the bottom of the window to insert Helper Functions at the current cursor location for loading and executing the Dexterity Runtime Execute script. Variables needed will be automatically added to the top of the script.
  17. On the Actions tab, check the Issue Reject Script checkbox to prevent the original button script from running after our trigger code finishes.
  18. No changes needed on Options tab.
  19. Click Save.

To automatically enable the triggers, just log in again to the company. To manually enable the triggers, from the Support Debugging Tool main window, select Turn On Automatic Debugger Mode >> Non Logging Automatic Start Only. To disable the triggers, from the Support Debugging Too main window, select Options >> Automatic Debugger Mode Status and then click Unregister >> Non Logging Triggers Only. To disable all triggers, use Unregister >> All Triggers, this is required if you want to open the Setup Automatic Debugger Mode window again.

Notes

  • Use the Automatic Debugger Mode Status window (Options >> Automatic Debugger Mode Status) to confirm that the triggers are registered and active.
  • Note that the target window must be closed and re-opened after the triggers are enabled before they will be active.
  • If re-purposing an existing button, you can use an ask() dialog to ask if you want the original purpose or the new purpose to execute. For the original purpose, exit the script with the variable OUT_Condition equal to false. For the new purpose, perform the desired actions and exit the script with the variable OUT_Condition equal to true and the action Issue Reject Script ticked.
  • If you are having problems getting the code to work, uncheck the Minimize Debugger Log Entries checkbox to get more information recorded in the Debugger__.log file.
  • It is possible to load and execute the SQL Execute scripts directly using the Dexterity trigger code and bypass Step 2 of this series using Runtime Execute, however this makes it harder to test the code as you will need to keep registering and unregistering the trigger.

Below is the Debugger Settings files with all the code for the examples in this series.

Please write feedback and comments below to let me know how you think you could use these methods in your systems.

Hope you found this series useful.

David

This article was originally posted on http://www.winthropdc.com/blog.

Filed under: Development, Dexterity, Dynamics, GP, Microsoft, Products, SQL Server, Support Debugging Tool Tagged: Application, Dexterity, SDT, SQL, Support Debugging Tool

Originally posted here:
Using the Support Debugging Tool to create user accessible SQL Scripts – Part 3

May 18, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 24

Friday Funny: Email in Real Life

David Meego - Click for blog homepageLast year I posted on my previous blog a funny video article which rang true for me. Well now there is a sequel video which warrants a revisit of the video series.

As someone who has worked in the IT industry for many years with a significant amount of the recent years with a reasonable large corporation that you might have heard of, the videos from Tripp and Tyler are “spot on”.

See both videos below:

 

A Conference Call in Real Life (direct link)

 

Email in Real Life (direct link)

 

See the original post at Friday Funny: A Conference Call in Real Life.

Enjoy

David

This article was originally posted on http://www.winthropdc.com/blog.

Filed under: Fun Tagged: Friday Funny, Fun

Read More:
Friday Funny: Email in Real Life

May 15, 2015 · WinthropDC · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 28

Using the Support Debugging Tool to create user accessible SQL Scripts – Part 2

David Meego - Click for blog homepageThis is the second article in the series, if you haven’t already, please see the previous article: Using the Support Debugging Tool to create user accessible SQL Scripts – Part 1.

Today’s article adds a simple user interface for the previously created SQL scripts using Dexterity sanScript.

Last article we created a couple of SQL queries and saved them in SQL Execute. We will now re-use those scripts in our code, adding an additional where clause based on input from the user.

This highlights a couple of very cool features of the Support Debugging Tool: The ability to execute previously saved SQL scripts from Dexterity and the ability to execute a previously saved Dexterity script (against any dictionary). Along with the helper functions that allow you to read and write to fields in any window on any form in any dictionary, it makes the Support Debugging Tool a very powerful cross dictionary, cross environment development tool.

Part 2: Create the User Interface

The next step is to use Runtime Execute to create a simple user interface using system dialogs and the SQL scripts saved previously.

  1. Open the Support Debugging Tool main window (Microsoft Dynamics GP >> Tools >> Support Debugging Tool or Ctrl-D).
  2. Open the Runtime Execute window (Options >> Runtime Execute).
  3. Enter the Script ID, Script Name and script for the code to execute.
    local string l_string;
    local text MBS_Text_Field;
    local integer MBS_Status;
    
    if not getstring("Customer ID begins with:", false, l_string) then
    	abort script;
    end if;
    
    call with name "MBS_Script_Load_SQL" in dictionary 5261,
    	"DEMO1", MBS_Text_Field;
    
    if not empty(l_string) then
    	MBS_Text_Field = MBS_Text_Field + "and CUSTNMBR like " + SQL_FormatStrings(l_string+"%");
    end if;
    
    clear MBS_Text_Field;
    MBS_Text_Field = MBS_Text_Field + "select * from table" + char (13);
    call with name "MBS_SQL_Check_Exists" in dictionary 5261,
    	MBS_Text_Field, true Return Data, false Show Names, MBS_Status;
    case MBS_Status
    	in [OKAY]
    		warning MBS_Text_Field;
    	in [MISSING]
    		warning MBS_Text_Field;
    		abort script;
    	else
    		warning MBS_Text_Field;
    		abort script;
    end case;
    
    if ask("Do you want to clear Hold flags?", "Yes", "No", "") <> ASKBUTTON1 then
    	abort script;
    end if;
    
    call with name "MBS_Script_Load_SQL" in dictionary 5261,
    	"DEMO2", MBS_Text_Field;
    
    if not empty(l_string) then
    	MBS_Text_Field = MBS_Text_Field + "and CUSTNMBR like " + SQL_FormatStrings(l_string+"%");
    end if;
    
    clear MBS_Text_Field;
    MBS_Text_Field = MBS_Text_Field + "select * from table" + char (13);
    call with name "MBS_SQL_Check_Exists" in dictionary 5261,
    	MBS_Text_Field, true Return Data, false Show Names, MBS_Status;
    case MBS_Status
    	in [OKAY]
    		warning MBS_Text_Field;
    	in [MISSING]
    		warning MBS_Text_Field;
    	else
    		warning MBS_Text_Field;
    		abort script;
    end case;
    
    warning "Completed.";
    

    RuntimeScript

  4. You can use the Helper Button at the bottom of the window to insert Helper Functions at the current cursor location for loading and executing the SQL script. Variables needed will be automatically added to the top of the script.
    Helper1
    Helper2
  5. Use the Execute Button to test your script and ensure it works as desired.
  6. Click Save.

The script uses the getstring() function to obtain an input from the user. It then loads the display SQL script previously stored and adds an additional expression to the where clause based on the user input. The script then executes the SQL query and displays the returned data.

If data has been displayed then the ask() function is used to display a dialog asking if the user wishes to clear the Hold flags. If the response is Yes, the previously stored update SQL script is loaded, has its where clause adjusted and is executed. Finally, the warning command is used to tell the user the update has been completed.

Notes

  • You can change the dictionary context that the Dexterity sanScript code is executed against. Use Microsoft Dynamics GP unless you specifically need to access resources in another dictionary.
  • You can use Dexterity system dialogs such as getstring(), ask(), getfile(), savefile() error, and warning to provide a user interface.
  • You can also use Helper Functions to read values from any window in any dictionary.
  • Using Helper Functions to load and execute either SQL or Dexterity scripts allows for code re-use.
  • SQL scripts loaded via the Helper Functions can be modified prior to execution via a Helper Function. Note: Remember to delete or comment out the lines added which create a simple query when using the Execute SQL Select Statement Helper Function
  • There are also Helper Functions to Set, Get and Delete Parameters which can be used to pass information between the main script and called Dexterity scripts.
  • Runtime Execute).

Stay tuned for the final part of the puzzle.

David

This article was originally posted on http://www.winthropdc.com/blog.

Filed under: Development, Dexterity, Dynamics, GP, Microsoft, Products, SQL Server, Support Debugging Tool Tagged: Application, Dexterity, SDT, SQL, Support Debugging Tool

More:
Using the Support Debugging Tool to create user accessible SQL Scripts – Part 2

May 13, 2015 · WinthropDC · No Comments
Tags: , , , , , , ,  · Posted in: Blogs I Follow Total Views: 28

Using the Support Debugging Tool to create user accessible SQL Scripts – Part 1

David Meego - Click for blog homepageIt has been a while since I have posted a technical article on the blog. This is because I am spending almost all my time working on bringing some existing and new products to market.

I am still working on the rebranded and improved release of the Support Debugging Tool. There will be a number of improvements in its features and navigation, more on that soon.

For now, I wanted to post a really clever method of using the Support Debugging Tool to provide additional functionality to end users.

At the reIMAGINE 2014 conference in Fargo last November, Mariano Gomez and I demoed a method of creating a user accessible SQL script. The series covered in the next few posts will take you through the steps to create your own scripts on your system.

The Scenario

I will use the same scenario as we demonstrated at the conference. This will help explain the techniques involved so you can create your own examples.

For our example, we will use queries to check for customers that are marked as on Hold and update customers on Hold to remove the Hold flag.

The end result we want is a user accessible menu entry which can be used to display any customers on Hold which meet a user entered “Begins with” value and then have the option to clear the Hold flag.

Note: The series assumes that the Support Debugging Tool is installed using the Recommended Configuration (shared setup file location) and that you have Advanced Mode features enabled and available to you.

Part 1: Create the SQL Queries

The first step is to use SQL Execute to create and save the SQL queries needed to display and update the data.

  1. Open the Support Debugging Tool main window (Microsoft Dynamics GP >> Tools >> Support Debugging Tool or Ctrl-D).
  2. Open the SQL Execute window (Options >> SQL Execute).
  3. Enter the Script ID, Script Name and script for your display query:
    select Customer Number from RM_Customer_MSTR where Hold <> 0

    SQLScript1

  4. Click Save.
  5. Enter the Script ID, Script Name and script for your update query:
    update RM_Customer_MSTR set Hold = 0 where Hold <> 0

    SQLScript2

  6. Click Save.

Notes

  • You can use Dexterity Technical Names in your queries if they are surrounded by braces  and SQL Execute will convert them to physical table and column names before execution for you.
  • If you want more than 20 rows returned for the display query, you can change or remove the limit.
  • If you want the query execute against the System database or a specific company database, you can change the Execute Query context drop down list.
  • If you wish to be able dynamically change the query ensure that you can make your changes by adding code at the beginning or end of the script. This can be achieved by setting a variable at the beginning of the script or by adding where clause to the end.
  • You can use more descriptive Script ID and Script Names for your scripts.

More to come on the next post.

David

This article was originally posted on http://www.winthropdc.com/blog.

Filed under: Dexterity, Dynamics, GP, Microsoft, Products, SQL Server, Support Debugging Tool Tagged: Application, Dexterity, SDT, SQL, Support Debugging Tool

Read More:
Using the Support Debugging Tool to create user accessible SQL Scripts – Part 1

May 11, 2015 · WinthropDC · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 25