We all know that the new IFS Cloud brings a new API based on the modern OData protocol. We know that OData can be a big challenge when companies migrate from previous IFS versions to this new version.
In the previous blog, we listed some barriers that might accompany you in the migration to IFS Cloud’s new API.
We begin a whole series of blogs to spotlight OData with this article.
But because this is the first one, I think it is a good idea to start from the very beginning for those who just started their adventure with OData. This is mainly for ERP owners who might concentrate on business processes more than technology. We’ve talked to Albin Lundberg, Solution Manager at Novacura and asked a few questions about OData basics.
Could you explain what OData is?
OData (Open Data Protocol) is a standardized protocol for exposing your data using RESTful APIs. REST being the langue of the web means that any application with REST capabilities can easily consume OData resources. As a REST connector, it is state-less, which means that when you have the next request to the system using REST API, you can’t assume that the system remembers your previous requests. You should always send a message with a whole context. Therefore – if you do several operations linked together (order apartment, flight, car). Then you interrupt at some stage and can’t assume that the system will automatically roll back all previous operations. It will not remember your previous calls and requests. We will talk more about this in our upcoming articles.
Would you say there are not many specialists in IFS OData API?
I’m sure there are OData specialists in IFS. It’s just that consultants or developers rely on code libraries and tools for generating OData APIs. The developer typically writes the query in another language Like C# using LINK query syntax to define the CRUD operations that then translate to OData that can be transported via HTTP. You can write OData queries manually, but it’s cumbersome. To do this efficiently, you need some facilitator, like Novacura Flow!
In the case of IFS, every projection has its own specification or contract, if you will. These specifications are then used to generate the Client code for the interface, REST calls, payload formats, responses, etc.
OData is just a technical protocol, the way we technically connect to the system. And in fact, there is a lot of specialists in that area, but the new IFS API based on OData is an additional business layer. By analogy, OData is a transportation layer like GSM Telephony vs. previous fixed-line telephony. So, you can establish a connection between 2 points using GSM equipment. But the other thing that also changed is also a communication language – you don’t use the same words (functions/methods) – you need to learn the new language; you must know how new projections and endpoints replaced old procedures and views. There are not many experts right now who know this whole new language.
How complicated is this new language?
There are 5800 projections in the “main” (used by Aurena) cluster.
What are new definitions that didn’t exist with the old API?
A projection is a grouping of API methods for performing CRUD operations and executing actions to interact with OData entities. This is similar to the PL SQL packages, but again, the OData projections sit on top of the database layer. The packages are still there, but you can’t reach them directly. An endpoint is a point of contact in an API where you can perform operations on a resource.
Can you share an example of the ERP accessing examples with the PL/SQL?
OData Concepts vs SQL – reading the information
OData Concepts vs SQL – writing the information
What “search and replace” examples are that you can use?
The logical units do not map 1:1 with projections. There can be multiple projections per LU. The entry step is lower when doing OData operations than PL/SQL, but less powerful.
With traditional PL/SQL you can build complex business logic combined with DB queries in large PL/SQL blocks/programs. OData will give you access to the data in IFS, but you need to implement your business logic elsewhere. In code, scripts, or using a low-code platform like Flow.
What are examples of the sequence in PLSQL based on OData?
Below you can see a basic example of the IFS OData provider converting an OData call to a query executed in the database. From the IFS documentation.
INTERESTED IN LEARNING MORE ABOUT IFS CLOUD ODATA?
The article you are about to read is part of a broader series on the IFS Cloud OData API. Here's a link to the main article, which lists all the major barriers you may encounter when upgrading to IFS Cloud:
Introduction – barriers you can meet when moving to IFS Cloud and OData API
Below we present a whole list of articles belonging to the IFS Cloud OData series:
- The OData basics in the context of IFS Cloud
- How to replicate database transactions in OData for IFS Cloud
- Alternatives for OData in IFS Cloud
- Authentication, Authorization and Initialization in the OData API of IFS Cloud
- OData Efficiency with the remote cloud installation
- IFS customizations in OData
- Dealing With Legacy Systems