Convergence Question #1 – Do You Have Any Promos?

It’s almost time for Convergence 2015 and we’re ready with the
most commonly asked question eOne gets at the expo:

DO YOU HAVE ANY PROMOS?

This year, the answer is – yes, of course we do – for dedicated
Convergence attendees. 

Here are the promos so you can be ready (and know – they expire 4/30/15!): 

SmartList Builder Self-Paced Training 
Simply
tweet a picture of our roaming Bob the

Read More:
Convergence Question #1 – Do You Have Any Promos?

March 12, 2015 · Abbey · No Comments
Tags: , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 105

You receive "You are not allowed to use Microsoft Dynamics GP. Please sign out and sign in with an authorized account" when accessing Web…

One of the cool things about Microsoft Dynamics GP 2015 is the new Web Client Identity Management feature. Having the ability to access Microsoft Dynamics GP with your Windows Directory or Windows Azure credentials without ever needing a SQL login account is just beautiful.

The Theory – Part 1: GP Utilities

The theory is fairly simple: you have a Microsoft Dynamics GP user account, which in turn is tied to a Windows Active Directory account or Windows Azure Active Directory account. User accounts are stored in the User Master table (dbo.SY01400) in the system database, which has been beefed up with a new column called Active Directory Object GUID (ADObjectGuid) to store the actual GUID of the directory or organizational account mapped to the GP user.

User Setup window

However, because Microsoft Dynamics GP continues to be dependent on SQL authentication for all intends and purposes, it continues to need a SQL login to be able to access the Dynamics GP database objects. This is where the new Web Client SQL Login user comes into play.

If you have done a new install of Microsoft Dynamics GP 2015, you would have noticed a new window called Manage Web Client SQL Server Login during the GP Utilities process. This window prompts for SQL credentials that will be used to access the SQL server database objects from Web Client.

Manage Web Client SQL Server Login window (GP Utilities)

If you are doing an upgrade, you will need to direct your attention to the drop-down list in the Additional Tasks window to find it — more on this later.

Additional Tasks window (GP Utilities)

When you enter the credentials in the Manage Web Client SQL Server Login window, the actual SQL Server security principal is created with the same password encryption at the database level. To understand more about this, read Why does Microsoft Dynamics GP encrypt passwords by David Musgrave over at Developing for Dynamics GP.

The Theory – Part 2: Web Client

When you are installing the Web Client itself, you are once again prompted to enter the Web Client SQL Server Login credentials. At this stage you MUST enter the same account information entered when you ran the GP Utilities.

This information is stored in the TenantConfiguration.xml file (in a single-machine instance) under the SessionCentral folder. The same information is used by the Service Based Architecture service (GPService service) to gain access to database resources, hence there’s also a TenantConfiguration.xml file (again, in a single-machine instance) under the GPService folder. These two folders can be located under your Program FilesMicrosoft DynamicsGP Web Components root folder.

Now that your AD or Organizational account is tied to your GP user account, when you launch the web client and your AD credentials are validated against IIS, a security token is created and passed on to Session Central service, which in turn spins up a runtime process passing on your AD account credentials in the GP Login window. The log in process itself will use the Web Client SQL Server login to access the system database and in particular the User Master table to validate the AD account GUID against the one stored in the table. If all matches, you are allowed access and from there on you go about your business.

The Problem

This brings us to the topic of this post…

As it turns out, during that handshake between Session Central and the Runtime service to pass off the AD credentials, I received the following error:

Further review of the Dynamics application and services log in Event Viewer, shows the following error:

System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed.
   at System.Security.Cryptography.CapiSymmetricAlgorithm.DepadBlock(Byte[] block, Int32 offset, Int32 count)
   at System.Security.Cryptography.CapiSymmetricAlgorithm.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
   at System.Security.Cryptography.CryptoStream.FlushFinalBlock()
   at System.Security.Cryptography.CryptoStream.Dispose(Boolean disposing)
   at System.IO.Stream.Close()
   at Microsoft.Dynamics.GP.Web.Foundation.AesCryptographer.Decrypt(String value)
   at Microsoft.Dynamics.GP.Web.Services.Session.TenantServiceXmlHandler.ResolveTenantPasswords(Tenant tenant)
   at Microsoft.Dynamics.GP.Web.Services.Session.TenantServiceXmlHandler.GetTenantDetails(String identity, String tenantName)
   at Microsoft.Dynamics.GP.Web.Services.Session.Service.SessionCentralService.CreateSession(String tenantName, UserContext userContext)

Typically, any Crypto exception is directly related to credentials. So I traced back my steps after the upgrade and realized I had created the Web Client SQL server login account manually — after all, I had not seen the option in the GP Utilities drop down to do so. Of course, this would mean that the password was un-encrypted on SQL server and wouldn’t match the password stored in the TenantConfiguration.xml file. In retrospect, had I even used GP Utilities to setup the account and entered a different password from the one I entered during the Web Client install, I would have received the same error.

