How to consume MS Great Plains web services with PHP?

somersetit used Ask the Experts™
I need to interact with Microsoft Great Plains via web services with PHP. I wanted to know if anyone has done this before and if you can point to some sample code or resources.
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

I have not done it with PHP, but I have tried to do it using Jitterbit, a Java-based integration platform.  Ultimately, we were able to create a partial customer record in GP (no address), but were unable to get the entire record populated properly in the time we had available.  During that time period, I could have written the integration 2 or 3 times over using Visual Studio.

My advice would be to not bother integrating with GP Web Services unless you are using Visual Studio .NET.  It's probably possible, but the amount of time you will spend will likely far exceed what you expect and what would be reasonable for such a project.

There is basically no documentation or reference material that will help you navigate the integration process using a tool other than Visual Studio.  The Visual Studio assemblies and libraries provided with GP Web Services make using it a complete breeze, but they also completely obscure a ton of complexities that are happening behind the scenes that you will have to fight through in order to use a different tool.

One of the biggest challenges we had was interpreting the error messages returned by web services when using Jitterbit.  The integration would just fail with a generic or misleading error, providing no detail on what objects or values were causing the problem.  And the structure of the Web Services methods is relatively abstracted, so you often have to assemble many different methods (many undocumented) just to make a single simple call, with many of the properties handled automatically by .NET that you will have to reverse engineer yourself.  And then there is the Windows-based authentication and security, which poses some challenges.

If you have to integrate from an external PHP site, I would recommend going low tech, such as generating CSV files that are then transferred to the GP server, and then using eConnect (.NET) or Integration Manager to import into GP.  If you need to send data to the PHP site, then you can use eConnect Requester or SQL queries to get your data out of GP, then write an app to export to CSV, and go in the reverse direction.

I have only heard of a few people that have actually used GP web services, and I have yet to hear of or speak to a single person that has done so without using Visual Studio.  But let me know what you end up doing.

If you want to share any more info about what you are trying to do with your integration (what data, going in what direction, etc.), I'd be happy to share my thoughts if they would be of help.


Steve Endow
Dynamics GP Certified Trainer
Dynamics GP Certified Professional


Sorry, forgot to assign points.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial