Plugin Functions breaking at every point release

This forum is for programmers who have questions about the source code.
Post Reply
User avatar
drtech
Posts: 1649
Joined: Wed Jun 20, 2007 8:44 am
Location: Springfield, MO
Contact:

Plugin Functions breaking at every point release

Post by drtech » Sat Jul 31, 2010 5:13 pm

errrggg. Every time I upgrade to a new OD version my plugin quits working! (7.2.3)

is this going to keep happening every time?

*************************

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1<OpenDentBusiness.InsPlan> OpenDentBusiness.InsPlans.Refresh(OpenDentBusiness.Family)'.
at PluginDrTECH.ContrAccountP.FillInsInfo()
at PluginDrTECH.ContrAccountP.RefreshModuleScreen_end(ContrAccount sender, Family famCur, Patient patCur, DataSet datasetMain, Double ppbalTotal, Boolean selectingFamily)
at PluginDrTECH.Plugin.HookAddCode(Object sender, String hookName, Object[] parameters)
at OpenDentBusiness.Plugins.HookAddCode(Object sender, String hookName, Object[] parameters) in C:\SVN\Beta\OpenDentBusiness\Plugins\Plugins.cs:line 74
at OpenDental.ContrAccount.RefreshModuleScreen(Boolean isSelectingFamily) in C:\SVN\Beta\OpenDental\Main Modules\ContrAccount.cs:line 1877
at OpenDental.ContrAccount.ModuleSelected(Int64 patNum) in C:\SVN\Beta\OpenDental\Main Modules\ContrAccount.cs:line 1742
at OpenDental.FormOpenDental.SetModuleSelected() in C:\SVN\Beta\OpenDental\Main Modules\FormOpenDental.cs:line 2823
at OpenDental.FormOpenDental.myOutlookBar_ButtonClicked(Object sender, ButtonClicked_EventArgs e) in C:\SVN\Beta\OpenDental\Main Modules\FormOpenDental.cs:line 2801
at OpenDental.OutlookBar.OnButtonClicked(OutlookButton myButton, Boolean myCancel) in C:\SVN\Beta\OpenDental\User Controls\OutlookBar.cs:line 321
at OpenDental.OutlookBar.OnMouseUp(MouseEventArgs e) in C:\SVN\Beta\OpenDental\User Controls\OutlookBar.cs:line 313
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)



and




************** Exception Text **************
System.MissingMethodException: Method not found: 'System.Collections.Generic.List`1<OpenDentBusiness.InsPlan> OpenDentBusiness.InsPlans.Refresh(OpenDentBusiness.Family)'.
at PluginDrTECH.ContrChartP.FillPtInfo(ContrChart sender, Patient PatCur)
at PluginDrTECH.Plugin.HookMethod(Object sender, String hookName, Object[] parameters)
at OpenDentBusiness.Plugins.HookMethod(Object sender, String hookName, Object[] parameters) in C:\SVN\Beta\OpenDentBusiness\Plugins\Plugins.cs:line 64
at OpenDental.ContrChart.FillPtInfo() in C:\SVN\Beta\OpenDental\Main Modules\ContrChart.cs:line 3521
at OpenDental.ContrChart.RefreshModuleScreen() in C:\SVN\Beta\OpenDental\Main Modules\ContrChart.cs:line 3266
at OpenDental.ContrChart.ModuleSelected(Int64 patNum) in C:\SVN\Beta\OpenDental\Main Modules\ContrChart.cs:line 3163
at OpenDental.FormOpenDental.SetModuleSelected() in C:\SVN\Beta\OpenDental\Main Modules\FormOpenDental.cs:line 2835
at OpenDental.FormOpenDental.myOutlookBar_ButtonClicked(Object sender, ButtonClicked_EventArgs e) in C:\SVN\Beta\OpenDental\Main Modules\FormOpenDental.cs:line 2801
at OpenDental.OutlookBar.OnButtonClicked(OutlookButton myButton, Boolean myCancel) in C:\SVN\Beta\OpenDental\User Controls\OutlookBar.cs:line 321
at OpenDental.OutlookBar.OnMouseUp(MouseEventArgs e) in C:\SVN\Beta\OpenDental\User Controls\OutlookBar.cs:line 313
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
David Fuchs
Dentist - Springfield, MO
Smile Dental http://www.887-smile.com

User avatar
jordansparks
Site Admin
Posts: 5744
Joined: Sun Jun 17, 2007 3:59 pm
Location: Salem, Oregon
Contact:

Re: Plugin Functions breaking at every point release

Post by jordansparks » Sat Jul 31, 2010 7:19 pm

Looks like that method is now called RefreshForFam() instead of Refresh(). So I'm going to have to answer yes. It is a very real possibility. I have three possible solutions:
1. Build a test suite. It would go through each of your methods that you use in your plugin and simulate being called from the main program.
2. Manually test each of your plugin methods through the main program to see that they still work.
3. We might be able to redesign the plugins so that such issues can be caught at compile time.

#1 is my favorite solution. It may be something that we can build ourselves using reflection. But it will take time. #2 is the obvious best short-term solution.
Jordan Sparks, DMD
http://www.opendental.com

User avatar
drtech
Posts: 1649
Joined: Wed Jun 20, 2007 8:44 am
Location: Springfield, MO
Contact:

Re: Plugin Functions breaking at every point release

Post by drtech » Sat Jul 31, 2010 7:33 pm

well, thanks for the quick response. For the mean time that did make it quick to fix...at least in debugging...I will see if it works in practice for this time...


now for the future, yes I am open to any suggestions or help...not sure if it is possible to make it better with things always changing...
David Fuchs
Dentist - Springfield, MO
Smile Dental http://www.887-smile.com

Post Reply