Can you put a customization on a RunTimeConfiguration form?
Epicor 10.2.500.23
Can you put a customization on a RunTimeConfiguration form?
Epicor 10.2.500.23
Yes, you can do this with a process entry and process calling maintenance entry.
Ok. This is the first time trying this. I added an epiViewNotification event and I was getting strange errors with the code the wizard inserted. Looks strange because the view names have a /0 suffixed to them and in the code editor the / is green like it is a comment.
I am working with Jeff and this error is what pops up in customization mode even before we add any code:
Please note all these lines are empty in the Script Editor.
Can you post the code the wizard generated?
Here is the code in the script editor
// **************************************************
// Custom code for ConfigurationRuntimeForm
// Created: 11/24/2020 3:45:50 PM
// **************************************************
using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using Erp.Adapters;
using Erp.UI;
using Ice.Lib;
using Ice.Adapters;
using Ice.Lib.Customization;
using Ice.Lib.ExtendedProps;
using Ice.Lib.Framework;
using Ice.Lib.Searches;
using Ice.UI.FormFunctions;
using System.IO;
public class Script
{
// ** Wizard Insert Location - Do Not Remove ‘Begin/End Wizard Added Module Level Variables’ Comments! **
// Begin Wizard Added Module Level Variables **
// End Wizard Added Module Level Variables **
// Add Custom Module Level Variables Here **
public void InitializeCustomCode()
{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Variable Initialization' lines **
// Begin Wizard Added Variable Initialization
// End Wizard Added Variable Initialization
// Begin Wizard Added Custom Method Calls
// End Wizard Added Custom Method Calls
}
public void DestroyCustomCode()
{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Object Disposal' lines **
// Begin Wizard Added Object Disposal
// End Wizard Added Object Disposal
// Begin Custom Code Disposal
// End Custom Code Disposal
}
private void ConfigurationRuntimeForm_Load(object sender, EventArgs args)
{
// Add Event Handler Code
MessageBox.Show("Hello world!");
}
}
Very odd, after a quick test I am getting the same result. If you click the ‘All Code’ checkbox in the script editor window, you will see the exceptions are coming from generated code, in my case there are illegal characters(’/’) in generated variable names.
Let’s back up to what you are trying to accomplish because this same UI will launch for all configurations, are you trying to create a customization for all configurations? Or customize a specific configuration?
The short answer is a No on customizing this from, since I can remember and pretty sure that has not changed in recent versions. To the question @adaniell posed, what is the use case for this? I have seen some trying to keep a user from closing out using X or controlling navigation, etc.
Jeff, what are you trying to solve?
We have a UD field on the Labor Entry form in MES. We are trying to get that UD field onto the QAQC configuration form we built.
You can do that with a Server Side UD method to lookup the value and have an input in the configurator UI. That will then upgrade in the future.
Ok so if we cannot Create a Customization in a RunTimeConfiguration form how can I clear this compile error so I can try Server Side UD method approach?
--------compile errors------------
Error: CS1002 - line 33 (33) - ; expected
Error: CS1519 - line 33 (33) - Invalid token ‘;’ in class, struct, or interface member declaration
Error: CS1002 - line 41 (41) - ; expected
Error: CS1519 - line 41 (41) - Invalid token ‘;’ in class, struct, or interface member declaration
** Compile Failed. **
Here is another example with the All Code selected generating the following compile errors:
Compiling Custom Code. The culprits "_PoleQCFITPage10/0_Row; " and “_PoleQCFITPage1FieldProperties0/0_Row”
----------errors and warnings------------
Error: CS1002 - line 37 (37) - ; expected
Error: CS1519 - line 37 (37) - Invalid token ‘;’ in class, struct, or interface member declaration
Error: CS1002 - line 45 (45) - ; expected
Error: CS1519 - line 45 (45) - Invalid token ‘;’ in class, struct, or interface member declaration
** Compile Failed. **
// **************************************************
// Custom code for ConfigurationRuntimeForm
// Created: 11/24/2020 3:45:50 PM
// **************************************************
using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using Erp.Adapters;
using Erp.UI;
using Ice.Lib;
using Ice.Adapters;
using Ice.Lib.Customization;
using Ice.Lib.ExtendedProps;
using Ice.Lib.Framework;
using Ice.Lib.Searches;
using Ice.UI.FormFunctions;
public class Script
{
private Ice.Lib.Customization.CustomScriptManager csm;
private Erp.UI.App.ConfigurationRuntimeEntry.Transaction oTrans;
private Erp.UI.App.ConfigurationRuntimeEntry.ConfigurationRuntimeForm ConfigurationRuntimeForm;
private Infragistics.Win.UltraWinToolbars.UltraToolbarsManager baseToolbarsManager;
private System.Data.DataTable BpmData_Column;
private Ice.Lib.Framework.EpiDataView CallContextBpmData_Row;
private System.Data.DataTable _PoleQCFITPage1_Column;
private Ice.Lib.Framework.EpiDataView _PoleQCFITPage10/0_Row;
private System.Data.DataTable Client_Column;
private Ice.Lib.Framework.EpiDataView CallContextClientData_Row;
private System.Data.DataTable _PoleQCFITPage1FieldProperties_Column;
private Ice.Lib.Framework.EpiDataView _PoleQCFITPage1FieldProperties0/0_Row;
private System.Data.DataTable PcInputsLayerHeader_Column;
private Ice.Lib.Framework.EpiDataView PcInputsLayerHeader_Row;
private System.Data.DataTable PcPage_Column;
private Ice.Lib.Framework.EpiDataView PcPage_Row;
private System.Data.DataTable PcValueHead_Column;
private Ice.Lib.Framework.EpiDataView PcValueHead_Row;
private System.Data.DataTable PcStruct_Column;
private Ice.Lib.Framework.EpiDataView PcStruct_Row;
private System.Data.DataTable PcValueGrp_Column;
private Ice.Lib.Framework.EpiDataView PcValueGrp_Row;
private System.Data.DataTable ConfigurationSummary_Column;
private Ice.Lib.Framework.EpiDataView ConfigSummary_Row;
private System.Data.DataTable PcInputValue_Column;
private Ice.Lib.Framework.EpiDataView PcInputValue_Row;
private System.Data.DataTable PcConfigurationParams_Column;
private Ice.Lib.Framework.EpiDataView PcConfigParams_Row;
private System.Data.DataTable PcInputsPublishToDocParams_Column;
private Ice.Lib.Framework.EpiDataView PcInputsToPublishDoc_Row;
public void InitializeGlobalVariables(Ice.Lib.Customization.CustomScriptManager csm)
{
this.csm = csm;
this.oTrans = ((Erp.UI.App.ConfigurationRuntimeEntry.Transaction)(this.csm.GetGlobalInstance("oTrans")));
this.ConfigurationRuntimeForm = ((Erp.UI.App.ConfigurationRuntimeEntry.ConfigurationRuntimeForm)(this.csm.GetGlobalInstance("ConfigurationRuntimeForm")));
this.baseToolbarsManager = ((Infragistics.Win.UltraWinToolbars.UltraToolbarsManager)(this.csm.GetGlobalInstance("baseToolbarsManager")));
this.BpmData_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("BpmData_Column")));
this.CallContextBpmData_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("CallContextBpmData_Row")));
this._PoleQCFITPage1_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("_PoleQCFITPage1_Column")));
this._PoleQCFITPage10/0_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("_PoleQCFITPage10/0_Row")));
this.Client_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("Client_Column")));
this.CallContextClientData_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("CallContextClientData_Row")));
this._PoleQCFITPage1FieldProperties_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("_PoleQCFITPage1FieldProperties_Column")));
this._PoleQCFITPage1FieldProperties0/0_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("_PoleQCFITPage1FieldProperties0/0_Row")));
this.PcInputsLayerHeader_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("PcInputsLayerHeader_Column")));
this.PcInputsLayerHeader_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("PcInputsLayerHeader_Row")));
this.PcPage_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("PcPage_Column")));
this.PcPage_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("PcPage_Row")));
this.PcValueHead_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("PcValueHead_Column")));
this.PcValueHead_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("PcValueHead_Row")));
this.PcStruct_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("PcStruct_Column")));
this.PcStruct_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("PcStruct_Row")));
this.PcValueGrp_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("PcValueGrp_Column")));
this.PcValueGrp_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("PcValueGrp_Row")));
this.ConfigurationSummary_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("ConfigurationSummary_Column")));
this.ConfigSummary_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("ConfigSummary_Row")));
this.PcInputValue_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("PcInputValue_Column")));
this.PcInputValue_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("PcInputValue_Row")));
this.PcConfigurationParams_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("PcConfigurationParams_Column")));
this.PcConfigParams_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("PcConfigParams_Row")));
this.PcInputsPublishToDocParams_Column = ((System.Data.DataTable)(this.csm.GetGlobalInstance("PcInputsPublishToDocParams_Column")));
this.PcInputsToPublishDoc_Row = ((Ice.Lib.Framework.EpiDataView)(this.csm.GetGlobalInstance("PcInputsToPublishDoc_Row")));
Ice.Lib.Customization.PersonalizeCustomizeManager personalizeCustomizeManager = this.csm.PersonalizeCustomizeManager;
System.Windows.Forms.Control topControl = personalizeCustomizeManager.TopControl;
topControl.FindForm().SuspendLayout();
// ConfigurationRuntimeForm
Ice.Lib.Framework.EpiBaseForm local1 = ((Ice.Lib.Framework.EpiBaseForm)(personalizeCustomizeManager.ControlsHT["2dcd1674-5e34-4d98-b493-c75747027376"]));
local1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
// Finishing control initialization.
topControl.FindForm().ResumeLayout();
}
public void DestroyGlobalVariables()
{
this.csm = null;
this.oTrans = null;
this.ConfigurationRuntimeForm = null;
this.baseToolbarsManager = null;
this.BpmData_Column = null;
this.CallContextBpmData_Row = null;
this._PoleQCFITPage1_Column = null;
this._PoleQCFITPage10/0_Row = null;
this.Client_Column = null;
this.CallContextClientData_Row = null;
this._PoleQCFITPage1FieldProperties_Column = null;
this._PoleQCFITPage1FieldProperties0/0_Row = null;
this.PcInputsLayerHeader_Column = null;
this.PcInputsLayerHeader_Row = null;
this.PcPage_Column = null;
this.PcPage_Row = null;
this.PcValueHead_Column = null;
this.PcValueHead_Row = null;
this.PcStruct_Column = null;
this.PcStruct_Row = null;
this.PcValueGrp_Column = null;
this.PcValueGrp_Row = null;
this.ConfigurationSummary_Column = null;
this.ConfigSummary_Row = null;
this.PcInputValue_Column = null;
this.PcInputValue_Row = null;
this.PcConfigurationParams_Column = null;
this.PcConfigParams_Row = null;
this.PcInputsPublishToDocParams_Column = null;
this.PcInputsToPublishDoc_Row = null;
}
public static string[] GetTranslatableStrings()
{
return new string[0];
}
public static string GetStringByID(string id)
{
return "";
}
// ** Wizard Insert Location - Do Not Remove 'Begin/End Wizard Added Module Level Variables' Comments! **
// Begin Wizard Added Module Level Variables **
// End Wizard Added Module Level Variables **
// Add Custom Module Level Variables Here **
public void InitializeCustomCode()
{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Variable Initialization' lines **
// Begin Wizard Added Variable Initialization
// End Wizard Added Variable Initialization
// Begin Wizard Added Custom Method Calls
// End Wizard Added Custom Method Calls
}
public void DestroyCustomCode()
{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Object Disposal' lines **
// Begin Wizard Added Object Disposal
// End Wizard Added Object Disposal
// Begin Custom Code Disposal
// End Custom Code Disposal
}
}
Hi Mike,
You just can’t run configurations in developer mode or with any customization specified as the default. Use the configurator designer(UI) to add the input.
Thanks we found another way to do this. Thanks for your responses.
Stephen,
My associate is trying to tie a MES End Activity record which contains a UD field to the QAQC runtime form configuration data. Currently it looks like the configurator only uses the JobNum, Assembly Seq, and Operation Seq to determine which QAQC data to pull up. We would like to use the UD field as another ‘key’ field to pull the right data into the QAQC runtime configurator form.
I hope that makes sense. We are currently working on a solution for this.
JPS