Microsoft Product Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg
Showing posts with label Web Client. Show all posts
Showing posts with label Web Client. Show all posts

Monday, 18 November 2013

How to Display Parent Company Information on SOP documents

Posted on 02:00 by Unknown
A few days aback I encountered a really interesting discussion on the Microsoft Dynamics GP Community forum where the user needed to get the parent customer information on the SOP Blank Invoice Form. I asked myself, "Well, how difficult can that be?"

The first thought around these requests is, you create a table relationship between the Sales Transaction Work (SOP_HDR_WORK) table and the RM Customer Master (RM_Customer_MSTR) table by Customer Number and you get the parent customer ID. In that train of thought you immediately realize that there's no way to alias the RM Customer Master table back into the table relationship to retrieve the parent customer ID information. [NOTE TO SELF: this would be a cool Report Writer feature, but I digress.]

Of course, a second alternative is to use VBA, but many customers and partners are wary of implementing a VBA solution, especially when they are considering upgrading to Microsoft Dynamics GP 2013 and taking advantage of the web client. VBA customizations simply do not work with the web client.

As I thought through an alternative, I quickly realized this would be a good fit for the Support Debugging Tool and it's awesome Runtime Execute feature. As it turns out, the Support Debugging Tool is capable of executing Dexterity sanScript code within the context of any dictionary, but not only that; it provides some really cool templates that save time and minimizes the amount of code an entry level developer needs to create to accomplish a solution. In turn, there are a number of Report Writer API scripts built into the Dynamics application dictionary (DYNAMICS.DIC) to allow third party developers to expose data from their tables onto an existing Microsoft Dynamics GP report without having to write a complex interface to do so.

The Solution

1. The first task at hand is to open the Runtime Execute window in the Support Debugging Tool. Once the window is open, click on the Helper button to open the Insert Helper Function window. From the drop-down list, select template for rw_TableHeaderString.

Insert Helper Function window

Below is the signature for the function as we will use it.

The rw_TableHeaderString function

function returns string sData;

in integer dict_id; {Support Debugging Tool Dictionary ID}
in string report_name; {Support Debugging Tool Script ID to call}
in string sNumber; {Parent Customer ID field we will retrieve}
in integer sType; {Not used, we will default to 0}
in integer iControl; {which piece of data to return}

We will use this function to return a string value for the selected Parent Customer ID information field to a Report Writer calculated field.

By clicking OK, the Support Debugging Tool inserts the code to get us started in the right direction.

Helper Code
Very cool! All that's left now is to add the extra bits of code to retrieve the parent customer information from the RM Customer Master. In addition, we need to make sure that this code executes in the context of the Microsoft Dynamics GP product.

Additional Code
The template function even indicates where our code should be inserted and as you can see this is easy stuff for any entry level Dex developer. All we did here was use the MBS_Number local field as the parameter value that will contain our parent customer ID (to be passed from Report Writer) to get the piece of data we are interested in based on the value that we will supply to the MBS_Control local field (again, from Report Writer). The returned table value will then be stored in the MBS_TableHeaderString local field.

The Support Debugging Tool then goes to action and call its MBS_Param_Set API function to talk back to the Report Writer API script and deliver the values retrieved to it. Isn't this awesome!

2. The second part of our solution consists of 3 parts really: a) we need to create a table relationship between the Sales Transaction Work table and the RM Customer Master table as this relationship does not exist out of the box, b) We then need to create calculated fields for the pieces of Parent Customer data we would like to retrieve, and c) We need to complete the layout and grant security to the modified report.

I will assume for this article that you are familiar with the processes of creating new table relationships in Report Writer and laying out the new calculated fields and granting security to the modified report. You can always browse the Report Writer manual accompanying your Microsoft Dynamics GP application for information of these processes, so my attention will focus solely on the calculated field.

In this example, I want to retrieve the parent customer name. For this we will create a new calculated field as follows:

a) Create a new calculated field, in this case I will call it (A) Parent Name. The result type of the calculation will be a String and the expression type is Calculated.

b) Since we are using the rw_TableHeaderString user-defined function, we will choose this accordingly:

rw_TableHeaderString

c) Now we have to setup the parameters as indicated by the function signature above. The first parameter we will add is the Support Debugging Tool's dictionary ID, 5261. We will add this as an integer constant.

Dictionary constant 5261 to call the script we wrote
d) Now we have to call the Runtime Execute script we created, GETPARENTINFO. We will add this as a string constant.

GETPARENTINFO

e) We now need to pass the parent customer number parameter, our default (not used) parameter, and the value number for the field that will be retrieved for the parent customer data, according to how we coded our script above. This is shown below.

Last 3 parameters.

