We work with libraries, many of whom are (1) on a low budget and (2) using Tableau for analytics. Unfortunately, Tableau's support for OpenEdge ODBC stops at v11.1.1, and we are on 11.7. They don't support old-fashioned REST, but the do support ODATA.
Unfortunately, the DataDirect driver which supplies this to OE users is a little pricey for many of our clients; even the larger ones balk. (Instead, they are doing dumps of our data and loading them into a separate DB for analysis.) There is also the fact that one of our competitors is completely FOSS, and written in PHP -- meaning that they can supply ODATA access for free.
Has anyone out there developed an alternative method for accessing OpenEdge via ODATA? Something using nodeJS or some other front-end library? I'd be much obliged for any pointers or assistance you might provide.
I'm not really sure about what you are asking about (never used/implemented ODATA), but we have used JDBC OpenEdge driver (free) from PHP, using a PHP-JAVA bridge, to be able to implement DAO following PHP "standard", for the same "budget" reason.
I guess you can do something similar using OpenEdge JDBC driver: implement an ODATA provider that uses JDBC driver to access DB.
I'm really confused by the "ODBC support" statement..
>> Unfortunately, Tableau's support for OpenEdge ODBC stops at v11.1.1
That is too bad. The ODBC interface to Progress is intended for reporting purposes, just like the kind of thing you are describing. Even if ODBC was working for you, it can be a bit tricky to pull large amounts of data out of Progress. While the Progress OpenEdge database has improved, it was not originally designed to be a SQL-served engine but rather it is an ISAM database that is intended to suit the requirements of ABL programming.
Here is a link to the Tableau KB article saying that OpenEdge ODBC is unsupported:
I would guess that if you talked to a Progress sales-rep they would try to sell you "Pro2" for your reporting purposes. That would allow your OE data to be replicated to a another database that is better suited to high-volume, analytical reporting, eg SQL Server. See www.progress.com/.../openedge-pro2. This Pro2 seems to be fairly popular these days.
Sorry I was confusing.
Tableau talks to various DBs via ODBC. But it only works with specific drivers of specific products. (Presumably, this is because these are the ones that Tableau has tested against. Just like Progress only supports specific versions of operating systems, and doesn't support the newer ones till it has tested them.) The latest version of an OE ODBC driver that is supported by Tableau is 11.1.1. There is no word as to if/when a later version will be supported.
I have considered something like what you suggest: write a PHP or Java REST client to consume data from OpenEdge, and create our own ODATA front end using freely available libraries. I doubt such a project would be trivial, though -- and I'm afraid we don't have the resources to attempt it right now.
I thought of Pro2 -- but that's even more costly than the more direct solution; the Hybrid Data Pipleline from DataDirect:
The best thing for this point is to go directly to the page of the opendata
You will find the different alternatives, both Progress tools (public and cost) and other options.