# Instruct/Convey a signal to Invoke a program on Ignition

**URL:** <https://forum.inductiveautomation.com/t/instruct-convey-a-signal-to-invoke-a-program-on-ignition/9693>\
**Category:** General Discussion\
**Created:** [February 11, 2015, 4:19pm UTC](https://forum.inductiveautomation.com/t/instruct-convey-a-signal-to-invoke-a-program-on-ignition/9693 "2015-02-11T16:19:45Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![XeeChaun](https://avatars.discourse-cdn.com/v4/letter/x/a9a28c/32.png) [@XeeChaun](https://forum.inductiveautomation.com/u/XeeChaun)\
**Post date:** [February 11, 2015, 4:19pm UTC](https://forum.inductiveautomation.com/t/instruct-convey-a-signal-to-invoke-a-program-on-ignition/9693/1 "2015-02-11T16:19:45Z")

</div>

Hi all,

I’m Telecommunications Engr by qualification. Working as a C# (.NET) developer for 2 years. I have also worked with databases (MySql, MS-SQL etc), Socket programming, hardware interfacing etc.  
I’m new to Ignition SCADA.

I need to build a C# program which will be a kind of middle-ware between a webAPI and Ignition Scada.  
the C# program will receive an SKU from webAPI and then ask the Ignition to invoke a specific program based on the SKU. (every SKU is attached to an Ignition program)

I need to know how I can instruct Ignition SCADA to invoke a program?  
please guide me

thanks and best regards,  
M Zeeshan Akram

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 11, 2015, 4:54pm UTC](https://forum.inductiveautomation.com/t/instruct-convey-a-signal-to-invoke-a-program-on-ignition/9693/2 "2015-02-11T16:54:27Z")

</div>

Well, as for the communication between the C# program and Ignition you could use the module SDK to add a servlet or the web-dev module to handle an inbound web service call and then take some action from there.

I’m not 100% clear on what you mean by invoke a program. You mean to invoke an executable that resides on the same system as the Ignition gateway? That shouldn’t really be a problem. Does this mean the C# program runs on a different machine then? Otherwise why wouldn’t it invoke the executable?

Or do you mean something else here?

---

<div class="post-metadata">

**Author:** ![XeeChaun](https://avatars.discourse-cdn.com/v4/letter/x/a9a28c/32.png) [@XeeChaun](https://forum.inductiveautomation.com/u/XeeChaun)\
**Post date:** [February 11, 2015, 5:03pm UTC](https://forum.inductiveautomation.com/t/instruct-convey-a-signal-to-invoke-a-program-on-ignition/9693/3 "2015-02-11T17:03:05Z")

</div>

hi Kevin,

thanks a lot for the reply.

C# program will be on same machine as Ignition.

as I told you, I’m new to Ignition SCADA, so my terminology related to it may not be correct or clear enough.

by invoking program I mean invoking an Ignition SCADA program i.e. ask Ignition SCADA to execute an action, (maybe you call it a group, script or whatever in Ignition terminology)

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [February 11, 2015, 5:31pm UTC](https://forum.inductiveautomation.com/t/instruct-convey-a-signal-to-invoke-a-program-on-ignition/9693/4 "2015-02-11T17:31:53Z")

</div>

I’d say the least painful way to do this would be through the database. Here’s my take on it.

The C# program writes an entry to the database. This way you can have the SKU, some other unique identifier, and an integer to use as a flag tell whether an entry has been processed or not.

A transaction group monitors the table for an entry with a flag that says ‘Ready to Process’. When it finds one, it grabs the pertinent information, run a script that does whatever processing you want done on it, and sets the flag entry as OK or NG, depending on results.

We have a similar middle-ware beast in use. In general, the flag values are:

1: Ready to process  
2: In process  
3: OK  
4+: All the things that can go wrong.

---

<div class="post-metadata">

**Author:** ![XeeChaun](https://avatars.discourse-cdn.com/v4/letter/x/a9a28c/32.png) [@XeeChaun](https://forum.inductiveautomation.com/u/XeeChaun)\
**Post date:** [February 11, 2015, 6:04pm UTC](https://forum.inductiveautomation.com/t/instruct-convey-a-signal-to-invoke-a-program-on-ignition/9693/5 "2015-02-11T18:04:29Z")

</div>

alright,

thanks Jordan, for showing me some direction.  
I’ll try to figure it out and get back here if I need something 🙂

thanks a lot once again

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [February 11, 2015, 6:23pm UTC](https://forum.inductiveautomation.com/t/instruct-convey-a-signal-to-invoke-a-program-on-ignition/9693/6 "2015-02-11T18:23:41Z")

</div>

Another thought…

You may be able to use Jython scripting from within Ignition to hit up the webAPI. Without knowing what you have, I couldn’t say for certain. I just wanted to state the possibility of removing a step or two… 🙂