The RM_Customer_MSTR.Corporate Customer Number field is retrieved from the RM Customer Master table which we created via a new table relationship and subsequently adding that table relationship to our report.

The following shows a muck-up of the report layout with the parent customer name calculated field created:

Report Layout
The report should display something like this when run in Microsoft Dynamics GP:

Invoice Layout


Final Notes

The above script could be extended to retrieve other pieces of data for our parent customer, like contact, address, city, state, zip, phone numbers, etc. In this case you will need to add more entries to the case...end case statement above and retrieve the correct table column. You can find more information on the table columns for the RM Customer Master in the Microsoft Dynamics GP software development kit (SDK).

This solution is absolutely compatible with Word Templates and the Web Client. In the case of Word Templates, you will need to export a new report definition file (XML) and import into your template fields. In the case of the Web Client, all the components above are within the confines of a Dexterity application and the Support Debugging Tool happens to be compatible with the Web Client, just as much as Report Writer is. Your modified report should render absolutely fine on the Silverlight canvas control, if printing the standard report.

For all workstations to take advantage of the Runtime Execute script, the Support Debugging Tool must be deployed with the recommended configuration - all workstations pointing to a centralized configuration file, debugger.xml.


The Support Debugging Tool never ceases to amaze me. You can find similar article to this one and more information here:

The Dynamics GP Blogster - Adding Customer Item User Defined Field to SOP Invoice
Developing for Dynamics GP - The Support Debugging Tool Portal

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Code, Dexterity, Dynamics GP 2010, Dynamics GP 2013, Report Writer, Support Debugging Tool, Web Client, Word Templates | No comments

Wednesday, 13 November 2013

Web Client Wednesday - Microsoft Dynamics GP Reset User Password not working

Posted on 05:00 by Unknown
Continuing with the Web Client Wednesday series, today I wanted to highlight the fact that the web client is still a work in progress. While a lot of ground has been covered over the past 3 years, the product continues to evolve, and of course, in the meantime there will be little issues here and there that may affect the way you work.

Previous articles in the series:

Web Client Wednesday - Browser Support

Web Client Wednesday - User Interface Differences



Just recently I ran into a Microsoft Dynamics GP 2013 web client deployment case where the advanced SQL Server options are enabled to enforce password expiration. These properties are a part of the Enforce Password Policy options on the User Setup window.

User Setup

When a password expires and a user attempts to log into the desktop client, they are immediately prompted to change their password and the Change User Password dialog window displays to allow the user to enter the old password, and enter and confirm the new one.

Change User Password window

The behavior is different under the web client, however. Whenever a password expires, the Change User Password dialog displays as expected, but in this case, the Old Password field is disabled and the user would only be prompted to enter the new password and confirm.

Change User Password dialog on Web Client 

Microsoft Dynamics GP uses the old password to establish a connection to the database - at this point, the user has not validated their SQL credentials - in order to set the new password. If the old password is not supplied the connection cannot be established, which in turn fails the attempt to change the new password.

This issue has been identified as a bug by Microsoft Support in Fargo and is currently in the queue for resolution. If you are affected by this problem, you are encouraged to open a support case and add yourself to the list for a fix.


For more information on how the password system works in Microsoft Dynamics GP, please take a look at the following articles:

Developing for Microsoft Dynamics GP - Why does Microsoft Dynamics GP encrypt passwords?
Developing for Microsoft Dynamics GP - Microsoft Dynamics GP Application Password System
Microsoft Support - FAQ about the Advanced SQL Server options in the User Setup Window

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dynamics GP 2013, Security, Troubleshooting, Web Client | No comments

Wednesday, 6 November 2013

Web Client Wednesday - Browser Support

Posted on 02:00 by Unknown
Last week MVP Mark Polino started a series called Web Client Wednesdays, which is actually a Microsoft Dynamics GP community outreach to start building up the body of knowledge around Microsoft Dynamics GP 2013 web client. If you are a blogger, consultant, customer, or partner who has had some experience with the web client, Mark would like to hear from you.

As part of my contribution to this series, last week I started talking about the UI differences between the desktop client and the web client. Of course, after publishing the article I realized a probably left out a few things, but then again, I can use this as additional material for a future blog.


Today I want to provide some answers to a question I know a lot of you go to bed thinking about at nights: can the Microsoft Dynamics GP 2013 web client run in other browsers other than Internet Explorer?

Of course, if we are going to talk browsers, it's probably good to mention that this article will focus on the 4 major commercially available ones: Microsoft Internet Explorer, Google Chrome, Apple's Safari, and Mozilla's Firefox.

From a technical standpoint and in general terms, browser supportability comes down to a couple things from what I gathered in my conversations with folks over at Microsoft and my own curiosity on the subject:

1. The browser's ability to load the Silverlight plugin required for trust between the application and your local machine resources, and

