The Infor Communities is globally accessed system by Infor and its customers, please do not post or upload any content that could be deemed as sensitive, confidential or subject to any data regulation requirements. If you are unsure whether or not the content contains sensitive, confidential or has any data regulation requirements, please seek the advice of your internal security, legal, and compliance experts.

Can we build custom API's in ION API?

Is it possible for us, as a customer of Infor M3 CloudSuite ERP, to build our own API's within the ION API module, and do our own back-end work to tie together data from multiple tables?

We have a front-end eCommerce system that will be calling API's from our ERP system. In many cases, we have found this would require multiple API calls, as there is not an individual existing API that combines information from the tables we need. We'd like to avoid making a multiple API call to get to the final data subset that we need.



  • Hey Jon - If you are using Infor OS in the Cloud, you will have access to the new API Orchestration in the new API Flows in ION Desk. You could use this to create an API endpoint that will be accessible through the ION API Gateway. This would be the best way to combine API's into just one. Have you looked at this new feature in the MT CloudSuite for Infor OS?

  • Thanks Brandon, that sounds promising.

    Would we be limited to combining existing ION API's or can we also build custom API's that join and associate multiple Infor DB tables?

  • The API Flow will allow you utilize any of the current API's you have in ION API Gateway.

    As far as custom API's that retrieves specific data from M3, I do not know enough about M3 to answer that. I know other API's have specific API's or a FectchWhere API, which give you access to individual tables, are the only available API's or accessibility to the database. They do not have a way to create a custom API to access and aggregate data directly from the database, as this would require back-end database access, which Infor does not provide for CloudSuite ERP databases, or custom code, which Infor does not allow either.

    I believe you are limited to the currently available API's in the Gateway. If you Cloud, the API Flow (Orchestration) is going to be Infor's go forward solution for combining multiple API calls into one, as it allows you to publish the API Flow as an endpoint in the Gateway.

  • Thanks again,

    Is the ION Desk API Flow to the point where it's released and documented?

  • Maybe can you have a look at CMS015 to create standard custom 'read mode' API's that allow you to read from a main table and retrieve information from related tables at the same time. Filter and selection only possible on main table. 

    Start from CMS010, build your information browser category, select the related tables and the fields you need... then build the API in CMS015 based on this freshly new created information category.

  • All our CMS100MI and MDBREADMI API-s automatically showed up as ION API-s

  • Thanks Maxime,

    I gave these pages a brief review and will give this a go tomorrow. The fact you can relate the tables into custom lists able to be called by ION API sounds very good.

  • Thanks again.

    I set up our CMS010, CMS011, and CMS015 pages for this API request.

    The main table is MITFAC, and the related tables are MITMAS, and OCUSIT.

    On CMS015, I have one selection field M9FACI, and I do get Test API to return only items for the specified facility. The Test API has 3 FACI parameters for some reason, so I populated all three params with the same value. The TEST API showed a ITNO parameter and I left that empty for this test as we want a list of all items at the facility.

    I wasn't quite sure how these parameters are determined, as the related tables don't have a FACI column.

    Also for the JOINs that Infor determined, for some reason the 1st related table didn't get the CONO assocation, while the 2nd related table did. I checked and MITMAS has a CONO column, so not sure why that wasn't a part of the JOIN.

    Is there a way to add the M9CONO as a param for this API call?

    Also, is there a way to add more db columns to the output? At this point, there are two columns returned, M9FACI and M9ITNO.

  • I will use CMS010, CM011, CMS015 pages as you mentioned, this is what I need to do to get data from multiple tables in an associated manner. 

    Summary of what was needed to do so accomplish this:

    1. Create an information browser category for the MITFAC main "parent" table (CMS010). For the Browse Program field, I chose the program name MMS003 which is the Item-Facility "parent" table.

    2. Use the Related Tables page (CMS011) for this Information Browser Category. Add the related tables and modify the association logic if needed.

    3. Use the View page (CRS020) for this Information Browser Category. Add the custom view, you can click the Default fields button to add the existing fields to the View, then manually add the additional fields from the "child" tables. Click the Display button to verify the fields are correct and the metadata for these fields will be updated on this page.

    4. Use the Custom List MI page (CMS015) to create a custom list. This list setup page will allow you to specify the Information Browser Category, and the View.

    5. Make sure to use the Related Menu on CMS015 to Update MI Repository, and also make sure the CMS010 and CMS011 page records are Activated (Status = 20).

    6. Use the Test API page in M3 Metadata Publish, CMS100MI class to test the CMS015 Custom List.