Now that we have succeeded in creating, updating and deleting calendar items and mastered Exchange Impersonation, it’s time to turn our attention to having Exchange notify us about what it is doing. Part 4 of this series is going to provide a detailed code walk-through of some code that leverages the Subscription API.
The example includes two code examples – one for Java programmers and one for OpenEdge programmers. The OpenEdge version writes updates through the OpenClient via the OpenEdge AppServer to an OpenEdge database.
As you may have guessed from some of my recent posts, I am working on an API that allows an OpenEdge developer to interact with a Microsoft Exchange Server. From the API you will be able to do things like create, update, and delete e-mails, appointments, tasks, and contacts. You will also be able to get attendee availability, and some of the clever stuff that you can do today in Outlook from an OpenEdge application.
The intention is that this API will be accessible from any ABL session (whether character, GUI, GUI for .NET, AppServer or WebSpeed). Obviously, this means that you will need to be able to program against the API and that’s where this survey comes in.
The responses to this survey that was conducted between May 7th, 2010, and May 14th, 2010, are now posted.
It’s been a really busy week since I posted my first post on Exchange Web Services. I have learned a lot in that short period of time that I want to share with you. Whether you are an OpenEdge, Java or .NET developer, I think this post is going to have some information for all of you.
In my first post, I told you about the background story – I need to enable an OpenEdge CRM application to create, modify and delete calendar and task items in Microsoft Exchange. I also need Exchange to let me know any time a calendar or task item is changed so that I can update the OpenEdge database accordingly. Simple use cases.
When I left off last week, my next step was to get Exchange subscriptions working, and, boy, what a trip that has been.
A couple of months back, a gentleman who has now become a friend and business partner, came to me and asked me if there was any way to get at all the calendar items in his sales organization’s calendars with the intention of integrating it with his Progress OpenEdge CRM system. Jim is using Exchange 2007 for his e-mail and calendaring solutions.
I was aware that Microsoft had released a new API for Exchange in Exchange 2007 called Exchange Web Services (EWS), and so I said that I needed to do a little research on the API, but I was pretty sure that it was possible. Sure enough, MSDN has some documentation of the API and Microsoft is touting it as the replacement for all APIs that communicate with Exchange. Web Services – how hard can it be?
In one of the more recent versions of OpenClient, the API that the OpenClient uses is documented so that it is now possible to dynamically construct the proxy calls at run-time. The overarching benefit in this lies in the ability to now define the temp-table definitions on the fly. The Java/.NET code can now define the temp-table dynamically at run-time so that if a change is made to the definition, the client can deal with the change with no impact on the OpenClient source code.
In 1999 Progress held a user conference in Boston where they showed the any-any-any model. Progress was going to become open. You could connect any client on any platform to any database using a Progress AppServer to handle your business logic. This was a really good idea. The preceding 10 years had taught me that Progress was an outstanding platform for writing the business logic that controlled your application and ensured your data integrity. I was sold.