2. The ability of such browser to respect the generally accepted standards imposed by the WWW consortium as it relates to the standard HTML-based protocols.

Internet Explorer

In general, Microsoft Internet Explorer is considered the primary (tested) supported browser for the web client for obvious reasons. However, as far as compatibility goes, Internet Explorer 8 can present some challenges with the Trusted App. Internet Explorer 9 is supported and so is Internet Explorer 10 in desktop mode only. The Windows 8 immersion browser (HTML5) is not supported.

Web Client running on Internet Explorer

Internet Explorer had no issues displaying the Web Management Console application either. The Silverlight snap-in applications worked just fine and displayed all the information about the session and users in each session.

Google Chrome

I have worked with the web client on Chrome and have not really experienced any issues beyond the Connect Gadget not displaying on the Home page - the error you will see in the gadget frame when you hover over it is:

Connect Gadget error in Chrome 

Chrome is capable of loading the Silverlight plug-in which allows it to gain trust access to the local machine resources, so things like Word Templates, SmartList exports to Excel or Word, in general, any file saving to the local machine or printing are all available in this environment. I have also noticed that the fonts render much sharper in Chrome than they do under Internet Explorer. Other aspects like Business Analyzer, the visual cue reminders all work fine.

Web Client running on Chrome

Google Chrome had no issues displaying the Web Management Console application either. The Silverlight snap-in applications worked just fine and displayed all the information about the session and users in each session.

The version of Chrome tested was 30.0.1599.101.

Apple's Safari

Technically speaking, Safari should be capable of loading the web client. In preliminary tests performed by Microsoft, the browser was able to load the web client, but could not load the Connect gadget. In addition, Safari did not allow the trust application relationship required by Silverlight to access the local machine resources.

My test with the latest version of Safari allowed to get past the credentials validation, but went blank on the way to loading the GP web app. This of course, could be due to issues with Silverlight, but I can't be certain.

Web Client on Safari
Safari could not load the Web Management Console application either.

The version of Safari tested was 3.2.2 (525.28.1) -

Mozilla's Firefox


Like Safari, Firefox was able to authenticate the credentials, but threw as Silverlight exception on the way to loading the GP app login window. In the tests performed by Microsoft, Firefox loaded the web client, but was unable to display the Connect gadget.


Firefox with Silverlight exception
Firefox had no issues displaying the Web Management Console application however. The Silverlight snap-in applications loaded, but I could not test whether session information would display accordingly (since I could not get passed the above).

The version of Firefox tested for this article is 25.0.


It would be interesting to see if different versions of the latter two browsers behave differently. However, I leave it up to you the reader to comment back with your findings as this kind of testing is beyond the scope of this article.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dynamics GP 2013, Web Client | No comments

Wednesday, 30 October 2013

Web Client Wednesday - User Interface Differences

Posted on 09:31 by Unknown
How I get dragged into these things is beyond me, but MVP Mark Polino has convinced me that we need to make sure we dedicate a post every Wednesday to the Web Client and frankly, it did not take an arm twist to get me to bite.

Take a look at Mark's first post where he details how the installation Repair feature saves you from a full re-installation or redeployment.


To kick off this series, I will talk about something I was asked about during my web client training session at GPUG Summit 2013 Tampa: what are the main differences between the desktop and web client user interfaces? This topics has been covered in bits and pieces here and there, but I will try to round them out all in a single post.

At a general level, the first notable change is the replacement of the traditional menu navigation available in the desktop client for the use of navigation bars and lists. But then again, Microsoft introduced navigation lists since version 9.0, so by now you should be a pro using this application feature.

Login

Desktop Client - Login

Web Client - Login
The first thing to note is, the desktop client does allow you to remember the user and password. Not so under the web client.

Menus

Desktop Client Menus

Web Client Menus
The desktop client will continue to display the traditional menu bar as a navigation option. The web client does not display the menu bar and replaces this feature for the navigation lists. The web client incorporates a Sign Out hyperlink to gracefully exit the application. Closing the web page is not recommended as it will strand a user within the system. However, if you close the web page by accident, you can always connect to the same session.

In both cases, the desktop and the web clients allow you to customize the page.

Home Navigation Bar




Desktop Client - Home
Web Client - Home

The Home navigation bar changes from the desktop client to the web client. The desktop client features the User Preferences window and the Shortcuts, Report Shortcuts, Startup, and User Classes folders, which are not available under web client. If you are currently using shortcuts under the desktop client, it is recommended you add these as Quick Links on your home page.

User Preferences

Desktop client - User Preferences

Web Client - User Preferences

The traditional user preferences for required fields are displayed on the desktop client - bold, red, italic, etc. - but not so on the web client. I suspect this is something the Microsoft Dynamics GP development team will work on, but as of SP2 this feature was not present on the web client. To this effect, if you are using the Support Debugging Tool, company color coding is also not available under the web client.

Status Bar


Desktop Client - Status bar

Web Client - Status bar
The web client status bar incorporates the status of the connection, access to the online help, and status of the Silverlight trust to the local resources (printers, folders, etc.) when the certificates are not present on the local computer's certificate store; in addition to the system date, company, and user information displayed traditionally under the desktop client.

Window Navigation


Desktop Client - Window Navigation


Web Client - Window Navigation
Perhaps, one of the areas where changes will be rather apparent is at the individual window navigation. The web client implements a ribbon, which displays and replaces a number of traditional elements common to the desktop client. For example, on the SOP Entry window, the buttons at the bottom of the window are implemented under a Go To drop-down button on the ribbon. Since menus are not available in Web Client, these desktop only options become a part of the window ribbon in web client. Other elements such as windows displayed by expansion buttons and other form windows become navigational tabs under the web client.

However, the all too familiar browse buttons remain in place at the bottom of both the desktop client and the web client windows.

SmartLists Access


Desktop Client - Smartlist Access                                                          Web Client - Smartlist Access
Since the traditional menu options are not available under the web client, SmartLists must be accessed under the corresponding SmartList Favorites for each navigation bar option. For example, all SmartLists under the sales series, must be accessed from the Sales navigation bar by choosing the SmartList Favorites option for that series. Here's where naming your SmartLists accordingly becomes really handy once they are listed in the list.

Now, I know these may not be all the differences at hand between the two user interfaces, but if I missed any, please feel free to add your comments to this article.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dynamics GP 2013, Training, Web Client | No comments

Monday, 9 September 2013

VST: Rendering WinForms in Microsoft Dynamics GP web client

Posted on 11:57 by Unknown
In my previous article I discussed applying Service Pack 2 to update your VST development environment. The SP2 update introduces the ability to render VST WinForms in the Web Client.

Background

Prior to the release of Microsoft Dynamics GP 2013 RTM, the application development and technical consulting communities got to preview the web client at the Microsoft Dynamics GP Technical Airlift 2012 in Fargo in a Web Client Jumpstart Training for partners. Following the training and attendance to some sessions, VST developers got the bad news: "Only Dexterity applications are fully compatible with the web client". That left a number of you with the proverbial (and probably literal) bad taste in the mouth and scrambling for answers. Microsoft came back with a consolation price announcement: "Only VST applications written without using WinForms will be supported in the web client". In retrospect, I feel the message could have been delivered differently, but I digress.

Fast forward to SP2 and Microsoft did what it does best: make things right! VST developers now have the ability to render WinForms in the web client... with a few caveats.

The Boring Theory

With the RTM release of Microsoft Dynamics GP 2013 web client, VST developers needed to make a slight change to the way assembly add-ins were exposed to the desktop client and/or web client. By default assemblies were not loaded by the Runtime Engine and Web Client Runtime engine. In contrast, VST assemblies placed under the traditional AddIns folder would load in the desktop client (Dexterity client) only.

Now, to have an integration load on the Microsoft Dynamics GP web client, you must add the SupportedDexPlatforms attribute to the class that implements the IDexterityAddIn interface to indicate that the integration works for the web client.

Once you have indicated what platform your application will be compatible with, it's time to address your WinForms. Microsoft has leveraged its rendering engine to support two different types of rendering for WinForms: dynamic and custom rendering.

To use dynamic rendering, your Visual Studio Tools form must use controls from the supported list. The following controls are automatically rendered:
  • Button
  • CheckBox
  • ComboBox
  • GroupBox
  • Label
  • ListBox
  • RadioButton
  • TextBox
If the WinForm uses controls that aren't included in this list, those controls won't be rendered on the form when it is displayed in the web client. In those cases, you must implement custom rendering.
 
Dynamic rendering is the simplest technique for implementing a Visual Studio Tools form that works on the Microsoft Dynamics GP web client. With dynamic rendering, the web client runtime does the necessary work to display the Visual Studio Tools form in the web client. It also handles the communication between the web client machine and the web client server.

To enable dynamic rendering for a form, the form must derive from DexUIForm class. You must add the WCCompliantWindow attribute to the class that defines the form. This attribute indicates that the form should be automatically rendered by the web client. If this attribute isn't found on the form, the form will not be displayed in the web client.

The fun part!

Let's take canned PostingSOPBatches2 example. The first task at hand is to determine what platform the VST application will support:


In the above, we have added the SupportedDexPlatforms attribute, which takes one parameter that indicates which platform or platforms are supported by the integration. In this example, the logical-or operation is used to indicate that both the desktop client and the web client are supported.