The Solution

Knowing that in essence what I had was a password mismatch between the value stored in TenantConfiguration.xml and the password at the SQL Server level, I decided to make things simple and removed the database user (sp_dropuser) corresponding to the security principal and the actual security principal (sp_droplogin) then re-launched GP Utilities and created the account once more, this time making sure the password matched what I had entered when installing the Web Client.

Once I launched the Web Client and entered my Windows credentials information, I was able to experience the beauty of single sign-on all the way to the company database I had selected as my default company.

Also, it is worthwhile to mention that Service Based Architecture was failing validation, but I will address this in my next article.

Acknowledgements

I want to thank Chris Rudolph with the Microsoft Dynamics GP Software Engineering team for his valuable insight into working through this issue. Chris also helped me with understanding some deep architecture stuff that I will be presenting in a future related article to this one.

Until next post!

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

Read More:
You receive "You are not allowed to use Microsoft Dynamics GP. Please sign out and sign in with an authorized account" when accessing Web…

March 12, 2015 · Mariano Gomez · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 150

#CONV15 – Convergence 2015 Atlanta – The Countdown

David Meego - Click for blog homepageConvergence2015

The final countdown to Convergence 2015 in Atlanta is well and truly on. I know this because tonight I start my journey to Atlanta, Georgia, USA.

I am flying to Sydney and then early tomorrow I have a direct flight from Sydney to Atlanta.

I plan to post blogs while at the conference after each day, but experience tells me that I might find that difficult with the very full days.

Anyhow, if you are still looking for reasons to come (other than seeing Mariano and me), check out the video below:

Convergence 2015 (direct link)

 

Looking forward to see everyone.

David

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

Filed under: Conference, Dynamics, GP, Microsoft, News Tagged: Conference, Convergence 2015, News

See more here:
#CONV15 – Convergence 2015 Atlanta – The Countdown

March 12, 2015 · WinthropDC · No Comments
Tags: , , , , , , ,  · Posted in: Blogs I Follow Total Views: 107

Using the new Dynamics GP 2015 REST Services in SBA (Service Based Architecture)

If you have been following my blog, you probably know how excited I am about this feature. Unfortunately, the documentation can be a little hard to find. The important thing to remember is that as this is a part of the web client – that is where you will find the relevant documentation. 

Paul Haag at InterDyn has just written a great post summarizing the steps he followed.  Using the Dynamics GP Service Based Architecture (Paul Haag) 

Additionally as you are stuck(and its okay if you are, this is Version 1 of the SBA) – you might find the following notes and resources helpful.

  • There are three logs you can look to for information on requests that fail, the GP Service log, Dexterity Service Log and the Request Log.  All logs are located in ProgramDataMicrosoft DynamicsGPSvcLogs. The Dexterity Service log will tell you if the request made it to the Dexterity instance and is in the Inst_DefaultInstanceDexterityService directory. All requests tie together with a correlation ID. Read more at Debugging in the Dynamics GP 2015 Service Based Architecture
  • You need to place the new Application.PRODUCTNAME.dll in your GP runtime folder.  After restarting your services, a good way to see if your endpoint is available is by using discovery (url below).  That will show all the dictionaries that have been DAG’ed and have available service endpoints. https://>/GPService/Tenants(DefaultTenant)/Companies(Company Name)/Help/

Read more at Service Based Architecture and Custom Procedures  (Thanks Rob Bernhardt)

  • When creating service procedures in the service based architecture one of the key steps is to define service metadata including setting the Service Enabled switch to TRUE. We also add a Service Procedure Metadata property which contains the relevant information for the GP Service to wire the procedure calls up to their URI endpoints. In addition to this, the procedure’s class definition will now contain a third invoke method which the service uses for parsing the request and building up the response. Read more at – DAG (Dictionary Assembly Generator) – What’s New in GP 2015

Read More:
Using the new Dynamics GP 2015 REST Services in SBA (Service Based Architecture)

March 11, 2015 · Jivtesh Singh · No Comments
Tags: , , , , , , ,  · Posted in: Blogs I Follow Total Views: 103

Workflow Engine in GP 2013 R2 and GP 2015

I’ve seen a lot of activity recently on the Dynamics GP Forum, indicating confusion over what version of SharePoint works with the new GP Workflow 1.0 and 2.0.  Quick answer – none of them.  GP 2013 R2 and GP 2015 both have a native workflow engine built in, eliminating the need for SharePoint altogether.

 
Additionally, Reviewers and Approvers need not be GP users to Review and Approve workflow steps if Email Actions  is enabled.  Approval can be initiated from within email notifications generated by the workflow.

Read More:
Workflow Engine in GP 2013 R2 and GP 2015

