Friday, July 9, 2010

eConnect Integration Service for Microsoft Dynamics GP 2010

One of the biggest improvements in eConnect 2010 is the addition of the new eConnect Integration Service. The eConnect installer now creates a new Windows Service application named eConnect for Microsoft Dynamics GP 2010 integration Service. The eConnect Integration Service is a Windows Communication Foundation (WCF) service that replaces the (very unstable) eConnect COM+ object available in previous versions of eConnect.

The eConnect Integration Service supports the operations of the eConnect .NET assemblies, the BizTalk adapter, and MSMQ interfaces. In addition, you can use the service directly from an application that adds a service reference to the eConnect Integration Service.




If you add a service reference, you do not need to add the Microsoft.Dynamics.GP.eConnect assembly and namespace to your development project.



To add the eConnect Integration Service to an application, you must first add a service reference to the Visual Studio project for that application.

To add a service reference to a Visual Studio project, the properties for the project must specify the target framework as .NET Framework 3.5. The following is a typical URL for the eConnect Integration service.

net.pipe://localhost/Microsoft/Dynamics/GP/eConnect/


The interface provided by the service reference includes the same methods you find in the Microsoft.Dynamics.GP.eConnect assembly and namespace. Before you use a service reference to access eConnect Integration Service, you should become familiar with WCF development concepts.

Until next post!

MG.-
Mariano Gomez, MIS, MCP, PMP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/

26 comments:

Steve Endow said...

Mariano, thanks for the great info.

What do you mean when you say that eConnect COM+ is "very unstable"?

I've never had a single issue with the eConnect COM+ components in the 6 years I've been working with eConnect.

I have multiple eConnect 9 integrations at one client that have imported 8 million transactions in the last 6 months, and not a single problem with eConnect, so I'm curious about the instability that you have experienced.

Thanks,

Steve

Mariano Gomez said...

Steve,

Maybe I should have clarified to say in previous releases of eConnect (v8, v9). I am working on CRM to GP integration with eConnect and have not experienced any issues, but then again I am using the assemblies, not the COM+ components.

MG.-

Anonymous said...

Hi Mariano,

Thanks for the great info.

If these services build by WCF then we can use these services in other development tools like that java,php..

Regards
Jeganeedhi

Anonymous said...

We have had many issues with COM+ and eConnect with v8,v9,and v10. One problem is related to error handling when enlisted in COM+ transaction and you need to rollback. This occassionaly hangs COM+ completely and only a server reboot fixes problem.

Winson said...

Hi Mariano,

Thanks for the info.

But I have a queston for reference the eConnect WCF Service in a domain environment.

I had a dev server which installed GP 2010, eConnect 2010 and Visual Stuio 2008. I can add a service reference for eConnect WCF service from the dev server without problem. But when I add the service reference the VS at my desktop, it failed. Even I change the endpoint addresss to net.pipe://servername/Microsoft/Dynamics/GP/eConnect/, it still cannot find the service.

Do you have any idea? Thanks,

Mariano Gomez said...

Winson,

Sounds like a permissions issue. Is you desktop on a different domain or running on a workgroup?

MG.-

Winson said...

Hi Mariano,

Thanks for your answer.

My desktop is at the same domain with the dev server.

Do you think what should the endpoint address be if I add service reference from my desktop's visual studio project?

Should be like net.pipe://servername/Microsoft/Dynamics/GP/eConnect?

You can verify this easily by creating a new VS project from your local desktop and add service reference to the eConnect WCF service which is on another server.

Thanks for any help here.

Mariano Gomez said...

Winson,

More and more, it's sounding to me that the service is not running on your local machine. For some reason the Integration Service has been configured with a Manual startup from factory. So, if you have restarted your computer lately or have applied any of the new Windows Update updates and had to reboot your computer, then chances are the service is down. Check to make sure the service is actually running on your desktop.

MG.-

Winson said...

Hi Mariano:

Thanks again for your answer.

Still have questions. :)

Let's say we have a GP server which installed the GP 2010 and eConnect 2010. Then in my own machine, I have a .Net website whose functinality is importing GL, AR, AP transactions into GP by calling thr eConnect WCF service. What I need to do should be adding eConnect 2010 WCF service which reside on the GP Server. It does not make sense that we need to install the eConnect WCF service in my own machine.

We did numerous integration project by wrapping the eConnect 9.0 or 10.0 in a web service and adding the web reference into our .Net integration project without issue. So the new generation of WCF eConnect service should be the same way as before (the only difference shuold be add service reference in 2010).