With the client defined, the next focus is on the WinForm itself.  The following is our WinForm layout:


Once you complete the layout of the form, double-click on it to open the associated code:



The WCCompliantWindow attribute takes one boolean parameter that indicates whether dynamic rendering is supported for the form.

That's it! Compile away and test, test, and test, your code to make sure it works and that no rendering issues occur. You should place the resulting assembly, in this case postingSopBatches2.dll and its config file in the AddIns folder under your Microsoft Dynamics GP 2013 root folder. Launch the Web Client and display the form. For this example, we have placed the form under the About Microsoft Dynamics GP box, but could have well written an event handler to display it under SOP Entry where it really belongs.


So what happens to things like grids and custom controls? Those will need to be rendered using Custom Rendering. In my next article I will discuss this method and some of the drawbacks you may face while doing so.

Thanks to Kevin Racer (Twitter: @kracer123) and Michael Hammond (Twitter: @mhamm_msft) for their valuable contributions to this article.
-//-

Remember, the best application development techniques usually involve a Hybrid Development approach. There's always a way to accomplish the end goal and ultimately, is up to you the developer to consider at all the options available.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in C#, Dynamics GP 2013, Upgrades, VB.NET, Visual Studio Tools, Web Client | No comments

Friday, 6 September 2013

VST: Updating your Visual Studio Tools Web Client Development Environment

Posted on 05:54 by Unknown
Microsoft Dynamics GP 2013 SP2 (12.00.1482) introduced some really cool new updates to a lot of application components. Yesterday, for example, I talked about the SmartList Designer and how it really takes the SmartList experience to new heights.

Visual Studio Tools and Microsoft Dynamics GP 2013 SP2 introduce support for WinForms rendering on the Web Client - more of that in my next article, but before we get into the details, here's what you need to know to prep your development environment:

1. You must install Visual Studio Tools for Microsoft Dynamics GP Service Pack 2 in your system. The VST msi update can be found under MDGP2013_SP2_DVD_ENUS\Tools\SDK\VS Tools\Updates folder in the full DVD image available from CustomerSource or PartnerSource. This should bring the VST components to version 12.00.1488.00 while updating all templates in your Visual Studio development environment.

Visual Studio Tools SP2 build number check Control Panel | Programs

2. You must apply Microsoft Dynamics GP 2013 SP2, which in turn should upgrade the Web Client Runtime components on your session host machine(s). The Microsoft Dynamics GP 2013 SP build number is 12.00.1482 and the Web Client Runtime assemblies will be updated to version 1.0.170.0.

Web Client Runtime build number check under About Microsoft Dynamics GP | Additional | Web Client

NOTE: If you are, in addition, doing Dexterity development you must follow the procedures outlined in http://support.microsoft.com/kb/910527 to complete the update of your Dex application, since SP2 will also update the Dynamics dictionary.

3. Finally, you can upgrade the Web Client components themselves, by running the msi found under \MDGP2013_SP2_DVD_ENUS\AdProd\WebClient\Updates on the full DVD image on your IIS server. The Web Client components should be at version 1.0.516.0 after the update is completed.

Web Client build number check under Control Panel | Programs

If you are anything like me, all this stuff runs on your development laptop. However if you are a part of a dev team, you should determine where each of these components reside in your environment and update accordingly.

For more information on Microsoft Dynamics GP 2013 SP2 take a look at my article Microsoft Dynamics GP 2013 Service Pack 2 is now available.

For additional information on updating your Visual Studio Tools applications to Service Pack 2, you will want to follow instructions outlined in the Upgrading an Integration section of the Getting Started chapter of the Visual Studio Tools for Microsoft Dynamics GP content online at MSDN Library.

-//-

In my next article, I will talk about rendering Visual Studio Tools' WinForms in the Microsoft Dynamics GP Web Client.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dynamics GP 2013, Upgrades, Visual Studio Tools, Web Client | No comments

Tuesday, 30 July 2013

Troubleshooting the Microsoft Dynamics GP 2013 Web Client - Wrap Up

Posted on 09:12 by Unknown
Series Wrap Up


It's been a couple of exciting weeks reviewing the position, procedures, and tools available for troubleshooting the Microsoft Dynamics GP 2013 Web Client and I hope that you walked away with an idea of where to turn and what it takes to resolve your issues.

Troubleshooting may not be glamorous or exciting and frankly a lot of folks down right don't like it, but I personally find it to be a challenge. I like when stuff breaks - figuratively speaking - knowing that you (and a handful of others) are the only one capable of fixing it. Also, it is awesome when you can showcase your Angus MacGyver (yes, his first name was Angus!) ingenuity by using resources and tools that have been in the public domain for a while, "common knowledge" if you will, and can now be applied in the context of GP.

