# Error with custom method call from context menu

**URL:** <https://forum.inductiveautomation.com/t/error-with-custom-method-call-from-context-menu/72908>\
**Category:** Ignition\
**Tags:** perspective, ignition81\
**Created:** [April 26, 2023, 9:12am UTC](https://forum.inductiveautomation.com/t/error-with-custom-method-call-from-context-menu/72908 "2023-04-26T09:12:06Z")\
**Posts on this page:** 1\
**Showing post:** 2

<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:** [April 26, 2023, 12:42pm UTC](https://forum.inductiveautomation.com/t/error-with-custom-method-call-from-context-menu/72908/2 "2023-04-26T12:42:40Z")

</div>

Start here, but read the whole topic:

> [@Transaction groups triggered expression item updating when trigger is false](https://forum.inductiveautomation.com/t/transaction-groups-triggered-expression-item-updating-when-trigger-is-false/17196/14):
>
> Ok, so I’ve been down the rabbit hole and found Ignition’s (undocumented) PyComponentWrapper. I haven’t deciphered it enough to be sure, but it seems to be invoked only for particular situations, based on the string constants in the class file (like “getComponent” and “getComponents”). To play with this, I constructed a conversion adapter like so: public class PyComponentAdapter implements PyObjectAdapter { public PyComponentAdapter() {} @Override public boolean canAdapt(Object jObj) { …

TL/DR: Install my free [Simulation Aids module](https://inductiveautomation.com/moduleshowcase/module/automation-professionals-llc-simulation-aids) to get reliable jython behavior with components no matter what java methods delivered them.

---

_[View the full topic](https://forum.inductiveautomation.com/t/error-with-custom-method-call-from-context-menu/72908)._
