#GPUGSummit USING GP POWER TOOLS TO WRITE CUSTOM WEB SERVICES FOR MICROSOFT DYNAMICS GP David Musgrave MVP Managing Director, Winthrop Consultants #GPUGSummitDevelopment | #INreno15 Mariano Gomez MVP Senior Software Engineer, Mekorma AGENDA Introductions History of GP Power Tools Service Based Architecture GP Power Tools and its Services implementation Demonstration Q&A #GPUGSummit | #INreno15 2 DAVID MUSGRAVE Managing Director of Winthrop Development Consultants Microsoft Dynamics GP Most Valuable Professional (MVP) Worked with Microsoft for 13 and a half years Lives in Winthrop, a suburb in the city of Perth Where is Perth, Western Australia? #GPUGSummit | #INreno15 3 #GPUGSummit | #INreno15 #GPUGSummit | #INreno15 MARIANO GOMEZ Senior Software Engineer at Mekorma Microsoft Dynamics GP Most Valuable Professional (MVP) Lives in Atlanta, Georgia, USA Born on a small Colombian island off the coast of Nicaragua Where is San Andres Island? #GPUGSummit | #INreno15 6 #GPUGSummit | #INreno15 #GPUGSummit | #INreno15 AGENDA Introductions History of GP Power Tools Service Based Architecture GP Power Tools and its Services implementation Demonstration Q&A #GPUGSummit | #INreno15 9 HISTORY Support Debugging Tool (SDT) initially created in August 2006 Publically released in September 2008 Last release was Build 19 in September 2014 (Day before losing job) Discontinued when David Musgrave left Microsoft in October 2014 Negotiations with Microsoft for exclusive rights finalized in March 2015 Renamed to Winthrop Development Consultants’ GP Power Tools (GPPT) Release Build 20 for GP 2010, GP 2013 and GP 2015 in August 2015 Distributed and Supported worldwide by Mekorma #GPUGSummit | #INreno15 10 SERVICE BASED ARCHITECTURE Introduced with Microsoft Dynamics GP 2015 (Version 14.0) – Service Enabled Procedures – – Service Enabled Procedures and .Net Interop Dexterity Global Procedures with Metadata to expose them externally as REST (Representational State Transfer) based web services Allows external code to directly call Dexterity based business logic .Net Interop – – Enables Dexterity sanScript code to re-use .Net objects with their methods and properties Allows Dexterity code to directly call and use .Net objects #GPUGSummit | #INreno15 11 GP POWER TOOLS SERVICES GP Power Tools has five Service Enabled Procedures – ServiceCreateCustom ServiceDeleteCustom ServiceGetCustom ServiceUpdateCustom ServicePostCustom – * Must include Custom action definition: GP-Custom-Action=Post – – – – #GPUGSummit | #INreno15 Create Delete Get Update Custom* POST DELETE GET PATCH POST in in in & out in in & out 12 GP POWER TOOLS PARAMETERS One parameter is passed with URI – The additional parameters as Payload – – – When calling the web service, there is a string parameter for Script ID The input parameter is a collection of strings: List<String> The output parameter (for Get and Post) is also: List<String> The Status returned is a Short The data contained on each line of the collection must be defined – – For Example: Line 1 = Customer Number Line 2 = Customer Name #GPUGSummit | #INreno15 13 GP POWER TOOLS SERVICE IMPLEMENTATION The Script ID passed into the service specifies a Runtime Execute Script ID to be run when the service is called. – The Runtime Execute window populates with a template script when the Custom Script Purpose for one of the Services is selected The .Net collection of Strings: List<String> are converted to Text fields – – To make the script work with Runtime Execute, the payload in and out are converted to Text fields where each String in the collection is a line in the Text Field. The template script handles the parsing of the Text field. #GPUGSummit | #INreno15 14 GP POWER TOOLS SERVICE SCRIPTS While the template scripts for the five services provide example code, the actual functionality can be completely user defined. – The scripts can use Helper Functions to run other scripts – The Runtime Execute scripts can perform any action possible within the system You can run scripts created with Runtime Execute (Dexterity), SQL Execute (Transact-SQL) or .Net Execute (C# or Visual Basic.Net) The scripts can use the Helper Functions to pass parameters – The Helper Functions can be used to pass values or scripts can be modified after they are loaded and before they are executed #GPUGSummit | #INreno15 15 GP POWER TOOLS DEMONSTRATION Going to use Services to create, update, get and delete a customer Tweet using #GPPT #MSDYNGP #GPUGSummit #GPUGSummit | #INreno15 16 DEMONSTRATION #GPUGSummit | #INreno15 #GPUGSummit | #INreno15 GP POWER TOOLS LINKS GP Power Tools Portal http://WinthropDC.com/GPPT GP Power Tools Product Pages http://winthropdc.com/products_GPPT.htm http://www.mekorma.com/products/gp-power-tools.aspx #GPUGSummit | #INreno15 19 LINKS David Musgrave’s Winthrop Development Consultants Blog http://www.winthropdc.com/blog The Microsoft Dynamics GP Blogster blog (by Mariano Gomez) http://dynamicsgpblogster.blogspot.com/ Developing for Microsoft Dynamics GP Blog – retired (by David Musgrave & the Developer Support Team) http://blogs.msdn.com/DevelopingForDynamicsGP/ or http://aka.ms/Dev4DynGP #GPUGSummit | #INreno15 20 [email protected] [email protected] #GPUGSummit | #INreno15 QUESTIONS? Contact: [email protected] & [email protected] #GPUGSummit | #INreno15
© Copyright 2026 Paperzz