Middle Tier plugin question

This forum is for programmers who have questions about the source code.
Post Reply
User avatar
wjstarck
Posts: 936
Joined: Tue Jul 31, 2007 7:18 am
Location: Keller, TX
Contact:

Middle Tier plugin question

Post by wjstarck » Mon Apr 01, 2024 3:27 pm

I have a question about plugins and Middle Tier:

I have to put a copy of my plugin .dll in the OpenDental/bin folder on the server or I get an error.

So are the workstations that connect to the Middle Tier server accessing this file, or their local copy? It would seem to be the former, or does this .dll just need to be there on the server for everything to work properly?

I have a customer deploying our software on Middle Tier and need to know which one applies so that I can keep their version of the plugin updated properly.

Thanks.
Cheers,

Bill Starck, DDS
Big Idea Software, LLC
Developer, EASy(Electronic Anesthesia System) for Open Dental
817-807-1709
TX, USA

User avatar
jsalmon
Posts: 1553
Joined: Tue Nov 30, 2010 12:33 pm
Contact:

Re: Middle Tier plugin question

Post by jsalmon » Tue Apr 02, 2024 2:33 pm

wjstarck wrote:
Mon Apr 01, 2024 3:27 pm
So are the workstations that connect to the Middle Tier server accessing this file, or their local copy? It would seem to be the former, or does this .dll just need to be there on the server for everything to work properly?
The answer is both, potentially. It all depends on what methodology your plug-in requires.

Heed the following example:
A plug-in implements the following HookAddCode methods:
"FormAbout.Load_end" - to visually show critical information about the plug-in to the user.
"Appointments.SetConfirmed_end" - to execute critical business logic for the plug-in to function correctly.

The Middle Tier server does not have a UI and thus will never invoke "FormAbout.Load_end". However, workstations will need a local plug-in so that they can show the critical information when they invoke this hook.

Workstations will never invoke the "Appointments.SetConfirmed_end" hook since the guts of Appointments.SetConfirmed() can only be executed from the Middle Tier server (it executes queries and other business logic not allowed by workstations). Therefore, the Middle Tier server will need a copy of the plug-in in order to execute the critical business logic of the plug-in when it invokes this hook.
The best thing about a boolean is even if you are wrong, you are only off by a bit.

Jason Salmon
Open Dental Software
http://www.opendental.com

Post Reply