I want to synthetize the series by providing a link to all the articles covered, below:

Part 1: Microsoft Dynamics GP Support Team's Posture
Part 2: Resolving Microsoft Dynamics GP 2013 Web Client Implementation Issues
Part 3: Resolving Microsoft Dynamics GP 2013 Web Client Functional Issues
Part 4: Tools for Troubleshooting Web Client issues: the Web Client Diagnostic tool
Part 5: Tools for Troubleshooting Web Client issues: Fiddler
Part 6: Tools for Troubleshooting Web Client issues: Other Tools
Part 7: Tools for Troubleshooting Web Client issues: Command Line Tools

Well, I am preparing for a new series of articles, but in the mean time stay tuned.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dynamics GP 2013, Troubleshooting, Web Client | No comments

Monday, 29 July 2013

Troubleshooting the Microsoft Dynamics GP 2013 Web Client - Part 7

Posted on 11:11 by Unknown
Part 7 - Tools for Troubleshooting Web Client issues: Command Line Tools

Parts 5 and Part 6 of this series, both look at some nice GUI-based tools to analyze web and network traffic. The good thing about these tools is that they allow you to analyze things from the comfort of an application window.

However, one needs not to discard some powerful command line base tools that have been around since the early days of DOS - and that's Disk Operating System, not DOS as in Dos Equis (XX). Today, I will talk about NETSH and NET

NETSH COMMAND

Netsh (Network Shell) is a command-line scripting utility that allows you to, either locally or remotely, display or modify the network configuration of a computer that is currently running. Netsh also provides a scripting feature that allows you to run a group of commands in batch mode against a specified computer. Netsh can also save a configuration script in a text file for archival purposes or to help you configure other servers.

With the Netsh.exe tool, you can direct the context commands you enter to the appropriate helper, and the helper then carries out the command. A helper is a Dynamic Link Library (.dll) file that extends the functionality of the Netsh.exe tool by providing configuration, monitoring, and support for one or more services, utilities, or protocols. The helper may also be used to extend other helpers.

You can use the Netsh.exe tool to perform the following tasks:

•  Configure interfaces.
•  Configure routing protocols.
•  Configure filters.
•  Configure routes.
•  Configure remote access behavior for Windows-based remote access routers that are running the Routing and Remote Access Server (RRAS) Service.
•  Display the configuration of a currently running router on any computer.
•  Use the scripting feature to run a collection of commands in batch mode against a specified router.

So, how does this all apply to the Web Client?

WCF services and clients can communicate over HTTP and HTTPS. The HTTP/HTTPS settings are configured by using Internet Information Services (IIS) or through the use of a command-line tool. When a WCF service is hosted under IIS, HTTP or HTTPS settings can be configured within IIS (using the inetmgr.exe tool). If a WCF service is self-hosted - like Session Service, for example - HTTP or HTTPS settings are configured by command-line entries.

At the minimum you will want to configure a URL registration, and add a Firewall exception for the URL your service will be using. Fortunately, this configuration is done for us by the InstallShield application when running the installation of the Web Client runtime services components.

In the Web Client world, we use NETSH to check for namespace reservations and look at how ports are configured in relation to SSL certificates issued.

To display discretionary access control lists (DACLs) for the specified reserved URL or all reserved URLs, proceed to type from the command-line:

NETSH HTTP SHOW URLACL

To determine how ports are configured, type the following from the command-line:

NETSH HTTP SHOW SSLCERT

If the Web Client installation process went well, the Certificate Hash assigned to each port used by Session Service (port 48650), Session Central Service (port 48651), and Runtime Service (port 48652) should match the thumbprint value of the certificate in IIS, as displayed by the show sslcert option.

Certificate hash on each listening port must match that of the certificate in IIS
Much more details can be found in my Windows 8 and Web Client installation series article, Windows 8 and the Microsoft Dynamics GP Web Client Series - Part 4.

For more information on configuring HTTP and HTTPS transports for WCF, take a look at the following MSDN library article:

http://msdn.microsoft.com/en-us/library/ms733768.aspx

For more information on how to configure a port with an SSL certificate, take a look at the following MSDN library article:

http://msdn.microsoft.com/en-us/library/ms733791.aspx


NETSTAT COMMAND

Netstat (network statistics) is a command-line tool that displays network connections (both incoming and outgoing), routing tables, and a number of network interface (network interface controller or software-defined network interface) and network protocol statistics. It is used for finding problems in the network and to determine the amount of traffic on the network as a performance measurement.

The specific entry we want to run from the command-line in a Web Client environment is as follows:

NETSTAT -anob

This will return a list of ports that are in use and the process and application using them. If you want to select a port of your own choosing when installing Web Client, you will want to verify that the post is available and it is allowed through the firewall as necessary.

