# Ignition SAP interface

**URL:** <https://forum.inductiveautomation.com/t/ignition-sap-interface/106699>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [May 27, 2025, 12:20am UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699 "2025-05-27T00:20:15Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [May 27, 2025, 12:20am UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699/1 "2025-05-27T00:20:15Z")

</div>

Hi all,

I have a customer whose site is planning to introduce SAP for inventory control, work orders and scheduling, and so on. They have asked me if it's possible to build an Ignition perspective based user interface for things like raising a work order, or checking parts out of a store - their ideal is to be able to use a tablet to scan a QR code on a part bin and have it retrieve the record from SAP, allow the user to add details like quantity and associated job/asset/etc, and have the results pushed back to SAP.

They have three sites, and one of those sites (not the one I'm at) has a dedicated MES gateway, which already has the Sepasoft SAP ERP connector and Business connector. They have provided me the attached architecture layout.

I am working at Site C, and currently only have access to the gateway at Site C. If they wanted to go down this route, what would the most typical approach be? Would all of the SAP-related development be done on the MES gateway on site A, and the tablets pointed to projects on that gateway? Or can the SAP interfacing be done there but all the data passed to the local gateway projects?

I guess right now I'm at the "I don't know what I don't know" stage - any direction anyone is able to give me to work out what questions I need to ask and what information I need to gather would be appreciated!

 ![Screenshot 2025-05-27 at 10.21.20 am](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/8/c87a9a2e7d75c898d2439ac0da61ae129ff7506e.jpeg)

---

<div class="post-metadata">

**Author:** ![diamond](https://avatars.discourse-cdn.com/v4/letter/d/e79b87/32.png) [@diamond](https://forum.inductiveautomation.com/u/diamond)\
**Post date:** [May 27, 2025, 7:24am UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699/2 "2025-05-27T07:24:39Z")

</div>

Just fetch data from SAP and display it. You don't need Sepasoft at all.

2 fetching approaches:

Option 1: SAP RFC

> [@Connecting to SAP with 3rd party Python lib or SAP JCo jar](https://forum.inductiveautomation.com/t/connecting-to-sap-with-3rd-party-python-lib-or-sap-jco-jar/40712/9):
>
> I’m using SAPJco3 for RFC calls to SAP and it works nicely. Place the SAPJco3 library in a folder on your gateway. (c:\SAPJco3 for example) Be sure to get the bit version to match your Java environment. (i.e.: 64 bit SAPJco3 library) Edit the ignition.conf file and add wrapper.java.classpath.3=c:\SAPJco3/sapjco3.jar # Java Classpath (include wrapper.jar) Add class path elements as # needed starting from 1 wrapper.java.classpath.1=lib/wrapper.jar wrapper.java.classpath.2=lib/catapult.…

Option 2: SAP HTTPs API

---

<div class="post-metadata">

**Author:** ![gnguyen](https://avatars.discourse-cdn.com/v4/letter/g/41988e/32.png) [@gnguyen](https://forum.inductiveautomation.com/u/gnguyen)\
**Post date:** [May 27, 2025, 9:33am UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699/3 "2025-05-27T09:33:46Z")

</div>

option 3: Sepasfot Business Connector  
[https://www.sepasoft.com/products/interface-for-sap-erp/](https://www.sepasoft.com/products/interface-for-sap-erp/)

---

<div class="post-metadata">

**Author:** ![David\_Stone](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/david_stone/32/79749_2.png) [@David\_Stone](https://forum.inductiveautomation.com/u/David_Stone)\
**Post date:** [May 27, 2025, 10:07am UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699/4 "2025-05-27T10:07:03Z")

</div>

They already have that, did you read the post?

---

<div class="post-metadata">

**Author:** ![gnguyen](https://avatars.discourse-cdn.com/v4/letter/g/41988e/32.png) [@gnguyen](https://forum.inductiveautomation.com/u/gnguyen)\
**Post date:** [May 27, 2025, 10:27am UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699/5 "2025-05-27T10:27:38Z")

</div>

You’re right, I read too quickly on my phone.

Basically, if BC can retrieve data from SAP and deliver it to the Site C Gateway, then everything should be good to go and create project on site C. The best would be to have MQTT in the middle if it is the purpose of this broker. We do that with our customer. MQTT and MES works well.

---

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [May 28, 2025, 2:48am UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699/6 "2025-05-28T02:48:20Z")

</div>

Thanks for the replies. I plan to use the SAP business connector because it's already there and designed for exactly this purpose. What I'm seeking a little more guidance on is how and where I'd do the interfacing.

Let's say a tech on Site C wants to check a part out of the store by scanning a QR code. I need to do two things: retrieve data on the part corresponding to that QR code from SAP, and then push information back to SAP indicating that _x_ quantity of that part were checked out of inventory and assigned to _y_ equipment.

How would this typically be set up? The technician on site C would have a tablet running a perspective session - would that perspective session be running off a project on the central MES gateway on (remote) site A? Or, would it be running a project off the (local) site C gateway, and that project just passes the request details up to the (remote) MES gateway on site A, which receives the request, gathers the requisite information, and then pushes the data back to the (local) gateway on Site C to be displayed on the technicians tablet?

---

<div class="post-metadata">

**Author:** ![csjohnson](https://avatars.discourse-cdn.com/v4/letter/c/5f8ce5/32.png) [@csjohnson](https://forum.inductiveautomation.com/u/csjohnson)\
**Post date:** [May 28, 2025, 4:51am UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699/7 "2025-05-28T04:51:40Z")

</div>

In my not so expert opinion, the remote gateways should be sending requests to the MES gateway that marshals the requests and replies with the results.

This will keep your SAP interface code in one manageable place rather than in three different sites. They may also consider a redundant gateway and redundant paths to the MES server.  
I think your biggest issue will be marshaling all of the requests at the MES server. I would definitely have a conversation with the team to know what requests take priority over others and build that into your code. For instance, they may want production reporting to be higher priority than getting a part number from stores. This marshaling system would queue up requests as they come in and drain them in order of priority.  
Be mindful of `sendMessage` as (I think) it executes asynchronously. You will need some way to identify the requests you send to then match them with their respective results.  
There may also be some load balancing tricks that can be done to lighten the load. I say all of this assuming many requests could be sent in stereo and many large replies being sent back. I.e, someone asks SAP for all work order history for the last three years. If it’s a very busy plant, you could have many 100,000 rows with 100s of columns.

---

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [May 28, 2025, 10:40pm UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699/8 "2025-05-28T22:40:25Z")

</div>

Thanks, that's helpful. Have you done anything vaguely like this before?

---

<div class="post-metadata">

**Author:** ![csjohnson](https://avatars.discourse-cdn.com/v4/letter/c/5f8ce5/32.png) [@csjohnson](https://forum.inductiveautomation.com/u/csjohnson)\
**Post date:** [May 29, 2025, 3:11pm UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699/9 "2025-05-29T15:11:25Z")

</div>

I have not.

---

<div class="post-metadata">

**Author:** ![ASF](https://avatars.discourse-cdn.com/v4/letter/a/c4cdca/32.png) [@ASF](https://forum.inductiveautomation.com/u/ASF)\
**Post date:** [June 3, 2025, 12:04am UTC](https://forum.inductiveautomation.com/t/ignition-sap-interface/106699/10 "2025-06-03T00:04:19Z")

</div>

I've just heard that the plan is to have a local SAP instance at Site C. This being the case, I would imagine that we would need another license for the ERP connector and business connector on the Site C gateway? It doesn't seem to make sense to have a local session ask a local gateway to ask a remote gateway to interrogate a local SAP instance.