Furthermore, in a real world deployment scenario, we could deploy the integraiton website to a IIS server which is different with the GP server. Then the integraiton website should be working by changing the WCF endpoint ONLY. But seems it is not the case of the new eConnect 2010 can do.

Any idea?

Thanks again!

vegas said...

I cannot get the service to stay running. I get a message that some services run only when there are things to do. Is there anything I can do about that

Anonymous said...

I can't get the service to stay running either. Any solution to that or is that ok?

F said...

Hi Mariano, please could you help me?
I got big problems with eConnect & GP 2010.
I have a .net app that uses eConnect10 (Microsoft.Dynamics.GP.eConnect assembly) to imports RM Cash Receipts to GP10, that works great, but then i updgrade to GP2010 & eConnect 2010, the integrations runs with no errors, but if you go to GP in RMCashWork window you only see the number of the document, no customer, no ammount, no batch, no currency, if i see RM10201 table all fields are inserted correctly, even if i post the batch 90% of the transactions that are invisible in RMCashWork post ok and goes to open transaction and 10% has interrupted posting errors.

Please do you have any idea why is happening this?
Thanks a lot

Mariano Gomez said...

F,
My only recommendation is to use Database Maintenance utility to rebuild all your stored procedures (including table auto procedures). This does not sound like an eConnect issue.

MG.-

Scott said...

I am using the GP2010 eConnect Integration Service and we seem to be getting intermittent WCF errors:

System.ServiceModel.CommunicationException: There was an error writing to the pipe: Unrecognized error 232 (0xe8). --->

It will work the first time we use it and then if we wait for a while and try to send a new message (we are using GetNextSopNumber) it will fail on the first call.

Is there something I am missing in the setup? The samples all seem to be very basic. If it makes any difference we are calling this from a web application using the .NET libraries that is running on the same server as the eConnect service.

Mariano Gomez said...
This comment has been removed by the author.
Mariano Gomez said...

Scott,
I have seen this error shown up with very large messages, thereby exceeding the maximum allowed size defined by the Binding.MaxReceivedMessageSize property (http://msdn.microsoft.com/en-us/library/system.servicemodel.basichttpbinding.maxreceivedmessagesize.aspx). You can enable WCF tracing - http://msdn.microsoft.com/en-us/library/ms733025.aspx - to see if you capture the exact location where your code is failing.

Scott said...

The message size should not be an issue as it is returning one value, the next SOP number. It looks like it is related to the receiveTimeout setting. If I change that to 2 minutes I get errors the first time a message is sent after a 2 minute period of inactivity. Then if I bump it up to 10 minutes, I don't see the errros until more than 10 minutes of inactivity.

This suggests to me that there is actually a bug in the supplied eConnect dll's as it is not properly dealing with the WCF channels.

Mariano Gomez said...

Scott,
I am only outlining things I have seen and not necessarily indicating that they apply to you directly. Only you know what you dealing with, but in my mind it could have been a note field content or something of that magnitude.

You can change the receiveTimeout setting to 0, for no timeout and see how that behaves.

MG.-

Scott said...

Just for future reference in case anyone else has the same problem. There is a knowledgebase article:

Article ID: 2539263

It suggests to change the timeout to "infinite". Technically, it is not an ideal solution but it worked in our case.

Sanjay Kumar Rajarao said...

I not seen any comment on maintenance required with COM+. We have had to monitor and maintain the MSDTC logs. e Connect work just fine importing millions or records, the MSDTC log do get filled up and we had to issue to msdtc -resetlog command to clear it.

Mariano Gomez said...

@Sanjay:

You know, I have never thought about the MSDTC logs. However, since most eConnect integrations are moving away from legacy (COM+) to the Windows Service and .NET architecture, this is becoming less and less relevant.

MG.-
Mariano Gomez, MVP

Mike Lupro said...

Where can I find the setting in an eConnect integration where I typed in the wrong server name. The starting value was localhost and I think I shouldn't have changed that. But I cannot find the menu path to the setting.
Thanks,
Mike

Mike Lupro said...

I typed in an incorrect server name (default was localhost). I cannot find a menu-path or property setting that allows me to change back to localhost. How can I make that change?
Thank you,
Mike Lupro

Mariano Gomez said...

@Mike:
HKLM>SOFTWARE>Microsoft>Business Solutions>eConnect 11.0>1033>SETUP.

MG.-
Mariano Gomez, MVP

HERMANO said...

can i use econnect with dynamics AX?

Mariano Gomez said...

Hermano,

eConnect is designed to specifically get data into and out of Microsoft Dynamics GP. I am sure AX has its own integration tools.

MG.-
Mariano Gomez