March 11, 2015 · Frank Hamelly MCP-GP MCT MVP · No Comments
Tags: , , , , , , ,  · Posted in: Blogs I Follow Total Views: 121

Silverlight "ArgumentException: An item with the same key has already been added" when attempting to print a report

It’s been about 3 months now since working with Microsoft Dynamics GP 2015 in our production environment. To recap, at Intelligent Partnerships we run all our information technology infrastructure on Microsoft Azure. A big reason for this, of course, is the high degree of mobility required by our consulting staff and the ability to access demo environments and be able to enter timesheets and expenses from anywhere in the world they happen to be. In addition, we need to be able to run our business and access our financials and analytics without being constrained to a particular geographical location. As such we rely heavily on Dynamics GP’s Web Client and Business Analyzer to achieve these goals.

One of the issues we started noticing with Web Client recently is, when you attempt to print a report – Standard or Template – but cancel out the printing on the Report Destination window, then attempt to print the report once more, we would receive the following Silverlight error message:

Severity: Critical Summary: A server side exception of type “ArgumentException” has occurred. Details: ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at Microsoft.Dynamics.GP.Web.Services.Runtime.Dexterity.Hierarchy`1.Add(T ancestor, T item) at Microsoft.Dynamics.GP.Web.Services.Runtime.Dexterity.Implementation.WCDexRuntimeStateResourceManager.Register(DexUri parentId, IWCDexWindow window) at Microsoft.Dynamics.GP.Web.Services.Runtime.Dexterity.Implementation.Adapters.WCDexFormOpenStateChangedNotificationAdapter.Notifications_FormOpenStateChanged(Object sender, DexUriEventArgs`1 e) at System.EventHandler`1.Invoke(Object sender, TEventArgs e) at Microsoft.Dexterity.Runtime.Interop.DexNotification.OnFormOpenStateChanged(DexUri uri, DexFormOpenState value) at Microsoft.Dexterity.Runtime.Interop.Win32.NativeMethods.MsaCommandExec(Int16 tag) at Microsoft.Dexterity.Runtime.Interop.Win32.NativeMethods.<>c__DisplayClass26.b__25() at Microsoft.Dexterity.Runtime.Interop.Win32.NativeMethods.ExecuteMsaAction(Func`1 interopAction, String entryPoint) at Microsoft.Dexterity.Runtime.Interop.Win32.NativeMethods.MacroSystemCommandExecute(Int16 tag) at Microsoft.Dexterity.Runtime.Interop.DexMacroSystem.CommandExecute(Int16 tag) at Microsoft.Dynamics.GP.Web.Services.Runtime.Dexterity.Implementation.WCDexMessageProcessor.ProcessCommandExecuteInstanceResourceMessage(IWCDexMessage msg) at Microsoft.Dynamics.GP.Web.Services.Runtime.Dexterity.Implementation.WCDexMessageProcessor.Process(IWCDexMessage message) at Microsoft.Dynamics.GP.Web.Services.Runtime.Dexterity.DexRuntimeStateManager.SendMessage(IWCDexMessage message) at Microsoft.Dynamics.GP.Web.Services.Runtime.Dexterity.DexRuntimeStateManager.MainEventLoop()

This particular error was received attempting to print a sales order processing quote, but we have been able to reproduce from other windows. While I don’t claim to understand all these exceptions, this particular one seems to refer to an issue caused by a “key” being added twice to the same “Generic.Dictionary” collection. Since the action causing the error seems to be a second attempt at printing a report – the same report it seems – somewhere along the lines it would appear that some value isn’t being cleared out from the collection of reports being printed which would cause a duplicate key. Again, pure speculation.

Nonetheless, in speaking to the Dynamics GP development team, it seems to be this issue has been written up and may be solved in the upcoming hotfix release. This issue can be reproduced in Microsoft Dynamics GP 2015 build 14.00.0619 (January Hotfix).

Until next post!

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

Read the article:
Silverlight "ArgumentException: An item with the same key has already been added" when attempting to print a report

March 11, 2015 · Mariano Gomez · No Comments
Tags: , , , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 121

Chance to Fix a Bad Name

David Musgrave has just announced that he has completed the exclusive agreement with Microsoft to obtain the Support Debugging Tool source code.

He’s now looking at community feedback to fix the horrible name which always took a few tries to explain to people. “Why do I need a debugging tool ?” – most people I recommended the tool to asked me.

Go Vote for a new name that makes sense here – Where is the Support Debugging Tool for Microsoft Dynamics GP 2015?

PS – It was a good thing the tool was named the support debugging tool. With a slightly better name, and consequently even more popularity David would have had much more difficulty getting the source code !

More here:
Chance to Fix a Bad Name

March 11, 2015 · Jivtesh Singh · No Comments
Tags: , , , , , , , ,  · Posted in: Blogs I Follow Total Views: 108