Netstat


For more information on netstat, take a look at the following TechNet article:

http://technet.microsoft.com/en-us/library/ff961504(v=ws.10).aspx


The Web Client Diagnostic tool, which I talked about in Part 4 of this series collects these two pieces of information (among other command-line tools ran) as part of the data collection procedures performed when opening a Web Client support case.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dynamics GP 2013, Troubleshooting, Web Client | No comments

Friday, 26 July 2013

Troubleshooting the Microsoft Dynamics GP 2013 Web Client - Part 6

Posted on 08:49 by Unknown
Part 6 - Tools for Troubleshooting Web Client issues: Other Tools


In Part 5 we looked at Fiddler, a proxy web debugger application and how it is able to break down HTTP and HTTPS traffic between a client app and a Web Server. Today, I will look at 2 tools that go down right to the wire - literally!

Wireshark

Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education. Originally named Ethereal, in May 2006 the project was renamed Wireshark due to trademark issues.

Wireshark is cross-platform, using the GTK+ widget toolkit to implement its user interface, and using pcap to capture packets; it runs on various Unix-like operating systems including Linux, OS X, BSD, and Solaris, and on Microsoft Windows. There is also a terminal-based (non-GUI) version called TShark. Wireshark, and the other programs distributed with it such as TShark, are free software, released under the terms of the GNU General Public License.

Wireshark Network Analyzer

Wireshark is very similar to tcpdump, but has a graphical front-end, plus some integrated sorting and filtering options. Wireshark allows the user to put network interface controllers that support promiscuous mode into that mode, in order to see all traffic visible on that interface, not just traffic addressed to one of the interface's configured addresses and broadcast/multicast traffic. However, when capturing with a packet analyzer in promiscuous mode on a port on a network switch, not all of the traffic travelling through the switch will necessarily be sent to the port on which the capture is being done, so capturing in promiscuous mode will not necessarily be sufficient to see all traffic on the network. Port mirroring or various network taps extend capture to any point on the network.

So why is Wireshark used with the Web Client? Since it analyzes TCP/IP traffic, you could potentially use it to understand if the proper ports are being used by the application when communicating with the Web Server(s) or the Session Host(s), especially when traffic has to traverse intranet, DMZs, and extranet zones on your network. You could potentially determine if there are any translation issues between external DNS addresses and internal network addresses.

ClearSight Analyzer from Fluke Networks

This product is advertised as Wireshark on steroids as it supports the Wireshark decode engine. In addition, it's able to make sense of all TCP/IP traffic by implementing some powerful graphics showing how machines and devices interact with each other.

Network diagram
 
Conversation Chart



ClearSight also implements a powerful bounce chart for traffic on single or multi-segment networks. Now here's the bummer: it's not free! However, for a small fee you are able to obtain a fully featured product.

If you are more like me - a visual person - then ClearSight is certainly worth the price. If you are comfortable in your own skin looking at TCP/IP raw traffic, then Wireshark is the way to go. In any event, you have two powerful tools that can really breakdown your network traffic with ease, for you to analyze where things may be breaking down, preventing Web Client from functioning.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dynamics GP 2013, Troubleshooting, Web Client | No comments
Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • The Dynamics GP Blogster's best articles of 2012
    It's that time of the year again! Time to say goodbye to the outgoing year, 2012, and receive the new one, 2013, making all sort of reso...
  • What's new in Microsoft Dexterity 11.0
    The excitement around Microsoft Dynamics GP 2010 could not be any higher. Traffic on my site has doubled since I began releasing informatio...
  • Vote for your 2012 GPUG All Star
    The time has come again to vote for the next year's GPUG All Star awards. Surprisingly, I have been nominated to this award along with f...
  • How to add a "Cover Letter" page to a Microsoft Dynamics GP Word Template document
    I wrote an article almost a year ago showing a simple technique to add a  Terms and Conditions page to a Microsoft Dynamics GP Word Templat...
  • "Unable to access SnapIn config data Store" accessing Web Management Console
    For quite some time I had been running into this error when attempting to access the Microsoft Dynamics GP 2013 Web Management Console appl...
  • Running Windows 8.x Business Analyzer app on a laptop with SQL Reporting Services
    If you are a consultant, chances are you run your Microsoft Dynamics GP application demo environment on a laptop along with Microsoft SQL Se...
  • Adding more comment lines to POP Purchase Orders
    Just recently, I was asked by a customer to address an issue with their line item comments truncating at 4 lines. In essence, the customer w...
  • Extender Auto Open and Auto Close options not working in GP 2010
    Just recently, I came across an issue reported by a partner on Extender Auto Open and Auto Close options not working. Extender Auto Open a...
  • New Article on MSDynamicsWorld: Do's and Don'ts of Microsoft Dynamics GP Forums
    Many of you know me as an avid forum contributor - I can usually be found on the Microsoft Dynamics GP Partner Online Technical Community ...
  • Adding Customer Item User Defined fields to SOP Invoice
    Just recently I ran across a request to add the Customer Item user defined fields to the Sales Blank Invoice Form report in Report Writer. A...

