# Automation Professionals' Integration Toolkit Module

**URL:** <https://forum.inductiveautomation.com/t/automation-professionals-integration-toolkit-module/74934>\
**Category:** 3rd Party Modules\
**Tags:** ignition81, vision, scripting, ignition83, perspective\
**Created:** [June 13, 2023, 12:42am UTC](https://forum.inductiveautomation.com/t/automation-professionals-integration-toolkit-module/74934 "2023-06-13T00:42:35Z")\
**Posts on this page:** 1\
**Showing post:** 54

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 24, 2023, 8:14pm UTC](https://forum.inductiveautomation.com/t/automation-professionals-integration-toolkit-module/74934/54 "2023-07-24T20:14:03Z")

</div>

Bleh. I hate [ClientDynamicDispatchFunction](https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.1/com/inductiveautomation/ignition/client/expressions/ClientDynamicDispatchFunction.html). Apparently, it is not only intended to save window opens when modules are missing, but its implementation can carry **another instance of itself** before you get to the real function. And, it doesn't **instantiate** the real function until **connect()** is called. Which doubly breaks in my constification utility, as I cannot allow that to be called.

Oy! (Why, @paul-griffith, **WHY?** )

Try this, for Ignition v8.1+ as usual: ~~v2.0.7.232051926~~

😢

---

_[View the full topic](https://forum.inductiveautomation.com/t/automation-professionals-integration-toolkit-module/74934)._
