Progress Software Corporation has been running a program to test the OpenEdge GUI for .NET bridge with controls that have no user-interface. My company, Intangere, is very interested in this program because we are looking at releasing a control that would make it possible for OpenEdge developers to communicate directly with a Microsoft Exchange Server and receive mailbox updates for an OpenEdge client.
Intangere thus signed up for the program and created a control that mimics the behavior of a real Exchange Web Services control. This test has been surprisingly successful, and this article provides some information about the test and the code and a document that describes its use.
In part 2 of this series, we are going to spend some time looking at the CalendarItem API, how it works and what it takes to create, get and delete an appointment. Before we start, you should make sure you have your environment set up per the explanation in part 1. If you have done that, you can download the example code for both the Java portion and the OpenEdge portion so you can follow along as we walk through this code together.
Part 2 of this series of articles is dedicated to giving you an overview of the process of connecting to Exchange and doing some basic Calendar item work. Through the sample code, you will learn how to:
– Connect to the Exchange Web Service from Java;
– Create calendar items on the Exchange Server;
– Get calendar items from the Exchange Server;
– Delete calendar items from the Exchange Server; and
– Connect to the Java service from OpenEdge to perform the same operations.
The Java functionality will be exposed as a Web Service so that other platforms can also leverage, which is how we will get at it from OpenEdge. The OpenEdge code leverages the new GUI for .NET and object-oriented extensions, so you may find the example interesting if you have not done this before. [...]
A few weeks ago I wrote about my experiences starting out with the Microsoft Exchange Web Services API and on using the subscription API. In the second article, I said I would write a code walk through that shows how to do the stuff. I had thought of doing a complete walk through like the Dynamic OpenClient code that I did back in November last year, but I wasn’t as busy back then as I am now, and I had the time to actually write up the example properly.
This is part 1 of a multi-part series that will cover the process of connecting to Microsoft Exchange Web Services, submitting requests to Exchange, receiving notifications from Exchange, creating appointments, tasks, and e-mail, and using Exchange Impersonation. There will also be OpenEdge examples interspersed within it. Each part in the series (except this one) will have a downloadable zip file with the code in it that actually runs (at least in my environment) [...]
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 a previous post, I said I would post an example that demonstrates the use of the OpenEdge Dynamic OpenClient. Well here is the Java version of it. This post is an extensive discussion of the example and how it is structured. Enjoy.
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.