Categories

  • Ad Campaigns
  • ADO
  • Adobe Acrobat
  • Analytical Accounting
  • Architecture
  • Around the Blogosphere
  • Article
  • Azure
  • Bank Reconciliation
  • Best of 2009
  • Best of Series
  • Best Practices
  • Bing Maps Enterprise
  • Books
  • Business Alerts
  • Business Analyzer
  • C#
  • Code
  • COM
  • Community
  • Compliance
  • Connect
  • Continuum
  • Convergence
  • Corporate Performance Management
  • CRM
  • Database Maintenance Utility
  • Decisions Conference
  • DEX.INI
  • DEXSQL
  • Dexterity
  • Discussions
  • Drill-Down Builder
  • Dynamics GP 10
  • Dynamics GP 11
  • Dynamics GP 12
  • Dynamics GP 2010
  • Dynamics GP 2010 R2
  • Dynamics GP 2013
  • eConnect
  • EFT
  • Electronic Banking
  • Encumbrance
  • Events
  • Extender
  • Field Services
  • Fixed Assets
  • Forecaster
  • From the Newsgroups
  • FRx
  • Functionality
  • General Ledger
  • GPUG
  • Home Page
  • Human Resources
  • Humor
  • IMHO
  • Installation
  • Integration
  • Integration Manager
  • Internet Explorer
  • Inventory
  • Kinnect
  • Maintenance
  • Management Reporter
  • Manufacturing
  • Menus for Visual Studio Tools
  • Microsoft Office
  • Modifier
  • Multicurrency Management
  • Multitenancy
  • MVP Summit
  • MVPs
  • Named Printers
  • Navigation Pane
  • Notes
  • ODBC
  • Office Web Components
  • OLE Container
  • Online Services
  • OpenXML
  • Partner Connections
  • Payables Management
  • Payroll
  • Performance
  • PO Commitments
  • Printer Compatibility
  • Product Feedback
  • Project Accounting
  • Purchasing
  • Receivables Management
  • RemoteApp
  • Report Writer
  • Reporting
  • Roadmap
  • SafePay
  • Sales Order Processing
  • Season Greetings
  • Security
  • Service Call Management
  • SharePoint
  • SmartList and SmartList Builder
  • SQL Reporting Services
  • SQL Scripting
  • SQL Server
  • Support Debugging Tool
  • Tax Updates
  • Technical Conference
  • The Partner Event
  • The Technology Corner
  • Training
  • Translation
  • Troubleshooting
  • Upgrades
  • VAT
  • VB.NET
  • VBA
  • VBScript
  • Visual Studio 2008
  • Visual Studio Tools
  • Web Client
  • Web Services
  • Windows 7
  • Windows 8
  • Word Templates
  • XBox
  • XBRL

Blog Archive

  • ▼  2013 (68)
    • ▼  December (2)
      • Visual Studio Tools for Microsoft Dynamics GP 2013...
      • Web Client Wednesday: Microsoft Dynamics GP on Azure
    • ►  November (8)
    • ►  October (5)
    • ►  September (5)
    • ►  August (3)
    • ►  July (8)
    • ►  June (5)
    • ►  May (5)
    • ►  April (2)
    • ►  March (11)
    • ►  February (6)
    • ►  January (8)
  • ►  2012 (101)
    • ►  December (8)
    • ►  November (6)
    • ►  October (15)
    • ►  September (16)
    • ►  August (9)
    • ►  July (4)
    • ►  June (4)
    • ►  May (6)
    • ►  April (4)
    • ►  March (11)
    • ►  February (4)
    • ►  January (14)
  • ►  2011 (158)
    • ►  December (7)
    • ►  November (17)
    • ►  October (7)
    • ►  September (8)
    • ►  August (8)
    • ►  July (12)
    • ►  June (12)
    • ►  May (13)
    • ►  April (23)
    • ►  March (21)
    • ►  February (10)
    • ►  January (20)
  • ►  2010 (168)
    • ►  December (15)
    • ►  November (11)
    • ►  October (12)
    • ►  September (24)
    • ►  August (13)
    • ►  July (12)
    • ►  June (8)
    • ►  May (17)
    • ►  April (14)
    • ►  March (9)
    • ►  February (16)
    • ►  January (17)
  • ►  2009 (5)
    • ►  December (5)
Powered by Blogger.

About Me

Unknown
View my complete profile