Вы находитесь на странице: 1из 527

Epicor ICE 3.

0
Customization
User Guide
Disclaimer
This document and its contents, including the viewpoints, dates and functional content expressed herein are the
proprietary copyrighted property of Epicor Software Corporation, are intended for informational purposes only and
are believed to be accurate as of its date of publication. However, Epicor Software Corporation makes no guarantee,
representations or warranties with regard to the enclosed information and specifically disclaims any applicable implied
warranties, such as fitness for a particular purpose, merchantability, satisfactory quality or reasonable skill and care.
As each user of Epicor software is likely to be unique in their requirements in the use of such software and their business
processes, users of this document are always advised to discuss the content of this document with their Epicor support
representative, account manager and/or consulting personnel. All information contained herein is subject to change
without notice and changes to this document since printing and other important information about the software
product are made or published in release notes, and you are urged to obtain the current release notes for the software
product. The usage of any Epicor software shall be pursuant to an Epicor end user license agreement and the performance
of any consulting services by Epicor personnel shall be pursuant to Epicor's services terms and conditions. Usage of the
solution(s) described in this document with other Epicor software or third party products may require the purchase of
licenses for such other products. Where any software is expressed to be compliant with applicable laws or other statutory
or regulatory requirements in this document, such compliance is not a warranty and is based solely on Epicor's current
understanding of such laws and requirements. All laws and requirements are subject to varying interpretations as well
as to change and accordingly, Epicor cannot guarantee that the software will be compliant and up to date with such
changes. All statements of platform and product compatibility in this document shall be considered individually in
relation to the products referred to in the relevant statement, i.e., where any Epicor software is stated to be compatible
with one product and also stated to be compatible with another product, it should not be interpreted that such Epicor
software is compatible with both of the products running at the same time on the same platform or environment.
Additionally platform or product compatibility may require the application of Epicor or third-party updates, patches
and/or service packs and Epicor has no responsibility for compatibility issues which may be caused by updates, patches
and/or service packs released by third parties after the date of publication of this document. Epicor, Business Inspired
and the Epicor logo are trademarks of Epicor Software Corporation, registered in the United States, certain other
countries and/or the EU. All other trademarks mentioned are the property of their respective owners. Copyright ©
Epicor Software Corporation 2014. All rights reserved. No part of this publication may be reproduced in any form
without the prior written consent of Epicor Software Corporation.

10.0.700
Revision: June 26, 2014 4:00 p.m.
Total pages: 527
sys.ditaval
Epicor ICE 3.0 Customization User Guide Contents

Contents
Introduction..........................................................................................................................13

Chapter 1: Styling and Themes.......................................................................14


User Maintenance..........................................................................................................................................14
Assign Styling Rights in User Maintenance..............................................................................................14
Style Theme Loading......................................................................................................................................15
Load Style Theme...................................................................................................................................15
Runtime Stylist...............................................................................................................................................17
Launch the Runtime Stylist......................................................................................................................18
Runtime Stylist – Primary Controls...........................................................................................................19
Use Style Library..............................................................................................................................19
Manage StyleSets............................................................................................................................20
Resources...............................................................................................................................................21
Manage Resources..........................................................................................................................21
Import Resources.............................................................................................................................22
Roles......................................................................................................................................................23
Change the Look of UI Roles...........................................................................................................24
Set Background Image for UI Role...................................................................................................25
Set Border for UI Role......................................................................................................................27
Set Font Attributes for UI Role.........................................................................................................28
Set Foreground Image for UI Role....................................................................................................29
Define Additional Options for UI Role..............................................................................................30
Preview UI Role................................................................................................................................30
Define Overall Styles for UI Role.......................................................................................................31
Manage Component Role Settings..................................................................................................32
Set Common Component Properties...............................................................................................32
Set Specific Component Properties..................................................................................................33
Manage Shared Object Role Settings...............................................................................................34
Set Specific Properties for Shared Object Role Settings.....................................................................35
Components in the Used By Section.......................................................................................................35
Modify Components in the Used By Section....................................................................................35
Role Selection.........................................................................................................................................36
Use Role Selection Tool....................................................................................................................36
Style Filter Management................................................................................................................................38
Launch Style Filter Manager....................................................................................................................38
Create a Child Style Filter........................................................................................................................39
Modify Child Style Filter..........................................................................................................................42
Filter Inheritance Priorities.......................................................................................................................48
Style Tracking................................................................................................................................................49
Activate Style Tracking............................................................................................................................49

10.0.700 3
Contents Epicor ICE 3.0 Customization User Guide

View Style Tracking Information..............................................................................................................50


Default Theme Retrieval.................................................................................................................................50
Case Study – New Button Theme...................................................................................................................51
Create the Style Library...........................................................................................................................51
Define Component Role Settings............................................................................................................53
Define UI Role Settings...........................................................................................................................54
Select and Size the Image.......................................................................................................................56
Globally Save the Styling.........................................................................................................................58
Modify Hot-Tracked State.......................................................................................................................59
Modify Pressed State..............................................................................................................................60
Save the Style Library..............................................................................................................................61

Chapter 2: Personalization..............................................................................62
Personalize the Main Menu Interface.............................................................................................................62
The View Menu.............................................................................................................................................63
The Options Menu.........................................................................................................................................65
Modify the Status Bar on the Main Interface...........................................................................................66
Save Settings on Exit......................................................................................................................................68
The Favorites Bar............................................................................................................................................68
Favorites Bar User Privileges....................................................................................................................68
Add Internal Shortcuts to the Favorites Bar..............................................................................................70
Add External Shortcuts to the Favorites Bar.............................................................................................70
Create Favorites Groups..........................................................................................................................71
AutoLoad Favorites Groups.....................................................................................................................72
Memory Caching....................................................................................................................................73
Personalize the Program Interface..................................................................................................................75
Personalization Options Window............................................................................................................75
General Options..............................................................................................................................75
Ribbon Interface..............................................................................................................................77
Hot Keys Options.............................................................................................................................80
Dialogs Options...............................................................................................................................80
Tree View Options...........................................................................................................................81
Global Options - Status Bar..............................................................................................................82
Global Options - Hot Keys...............................................................................................................82
Personalize Sheet Layouts..............................................................................................................................83
Modify Sheet Tab Order..........................................................................................................................84
Docking Sheets.......................................................................................................................................85
Floating Sheets.......................................................................................................................................87
Auto Hide Sheets....................................................................................................................................89
Personalize Toolbars.......................................................................................................................................90
Moving Toolbars.....................................................................................................................................91
Personalize Grids............................................................................................................................................92
Change Column Order...........................................................................................................................92
Adjust Column Width.............................................................................................................................92

4 10.0.700
Epicor ICE 3.0 Customization User Guide Contents

Grid Split Option.....................................................................................................................................93


Sort Columns..........................................................................................................................................93
Grid Filters..............................................................................................................................................94
Show Group By......................................................................................................................................95
Show Group By - Secondary...................................................................................................................97
Enable Show Summaries.........................................................................................................................98
Advanced Personalization Options...............................................................................................................101
Assign Personalization Privileges...........................................................................................................101
Activate Personalization Mode..............................................................................................................102
Begin Personalization............................................................................................................................104
Personalize Sheet Properties..................................................................................................................105
Personalize the Colors of Elements................................................................................................105
Change the Font Type and Foreground Color................................................................................107
Change the Location and Size.......................................................................................................108
Change the Tab Stop and Text......................................................................................................110
Modify Grid Properties.................................................................................................................................112
Hide Columns in a Grid.........................................................................................................................112
Import, Export, and Delete Personalizations..................................................................................................114
Export a Personalization........................................................................................................................114
Import a Personalization.......................................................................................................................115
Delete Personalizations.........................................................................................................................116

Chapter 3: Basic Customization....................................................................118


Customization Rights...................................................................................................................................118
Assign Customization Rights.................................................................................................................118
Developer Mode..........................................................................................................................................119
Activate Developer Mode......................................................................................................................120
Select Customization............................................................................................................................121
Begin Customization.....................................................................................................................121
Launch Developer Mode..............................................................................................................................124
Disable Memory Caching......................................................................................................................124
Disable Memory Caching...............................................................................................................124
Developer Mode...................................................................................................................................125
Launch Customization Tools Dialog...............................................................................................125
Customization Tools Dialog..................................................................................................................126
Tree View......................................................................................................................................127
Wizards and Script Editor...............................................................................................................128
Tools Menu...................................................................................................................................129
Custom Session Options..............................................................................................................................130
Top Most Mode....................................................................................................................................130
Disable Top Most Mode.................................................................................................................131
Grid Settings.........................................................................................................................................131
Grid Size........................................................................................................................................131
Snap to Grid Mode........................................................................................................................132

10.0.700 5
Contents Epicor ICE 3.0 Customization User Guide

Suppress Save Comment Dialog............................................................................................................132


Activate the Suppress Save Comment Option................................................................................133
Hide, Move, and Add Elements....................................................................................................................134
Hide Elements.......................................................................................................................................134
Hide Elements – Example...............................................................................................................134
Move Elements.....................................................................................................................................136
Move Elements – Example.............................................................................................................136
Add Elements.......................................................................................................................................140
The Toolbox..................................................................................................................................140
Toolbox Tour - Part One.........................................................................................................141
Toolbox Tour - Part Two.........................................................................................................143
Add a Text Box..............................................................................................................................145
Place Field..............................................................................................................................145
Bind Field...............................................................................................................................146
Add a Label............................................................................................................................148
Save and View the Customization...........................................................................................153
Add an EpiRetrieverCombo Box.....................................................................................................154
Add a Grid....................................................................................................................................158
Save Options................................................................................................................................................162
Select Save Options..............................................................................................................................163
Export Customizations.................................................................................................................................165
Export the File.......................................................................................................................................165

Chapter 4: Advanced Customization............................................................167


Customizing Alternate Interfaces.................................................................................................................167
Create MES Developer Icon...................................................................................................................167
Launch Developer Mode.......................................................................................................................169
Styling Specific Controls...............................................................................................................................173
Define the Control Style........................................................................................................................173
Create the Control Style.......................................................................................................................175
Disable the Control Style.......................................................................................................................180
Non-Customizable Forms.............................................................................................................................182
Customization Form Wizards.......................................................................................................................182
Rule Wizard..........................................................................................................................................182
Add a Basic Condition...................................................................................................................182
Rule Conditions.............................................................................................................................184
Create Basic Rule Actions..............................................................................................................184
Available Actions...........................................................................................................................187
Cross View Rule.............................................................................................................................188
Create a Custom Condition...........................................................................................................190
Define Rule Action.................................................................................................................191
Create a Custom Rule Action.........................................................................................................194
Enter Custom Code................................................................................................................197
Create a BitFlag Rule.....................................................................................................................198

6 10.0.700
Epicor ICE 3.0 Customization User Guide Contents

Define BitFlag Rule Action......................................................................................................200


Image Column Wizard..........................................................................................................................202
Add an Image Column..................................................................................................................202
Add an Image Column Rule...........................................................................................................203
Image Column Row Rule Wizard...................................................................................................206
Use the Wizard.......................................................................................................................207
Test the Image Column..........................................................................................................210
Form Event Wizard...............................................................................................................................212
Single Condition Form Event..........................................................................................................212
Multiple Conditions Form Event.....................................................................................................214
Available Events.............................................................................................................................215
Sheet Wizard........................................................................................................................................216
Add a New Sheet..........................................................................................................................217
Add a Dashboard to a New Sheet..................................................................................................219
Use the Dashboard Wizard.....................................................................................................219
Finish the Sheet......................................................................................................................222
Event Wizard........................................................................................................................................223
Create a Button Click Event...........................................................................................................223
Add an Event to a Grid..................................................................................................................226
Foreign Key Views........................................................................................................................................227
Create a Foreign Key View....................................................................................................................228
Display Foreign Key View Data..............................................................................................................230
Add a Like Property..............................................................................................................................234
Add an Image Column..........................................................................................................................235
Script Editor.................................................................................................................................................236
Script Editor Interface...........................................................................................................................236
Editing Menu........................................................................................................................................238
Test the Code.......................................................................................................................................239
Script Editor Options.............................................................................................................................241
Display Options.............................................................................................................................241
Areas.....................................................................................................................................242
Text........................................................................................................................................242
Control..................................................................................................................................243
General..................................................................................................................................244
Tabs.......................................................................................................................................244
Event Handlers......................................................................................................................................245
InitializeCustomCode()...................................................................................................................245
DestroyCustomCode()...................................................................................................................245
[ViewName]_BeforeRowChange() Handles EpiDataView.EpiRowChangingEvent event...................245
[ViewName]_AfterRowChange() Handles EpiDataView.EpiRowChanged event...............................245
[Table/ViewName]_BeforeFieldChange() Handles DataTable.ColumnChanging event......................246
[Table/ViewName]_AfterFieldChange() Handles DataTable.ColumnChanged event.........................246
[ViewName]_DataView_ListChanged() Handles DataView.ListChanged event.................................246
Retrieve().......................................................................................................................................246
[FormName]_Load() Called from end of EpiBaseForm_Load()..........................................................246

10.0.700 7
Contents Epicor ICE 3.0 Customization User Guide

[FormName]_Closing() Handles EpiBaseForm.Closing()...................................................................246


[ViewName]_EpiViewNotification() Handles....................................................................................247
AfterGetByID()...............................................................................................................................247
oTrans_[AdapterName]_BeforeAdapterMethod()............................................................................247
oTrans_[AdapterName]_AfterAdapterMethod()..............................................................................247
TrackerQueryRowChanged()..........................................................................................................247
Event Sequence for Startup...................................................................................................................248
Event Sequence for Shutdown..............................................................................................................248
Script Editor Examples...........................................................................................................................249
Launch a UI Application (UIApp)....................................................................................................249
Validation Test Code.....................................................................................................................249
Launch Search for Specified Adapter..............................................................................................249
Before/AfterAdapter Method() Example.........................................................................................250
Custom Object Explorer...............................................................................................................................251
Launch Custom Object Explorer............................................................................................................252
UI Objects.............................................................................................................................................253
What Displays................................................................................................................................253
The EpiTransaction Object (oTrans)................................................................................................255
Form Object..................................................................................................................................256
The Session Object........................................................................................................................256
The CustomScriptManager Object.................................................................................................257
Processes Calling Object................................................................................................................258
Data Objects.........................................................................................................................................259
What Displays................................................................................................................................259
EpiDataView Object.......................................................................................................................260
Adapters...............................................................................................................................................261
What Displays................................................................................................................................262
Assembly Reference Manager......................................................................................................................263
Assembly Reference Manager – How to Use.........................................................................................264
The String Manager.....................................................................................................................................265
Create Custom Strings for Translation...................................................................................................265
Strings and the Translation Utility..........................................................................................................267
Customization Code Wizards.......................................................................................................................267
Launch a Wizard...................................................................................................................................268
Business Logic Assembly References Wizard..........................................................................................269
Extended Property Wizard.....................................................................................................................270
Simple Search Wizard...........................................................................................................................271
Add User Defined Fields.................................................................................................................271
Add Custom Column.............................................................................................................273
Regenerate Data Model.................................................................................................................274
Add Controls to Form....................................................................................................................276
Use the Event Wizard....................................................................................................................279
Add Text Fields..............................................................................................................................280
Launch the Simple Search Wizard..................................................................................................282
Finish the Customization...............................................................................................................284

8 10.0.700
Epicor ICE 3.0 Customization User Guide Contents

Business Object Method Call Wizard.....................................................................................................286


User-Defined (UD) Table Add/Edit/Delete Functionality Wizard..............................................................288
Custom Grid for Data Entry...........................................................................................................290
Launch the User Defined Table as Child Wizard......................................................................290
Use the Event Wizard.............................................................................................................292
Custom XML Editor......................................................................................................................................294
XML View.............................................................................................................................................295
Custom Controls..................................................................................................................................296
Custom Properties................................................................................................................................297
Debug Customizations.................................................................................................................................298
Launch Debug Mode............................................................................................................................298

Chapter 5: Customization Utilities...............................................................302


Database Viewing Tools...............................................................................................................................302
Data Dictionary Viewer.........................................................................................................................303
Data Dictionary Viewer – Table View..............................................................................................303
Data Dictionary Viewer – Field View...............................................................................................304
Data Dictionary Viewer – Field Report............................................................................................305
Field Help.............................................................................................................................................306
Tracing Log...........................................................................................................................................309
Use Tracing Log.............................................................................................................................310
Global Customization Tools.........................................................................................................................311
Context Menu Maintenance.................................................................................................................312
Edit a Context Menu.....................................................................................................................312
Test the Context Menu..................................................................................................................314
Create a Context Menu.................................................................................................................315
Deploy New Context Menus..........................................................................................................317
Custom Fields.......................................................................................................................................318
Create the User-Defined Table.......................................................................................................319
Add Custom Columns...................................................................................................................321
Synchronize Table..........................................................................................................................322
Regenerate Data Model.................................................................................................................323
Extended Property Maintenance....................................................................................................324
Select the Dataset..................................................................................................................324
Update Field Extended Properties............................................................................................325
User Defined Codes Maintenance..................................................................................................328
Create a User-Defined Code Type...........................................................................................329
Create User-Defined Codes....................................................................................................329
Add Code Type as an Extended Property................................................................................330
Resource Editor.............................................................................................................................331
The MfgCustomImages.Resources File....................................................................................332
Add Images Using the Image Browser....................................................................................333
BAQ Zones...........................................................................................................................................335
The BAQ Zone Process...................................................................................................................335

10.0.700 9
Contents Epicor ICE 3.0 Customization User Guide

Create the Business Activity Query..........................................................................................335


Attach the BAQ Zone – Extended Property Maintenance.........................................................337
Attach the BAQ Zone – Embedded Customization..................................................................338
BAQ Zone Run Mode.............................................................................................................340
Use Case: Customer Website BAQ Zone........................................................................................342
Create the BAQ......................................................................................................................342
Attach the BAQ – Extended Property Method.........................................................................344
Personalize the Zone Indicator................................................................................................345
Activate the BAQ Zone...........................................................................................................347
Use Case: Part Image BAQ Zone....................................................................................................349
Create the BAQ......................................................................................................................349
Create the Customization.......................................................................................................352
Create a Shortcut Key............................................................................................................356
Use the BAQ Zone..................................................................................................................358
Use Case: Customer Part BAQ Zone...............................................................................................358
Create the BAQ......................................................................................................................359
Create the Customization.......................................................................................................363
Use the BAQ Zone..................................................................................................................368
Menu Deployment.......................................................................................................................................370
Main Menu Deployment.......................................................................................................................370
Replace Existing Program...............................................................................................................371
Add Custom Program....................................................................................................................371
Copy Custom Program..................................................................................................................374
Sub Program Deployment.....................................................................................................................376
Create Custom Sub Process...........................................................................................................377
Menu Maintenance.......................................................................................................................379
Process Calling Maintenance.........................................................................................................381
Test the Sub Process Program........................................................................................................383
Customization Management........................................................................................................................383
Personalization Purge............................................................................................................................383
Customization/Personalization Maintenance.........................................................................................384
Epicor Web Access Customizations................................................................................................385
Review, Update, Delete Customizations/Personalizations................................................................385
Export Customizations/Personalizations..........................................................................................387
Import Customizations/Personalizations.........................................................................................388
Verify Customizations/Personalizations..................................................................................................389
Verify a Selected Customization/Personalization.............................................................................390
Verify a Group of Customizations/Personalizations.........................................................................392
Run and Modify a Customization/Personalization..................................................................................393
Run a Customization/Personalization.............................................................................................393
Modify a Customization/Personalization.........................................................................................395
Show Custom Data...............................................................................................................................396
Review Controls and Properties.....................................................................................................396
Fix Custom Code...........................................................................................................................398
Retriever Combo Conversion.........................................................................................................400

10 10.0.700
Epicor ICE 3.0 Customization User Guide Contents

Force Validation....................................................................................................................................400
Generate Web Forms............................................................................................................................401
Verify Web Access Uniform Resource Locator................................................................................402
Generate Web Form......................................................................................................................402
Verify Form Availability..................................................................................................................404
Customization Maintenance Log...........................................................................................................404
Display the Log..............................................................................................................................404
Clear Application Cache.......................................................................................................................405
Display the Application Cache.......................................................................................................405
Clear the Application Cache..........................................................................................................407

Chapter 6: User-Defined Tables....................................................................408


Standalone User-Defined Tables...................................................................................................................408
Add the User-Defined Table Node.........................................................................................................408
Find the User-Defined Table...........................................................................................................411
Customize a User-Defined Table...........................................................................................................412
Modify the Interface......................................................................................................................414
Add an EpiRetrieverCombo...................................................................................................................419
Modify EpiRetriever Combo Properties...........................................................................................422
Parent/Child User-Defined Tables.................................................................................................................424
Parent and Child EpiRetrieverCombos...................................................................................................424
Add a Parent/Child User-Defined Table..........................................................................................425
Find the User-Defined Table...................................................................................................427
Customize a Parent/Child User-Defined Table................................................................................428
Modify the Child Sheet...........................................................................................................431
Display Parent/Child User-Defined Table Data................................................................................433
Create Extended User Defined Table.......................................................................................433
Add the Parent EpiRetrieverCombo.........................................................................................436
Add the Child EpiRetrieverCombo..........................................................................................443
Add Custom Assemblies.........................................................................................................449
Enter the Custom Code..........................................................................................................452
Test the Customization..................................................................................................................457
Parent and Child EpiRetrieverCombo Custom Code.......................................................................458

Chapter 7: Localization..................................................................................461
Country Group and Country Codes..............................................................................................................461
Install Languages.........................................................................................................................................462
Purchasing and Installing Language Files...............................................................................................462
Language Maintenance................................................................................................................................462
Add a Language...................................................................................................................................463
Import Translations........................................................................................................................464
Edit Translations...................................................................................................................................466
Enter New Translated Text....................................................................................................................468
Enter Program Specific Text..................................................................................................................468

10.0.700 11
Contents Epicor ICE 3.0 Customization User Guide

Export a Language................................................................................................................................470
Generate Resource Assemblies..............................................................................................................471
Change Language Culture....................................................................................................................472
Reset Cached Resource Information......................................................................................................473
Change Languages......................................................................................................................................474
Change Language in Modern Shell Interface.........................................................................................474
Change Language in Classic Style Interface...........................................................................................476
Classic Style Status Bar..................................................................................................................477
Localization Layer.........................................................................................................................................479
Create the Localization Layer................................................................................................................479
Use the Localization Layer.....................................................................................................................483
Translation Utility.........................................................................................................................................487
Translation Utility – On-Line Translation List..........................................................................................488
Translation Utility – Customization Records...........................................................................................491
Translation Utility – Missing in Dictionary..............................................................................................493
User Account Maintenance..........................................................................................................................494
Define the User Account Culture Code.................................................................................................494
Define the User Account Language.......................................................................................................497
Translation Utility Rights.......................................................................................................................498
Test the User Account...........................................................................................................................499

Chapter 8: ERP 10 Solution Management....................................................501


User Maintenance........................................................................................................................................501
Assign Solution Management Rights.....................................................................................................502
Solution Element Maintenance.....................................................................................................................502
Review Solution Elements.....................................................................................................................503
Solution Types Maintenance........................................................................................................................505
Review Solution Types..........................................................................................................................505
Add a Solution Type.............................................................................................................................506
Solution Workbench....................................................................................................................................508
Use Solution Workbench......................................................................................................................508
Track Your Activity................................................................................................................................510
Select the Solution Record.............................................................................................................510
Create a Custom Dashboard..........................................................................................................511
Add Items to Solution...........................................................................................................................513
Build a Solution....................................................................................................................................515
Install a Solution...................................................................................................................................517
Verify the Solution Installed..................................................................................................................519

12 10.0.700
Epicor ICE 3.0 Customization User Guide Introduction |

Introduction

The Epicor ICE 3.0 User Experience and Customization Guide explores the interface tools available within the
Epicor ICE framework. This guide is intended for managers responsible for fine-tuning their departmental use of
the Epicor 9 application and advanced users looking to modify the application interface for their specific needs.
This guide begins by exploring the various startup methods available within the configuration settings file. It then
examines the functionality for both styling the look of the interface and personalizing specific programs by user.
Then the customization tools are thoroughly documented through a series of chapters beginning with the basic
customization tools and then progressing on to managing customizations and modifying user-defined tables.
This guide concludes with chapters on localizing the application for different languages/cultures and building a
customized solution. You need both sets of tools fully leverage the Epicor application throughout your domestic
and international organization.
Use this guide as a starting point to learn about the available interface tools and as a reference for later use of
these same tools. This guide is a crucial resource for anyone who needs to leverage these tools for both managing
and enhancing their organization’s unique business practices.

10.0.700 13
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

Chapter 1: Styling and Themes

Complete control over the look and feel of the entire interface is available through the styling functionality. You can
use this toolset to display a pre-built design, or theme, from the options installed with the application. You can also
use these tools to edit an existing theme and create a new theme.
Through the styling functionality, you manipulate the look of each item, or component, within the interface – buttons,
check boxes, fields, borders, and other items. You have complete control over the look of each component, as you
can update the different states in which they display. For example, you can create multiple button states – normal,
selected, pressed – in a graphics program and then add these various states as the default look for all buttons within
the application. Because you are updating one user interface definition, or UI role, the changes you make display
globally throughout the interface.
Your updated or new theme can then be made available to everyone within your entire organization. This toolset
contains export and import functions, which you can then pass along your revised or new theme to whomever you
want.
Use the styling functionality to create a user interface unique for your company, departments, and users. By refining
the look of existing themes or creating new ones, you can transform the application to display an entirely different
look and feel.

User Maintenance

Only specific users can access the styling functionality. You give users styling rights through User Account
Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

Assign Styling Rights in User Maintenance


To assign styling rights to a user account:

14 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

1. Use the Detail sheet to find and select the user record you need.

2. Click the Options sheet.

3. Select the Can Maintain Themes check box.

4. Click Save on the Standard toolbar.

This user can now access the Styling features. The next time this user logs into the application, the styling features
are available on the Options menu from the Main Menu.

Style Theme Loading

You can load any pre-built, new, or updated Theme to quickly preview and edit the look of the interface. You
do this in the Load Style Theme program.
Some alternate themes were automatically installed with the application. If any new or revised themes become
available on your system, you can also select them to preview and edit through this functionality.

Load Style Theme


To preview the interface theme:

10.0.700 15
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

1. On the Main Menu, from the Options menu, select Styling > Load Style Theme.

2. The Open window displays.

3. This window defaults to the Styles folder. This folder contains all default themes available for your application.

4. Select the theme you want to use. Notice that all themes use the .isl file extension. In this example, you
select the ArcticBlue.isl theme.

Epicor recommends that you save all your themes within


this folder; this makes it easy for your users to find and
select them. This folder is located within the
C:\epicor\<Client Installation Name>\Client\Styles.

5. Click Open.

16 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

6. The interface now displays using the selected theme.

You can now use this theme for the rest of the current session. You can also use the Runtime Stylist to edit the
theme. Note that if you exit the application, however, the theme reverts back to the default theme.
If you want a different theme to become the default, run the Theme Maintenance program. Use this tool to
indicate that a different, selected theme becomes the default look when you launch this client application. For
more information about this tool, read the Theme Maintenance section later in this chapter.

Another way to define a default theme is to change a setting


within the Configuration Settings File. This file controls several
global sessions for your client installation. To define a default
theme in this file, you change the Styles setting. You can learn
more by reviewing the Configuration Settings File section within
the Startup Configurations chapter. Customized controls can
also be set up to display a specific style; review this functionality
within the Advanced Customization chapter.

Runtime Stylist

The primary tool of the Styling functionality is the Runtime Stylist. Use this tool to change the appearance of
every component within the user interface. You can then see this change immediately, as the interface is updated
while the application runs. This helps you decide if you like, or do not like, the change to the interface.
You use this tool to modify an existing theme or create an entirely new theme. You can then use this theme for
your client installation and make it available to other users within your company.
The application runs in two modes – Run Mode (or Runtime) and Developer Mode. Typically you use the application
in Run Mode, which means that the application sheets are used for normal activities like data entry and processing.
The Runtime Stylist operates in Run Mode, so you can see the application in action while you edit the styling.
In Developer Mode you suspend the normal operation of the program in order to customize it. The styling features
are never used in Developer Mode. For more information about the two modes, read the Basic Customization
chapter.

10.0.700 17
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

Runtime Stylist divides the user interface items into three main categories – UI Roles, Component Role Settings,
and Shared Object Role Settings.
Each of these categories has various properties and options that you can manipulate as you need. The differences
between these categories are explored later in this section.

The Runtime Stylist is a third party application published by


Infragistics, Inc.® The tool is based on this company’s
NetAdvantage® AppStylist® application. This section of the
chapter gives you a tour of the primary features of this tool.
For complete information on this company and its products,
please visit their website at: www.infragistics.com.

Launch the Runtime Stylist


To launch the Runtime Stylist:

1. On the Main Menu, from the Options menu, select Styling > Runtime Styler.

18 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

2. The Runtime Stylist displays next to the Main Menu.

You can now use this program to update or create new themes.

Runtime Stylist – Primary Controls


This section defines all the main controls within the Runtime Stylist. Use these controls to create a new theme,
load an existing theme,and manage the default styling on specific components.

Use Style Library


The Style Library displays on the top section of the Runtime Stylist. This section contains the primary controls for
this program. Available options:

1. The Style Library: section indicates which theme is currently loaded.

2. Click the New button to create a new theme.

3. To update an existing theme, click the Load button.

4. To create a copy of the current theme, click the Save As… button.

5. Click Save to record your changes to a current theme.

10.0.700 19
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

6. If you want to constantly display the Property Panel, click the Show/Hide Property Panel button. The
Property Panel always stays on your screen; it displays different items based on the selected setting,
component, or UI role.

7. The Update Mode tab defines how the interface refreshes after you make changes to the current theme.
The Runtime Stylist is set to immediately update the interface; you cannot change this value.

Manage StyleSets
The base look and feel of each interface component is defined through a StyleSet. Much like a cascading style
sheet determines the look and feel of an .html page, a StyleSet determines the original overall look contained
within the selected theme. You can then change the baseline look of each component through the Runtime
Stylist.
Use the middle section of the Runtime Stylist to control the StyleSet used on the current theme. Available options:

1. Click the Add New, Remove, or Manage StyleSets buttons.

2. The StyleSet Manager window displays.

3. Click the Add New button to create a new StyleSet to add to the current Style Library (theme). It is called
New StyleSet – followed by an incremented number.

4. To delete the current StyleSet from the library, click the Remove button. To the confirmation message, click
Yes.

5. If you wish to change the default StyleSet used by the current theme, highlight the StyleSet option you want
from the Existing StyleSets list.
For example, the EpiStyle_Invisible style set is used to hide a specific field. However, you could change this
style to use a gradient, image, or other style. You can then apply this style to a field using the Rule Wizard.
For more information, review the Rule Wizard sections in the Advanced Customization chapter.

6. Select the Make Default option. The StyleSet now displays in bold text followed by this word: (Default)

20 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

7. The StyleSet Name field displays the selected StyleSet. If you need, you can change the name of the StyleSet.

8. To use one StyleSet as the foundation for a new StyleSet, select this StyleSet from the Based On drop-down
list. In this example, StyleSet 2 is based on StyleSet 1.This means that StyleSet 2 now uses all of StyleSet 1’s
component styles – unless this styling is changed within StyleSet 2.

9. Use the Control Defaults list to select a style for a specific component. To do this, select the check box
next to the component. This style is now the default for this component within the current theme.
Only one default style is defined for each component, so if you select a component that already has one,
you are asked if you want to change it.

10. When you finish working on the StyleSets for this theme, click OK.

Resources
Resources are containers of style information that you can then use within themes. A resource can be any item
you create or add to a theme, like a gradient or a graphic file. Each resource can then be applied to a UI Role.
You can use the Runtime Styler to import and export various resources (graphics, colors, and other settings) that
you use with your themes. You can then incorporate these resources into any role on the user interface that you
need.
UI Roles are styling records that create a uniform look for the various interface components like buttons, fields,
borders, check boxes, and other items. To learn more about UI Roles, read the UI Roles section later in this chapter.

Manage Resources
Use the Resources tab to manage all the resources stored within the current Style Library (theme). To use this
tab:

1. Click the Resources tab.

2. Click the Add New button to create a new resource. This displays the Properties Panel; use this window
to create the resource. To learn more about this key styling window, read the UI Roles section later in this
chapter.

10.0.700 21
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

3. After you add a resource to the current Style Library, it is labeled as Resource 1, Resource 2 and so on. To
change the label text, right-click the resource; its context menu displays. Select the Rename command to
change the label.

4. Notice that you also Add New and Remove resources through this context menu.

5. If you want to duplicate the selected resource, select the Create Copy command from the context menu.

6. To create a new resource from another resource, use the commands under the Copy From submenu.

7. To delete a resource from the Style Library, highlight it and click the Remove button.

8. You can also pull in the resources from another style library (theme). To do this, click the Import button.
This launches the Open Style Library window from which you select an .isl file to load. For more information,
read the next section, Resources Tab –Importing Resources, to learn about the import functionality.

9. If you click the More Buttons icon, you display the Export button. Click this button to save this resource
list as a separate file. This causes the Save Style Library button to display, where you can select a folder
and enter a filename for the new library.

Import Resources
While you import resources, you can indicate which specific resources you want imported from a selected style
library (theme).
To select the resources:

1. On the Resources tab, click Import.

2. The Open Style Library window displays.

3. By default, this window opens the Styles folder. If you need, you can navigate to another folder that contains
the .isl file (theme) you need.

4. Select the .isl file that contains the resources you want to import.

5. Click Open.

22 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

6. The Select Resources window displays.

7. You can now indicate which resources you want to import from the style into the current theme. If you
want to import a single resource, highlight it from the list.
To select a range of resources, hold down the <Shift> button on your key board and select two different
resources; all the resources within this range are selected.
To select specific, multiple resources, hold down the <Ctrl> button on your keyboard while you select the
specific resources you want to import. Notice that in this example, the <Ctrl> button was used to select the
highlighted resources.

8. To select all the resources in this library, click the Select All button.

9. To remove your selections, click the Deselect All button.

10. When you finish, click OK.

If an imported resource has the same name as a resource


currently used in your theme, the Resource Name Conflict
window displays. Use this window to rename the resource
and resolve the name conflict.

11. The resources you selected display within the Resources tab.

Roles
Use the Runtime Stylist to update the styles of specific components through the Roles tab. To do this, you use
the Roles Tree View to navigate through all the components on the user interface. You can also use the Tree
View to launch the Properties Panel for each UI Role, so you can make detailed appearance changes on each
role.
Roles use an inheritance feature to help you make global changes to a theme. When you make a change to a
base role, this change is then passed along to all the components that use this base role. For example, each base

10.0.700 23
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

role contains a default background resource; you can change the color on this resource. This causes all the
components which use this base role to display using the same background color.
You can, however, override this inherited styling on specific components. Leverage this functionality to create
an overall style for your theme, but then add variations to it as you need.

If you need to override styling from a base role, you must set
the component’s UseOSThemes property to False. The example
at the end of this chapter shows you how to change this
setting.

This section describes the three main role categories – UI Roles, Component Role Settings, and Shared Object
Role Settings. It also describes the specific options you can change for each role type.

Change the Look of UI Roles


A UI Role is a category that defines the overall look for buttons, labels, radio options, or any other component
on the user interface. You change the look of each UI Role through the Runtime Stylist. These changes then
display on any component that uses the UI Role.
To do this, UI Roles have a parent-child relationship organized through a Tree View. Any property changes you
make to a UI Role that has a higher node within the tree causes other UI Roles beneath it to display the same
changes. If you make a change on a child UI Role, however, this change does not override the settings defined
on the parent UI Role. As a result, you can create unique styles for specific components.
To navigate and select a specific UI Role:

1. Click the Roles tab.

2. To reduce the number of UI Roles that display, click the Filter by Control drop-down list. Select the specific
component that you want to change. In this example, you select the UltraButton option; now the Tree View
only displays the UltraButtonBase role and its child roles.

3. In the Tree View, expand the UI Roles node.

4. Click the Base parent node and continue to expand the child nodes until the UI Role you want displays.

5. In this example, you want to change the properties for the UltraButtonDefault role. Select this role.

24 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

6. The Properties Panel window displays. Use this panel to change the style settings for the role. For this
example, the panel is labeled: Settings for ‘UltraButtonDefault.

7. Each role contains various states through which it displays. Depending on the user’s actions on the interface,
a different state for the component appears. In this example, the UltraButtonDefault role has a Normal
state, a HotTracked (highlighted) state, and a Pressed state. You can edit the settings of each state as you
need.

8. Notice you can always restore all the states of the current UI role to their original values. To do this, click
the Reset States button.

9. Select the tab of the state you wish to edit. In this example, you select the Normal tab.

10. Notice that the bottom toolbar divides the state’s settings into Background, Border, Font, Image, and
Other groups.

The next sections detail the style settings available within each group.

Set Background Image for UI Role


The Background options define what the current state’s background looks like – including fill color, image (if
used), disabled color, and alpha level. Available options:

1. Click the Background Fill drop-down list to define whether the background for the role is a solid color,
gradient, or a hatch pattern.

2. Use the Fill button to indicate the main color displayed for the background of the state. When you select
either a gradient or a hatch pattern, two Fill buttons then display. You can then define the two colors used
for the background gradient or pattern.

3. Click the Type button to define the gradient or hatch pattern type that displays. When you click this button,
a list appears; select the gradient or hatch pattern type you want.

4. To substitute an image for the state’s background, click the Image button and select File from the drop-down
list. An Open File window displays. Find and select the image file that you want to display.

10.0.700 25
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

5. If the main image is not available, you can indicate that a second image can be displayed instead. To define
this image, click the Disabled Image button to find and select this backup image from the Open File
window.

6. Click the Layout Mode drop-down list to indicate how this image displays within the state. Available options:
• Center – The image is placed in the middle of any component that uses this state.
• Stretch – The image is pulled across any component that uses this state. The image size is not modified,
so it may or may not fill the entire component.
• Tile – The image size is not modified. Instead, multiple versions of the image display through a series of
tiles.

7. If you select the Stretched layout mode, the Margins button displays. Click this button to display the
Stretch Margins Editor.

8. Use the Top, Right, Bottom and Left values to define the margins, in pixels, for the image.

9. When you finish, click OK.

10. You return to the Properties Panel.

11. Click the Image Alpha drop-down list to select how the image displays. Available options:
• UseAlphaLevel – Select this option to use the Alpha Level defined on the Other section of the Properties
Panel. For more information, review the UI Roles – Other section later in this chapter.
• Opaque – Users see this image exactly as it normally appears.
• Transparent – Users can see through the image.

12. Use the Disabled Fill button to select what color is used when the main selected color is not available. If
the Background Fill is for a gradient or a hatch pattern, a second Disabled Fill button becomes available.

26 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

Use this button to select a second color to use when the second gradient or hatch pattern color is not
available.

13. Click the Alpha drop-down list to select how the background fill colors display. Available options:
• UseAlphaLevel – Select this option to use the Alpha Level defined on the Other section of the Properties
Panel. For more information, review the UI Roles – Other section later in this chapter.
• Opaque – Users see this color exactly as it normally appears.
• Transparent – Users can see through this color.

Set Border for UI Role


The Border options define what the border of the state looks like. Available options:

1. Click the Border button.

2. The Color Picker window displays. Use this window to define what color the current state of the UI Role
uses along its edge.

3. If you want, you can also make the border appear transparent by clicking the Transparent button (the
button with the red line through it) within the Color Picker.

4. After you select the color, you return to the Properties Panel.

5. Click the Border 2 button to launch the Color Picker; use this window to define a second color that this UI
Role displays along its edge.

10.0.700 27
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

6. You can use the Border 3D button to select the color (from the Color Picker) of the three dimensional
border. If you want, you can also make the border appear transparent by clicking the Transparent button
(the button with the red line through it) within the Color Picker.

7. Click the Alpha drop-down list to select how the border color appears to the user. Available options:
• UseAlphaLevel – Select this option to use the Alpha Level defined on the Other section of the Properties
Panel. For more information, review the UI Roles – Other section later in this chapter.
• Opaque – Users see this color exactly as it normally appears.
• Transparent – Users can see through this color.

Set Font Attributes for UI Role


Use the Font setting to change the font type, size, color, style, and other font attributes for the selected state.
Available options:

1. Click the Font Type drop-down list to select the specific font you use for this state of the UI Role.

2. Click the Font Size drop-down list to define how large the font displays. You can also use a size not available
on this list. To do this, click the Font Size field and enter the number you need.

3. Click the Font Color button to display the Color Picker. Use this window to define the color this font uses.

4. Use the Font Style buttons to indicate whether any additional styling, like bold or italics, is used with this
font. Available style buttons:
• Bold
• Italics
• Underline
• Strikethrough

5. Click the Vertical Alignment button to indicate the alignment that this text has in vertical relationship
within the borders of the component. Available options:
• Top
• Middle
• Bottom

28 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

6. Click the Horizontal Alignment button to indicate the alignment that this text has in horizontal relationship
within the borders of the component. Available options:
• Top
• Middle
• Bottom

7. If the text does not fit within the component borders, you can specify how to display this text by using the
Text Trimming drop-down list. In this example, EllipseWord is selected, indicating that ellipses display on
the component to indicate that additional words cannot be displayed.

8. Use the Disabled button to select what color is used when the main font color is disabled. Click this button
to display the Color Picker; use this window to select the backup color that you need.

9. Use the Alpha drop-down list to select how the font displays on the component. Available options:
• UseAlphaLevel – Select this option to use the Alpha Level defined on the Other section of the Properties
Panel. For more information, review the UI Roles – Other section later in this chapter.
• Opaque – Users see this font exactly as it normally displays.
• Transparent – Users can see through this font.

Set Foreground Image for UI Role


Use the Image options to define how a foreground image displays within a component that uses this state. This
image displays in front of any background image, color, gradient, or hatch pattern. Available options:

1. Click the Image button to find and select the foreground image you want to display. When you select the
File option, an Open window displays that you use to search for the image file you want.

2. Click the Vertical Alignment button to indicate the alignment that this foreground image has in vertical
relationship within the borders of the component. Available options:
• Top
• Middle
• Bottom

3. Click the Horizontal Alignment button to indicate the alignment that this foreground image has in
horizontal relationship within the borders of the component. Available options:
• Top
• Middle
• Bottom

10.0.700 29
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

4. Click the Alpha drop-down list to select how the image displays on the component. Available options:
• UseAlphaLevel – Select this option to use the Alpha Level defined on the Other section of the Properties
Panel. For more information, review the UI Roles – Other section later in this chapter.
• Opaque – Users see this image exactly as it normally displays.
• Transparent – Users can see through this image.

Define Additional Options for UI Role


The Other section contains additional options that do not fit in any of the previous sections of the Properties
Panel.
Available options:

1. Click the Cursor drop-down list to define how the mouse pointer displays when it hovers over a component
that uses this state.

2. The Alpha Level defines how visible the selected color level is for this UI role. The Background, Border,
Font, and Image sections all have an option that can use this Alpha Level value; review these previous
sections for more information.
If the value is set to 0, the current state of the UI role does not appear. As the level increases, the state
becomes more and more visible. It is fully visible at Alpha level 255.

3. The Themed Element Alpha button is similar to the Alpha buttons found on the Background, Border,
Font, and Image sections. The value you select here, however, only applies to themed elements when the
UseOsThemes property is set to TRUE. This property is a Component Role Setting that you can apply to
all the UI roles within your theme; a later section in this chapter, Component Role Setting, explains how
you change these settings.
If you set this value to Transparent, you turn off the styling for this state of the UI role.

Preview UI Role
Use the Resources and Preview sections to both apply resources to the current state and preview how they display.
You can also convert a state into a resource that you can then use in another state.
To use this section of the Properties Panel:

1. To display the Resources options, click the Down Arrow within the Resources section.

30 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

2. To add a resource to this state, click the + (Plus) button.

3. To delete a resource from this role, click the - (Minus) button.

4. When a resource is higher in the list than another resource, its settings take precedence over any resource
that is below it.
For example, the first EpiShape resource has a Green gradient on its background. The second EpiShape
resource has a Yellow gradient applied to its background. The first EpiShape resource is higher on this list
than the second EpiShape resource. Because of this, the state displays the Green gradient.

5. To change the order of precedence, select the resource and click either the Up button or the Down button.
Continuing the previous example, if you move the second EpiShape resource higher than the first EpiShape
resource, the Yellow gradient now displays instead of the Green gradient. The current state of the role
updates with the resources you define.

6. Click the Convert to Resource button to capture the appearance properties of the current state. A resource
is then created for these properties that you can then use in other UI role states.

7. Click the Down Arrow next to the Preview button to review how these resources display.

8. The Preview section displays how the selected resource looks using the current settings.

9. The 3D Preview section displays what the selected resource looks like in three dimensions.

Define Overall Styles for UI Role


Use the Properties tab to define some overall values for the current UI role. Depending on the UI Role you select,
you can define a Border Style, a Button Style, both styles, or neither styles.
To define overall styles for the UI role:

1. Click the Properties tab.

2. To select a style for this UI role's border, click the Border Style drop-down list and select a style. In this
example, the list is grayed out, so only the default border style can be used.

3. Click the Button Style drop-down list to select a style for this UI role’s buttons. Because this example is a
role for UltraButtonDefault, this drop-down list is available.

10.0.700 31
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

Manage Component Role Settings


Use the Component Role Settings features to style both Inbox Components and Infragistics® Components. Inbox
Components are interface items not included within the Infragistics® component set. Both component types
have settings that they share with other component role settings (Common Component Properties); they also
have settings available only within individual components (Component Specific Properties).

Whether or not you change the common or component specific


properties, you are only changing the style of the currently
selected component role.

To navigate and select a specific component role setting, do the following:

1. Click the Roles tab.

2. Open the Component Role Settings folder.

3. You can select All Components, Inbox Components, and Infragistics Components. In this example,
you select the Inbox Components node.

4. Select the component you want to modify. In this example, you select the Inbox CheckBox component.

5. The Properties Panel displays. In this example, it is the Settings for “Inbox CheckBox” window.

You can now modify these settings as you need.

Set Common Component Properties


Use the first section of this window to modify any properties shared across all components. Available options:

32 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

1. Click the Categorized button to display the different categories available for the selected setting. In this
example, only one behavior is available: the Resolution Order.

2. Notice that a Description of the selected property displays at the bottom of this section.

3. To display these properties in alphabetical order, click the Alphabetical button.

4. Click the Property Pages button to view any page information.

5. To manipulate a specific property, click the property’s row. All theoptions available for this property typically
display in a drop-down list. Ifa drop-down list does not appear, however, you may enter a valuewithin the
text field.

ResolutionOrder is a property unique to the Common


Component Properties section. Use this property to define
the order through which styling and component properties
are resolved. For example, if you select
ControlThenApplication, the style overrides any property
settings defined on the control component with any
settings defined within the application itself.

Set Specific Component Properties


Component Specific Properties are items available only for the selected component role. To use this section of
the window:

1. Click the Categorized button to display the different categories available for the specific setting.

2. Notice that a Description of the selected property displays at the bottom of this section. In this example,
the BackColor description displays.

3. To display these properties in alphabetical order, click the Alphabetical button.

4. To view any page information, click the Property Pages button.

10.0.700 33
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

5. To manipulate a specific property, click the property’s row. All options available for this property typically
display in a drop-down list. If a drop-down list does not display, however, you may enter a value within the
text field.

Manage Shared Object Role Settings


The Shared Object Role Settings node displays the objects used between multiple components. For example, the
Embeddable Editors display under this node; these editors pull from base UI classes like EditorWithCombo,
EditorWithMask, and EditorWithText.
Any changes you make to these shared object roles are then passed along to all the components which use these
object roles.

The rule to remember is that when you change aComponent


Role Setting, you only change thecomponent. When you
change a Shared ObjectRole, you affect all the components
that use theshared object.

To navigate and select a shared object role setting:

1. Click the Roles tab.

2. Open the Shared Object Role Settings folder.

3. All the shared object roles display. Select the setting you want to modify. In this example, you select the
DragDropIndicatorManager setting.

4. The Properties Panel displays. You can now make the changes you need to this component.

34 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

Set Specific Properties for Shared Object Role Settings


This section displays properties shared between several components. To use this section of the window:

1. Click the Categorized button to display the different categories available for the specific shared object
setting.

2. Notice that a Description of the selected shared object property displays at the bottom of this section. In
this example, BottomArrowImage displays.

3. To display these shared object properties in alphabetical order, click the Alphabetical button.

4. To view any page information, click the Property Pages button.

5. To manipulate a specific property, click the property’s row. All the options available for this property typically
display in a drop-down list. If a drop-down list does not display, however, you may enter a value within the
text field.

Components in the Used By Section


The Used By section of the Runtime Stylist displays all the components that appear using the selected UI role.
When you select an item from this list, you display the Component Role Settings window, where you can make
additional changes to this component.

Modify Components in the Used By Section


To leverage this functionality:

10.0.700 35
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

1. Use the Tree View to navigate to the role you want.

2. Select the UI Role you want to view. In this example, you select the Button role.

3. All the components that use this role display in the Used By section.

4. Select one of these components. In this example, you select the top UltraButton item.

5. The Component Role Settings window displays. Make the changes you need. For more information about
the options on this window, review the previous Manage Component Role Settings section.

Role Selection
As you make changes to the current theme, you can navigate through the user interface to see how the changes
look. Because the Runtime Stylist is active, however, you can also launch a component Property Panel to
immediately make the changes you need.
Use this tool to further refine your style. You can then make specific runtime changes to selected components
as you see them on the interface.

Use Role Selection Tool


To use the Role Selection tool:

36 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

1. Launch a program that you want to review. In this example, you launch the Analysis Code Maintenance
program.

2. Hover your mouse over a component you wish to update. In this example, you hold it over a cell in the grid.

3. The Role Selection call out window displays. This window displays all the UI Roles and Component Filters
that define the selected component – in this example the grid cell.

4. To launch the Properties Panel for one of these roles or filters, press the specific key on your keyboard. In
this example, you want to change the look of each grid cell, so press 1 on your keyboard.

5. The Property Panel, Settings for ‘GridCell’, displays.

6. Make the changes you need to this UI Role. In this example, you create a gradient that displays within the
cells of every grid.

10.0.700 37
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

7. The change immediately displays within the interface. In this example, the red gradient displays within each
cell.

Continue to use the Role Selection tool to make all the changes you want on the interface. When you finish your
changes, save your theme.

Style Filter Management

Use Style Filter Management to create filters to use within a specific theme. You can create child style filters based
on the original, or parent, theme. These filters limit these child styles so that their styling is only used within a
specific company, site, language, or program.
The style filter functionality supports many styling combinations for the same theme, as you can create a child
style filter that is then the child of another child style filter. This section also describes how you can create style
filter combinations.

Launch Style Filter Manager


To launch this program:

38 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

1. From the Options menu, select Styling.

2. Select the Style Filter Manager.

Create a Child Style Filter


To use Style Filter Management:

1. The filters available for the current theme display in the Tree View.

2. If you want to create a new style filter for a different theme, click the Load button to find and select the
.isl file you want.

3. To create a child style filter, first highlight the parent style you want on the Tree View. In this example, the
Default style is selected.

10.0.700 39
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

4. Right-click your mouse to display the context menu. Select the Create Child Style command.

5. A (New) style filter displays on the Tree View. Enter a StyleSetName for this child style filter. In this example,
you enter Epicor Education. The new Name displays on the Tree View.

6. Select a FilterType. Available options:


• Company
• Site
• Language
• Application
• None
In this example, you select Company; you can now create a child style filter for a specific company within
the default theme.

7. Define what item is affected by this filter. To do this, click the FilterTypeSelect drop-down list. Depending
on the filter, different items display. In this example, all the companies within the application are listed, so

40 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

you select the Epicor Education option. When users switch to this company, the interface displays using this
child style.

8. The FilterValue displays the name that the application uses to identify the selected item. In this example,
the company ID, EPIC06, displays.

9. You can also define the EpiResources that use this child style filter. If you need, you could enter values in
these properties to limit this child style to specific interface items, like panels, the OK shape, and so on. In
this example, you leave these properties blank.

10. The EpiStyles section defines the additional interface components that use this style filter – like the Message
Box and the Navigation Control. If you need, you can enter additional style values in these fields.

11. The Description area displays an explanation for the currently selected property. This text changes as
different items are selected.

12. You next must select the Create resources if missing check box. This indicates that you can create the
main EpiResource for this style filter.

13. Click Save.

10.0.700 41
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

14. The Save Style Library window displays.

15. Select the parent theme inside which you want to save your child style filter. In this example, you select
Inspired.isl.

16. Click Save.

Your child style filter is now saved within the parent theme. Right now, however, this filter does not change
anything. You next must launch the Runtime Stylist to define the styling you want for this child style filter.

Modify Child Style Filter


To complete the child style filter:

1. Launch the Runtime Stylist (or Infragistics App Styler).

2. Click the Load button.

42 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

3. The Open Style Library window displays.

4. Select the theme that contains your child style filter. In this example, you select the Inspired.isl file.

5. Click Open.

6. When the Runtime Stylist displays, click the Active StyleSet drop-down list and select Epicor Education.

10.0.700 43
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

7. Create your child style. Highlight an area of the interface, and press the corresponding key.

8. The Settings window displays.

9. Make the changes to this item that you want. For this example, you are changing the interface to shades
of gray.

44 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

10. To see how this styling choice looks, on the Main Menu, launch a program within the Epicor Education
company.

10.0.700 45
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

11. All the programs within this company display using this child style.

46 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

12. Access another company, and in this example, you navigate to Epicor USA and launch Sales Order Entry.

10.0.700 47
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

13. Notice that the default styling displays within this program. This happens because the child style filter applies
only to the Epicor Education company.

You can continue to create child styles for all the other companies within your organization. By leveraging this
functionality, you make it easier for users to identify different companies when they switch between them.

Filter Inheritance Priorities


Much like the roles use an inheritance hierarchy, the child style filters use a similar system. The styling defined
on a filter that has a higher priority is passed down to a filter that has lesser priority. You can then override the
inherited styling within a filter, however, by modifying a lesser priority. Here is the filtering hierarchy:

1. Default

2. Company

3. Site

4. Language

5. Application

Use this hierarchy to create many filtering combinations within a selected theme. For example, you first create a
style filter for Company VN00C. You next create a second Language style filter, which you call Spanish. Lastly,
you create an Application filter for Supplier, and this filter is a child style filter derived from the Spanish filter.
Now when you launch the application and use VN00C for the company, you see the company filter styling. If
you change the session to display the Spanish language, however, most of the forms now display using the
Spanish filter styling. The only form that does not is Supplier Maintenance, which displays the specific styling you
created through this application style filter.

48 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

Next, you open the Supplier style filter again and modify it to be based on the Default filter. This child style filter
is now applied throughout your application because it is directly related to the Default filter.
Notice that this order of inheritance prevents certain parent-child relationships from occurring. You cannot, for
example, pass along styling from a Language style filter to a Company style filter.

Style Tracking

Another styling tool that helps you create your theme is Style Tracking. You activate this tracking mode to find
out the details for a specific interface component.
Style Tracking is useful, for example, when you are trying to apply a style to a specific component. It helps you
find the details about a specific component that you can then modify within the Runtime Stylist.

Activate Style Tracking


To turn on Style Tracking:

1. On the Main Menu, from the Options menu, select Styling > Style Tracking On/Off. This turns Style
Tracking on.

2. If Style Tracking is active, the icon is highlighted.

10.0.700 49
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

View Style Tracking Information


Now styling information displays for all selected components on the interface. To view the style tracking
information:

1. Hover your mouse pointer over an interface component you want to review. In this example, you hold it
over the Material check box.

2. The Style Tracking list displays.

3. The StyleSetName indicates which StyleSet is currently used for this component.

4. The Control Name displays the specific application name for the current component. In this example,
chkMaterial is displayed.

5. The Control Type field indicates the application name for the interface component. For this example, the
EpiCheckBox control type is displayed.

6. The Top Level Control field defines the main component that contains the selected component. In this
example, AnalysisCodeForm is displayed.

7. The Read Only value indicates whether users can manipulate this control. If this value is set to True, users
can only view, and not change, this control.

You can then use this information to locate the UI role for this component within the Runtime Stylist.

Default Theme Retrieval

You can restore the original default theme by using the Unload Style Theme command. All areas within the
interface then automatically return to the default styling defined for the application.
To use this feature:

50 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

1. From Options menu, select Styling.

2. Select Unload Style Theme.

The interface changes back to display the default theme.

Case Study – New Button Theme

This section now guides you through a case study of a detailed example of styling. Use this example to better
understand how you can create your own themes to use throughout your organization.
To begin this case study, you have created a series of graphic files (within a graphics editing application) that you
would like to use for button states throughout the application. You leverage the styling functionality to create
a new theme that uses these button graphics. You then indicate that this theme becomes the default for all of
your client installations.

To create button graphics that work well with this example,


make graphics that are 22 width x 18 height pixels in size. You
should make three graphic files – a Button_Normal.png, a
Button_HotTracked.png, and a Button_Pressed.png. Be sure
to place these graphic files within a folder that you can then
access through the Runtime Stylist.

Create the Style Library


You first must create the style library for your new theme:

10.0.700 51
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

1. On the Main Menu, from the Options menu, select Styling > Runtime Styler.

2. The Runtime Stylist window displays.

3. Click the New button.

The new Style Library is created.

52 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

Define Component Role Settings


Now change some component role settings for the UltraButton component. These settings are then applied to
nearly all the buttons within the application. To define the Component Role Settings:

1. Click the Roles tab.

2. Expand the Component Role Settings node.

3. Expand the Infragistics Components node.

4. Select the UltraButton component.

5. The Property Panel, Settings for “UltraButton”, displays.

6. Change some Common Component Properties on this window.

7. Set the UseFlatMode property to True.

10.0.700 53
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

8. Set the UseOsThemes property to False. This indicates that you override the styling from a base role.

9. Close Settings for 'UltraButton'.

Define UI Role Settings


To change the settings for the UltraButton UI Role:

1. Within the Roles tab, expand the UI Roles node.

2. Expand the Base node.

3. Select the Button UI Role.

54 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

4. The Property Panel, Settings for ‘Button’, displays.

5. Verify that the Normal tab is selected. This indicates that you are modifying the Normal state for the Button
UI role.

6. Click the Background Fill Color button.

7. The Color Picker window displays.

8. Select the Transparent button (the button with the red line through it).

9. You return to the Settings for “Button” window. Notice that the Transparent icon now displays within the
Background Fill Color button.

10. Within the Border section, click the Border Fill Color button.

10.0.700 55
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

11. The Color Picker window displays. Click the Transparent button again.

12. Now the Border Fill Color button displays the Transparent icon.

Select and Size the Image


To select the specific button graphic file to use for the Normal state of this UI role:

1. Within the Background section, click the Background Image button and select the File option.

56 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

2. The Open window displays. Navigate to where you previously saved the three button states graphics you
created.

3. Select the first button state. In this example, you select the Button_Normal.png file.

4. Click Open.

5. You return to the Settings for ‘Button’ window.

6. Select the Layout Mode button.

7. Click the drop-down list, select the Stretched option.

8. A Margins button step displays. Click this button.

10.0.700 57
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

9. The Stretch Margins Editor window displays.

10. In the Left Margin field, enter 5.

11. In the Top Margin field, enter 4.

12. In the Right Margin field, enter 5.

13. In the Bottom Margin field, enter 4.

14. Click OK.

Globally Save the Styling


Because you only selected the UseFlatMode option on the UltraButton component setting, some buttons do not
use your new normal state. To make sure all the buttons throughout the application use this same state, you
need to modify a Component Role Setting.
To modify the Component Role Setting:

1. Return to the Roles tab.

2. Expand the Component Role Settings node.

3. Select All Components.

58 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

4. The Settings for “All Components” window displays.

5. Set the UseFlatMode property to True.

6. Set the UseOsThemes property to False. This indicates that you override the styling from a base role.

Now all the buttons throughout the application use your new Normal state.

Modify Hot-Tracked State


Repeat these steps for the button component’s HotTracked state. During these steps, you indicate that your
HotTracked graphic is used for this button state. Here’s how:

1. Return to the Roles tab and navigate to the Button component.

2. If you need, launch the Property Panel, Settings for ‘Button’, again. Be sure to select the Hot Tracked
tab.

3. Set both the Background Fill Color and the Border Fill Color buttons to Transparent.

4. Click the Image button and select your HotTracked.png file.

5. Select the Layout Mode to Stretched.

10.0.700 59
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide

6. Click the Margins button and use these values for the margins:
• Left – 5
• Top – 4
• Right – 5
• Bottom – 4

You now have updated the HotTracked state for buttons throughout the application.

Modify Pressed State


To modify pressed state:

1. In the Property Panel, Settings for Button, click the Pressed tab.

2. Set both the Background Fill Color and the Border Fill Color buttons to Transparent.

3. Click the Image button and select your Pressed.png file.

4. Select the Layout Mode to Stretched.

5. Click the Margins button and use these values for the margins:
• Left – 5
• Top – 4
• Right – 5
• Bottom – 4

You now have updated the Pressed state for buttons throughout the application.

60 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1

Save the Style Library


You have finished creating the button styling, so you must save this style library. It then becomes a theme you
can select for the application. To save a style library:

1. Click the Style Library tab.

2. Click the Save As button.

3. The Save Style Library window displays.

4. Enter a File Name for this theme. For this example, you enter GrayButtons.isl.

5. Click Save.

10.0.700 61
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

Chapter 2: Personalization

Personalization is defined as any change made to the application that only affects a specific user’s interface. Every user
has different needs. Some users may want to change the order of columns on a grid. Others may want to add more
options to a program’s status bar. Epicor’s application can be set up to reflect these individual needs. Use the
Personalization tools to modify any program’s interface to maximize your workspace to better match the tasks you
perform every day.
Personalizations are stored by individual user and do not affect any other users on the system. Once a personalization
is created, it can be exported from the software, and imported back in to the application for another user. It is important
to understand that personalizations are stored on the server and not on each individual user’s machine. Because of
this, if a user logs in to another workstation, their personalizations are automatically downloaded and cached to that
computer. The flexibility of the software enables every user to tailor the interface to suit their business needs and
maximize their efficiency.
In this chapter, you explore the personalization tools you can use to refine the interface and make your daily routine
more efficient. This chapter ends with a discussion on advanced personalization. Advanced personalization options are
only available to those users with user account personalization privileges.

Personalize the Main Menu Interface

Several personalization options are available at the system level or main interface. You can change the organization
of the main interface to quickly access the programs you frequently use, thus making you more efficient.
When you first log in to the application, you are presented with the main interface.

1. The Menu Bar is located on the top of the interface and contains four menus; the File menu, View menu,
Options menu and the Help menu.

2. The Standard Toolbar contains buttons you use to change your current session. These icons are also
accessible from the Options menu, which is described later in this chapter.

62 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

3. The History Toolbar contains a drop-down list that displays recent programs you have launched. To use
this feature, select a program from this list and click the Go button. The selected program displays.

4. The Menu Items Pane is located on the left side of the main interface and contains access to Menu Groups
and Favorites. The Menu Groups sheet contains a series of folders by which you navigate through the
application. The Favorites tab is where you can create personal favorites menus for your frequently accessed
programs.

5. The Contents Pane is located on the right side of the main interface. This displays the contents of each
folder as you navigate through the main menu.

6. The Status Bar displays along the bottom of the interface.

The View Menu

You can personalize the main interface in several ways. The View menu can be used to select interface functionality
that displays by default when the application is first launched. You can choose to display large or small icons,
and you can decide to display or hide certain elements of the main menu including the Favorites Bar, the Full
Tree, Menu Items, the History Toolbar, and the Status Bar.

1. When you select the View menu from the main menu, options that change the default view of your main
menu are available.

2. When the Full Tree option is selected, the application displays all the modules through a series of folders
and program icons in both the Main Menu pane and in the Menu Items pane.

10.0.700 63
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

3. The Main Menu pane is found on the left side of the main interface.

4. The Icon Level pane is found on the right side of the main interface.

5. When you select the Large Icons option from the View menu, the application displays folder contents as
large icons in the Menu Items pane.

64 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

6. If you do not want to display the contents of the main menu folders in the Menu Items pane, you can
deselect the Menu Items view. When you do this, you use the Full Tree to navigate to all folders and
programs in the application.

Throughout this user guide the Full Tree and Menu Items
views are used in all the menu displays.

7. When the History Toolbar is selected, a drop-down list displays on the main menu that contains programs
that you have recently accessed.

8. When you select the Status Bar option from the View menu, the Status Bar displays at the bottom of the
main interface. This bar contains information such as current company, location, language and other details
about your current session.

The Options Menu

The Options menu contains settings you use to change your current company, Site, language, and so on. It also
contains user preferences you leverage to personalize the Status Bar on your main interface. You can also save
personalized settings automatically when exiting the application.
The Options menu also contains access to the application’s Styling functionality which gives you complete control
over the look and feel of the entire interface. You can use this toolset to display a pre-built design, or theme,
from the options installed with the application.

10.0.700 65
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

The Preferences command controls specific elements that display on the Status Bar of the main interface. You
can also add a tab to the Main Menu for displaying dashboards and web sites.

Additional options are available at the program level to modify


the status bar for a particular program. Program Options are
discussed later in this chapter.

Modify the Status Bar on the Main Interface

The Preferences command on the Options menu controls specific elements that display on your status bar of the
main interface.
To modify the status bar on the main menu:

1. From the Options menu, select Preferences.

2. In the Preferences window, select the elements to display on the status bar. Notice you can place the
current User ID, Language, Company, Site, Server, and Workstation on the status bar.

66 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

3. You can click the Clear History button to remove the history from the History Toolbar.

4. Select the Tabs sheet to add a new tab to the main interface.

5. Click the New button to create a new tab that displays a Web Browser.

6. Enter the text you want to display on the tab in the Tab Caption field. In this example you enter Epicor.com.

7. Select Web Browser in the Type field. You can also select the Dashboard Type to display a system dashboard
on the main menu.

8. Enter the web address you want to display in the Content field. If you have chosen Dashboard in the Type
field, the Content field contains a list of Dashboards in the application for you to select.

9. Click OK.

10. Review the changes on the Main Menu to verify it displays the items you need.

10.0.700 67
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

Save Settings on Exit

The Save Settings on Exit option automatically saves any settings you have changed on your View menu when
you exit the application. By default, this option is enabled for every user. It causes the application to track which
folders were expanded in the Folder List when the user closed the application. Folders still expanded on exit are
then expanded again at login.
Once you have set a default folder, disable the Save Settings on Exit option. If you do not, the interface always
opens to the last folder you had open before you quit the application.
For example, if you regularly use Opportunity / Quote Entry and would like this program’s folder to be expanded
at login, open the main interface to the Quote module’s General Operations folder. Verify the Save Settings on
Exit option is selected, and exit the application. The next time you login, the main interface opens directly to this
folder. Now disable this option, and the Main Menu always opens to the Quote Module folder. Any recent change
made to the Folder List interface are saved only when you enable this option.
Notice that you can automatically restore the Main Menu interface to its default view by selecting the Reset
Layouts to Base option. You can also restore the Main Menu to the version you previously saved by selecting the
Reset Layouts to Last Saved option.

The Favorites Bar

You can quickly access an internal program without having to navigate through the Folder List. The Favorites Bar
is a place on the main interface where you can store the programs you use regularly. The Favorites Bar can also
link to external programs and files, such as Microsoft® Word® and Excel®.

Favorites Bar User Privileges

To modify the Favorites Bar, you must select the Can Allow Favorites Programs check box on the Options sheet
in User Maintenance.
Main Menu Path: System Setup > Security Maintenance > User Account
To give a specific user rights to modify the Favorites Bar:

68 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

1. Enter the User ID of the User you want to grant the Personalization Privileges.

2. Click the Options sheet.

3. Select the Can Maintain Favorites Programs check box.

4. Click Save on the Standard toolbar and exit the program.

10.0.700 69
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

Add Internal Shortcuts to the Favorites Bar

You can add internal shortcuts to the Favorites Bar that open any program in the Epicor application.
To add an internal shortcut to the Favorites Bar:

1. Right-click the program name from the menu.

2. Select Add to Favorites Bar from the content menu.

3. The icon for the shortcut now displays on the Favorites Bar.

Add External Shortcuts to the Favorites Bar

You can also add external shortcuts to the Favorites Bar that open any applications or files that are stored on
your network.
To add an external shortcut that opens Internet® Explorer® to the Favorites Bar:

1. Right-click the Favorites Bar and select Add New Shortcut from the context menu.

70 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

2. In the Properties dialog window, browse to the program or file you want to add to the Favorites Bar.

3. Click OK.

4. The Internet Explorer shortcut icon now displays on the Favorites Bar.

Create Favorites Groups

Shortcuts on the Favorites Bar can be organized into Favorite Groups. For example, you can group programs by
modules or create a group for a workflow that contains specific tasks. Later if you want to make changes, any
favorite groups and shortcuts you add can be removed or renamed.
To add a new favorite group to the Favorites Bar:

1. Right-click the Favorites Bar and select Add New Group from the context menu.

10.0.700 71
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

2. Click New Group to rename it in the Favorites Bar.

3. Enter the New Group name. In this example, the group is called Reports.

You can change the name of this group by using the Rename Group option.

AutoLoad Favorites Groups

You can improve the performance of Favorites Bar programs you use the most by using the AutoLoad feature.
This program automatically loads selected programs in your workstation's memory. When you select an autoload
option for a favorites group, all the programs contained within the favorite group are temporarily selected for
memory caching. Each program can then be pre-loaded into memory during the current session so when you
launch one of these selected programs, it displays faster.
To access the AutoLoad options, right-click a Favorites Group.
Two AutoLoad options are available on the Favorites Bar.

72 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

1. AutoLoad this Group - Automatically loads favorites group programs into your workstation’s memory
when you log into the application.

2. AutoLoad on Session Changes - This option causes memory cached programs to re-load into memory
when the User, Site, Company, or Language are changed during the current session.

The AutoLoad feature uses some of your system memory.


You should not select every program for AutoLoad, as
this feature uses some of your system memory. When the
AutoLoad option is enabled, the application takes longer
for the login process. While programs autoload, you can
continue to do other things like answer email or web
browsing. While the programs within the Favorites Group
are loading in the background, an icon appears on your
workstation’s system tray.

Memory Caching

When you select an Autoload option for a favorites group, all the programs contained within the favorite group
automatically are selected for Memory Caching. Each program can then be pre-loaded into memory. This improves
the program’s performance in Run Mode, as it displays faster when you launch it again during the current session.

The Memory Cache option is located in the program’s Options


window. The Memory Cache check box appears on the General
tab. Additional information on this option is reviewed in the
Options section of this chapter.

Before you personalize or customize a memory cached program, be sure you disable this feature. To do this,
press the [Shift] key on the keyboard and then launch the program. You can do this from either the Main Menu
or a context menu.

10.0.700 73
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

1. After any program is launched (in this example the Part Maintenance form has been launched), click the
Tools menu.

2. Select Options.

3. The Options window displays.

4. On the General tab, clear the Memory Cache check box.

5. Click OK.

6. Exit the program.

You can have the same program open multiple times. For
example, one session of the program can have memory
caching active, while another session of the program can
turn off this function. You can then customize the
program while its cached version is still in use. To learn
more about customization, review the Basic
Customization, Advanced Customization, and
Customization Utilities chapters of the User Guide.

74 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

Personalize the Program Interface

The program interface has many personalization features available. You can personalize each program’s interface
so it displays the configuration that works best for you.

Personalization Options Window

Many of the program level personalization features are found in the Options window from the Tools menu in a
specific program. Once the options are selected from this window, they become the default standards that are
used each time the program is run. In addition, this window has several global settings that affect every program.

In the following example, Customer Maintenance is used to demonstrate the personalization options.
Menu Path: Sales Management > Quote Management > Setup > Customer
The CRM menu path is: Customer Relationship Management > Quote Management > Setup > Customer

1. Click the Tools menu.

2. Select Options.

General Options

The General tab contains options that affect the entire program. These options determine whether your sheet,
toolbar, grid, and tree view personalizations save when you close the program. Special actions are also available,
such as automatically launching the Search window when you activate the program.

1. As The Form Opens - The options in this group cause specific actions to occur as the program (form)
launches.

10.0.700 75
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

2. No Action - When selected, this option causes the program (form) to launch normally. All the program’s
fields are blank and you must search for an existing record or create a new record.

3. Auto Populate Data - When Auto Populate Data is selected, the program executes a search (the search
form does not display) and selects all records to return them to the program.

4. Auto Load Search - When a program is launched with this option enabled, the search form displays
automatically without having to click a button to manually launch the search. If you specify a named search
(from the drop-down list) in conjunction with this Auto Load Search setting, the Named Search field in the
search form populates with that search. When Auto Load Search is selected without specifying a Named
Search, the search form loads and waits for entry.
If you want to auto populate a program with many records, consider using a Named Search to retrieve a
filtered list of records instead of the whole table. A Named Search is search criteria previously defined and
saved. This can be automatically launched with the Auto Load Search option, or selected manually from the
search window. Named Searches are discussed in greater detail within the Searches chapter in the Epicor
ICE Tools User Guide.

The form takes longer to open when the auto populate


option is selected since the program is also executing a
search and loading every record found in the data table.
For example, using the Auto Populate option in Job Entry
or Part Maintenance is not recommended. The files in
these programs tend to be very large with many records.
This can take a very long time to launch the program.

5. Memory Cache - Select this option to cause the current program to stay in your computer’s memory after
it closes. The next time you launch this program, it appears faster, improving this program’s performance.
This program only stays in memory during the current application session. When you exit the application,
the program is also removed from memory.
Only select this option for programs program you use most frequently. If this option is selected on several
programs, your computer may run low on memory, impacting its performance.

You need to disable memory caching before you can


customize or personalize a program. To disable memory
caching, hold down the [Shift] key on the keyboard and
then launch the program. This can be done from either
the main interface or a context menu.

6. Show Ribbon Override – Indicates whether the program toolbar displays as a ribbon instead of a series
of drop-down menus. Select True to display the ribbon on the current program. The next section, Ribbon
Interface, provides more detail about this feature.

7. On Save Layouts - The interface layouts of a program’s grids and sheets can be changed during a session.
To save these changes for the next session, you would select the Save Layouts command from the Options
menu of the main interface. The two Save Layouts options found in a program’s Options dialog box control
whether or not these changes are saved for a specific program. By default, these options are enabled in
every program. Available options:
• Save Dock Layouts: This option saves all the position changes you make to a program’s sheets.
Personalizing sheet layouts is discussed later in this chapter.
• Save Grid Layouts: This option saves changes you make to a program’s grid layout. You can change
the order in which columns are displayed within each grid and also resize the grid’s column. Personalizing
grid layouts is discussed later in the chapter.

76 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

8. Context Menu - When selected, the Context Indicator check box causes the interface to show which
fields have Context Menus. If the field has a context menu, a triangle displays in the upper right corner of
the field. You can also personalize the color of the Context Indicator triangle by selecting a color from the
drop-down list.

9. Select the Zone Indicator check box to define the color used for displaying any BAQ zone indicators on a
program. Users hold their mouse over the BAQ zone indicator to display a tooltip of the BAQ results for the
current value of the field (if any). Depending on the columns the BAQ returns, the BAQ zone can display
different results. For example, you could have a BAQ zone display the current customer’s web site.
For more information on creating business activity query zones, review Chapter 6: Customization Utilities.
The BAQ Zones section describes how to create and display BAQ zones.

10. If you want to indicate which fields need data before a new record is saved, select the Required Field check
box.

11. Click OK. After you exit the Options window, notice all required fields become highlighted on the interface.
Any sheet tabs that contain required fields are also highlighted.

12. When a field displays a Context Indicator, a context menu can be accessed by right-clicking on the field.
The field’s context menu displays; you can use it to cut, copy, and paste text as well as open related programs.

Ribbon Interface

You can cause the top of each program window to display a ribbon interface instead of a series of menus. The
ribbon interface groups together related functions and links for easy access. This feature is available from the
Options window of the Tools menu for any program. In the following example, Customer Maintenance is changed
to display the ribbon interface.

10.0.700 77
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

1. Navigate to Customer Maintenance. Main Menu Path: Sales Management > Quote Management >
Setup > Customer

2. From the Tools menu, select Options.

3. Click the Show Ribbon Override drop-down list and select True.

4. Click OK to close the Options window.

78 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

5. The ribbon displays on your program. The Main tab contains buttons that launch Action programs specific
to your program, navigation arrows, and file editing tools.

6. The Links tab contains buttons that launch programs related to the current program, like search and entry
programs. It also contains the methods by which you can send the files created within the current program.

7. The Support tab contains buttons you use to launch customization, personalization, and translation tools.
You can also use this tab to access the application help and support resources available from Epicor.

10.0.700 79
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

8. To display the Save, Undo, and Exit buttons below the ribbon, select the Show Below the Ribbon option
from the Quick Access toolbar. To place these buttons above the ribbon again, select the Show Above the
Ribbon option from this toolbar.

9. To hide the ribbon from constantly displaying, select the Minimize the Ribbon option. The tabs still display,
but the options do not appear unless you click the specific tab. To maximize the ribbon again, clear the
Minimize the Ribbon option.

Hot Keys Options

Use Hot Keys (shortcut keys) to quickly navigate through the interface with keyboard options. The Hot Keys sheet
is where all shortcut key combinations are defined for the current program. This sheet also contains controls you
use to globally define specific functions. Global Options are discussed later in this chapter.
To define a Form Hot Key:

1. Select a Command from the drop- down list. Available options include New, Edit, Delete, and so on.

2. Click the Short Cut drop-down list and select the keyboard combination you want to use for the command.
Available options include <F4>, <Shift><F2>, <Alt> 5, and so on.

These shortcut key combinations are then used on the current form.

Dialogs Options

The Dialogs sheet contains a series of tabs that indicate when data can be verified for specific actions that occur
within the program. When a selected action activates, a confirmation window automatically displays. You must
acknowledge the message before you can continue to use the program.
These actions (or tabs) indicate the type of action which can trigger a dialog window:

80 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

1. Update - When a current record is edited and one of the selected conditions occurs, a confirmation window
displays.

2. Add New - A confirmation window displays when you create a new record.

3. Delete - A confirmation window displays when you delete a record.

4. Undo - A confirmation window displays when you remove the results of a previous action on the program.

Tree View Options

Use the Tree View sheet in a program’s Options window to change the text that displays within a program’s Tree
View. You can also change the Image (icon) and the Display Column (field) that displays in the Tree View as well.

10.0.700 81
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

Global Options - Status Bar

Use the Global Options sheet to personalize global Hot Keys and modify the Status Bars that display in every
program.

1. Select the Status Bar Panel options you want to display on programs. These options can be different from
the status bar options that display on the Main Menu.

2. Click the Border Style and Panel Border Style drop-down lists to personalize these items on the interface.

Global Options - Hot Keys

You can define shortcut keys used throughout the application on the Hot Keys tab. In addition to defining
shortcuts, several additional global options are also available:

1. Select a Command from the drop-down list. Available options include New, Edit, Delete, and other program
commands.

2. Click the Short Cut drop-down list and select the keyboard combination you want to use for the command.
Available options include <F4>, <Shift><F2>, <Alt> 5, and so on. This short cut key combination is then
used to launch this program function throughout the Epicor application.

3. Handle [Enter] as Tab - Select this check box to indicate you want to use the Enter key to move through
each program's fields. You can then use both the Tab and Enter keys to move through the fields.

82 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

4. Launch Search with - Define the global shortcut you want to use to launch a search from a selected field.

5. Launch Enterprise Search with – Use this shortcut combination to launch the Enterprise Search functionality.
This search application retrieves indexed content from your Epicor application. You can search on any record
within the Epicor database – like a part, customer, purchase order, AR invoice, and so on. For more
information on Enterprise Search, review the Searches chapter in the Epicor ICE Tools User Guide.

6. Launch Maintenance with – Use this drop-down list to define the shortcut used to launch the maintenance
program for a selected field.

7. Launch Info Zone with – A shortcut combination you use to activate a BAQ zone. Pressing this keyboard
combination causes a tooltip to display BAQ results for the current value of the field (if any). Depending on
the columns the BAQ returns, the BAQ zone can display different results. For example, you could have a
BAQ zone display the current customer’s web site.
For more information on creating business activity query zones, review Chapter 6: Customization Utilities.
The BAQ Zones section describes how to create and display BAQ zones.

8. Use the Designer Grid tab to specify the grid characteristics used when you are in personalization mode.
Grid settings include activating the Snap To Grid functionality, and determining the grid size.

9. The Snap to Grid option helps position elements when you are creating personalizations on a grid. When
this option is selected, the shapes pull, or snap, towards the grid dots.
For example, if Snap To Grid is selected and you add a check box to the form, the box snaps towards the
nearest grid dots, instead of floating between the dots.

10. Use the Grid Width and Grid Height values to specify the space, in pixels, that displays between the grid
dots in Personalization mode.

11. Click OK to save your changes and exit the Options dialog window.

Personalize Sheet Layouts

A sheet is a layer of a program’s interface that contains related functionality. Every program contains at least two
or more sheets (the Detail and the List sheet). You can use the personalization tools to change the position of
any sheet within a program. By clicking and dragging each sheet’s tab, you can also change the order in which
the sheets are displayed. A sheet can even be completely moved out of the program so that it displays as a
floating sheet.

10.0.700 83
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

Modify Sheet Tab Order

Each sheet displays with a tab. The order of the tabs within a sheet can be changed by clicking and dragging the
tab to a new position.
For example, in Part Class Maintenance displayed below, the Detail sheet displays to the left of the List sheet by
default. By clicking and dragging the List tab, you can move it to the left side of the Detail sheet:

1. Before the List sheet is moved.

2. After the List sheet is moved.

3. To save the current settings, click the Tools menu.

4. Select Save Layouts.

5. To reset the sheet layouts to their default position, from the Tools menu, select Reset Layouts to Base.

84 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

Docking Sheets

In addition to changing the tab order within a program, tabs can be moved out of their default position by
dragging them and docking them to a new position on the same sheet. A sheet can be docked to any one of
four quadrants of a window (top, bottom, left, and right).
As a sheet is dragged out of position, an outline displays on the window indicating where the sheet will be placed
when it is released. The outline snaps into position when the mouse is moved into one of the four quadrants of
the window. Once the outline ‘snaps’ into position, release the mouse to dock the sheet.

1. Click the List sheet tab and drag it down to the bottom of the sheet.

2. The outline snaps into position in the lower portion of the window.

10.0.700 85
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

3. Notice the List Sheet is now docked to the lower section of the window.

4. If you drag the List sheet to the right side of the window, the outline again snaps into position.

86 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

5. When you release the mouse button, the sheet docks to its new position in the window.

6. To reset the sheets to their default position, click the Tools menu.

7. Select Reset Layouts to Base.

Floating Sheets

A Floating sheet is a sheet moved from its original position and released in a non-docked position. Use this feature
to display many sheets at the same time.
To create a Floating sheet:

10.0.700 87
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

1. Click a sheet’s tab and drag the sheet away so that the outline does not snap into any of the quadrants of
the window. In this example, click and drag the List sheet.

2. Release the sheet into the non-docked position.

88 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

3. When a sheet is floating, the thumb tack icon does not display in the upper right pane of the sheet title bar.
When you exit the program, any floating sheets close automatically.

If you save the sheet layouts, the floating sheet reopens


in the same position when the program is launched. To
return the sheet layout to its default position, select the
Reset Layouts to Base command from the Tools menu.
You can also return a floating sheet to its previous position
on the docking sheet by double-clicking on the title bar
of the floating sheet.

Auto Hide Sheets

The Auto Hide thumb tack icon displays on the right side of every sheet’s title bar that is docked into position.
The default view of the thumb tack icon is in a ‘pinned’ position. When the icon is selected, the thumb tack
changes to an ‘unpinned’ position and auto hides the contents from view.

1. Once a sheet is unpinned, it slides out of view and is replaced with a tab. In this example, the Tree View of
Part Class Maintenance is unpinned and is hidden on the left side of the program.

10.0.700 89
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

2. If you hover the mouse over the tab, the Tree View pane slides back into focus.

Leverage the Auto Hide feature to temporarily hide sheets


you use less often. All the information is readily available,
but pulled out of the way. Notice all docked sheets contain
the Auto Hide thumb tack icon, allowing sheets to be
hidden when not in use.

Personalize Toolbars

Every program contains default toolbars you can move to any location in a program’s window. They can be
docked to either side of the interface or placed in a floating position.
Default toolbars you can personalize:

1. Main Menu Toolbar - This toolbar displays all the program’s menus. It typically displays the File, Edit,
Tools, Actions, and Help menus.

2. Standard Toolbar - All the main controls are displayed on this toolbar. Options like New, Cut, Paste,
Refresh and so on display on this toolbar.

3. Navigation Toolbar - Use this toolbar to search through all the records created through this program. It
displays the Search button and the Navigation tool.

90 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

Moving Toolbars

Each Toolbar has a dotted line along its left side. This is called the Move Control. Use this control to click and
drag the toolbar into the position you want.
To move a toolbar to one of four sides of any window:

1. Hold your mouse pointer over the toolbar’s Move Control.

2. A four way arrow pointer displays.

3. Click and hold down your mouse button and drag the toolbar to one of four sides of the window. When
it is placed next to the edge, it automatically flattens itself to the side. Release the mouse button.

4. To adjust its position along the side, click and drag the Move Control along the horizontal or vertical edge
of the window. You can also position each toolbar as a floating toolbar. This toolbar is always visible on top
of the program, regardless of the sheet selected within the program. Use this feature to place the toolbar
wherever you need it on the window. After you close the window, the toolbar reverts back to its default
position.

10.0.700 91
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

Personalize Grids

Grids display information through a series of columns and rows. Each column displays a category of information,
like Part Number orPart Class, while each row displays data for individual records. The List sheet in each program
displays information in a grid format.The standard Personalization tools provide you with the ability to change
grid layouts in several different ways.
Additional personalization options are available to users who have the Personalization privilege enabled in their
User ID. These options are reviewed in the Personalization Mode section of this chapter.

Change Column Order

Every grid’s columns can be moved around into any order that you want.

1. To move a column within a grid, click and drag the column to the desired position.

2. When the black arrows display, release the mouse button and the column docks in its new position.

3. In the example below, the Buyer ID column is moved to the far left.

Adjust Column Width

You can also adjust the column width so the maximum amount of information displays in each column.
To automatically adjust the width of a column to fit the data it contains:

92 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

1. Place the mouse pointer over the right edge of a column header. The mouse pointer turns into a double
arrow icon.

2. Double-click the mouse to adjust the width of the column to auto-fit its contents.

To manually adjust the width of a column, place the


mouse pointer over the edge of a column. The mouse
pointer turns into a double arrow icon. Click and drag
the arrow to the left or the right to widen or shrink the
column manually.

Grid Split Option

1. Available on the left of horizontal scrollbars and on the top of vertical scrollbars of each grid is a small bar
that can be dragged to split a grid either vertically or horizontally.

2. Similar to the freeze panes option in a spreadsheet, when you place the mouse over the bar it changes to
a double arrow icon.

3. You can drag this bar towards the center of the grid to split it.

Sort Columns

You can sort the grid records in ascending or descending order using the data in a selected column (field). To
sort columns:

1. Click the column header by which you would like to sort.

10.0.700 93
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

The grid automatically sorts the contents in ascending order based on the selected column.

2. When you sort by a particular column, an arrow icon displays in the column header indicating an ascending
sort. In this example, the Part Class records that contain a blank Buyer ID sorts at the top of the list. You
can then identify records you need to update.

3. You can change the sort on a column to be descending by clicking the column header again.

4. Notice the arrow icon now displays upside down. This indicates the grid is sorted in descending order by
the data in this column.

Grid Filters

Use the Show Grid Filters option to work with a subset of data in a grid. You specify the column data you want
to see; when you apply the filter, data that does not meet the criteria you specified does not display within the
grid. You can further limit the filter results by creating another child filter that runs against the results of a parent
filter. You can create as many child filters as you wish to get the results you want.
To use the Show Grid Filters option:

94 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

1. Right-click anywhere on the grid and select Show Grid Filters.

2. Notice the Filter icon displays in each column.

3. Click the Filter icon in the column you want to filter and select the data you want to see.

4. The grid now displays only rows that contain the column data you filtered. Notice the Filter icon changes
to indicate a grid filter has been applied to the data in the grid.

Show Group By

Many grids offer Show Group By functionality that groups all of the records in a grid by a specific column. This
option is available in any grid, and especially useful in the Dashboard programs.
The Sales Order Backlog Status dashboard is used to illustrate this functionality.

10.0.700 95
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

1. Navigate to the Sales Order Backlog Status dashboard. Main Menu Path: Executive Analysis > Status
Dashboards > Sales Order Backlog Status

2. Click the Refresh button to retrieve all the part records to the dashboard.

3. Drag and drop the Part column header onto the Group By area above the grid.

96 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

4. All sales order records are now organized by Part. You can see the sales orders placed against each part by
clicking on the plus (+) sign. This expands the rows under each part to display the sales orders.

Show Group By - Secondary

Once you have grouped by one column, you can add a secondary Group By. For example, you can group parts
by Part and then by Unit Price.
To Group a grid by multiple columns:

1. Drag the second column header (Unit Price) next to the Part group by option.

2. Release when the black arrows display.

10.0.700 97
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

The column headers now display in the Group By header. Notice each of the Groupings displays a count of
records. This example shows two groups of parts organized by their Unit Price Values.

The column headers now display in the Group By header. Notice each of the Groupings displays a count of
records. This example shows two groups of parts organized by their Unit Price Values.
Two methods are available to turn off the Show Group By functionality:
• Right-click the title of the grid, and click Show Group By to remove the check mark and disable it.
• Drag the column headers back down to the grid area and release. This returns the columns to their default
position.

Enable Show Summaries

Many grid fields can be set up to display summarized data. Five options are available for any number field in a
grid: Average, Count, Minimum, Maximum and Sum. The Customer Tracker is used in the example below to
demonstrate this functionality.

1. Navigate to the Customer Tracker. Main Menu Path: Sales Management > Order Management >
General Operations > Customer Tracker

2. In the Customer ID field, enter a unique customer identifier.

98 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

3. Select the Orders sheet and click the Retrieve button to display all the open orders for the customer.

4. Right-click the Open Orders title of the grid.

5. Select Show Summaries.

6. Once the option is enabled, the column header for every number field in the grid will display a Sigma icon.
To access the Summary options for a specific field, click the Sigma icon next to the column header.

10.0.700 99
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

7. Select any or all of the options that display in the Select Summaries window.

8. When selected, the Sum option totals the column and adds Grand Summary information along the bottom
of the grid.

9. In addition to displaying the Sum along the bottom of the grid, this feature also displays the Sums when
using the Group By functionality.

100 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

10. To save the changes you have made to the grid, right-click the grid again and select Save Layout from the
content menu.
In this example, the Open Orders grid is grouped by Part, and summarized by Selling Quantity.

Advanced Personalization Options

Advanced personalization refers to specific features of personalization available only to users with Personalization
security privileges. All the personalization options discussed so far in this chapter are available to every user.
However in this section, you explore the additional personalization options available only to users with Allow
Personalization rights.
Use the Advanced Personalization features to create additional changes to the user interface, such as changing
fonts, font sizes, colors, and tab stops. You can also hide or display columns in grids. Once a personalization is
made for one user, it can be exported from one machine and imported to any other user who would also like
the same personalized program.

Assign Personalization Privileges

The advanced Personalization Privileges are assigned by User ID in User Account Maintenance.
Main Menu Path: System Setup > Security Maintenance > User Account

1. In the User ID field, enter the user identifier for the User you want to grant the Personalization Privileges.

10.0.700 101
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

2. Click the Options sheet.

3. Select the Allow Personalization check box.

4. Click Save and exit the program.

Activate Personalization Mode

To access the Advanced Personalization features, select Personalization from the Tools menu in any program. In
this example, you are personalizing the interface for Sales Order Entry. After you launch the program, you must
activate personalization mode to begin personalizing this program.

1. Navigate to Sales Order Entry. Main Menu Path: Sales Management > Order Management > General
Operations > Order Entry

2. From the Tools menu, select Personalization.

3. This opens the Control Properties window for that program.

102 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

The Control Properties window contains all the advanced personalization features.

4. This window displays in the forefront of your window until it is closed by selecting the Delete, OK, or
Cancel buttons.

5. A grid also displays over the sheet currently in focus. Use this grid to help you move elements to the areas
where you want them.

10.0.700 103
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

Begin Personalization

1. To begin personalizing the form, click the field (or element) on the sheet in focus. This updates the Control
Properties window with the selected element name and its properties. In this example, the Ship To fields
on the Sales Order Entry Summary sheet are personalized.

2. When an element is selected to Personalize, it is surrounded with white boxes. In this example, the Ship To
group box is selected.

3. The Element Name field displays grpShipTo, this is the name of the element in focus.

4. The Path Code name displays the form or sheet name programmatically. This value is the specific path
name used by the programs in the application to execute or display the sheet in focus. In this example, the
Path Code name is Epicor.Mfg.UI.FrameWork.EpiGroupBox.

5. The Properties are items in the Control Properties window that may be modified for each element (on a
sheet).
As you click different fields (elements), the Control Properties window displays the set of properties that
may be modified for those elements. The dialog window changes to reflect the type of control you select.
You may also rearrange the position of controls on the form by dragging and dropping them.

This Control Properties window is a sub-set of all the


properties available. Use the Customization tools to access
many other properties. To learn more about Customization
and the additional tools available, review Chapter 4: Basic
Customization.

6. The buttons located at the bottom of the Control Properties window are used to Import and Export
personalizations, as well as Delete, Save (OK) and Cancel an existing personalization.

104 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

7. Click the Select Top Level Form button to reset the Control Properties window to the top most level of
the selected form.

Personalize Sheet Properties

A sheet’s font type, font size, background color, foreground color, and tab stops can also be personalized.

Personalize the Colors of Elements

The BackColor defines the color of the sheet’s background and BorderColor defines the color of the outline of
a field. When selected, these options display all the available colors in a list; you may choose between System
colors (the colors defined for your current operating system color scheme), a Custom colors list, or a list of Web
colors.

10.0.700 105
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

1. Select the Ship To group box.

2. In the Control Properties window, click the BorderColor property. A drop-down list of colors to choose
from displays.

3. Select the Custom color tab and choose a color to apply to the border of the group box.

4. Notice the group box border changes color.

5. Click OK (not pictured) to save your changes.

106 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

Change the Font Type and Foreground Color

You can also personalize the Font Type and the Font Color (Fore Color) of text.

1. Select the Name label inside the Ship To group box.

2. Click the Bold property and change the property from False to True.

3. Click OK to save the changes.

10.0.700 107
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

4. Click the ForeColor property. A drop-down list of colors to choose from displays.

5. Select the Custom color tab and select a color to apply to the group box.

6. Click OK to save the changes.

Change the Location and Size

The Location property refers to the exact position of the control (or element) on the sheet. The location is defined
as X and Y axis numbers. You can expand the property to change the X and Y axis or you can click and drag the
element to a new position on the sheet. The Location property updates with the new X and Y axis points.
In the example below, the Attention field is moved from below the Name and Address field to above the Name
and Address field, next to the Ship To ID field.

108 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

1. Before the Attn field is moved.

2. After the Attn field is moved.

The Size property defines the height and width of the


control (or element) on the sheet. When the Attention

10.0.700 109
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

field moved to its new location, the field was made smaller
to fit in its new position. Notice the Height and Width
properties changed to reflect this new size.

Change the Tab Stop and Text

The TabStop property controls whether the item is included as users tab through the sheets within this program.
True indicates that users can tab through this element; False indicates that a tab skips over this element on the
sheet.
To change the actual text that displays using the Text property:

1. Select the Attn field on the sheet.

2. Click the TabStop property to view the drop-down list for this property.

110 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

3. Change the property from True to False.

While the screen captures in this guide cannot display the


immediate change, know that now when you tab through
the prompts on this window, you skip this field.

4. Click the Addr: label on the window.

10.0.700 111
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

5. In the Text property, enter Address.

6. Click OK to save the changes.

Modify Grid Properties

Grids display information through a series of columns and rows. Using the Control Properties window, you have
the ability to hide fields (columns) so they do not display in a grid. To access grid options, click a grid within a
sheet. The Control Properties window expands to display grid Column Properties. You can then determine the
columns to hide or display by selecting the appropriate check boxes.

Hide Columns in a Grid

To hide columns in the Sales Order Entry, Lines Detail grid:

1. From the Tools menu, select Personalization.

112 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

2. The Control Properties window displays.

3. Click the Order Lines grid header on the Sales Order Entry summary sheet, Lines Detail tab.

4. Click the Column Properties drop-down list to display the Column Properties window.

5. Select which columns to Display or Hide by enabling (or disabling) the Hidden check box for each field
(column).

6. You can also select the Toggle Hidden button to hide all columns. Click this button again to display them.

7. Click OK to save the changes.

10.0.700 113
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

8. The columns you want visible (their Hidden check boxes were not selected) now display on the Order Lines
grid.

Import, Export, and Delete Personalizations

Once you have created and saved a personalization, you can export it to other users. These users can then import
this personalization into their environments. To do this, login as a different user, import the personalization to a
new computer and it is then applied to the current user account. If you decide you do not like some
personalizations, you can also delete them.

Export a Personalization

1. After saving a personalization, in the Control Properties window, click the Export button.

2. The Save As window displays.

3. The default save location is a folder called Export on your local machine.

4. The File name is the application name followed by an underscore and the user name who is currently logged
into the application. For example, after personalizing the Sales Order form logged in as system manager,
the export filename defaults to App.SalesOrderEntry. SalesOrderForm_MANAGER.xml in the Export folder.

5. The Save As Type is an XML file type.

6. Click Save.

114 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

7. To complete the export, in the Control Properties window, click OK.

Import a Personalization

Once a personalization XML file is exported, use the import button to import the file into another user account.
You must first have the XML file in a location that other users can access. After importing a personalization, you
must exit the program and launch it again to view it. Once a personalization is imported, it is stored with the
new user account.
To import the Sales Order Entry personalization:

1. When you have logged into the application with another user account, launch Sales Order Entry.

2. From the Tools menu, select Personalization.

3. The Control Properties window displays. Click the Import button.

10.0.700 115
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide

4. In the Open window, the Look In folder defaults to the user’s Export folder. However, you may need to
browse to the network location where the exported personalization is stored.

5. Select the file you want to import. In this example the filename is App.SalesOrderEntry.
SalesOrderForm_MANAGER.xml.

6. Click the Open button.

7. Click OK in the Control Properties window.

8. Exit the Control Properties window and Sales Order Entry and launch it again to view the personalization.

Delete Personalizations

You can always remove any unwanted personalizations using the Delete button in the Control Properties window.
Once the delete button is clicked, exit out of the program and launch it again to refresh the window. The program
displays without any personalizations.

You can personalize many sheets within a program. However


since personalizations are stored both by program and User
ID, deleting the personalization removes all the changes you
have made to the program.

To delete the Sales Order Entry personalization:

116 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2

1. From the Tools menu, select Personalization.

2. The Control Properties window displays. Click the Delete button.

3. Exit the Control Properties window and Sales Order Entry.

When you launch Sales Order Entry again, the form is no longer personalized.

You can also delete Personalizations using both Personalization


Purge and Customization/Personalization Maintenance. This
functionality is discussed in the Customization Utilities chapter.

10.0.700 117
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

Chapter 3: Basic Customization

You can customize most programs within the application. A well-designed customization can greatly enhance your
company’s use of the original program, as customized programs can directly match the application to fit your business
needs.
Customizations are different from personalizations. A personalization is a modification to the interface that you save
with a specific user account. Each time this specific user logs into the application, the interface displays the
personalizations linked to that user record. However a customization can be both a program code change and an
interface change you make available to the users you want within the entire company.
This chapter explains how you launch Developer Mode – the mode you use to activate the customization tools. It also
shows you how to both make basic changes and add new elements – like fields and check boxes – to a customization.
It then explores options for saving and exporting.
This chapter focuses on basic customization tools; use these tools mainly to make control changes to each program
interface. The next chapter, Advanced Customization, examines deeper, code level customizations that you can create
and add to your custom program.

Customization Rights

To customize the application, your user account must be set up for customization rights. By default, user records
are not set up for these rights, because typically you only assign customization rights to a limited group of users.
You assign these rights within User Account Security Maintenance.

Assign Customization Rights

To give a user customization rights:


Navigate to User Account Security Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

118 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

1. On the Detail sheet, enter the User ID.

2. Click the Options sheet.

3. In the Tools Options section, select the Customize Privileges check box.

4. Click Save on the Standard toolbar.

Now the next time this user logs into the application, this user is able to customize it.

Developer Mode

The application runs in two modes – Run Mode and Developer Mode. Typically you use the application in Run
Mode. This means that program sheets are used for functional activities like data entry, operation processes, and
report generation.
In Developer Mode, the program still functions normally at first. However you can suspend the normal operation
of the program in order to customize it. Each sheet becomes customizable, so you modify the sheet by changing
its existing elements or adding new elements. You can also create new sheets and customized code that you
then add to the program.

10.0.700 119
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

Activate Developer Mode

If your user account has customization rights, you can turn on Developer Mode.

1. From the Home screen, click the Settings tile.

2. Select the General Options link on the left side of this window.

3. Now click the Developer Mode option. A check mark displays next to this option.

120 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

4. Click the Home icon to return to the primary screen.

You are now in Developer Mode. The next section explains what happens when this mode is active.

Select Customization

When you are in Developer Mode, you display a special window each time you launch a program – the Select
Customization window. You use this window to create and manage all the customizations created for the selected
program.

Begin Customization

For this example, you are developing a customization for Sales Order Entry. After you switch the program to
Developer Mode, you are ready to work on customizing this program. To begin the customization:
Navigate to Sales Order Entry.
Menu Path: Sales Management > Order Management > General Operations > Order Entry
The CRM menu path is: Customer Relationship Management > Order Management > General Operations >
Order Entry

1. The Select Customization window displays instead of Sales Order Entry.

2. The Form Name field displays the .xml filename of the program, or form, you are customizing. In this Sales
Order Entry example, you are customizing App.SalesOrderEntry.SalesOrderForm.

3. To begin a new customization, select the Base Only check box. This causes the default form to appear after
you leave this window. Selecting this check box also causes the Available Layers section to be disabled.

You can also display the base form by just clicking the OK
button. Selecting the Base Only check box mainly ensures
you load the installed form.

10.0.700 121
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

4. The Available Layers section displays all the existing Localizations, Base Extensions, Customizations,
and Personalizations for the current program. You select items in this section to work on them. In this
example, the NoCounterSalesAlt customization is selected.

5. If you want to remove the highlighted NoCounterSalesAlt customization, click Delete.

6. Details for the selected customization display in the upper right section of this window. The Company field
displays the company for which this customization is created.

7. The Description field displays the purpose for the customization.

8. The Product ID field indicates the Epicor software for which this customization was made. For this example,
the customization was made for the Epicor ERP application.

9. The Type Code field defines what kind of modification was made. Notice that for this example, this item
is a Customization type. If this was a personalization, the Personalization type would display.

Personalizations are changes you make to the interface


that you only want available with your user account. To
learn how to personalize the application, review the
Personalization chapter.

10. The Name field displays the identifier for the customization.

11. The Parent Layer Key displays the layer, if any, above this customization or personalization. This value is
set by the application and is displayed to provide more information about the customized or personalized
program. For example, if you select a personalization of a Sales Order Entry customization, the parent layer
for the personalization is the name of the customization.

12. When the customization is a work in process, the WIP check box is selected. This indicates this customization
is not ready to be displayed on the Menu, so it cannot be selected through Menu Maintenance.

For more information about placing customizations onto


the Menu interface, review the Customization Utilities
chapter.

13. Click the Import button to find and select an exported customization of the current form. You export
customizations through the Customization Tools Dialog. For more information, read the Export
Customization section later in this chapter.

122 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

14. When you click the Import button, the Import Customization window displays. Use this window to navigate
to the <Company>/Shared/Export folder that contains the customization you want to import.

15. Select the customization you want. In this example, you select the
App.SalesOrderEntry.SalesOrderForm_Customization_LineDetailsModification_CustomExport file.

16. Click Open.

17. The selected customization now displays within the Select Customization window. If you want to use this
imported customization, select the Use Imported Customization check box.

18. Select the Debug in Visual Studio check box to launch a selected customization in Visual Studio. You can
then step through the customization code and debug any errors that may occur in the code. When you
launch a customization in this mode, Visual Studio runs the customization source code file and stops at a
break point on the first line of the InitializeGlobalVariables method.
To launch the customization in Visual Studio, you must install any version of Microsoft Visual Studio 2010
except Express on the computer where you run the Epicor application client. To leverage all debugging
functions, you should also have C# installed in Visual Studio.

10.0.700 123
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

19. Click OK.

Depending on the item you select, the form displays using a selected customization, an imported customization,
or the default base form.

Launch Developer Mode

When you click OK on the Select Customization window, the form displays in Run Mode first. Depending on
how the program runs, you need to do one or more steps before you switch the program to developer mode.

Disable Memory Caching

The program you are customizing may be Memory Cached. This feature causes the program to stay in your
computer memory after it is closed. This improves program performance during Run Mode, as it displays faster
when you launch it again during the current session.
However when you customize this program, memory caching must be disabled because a form has to be flushed
from memory before a custom field can be bound (linked) to a data table.

If the program you are customizing is not memory cached, you


can ignore this section.

Disable Memory Caching

To disable memory caching:

1. Click the Tools menu.

2. Select Options.

124 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

3. The Options window displays.

4. Clear the Memory Cache check box.

5. Click OK.

Now close and reopen the form again. You are now ready to switch the program to customization mode.

Developer Mode

When you activate Developer Mode, each program now has an extra option under its Tools menu. This extra
item is the Customization option, and you use it to end Run Mode and launch the customization tools.

Launch Customization Tools Dialog

To launch the Customization Tools Dialog:

1. Click the Tools menu.

2. Select Customization.

10.0.700 125
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

3. The form displays a dotted grid between its fields.

4. The Customization Tools Dialog window displays. You can now customize the current form.

Customization Tools Dialog

The Customization Tools Dialog contains all primary tools you need to create and edit your customization. This
section gives you a tour of the features on this key window.

Each of these features is explored in more depth either in this


chapter or within the Advanced Customization chapter.

126 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

Tree View

Use the tree view to select different controls on the customized form.

1. The element currently selected on the interface displays in the top field.

2. The second field displays the name of the form that contains the currently selected element.

3. The Tree View is a navigational tool that can help you locate the sheets, panels, grids, and fields on the
current form. To review or customize a specific item, highlight it on the Tree View.

Typically you highlight the element on the form. The Tree


View, however, can help you locate elements on complex
customizations.

4. The right side of the form displays the Properties of the selected item. You can use these properties to
change the item’s position on the form, font attributes, fore/back colors, and other key properties. Some
of these properties are explored later in this chapter.

10.0.700 127
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

Wizards and Script Editor

The Forms Wizards help you customize several aspects of your custom forms. You use the Script Editor to modify
the custom code generated by the Forms Wizards.

1. When you click the Wizards tab, you can see the Form Wizards.

2. Use the Rule Wizard to create new row rules and actions for any grid, or dataView, for the current
customization.

3. Use the Image Column Wizard to create an image column within a grid. This column can display an
application image you select. You can also create row rules which indicate under what conditions various
images are displayed within this column.

4. Use the Form Event Wizard to enter code activated when specific events occur on a form.

5. Use the Sheet Wizard to add a custom sheet to the current program. You can also use this wizard to edit
a custom sheet’s tab or text properties.

6. The Event Wizard links code to your custom controls. Before you can use this wizard, you first need to add
one or more custom controls to the current form.

128 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

7. The Script Editor is the interface you use to enter custom code on the current form. Use this sheet to enter
any advanced customization you want to run within your custom program.

Tools Menu

You use the tools menu to launch additional tools that will help you customize the form.

1. From the Tools menu, select the customization feature you need.

2. Select the Test Code option to run any custom code you have entered. Use this feature to discover if your
code has any errors.

3. The Toolbox option displays the controls you use to add elements on the current form. Use this window
to add fields, buttons, drop-down lists, check boxes, and so on to the current customization. The next
section, Hide, Move, and Add Elements, describes how to use the Toolbox.

4. The Assembly Reference Manager displays a list of all the native assemblies (.dll files) used within the
application. You can then use this program to add an assembly reference to the custom code. The Assembly
Reference Manager is described in the Advanced Customization chapter.

10.0.700 129
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

5. Select the Object Explorer to view the various objects, methods, and properties available for use in the
custom code. You can use this tool to view framework objects, data objects, and adapter assemblies.

6. The Options sub-menu defines the overall settings you use during this customization session.

7. The Custom XML Editor displays the XML code of your customization. Use the sheets on this troubleshooting
tool to correct any issues that occur within the customization.

8. Select Data Tools to create and edit custom views, or foreign key views, of data. These views can be accessed
on customized sheets and also can be displayed within dashboard interfaces.

9. Select Wizards to launch the Image Column Row Rule Wizard and the Customization Code Wizards.
Run the Image Column Row Rule Wizard to add an image column to the current grid that displays an
application image you select. Use the Customization Code Wizards to create valid, primary pieces of code
within the Script Editor.

10. Use the String Manager to specify how specific custom text will be translated into a different language.
These strings will then display within the Translation Utility.

To learn more about the Assembly Reference Manager,


Object Explorer, Custom XML Editor, Data Tools, and
Customization Wizards, read the Advanced Customization
chapter. To learn more about the Translation Utility, read
the Localization chapter.

Custom Session Options

Before you begin creating or editing your customization, you should define some session options. These options
determine how the Customization Tools Dialog acts during the current session. You can also define some key
grid options.

Top Most Mode

The Customization Tools Dialog can operate with Top Most mode either on or off. When Top Most mode is on,
the Customization Tools Dialog is always placed over the form you are customizing. However when this mode
is turned off, the Customization Tools Dialog is placed behind the current form.
You typically turn off Top Most mode when you are adding new elements, like fields and grids, to the form. You
can then see and manipulate more of the customized form.

130 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

Disable Top Most Mode

By default, Top Most mode is automatically turned on. To turn it off:

1. In the Customization Tools Dialog, click the Tools menu.

2. Select Options.

3. Notice that a check displays next to the Top Most option, indicating that Top Most mode is active. Select
this option.

Top Most mode is now no longer active; a check does not display next to this option. To activate Top Most mode,
follow these steps again.

Grid Settings

Use the Grid Setting options to define the characteristics of the grid used during this customization session. You
can activate the Snap to Grid mode. You can also indicate how large you want the grid to display.

Grid Size

Use the Grid Size option to specify the amount of space, in pixels, that displays between the grid dots during
this custom session. Use this function to define both width and height values.
To change the size of the grid:

1. In the Customization Tools Dialog, click the Tools menu.

2. Select Options > Grid Settings > Grid Size.

10.0.700 131
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

3. The Grid Options Dialog displays.

4. Enter the Grid Width in pixels, by which you want the grid dots to be spaced horizontally.

5. Enter the Grid Height in pixels, by which you want the grid dots to be spaced vertically.

6. When you finish, click OK.

Snap to Grid Mode

The Snap To Grid mode helps you position fields, check boxes and other custom elements on the custom form.
When this mode is on, the shapes pull, or snap, towards the grid dots.
By default, this mode is off. To turn on Snap to Grid mode:

1. In the Customization Tools Dialog, click the Tools menu.

2. Select Options > Grid Settings.

3. Select Snap To Grid. By default, this mode is off and no check displays next to this option.

Snap To Grid mode is now turned on. All elements that you place on the customization (buttons, fields, grids,
and so on) now snap to the nearest set of dots on the grid.

By entering a smaller grid size and then activating the Snap to


Grid feature, you can more precisely place your custom check
boxes, fields, radio buttons, and other elements onto your
custom form.

Suppress Save Comment Dialog

By default, the Customization Comment window appears each time you save. You can select the Suppress Save
Comment Dialog option to prevent this dialog from appearing.
You use the Customization Comment window to enter any comments about the customization. This feature
might be useful if you need to audit the development of the customization. However if you do not need this
feature, selecting the Suppress Save Comment Dialog option prevents this dialog from appearing each time you
save. This causes the Customization Tools Dialog to instead come into focus after you save.

132 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

Activate the Suppress Save Comment Option

By default, the Customization Comment dialog automatically appears each time you save a customization. To
prevent this dialog from displaying:

1. In the Customization Tools Dialog, click the Tools menu.

2. Select Options.

3. Notice the Suppress Save Comment Dialog option; select this option.
A check mark now appears next to this option on the sub-menu.

Now each time you save the customization, the Customization Comment dialog no longer displays.

10.0.700 133
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

Hide, Move, and Add Elements

Through the customization functionality, you have complete control over the fields, check boxes, buttons, and
other elements that display on an interface. You can hide, move, and add elements – changing the interface into
whatever runtime presentation you need.

Hide Elements

You hide elements by using the Visible property. Use this feature to keep the element on the interface while still
hiding it from your users – essentially disabling it.

Hide Elements – Example

In this example, you are customizing the Sales Order Entry interface. You have a group of users who never use
the Counter Sales functionality, so you want to hide these fields on the interface.

1. A Group Box is an interface section that contains related fields, check boxes, and other elements. You can
also hide all the elements within a group box. For this example, you want to hide the Counter Sales group
box and all the fields its contains.

134 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

2. Navigate to the Customization Tools Dialog. Select the Properties tab.

3. The Visible property is set to True. Click the drop-down list.

4. Select False.

5. The Counter Sale group box, and all the fields this box contains, disappear from the interface.

10.0.700 135
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

You can continue to hide elements you do not want by using each element’s Visible property. To continue this
example, you should hide all the Counter Sales fields and grids from view. You should also hide the Ship Via list
from the Header group box. You add this list back to the custom form later in this chapter.
What is unique about this property is that you are only hiding these elements – you are not removing them. If
you need to display a hidden element again, just change the Visible property back to True.

You can also hide elements quickly by using the Tree View in
the Customization Tools Dialog. To do this, highlight the tree
node of the element you want to hide. The selected element’s
properties display within the Properties tab and you can change
its Visible property.

Move Elements

Each element can be moved to a different area on a sheet. Notice that through the Sales Order Entry example,
hiding the counter sales fields and group boxes creates space on the sheet.

Move Elements – Example

You can clean up the look of your customization by clicking and dragging elements around to different locations.

1. In the Tree View, select the element you want to move; its handles display. In this example, you are moving
the Summary group box.

136 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

2. Drag and release the element to the location where you want it to be.

3. Notice when you move a group box, all the fields it contains are moved with the group box. If you like,
however, you can also move an individual button or field in the same way. To do this, just highlight the
element so its handles display.

10.0.700 137
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

4. Move the element into the location you want to place it on your customization.

5. An important way you can streamline your custom interface is to add and edit tab stops. You can then
customize the order in which users move through fields when pressing the <Tab> key. To do this, first
highlight the element.

138 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

6. To indicate you want the field to be selected while users press the <Tab> key, select the TabStop property.

7. Click the drop-down list and select True.

8. In the TabIndex property, enter the order in which you want this element activated through the Tab order.
In this example, the Ship To ID (txtShipToCustID) field is second in the tab order.
Continue to manipulate the other elements on this sheet as you need.

You can do many other things to each element – including


change its color, font, tab order, and other options. To
learn how to do these functions, review the
Personalization chapter. For a complete list of element
properties, review the Customization – All Properties topic
within application help.

10.0.700 139
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

Add Elements

One of the fundamental customizations you can do is add elements, like custom fields and buttons, to a form.
For example, you could add a button that launches another program. You can also add a text field that is linked,
or bound, to a selected column within a dataView (DataSet table).

The Toolbox

You add elements by using the ToolBox. You launch this window from the Customization Tools Dialog. To add
elements:

1. In the Customization Tools Dialog, click the Tools menu.

2. Select Toolbox.

3. The Toolbox window displays. Notice each element that you can place on your form has its own button.

The next sections describe each toolbox element.

140 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

Toolbox Tour - Part One

The top half of the Toolbox contains the following tools.

1. Pointer – Click this button to return the mouse back to its normal pointer arrow. You use this arrow to
click and drag the sizing handles on a selected element. You can also click and drag over an element to
move it to a new location on the form.

2. EpiLabel – Click this tool to create a label for an element. With this tool selected, click and drag your mouse
pointer on the form. A label appears with its resizing handles. Release your mouse button to drop the label;
enter the text for the label within the selected field.

3. EpiTextBox – Click this tool to create a text box. With this tool selected, click and drag your mouse pointer
over the form. A text box appears with its resizing handles. Release your mouse button to drop the text box
onto the form. You bind a text box to a field in the database by defining its EpiBinding property.
You explore how to bind both data and a label to a text box later in this chapter.

4. EpiCheckBox – Select this tool to create a check box. With this tool selected, click and drag your mouse
pointer over the form. A check box appears with its resizing handles. Release your mouse button to drop
the check box onto the form. Use the handles to make the check box the size you need. You can also bind
a check box to a column in the database by defining its EpiBinding property.

5. EpiRadioButton – Use this tool to create a new radio button (the round field, that when selected, has a
black dot in the middle of it). With this tool selected, click and drag your mouse pointer over the form. A
button appears with its label and resizing handles. Release your mouse button to drop the button onto the
form.

10.0.700 141
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

6. EpiButton – Click this tool to create a new button. With this tool selected, click and drag your mouse
pointer over the form. A button appears with its resizing handles. Release your mouse button to drop the
button onto the form. Use the handles to make the button the size you want.

You can bind buttons to a custom event handler; use this


feature to activate custom code, display a new program,
and other options. For more information, read the Event
Wizard section in the Advanced Customization chapter.

7. EpiUltraCombo – Use this tool to create a drop-down list. Drop-down lists display a selected option in the
main field, but when users click the down arrow button, they may select another option from the list. You
link this list to a database property by defining its EpiBinding property and you can also select it to retrieve
data from a specific table.

8. EpiCombo – Click this tool to create a drop-down list. Drop-down lists display a selected option in the main
field, but when users click the down arrow button, they may select another available option from the list.
The Combo element is derived from the UltraCombo control. Use this control to retrieve data from a data
object without using an adapter; this improves the performance of your customization.

9. BAQCombo – Use this tool to create a drop-down list which displays information from a selected business
activity query (BAQ). BAQs are query tools you can create and modify; they pull in a set of data you define
within the BAQ Designer. After you draw the BAQCombo on your form, indicate the specific BAQ and the
ValueMember column which holds the data. You then define the DisplayMember column the customization
uses to display the data during run time on the form.
Note you can create updatable BAQs which allow users to enter data directly into a business object. On the
updatable BAQ, you can define one of the updatable columns to use a BAQCombo. Users can then enter
data through this drop-down list. For more information about BAQs, review the Epicor ICE Tools User Guide;
the Business Activity Queries chapter explains how you modify and create BAQs.

10. EpiGroupBox – Click this tool to create a group box; use group boxes to place related elements together
within one section of the interface.

11. EpiUltraGrid – Use this tool to create a grid. With this tool selected, click and drag your mouse pointer
over the form to create the grid. You then can bind the grid to the data you wish to display.
You explore how to create new grids and bind them to data later in this chapter.

12. EpiUltraComboPlus - Select this tool to create a Navigation toolbar. Users leverage these toolbars to
move through all the records they have pulled onto a form during the current session. It automatically places
the Start, Previous Record, Next Record, and End buttons next to the main drop-down list. You bind an
UltraComboPlus box to a database column by defining its EpiBinding property.

142 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

Toolbox Tour - Part Two

The bottom half of the Toolbox contains these tools.

1. EpiDateTimeEditor - Click this tool to create a date/time field. With this tool selected, click and drag your
mouse pointer over the form to create the date field. A down arrow button is also automatically created;
when users click this button in run mode, the Calendar window displays.

2. EpiTimeEditor - Use this tool to create a time field. With this tool selected, click and drag your mouse
pointer over the form to create a field that displays a time value.

3. EpiNumericEditor - Click this tool to create a numeric field. With this tool selected, click and drag your
mouse pointer over the form to create the field. This field only displays numeric data.

4. EpiCurrencyEditor - Select this tool to set up a currency field on the form. This field only displays currency
data.

5. EpiCurrencyConver - Use this control on a form when you need to leverage a source currency value, and
then convert this source currency value into equivalent values in other currencies. If you are developing a
customization that requires amounts to display in different currencies, be sure to place this control on your
customization.

6. EpiShape - Use this tool to create an oval graphic on the interface. Once you have placed the shape on the
interface, you can adjust its size and change its color. You can also enter text that displays inside the shape.

7. EpiPictureBox – Click this tool to create a frame that can then display a graphics file. You can then write
custom code that displays the image you want within the picture box. When you place the picture box, you
can then resize its handles so it has the dimensions you need to contain the selected graphic file.

To learn about creating code that can be run within your


customization, review the Advanced Customization
chapter.

10.0.700 143
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

8. EpiRetrieverCombo - Use this tool to create a drop-down list that pulls its data from a retriever combo
you select. When you select this option and draw the control onto the form, the Select Retriever Combo
window displays and loads the available retriever combos (for example, JobEntryCombo). Select the retriever
combo you need, click OK, and place the custom control on the form. When the form is in run mode, this
drop-down list populates with data from the selected retriever combo.

9. EpiDayView – Leverage this tool to add a Day sheet to your customization. During run-time, users click
this Day tab to display a sheet which lists all the hours available during a specific work day. Tasks and events
assigned on that specific day display on this sheet.

10. EpiMonthViewMulti – Use this tool to add a Calendar pane to your customization. During run-time, users
click the controls on this Calendar pane to navigate to different months within the current year, previous
years, or future years.

11. EpiMonthViewSingle – Click this tool to add a Month sheet to your customization. During run-time, users
click this Month tab to display a sheet which lists all days available during a specific month. Tasks and events
assigned on each day during this month appear on this sheet.

12. EpiWeekView – Use this tool to add a Week sheet to your customization. During run-time, users click this
Week tab to display a sheet which lists all the days available during a specific week. Tasks and events assigned
on each day during this week appear on this sheet.

144 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

Add a Text Box

With the Toolbox displayed, you are now ready to add elements to the custom interface. In this example, you
add a text box to the form, and then link, or bind, the text box to a column within a data table. You have this
field display the Allocation Priority of the current sales order.

Place Field

To begin, use the Toolbox to add a field to the form.

1. After you launch the ToolBox, you should either minimize the Customization Tools Dialog window or
turn off the Top Most mode. You can then see all of the current form.

To learn more about Top Most mode, review the Custom


Session Options section earlier in this chapter.

2. In the Toolbox window, click the EpiTextBox.

3. Click and drag over an empty area of the form. The new text box displays.

If you are an Epicor Partner, you may see a window asking


you to define the layer type (Verticalization,
Customization, Productization, and so on) for your
customization. Select the layer type which applies to this
customization. The next time you customize this form,

10.0.700 145
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

this customization’s icon will display under the appropriate


layer type node on the Select Customization window.

Bind Field

You now link, or bind, the field to a table and column in the database.

1. Now return to the Customization Tools Dialog.

2. You need to bind this field to a table within your database. In this example, you want the field to display
the Allocation Priority for the sales order. To do this, you select OrderHed from the EpiBinding drop-down
list.

3. From the OrderHed drop-down list, select AllocPriorityCode. AllowPriorityCode displays in the EpiBinding
field.

146 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

4. The ReadOnly property is set to True, which means that users cannot change the value displayed in this
field. However, you want users to be able to change this value, so click this property and select False.

10.0.700 147
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

Add a Label

In order for users to understand the purpose for this field, you should place a label next to it.

1. To do this, click EpiLabel in the Toolbox.

2. Click and drag over an area next to your text box. The label displays.

3. Use the Properties tab and enter Priority in the Text property.

4. Notice the text within the label now displays the word Priority on the form.

Some element properties are controlled by an extended


property on the DataColumn bound to the element.
Because of this, some element properties like ReadOnly
and Visible may be overridden by the DataColumn; this
causes them to revert back to default. To change these
properties, you must create custom code. For more
information, review the Advanced Customization chapter.

148 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

5. You now want to make sure the new text box and its label are side by side on the form. To do this, select
the label, then hold down <Shift> and select the text box. Notice that both the label and the text box are
highlighted.

10.0.700 149
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

6. Click the Format menu.

7. Select Align > Tops.

Both the label and the text box are now lined up correctly.
If you wanted to align two or more elements so that their
left sides are lined up, you would instead select the Lefts
option.

150 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

8. You can also link the label to the text box. This causes the label and text box to become a single unit and
move together. To do this, highlight the text box.

9. Now in the EpiLabel property, click the drop-down list and select the custom label. In this example, the
label’s name is epiLabelC1. The text box is both bound to data and it is linked to its label.

10.0.700 151
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

10. To help you keep track of each custom text box on the form, the element identifier displays inside the text
box. To clear this value, locate the Text property and clear the epiTextBoxC1 value.

11. Notice the field no longer contains text.

152 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

Save and View the Customization

You are ready to review the customization in runtime to see how it works.

1. To save your changes, click the File menu.

2. Select Save Customization.

3. From the File menu, select Close.

4. To see your new text box in action, close the program and launch it again.

10.0.700 153
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

If you removed all the counter sales fields, your customization looks something like this example. Note the
new Priority field. The field is active and is displaying the priority code currently defined on the selected
order.

Add an EpiRetrieverCombo Box

A Combo Box is a drop-down list of options; users then select a specific option from this list. To add this element,
you first need to place the Combo Box on the form, link it to a data column, and lastly indicate that items within
this column display on the list.
To add a Ship Via list to your form:

1. In the Toolbox, click the EpiRetrieverCombo element.

2. Click and drag over an open area on your customized form.

3. The Select RetrieverCombo dialog box displays with a list of available retriever combos.

4. Select ShipVia> ShipViaCombo to link the drop-down list of your combo box to the Ship Via data. This
retrieves a list of ship via codes that display when you click the combo box.

154 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

5. In the Customization Tools Dialog window, click the Text property. Clear the shipViaCombo1 text.

6. You now must place a label next to the new list. In the Toolbox window, click the EpiLabel element.

10.0.700 155
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

7. Draw the label in the area beside the drop-down list.

8. Click in the Text property and enter Ship Via.

9. Select the drop-down list again.

156 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

10. In the EpiLabel property, select the new label. In this example, you select epiLabelC2.

11. Click Save.

12. Exit the Customization Tools Dialog.

13. Close the Sales Order Entry form.

10.0.700 157
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

14. The Ship Via drop-down list is now added to your customized form. When you create or edit a sales order,
this list of Ship Via options is available.

Add a Grid

Grids display multiple records simultaneously through a table format. To add grids to your customizations:

To make it easier to draw your new grid, you should either


minimize the Customization Tools Dialog or turn off Top Most
mode. You can then see all of the current form. To learn more
about Top Most mode, review the Custom Session Options
section earlier in this chapter.

158 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

1. In the Toolbox, click the EpiUltraGrid element.

2. Click and drag the grid over an empty section of the custom form. In this example, you placed the grid at
the bottom of the Summary sheet.

10.0.700 159
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

3. Navigate to the Customization Tools Dialog window.

4. Click the EpiBinding drop-down list and select OrderRel.

5. In the Text property, enter Order Releases.

160 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

6. Click the Columns property and select the drop-down list. The Column Properties grid displays.

7. All the columns that can be displayed are shown in the Column Properties grid. Notice that you can hide
some columns and prevent data from being entered (Read Only) in other columns. You can do this
individually on each column by selecting either its Hidden or ReadOnly check box.

8. To hide all the columns you have selected as Hidden on the grid, click the Toggle Hidden button. During
run mode, these columns do not display. To display these columns again, click the Toggle Hidden button
again.

9. To indicate all columns selected as ReadOnly appear in this state, click the Toggle Read Only button; during
run mode, users cannot enter data within these columns. To remove the ReadOnly state on these columns,
click the Toggle Read Only button again.

10. Click outside this grid to close it and then click Save.

11. Exit the Customization Tools Dialog and close the Sales Order Entry form.

10.0.700 161
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

12. To see your custom grid in Run Mode, launch the customized form in run mode again. The Order Releases
grid is now added to your customized form.

Save Options

Several save options are available for your customizations. You can indicate this customization is for one or
multiple companies. You can also save different versions of your customization, so you can develop more complex
customizations in stages.
A key feature is the Work in Process (WIP) status option. If you save your customization using this status, it is not
available to other users. You can then keep the customization within your test environment, preventing it from
being placed on the Menu before it is ready to use.
All of these options display on the Customization Save Dialog window. This window appears the first time you
save the customization, and it also appears when you use the Save As command.

For more information about making your customizations


available to users, review the Customization Utilities chapter.

162 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

Select Save Options

To access and select the save options:

1. In the Customization Tools Dialog, click the File menu.

2. Select either Save Customization (if this item is a new custom form) or Save Customization As.

3. The Customization Save Dialog window displays.

4. The Form Name field displays the .xml filename for the form currently being customized.

5. The User field identifies the person who created the customization.

6. The Existing Customizations grid displays information on all the customizations currently available for this
form. If you need, use the bottom scroll bar on the grid to review complete information.

7. To make this customization available for every company within your system, select the All Companies check
box. Every company can now add this customization to their Menu.

8. Use the Company list to restrict this customization to a specific company. All the companies within your
application are available; select the company you want.

10.0.700 163
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

9. The Product Code field shows you the Epicor product for which this customization is made. In this example,
the customization is for Epicor (EP).

10. The Form Name field displays the .xml filename for the form being customized.

11. The Type Code list displays the kind of custom form you are creating. By default, Customization displays.

12. Enter the Name of this customization. For this example, you enter NoCounterSales. This value is the name
that displays within the Select Customization window. For more information about this window, review
the Developer Mode section earlier in this chapter.

13. Enter the Description for this customization. In this example, you have removed the Counter Sales
functionality, so you enter No Counter Sales.

14. If this customization is a sub-layer, or child, of an existing program, the Parent Layer Key field displays the
code layer that contains the child customization.

15. Select the WIP check box to indicate this customization is a Work In Process. You can then keep the
customization within your test environment, preventing it from being placed on the Menu. If you want to
add this customization to the Menu, you need to clear this check box.

16. When you finish defining the save options, click Save.

17. The Customization Comment window displays. Enter comments to help identify the purpose for the
customization.

18. Click OK.

164 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3

Export Customizations

You can make a customization available outside the application through the Export Customization functionality.
You then place the customization out into a shared folder where other users can then import it into their systems.

Export the File

To export customizations:

1. In the Customization Tools Dialog, click the File menu.

2. Select Export Customization.

3. The Export Customization window displays.

4. By default, this program places your customization within a shared Export directory. If you need, you can
select a different directory.

5. The File name field automatically creates a name for the exported file. You can enter a different name in
this field.

10.0.700 165
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide

6. Click Save.

The customization is moved out to the selected folder; it can now be imported into another system. You can
review how to do this in the Select Customization section found earlier in this chapter.

166 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Chapter 4: Advanced Customization

The Advanced Customization chapter explores how you can further customize a program through modifications to its
code. Several wizards are available that guide you through adding customizations that can, for example, cause a field
to alert users through color changes or cause special code to run when a form is launched.
To increase your customization options, Foreign Key Views can be added to each form. Use these custom data views
to pull in data from a related table into a customized form. You can then add fields, drop-down lists, and other elements
that display the data from this foreign key view.
You can also customize the code behind the current form using the Script Editor. Use this tab within the Customization
Tools Dialog to enter C# code directly, changing the form code as you need. To help you customize at this level, you
can use the Custom Objects Explorer, the Assembly Manager, and the XML Editor. In this chapter, you also find building
blocks of code you can incorporate within your customization.
Unless noted, most of the examples in this chapter use the NoCounterSalesAlt customization you created in the Basic
Customization chapter. In some situations, a new customization must be created to prevent a potential conflict within
the base NoCounterSalesAlt customization.

Customizing Alternate Interfaces

Besides customizing the programs within your client installation, you can also customize programs within the
Epicor Manufacturing Execution System (MES) Menu and the Epicor Handheld Menu. You do this by first setting
up an environment to create your customization. You then attach your customization to the MES or Handheld
interface using Menu Maintenance.
The following example describes how you customize the MES Menu and its programs. You follow similar steps
to customize the Epicor Handheld Menu.

Create MES Developer Icon

1. On your desktop, make a copy of your MES icon and rename it to MES Developer (or something similar).

10.0.700 167
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

2. Right-click this icon and select Properties.


The MES Developer Properties window displays.

3. In the Target field, modify the runtime argument, or switch, to use the /MESC argument.

To customize the Epicor Handheld Menu, you enter /HHC.


For more information on how to use runtime arguments,
review the Startup Configurations chapter in the Epicor
Implementation User Guide.

4. Click Apply.

5. Click OK.

168 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Launch Developer Mode

1. Double-click the MES shortcut icon to launch the application. The Select Customization window displays.

2. Notice the Form Name field displays the Menu.Mes.MESMenu value.

3. Click OK to launch the base form.

4. Next the Select Customization window displays for the System Monitor layer. Notice the Form Name
field displays the App.SysMonitorEntry.SysMonitorForm value.

5. Click OK to continue to launch the base form.

10.0.700 169
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

6. The MES interface displays.

7. Enter your Employee ID.

8. Click Log In.

9. Another Select Customization window displays. Notice the Form Name field displays the
Menu.Mes.EmployeeSelect value.

10. Click OK to continue to launch the base form.

170 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

11. The MES Menu refreshes. Notice the buttons on this interface activate.

12. To customize a program, click a button on the MES Menu. In this example, you click the Start Production
Activity button

13. The Process Calling window displays.

14. Record the Process Key and Calling App values. You will need these values later, you must keep track of
this information.

15. Click OK.

10.0.700 171
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

16. To customize the main MES Menu, right-click and select Customization from the context menu.

17. The Customization Tools Dialog displays and you can make modifications to the MES Menu as you need.

You can now customize the program. Because you are customizing a sub process program, however, some
additional steps are required in order to deploy your program onto the MES Menu. Follow the steps described
in the Sub Program Deployment section within the Customization Utilities chapter to learn more about this

172 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

process. When you test your MES or Handheld customization, be sure to launch your regular (runtime) MES or
Handheld shortcut icon.

Styling Specific Controls

You can customize a specific control to display in a separate style from the rest of the form. Two customization
properties, UseAppStyling and StyleSetName, define the style applied against a specific control. After you create
the name of the style used by the control, you then launch the Runtime Styler to create this unique style.
For this example, you use the Sales Order Entry customization you created within the Basic Customization chapter.
To keep the customizations you made in chapter four, you might want to save a copy of this customization and
add the “adv” suffix to it. This indicates that this customization contains features from the Advanced Customization
chapter.

Define the Control Style

To create the new styles, you first switch to customization mode:

1. Select the control you want to style. In this example, you select the Ship Via drop-down list.

2. On the Properties tab, select the UseAppStyling property. This property indicates whether the control
uses a separate style from the rest of the form. Verify that this value is set to True; this activates the control
styling feature.

10.0.700 173
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

3. Scroll down through the properties to display the StyleSetName property. This property defines the specific
style you use for the control. In this example, you enter NoCounterSales.

4. You also want the Ship Via label to use this style. Highlight the Ship Via label.

174 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

5. Verify that the UseAppStyling property is set to True.

6. In the StyleSetName property, enter NoCounterSales.

7. Save the customization.

8. You need to refresh the form for your changes to activate. Exit customization mode and close the form.

You have now indicated these two controls use the No Counter Sales style. However, this style does not exist
yet, so you next need to create it.

Create the Control Style

To create your new style using the styling functionality:

As of this writing, the styling features are only available on the


Classic interface. If you use the Shell interface, you will need
to log out of the application and then log back in using the
Classic mode. You can do this by right-clicking the desktop
icon and selecting the Properties option. In the Target field,
add the /classic runtime argument.

1. Launch your custom form again.

2. Switch to the Main Menu.

3. From the Options menu, select Styling > Runtime Styler.

10.0.700 175
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

4. In the Runtime Stylist window, click the Add button.

You can also click the Manage Stylesets button and base
your new style on the default style. In this way, the control
style uses the same base attributes as the original style.

5. The StyleSet Manager window displays. In the StyleSet Name field,enter NoCounterSales.

6. Click OK.

176 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

7. The next steps are similar to exercises you followed in the Styling and Themes chapter. Select the Ship
Via drop-down list.

8. The Runtime Stylist indicates you can update this control by pressing <2> on your keyboard. Press this
key.

9. You locate the Background section in the Settings for ‘UltraComboEditPortion’ window. Select Gradient
for the background color.

10. Select the first color you want for the gradient.

11. Select the second color for the background.

12. Click the Gradient button to select the gradient style you want for the two colors. In this example, the
gradient goes from left to right across the field.

10.0.700 177
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

13. Select the Ship Via label.

14. The Runtime Stylist indicates that you can update this UltraLabel control by pressing <1> on your keyboard.
Press this key.

15. You want the text in this font to stand out against the rest of the form. In the Font section, click the Color
button to find and select the color you want.

16. Exit the Settings window.

17. Exit the Runtime Stylist.

18. You are asked if you want to save changes to the style. Click Yes and save your NoCounterSales style in
the Styles folder. This folder is located in your client installation.

178 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

19. Click Save.

Close and reload your custom program. The controls display using the new style you created. However notice
the rest of the controls on this form still use the original style.

10.0.700 179
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Disable the Control Style

You can also turn off the style so it no longer displays on the control. To launch customization mode again:

1. Select the Ship Via drop-down list.

2. Navigate to the Properties list, highlight the UseAppSetting property, and select False.

180 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

3. Select the Ship Via label.

4. Navigate to the Properties list, highlight the UseAppSetting property, and select False.

5. Click Save.

6. Exit and re-launch your custom program. The controls on the customized program no longer use any styling.

10.0.700 181
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

If you want to use the default styling instead, set the


UseAppSetting property to True and then delete the
StyleSetName value. Change these properties on both
controls.

Use this functionality to style any control you want within your customization.

Non-Customizable Forms

Some programs, or forms, within the application cannot be customized. This security condition is placed on
programs that contain sensitive system level functions. If customizations were made to these programs, they
could harm the performance and function of your Epicor application. For example, you cannot customize the
Business Activity Query Designer program.
You are immediately prevented from customizing a non-customizable form. Normally when you launch a program
in Developer mode, the Select Customization window displays and you can pull in an existing customization or
create a new one. A dialog box displays instead, informing you that this form is not customizable. Click OK and
the form displays in Run mode. If you click the Tools menu, the Customization option is not available.

Customization Form Wizards

The Customization Tools Dialog contains a series of customization form wizards that can guide you through
customizing various aspects of a form (program). This section explores each wizard.

The application also contains a series of wizards that help you


create valid code. These Customization Code Wizards are
explored later in this chapter.

Rule Wizard

Use the Rule Wizard to create rules for any field within your customized form. Each rule is set up to define various
data conditions and then also has one or more actions that activate when the condition is met. You can create
rules across tables (dataViews), where a condition defined for a field in one table affects the field in another
table. You can also create custom conditions and rules, so a nearly unlimited amount of row rule possibilities are
available.
During Run Time, the rule monitors data within its selected field. If a condition in the data triggers the rule, all
the actions linked to that specific rule activate. You can cause a key field to be highlighted, display a dialog box,
or launch custom code that performs a task you define.

Add a Basic Condition

The overall rule defines the condition of the data that activates the rule action or actions. When data is placed
in the selected field, the rule evaluates the data based on the condition you define.
You want your Sales Order Entry customization to indicate when the discount percent becomes higher than the
rate you normally give customers. To create the rule:

182 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

1. Click the New Row Rule button.

2. Enter a Rule Description for the rule. This value will display in several programs. In this example, you enter
Discount Limit.

3. Click the Rule View drop-down list to select the table, or dataView, that contains the field you want to
monitor. In this example, you select OrderHed.

4. If you want the condition to monitor a field in a different dataView, you can define this view from the Select
View drop-down list. In this example, however, you select the same OrderHed dataView.

5. Click the Select Field drop- down list to select the specific field you want the rule to monitor. In this example,
you select the DiscountPercent field.

6. Select a Rule Condition from the list. This operator evaluates the data within the selected field. For this
example, you want the interface to change when the Discount Percent amount becomes higher than a
specified value, so you select Greater Than from this list.

7. Enter a Rule Value against which this condition is to be evaluated. You can enter a numeric value here (in
this example, 5) or select another field from the drop-down list. If you select another field, you are telling
the rule to evaluate one field against another field.

10.0.700 183
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

8. When you finish defining the rule, click the Right Arrow button.

9. You have now defined a rule for the selected field.

Rule Conditions

Available conditions for your rules:


• Column Value Changes – The value within the field is changed from its previous value.
• Contains – The field, previously blank, now holds data.
• Custom Condition – Select this option to create a condition using custom code.
• Ends With – The field value ends with the same characters you specify within the rule.
• Equals – The field value is the same as a value you specify within the rule.
• Greater Than – The field value is larger than a value you specify within the rule.
• Greater Than Or Equal To – The field value is larger than or equal to a value you specify within the rule.
• Less Than – The field value is smaller than a value you specify within the rule.
• Less Than Or Equal To – The field value is smaller than or equal to a value you specify within the rule.
• Not Equal – The field value is not the same as a value you specify within the rule.
• Starts With – The field value begins with the same characters you specify within the rule.

Create Basic Rule Actions

After you create the rule and its condition, you then must define the action that occurs when the condition
activates. You can have one or multiple actions for each rule; all of these actions occur when the rule condition
is launched.
You next create an action for the row rule. In this example, you want the Discount Percent field to display the
red Error color. To create an action for the row rule:

184 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

1. Click the New Rule Action button.

2. The Rule View field displays the dataView, or table, selected for the rule. In this example, it displays the
OrderHed table.

3. Click the Select Field drop- down list to find and select the field that you want to affect on the interface.
In this example, you want to change the color in the DiscountPercent field.

4. Click the Setting Styles drop-down list to select the Warning option. This creates a rule action that causes
the Discount Percent field to display in yellow when the percentage value becomes larger than five.

5. Click the Right Arrow button.

6. The condition now displays in the Rule Actions field.

10.0.700 185
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

7. You also want this rule to highlight the Terms field as well, so you need to create another rule action. Click
the New Rule Action button again.

8. Click the Select Field drop- down list to select the TermsCode field.

9. Click the Setting Styles drop-down list to select the Highlight action.

10. To add the action, click the Right Arrow button.

11. The new rule action is added to the Rule Actions field. You now have both an error action and a highlight
action linked to this rule.

12. Click the Update Code button.

13. To see your rule in action, exit the Customization Tools Dialog and then close and restart your customized
form.

186 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

14. Now when users enter a discount amount that is larger than five percent, this rule activates. The Discount
Percent field displays in yellow, while the Terms field displays in blue.

Available Actions

Available actions for your rules:


• Default – The text within the selected field displays in the default theme color.
• Disabled – The field defined for this rule becomes grayed out.
• EpiReadOnly – The field displays its value, but users cannot modify this value.
• EpiStyle_Highlight – The text within the selected field displays using a highlight style you create within the
Runtime Styler. Use the Runtime Styler to customize the highlight color by adding gradients, images, and so
on. For more information, review the Runtime Styler sections in the Styling and Themes chapter.
• EpiStyle_Invisible – The field is hidden from the display using the Invisible style. You can modify within the
Runtime Styler as described previously.
• Error – The field defined for this rule displays the error color defined in the current theme.
• Highlight – The text within the selected field displays with the current theme's highlight color.
• Invisible – The text within the selected field is hidden from view.
• OK – The text within the selected field displays using the theme's default okay color.
• Warning – If data in the selected field activates this condition, the field displays in the Warning color defined
for the current theme.

You can also define row rules for image columns within the
Rule Wizard. You do this by creating rule actions that place
different images within an image column created with the
Image Column Wizard. The next section, Image Column
Wizard, explains how you use this feature.

10.0.700 187
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Cross View Rule

You follow similar steps to create a rule that monitors a field in one table (dataView) but then updates a field in
another table. In this example, you cause the Order Number field in the Order Release grid to highlight when
the current order is for a specific customer. The customer value is from the OrderHed table, while the Order
Number field is in the OrderRel table.

1. Navigate to Wizards > Rule Wizards sheet and click the New Row Rule button.

2. Enter the Rule Description for this rule. This value will display in several programs. In this example, you
enter Specific Customer.

3. Click the Rule View drop-down list to select the specific table where you want the action to occur. For this
example you select OrderRel (the Order Release table). This value can be different than the Select View value;
it is the first argument (Arg1) for the condition.

4. Click the Select View drop-down list to select the other table involved in this cross row rule. This value is
the second argument (Arg2) used in the condition. For this example, you select OrderHed (the Order Header
table).

5. Select the field in this table that you want the condition to monitor. In this example, you click the Select
Field drop-down list and select CustomerCustID (the Customer identifier field).

6. Select the Rule Condition used to evaluate this rule. Because you want this condition to trigger when the
field contains a specific value, you select Equals.

7. Enter the specific Rule Value you want for this condition. You enter DALTON, which means that any sales
orders that contain this identifier then trigger the rule condition.

8. Click the Right Arrow button. The new rule displays in the Custom Row Rules field.

188 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

9. To define the rule action, click the New Rule Action button.

10. Notice the Rule View displays the same table (dataView) you selected for the Rule View in the condition.

11. Click the Select Field drop-down list to define which field is affected by the condition. In this example, you
select the OrderNum (Order Number) field.

12. Select the Setting Styles option this rule action uses. In this example, you select Highlight.

13. Click the Update Code button.

14. Click Save, exit the customization, and launch the customization again.

15. Click the Sales Order button to find and select an order with DALTON as customer.

10.0.700 189
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

16. Notice the Order Number field is highlighted in the Order Release grid.

Create a Custom Condition

Use a custom condition to create a row rule that leverages code you enter within the Script Editor. You can then
define a condition that activates for a trigger you create, so a nearly unlimited number of row rule conditions
can be used within your customization.
For this example, you cause the Discount Percent field to highlight when a range of values populate this field.
In order to avoid a potential conflict with the previous row rule customization, a new customization,
CustomCondition, was created for Sales Order Entry to create this example.
To create a custom condition:

1. Click the New Row Rule button.

2. Enter the Rule Description for this row rule. In this example, you enter Percentage Range.

3. Select the Rule View table (dataView) that this custom condition monitors. You select OrderHed for this
example.

4. Click the Select View drop-down list to select the table this condition monitors. You can select a different
table, so you can create a cross row rule for a custom condition. For this example, however, you keep the
OrderHed table in this field.

5. Click the Select Field drop-down list to define the field that this custom condition monitors. For this example,
you select DiscountPercent.

6. To indicate you are creating a custom condition, click the Rule Condition drop-down list and select
CustomCondition.

7. To indicate the condition resolves to a value, enter a number, such as 5, in the Rule Value field. This value
ensures that the custom condition code shell generates correctly.

190 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

8. Click the Right Arrow button and the custom condition displays in the Custom Row Rules field.

Define Rule Action

Now create the rule action for the custom condition.

1. Click the New Rule Action button.

2. Indicate which field is affected when the custom condition is triggered. In this example, you click the Select
Field drop-down list and select the DiscountPercent field.

3. Define the Setting Styles for this row rule action. For this example, you select the Highlight option.

4. Click the Right Arrow button.

5. Click the Update Code button.

6. Select the Script Editor tab.

10.0.700 191
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

7. The custom row rule shell displays; notice it returns as a Boolean (True/False) value. The first argument
(Arg1) evaluates the table and field defined for the condition.

8. Enter your custom code below the //** put Row Rule condition evaluation logic here comment.
Example C# code:
private bool OrderHedDiscountPercent5_CustomRuleCondition(Ice.Lib.Extended
Props.RowRuleDelegateArgs args)
{
bool result = false;
// ** RowRuleDelegateArgs Properties: args.Arg1, args.Arg2, args.
Context, args.Row
// ** put Row Rule condition evaluation logic here
double discPct = System.Double.Parse(args.Arg1.ToString());

if ((discPct >= 2) && (discPct <= 4))


{
return true;
}

return result;
}

9. Make sure the code does not contain any syntax errors. Click the Tools menu and select Test Code.

10. If the code is valid, the Output pane displays **Custom Code Compiled Successfully.**

11. Click Save, exit the Customization Tools Dialog, and re-launch your Sales Order Entry customization.

192 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

12. To see the custom condition in action, load in an order, in the Disc % field, enter 1.00. Notice this field
does not highlight.

13. To change the Discount Percent, in the Disc % field, enter 2.00. The DiscountPercent field highlights.

10.0.700 193
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

14. Change the Discount Percent one more time. Enter 5.00 in the Disc % field. Notice the Discount Percent
field is no longer highlighted.

Create a Custom Rule Action

Similar to a custom condition, you can also generate a custom code shell for a rule action. You can then enter
code to launch nearly any action you need. However you can only create one custom rule action for each row
rule. If you need additional actions for the same condition, create a new row rule with a new name, but use the
same condition parameters.
A new customization, Custom Rule, was created for Sales Order Entry to demonstrate this example.
To create a custom rule action:

194 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

1. Click the New Row Rule button.

2. Enter a Rule Description for this row. This value will display in several programs. For this example, you
enter Wrong FOB.

3. Select the Rule View monitored by the condition. You select OrderHed for this rule.

4. You want this condition to monitor the same table, so you leave OrderHed in the Select View field.

5. To define the field monitored by the condition, click the Select Field drop-down list and select FOB.

6. Select the Rule Condition which evaluates this rule. For this example, you select Equals.

7. Define the Rule Value against which the condition is evaluated. You enter CHI in this field. This indicates
the condition is met when a user select the CHI (Chicago Docks) FOB option.

8. Click the Right Arrow button to place this condition in the Custom Row Rules field.

10.0.700 195
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

9. Click the New Rule Action button.

10. Select the Custom Action (Code) check box.

11. Click the Right Arrow button.

12. Click the Update Code button.

196 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Enter Custom Code

Now enter the C# code for the custom rule action. This code displays a message box when the rule condition
activates.

1. Navigate to the Script Editor tab.

2. Locate the // ** put custom Rule Action logic here comment. Enter your custom code in this section.
This example uses the following C# code:
// ** put custom Rule Action logic here
MessageBox.Show ("Do not select the Chicago Free On Board options.");

3. Make sure the code does not contain any syntax errors. Click the Tools menu and select Test Code.

4. If the code is valid, the Output pane displays **Custom Code Compiled Successfully.**

5. Click Save, exit the Customization Tools Dialog, close Sales Order Entry, and re-launch your customization.

10.0.700 197
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

6. Load in a sales order, click the FOB drop-down list, and select Chicago Dock.

7. Your custom alert message displays.

Create a BitFlag Rule

The application also contains a BitFlag column that detects the presence of a specific item within a record. If the
item is detected, the BitFlag value changes to True, and a change occurs within the program. For example, when
the BitFlag value within Sales Order Entry detects that a memo is attached to a sales order, the Memo button
icon changes on the Standard toolbar; a “star” graphic displays on the button to indicate a memo is attached
to the current record.
These files can be changed based on a row rule condition you define. Based on the condition of the BitFlag, you
can cause other actions to occur on the interface.
A new customization, BitFlag, was created for Sales Order Entry to demonstrate this example.
To create a BitFlag rule:

198 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

1. Click the New Row Rule button.

2. In the Rule Description field, enter BitFlag.

3. Select the Rule View this condition monitors. For this example, you select OrderHed.

4. Indicate the Select View monitored by the condition. For this example, you select OrderHed.

5. Click the Select Field drop-down list and select BitFlag.

6. This limits the Rule Condition field to display two options – Has and DoesNotHave. The condition either
sets the BitFlag to True or False. Since this condition needs to evaluate to True, you select Has.

7. Click the Rule Value drop-down list. All the items within the application that use a BitFlag value display on
this drop-down list. For this example, you select Memo. This means that when a sales order record is linked
to a memo, this condition activates.

8. Click the Right Arrow button to add this Custom Row Rule.

10.0.700 199
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Define BitFlag Rule Action

Now define the action that occurs when the BitFlag condition activates.

1. Click the New Rule Action button.

2. Click the Select Field drop-down list and select the CustomerCustID field.

3. Click the Setting Styles drop-down list and select the Highlight option.

4. Click the Right Arrow button to add the rule action.

5. Click the Update Code button.

6. Click Save, exit the Customization Tools Dialog, close Sales Order Entry, and re-launch the customization.

200 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

7. Attach a memo to a sales order; Save the memo.

8. Notice the Memo button icon changes to a new image. Because a memo is attached to this record, a
different bitmap displays for this toolbar button.

9. The Customer ID field is also highlighted.

10.0.700 201
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Image Column Wizard

Use the Image Column Wizard to add an image column to a selected grid. You first create the column, give it a
name and label, and then select the default image to display on the grid.
If you need, you can also create row rules that define when other images display within this column. You can
even set up this column so that it does not have a default image, and then use row rules to populate it with
specific images when certain rule conditions are met.

You can immediately use this functionality to display any image


included within the application. You can also display your own
images through the Resource Editor. This separate utility is
installed in your Epicor client folder. Use this utility to find,
select, and add your own images to the application. These
images can then display on your customization using the Image
Column Wizard. For more information, review the Resource
Editor section within the Customization Utilities chapter.

Add an Image Column

During this example, you add an image column that normally displays a green indicator icon. You then select a
row rule so this column displays the red indicator icon whenever an order release has a quantity larger than 100.
To use this wizard to add an image column:

1. Navigate to the Wizards > Image Column Wizard tab.

2. Click the New Image Column button.

3. Select the Data View inside which you want to create the image column. For this example, you select the
OrderRel dataView, which is the grid you added to your Sales Order customization in the previous chapter.

To learn how to add a grid to a customization, review the


Add a Grid section in the Basic Customization chapter.

202 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

4. Enter a Column Name for the new column. Enter a name you can easily find when creating row rules. In
this example, entering zImage causes this column to be placed at the bottom of the column list.

5. Enter a Caption for the new column. This defines the text that displays in the top header of this column.
For this example, you enter Size.

6. Click the Image Name drop-down list to select the default image you want to display. This file is the default
image that displays if no other rules are applied against the image column. All images available within the
application display; select the image you need from the list. For this example, you select the
ZoneIndicatorGreen image.

7. In the Visible Index field, define the position where the new image column is placed inside the grid. The
lower the number, the closer to the left of the grid the image column displays. In this example, you enter
a 0 in this field; this indicates the column is the first left-side column in the grid.

8. Click Update to add your column to the selected dataView (table).

9. The zImage column is now added to the grid at the top of this wizard.

10. If you need, you can remove the image column. To do this, highlight the image column on the grid and
click the Delete button.

Add an Image Column Rule

Right now, the ZoneIndicatorGreen image always displays on each line within the Order Releases grid. You want
this image column to also alert users when a customer has ordered a large quantity.
To do this, you need to create a row rule that displays a different image when the Our Requested Quantity value
is greater than a defined numeric value. For this example, you use 100 as this numeric value. You set up this row
rule through the Rule Wizard.
To create a rule that displays this alternate image:

10.0.700 203
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

1. Navigate to the Wizards > Rule Wizard tab.

2. Click the New Row Rule button.

3. Enter the Rule Description for this rule. This value will display in several programs. In this example, you
enter Large Order Image.

4. Define the dataView affected by this rule. Indicate a dataView from the Select View drop-down list. In this
example, you select the OrderRel dataView; this defines the table that contains your new image column.

5. The Select Field drop-down list populates with fields contained within the selected dataView. Use this list
to select the specific field monitored by this rule. For this example, you select the OurReqQty field.

6. Select the Rule Condition this rule uses. In this example, you select GreaterThan.

7. Enter or select the Rule Value for this rule. This defines the value against which the Rule Condition is
evaluated. For this example, you enter 100.

8. To add your rule, click the Right Arrow. The new rule displays within the Custom Row Rules list.

204 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

9. Click the New Rule Action button.

10. The Rule View displays the dataView you selected for the rule. In this example, you selected OrderRel.

11. Click the Select Field drop- down list to indicate which field this action affects. You need to select the new
image column, so you select the zImage column you just created.

12. Because you selected an image column, the Setting Styles field changes to the Image Name field. All the
images available within the application display on this list; select the image you need. In this example, you
select the ZoneIndicatorRed image.

13. Click the Right Arrow button.

14. The image column rule now displays within the Rule Actions list.

15. Click the Update Code button.

16. Click Save on the Standard toolbar.

10.0.700 205
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

17. After you exit customization mode and then close and reload your Sales Order Entry customization, you can
test how this works. If you have an order release that has an Our Requested Quantity of 100 or less, the
green indicator image displays.

18. If you have an order release that has an Our Requested Quantity of 101 or more, the red indicator image
displays.

Image Column Row Rule Wizard

A wizard is also available to do this entire process all at once – you can both create an image column and then
add the row rules you need to the column. This tool is the Image Column Row Rule Wizard. During this example,
you add another image column that alerts users when the Available Quantity for a part is below a 50 quantity
numeric value.
To use the Image Column Row Rule Wizard:

206 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

1. You can launch this wizard from two locations. Navigate to the Wizards > Rule Wizard tab and click the
Image Column/Row Rule Wizard button.

2. You can also launch this wizard by clicking the Tools menu. From the Tools menu, select Wizards > Image
Column Row Wizard.

Use the Wizard

When the Custom Image Column / Row Rule Wizard window displays, you can step through the wizard to add
your image column.

1. Select the dataView that contains your new image column. In this example, you select the OrderRel dataView
again.

2. Click Next.

10.0.700 207
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

3. Enter a unique Name for the image column. This defines the identifier used for the column within the
dataView. For this example, you use a z for the prefix and enter zImage2.

4. Enter a Column Heading for the new image column. In this example, you enter Low Stock.

5. Define the Column Position for this new column. This defines the position where the new column is placed
inside the grid. The lower the number, the closer to the left of the grid the image column displays. In this
example, you enter a 1.

6. Click Next.

7. Select the Default Image you want to display within this column. Because you want to use this column to
only warn users about low stock quantities, you decide to select (None) for the image. You create a row
rule later that places an image within this column.

8. Click Next.

If you do not want to create a row rule for this column,


you can click Finish at this point. You then exit the wizard.

208 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

9. Enter a Description for this row rule. For this example, you enter Low Stock Quantity.

10. The Rule Data View field displays the dataView (table) for the condition. This value can be different than
the Data View value; it is the first argument (Arg1) for the condition. This field displays the dataView you
selected during the first step on this wizard.

11. Click the Data View drop-down list to select the table that contains the field you want to monitor. You
can monitor a field in a different dataView (table) from the rule, so a change in one table can affect the
image column in another table. This value is the second argument (Arg2) used in the condition. In this
example, however, the field displays the OrderRel dataView, and you keep this default value.

12. Select the Field that you want this row rule to monitor. For this example, you select the AvailableQuantity
field.

13. Click Next.

14. Select a Rule Condition for this rule. In this example, you select the LessThan value.

15. Notice you can Enter or Select a Rule Value. This defines the value against which the condition evaluates
the rule. For this example, you select the Enter radio button and enter a 50 value.

16. Click Next.

10.0.700 209
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

17. Click the drop-down list and select the image you want to display when the rule condition is met. In this
example, you select the ZoneIndicatorYellow image to alert the user there is a low stock quantity for the
part selected on this order release.

18. Click Finish.

Test the Image Column

Now you can test the customization.

1. Save the customization.

2. Exit the Customization Tools Dialog.

3. Close and relaunch the custom program.

210 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

4. If you have an order release that has an Available Quantity of 51 or more, the Low Stock image column is
empty within the Order Releases grid.

5. If the part on the order release has an Available Quantity of 50 or less however, the Low Stock image
column displays the selected image graphic.

You can use this functionality to display any image


included in the application. You can also display your own
images through the Resource Editor. This separate utility
is installed in your Epicor client folder. Use this utility to

10.0.700 211
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

find, select, and add your own images to the application.


These images can then be displayed on your customization
by using the custom Image Column / Row Rule Wizard.
For more information, review the Resource Editor section
within the Customization Utilities chapter.

Form Event Wizard

Use the Form Event Wizard to enter code that is activated when specific events occur on a form. These Run Mode
form events, like field changes and row changes, trigger an action you define through a custom handling code.

Single Condition Form Event

You need to create a form event for the Need By Date field. You want to prevent users from entering a Need By
Date that is over a year in the future from the current system date. This prevents errors, as sales orders can then
only have Need By dates within one year of the current system date.

1. In the Customization Tools Dialog, navigate to Wizards > Form Event Wizard.

2. Click the Select Event Type drop-down list to select the BeforeFieldChange event. This event occurs just
before an entered value is updated to the database; use it to validate a new data value.

3. Click the Tables drop-down list to define the data table that contains the field. In this example, you select
the OrderHed table.

4. Click the Fields drop-down list to select the field that you want this form event to monitor. In this example,
you select the NeedByDate field.

5. Click the Right Arrow. Notice the form event moves to the Select New/Existing Event Handler list.

212 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

6. The form event code displays within the View/Edit Event Handling Code field. Beneath the case
“NeedByDate” code line, enter the following C# code:
case "NeedByDate":
DateTime dtNeedByDate;
if (args.ProposedValue!=null)
{
dtNeedByDate = Convert.ToDateTime(args.ProposedValue);
if (dtNeedByDate > System.DateTime.Today.AddDays(365))
{
MessageBox.Show("Need By Date exceeds one year. Ente
r a valid Need By Date.");
}
}
break;

7. To save your change to the specific event on the current form, click the Update Selected Event Code
button.

If you want to update all the BeforeFieldChange form


events on all the Need By Date fields throughout the
application, click the Update All Event Code button.

8. To see your form event in action, exit the customization and then launch the program again.

9. Enter a Need By Date that is 365 days over the current system date.

10. Your custom message displays. After you click OK on this dialog box, a valid date needs to be entered within
the Need By date field.

10.0.700 213
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Multiple Conditions Form Event

You can add multiple field conditions to the same form event. Use this feature to monitor multiple fields through
the form event.
To further make sure your company keeps the discount percentages low, you decide to add another
BeforeFieldChange form event to your customization.
You switch back to customization mode on the Sales Order Entry form. After you return to the Form Event Wizard,
you then do the following:

1. Click the Select Event Type drop-down list to select BeforeFieldChange.

2. Click the Tables drop-down list to select OrderHed.

3. Click the Fields drop-down list to select DiscountPercent.

4. Click the Right Arrow button to add the new event.

5. Notice the case “DiscountPercent” code line is added to the View/Edit Event Handling Code field.

6. Beneath the Case "DiscountPercent" code line, enter the following C# code:
case “DiscountPercent”:
if (System.Convert.ToInt32(args.ProposedValue) > 10)
{
MessageBox.Show(“The Discount Percent cannot be higher than
10 %.”);
}
break;

7. Click the Update Selected Event Code button.

214 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

8. To see your form event in action, exit the customization and launch it again.

9. Enter a Discount % that contains double digits and press <Tab>.

10. A message displays indicating you can't enter a Discount % higher than 10 percent. After you click OK and
enter a smaller value, this error message does not display.

Available Events

Events available through this wizard:


• Before a row is changed - This event is called when users change rows on a grid. This event is not called
when a grid first populates with data.

You can see the code used for these events later in this
chapter. This section, Script Editor Event Handlers, details
the code used to execute the events you select through this
wizard.

• After a row is changed - This event is called after a row is changed on a grid. If only one row is on the grid,
this event must be used in combination with the List Changed event to activate the handling code. The List
Changed event is described later in this chapter.
• Before a field is changed - This event is called before a user leaves a field that is linked, or bound, to a data
table. Use this event to validate the value of a field; if this value is not valid, you can then prevent the user
from leaving the field until a correct value is entered.
• After a field is changed - This event is called after a user leaves a field that is linked, or bound, to a data
table. Use this event to call to another adapter and fill in any resulting data - like validating a part, populating
Description fields, and so on.
• When a list is changed - This event is useful when only one row is present on the grid. Use this event in
combination with the AfterRowChanged() event to run a custom event.

10.0.700 215
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

• Retrieve - An event that happens when data is being pulled from the database. This event is called when
the user clicks the Retrieve button – which is typically found on trackers. This event is useful for custom code
that refreshes data displayed on one panel only.
• Load - An event that happens while the program is launched. Use this event when you want code to run
during the UI Form_Load() method, but after the InitializeCustomCode() method is run.
• Closing - An event that happens while the program closes. Use this event for custom code that cleans up
variables in the data.
• EpiViewNotification - An event that happens just after a dataView (table) is loaded into a program. This
event alerts users this data is ready to be viewed and edited. You frequently use this event to enter custom
code for the GetNew method; run this method to create unique IDs in the user-defined (UD) table.
• BeforeAdapterMethod - This method listens before a call to a business object occurs; when it detects the
event, it initializes your custom code. Use this method to create customizations that run just before an event
launches - displaying message boxes, automatically displaying search programs, validating data, and so on.
You can also use this method to cancel the business object call event before it runs.
• AfterAdapterMethod - This method listens after a call to a business occurs; when it detects the event, it
initializes your custom code. Use this method to create customizations that populate fields, validates data,
updates external tools, and so on. You link the event and the code to a specific row, field, or form. When the
user performs the customized event, this special handling code automatically runs.
• ToolClick - This event occurs after a menu item is selected. Use this event to add code that runs just after a
user selects a specific menu item. The menu item code runs first and then the custom code activates.
• BeforeToolDropdown - This event launches after a primary menu item is selected and the sub-menu items
display. Use this form event to enter code that modifies when certain sub-menu items are visible.

Business objects are pieces of code that manipulate data


within the application. The application runs business objects
so users can enter and update code. Business objects can
also run calculations on data entered into a form.

Sheet Wizard

You use the Sheet Wizard to add a custom sheet to the current program and edit its tab or text properties. Use
this wizard to add a dashboard directly onto your new sheet. Dashboards are powerful tools that provide easy
access to critical real time data.

The application is installed with several standard dashboards.


You can also create your own custom dashboards. To learn
how to do this, review the Epicor ICE Tools User Guide; this
functionality is detailed in the Dashboards chapter.

Much like when ships dock into a port, each sheet can also be attached, or docked, to a parent sheet. On the
program interface, this causes the sheet to display as a sub-sheet under the parent sheet. Custom sheets can
also become docking sheets (parent sheets) for other custom sheets.

216 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Add a New Sheet

To add a Sales Kit Summary sheet to your customization:

1. In the Customization Tools Dialog, navigate to the Wizards > Sheet Wizard tab.

2. Click the New Custom Sheet button.

3. Use the Dockable Sheets list to select under what Parent Sheet your custom sheet is placed, or docked.
In this example, you want to place your new sheet on the same level as the main sheets, so you select the
sheetTopLevelPanel1 option.

4. The Parent Sheet field displays the name of the sheet you selected.

5. If you want this sheet to be a Parent Sheet for other custom sheets, select the Docking Sheet check box.
Other sheets can now dock to this custom sheet. For this example, you do not need to activate this feature,
so you ignore this check box.

6. Enter the Name for the sheet. This defines the name that the custom sheet uses in the Tree View. For this
example, you enter SalesKit.

7. Enter the Text that you want to display in the blue bar at the top of the new sheet.

8. Enter the Tab Text that you want to display in the tab for the sheet. For both the Text and the Tab Text,
you enter Sales Kit Summary.

9. Click the Right Button. This adds the new sheet to your customization.

10.0.700 217
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

10. Your new sheet is added to the Custom Sheets list. All sheets added to this customization display in this
list.

11. If you need to change the text that displays on the sheet, highlight the sheet on the Custom Sheets list and
then click the Edit Custom Sheet button.

12. Notice the text for the docking, or Parent Sheet, now displays in the Parent Sheet Text fields.

13. Your new sheet is added as a node in the Tree View.

14. To display your custom sheet, minimize the Customization Tools Dialog.

15. The custom Sales Kit Summary sheet displays. Notice the Text value displays in the sheet tab.

16. To finish this customization, you decide to add a grid to this sheet. To do this, you follow the steps in the
Add a Grid section within the Basic Customization chapter.
For the grid’s DataSource value, you select the Sales Kits table. You also select the columns you want to
display within the grid.

After you exit Customization Mode, you can see how your new sheet works in Run Mode. When you display an
order for a sales kit, your Sales Kit Summary sheet looks similar to what displays in this illustration.

218 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Add a Dashboard to a New Sheet

To add a dashboard to a new sheet, you use the Embedded Dashboard Panel Wizard. Use this wizard to find
and select the dashboard you want to place within your new sheet.
To add a sheet that displays the Part On Hand Status Tracker:

1. Click the New Custom Sheet button.

2. Click the Dockable Sheets list to select sheetTopLevelPanel1.

3. Enter a Name for the custom sheet. In this example, you enter PartOnHandStatus.

4. Enter the Text that displays in the blue bar at the top of the new sheet. In this example, you enter Part On
Hand Status.

5. Enter the Tab Text that displays in the tab for the sheet. For this example, you enter Part On Hand Status
again.

6. Click the Add Dashboard button.

Use the Dashboard Wizard

Clicking the Add Dashboard button launches the Embedded Dashboard Panel Wizard. Do the following to move
through the wizard.

1. You first need to select one of these options:


• Dashboard Panel – Select this option to cause the embedded dashboard to use the dashboard definition
from the dataset. The data is pulled into the dashboard during run time.

10.0.700 219
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

• AppBuilder Panel – Select this option to cause the embedded dashboard to build the finished dashboard
assembly. Because you are pulling in a compiled dashboard, this option typically has better performance.

2. Click the Dashboard ID button to find and select the standard or custom dashboard you want to display
on this sheet.

3. If you want to show the toolbar for this dashboard, select the Display Dashboard Tool Bar check box.

4. If you want to show the status bar for this dashboard, select the Display Dashboard Status Bar check
box.

5. Click Next.

6. Use the following window to indicate if this dashboard can also publish (display) data from a related Business
Activity Query or subscribe (update) its data based on a selection in a related Business Activity Query. Available
options:
• Subscribe to UI data (auto Retrieve on publication) – Select this option to cause the dashboard to
automatically pull, or retrieve, data when the customized program publishes the current value. Only
select this option if the dashboard will return a small amount of data. If you select this option for
dashboards that pull in a lot of data, you will slow performance.
• Subscribe to UI data (include Retrieve button) - Select this option to cause the dashboard to
automatically clear data when the customized program publishes the current value. A Retrieve button
displays on the dashboard so users can manually pull in the data based on the customized program’s
current published value.
• Publish data to the UI - Select this option to cause the dashboard to display data pulled from another
query.
• Neither Subscribe nor Publish - Select this option to cause the dashboard to only display the data
contained within its current query.

220 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

For this example, you select the Publish data to the UI option.

7. Click Next.

Dashboards use business activity queries, or BAQs, to pull


and display information from the database. Business
activity queries are the primary tools you use to query
data. To learn how to leverage existing BAQs and create
new BAQs, review the Business Activity Queries chapter
in the Epicor ICE Tools User Guide.

8. Because you selected the Publish data to the UI option, you now must select the dashboard columns for
which you want the user interface to subscribe. To do this, highlight a column within the Available Published
Columns list. For this example, select PartWhse.WarehouseCode.

9. Click the Add Published Column button.

10. The selected column displays within the Selected Published Columns list. You can add as many columns
as you need.

11. To delete a column, highlight it from the Selected Published Columns list and click the Remove button.

12. When you have selected the publish (or subscribe) options that you want, click the Finish button.

10.0.700 221
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Finish the Sheet

1. You return to the Sheet Wizard. Notice the PartOnHandStatus now displays within the Add
Dashboard field.

2. Click the Right Arrow button.

3. The PartStatusOnHandTracker custom sheet now displays within the Custom Sheets list.

4. After you exit Customization Mode, you can see how your new sheet works in Run Mode. In this example,
the Part On Hand Status Tracker now displays within your Sales Order Entry customization.

222 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Event Wizard

The Event Wizard creates code that captures an event from an item like a button, text box, check box, and so
on. The events you can create are nearly endless. You can create code that launches a third party application,
plays sound files, displays a message box, runs a calculation on selected data, and so on.

Create a Button Click Event

To add a button to your customization that launches Internet Explorer and automatically navigates to EPICweb:

1. In the Customization Tools Dialog, from the Tools menu, select Toolbox.

2. Select the EpiButton element.

3. To create the new button, click and drag over an empty area within your customization. The custom button
displays.

4. On the Properties tab, enter the Text you want to display on the button. In this example, you enter EPICweb
Home.

5. Verify the custom button is selected in the Tree View.

10.0.700 223
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

6. Navigate to the Wizards > Event Wizard tab.

7. Click the Control Type Filter drop-down list to select the element type, or control type you are customizing.
For this example, you select the EpiButton option.

8. All the custom controls of this type you have added to the form display on the Custom Control list. Select
the control you want to customize.

9. The events that are linked to the selected Control Type display within the Available Control Events list.
Select the event that you want from this list. In this example, you want your custom event code to activate
when a user clicks on the button – so you select the MouseDown event.

10. To add this event to the control, click the Right Arrow button.

11. The event displays in the Event List in the top right corner of the wizard.

12. The Control Event Code field displays the code shell required for the control event. Notice the ‘// ** Place
Event Handling Code Here** comment.

224 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

13. Enter your custom event code after this comment. For this example, you enter the following C# code:
Process.Start(“IExplore.exe”,"https://EPICweb.epicor.com/default.aspx");

14. You now have two options. To update the event code for all the custom controls of this type on the current
form (EpiButton),click the Update All Event Code button. To update the event code for the specific event
within the selected control, however, click the Update Selected Event Code button. For this example, you
click the Update Selected Event Code button.

15. To see your form event in action, exit the customization and launch the customized form again.

16. The new EPICweb Home button displays on your customization. Click this button and Internet Explorer
launches.

17. Enter your EPICweb username and password, and the EPICweb Home page displays. Your users can
now view all the information and resources available at this Web site.

10.0.700 225
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Add an Event to a Grid

This example shows you how to set up a custom grid (epiUltraGrid) so users can enter data through it. You add
this functionality to the Order Releases grid you placed on the Summary sheet in the Basic Customization chapter.
To do this, switch your Sales Order Entry form to customization mode. Then follow these steps:

1. In the Tree View, select the grid you want to customize.

2. Navigate to the Wizards > Event Wizard.

3. Click the Control Type Filter drop-down list to select the EpiUltraGrid control type.

4. All the custom grids within your customization display on the Custom Control list. For this example, you
select the epiUltraGridC1 grid – the Order Release grid.

5. Select the Data Entry Grid? check box. This indicates that users can enter data within this grid.

6. Notice the Available Control Events list changes to the Available GetNew Method list. This method list is
only used on grid type controls, and these methods vary depending on the table linked (bound) to the grid.
To indicate this Order Release grid is available for data entry, you select the GetNewOrderRel method.

7. To confirm you want to add this event, click the Right Arrow button.

8. Click the Update All Event Code button to add this event script to the grid.

226 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

9. To see the grid in Run Mode, exit the Customization Tools Dialog, the program, and launch your customized
form again.

10. Your customized Sales Order Entry form displays; notice the fields within the Order Releases grid are available
for data entry. In this example, a user is selecting a Ship By date from this grid. Users can now create releases
for the current sales order directly through this custom grid.

Foreign Key Views

A Foreign Key View is a link to a separate, or foreign, table that contains logically similar data to the main table
used on the form. Fields that logically link to foreign key fields in other tables all must share the Like property.
The Like property defines which foreign keys can link to other tables.
You can create foreign key views for any dataView, or table, that has a field you use to search by its record
GetByID identifier. You can then link custom fields to this foreign key view, displaying its data within any custom
fields you create on the form. The data you display through a Foreign Key View is read-only; users cannot edit
this data. A powerful tool, use this functionality to link related tables together so they display the information
you need on your customization.

After you create a foreign key view, you can use the features
on the Custom Column Like tab to add the Like property to a
specific field. Read the Add a Like Property section later in this
chapter for details.

You can set up a variety of table combinations. You can first create one foreign key view and then link another
sub-view to this view, another sub-view to this sub-view, and so on. As long as you can establish a logical

10.0.700 227
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

connection between the Parent and Child columns through their Like properties, you can display data through
nearly any combination of views.
A new customization, Foreign Key View, was created for Sales Order Entry to demonstrate this example.

Create a Foreign Key View

When you add a Foreign Key View to your customization, this view can then be selected as a DataSource value
for any custom fields you create.
In this example, you want to display sales information from customer records within a custom sheet. To create
a Foreign Key View:

1. In the Customization Tools Dialog, from the Tools menu, select Data Tools.

2. The Custom Data Dialog window displays.

3. Click the New Custom View button.

4. The Custom View Info fields activate. Enter the View Name you want for the new foreign key view. In
this example, you enter CustomerSalesInfo.

228 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

5. If this view will be a sub-table view (Child) to a Parent View, use the Parent View Name list to select this
table. Because you want to pull in information from the customer record selected on the sales order, you
select OrderHed on this list.

6. Notice the View Type field indicates what kind of view you are adding. For this example, it displays Foreign
Key View.

7. Click the Column Name drop-down list to select the record identifier (GetByID) you need to pull in the
table’s data. You are pulling in data from customer records, so for this example, you select the CustNum
option – the customer number value. This value is the internal number assigned to all customer records; it
cannot be changed.

8. The Like Column Value field displays the Like property value that is shared, in this example, between the
OrderHed table and the CustomerSalesInfo foreign key view. This value causes these two tables to display
related data on the current form.

9. The Adapter Name displays the database routine that pulls the foreign key view data into the current form.
In this case, the CustomerAdapter is the routine that pulls in customer data into forms throughout the
application.

10. The Get By Type list displays the method the foreign key view uses to pull data out of its table. Because
you need this foreign key view to first pull in data through the customer number, you use the IntegerGetByID
method.

11. To add this foreign key view to your customization, click the Add button. If the foreign key view was
successfully added, the Foreign Key View dialog box displays. Click OK in this dialog box.

12. Notice the new foreign key view displays in the Custom Views list. It starts with the abbreviation FKV,
followed by the View Name you entered.

13. Click OK.

10.0.700 229
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Display Foreign Key View Data

Now you add a custom sheet and then add fields onto that sheet to display the foreign key view data. You do
this by first creating a custom sheet and then by adding custom text boxes with labels to it.

These instructions briefly describe how to create these items.


For detailed instructions on creating these elements, read the
Sheet Wizard section found earlier in this chapter and Add a
Text Box section found in the Basic Customization chapter.

1. In the Customization Tools Dialog, navigate to the Wizards > Sheet Wizard tab.

2. You first need to create a new custom sheet and dock it to the top level of your custom form. Click the
New Custom Sheet button.

3. Use the Dockable Sheets list to select sheetTopLevelPanel1.

4. In the Name, Text, and Tab Text fields, enter the Customer Sales Info values you need displayed on the
sheet.

5. Click the Right Arrow button to add this sheet to the Custom Sheets list.

230 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

6. The new sheet now displays on your custom interface. From the Tools menu, select Toolbox.

7. The Toolbox window displays. Minimize the Customization Tools Dialog.

8. To display a customer record’s Salesperson data on this sheet, in the Toolbox window, select the
EpiTextBox element.

9. To create the field, click and drag over an area of your new sheet.

10.0.700 231
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

10. Restore the Customization Tools Dialog and click the Properties tab.

11. Use the EpiBinding list to select the CustomerSalesInfo foreign key view and the SalesRepCode option.

12. Now add a Label to the sheet, enter Salesperson for the label, and then link the text box to the label.

232 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

13. Repeat these steps so this sheet displays a customer record’s Salesperson Name, Territory, and Comments
information. For each text box, you again select CustomerSalesInfo from the DataSource list and then
select the appropriate DataField.

14. To see these fields display the foreign key view data, exit the customization and then launch it again.

15. Open a sales order and click the Sales Info tab.

16. Sales information from the customer record automatically displays within your customized sheet.

10.0.700 233
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Add a Like Property

To complete the Foreign Key View functionality, you can both add and edit Like properties for selected dataViews.
Use this property to create custom foreign key views. When you define a Like property, you can then link a field
from one table to a similar field on the new table that now shares the Like property value.
To display the Credit Card Description value through a foreign key view:

1. Launch the Custom Data Dialog again and click the Custom Column Like tab.

2. The Columns with Existing Like Values grid displays the current dataViews (tables) that have Like properties.
The name of the Like property displays in the LikeValue column.

3. To add a Like property to a new dataView and column combination, select the view you need from the
Available Views list. In this example, you select the OrderHed view.

4. Use the Available Columns list to select the column that needs a Like property with the selected view.
Because you want to display the Credit Card Description through a foreign key view, you select the
CardTypeDescription column.

5. Click the Edit Like Property button.

6. The View Name field displays the name of the selected data view.

7. The Column Name field displays the name of the selected column.

8. The Column Data Type field indicates what kind of data shares the Like property. In this example, string
data is linked through this view.

9. When the dataView and the column do not share a Like property, the Like Column Value field is blank.
Enter the Like property in this field; for this example, you enter CreditCardType.CardTypeDescription.

10. Click the Apply Like Property button.

11. Click OK.

234 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

You can now display data through this foreign key view combination. You can create a text field, for example,
that displays the Credit Card Description values from your credit card data.

Add an Image Column

You can also add an image column to your foreign key view. You can set this up to display an image column on
a grid. For this example, you create a custom image column that will indicate when this customer is a global
customer available across multiple companies.

1. Click on the Custom Image Column.

2. Click the New Image Column button.

3. You next indicate which Data View will contain the image column. Click the Data View drop-down list and
select CustomerSalesInfo.

4. Enter the Column Name for this new image column. For this example, enter zGlobal.

5. Enter the Caption that will display in the column header. Enter Global Customer in this field.

6. Click the Image Name drop-down list and select the default image that will display in this column. Since
you want to indicate when a customer is defined as a global customer by default, you select the
ZoneIndicatorGreen image.

7. The Visible Index indicates the position of the new column. A "0" value indicates the column displays on
the left side of the grid; a "1" value indicates it displays to the right of the first grid column.

8. Click the Update button.

9. When you finish, click OK.

You can now use the Image Column Wizard to change which image displays in the CustomerSalesInfo.zGlobal
column. For this example, you could add a grid to the Customer Sales Info sheet that displays selected columns
from the CustomerSalesInfo foreign key view. You then would use the Image Column Wizard to cause the image
column to display the ZoneIndicatorYellow image to indicate when a customer is not a global customer.

10.0.700 235
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Script Editor

You use the Script Editor to enhance the source code for the form by entering code level customizations. Each
form has a default code shell that initially displays within this tab on the Customization Tools Dialog. You can
then add and edit this shell to create code level programs within your customization.
Use this tool to go beyond interface changes to create customizations that can validate data, link your customization
to other programs, run calculations on incoming data, and so on.

You must have a solid understanding of the C# programming


language before you modify program code. If you are not sure
about what you are doing or if you create an error, you can
disable the program you are customizing.

The Script Editor is a complete development environment that has tools for entering, formatting, and testing
code. In addition to the tools described in this section, a suite of customization code wizards are also available.
Use these wizards to insert valid programming shells for common code functions. For more information on these
wizards, review the Customization Code Wizards section later in this chapter.

Script Editor Interface

This section gives you a brief tour of the Script Editor interface.

1. To display this tool, click the Script Editor tab.

236 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

2. Select the All Code (Read Only) check box to see all the code generated by the Framework in display only
mode.

3. When you first create a customization, you can indicate whether you write the code in the C# or
VB programming language. After you select the option and save the customization, you must always enter
code using the selected programming language.

You should always select the C# option on new


customizations. The VB option is provided for backward
compatibility with older customizations you've imported
into the Epicor application.

4. Click the New Code Layer button to add another level of code to the shell. Use this button when you are
creating a new customization or creating a new customization that is on top of an existing layer.

5. You enter and edit the custom code within the Customization (Current) tab.

6. The Type drop-down list displays the script types contained within the current customization. If you create
a new script type, you can select it from this drop-down list; the Script Editor immediately navigates to this
section within your custom code. Use this feature to navigate within a large customization.

7. The Member drop-down list displays the custom methods you have added to the customization. Any
methods, or member code blocks, you have added display as options on this drop-down list. When you
select a member from this list, the Script Editor jumps to this section within your custom code. Use this
feature to navigate within a large customization.

8. The default code shell displays Comments; these lines indicate where within the code shell you should place
your custom code.

Comments are lines of text that define specific sections


of code, but are not part of the code itself. You should
always use comments to identify your custom code so
that a future programmer can understand the purpose
of each custom code block. Comments are preceded by
‘// (VB) or // (C#) characters. Never delete any automatically
generated comments.

10.0.700 237
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Editing Menu

When you right-click the Script Editor, you display the Edit Menu.

1. Right-click anywhere within the Script Editor to display the Editing menu. This special menu contains several
tools that help you more efficiently and accurately create your custom code.

2. Highlight the Advanced sub-menu.

3. Run the Tabify Selection option to create tabs within the current code selection.

4. Use the Untabify Selection option to remove tabs within the current code selection.

5. Select the Indent Selection option to push the current line over to the next tab.

6. Use the Unindent Selection option to pull the current line back towards the left side (the previous tab) of
the Script Editor.

7. Select the Comment Selection option to place a comment marker in front of the selected code. This code
still displays, but it does not run. You also comment text that explains each piece of your custom code.

8. Run the Uncomment Selection option to remove the comment marker from the selected code.

9. Select the Collapse All option to compress all the areas in your custom code to a series of headers. You
can then more quickly navigate to areas within your custom code.

10. To fully display your custom code, select the Expand All option. You can then scroll through the code to
review all the code lines.

238 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Test the Code

The Script Editor contains debugging tools you can leverage to correct coding errors. As you develop your
customization, run these tools periodically to make sure your C# or VB code has the correct syntax.
To validate your code:

1. From the Tools menu, select Test Code.

2. The results of the test display within the Output pane. If errors occur, they display within this pane. Notice
the line number and the error condition display within this pane.

10.0.700 239
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

3. To correct the errors, click the Error List tab.

4. Double-click the error you want to correct.

5. The Script Editor automatically navigates to this line in the code.

6. Correct the error within the code. In this example, you need to add a semi-colon to line 137 within the code.

7. Click Save to record your change.

240 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

8. To find out if your change fixed the issue, from the Tools menu, select Test Code.

9. If your change worked, the **Custom Code Compiled Successfully. ** message displays.

Your custom code is now correct and will not cause compile errors.

Script Editor Options

You can use the Options window to define how the Script Editor displays the custom code. Use this window to
create the coding environment you want. You can change which code characters display, the fonts/colors used
for each code display item, and the tabs/indents methods followed in the code.

Display Options

To launch and use this window:

1. Right-click somewhere within the Script Editor to display the context menu.

2. Select Options.

The Control Options window displays. The next sections describe the options you can activate through this
window.

10.0.700 241
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Areas

You use the Areas options to define how you want the Script Editor to display.

1. From the tree view, select the Appearance > Areas folder.

2. Indicator Area – This check box causes the left gray indicator margin to display.

3. Word Wrap Area - Select this option to cause the code to move to the next line. You then do not need to
use the bottom scroll bar to review the code. To use this option, you need to select the Word Wrap option
in the Behavior > General folder.

4. Selection Area – This check box pushes the code away from the left side of the Script Editor window. This
helps indent the custom code.

5. User Area – This check box causes a user section area to display on the right side of the Script Editor.

6. Line Numbers – This check box causes the code line numbers to display. These numbers display along the
left side of the Script Editor window.

7. Changed Lines Marking – Select this check box to cause the Script Editor to indicate which lines of code
you have changed. When you edit a code line, a yellow bar displays on the left side next to the code line
number.

Text

You use the Text options to define how the code characters display in the Script Editor.

1. From the tree view, select the Appearance > Text folder.

2. Lines Wrapping Marks – Indicates when a single line is too long to display in the Script Editor. These
indicators appear at the end of lines that wrap to the next line. To use this option, you need to select the
Word Wrap option in the Behavior > General folder.

242 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

3. Wrapped Lines Marks – Indicates when a single line is too long to display in the Script Editor. These
characters appear at the beginning of lines that continue from the previous line. To use this option, you
need to select the Word Wrap option in the Behavior > General folder.

4. Indentation Guidelines – Select this check box to display a line that links all the code contained within an
indentation. This line displays from the first to the last line of the indentation.

5. Indentation Block Borders – Select this check box to cause the Script Editor to highlight all the code
contained inside a selected indentation block.

6. Column Guides – Displays the column lines within the Script Editor.

7. Outlining Collapsers – Select this check box to display the plus and minus icons. You can then click the
minus icons to collapse a section of code, and then click the plus icon to expand a section of code.

8. Transparent Selection – Select this check box to highlight what lines and selections of lines you have
currently selected. This shows you which part of the Script Editor is currently active. If you were to press
<Delete> on your keyboard, all text within the transparent selection is removed.

Control

Leverage the Control options to indicate what controls you want to display on the Script Editor.

1. From the tree view, select the Appearance > Control folder.

2. Horizontal ScrollBar – This check box causes the Horizontal (lower) toolbar to display.

3. Vertical ScrollBar – This check box causes the Vertical (side) toolbar to display.

4. Status Bar – This check box indicates the bottom status bar displays. You use this bar to view the current
state of your custom code.

5. XP Style - Select this check box to display the interface using the Windows XP style.

10.0.700 243
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

General

The General options define some features that affect how the Script Editor works.

1. From the tree view, select the Behavior > General folder.

2. Virtual Space Mode - Select this check box to cause a red indicator to display when you select a section
of the Script Editor.

3. Insert Mode - When you select this check box, the thin insertion point cursor displays when you click the
Script Editor. When you clear this check box, a block cursor displays instead.

4. White Space – This check box causes the space markers ( . ) and tab markers to display within the Script
Editor.

5. Word Wrap - Select this check box to cause long lines to move down to the next line. You can then use
the Text options, Lines Wrapping Marks and Wrapped Lines Marks to indicate what wrap markers
should display to indicate which lines continue on the next line.

6. Group Undo - Select this check box option to reverse multiple changes contained in group.

Tabs

This section details the Tab and Indent options you can use within the Script Editor.

1. Use Tabs – Select this check box to activate the tabbing feature. You can then press the <Tab> key on your
keyboard to advance forward in a code line.

2. Tab Stops – Select this check box to display each tab marker stop in the Script Editor.

3. Tab Size – The size, in pixels, that the Script Editor uses when you press the <Tab> key to manually create
tabs within your custom code.

244 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

4. Auto Indent Mode – The indent method you use in the Script Editor. Available options:
• None - You do not use an indent method.
• Block - This option indicates you manually enter indents. Each indent moves the text over using the
Indent Size value.
• Smart - This option causes the Script Editor to automatically indent your custom code. The Script Editor
attempts to identify your code following standard coding indent conventions.

Event Handlers

This section details the event handler methods that can display within the Script Editor. These event handlers are
either automatically generated by the Script Editor or they are added by you through a wizard. You can also enter
these event handlers directly.
The application interface provides several event handler methods. These special methods can be used to run code
at particular times – during the opening and closing of a user interface or when certain events relative to the
data occurs. These methods listen for events fired by objects in the application and then run the custom code
contained within the method.

InitializeCustomCode()

This defines the first method called within the custom code. This event handler is automatically created when
you launch the Script Editor for the first time. It performs the following events:
• It initializes module level variables.
• It can create custom EpiDataViews and add them to the Transaction object. Review the next section, Custom
Object Explorer, for more information about this object.
• The Form Event Wizard also places variable code initializations and calls within this method.

DestroyCustomCode()

This defines the last method called within the custom code. This event handler is automatically created when
you launch the Script Editor for the first time. It performs the following events:
• It cleans up any remaining module level variables.
• The Form Event Wizard also places variable code initializations and calls within this method.

[ViewName]_BeforeRowChange() Handles EpiDataView.EpiRowChangingEvent event

This event handler is called just before users change rows within a multi-row EpiDataView. It performs the
following event:
• It monitors changes in a row’s data. If any data changes occur, the event runs.
If an EpiDataView is loaded, this event handler does not run. In this case, this event needs to listen for a ListChanged
event handler to activate first – then the BeforeRowChange event handler runs.

[ViewName]_AfterRowChange() Handles EpiDataView.EpiRowChanged event

This event handler is called after users change rows within a multi-row EpiDataView. It performs the following
event:
• It monitors changes in a row’s data. If any data changes occur, the event runs.

10.0.700 245
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

This event handler does not run if a new row has been added to the grid. It also does not run if only one row is
present on the grid. In this case, this event needs to listen for a ListChanged event handler to activate first – then
the AfterRowChange event handler runs.

[Table/ViewName]_BeforeFieldChange() Handles DataTable.ColumnChanging event

This event handler is called before users can shift focus away from a field with changed data bound to a DataSource
and DataField. It performs the following events:
• This event handler can validate the entered value of a field.
• If the value is not valid, then you can prevent the user from leaving the field until a correct value is entered.
To prevent users from leaving a field that is not validated, you can use this C# code:
throw new EpiUIException();

[Table/ViewName]_AfterFieldChange() Handles DataTable.ColumnChanged event

This event handler is called after users shift focus away from a field with modified data bound to a DataSource
and DataField. It performs the following events:
• It can run a call to another adapter.
• After it runs a call, it can then fill a field with data – like filling in a Description, validating a part, and so on.

[ViewName]_DataView_ListChanged() Handles DataView.ListChanged event

This event handler is called after data within a list has been changed. It can only be used if the list contains one
row of data. Depending on the UI, it must also be used in combination with either the AfterRowChanged() event
handler or the AfterGetByID() method. It performs the following events:
• This event handler can validate the entered value of a field.
• If the value is not valid, then you can prevent the user from leaving the field until a correct value is entered.
This method is frequently called. You need to use a module level variable and test to see if the value changed
before running any code called from this method.

Retrieve()

This event handler is called when the user clicks a Retrieve button located within the toolbar. The Retrieve button
is added to the toolbar if the EpiRetrieveToolName property is set for a panel. In the event handler code,
args.ToolName is the value that was set.
Use this event handler if the data displayed on the current panel needs to be refreshed with data from the
database.

[FormName]_Load() Called from end of EpiBaseForm_Load()

This event handler is called if you need to run something during the UI Form_Load() event after the
InitializeCustomCode() method is run.

[FormName]_Closing() Handles EpiBaseForm.Closing()

This event handler is used to clean up module level variables.

246 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

[ViewName]_EpiViewNotification() Handles

This event handler method runs the EpiDataView.EpiViewNotification event. It pre-populates default values on
the GetNew event – such as creating a unique identifier (ID) within a user-defined (UD) table or displaying default
values within a field.
The Epicor application frequently uses this method.

AfterGetByID()

This event handler runs after an identifier is validated by the application. It can use the AfterAdapterMethod to
duplicate code behavior.
The customization wizards do not generate code for this method.

oTrans_[AdapterName]_BeforeAdapterMethod()

This event handler method runs just before an adapter is run. This can be used to validate data, check for required
fields, and so on.
Users can cancel this method. If a user cancels this method, the business object call and its corresponding
AfterAdapterMethod call are canceled.

oTrans_[AdapterName]_AfterAdapterMethod()

This method handles the oTrans_ordAdapter.AfterAdapterMethod; it activates just after an adapter is run. It
performs the following events:
• It can populate default values into a form.
• It can be used to update an external business object.
• This method can also be used to run code just after a business layer call is complete.

TrackerQueryRowChanged()

A dashboard tracker event handler, it runs after a row has changed within the query that is contained within the
tracker. A key code item to remember is that dashboards do not contain EpiDataViews.

To get a current Row value, you can access the CurrentRow


Property on the Dashboard TrackerViewPanel (for example,
DBTVP.CurrentRow).

The customization wizards do not generate code for this method. To implement this method, use this C# code:
// Add Custom Module Level Variables Here **
private static object DBTVP;
// ** shorter name for DashboardTrackerViewPanel
private static ITrackerEvents iTrackEvents;
// ** used to capture Dashboard events
private static IDataViewer idvDBView;
// ** Reference to DashboardView object

public static void InitializeCustomCode()


{
// ** initialize objects
DBTVP = DBTVP_65c44f4f_fe70_49e8_92de_00fdaf9ed11c;
iTrackEvents = (ITrackerEvents)DBTVP;

10.0.700 247
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

// ** Get reference to the DBTVP.DBView property through reflection


PropertyInfo pInfo = DBTVP.GetType().GetProperty(“DBView”, BindingFlags.In
stance | BindingFlags.Public);
if (pInfo != null)
{
object oDBView = pInfo.GetValue(DBTVP, null);
idvDBView = oDBView as IDataViewer;
}
// ** Wizard Insert Location - Do not delete ‘Begin/End Wizard Added Varia
ble Initialization’ lines **
// Begin Wizard Added Variable Initialization
// End Wizard Added Variable Initialization
// Begin Wizard Added Custom Method Calls
epiButton1.Click += new System.EventHandler(Script.epiButton1_Click);
iTrackEvents.TrackerQueryRowChanged += new QueryRowChanged(Script.iTrackEv
ents_TrackerQueryRowChanged);
// End Wizard Added Custom Method Calls
}

public static void DestroyCustomCode()


{
// ** Wizard Insert Location - Do not delete ‘Begin/End Wizard Added Objec
t Disposal’ lines **
// Begin Wizard Added Object Disposal
epiButton1.Click -= new System.EventHandler(Script.epiButton1_Click);
iTrackEvents.TrackerQueryRowChanged -= new QueryRowChanged(Script.iTrackEv
ents_TrackerQueryRowChanged);
// End Wizard Added Object Disposal
// Begin Custom Code Disposal
idvDBView = null;
iTrackEvents = null;
DBTVP = null;
// End Custom Code Disposal
}

private static void iTrackEvents_TrackerQueryRowChanged(QueryRowChangedEventArg


s args)
{
string partNum = (string)idvDBView.dataView[args.NextViewIndex][“Part.Part
Num”];
MessageBox.Show(partNum.ToString());
}
}

Event Sequence for Startup

The following events run when the form launches:


• InitializeCustomCode()
• [FormName]_Load()

Event Sequence for Shutdown

The following events run when the form closes:


• [FormName]_Closing()
• DestroyCustomCode()

248 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Script Editor Examples

This section displays some examples of code you can enter within the Script Editor. These examples are common
code blocks you can use as a base for your own customizations.

Launch a UI Application (UIApp)

For this example, a custom EpiTextBox and EpiButton were added to a customization of the FSCallCdForm (Service
Call Type Maintenance) application. In the custom EpiButton’s Click event, the following C# code was added:
private static void btnEpiCustom1_Click(System.Object sender, System.EventArgs
e)
{
// place event handling code here

LaunchFormOptions lfo = new LaunchFormOptions();


lfo.IsModal = false;
lfo.SuppressFormSearch = true;
lfo.ValueIn = txtEpiCustom1.Text;
ProcessCaller.LaunchForm(FSCallCdForm, “Epicor.Mfg.UI.JobEntry”, lfo);

}
This button now launches Job Entry.

Validation Test Code

In this example, you call the Refresh button on the dashboard, which validates the data on a form. Notice this
C# code is linked to the click event for a custom button, btnEpiCustom1.
Private static void btnEpiCustom1_Click (object sender, system.EventArg.e)
{
// place event handling code here
System.Reflection.MethodInfo.MethInfo = c18fbead_ab84_4cd1_b8d7_63b55
c0c900f.GetType(). GetMethod(“RefreshDB”);
If(MethoInfo != null)
{
methInfo.Invoke(c18fbead_ab84_4cd1_b8d7_63b55c0c900f, Nothing);
}
}

Launch Search for Specified Adapter

This C# code example is also added to the click of a custom button. It launches the adapter code that is used to
run the Part Search program.

An adapter is the code that connects the user interface to a


data object. The next section, Custom Object Explorer, explains
the differences between code objects in more detail.

private static void btnEpiCustom3_Click(System.Object sender, System.EventArgs


e)
{
// place event handling code here
string whereClause = String.Empty; // “PartNum = ‘“ + txtEpiCustom2.Text +
“‘“ bool recSelected;
DataSet dsSearch

10.0.700 249
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

dsSearch = Epicor.Mfg.UI.FormFunctions.SearchFunctions.listLookup(oTr
ans,“PartAdapter”, recSelected, true, whereClause);

if {recSelected)
{
txtEpiCustom2.Text = (string)dsSearch.Tables[0].Rows[0] [“PartNu
m”]
}
}

Before/AfterAdapter Method() Example

To use the BeforeAdapter and AfterAdapter methods by running the Form Event Wizard:

1. In the Customization Tools Dialog, navigate to the Wizards > Form Event Wizards tab.

2. Click the Event Type drop-down list and select BeforeAdapterMethod.

3. Click the Adapter drop-down list and select the Transaction Adapter. This option is the ssAdapter.

4. Click the Right Arrow button.

5. Click the Update Selected Event Code button.

250 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

6. Repeat these steps for the AfterAdapterMethod.

7. In the View/Edit Event Handling Code field, notice the Form Event Wizard puts in commented out
MessageBox.Show() calls. You can use these calls to determine which menu item corresponds to which
business layer call (if the menu item actually calls the business layer).

8. You can also add a Case statement for the method name. For example:
Case “GetNewPart”:

You can also enter code for a MessageBox that displays a Yes/No button – and a way to handle the Yes/No
condition. If the user selects No on the message box, the procedure is canceled:
DialogResult dRes = MessageBox.Show(“Cancel Update?”, “Cancel”,MessageBoxButton
s.YesNo);
if (dRes == DialogResult.Yes)
{
args.Cancel = true;
}

Else
{
//Do Something Else
}

Custom Object Explorer

Use the Custom Object Explorer to find and select specific code objects you can then use in your custom code.
It guides you through the customization process, as this tool functions as a browser to locate the object you
want. Use this tool to locate UI Objects, Data Objects, and Adapters you can then add to your custom code. The
selected object’s code then displays as a code example; you can use this example as a base for your own custom
code.

10.0.700 251
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Launch Custom Object Explorer

To display the Custom Object Explorer:

1. In the Customization Tools Dialog, from the Tools menu, select Object Explorer.

2. The Custom Object Explorer window displays.

3. Notice you can use this program to search for three code object types – UI Objects, Data Objects, and
Adapters.

252 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

UI Objects

UI Objects contain the code that displays program interface components on a monitor. It houses the methods
used to display various programs. Some common UI objects you frequently use are documented later in this
section.

What Displays

The UI Objects tab displays information on all the Properties, Sessions, and Methods required to display the
Framework API for the user interface object. The following items display on the UI Objects tab:

1. Use the Tree View to navigate through all the UI Objects and their properties and methods. In this example,
you have opened the Equals method under the Sales Order Form (ILaunch) UI object.

2. Details on the selected UI object display on the right side of the Custom Object Explorer. The Return
Type field indicates the data that this method displays – System.Boolean, or True/False.

3. The Parameters field displays the selected object’s main attributes that are passed into the method. In this
example, the selected method is an obj: System.Object.

4. If selected, the Static Method check box indicates you do not need an instance of the UI object to run the
method.

5. The VB.NET Example field displays the code snippet used for the UI object, property, or method. You can
use this code within your customization.

6. To place this code snippet onto your clipboard, click the Copy button.

10.0.700 253
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

7. Navigate to Script Editor. Right-click to display the context menu.

8. Select the Edit sub-menu.

9. Select Paste.

254 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

10. The code example is added to your custom code.

The EpiTransaction Object (oTrans)

One of the UI objects you frequently use is the EpiTransaction object. This object is the transaction code layer
between the UI and the adapter. This object binds the data to the user interface and provides data specific
behavior.

• Trans.GetNewXXX() – This method pulls in new records into a form.


• Trans.Update() – Run this method to cause the transaction to update an existing piece of data.
• Trans. Cancel() – Use this method so that users can end, or cancel, a transaction before the data updates.

10.0.700 255
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

This UI object also contains some useful properties:


• Trans.EpiDataViews – A Hashtable of all the EpiDataViews in the Transaction object. An EpiDataView displays
data from a specific table.
• Trans.LastView – This property displays the current EpiDataView.

Form Object

This object is the actual UI object for the form. If you are customizing Sales Order Entry, for example, this object
is the SalesOrderEntryForm.
The Form Object contains many properties and methods – including the Session Object, which you frequently
use within your customizations.

The Session Object

The Session Object controls all the information that defines the current session. It contains details about the User
ID, Site, Company, and so on.

256 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Code example:
ILaunch iLnch = PartEntryForm as ILaunch;
if (((Epicor.Mfg.Core.Session)iLnch.Session).UserID == "user1")
{

The CustomScriptManager Object

Use this object to define the custom code you can add to the customization.

It contains these important methods:


• GetNativeControl Method – This method is used to retrieve a reference to a base control on the form.
Parameter: controlGUID – string. The GUID of the control.
The C# code for this method is similar to the following:
Control ctrl = csm.GetNativeControlReference(“5483cdef-3049-4705-b597-28ae93b
c7fdf”);
You can also create C# code that casts to a specific control type:
EpiUltraCombo eucSales = (EpiUltraCombo
)csm.GetNativeControlReference(“5483cdef-3049-4705-b597-28ae93bc7
fdf”);

• AddForeignKeyView Method – Use this method to add an updatable Foreign Key View to the EpiTransaction
object. When this method is called, the added Foreign Key View is available for control binding. You can also
use this method with business logic adapters.
• Parameter: ViewName – String. The name of the Foreign Key View (must be unique).
• Parameter: dsData – DataSet. An Empty DataSet of the Foreign Key Views Type.
• Parameter: TableName – String. The name of the Table corresponding to the View in the DataSet.
The C# code looks similar to the following:
// Add Adapters Table to List of Views

// This allows you to bind controls to the custom child view

DataSet dsData = (DataSet)ud01Adapter.UD01Data;

10.0.700 257
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

ForeignKeyDataView fkvUD01 = csm.AddForeignKeyView(“MyUD01View”, dsData,“UD01


”);

• NotifyForeignKeyView Method – Used to update a ForeignKeyView added by the AddForeignKeyView()


method. This notifies controls bound to the Foreign Key View that the data has changed. This method is used
in conjunction with business logic adapters.
• Parameter: ViewName – String. The name of the Foreign Key View (must be unique).
• Parameter: dsData – DataSet. An Empty DataSet of the Foreign Key Views Type.
• Parameter: TableName – String. The name of the Table corresponding to the View in the DataSet.
The C# code looks similar to the following:
// notify with updated data
csm.NotifyForeignKeyView(“UD01”, (DataSet )ud06Adapter.UD01Data, “UD01”);

Processes Calling Object

You use this UI object to open other application processes – such as another UI application. The ProcessCaller is
a static class, which means you do not need to instantiate it.

It contains this important method:


• LaunchForm() – Use this method to launch the current form. Notice that several overloads of this method
are available. They all have the same name, but they differ in the number and/or type of parameters.
For example, the UI assembly can be called directly:
ProcessCaller.LaunchForm(oTrans, “Erp.UI.PartEntry.dll”);
You can also use the menuID - if the menu ID has an associated customization, then it applies:
ProcessCaller.LaunchForm(oTrans, “MenuID”);

258 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

You can even pass in an initial value. However, notice this may not work in some UIs:
ProcessCaller.LaunchForm(oTrans, “Erp.UI.PartEntry.dll”, “4600-1”);
You can modify the LaunchForm() method so users can open an external program - External Process Calling.
To do this, you use the Microsoft® .NET Process static class. Verify you include the following Imports statement
at the beginning of your code:
Imports System.Diagnostics
using System.Diagnostics;
Then use the following code shell to open an external process:
Process.Start(“[Program Name]”, “[Command Line Parameter(s)]”);
Some examples:
Process.Start(“IExplore.exe”, “www.epicor.com”);

Data Objects

Data Objects contain the code that interacts with a database. It houses the methods used to enter, view, and
calculate data for a specific function within an application.

What Displays

To use the Data Objects tab:

1. Use the Tree View to navigate through all the Data Objects. In this example, you have opened the dataView
under the AutoAttachOrderDtl data object.

2. The View Name field displays the name of the EpiDataView.

3. The Column Name field displays the name of the column (field) that the EpiDataView object displays. In
this example, it displays the DocTypeID column (field).

4. The Column Data Type field displays the kind of data this object displays – numeric, integer, string, and
so on.

5. The Extended Props field displays any additional properties - Read Only, Enabled, Visible, and so on - that
define the selected data object. In this example, notice the Format of this string field can contain up to eight

10.0.700 259
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

characters and it has the Company.Company Like property. For more information on Like properties, read
the Foreign Key Views section earlier in this chapter.

6. The Code Block for this data object displays in the bottom field. Use this code example for accessing the
field.

7. Notice you can click the Copy button to place this code on your clipboard. You can then return to the Script
Editor and place the code within any section you need. The previous UI Objects section explains how to do
these steps.

EpiDataView Object

The EpiDataView object encapsulates a dataView of a specific DataTable that corresponds to a Table within the
database. Because of this, a direct connection usually exists between a Database Table and an EpiDataView.

1. To see the properties and methods available for an EpiDataView, click the UI Objects tab.

2. To see the EpiDataViews available for a specific UI application, click the Data Objects tab.

260 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

3. Expand the EpiDataView node.


While you customize, a reference to an EpiDataView object is usually pulled through the Transaction object’s
EpiDataViews collection. To enter this C# code:
EpiDataView edv = (EpiDataView)oTrans.EpiDataViews[“ViewName”];
This UI/Data object also contains some useful properties:
• dataView Property – System.Data.DataView
• DataView object – Wrapped” by EpiDataView
• Row Property – (System.Int32) This property displays the current row number.
Use the following C# code to access or set a field’s value in an EpiDataView:
string someValue = (string)edv.dataView[edv.Row][“FieldName”];
edv.dataView[edv.Row][“FieldName”]= someValue;
A key method for this object is the Notify() Method. This method notifies bound controls of updates to the
underlying EpiDataView. The method uses this C# code:
edv.Notify( new EpiNotifyArgs([FormName], edv.Row, edv.Column));
Another important method for this object is the InitializeCustomCode() method. You can use this method
to extend the properties of the object. Use this C# code:
private static void SetExtendedProps()
{
// Get EpiDataView reference
Dim edv As EpiDataView = CType(oTrans.EpiDataViews(“OrderHed”), EpiDat
aView)

if (edv.dataView.Table.Columns.Contains(“PONum”))
{
edv.dataView.Table.Columns[“PONum”].ExtendedProperties[“ReadOnly”
] = true
edv.dataView.Table.Columns[“PONum”].ExtendedProperties[“Enabled”]
= false

// or to make invisible…

//edv.dataView.Table.Columns[“PONum”].ExtendedProperties[“IsHidde
n”] = false
}
}

Adapters

Adapters are code objects that connect a UI object with a data object. This file makes calls that either get or send
data to the data object.
After you find and select the adapter that you want, you can display both its properties and its methods. The
program displays the code used to run the property or method.

10.0.700 261
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

What Displays

The following items display on the Adapters tab:

1. Click the Get Adapters button.

2. Use the Tree View to navigate through all the adapters. In this example, you have opened the Properties
under the SalesOrderAdapter.

3. The Assembly References field displays all the areas within the application this adapter is used.

4. The Property Type field details the overall function of this property. Each property is used to manipulate
different kinds of data; this field indicates the type of data affected by the property.

5. When the Set check box is selected, it indicates this property can be set, or defined, by your custom code.

6. When the Get check box is selected, it indicates this property can be read by custom code.

7. The VB.NET Example field displays the code that runs the selected property.

8. Notice you can click the Copy button to place this code on your clipboard. You can then return to the Script
Editor and place the code within any section you need. The previous UI Objects section explains how to
use this feature.

262 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

9. If you select a method from the Tree View, a different group of fields display.

10. The Return Type field displays the type of data this method evaluates for the adapter.

11. The Parameters field displays the attributes that define the method. These attributes define how the method
returns data to the adapter. For this example, it indicates this method handles the date/time information.

12. The VB.NET Example field displays the code that runs the selected property.

13. Notice you can click the Copy button to place this code on your clipboard. You can then return to the Script
Editor and place the code within any section of the code that you need. The previous UI Objects section
explains how to use this feature.

Assembly Reference Manager

An assembly is piece of code used to join UI objects, data objects, and business objects together. Assemblies
keep all these objects functioning correctly with each other.
The Assembly Reference Manager displays a list of all the system, native, and custom assemblies used within the
application. Use the Tree View to find and select an assembly; this displays the main information for this assembly.
You can then use this program to reference the assembly within your custom code.

10.0.700 263
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Assembly Reference Manager – How to Use

To use this program:

1. In the Customization Tools Dialog, from the Tools menu, select Assembly Reference Manager.

2. The Custom Assembly Reference Manager window displays.

3. In the Referenced Assemblies list, select the assembly you want to view or edit.

4. The System Assemblies node displays the current assemblies that cause the overall application to run
within the operating system.

264 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

5. The Native Assemblies node displays all the assemblies required to run the current standard (non-customized)
user interface. Notice the Epicor.Mfg.UI.SalesOrderEntry assembly, the program currently being customized,
displays in this list.

6. The Custom Assemblies node displays all the additional assemblies you have added through this
customization. Notice this list contains the Epicor.Mfg.AD.ShipVia adapter. You added this custom assembly
when you created a new drop-down list (UltraCombo) on the Sales Order Entry – Summary sheet during
the Basic Customization chapter.

7. The Assembly Info group box displays the information on the selected reference. The Name field contains
the assembly code’s name which displays within Windows Explorer and other programs. In this example,
the name Epicor.Mfg.AD.ShipVia displays.

8. The Full Name field displays the complete name of the assembly, which includes all of the assembly’s main
attributes. Notice this example displays the assembly’s Version, Culture, PublicKeyToken, and other key
attributes.

9. The Path field displays the directory path, if any, that leads to this assembly.

10. The Version field displays the development level of the selected assembly. In this example, the assembly is
currently at the 10.0.500 release version.

11. You can attach a file of custom reference code to the selected assembly. To do this, click the Add Custom
Reference button. This launches a Browse window; use this window to find and select the file that contains
the custom reference code you want to add to the assembly.

12. If custom code is already linked to the assembly, the Remove Custom Reference button is active. Click
this button to delete the custom code.

13. When you finish using the Custom Assembly Reference Manager, click OK.

The String Manager

The String Manager is a customization tool used to help you translate statements that do not translate well
between languages. You can specify how statements will translate, and how the content will appear.

Create Custom Strings for Translation

Use the String Manager functionality to create customizable strings for translation. Certain commonly used
phrases within reports do not translate into other languages; however, you can leverage the String Manager to
tag certain phrases and customize their translation for future use.
To use the String Manager:

10.0.700 265
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

1. The From the Tools menu, select String Manager.

2. The Custom String Dialog window displays.

3. The top of this window displays the syntax you need to use to create your custom string. Although both C#
and VB syntax displays, you should only use the C# syntax. The VB syntax is provided for backwards
compatibility with older customizations.

4. Click the New button.

5. Enter a String Key value; a String Key can be an identifier for the sentence or phrase being translated. For
example, enter "YourID".

266 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

6. Now enter a String Value. A String Value is the actual sentence or phrase you wish to translate. For example,
enter "Your ID".

7. Click Add/Update.
The string now displays in the Existing Strings box. As you add more strings to translate, they display in
this list box.

8. To remove a string from the list, highlight it and click Delete.

9. When you finish adding the strings, click Close.

These string values are now available to use with the Translation Utility.

Strings and the Translation Utility

The String Manager interfaces with Translation Utility. After you enter strings of custom phrases, launch the
Translation Utility to complete your local language customization.
The Translation Utility is a tool you use to manually update a program's text so it accurately translates into the
current language. If some program text does not translate properly into this language, use this tool to enter the
correct text strings and update the interface.
You install language files by importing them through Language Maintenance, a set up program available in this
location:
Menu Path: System Setup > System Maintenance > Language Maintenance

This program is not available in the Epicor Web Access.

Once you have added these languages to your Epicor application, you can then switch between these languages
as you need and even link a language to specific user accounts. To learn how to add languages to your Epicor
application, review the Localization chapter.
Once the languages are installed, you can then make specific changes to the text strings through this Translation
Utility. You can modify the text strings for any language except the original installed "enu" language. This default
language is considered the base language file for the Epicor application, and so it cannot be modified to ensure
you always have a stable language to restore if needed. You can, however, create a new record of the enu
language and import this language back into the Epicor application; you can then edit the text strings in this
separate language file as you need.
In addition, use the String Manager to add additional features like pop-up windows, labels, warnings, and other
elements. All of these additional features have the ability to be custom translated to fit your business needs.

Customization Code Wizards

To help you create valid code, the application contains a series of customization code wizards. Use these key
wizards to generate primary pieces of code and avoid introducing programming errors into your customization.
Whether you are learning how to program or just want some examples to get started, run an appropriate
customization code wizard to begin your task.

The application also contains a series of wizards that help you


customize aspects of the form (program). These Customization
Form Wizards are explored earlier in this chapter.

10.0.700 267
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Launch a Wizard

To display a wizard:

1. In the Customization Tools Dialog, from the Tools menu, select Wizards > Customization Wizards.

2. The Customization Code Wizard Dialog displays.

3. Select a wizard from the list.

4. The description for the wizard displays in the box below the list.

5. Click Launch Wizard.

The selected wizard displays. The next sections describe the purpose of each wizard and the code it generates.

268 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Business Logic Assembly References Wizard

The Business Logic Assembly References Wizard adds the references required for the custom code to use a selected
adapter. The custom code can then correctly run this adapter.
To use this wizard:

1. Click the Get Adapters button.

2. All the adapters available within the application populate in the list. Scroll through the options to find and
select the adapter you want. In this example, you select the ForecastAdapter.

3. The Contracts File field displays the business object file required for this adapter to run.

4. The Adapter File field displays the adapter code object that connects the business object file to the interface
framework file.

5. To add these references to your custom code, click Finish.

6. To see the added files, from the Tools menu, select Assembly Reference Manager.

10.0.700 269
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

7. Notice the Custom Assemblies node displays all added assembly references. In this example, the forecast
files are added as references to the custom code.

Extended Property Wizard

The Extended Property Wizard guides you through defining a specific property for a selected DataColumn – which
is a field within a selected table. The Properties sheet on the Customization Tools Dialog then reflects the extended
property you defined for the field through this wizard.
To use this wizard:

1. Select the DataView you want from the drop-down list. In this example, you select the OrderHed dataView.

2. Select the DataField for which you need to define its extended property. In this example, you select the
TotalCharges field.

3. The Extended Property drop-down list contains all the extended properties available for you to define.
Select the property you need. Available options:
• Enabled - Activates the field for data entry.
• Format - Changes the field's entry format; for example, changes a character field from x(8) to x(25).
• IsHidden - Removes the field from view.
• LinkedColumn - Pairs the field column with another column. They then move together on grids.
• ReadOnly - Prevents users from entering data; users can only view data
• ZoneBAQ - Adds a business activity query (BAQ) to the field that populates with data you wish to display.
For more information, review the BAQ Zones section in Chapter 6: Customization Utilities.

270 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

4. Click the Value drop-down list to define the selected extended property. Only values that pertain to the
selected extended property display on this drop-down list. In this example, the ReadOnly extended property
is selected, so the available values are True or False.

5. Click Finish to add this value to the extended property.

Continue to use this wizard to define the extended properties you want for specific fields.

You can also extensively modify the extended properties for


all the fields for a selected dataView by using Extended
Properties Maintenance. This program is described within the
Customization Utilities chapter.

Simple Search Wizard

Use the Simple Search Wizard to add a search program and search results fields to your customization. The
following example illustrates how you add extended user-defined fields to a table, and then use these fields to
create a search program.

Do not confuse extended user-defined fields with user-defined


tables. Extended user-defined fields are additional custom
columns you add to an existing table. When you search for
these table extensions, their column names include the "_c"
suffix. User-defined tables are empty tables (UD01, UD22,
UD100, and so on) available in the database; you can either
add these tables as grids to existing programs or add them to
the Menu to create a custom entry program. The User-Defined
Tables chapter describes how you use these custom tables.

Add User Defined Fields

To begin setting up your simple search, you first need to add some extended user defined fields you will add to
the customization.
You create user defined fields using Extended User Defined Table Maintenance. Through this program, you first
select the table you wish to extend and then add the custom user defined fields you need.

1. Navigate to Extended User Defined Table Maintenance.

10.0.700 271
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Menu Path: System Setup > System Maintenance > Extended UD Table Maintenance

This program is not available in the Epicor Web Access.

2. Click the New button.

3. The Table Search window displays. For this example you find and select the OrderHed table.

4. Click OK.

272 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

5. The tree view now displays a new OrderHed_UD node.

6. For the Description, enter Custom Columns for Simple Search.

Add Custom Column

You now can add the custom columns you need to the extended user defined table. Later you will bind these
columns to fields on your customization.

1. Click the New menu and select New Column.

2. Enter the Column name that will display in the column header. For this example, enter Search01. Notice
the program automatically adds a "_c" suffix to the Column name value. This will help you find the column
later after the custom column is integrated with the OrderHed primary table.

3. For the Data type, select String.

4. Now for the Format, enter x(20). This indicates up to twenty characters can display in this field.

5. Click Save.

10.0.700 273
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

6. Now add the Search02, Search03, Search04 character fields. Use the the x(20) Format for each field.

7. When you finish created these custom columns, click Save.

8. You next must add, or synchronize, these columns to the database. To do this, click Actions > Sync Current
Table to DB. After this process runs, a dialog box displays that indicates the OrderHed_UD table is
synchronized to the database.

9. Close Extended User Defined Table Maintenance.

Your user defined columns are added to the OrderHed table. However to select these columns on your
customization, you need to regenerate the data model.

Regenerate Data Model

To finish adding the extended user-defined columns, you must regenerate the data model for the specific database.
You do this task on the server that contains your database.

274 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

1. On your server machine, launch the Epicor Administration Console.

2. Expand the Database Server Management node and the database server node that contains the database
you need to update. Select the database icon.

3. The properties for the database displays in the center pane.

4. From the Actions pane, click the Regenerate Data Model button.

5. The Generate Data Model window displays.

6. Verify the Deployment folder field displays the root path location for the server.

7. Click Generate.

If you receive an error that the .dll file is in use by another


process, end the task and close the Epicor Administration
Console. Return to the Apps screen and launch the
Command Prompt (under the Windows System section).
In the Command Prompt window, enter IISRESET and
press <Enter>. After IIS stops and restarts, close the
Command Prompt window and return to the Epicor
Administration Console. You should be able to regenerate
the data model.

10.0.700 275
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

8. Now to complete this process, pull the latest data model from the database and copy it to the local application
server by restarting IIS. Restarting IIS is a mandatory task after the data model is successfully regenerated.
To do this, launch the Command Prompt window.

9. Enter IISRESET and press <Enter>.

10. After IIS stops and restarts, close the Command Prompt window.

The data model generates, adding the extended user-defined table to the database. Now that the data model
is regenerated, you can add these columns to a customization. Epicor users can also view and enter data in the
extended user-defined columns.

Add Controls to Form

You first need to add a button and text fields to the Sales Order Entry form.

1. Make sure Developer Mode is active, and then navigate to Sales Order Entry.
Menu Path: Sales Management > Order Management > General Operations > Order Entry

276 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

The CRM menu path is: Customer Relationship Management > Order Management > General Operations
> Order Entry

2. Launch the Customization Tools Dialog.

3. Navigate to the One Time Ship To sheet.

4. From this window, click Tools > Toolbox.

10.0.700 277
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

5. The Toolbox displays.

6. Select the EpiButton option and click on an empty space on the form.

7. Draw a new button on the form. In this example, you want to add a search that finds and selects a contact
and displays the phone number and email linked to this person.

8. Click on the Properties tab. In the Text property for the button, enter Contact Search.

278 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Use the Event Wizard

You next must add a click event to the new button.

1. Navigate to the Wizards > Event Wizard sheet.

2. For the Control Type Filter, select EpiButton.

3. Select the specific Custom Control. In this example, you select epiButtonC1.

4. From the Available Control Events drop-down list, select Click.

5. Click the Right Arrow button.

6. Click the Update Selected Event Code button.

10.0.700 279
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Add Text Fields

Next add the fields that will populate with search results.

1. Return to the Toolbox and select EpiTextBox.

2. Place the epiTextBox on the form.

3. From the Customization Tools Dialog, navigate to the Properties sheet.

4. In the EpiBinding property, link this text box to the OrderHed.Search01_c column you created.

5. For the Size value, enter 120, 20.

280 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

6. Now return to the Toolbox and select EpiLabel.

7. Place the EpiLabel on the form.

8. On the Properties sheet, change the EpiLabel's Text property to First Name:. Select this label for the
epiTextBoxC1's EpiLabel property.

9. Now repeat these steps to add three more fields. Bind each field to one of the custom fields you created
through Extended User Defined Maintenance.

Text Box and Label EpiBinding EpiLabel Size


Last Name: OrderHed.Search02_c epiLabelC2 120, 20
Phone: OrderHed.Search03_c epiLabelC3 120, 20

10.0.700 281
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Text Box and Label EpiBinding EpiLabel Size


Email: OrderHed.Search04_c epiLabelC4 120, 20

Launch the Simple Search Wizard

You now use the Simple Search Wizard to link the custom text fields to the search results.

1. Launch the Simple Search Wizard.

2. Click the GetAdapters button.

3. Select the search adapter you want to bind to the search button. In this example, you select the
CustCntAdapter and click Next.

282 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

4. You have the option of adding the search to a drop-down list or a search dialog. For this example, you select
the SearchDialog option.

If you select the DropDown option, you need to select a


custom EpiCombo drop-down list you have added to the
form. You then select the field from the search adapter
to which the EpiCombo is bound and then the field from
the search adapter displayed within the EpiCombo.

5. You next indicate what data displays in each of your custom fields. From the Search Fields drop-down list,
select FirstName.

6. Now link this data to the Data Views. In this example, you select OrderHed.

7. Now for the Fields, select the Search01_c field.

8. Click Add. The First Name search field and its target display field appear in the wizard.

9. Repeat these steps to add three search fields and their target display fields.

Search Field Data View Field


LastName OrderHed Search02_c
PhoneNum OrderHed Search03_c
EmailAddress OrderHed Search04_c

10.0.700 283
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

10. Click Finish.

Finish the Customization

1. Navigate to the Script Editor and place the call to the search adapter within the code for the button click
event. This causes the search window to display when a user clicks your custom button. Enter the Search
OnCustCntAdapterShowDialog(); call.

2. Click Save.

284 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

3. Relaunch your Sales Order Entry customization and navigate to the One Time Ship To tab.

4. Click the Contact Search button.

5. The Customer Contact Search window displays.

6. Find and select Jim Forrester and click OK.

7. The contact’s phone number and email address display in your custom fields.

10.0.700 285
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Business Object Method Call Wizard

Use the Business Object Method Call Wizard to automatically generate a call to any public method on an adapter.
You can also map the input parameters you need to both the method and the adapter. To use this wizard:

1. Click the GetAdapters button.

2. Select an adapter from the list. In this example, you select the PartAdapter.

3. Click Next.

4. All adapter methods available with this adapter now display in the wizard. Select the method you want to
add to your customization. In this example, you select the ChangePartSiteVendorID method.

5. The Return Type field displays the data returned through this method.

6. The Parameters field displays all the parameters passed by the selected method.

7. Click Next.

286 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

8. If the selected method does not contain parameters, select the Method Contains No Parameters check
box. In this example, however, the method uses parameters, so you clear this check box.

9. Click the Parameters drop-down list and select newVendorID : SystemString.

10. From the Map Parameters to variables: options, select Inside Method.

11. Define whether the parameter is Set to Data or Set to Value/Expression. In this example, you select Set
to Data.

12. You complete this method call by selecting the DataView and DataField that contain the method data.
In this example, you select OrderHed for the dataView and UserChar1 for the DataField.

13. Click Add.

14. Create another method call. Select an option from the Parameters drop-down list. In this example, you
select ds : Epicor.Mfg.BO.PartDataSet.

15. Select the Passed Into Method option.

16. Since you are not passing this call into data, you are finished. Click Add.

17. Click Finish.

Both calls are added to your customization, and they use the correct syntax. You can now customize these method
calls as you need within the Script Editor. They also display as custom calls within the Assembly Reference Manager.

10.0.700 287
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

User-Defined (UD) Table Add/Edit/Delete Functionality Wizard

A common customization is to add a user-defined (UD) table as a sub-table within a customized form. User-defined
tables are included within your application as an additional customization feature. You leverage user-defined
tables to enter data unique to your company and then display and use this data within custom forms. You explore
this functionality within the User-Defined Tables chapter.
You can run the UD Table Add/Edit/Delete Functionality Wizard to add a selected user-defined table to your
current customization. You can also use this wizard to modify or remove the user-defined table link.
To use this wizard:

1. Click the Data Views drop-down list to select the DataView you want to contain the UD table. This defines
the parent table for the child UD table. In this example, you select OrderHed.

2. Click from the UD Adapters drop-down list to select the adapter for the user-defined table you want to
link to the parent table. In this example, you select UD04Adapter.

3. Click Next.

4. You next map the keys from the user-defined table to fields within the parent view. To do this, you first
select the field from the parent table for which you want to map the user-defined key. In this example, you
select UserChar2 from the Fields drop-down list.

288 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

5. Click the UD Key Fields drop-down list to select the key from the UD table you want to map to UserChar1.
In this example, you select Key1. You can map up to four keys for each user-defined table.

A fifth key is reserved to hold a numeric value that


identifies each record within the user-defined table. You
cannot map this key to a field within the parent dataView.

6. Click Add.

7. The map relationship displays. Repeat steps 4-6 to add more keys from the user-defined table. In this example,
you mapped UserChar3 to Key2.

8. Click Finish.

The code required to link the user-defined table and its keys to the customization generates. You can display
and modify this code by using the Script Editor.

10.0.700 289
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Custom Grid for Data Entry

You use both the User-Defined (UD) Table Add/Edit/Delete Functionality Wizard and the Event Wizard to create
a custom grid for data entry. Users will enter data into the selected user-defined table. To create a data entry
grid:

Launch the User Defined Table as Child Wizard

You begin by launching the User Defined Table As Child Wizard. Use this tool to add a user defined table to your
customization.

1. Click the Data Views drop-down list to select the native DataView to use as the parent view. In this example,
you select OrderHed.

2. Click the UD Adapters drop-down list and select the user-defined table. In this example, you select
UD01Adapter.

3. Click Next.

4. On this window, you link, or map, fields from the parent data view to a key field on the user-defined table.
Click the Fields drop-down list and select CustomerCustID.

5. Now use the UD Key Fields drop-down list and select the key field from the user-defined table. In this
example, you select Key1.

6. Click the Add button.

290 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

7. The mapped fields display in the View/Field list.

8. Click Finish.

9. Close the wizard and the Customization Code Wizard dialog boxes.

10. Save your customization.

11. To finish linking the user-defined table to the customized form, close and relaunch the customization. This
refreshes the customization to include the user defined table.

10.0.700 291
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Use the Event Wizard

1. After you relaunch the customized program, launch the Customization Tools Dialog.

2. Navigate to the One Time Ship To sheet.

3. From the Tools menu, select Toolbox.

4. In the Toolbox window, select EpiUltraGrid.

5. Place the custom grid on the form.

6. Click the EpiBinding property and link, or bind, the grid to the user-defined table. This example binds the
custom grid to the UD01View.

You normally would now modify the grid to display the


information you need. You would change its Text
property, modify which columns display, and so on.

292 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

7. Navigate to Wizards > Event Wizard.

8. Click the Control Type Filter drop-down list to select EpiUltraGrid.

9. Select the Custom Control you added to the form.

10. To indicate users can enter data through this grid, select the Data Entry Grid check box.

11. Click the Available GetNew Method drop-down list to select the method for the user defined table you
linked to the grid, such as GetNewUD01View.

12. Click the Right Arrow button.

13. The data entry methods display in the Event list.

10.0.700 293
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

14. The Control Event Code field displays the event code you are adding to the customization.

15. Click the Update All Event Code button.

16. Save your customization.

17. Launch your customization again in Run Mode. When you click the New menu, notice a New UD01 option
is available.

18. You can now enter values in the custom grid.

Custom XML Editor

As you use the wizards, create controls, and modify control properties, the customization tools automatically
create the .xml code that runs each customization. The Custom XML Editor is a tool that then displays the XML
code created for your customization.
Use the sheets on this troubleshooting tool to correct any .xml issues that occur within your customization. You
can both review the current code and also update controls or properties within the code.

294 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

XML View

The first sheet on this window displays a customization's code layers in .xml.

1. From the Tools menu, select Custom XML Editor.

2. The Custom XML Editor Dialog displays. Notice the tabs on this window.

3. All layers of this code display within the XML View sheet. This sheet displays a read-only view of the .xml
code. Use this view to get a complete look at the .xml code used within the current form.

10.0.700 295
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Custom Controls

1. To edit the .xml created for the customized controls on the form, click the Custom Controls tab.

2. All the controls on the current form and their .xml attributes display within the Custom Controls Grid
View.

3. Each control is on a separate row. The FormsID column displays the form that contains the control.

4. The ControlName column indicates the name assigned to the specific control. It is the same name that
displays on the Tree View within the Customization Tools Dialog.

5. The Key column displays the .xml identifier used for the control. Notice these identifiers are a combination
of letters, numbers, and dashes.

6. The ParentControlKey column displays the identifier for the item onto which the custom control is placed.
This can be another custom control (for example, a label that is linked to a text field), or the control identifier
for a sheet.

7. The ControlType column defines what kind of control is listed within each row. For example, a grid control
type is defined as Epicor.Mfg.UI.Framework.EpiUltraGrid.

296 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

Custom Properties

1. To edit the .xml created for the properties used for customized controls, click the Custom Properties tab.

A property defines the control. It indicates the control’s


current state or position within the form. It also defines
the value that is used with the control.

2. All the properties on the current form and their .xml attributes display within the Custom Properties Grid
View.

3. Each property is on a separate row. The FormsID column displays the form that contains the property.

4. The ControlName column indicates the specific control that uses the property.

5. The Key column is the .xml identifier that defines the specific property. These identifiers use a combination
of letters, numbers, and dashes.

6. The PropertyName column defines the name assigned to the property used by the control. Some property
name examples are Top, Left, Right, Visible, and so on.

7. The PropertyValue column is the value assigned to the specific property. The value can indicate a position
on the form by showing its location (for example 399) in pixels. It can also indicate if the property is on or
off - True/False.

8. After you make your changes to the controls and properties, you can review your changes by clicking on
the XML View tab.

9. To finish updating the custom form’s .xml, click OK.

10.0.700 297
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

Debug Customizations

If you have Microsoft Visual Studio ® 2010 for later installed on the computer where you make customizations,
you can debug (step through code as it executes) your customization code. Debugging helps you test whether
your code works correctly and resolve errors.

Launch Debug Mode

Do the following to debug your customization using Visual Studio.


To debug customizations:

1. Launch a customized program in Developer Mode. The Select Customization window displays.

2. Select the customization you wish to debug.

3. Select the Debug in Visual Studio check box.

4. Click OK.

298 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

® ®
5. Microsoft Visual Studio opens and finds a break point automatically set in the InitializeGlobalVariables
method. This break point gives you access to the debugger.

6. Click the Continue button.

10.0.700 299
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide

7. You customized program launches.

8. Complete whatever actions you need to get the program in a state where you are ready to debug the
customization. In this example, a current sales order is loaded into the form.

9. Now return to Visual Studio.

300 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4

10. Select a point in the custom code from which you want to start the debug process. For example you could
set a break point that starts from the public void InitializeCustomCode() line.

11. The break point you set is now active. To move line by line, from the Debug menu, select Step Over.

Continue to step through the code for your customization. By leveraging Visual Studio, you can quickly identify
and correct errors in your customization.

10.0.700 301
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

Chapter 5: Customization Utilities

The application contains several tools you use to help create, globally modify, deploy, and manage personalizations
and customizations. The Customization Utilities chapter explores each available tool. If you need to heavily customize
a program or validate a series of customizations, you should leverage these important utilities.
The utilities are organized into four categories in this chapter:
• Database Viewing Tools
• Global Customization Tools
• Deployment
• Customization Management

Database Viewing Tools

The Database Viewing Tools are a series of programs that can help you locate database information you need.
They can also reduce programming issues by making sure you reference the correct fields within the database
tables within your customizations.
These tools are the Data Dictionary Viewer, the Data Relationships Tracker, and the Tracing Log. The rest of this
section explains how you use these tools.

302 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Data Dictionary Viewer


You use the Data Dictionary Viewer to find and review details of each field and table within the database. It helps
you better understand the purpose and data values of every field.
Use this program to identify the fields and tables you want for a customization. This program is also an aid during
upgrades, as you can view the current database structure to compare it against a previous database version.
Menu Path: System Setup > System Maintenance > Data Dictionary Viewer

Data Dictionary Viewer – Table View


To use the Data Dictionary Viewer:

1. The Table Schema Type section contains options that you use to designate the type of schema you wish
to view. Available options:
• System – Select this option to retrieve tables belonging to the ICE schema which refers to the Tools
(framework) part of the system.
• Product – Select this option to retrieve tables belonging to the ERP schema which refers to the application
part of the system.
• Intermediate – Select this option to retrieve intermediate tables. Tables within this schema stage the
data for another process to come through and update the main database tables.

2. Click the Table button to find and select the table you want to review.

3. The Description field displays an explanation for the table.

4. The Index Name displays the name used by the database to access a specific field. Each field displays using
its database schema name. In this example, ABCldx displays.

5. Fields displays the complete database location of the field. This column shows you the name of the field
and the sheet on which it displays. In this example, CompanyABCCode displays.

10.0.700 303
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

6. The Display Format section contains options that change how the information displays on the Tree View.
Available options:
• Schema – Select this option to display the table fields in schematic order on the Tree View. This defines
the order of precedence in which the fields are evaluated by the application. For example, Company,
Resource Group, and Alternate Resource Group.
• Alphabetic – Select this option to display the table fields in alphabetic order on the Tree View. For
example, Alternate Resource Group, Company, and Resource Group.

Data Dictionary Viewer – Field View


To use the Data Dictionary Viewer to display information on a selected field:

1. In the Tree View, select a field. In this example, you select the PcntTolerance field.

2. The Fields > Detail sheet displays the field’s information.

3. The Field Name displays the selected field. If you need, you can use the Navigation toolbar to display a
different field.

4. The Format field defines the layout for the characters within the field. This value displays in either schema
or alphanumeric format. For example: X(8), >9.99

5. If this field is a Decimal type (see the Type field description below), the Decimals field displays how many
decimal positions are available within the field. In this example, ‘2’ displays, indicating you can enter two
decimal positions in this field.

6. The Extent field indicates how many items you can store within this field for each record. If this value is
higher than one, it indicates that multiple values can appear within this field. For example, if 5 displays here,
it means the field can display up to five items.

7. The Type field defines the selected field’s main data definition. The type defines the data that appears within
the field. For example: Character, Decimal, Boolean (True or False).

304 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

8. The Initial Value field defines the beginning value, if any, that automatically displays within this field. It
indicates the default value that appears each time a user views this field.

9. If this field displays on a grid, the Column Label field indicates the text that appears at the top of the grid
column, for example: Count Freq.

10. The Label field displays the title that appears above the field on a sheet, for example, Percent Tolerance.

11. The Mandatory check box indicates the current field is required. To finish a record within this table, users
must either enter data or select an option within this field.

12. The Description field displays the concise explanation for the field. This text explains the field’s purpose
and other useful information.

13. The Display Format section contains options that change how the selected field’s information displays on
the Fields sheet. Available options:
• Schema – When selected, this option displays the field’s schematic values. These values define how the
database views and evaluates this field’s data.
• Alphabetic – When selected, this option displays the field’s alphanumeric values. Use these values to
help you understand how the field’s data displays on the interface.

Data Dictionary Viewer – Field Report


Use the Data Dictionary Field Report to print the field definitions for all or selected tables. Use this report as a
hard copy reference while you create your customization.

1. To print the Data Dictionary Field Report, from the Actions menu, select Print Field Definitions.

2. Select the Relation Types you want; this defines the sequence through which fields are listed on the report.
Available options:
• Order – The fields display in the schematic order defined for the selected tables.

10.0.700 305
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

• Name – The fields for each table display in alphabetical order by name.

3. Select the Print Table of Contents check box to indicate you want a table of contents printed with the
report. The table of contents is placed at the end of the report; it includes a File Name/Page cross-reference
and a file description for each table.

4. Click the Filter sheet to limit how many tables and their accompanying fields display on the field report. In
this example, only some tables are selected.

If you select all tables, a significant amount of time is


needed to generate and print out the report. Typically
you should only generate this report for the tables you
need.

5. If you need, enter a User Description for this report. Use this field to enter any additional information you
want linked to the current run of this report.

6. To display the report before it is sent to the printer, click the Print Preview button on the Standard toolbar.

7. To print a hard copy of this report, click the Print.

Field Help
Use the Field Help feature to display the technical details on a specific field within a program (form). With the
Field Help window displayed, you can immediately see the technical details on each field. When you click the
mouse pointer inside a field, the Field Help window displays the field details from the Data Dictionary.
To activate field help within each program:

1. Navigate and launch the program which contains fields you want to use in a BAQ. For this example, you
launch Ship Via Maintenance: Sales Management > Order Management > Setup > Ship Via .

306 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

2. From the Help menu, select Field Help.

3. The Field Help window displays.

4. Click the Thumbtack button to pin the window in place. If you do not click this button, the Field Help
window automatically minimizes to the side of the window (form).

5. Click the Technical Details button.

10.0.700 307
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

6. The Field Help window now displays the technical details on each selected field. For this example, the SCAC
field is selected on the Detail sheet, and so the technical details for this field display within the Field Help
window.

7. The Field Name displays the selected field.

8. The EpiBinding field displays the database relationship you use if you want to link to this field through a
customization or a code reference.

9. The DB Field value contains the information you most likely need for your BAQ. It displays the table name
and the column name for the selected field. Typically this value is identical to the EpiBinding value.

10. The Format field defines the layout for the characters within the field. This value displays in either schema
or alphanumeric format. For example: X(30)

11. If this field is a Decimal type, the Decimals field displays how many decimal positions available within the
field.

12. The Data Type field defines the selected field’s main data definition. The type defines the data that appears
within the field. For example: Character, Decimal, Boolean (True or False).

13. If this field displays on a grid, the Column Label field indicates the text that appears at the top of the grid
column.

14. The Description field displays the concise explanation for the field. This text explains the field’s purpose
and other useful information.

15. Continue to click in other fields to display the technical details for each field on the form. When you finish,
click Close on the Field Help toolbar.

308 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Tracing Log
Use the Tracing Log tool to set up a tracing log that captures all the calls the user interface makes to the server.
When you activate this log, any business logic (BL) calls sent to the server are automatically recorded within this
log.
Run this log to fine-tune your custom programs. You can use it to find out which business logic method calls are
made. You can also find out the duration of these business calls. Lastly, you can also see the data sent to and
from the server.
To make this log easier to review, you can organize it by entering Mark Text; all calls that reference this mark
text are then grouped together. You then have the option to display this log either as a text (.txt) file or as an
.xml file.

A pre-built .xml style sheet is included with this functionality.


Typically you would use the .xml file option, as it organizes
these calls in a readable format.

To launch this program from the Main Menu:

1. On the Home menu, click Settings.

10.0.700 309
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

2. On the Settings menu, click Tracing Options.

Use Tracing Log


To use the tracing log:

1. Use the Tracing Options Form window to define how the Tracing Log captures the BL calls.

2. Select the Enable Trace Logging check box to activate the Tracing Log. All calls made by the user interface
to the server are automatically recorded within the tracing log.

3. Select the Write Full DataSet check box if you want to record all data within the tracing log. If this option
is not selected, only header information is stored within the log.

4. Select the Track Changes Only check box if you only want changes to the dataset recorded within the
tracing log. All changes to columns in the dataset are then stored within the log.

5. Use the Write Call Context Dataset check box to include Business Process Management (BPM) table values
on the trace log. This information provides the data context for a call each time a call is sent between the
client and the server. This information is useful for developing BPM method directives, as you can intercept
these calls to run additional processing to verify data and other custom functions. For more information
about Business Process Management, review the Epicor ICE Tools User Guide.

310 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

6. Numerous method calls occur where the data is passed down, modified, not written to the database, and
then returned to the client. Select the Write Response Data option to include these database transactions
on the trace log.

7. The Current Log File displays the directory path and filename of the tracing log.

8. Click the View button to display the log within a .txt format.

9. Enter Mark Text to organize the tracing log so it is easier to review. To use this field, enter the text you
need and then click the Write button. All the calls that reference this mark text are grouped together within
the same section of the tracing log, for example, ABC Code Lookup.

10. The XML File field displays the directory path and filename used for the .xml version of the tracing log.
Click the Browse button to find and select this directory path and filename.

11. Click the Create XML button to save the tracing log within the default .xml format. This file can then be
viewed within any web browser. The Mark Text values you enter for this log also appear as options on the
.xml file.

12. To remove all entries from the tracing log, click the Clear Log button.

13. To add all these current settings to the tracing log, click the Apply button.

14. To exit the Tracing Options Form window, click OK.

Global Customization Tools

The Global Customization Tools are a series of programs you use to make uniform custom changes to the
application. You can create custom context menus and place them wherever you need using Context Menu
Maintenance. Use Extended Properties Maintenance to globally define properties for specific fields throughout
the database. Run User Defined Codes Maintenance to create unique drop-down lists you can then place within
existing or custom fields.

10.0.700 311
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

Context Menu Maintenance


Context menus are special menus that appear when you right-click a sheet, text box, drop-down list, or other
control element. You can use the Context Menu Maintenance program to customize these context menus
throughout the application. You can create custom context menus and place them wherever you need using
Context Menu Maintenance. Use Extended Properties Maintenance to globally define properties for specific fields
throughout the database. Run User Defined Codes Maintenance to create unique drop-down lists you can then
place within existing or custom fields.
Customized context menus are initially only available for a specific user account and so are, by default,
personalizations. However, you can switch the program to Customization Mode to make the context menu
changes available to everyone within your company.

Although this functionality is separate from the other


customization tools, you must have customization rights to
create customized context menus.

Menu Path: System Setup > System Maintenance > Context Menu Maintenance

This program is not available in the Epicor Web Access.

Edit a Context Menu


You often update an existing content menu by adding or removing options from it. To edit a Context Menu:

1. Select the Customization Mode check box. This causes the maintenance program to create customized
context menus instead of personalized context menus.

2. Click the Context Menu ID button to find and select the context menu you want to update. In this example,
the Customer ID context menu is selected.

3. If you are creating a new context menu, enter the identifier in the Context Menu ID field. This identifier
must be in the Table.Column format; this assigns the correct LIKE value to the new context menu. In this
example, the Customer.CustID identifier displays.
If a context menu identifier does not follow the Table.Column format, an error message displays during
run time and the context menu does not display.

4. The Current Status field displays the type of context menu that currently displays. Available options:
• Base – A context menu installed with the application.

312 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

• Customization – A context menu you have customized through this program. A customized version of
a context menu automatically displays before a base version of the same menu.
• Personalization – A context menu you have personalized through this program. Unless you select the
Customization Mode check box, all your changes to context menus are personalizations. A personalized
version of a context menu automatically displays before either a customized or base version of the same
menu.

5. You want to add Customer Group Maintenance to this context menu. This program is a Base Form that
appears on the default Main Menu. To do this, click the Down Arrow next to the New button. Select New
Context Menu Item.

6. Enter a Menu Item Name for the new context menu command.

7. The Process Type list defines what type of program appears when this context menu command is selected.
Available options:
• Base Form - An Entry, Maintenance, or other primary program.
• Search Form - A Search program.

8. Because you select Base Form as the Process Type, the Base Form sheet is active.

9. Click the Process ID button to find and select the Entry, Maintenance, or another program. For this example,
you select Customer Group Maintenance. Notice its ID, CRMT3010, displays in this field.

10. Click Save on the Standard toolbar. The context menu is updated.

10.0.700 313
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

Test the Context Menu


To see it in action, open a program that has a field linked to this context menu.

1. For this example, you launch Customer Maintenance because the context menu for the Customer ID is now
updated with the new command.

2. Right-click within the Customer field; its context menu displays.

3. Highlight the Open With submenu.

4. Notice your Customer Group option displays. Select this option.

5. The Customer Group Maintenance window displays.

314 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Create a Context Menu

Use Context Menu Maintenance to create new context menus. You can then link these context menus to any
text box within a customized form. For this example, you create a context menu that launches several salesperson
tools.

1. Select the Customization Mode check box.

2. Click New on the Standard toolbar.

3. Enter a Context Menu ID for your new context menu. In this example, enter SalesRep.SalesRepCode.

You must enter the identifier using the Table.Column


format. If you do not, an error message displays. Likewise,
an error message displays if the program cannot find
either the table or column.

4. Notice the Current Status is Customize. This means you can link this context menu to fields on forms
throughout the application.

5. Repeat the steps you followed in the previous section for adding a new command to a context menu. Click
the Down Arrow next to the New button New Context Menu Item.

6. Enter the Menu Item Name . In this example, you enter Salesperson Pipeline. Click the Process Type
drop-down list and select Process Type.

7. Click the Process ID button to find and select the Salesperson Pipeline program.

8. Notice the new Menu Item displays on the Tree View.

10.0.700 315
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

9. Click Save.

10. Continue to add any other base processes to the context menu. In this example, the Salesperson Quota
and Salesperson Workbench are added to the context menu; they also display in the Tree View.

11. You also want to give the user a way to find and select a salesperson record from this context menu. To do
this, you add a search form to it. Once again, click the Down Arrow next to the New button and select
New Context Menu Item.

12. Enter the Menu Item Name for this search program. In this example, you enter Workforce Search.

13. Click the Process Type drop-down list to select, the Base Search option. This indicates that the menu item
launches a search program.

14. The Search Form sheet becomes active.

15. Click the Adapter Name drop-down list to select the search program you want to display. In this example,
you select the WorkForceSearchAdapter.

16. Select the Search Mode used with this search program. Available options:
• List – The search program displays as a list.
• Rows – The search program uses search field options and the results display within a grid.

17. Click Save.

You can now link your new context menu to a text box.

316 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Deploy New Context Menus


You link a context menu to a text box while you are in customization mode. To do this, activate Developer Mode
and then activate customization on the program. You then link this field to the context menu by changing one
of the field’s properties.

1. Create a new TextBox field and Label. In this example, you create the Salesperson text box and label.

2. Select the text box.

3. Within the Properties sheet, link the text box to the label using the EpiLabel property. In this example,
you link to EpiLabelC3.

4. Select the EpiBinding property and bind this text box to an open field within the dataView; you can then
populate this field with data from the context menu. You select OrderHed.Character01 to bind this text box
to the dataView.

5. Select the EpiContextMenuKey property, and enter the name of your new context menu within this field.
In this example, you enter SalesRep.SalesRepCode.

6. To record this change, click Save.

7. Exit Customization Mode and Sales Order Entry. Launch Sales Order Entry again.

10.0.700 317
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

8. When you right-click the text box, your new context menu displays.

Custom Fields

You can add custom fields to an interface so users can enter unique data.
In previous Epicor versions, each table included a series of user-defined fields such as Character01, Date03,
Number02, and so on. While these additional columns satisfied most customization needs, some users ran out
of available columns. Then during an upgrade these user-defined fields would be overwritten, so users would
need to export customizations and, after the upgrade was complete, import them back into their environments.
This process sometimes required users to additionally update the tables/columns to make the customization
compatible with the new version.
To address these issues, the Epicor application now incorporates this functionality as a database extension. If you
are building a customization that needs unique fields, you create extended user-defined tables and add columns
to these tables. You control what column data types are included in the extended user-defined table. Then when
you add a custom text box, radio button, check box, and so on, you bind this element to the specific column in
the extended user-defined table. Since these tables are extensions from parent tables, they are not overwritten
during an upgrade, making your customizations much easier to maintain.
You create extended user-defined fields through a two-part process. You first create the extended user-defined
tables and columns within the Epicor application. You then use the Epicor Administration Console to regenerate
the data model. This process refreshes the database, making the extended user-defined fields visible, so you can

318 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

add them to your customization. You can then bind new elements (fields, check boxes, radio buttons) to the
columns in this extended user-defined table.

Do not confuse extended user-defined fields with user-defined


tables. Extended user-defined fields are additional columns
you add to an existing table. When you search for these custom
columns, their names include the "_c" suffix. User-defined
tables are empty tables (UD01, UD22, UD100, and so on)
available in the database; you can either add these tables as
grids to existing programs or add them to the Menu to create
a custom entry program.

Create the User-Defined Table

You begin by adding the extended user-defined table to an existing table you need to customize.

1. Navigate to Extended User Defined Table Maintenance.


Menu Path: System Setup > System Maintenance > Extended UD Table Maintenance

This program is not available in the Epicor Web Access.

2. From the New menu, click New Table.

10.0.700 319
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

3. The Table Search window displays. Click Search and find/select the table for the program you wish to
customize. For example, if you are customizing ABC Code Maintenance, find and select the ABCCode table.

To make it easier to find the table you need, enter a value in the Starting At field.

4. Click OK.
You return to Extended User Defined Table Maintenance.

5. Notice the Table Name field automatically displays the name of the database table you selected, adding a
“_UD” suffix to the end of this table name.

This suffix only displays when you access the user defined
table through this program. On customizations this table
extension is integrated directly with the primary table and
the "_UD" suffix does not display.

6. Enter a Description that describes the purpose for this extended user-defined table. You could enter
information that describes which customization uses this extended table, the columns this table includes,
or other information.

7. The System Code field identifies which Epicor application contains the extended user-defined table. Typically
ERP appears in this field.

320 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

8. Click Save.

Add Custom Columns

You now add the custom columns you want on this user-defined table. You can then bind custom fields, check
boxes, and other interface controls to these custom columns.

1. Click the Down Arrow next to the New button; select New Column.

The Column > Detail sheet displays.

2. Enter the Column name that you want to use in the database. Notice the program automatically adds a
"_c" suffix to the Column name value. This will help you find the column later after the custom column is
integrated with the primary table.

3. You can enter Like values to create foreign key views with other customizations. Enter the System Code
and the Table name for the foreign key view in these fields.

4. You also need to specify which Like column the current column will link to through the foreign key view.
Enter the specific column in this field.

5. Next enter a Description that defines the purpose for the custom column.

6. Click on the Data type drop-down list to indicate what kind of data this column will contain. Available
options:
• Boolean (True/False) - Use Y/N to indicate this field holds a True or False value.
• Date - Use 99/99/99 to indicate this field contains a date value.
• DateTime - Defines a format for a field that contains a date/time value.
• Decimal - Use the 9 value by the number of digits, including decimals, you want available in this field.
You can also suppress the zero by using the > symbol, and you can allow negative values by using the
– symbol. The maximum value you can enter in this field is: ->>>,>>>,>>9.99999
• Integer - Use the 9 value to indicate the number of digits, excluding decimals, you want available in this
field. The maximum value you can enter in this field is: ->,>>>,>>9
• String - Use the x value followed by how many characters you want available in the field. For example,
x(10) indicates that ten characters are available; x(50) indicates that 50 characters are available.

10.0.700 321
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

7. If you select the Decimal data type, the Decimals field activates. Enter how many decimal places this custom
column will have available.

8. After you select a Data Type, the default Format for this data type displays. You can accept this format or
modify this value so the custom column contains the data length you need.
Be sure to keep the length of custom columns as short as possible. Custom columns that have long data
lengths can reduce performance.

9. Now enter the Label for the custom column. When this table is included on a grid, this label value displays
in the column header.

10. If you need this column to display a default value, enter this default in the Initial value field. When this
column first displays, this default value automatically populates any elements (fields, check boxes, and so
on) linked to this column.

11. If this column needs a value before the record can be saved, select the Required check box.

12. Click Save.

Continue to add other custom columns as you need.


Use Extended Property Maintenance to add more properties to the custom columns. These properties define
the Like, Read Only, Business Type, and other properties which can further fine-tune your use of the custom
columns. For more information about extended properties, review the next Extended Property Maintenance
section.

Synchronize Table

To complete this user-defined table, you synchronize it. This formats the table so it can be linked to the database
and used while you develop your customization. Note this process does not make the table available for display
for other users; you need to update the data model to finish incorporating this user-defined table in your database.

1. Click on the Actions menu. To synchronize the active table, select the Sync Current Table to DB option.

2. To synchronize all the tables loaded into Extended User Defined Table Maintenance, select the Sync
all tables to DB option.

3. After you receive a message that the process has completed, exit User-Defined Table Maintenance.

322 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

You are ready to regenerate the data model to include this new table; this integrates the extended user defined
table with the database.

Regenerate Data Model

To finish adding the extended user-defined columns, you must regenerate the data model for the specific database.
You do this task on the server that contains your database.

1. On your server machine, launch the Epicor Administration Console.

2. Expand the Database Server Management node and the database server node that contains the database
you need to update. Select the database icon.

3. The properties for the database displays in the center pane.

4. From the Actions pane, click the Regenerate Data Model button.

5. The Generate Data Model window displays.

6. Verify the Deployment folder field displays the root path location for the server.

7. Click Generate.

If you receive an error that the .dll file is in use by another


process, end the task and close the Epicor Administration
Console. Return to the Apps screen and launch the
Command Prompt (under the Windows System section).
In the Command Prompt window, enter IISRESET and
press <Enter>. After IIS stops and restarts, close the
Command Prompt window and return to the Epicor
Administration Console. You should be able to regenerate
the data model.

10.0.700 323
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

8. Now to complete this process, pull the latest data model from the database and copy it to the local application
server by restarting IIS. Restarting IIS is a mandatory task after the data model is successfully regenerated.
To do this, launch the Command Prompt window.

9. Enter IISRESET and press <Enter>.

10. After IIS stops and restarts, close the Command Prompt window.

The data model generates, adding the extended user-defined table to the database. You can now bind controls
on your customization to these fields. Epicor users can also view and enter data in the extended user-defined
table.

Extended Property Maintenance

Use the Extend Property Maintenance utility to define additional, or extended, properties to selected fields
(columns) within a dataView (table). These extended properties become active the next time a user launches a
program that uses the selected table. These properties can also be leveraged when you customize a program
which uses the same table.
Menu Path: System Setup > System Maintenance > Extended Properties

This program is not available in the Epicor Web Access.

Select the Dataset


To select and review the main items for the dataset:

324 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

1. Click the DataSetTable ID button to find and select the dataset you need.

2. The rest of the fields on this sheet only display for your information; you cannot edit these fields. The
Database Table field displays the name of the table.

3. The Table Type field defines the purpose of the table. In this example, the APInvHed (Accounts Payable
Invoice Header) table is a database type.

4. The Description field contains a brief explanation for the field.

5. If this table is limited to only holding data for a specific Site, the Restricted By Site check box is selected.

6. If this table is limited to only containing data for a specific sales territory, the Restricted By Territory check
box is selected.

7. The Label field displays the label text used for this table (if a label exists).

8. If changes to this table are recorded through a change log, the identifier for this change displays in the
Change Log ID field.

Update Field Extended Properties


You can now select a field and update its properties. Depending on the extended property you select, different
fields become available on this sheet:

10.0.700 325
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. Use the Tree View to navigate to the field you want to update, and then navigate to the Fields > Detail
sheet. You use this sheet to modify the extended properties.

2. The Field Name displays the name of the selected field within the table.

3. The Data Type field defines the kind of data that displays in this field. For example, Character, Date, Numeric,
and so on. If the field is a column for a custom field, like Character01, Number01, Date01, and so on, the
Description field is active. You can enter the text you want for this custom field.

4. When you select a custom string field like ShortChar03 or a custom numeric field like Number02, you can
define the Business Type for the data it contains. This value indicates the data that displays in the custom
field. When you place this field on your customization, the field only displays the kind of data defined for
the business type. Available options:
• String field – The Unit of Measure business type is available. Select this option to indicate the custom
field holds a unit of measure code value. When you then define a numeric field with the Quantity business
type, you can then select this unit of measure field from the UOM Column drop-down list.
• Numeric field – You can select either the Quantity or Currency business type. Selecting the Quantity
type indicates a quantity value, like a stock quantity or a selling quantity, populates this custom field.
You can then select the unit of measure field linked to this quantity field within the UOM column field.
If you select the Currency business type, however, the Currency Type, Currency Source, and Currency
Code fields become available. Use these fields to define how the currency values are calculated within
this field.

5. Use the Like and Like Field properties to select a specific field from one table to link to the current field.
This field then displays the context menu from the linked table/field. To do this, click the Like button to find
and select the table you need. Then use the Like Field drop-down menu to select the specific field. During
Run Mode, the context menu for the table/field now displays.

6. If you want users to always enter data in this field before they can save the record, select the Required
check box.

326 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

7. If you do not want users to enter or modify data within this field, select the Read Only check box.

8. Use the Zone BAQ drop-down list to select a business activity query to use as a Business Activity Query
(BAQ) zone. A BAQ zone is an embedded query that links to a specific field on a program interface. When
you activate a BAQ zone, it displays as a tool tip window that populates with data the business activity query
generates.

9. To change the data that can display in this field, enter a value within the Format field. Use this value, for
example, to lengthen or shorten the characters or decimals available within the field. Available formats:
• Character String – Use the x value, followed by how many characters you want available in the field.
For example, x(10) indicates that 10 characters are available; x(50) indicates that 50 characters are
available.

Be sure to only increase fields to the size you need;


too many large character and numeric fields can
impact performance.

• Boolean – Use Y/N to indicate this field holds a True or False value.
• Date – Use 99/99/99 to indicate this field contains a date value.
• Numeric – Use the 9 value by the number of digits, including decimals, you want available in this field.
You can also suppress the zero by using the > symbol, and you can allow negative values by using the
– symbol. The maximum value you can enter in this field is: ->>>,>>>,>>9.99999

10. Use the Label field to enter a different column title for the field. When this column title displays in a grid,
this label value displays.

11. Use the Linked Column drop-down list to select a column that moves with the current field (column) when
it is repositioned on a grid. For example, if the current field is a quantity field and you want its corresponding
unit of measure field to move with it, select the UOM field from this list. Now when a user clicks, drags,
and drops the numeric quantity field to a new location on a grid, the selected UOM field is automatically
dragged with it.

12. If you select a custom numeric field (like Number01) and indicate it holds a Quantity business type, the UOM
column list becomes available. Use this drop-down list to define the unit of measure field that displays with
this quantity field. When you place these fields on your customization, they automatically display quantity
and unit of measure values.

13. The UD Code Type drop-down list indicates a list of user-defined codes display within this field. You create
user-defined codes within User Defined Code Maintenance; this program is explored later in this chapter.
If you want to display a user-defined code list through this field, select the code you need from this list.

14. If you want the BAQ zone to activate when the selected field does not contain a value, select the Zone
Search On Empty check box. For more information on how to create and link BAQ zones, review the BAQ
Zones section later in this chapter.C

15. The Default Format, Default Label, Default Init Value, Like Table, and Like Field all display the default
values for the selected field. This information displays for your reference.

16. If you select a custom numeric field (like Number03) and indicate it holds a Currency business type, the
currency fields become available. Use the Currency Type drop-down list to define what values can display
in this currency field. Available options:
• General - This currency field displays values such as extended prices, tax amounts, and any amounts
posted through inventory, general ledger, assets, and banks.

10.0.700 327
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

• Unit Cost – This currency field only displays unit cost amounts.
• Unit Price – This currency field only displays unit price amounts.

17. Use the Currency Source field to define the currency used to calculate the value that displays in the custom
numeric field. The currency sources defined for the company are then calculated against this field to display
the amount in the correct currency source. Available sources:
• Document – An additional currency which the company uses.
• Global Currency – A currency used by all the companies within the organization.
• Own/Base – The primary currency used by the company. This currency is used to post transaction
amounts to the general ledger.
• Reportable Currency 1 – A currency the company uses to calculate amounts for international transactions.
• Reportable Currency 2 – A second currency the company uses to calculate amounts for international
transactions.
• Reportable Currency 3 – A third currency the company uses to calculate amounts for international
transactions.
For example, if a company uses the Japanese Yen for its base currency and you select the Own/Base
option, the selected numeric field displays its values using the Japanese Yen.

For more information about the multi-currency


functionality, review the Currency Management topics
available within application help.

18. The Currency Code column drop-down list displays all the fields in the selected table that contain string
values. Select the currency code field you want linked to the selected numeric field.

19. The Delimiters field displays the delimiter characters (if any) that can display within the selected field. The
Decimals field displays the number of decimals (if any) this field displays by default.

20. When you finish defining the extended properties, click Save.

Continue to select different fields from the table to modify. When you finish, you can launch a form that uses
the selected table to review your changes. The next time you customize a program that uses this table, you can
also incorporate these custom fields within your customization; the extended properties you assigned are then
available to end users.

User Defined Codes Maintenance


Launch User Defined Codes Maintenance to add a series of custom records, or codes, that you can then attach
to a new text box field as an extended property. These codes can be anything you need.
This feature is an efficient way to create user-defined codes. Instead of modifying a user-defined table to hold
this information, you can just create a user-defined code type and attach it to a custom field. This code list is
then available during Run Mode on any program that uses the field.
Menu Path: System Setup > System Maintenance > User Codes

328 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Create a User-Defined Code Type

1. From the New menu, click New Code Type.

2. Enter the Code Type ID you need. For this example, you enter User.

3. Enter the Description for this code type.

4. If your code type requires additional explanation, enter the text you need within the Long Description
field.

5. Optionally, select the Auto Sequence check box to cause the program to automatically generate code IDs
for each code you add to the code type. If you do not select this check box, you can enter each code ID
manually.

6. The Next Sequence ID displays the next code identifier available for the code type. If you select the Auto
Sequence check box, this field displays the next available number. In this example, three codes are created
for this code type, so a 4 value displays in this field.

7. The Created By field displays the ID of the user who created the code type.

8. The Created field displays the date on which the code was created.

9. When you finish, click Save.

Create User-Defined Codes


You can now create codes for this user code type:

10.0.700 329
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. Click the Down Arrow next to the New button; select New UD Code.

2. The Code field displays the identifier for the new code. If you selected the Auto Sequence check box on
the Detail sheet, this value is generated automatically. If you clear this check box, you must manually enter
the Code value.

3. Enter the Description for the code. This value is the text that displays on the list during Run Mode.

4. Optionally, enter an extended explanation for the code in the Long Description field.

5. The Created By and Created fields automatically display the user who created the code and the date on
which it was created.

6. The Active check box is selected by default; it indicates this code displays on any drop-down list linked to
this code type. If you no longer want this code to display, clear this check box.

7. Continue to add the codes you need. When you finish, click Save.

Add Code Type as an Extended Property


Now you attach this code type as an extended property to any field you need. To do this, you need to launch
Extended Properties Maintenance.
Menu Path: System Setup > System Maintenance > Extended Properties

This program is not available in the Epicor Web Access.

To add a code type as an extended property:

330 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

1. Use the Detail sheet to find and select the table you need. For this example, the ABCCode_UD table is
selected.

2. Navigate through the Tree View to find and select the field you want to contain the user-defined codes.
In this example, you select the EnteredBy_c field.

3. Navigate to the Fields > Detail sheet.

4. Click the UD Code Type drop-down list and select the user-defined code type you want linked to this field.
For this example, you select the Holidays code type.

For more information on each extended property, review


the previous Extended Property Maintenance section.

Now when you create a customization that uses the APInvDtl table, you can incorporate this user-defined code
type. To do this, add an EpiCombo control to the form and bind it to the Character06 field. When you switch
the customization to Run Mode, the codes you created for the code type display on the drop-down list.
You can continue to add codes to the user-defined code type within User Defined Code Maintenance. The code
type then updates and displays these new codes during Run Mode.

Resource Editor
You use the Resource Editor to add, edit, and delete the images that display within your customized program or
dashboard. Use this tool to create a custom resource file that automatically loads each time you launch your
application. You can then access these images within the application.
While you are in Developer Mode for either a customized program or a dashboard, you can select these images.
Place these images on customizations by using the Picture Box tool, the Image Column Wizard, or the Image
Column Row Rule Wizard. When you add a new grid to a dashboard, use the Image Column Tab to display your
custom images on the custom grid.

10.0.700 331
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

The Resource Editor is not available directly within the Epicor application. Instead, you need to navigate to the
Utilities > EpiResourceEditor folder. The Utilities folder installs on the same level as your Client and Server folders,
directly below the main Epicor application folder.

The MfgCustomImages.Resources File


Once you create a new MfgCustomImages.Resources file, you can then add as many custom images as you need
to this file. When the Epicor application launches, the standard MfgBaseImages.Resources file loads on the system
first and then this MfgCustomImages.Resources file loads onto your system. Any resources contained within this
custom file can then be used on your customizations and dashboards.
If an image within the MfgCustomImages.Resources file has the same name as an image within the
MfgBaseImages.Resources file, the original base images are overwritten by the new image in the custom file.
Use this feature to replace a standard image with a custom image.
Although it is strongly recommended you use the MfgCustomImages.Resources filename, the Configuration
Settings File (default.mfgsys) contains a setting you can use to define the specific custom file that you want to
load. This default setting is: <CustomResourceFile value=.res\MfgCustomImages.resources> If needed, you
could use a different custom images resource file by entering its filename within this configuration file setting.
Custom image resource files can also be distributed to client installations by defining the Deployment Settings
within each client’s default.mfgsys file (or whatever configuration file the client uses). You can then create an
entry that includes a version number. When a user logs into the system, any new version of the custom resource
file will then be automatically used on the client installation. For information on these settings, review the
Deployment Settings section within Chapter 1: Startup Configurations.
To create the MfgCustomImages resource file:

1. Click the New button on the toolbar.

2. You cannot save a resource file until you add an image to it. To do this, click the Add Image (the green
plus sign) button.

3. The Choose Image for New Resource window displays. Find and select the image you want to add to
the image file.

4. Click Open.

332 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

5. Your new image displays on the grid.

6. To see how the image appears in full size, click the Preview sheet.

7. Repeat these steps to add all the images you want to the resource file. When you finish, click Save on the
Standard toolbar.

8. The Save As window displays. Use this window to navigate to the location where you want to save this
resource file. It is recommended you save this file in the default C:\Epicor\Client\res directory path.

9. In the File name field, enter the name you need for the resource file. You can enter any name for this file,
but it is recommended that you use the MfgCustomImages filename.

10. Click Save.

Your custom resource file is created. The images contained within this file can now be used on your custom
programs and custom dashboards.

Add Images Using the Image Browser


To add images using the Image Browser:

10.0.700 333
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. Click the Image Browser sheet.

2. Click the Browse Folder button.

3. The Browse For Folder window displays. Navigate to the folder that contains the images you want to view.

4. Click OK.

5. The images contained within this folder display within the Image Browser. Select an image you want to add.
You can also select multiple images by pressing either the <Ctrl> or <Shift> key as you select images within
the Image Browser.

6. From the Edit menu, select Add Resource(s) from Image Browser.

7. The selected image or images are added to the resource file.

8. When you finish adding the images you need, click Save.

334 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

You can now access these images for display within customizations and dashboards. You can also use the Picture
Box tool (described in Basic Customization) to place a custom image directly on to a form. Review the Image
Column Wizard section within Advanced Customization to learn how to add an image to a column. Review the
Dashboards chapter within the Epicor ICE Tools User Guide to learn how to place images within a custom
dashboard.

BAQ Zones

A business activity query (BAQ) zone is an embedded query you can link to a specific field on a program interface.
When you activate a BAQ zone, it displays as a linked tool tip window. The data that populates this window
depends on both the business activity query and the current value, if any, within the linked field.
You create and modify business activity queries within the Business Activity Query Designer. Use this custom
query tool to select and join tables. You then define what columns from the selected tables display in the results.
Through this functionality, you can also create calculated fields that run an expression against the query results
to return values you need. These custom queries display the resulting data; you can then embed these queries
throughout the Epicor application in dashboards, reports, searches, and BAQ zones.

This section contains examples of business activity queries


(BAQs) you can use to link as a BAQ zone. These queries are
briefly documented here. BAQs are described in more detail
in the Epicor ICE Tools User Guide in the Business Activity
Queries chapter. The application help also contains information
on how to create BAQs.

After you create or modify the BAQ to use for the BAQ zone, you then link the BAQ to a specific field by either
using Extended Property Maintenance or by embedding the BAQ zone in a customization. When you launch the
program that contains the customized field, you will see a BAQ zone indicator on the field. You can then modify
the color used to display this indicator and define a shortcut key combination that will activate the BAQ zone.

The BAQ Zone Process


The following sections describe the overall process you follow to create BAQ zones. These sections are intended
to be a high level overview. A series of use case scenarios are available after this section to demonstrate BAQ
zones in action.

Create the Business Activity Query


You create business activity queries within the Business Activity Query Designer. You can define the specific data
you want to display through the query. You do this by first selecting the database tables you need and then
indicating the fields from these tables you want to display. You can also create expressions that evaluate data
from the selected tables; this data then displays within a calculated field.
Menu Path: Executive Analysis > Business Activity Management > Setup > Business Activity Query

This program is not available in the Epicor Web Access.

To create a business activity query:

10.0.700 335
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. Define the main parameters for each query on the General sheet.

2. The Query Builder > Phrase Build sheet is the primary sheet you use to build a new query.

336 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

3. Select what items display on your query on the Query Builder > Display Fields > Column Select sheet.
You also create calculated fields on this sheet.

Attach the BAQ Zone – Extended Property Maintenance

Once you define the query, you are ready to link it to a field as a BAQ zone. You can do this through Extended
Property Maintenance. Launch this program and then link a BAQ zone to a specific field as an extended property.
Menu Path: System Setup > System Maintenance > Extended Properties

This program is not available in the Epicor Web Access.

1. Use the Detail sheet to find and select the table that contains the field you want to link to the BAQ zone.

10.0.700 337
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

2. In the Tree View, select the field you want to modify.

3. Navigate to the Fields > Detail sheet.

4. Use the Zone BAQ list to select the business activity query.

5. If you want the BAQ zone to activate when the selected field does not contain a value, select the Zone
Search on Empty check box.

6. Click Save.

Now when you launch the program that contains this table, the selected field displays with a zone indicator next
to it.

Attach the BAQ Zone – Embedded Customization


You can also link a BAQ zone to a field by embedding it within a customization.
To add a BAQ zone through a customization:

338 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

1. Switch to Developer Mode and launch the Customization Tools Dialog.

2. From the Tools menu, select Wizards > Customization Wizards.

3. The Customization Code Wizard Dialog displays.

4. Select the Modify Extended Properties wizard.

5. Click the Launch Wizard button.

10.0.700 339
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

6. The Extended Property Wizard displays. Use the DataView list to select the table that contains the field
you want to link to the BAQ zone.

7. Click the DataField drop-down list to select the field you need.

8. Click the Extended Property drop-down list to search for and select the ZoneBAQ option.

9. Indicate the business activity query you want by selecting an option from the Value list.

10. If you want the BAQ zone to activate when the selected field does not contain a value, select the Zone
Search On Empty Control check box.

11. Click Finish.

BAQ Zone Run Mode


When you launch a program that contains a BAQ zone in Run Mode, the BAQ zone populates with the data you
defined through the business activity query.

340 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

1. The selected field you linked to a BAQ zone now has a zone indicator that displays next to it.

2. Hover your mouse over the zone indicator; the BAQ zone launches. If you indicated this field does not need
a value, the BAQ zone automatically populates with data.

10.0.700 341
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

Use Case: Customer Website BAQ Zone


During this scenario, you first create a business activity query that links the Customer ID field with the Website
field. You then add this business activity query to the Customer ID field within Customer Maintenance as a BAQ
zone. Users can first use this zone as a search. Once the Customer ID field populates with a value, users can then
load the customer’s website within the BAQ zone window.

Create the BAQ


Menu Path: Executive Analysis > Business Activity Management > Setup > Business Activity Query

This program is not available in the Epicor Web Access.

You first create the business activity query.

1. Click New on the Standard toolbar.

2. Define the Query ID by entering your company name followed by the identifier value you want for the
query. For this example, you enter EPIC03-CustURL.

3. Enter a Description for the query.

4. Select the Shared check box. You can then see this query in the BAQ zone lists.

342 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

5. Navigate to the Query Builder > Phrase Build sheet.

6. In the Filtering pane, select the Erp.Customer table.

7. The Customer table displays on the grid.

8. Navigate to the Query Builder > Display Fields > Column Select sheet.

10.0.700 343
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

9. Use the Available Columns list to find and select the columns you want to display in the BAQ zone.

10. For this example, you select the following fields:


• Customer.CustID (customer identifiers)
• Customer.CustURL (customer website addresses)

11. Click Save.

Attach the BAQ – Extended Property Method


You now link the business activity query to a specific field. You do this by defining a property within Extended
Property Maintenance.
Menu Path: System Setup > System Maintenance > Extended Properties

This program is not available in the Epicor Web Access.

1. Click the DataSetTable ID button to find and select the Customer table.

2. When you select the Customer table, its information displays on the Detail sheet. This table is the primary
table for customer records; you add records to this table within Customer Maintenance.

3. In the Tree View, expand the table and select CustID.

344 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

4. Navigate to the Fields > Detail sheet.

5. Click the Zone BAQ drop-down list to select the EPIC03-CustURL query.

6. You want this BAQ zone to function as a search program. To do this, you select the Zone Search On Empty
check box.

7. Click Save.

Personalize the Zone Indicator


A new zone indicator displays in Customer Maintenance. You can personalize how this zone indicator displays
on the form.
Menu Path: Sales Management > Order Management > Setup > Customer
The CRM menu path is: Customer Relationship Management > Order Management > Setup > Customer

10.0.700 345
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. Notice the Customer ID field now displays a zone indicator next to its field.

2. You can change the color used to display the zone indicator. To do this, from the Tools menu, select
Options.

3. The Options window displays.

4. Select the Zone Indicator check box. This indicates you want zone indicators to display in the current
program. If you clear this check box, the zone indicators do not display in the current program.

5. Click the drop-down list to select the color you want to use for the zone indicator.

6. Click OK.

346 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

7. The zone indicator displays with your new color.

Activate the BAQ Zone


The BAQ zone is now ready to use. To activate the BAQ zone:

10.0.700 347
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. Hover your mouse over the zone indicator. The BAQ zone first retrieves all the Customer ID fields, so you
can use the BAQ zone as a search program.

2. Select the customer record you want from the BAQ zone.

348 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

3. The selected customer record displays within the program.

4. Now when you hover your mouse over the zone indicator, the customer’s website displays within the BAQ
zone window.

Use Case: Part Image BAQ Zone


In this scenario, you will create a customization for Part Maintenance. This customization will contain a BAQ zone
that populates with an image that matches the current part number. You do this by creating a business activity
query that uses a calculated field.
Before you create this BAQ zone, you need a graphic file library that contains part illustrations or photos. Each
of these files also must use the part number in their filenames, for example, 38FW.bmp.

Create the BAQ


You first create the business activity query.
Menu Path: Executive Analysis > Business Activity Management > Setup > Business Activity Query

This program is not available in the Epicor Web Access.

10.0.700 349
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. Click New on the Standard toolbar.

2. Define the Query ID by entering your company name followed by the identifier value you want for the
query. For this example, you enter EPIC03-PartImage.

3. Enter a Description for the query.

4. Select the Shared check box. You can then see this query in the BAQ zone lists.

5. Navigate to the Query Builder > Phrase Build sheet.

6. In the Filtering pane, select the Erp.Part table.

7. The Part table displays on the grid.

350 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

8. Navigate to the Query Builder > Display Fields > Column Select sheet.

9. Use the Available Columns list to search for and select the columns you want to display in the BAQ zone.
For this example, you select the Part.PartNum (part identifiers) field.

10. In order to display the part graphic files, you need to create a calculated field. Click the Calculate button.

11. The Calculated field editor window displays. Click New button on the Standard toolbar.

12. Enter the Field Name you want for this calculated field. For this example, you enter PartImage.

10.0.700 351
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

13. You need this field to handle the image filenames. In the Data Type field, select nvchar.

14. In the Format field, enter x(80). This calculated field can contain values up to 80 characters in length.

15. Enter the Label you need. For this example, you enter PartImage.

16. You store the image files on your local hard drive. Each of these .bmp files use the Part Number value for
their filenames. You need to create an expression that first goes out to this directory path and then calculates
the current Part Number value. You enter the following expression in the Editor pane:
“C:\DL\zone\[LIKE:Part.PartNum].bmp”
For this expression, the LIKE Lookup Token is used to determine the name of the .bmp graphic file. This
means the current value in the Part.PartNum field is used to determine the value that will populate in the
calculated field. If the expression finds an image filename that matches this value, the BAQ zone displays
this graphic file.

17. Click Save.

18. Exit the Calculated Field Editor.

19. Navigate to the Query Builder > Display Fields > Column Select sheet. Notice your calculated field
displays in the Display Column(s) list.

20. Click Save.

Create the Customization


To create the customization for Part Maintenance:

352 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

1. On the Settings Menu, click the Developer Mode.

2. Navigate to Sales Management > Order Management > Setup > Part. The Select Customization window
displays.

3. Select the Base Only check box.

4. Click OK.

10.0.700 353
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

5. To create the customization, from the Tools menu, select Customization.

6. The Customization Tools Dialog displays. From the Tools menu, select Wizards > Customization
Wizards.

7. The Customization Code Wizard Dialog displays. Select the Modify Extended Properties wizard.

8. Click the Launch Wizard button.

354 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

9. The Extended Property Wizard displays.

10. Click the DataView list and select the Part table.

11. Select the specific DataField to which you want to link the BAQ zone. For this example, you select the
PartNum field.

12. In the Extended Property field, select ZoneBAQ.

13. Define the business activity query that will link to this field. For this example, from the Value list, select the
EPIC03-PartImage query.

14. Click Finish.

15. Exit Customization Code Wizard Dialog.

16. You return to the Customization Tools Dialog. The customization is complete, so click Save.

10.0.700 355
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

17. The Customization Save Dialog displays. Enter a Name for the customization. For this example, you enter
BAQZone.

18. Next, enter a Description for the customization.

19. Click Save.

20. Exit the Customization Tools Dialog and Part Maintenance.

Create a Shortcut Key


You can also define a shortcut key combination you can use to display the data within the BAQ zone. To create
a shortcut key combination:

1. Launch Part Maintenance.


The Select Customization window displays.

356 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

2. Select your customization.

3. Click OK.

4. The Part Maintenance window displays.

5. Notice a zone indicator displays next to the Part field.

6. From the Tools menu, select Options.

7. The Options window displays.

8. Navigate to the Global Options > Hot Keys sheet.

10.0.700 357
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

9. Click the Launch Info Zone with drop-down list, select a hot key combination.
In this example, you indicate that the BAQ zone will activate when users press the Ctrl keyboard combination.

10. Click OK.

Use the BAQ Zone


To use this BAQ zone:

1. Before this BAQ zone populates with the graphic file, click the Part button to find and select the part. You
can also enter the part identifier directly.

2. Click the Part field and press Ctrl + I on your keyboard.

3. The corresponding image from your graphic library displays in the BAQ zone.

Use Case: Customer Part BAQ Zone

During this scenario, you will create a customization for Sales Order Entry. This customization contains a BAQ
zone that links to a customer’s purchase order number field. Depending on the customer selected on the sales
order header, a different part image displays within the BAQ zone that links to the PO Number field.
Before you create this BAQ zone, you need a graphic file library that contains separate folders for each customer.
Then each customer folder needs to contain a different set of graphic files; each of these files must use the part
number in their filenames, for example, 38FW.bmp.

358 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Create the BAQ

You first create the business activity query.


Main Menu Path: Executive Analysis > Setup > Business Activity Query

1. Click New on the Standard toolbar.

2. Define the Query ID by entering your company name followed by the identifier value you want for the
query. For this example, you enter EPIC01-CustPartInfo.

3. Enter a Description for the query.

4. Select the Shared check box. You can then see this query in the BAQ zone lists.

10.0.700 359
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

5. Navigate to the Query Builder > Phrase Build sheet. In the Filtering pane, select the Erp.Customer table.

6. The Customer table displays on the grid.

7. Navigate to the Display Fields > Column Select sheet.

8. Use the Available Columns list to search for and select the columns you want to display in the BAQ zone.
For this example, you select the Customer.CustID (customer identifiers) field.

9. In order to display the part graphic files, you need to create a calculated field that evaluates an expression
against the Customer ID values. Click the Calculate button.

360 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

10. The Calculated Field Editor displays.

11. Click New on the Standard toolbar.

12. Enter the Field Name you want for this calculated field. For this example, you enter CustPart.

13. You need this field to handle the image file names. From the Data Type list, select nvchar.

14. In the Format field, enter x(80). This calculated field can contain values up to 80 characters in length.

15. Enter the Label you need. For this example, you enter Customer Part Image.

16. You store the image files on your local hard drive; these image files are organized into separate customer
folders. The .bmp files contained within each customer folder use the Part Number value for their filenames.
You need to create an expression that first locates the correct customer folder, calculates the current Part
Number value, and uses this value to identify the correct graphic file. You enter the following expression in
the Editor pane:
“C:\DL\zone\[LIKE:Customer.CustID]\[EpiBinding:OrderDtl.PartNum].bmp”
For this expression, the LIKE Lookup Token is used to determine the name of the customer folder. This means
that the current value in the Customer.CustID field is used to determine the value that will populate this
folder variable in the expression. Then the EpiBinding Lookup Token identifies the part number defined on
the sales order; if this section of the expression finds an image filename that matches this value, the BAQ
zone displays this graphic file.

17. Click Save.

18. Exit the Calculated Field Editor.

10.0.700 361
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

19. Navigate to the Query Builder > Display Fields > Column Select sheet. Notice your calculated field
displays in the Display Column(s) list.

Complete the BAQ

To complete the query, you need to define a criteria that filters the results based on the customer identifier.

1. Navigate to the Query Builder > Phrase Build > Table Criteria sheet.

362 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

2. Click the New button.

3. Select the Field Name you want to use for the criteria filter. From this list, select the CustID field.

4. In the Operation field, use the equals (=) sign.

5. From the Filter Value list, select the specified constant filter.

6. Click the specified link.

7. The Specify a Value window displays.

8. Enter a LIKE Lookup Token that filters the results in the BAQ zone by customer identifier in the Value field.
Enter the following:
[LIKE:Customer.CustID]

9. Click OK.

10. Your business activity query is complete. Click Save.

Create the Customization

You now create the customization for Sales Order Entry.

10.0.700 363
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. On the Settings Menu, select the Developer Mode mode.

2. Navigate to Sales Management > Order Management > Setup > Order Entry. The Select
Customization window displays.

3. Select the Base Only check box.

4. Click OK.

364 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

5. Now create the customization. From the Tools menu, select Customization.

6. The Customization Tools Dialog displays. From the Tools menu, select Wizards > Customization
Wizards.

10.0.700 365
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

7. The Customization Code Wizard Dialog displays. Select the Modify Extended Properties wizard.

8. Click the Launch Wizard button.

9. The Extended Property Wizard displays. From the DataView list, select the OrderHed table.

10. Now select the specific DataField to which you want to link the BAQ zone. For this example, you select the
PONum field.

11. From the Extended Property list, select ZoneBAQ.

12. Now define the business activity query that will link to this field. For this example, from the Value list, select
the EPIC03-PartImage query.

13. Click Finish.

14. Exit the Customization Code Wizard Dialog.

366 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

15. You return to the Customization Tools Dialog. The customization is complete, so click Save.

16. The Customization Save Dialog displays.

17. Enter a Name for the customization. For this example, you enter CustPart_BAQZone.

18. Enter a Description for the customization.

19. Click Save.

20. Exit the Customization Tools dialog and Sales Order Entry.

10.0.700 367
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

Use the BAQ Zone

You are now ready to use this BAQ zone.

1. Launch Sales Order Entry. The Select Customization window displays.

2. Select your customization.

3. Click OK.

368 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

4. The Sales Order Entry window displays again.

5. Create or select a Sales Order.

6. Notice the Customer record selected on the sales order.

7. Select one of the detail lines on the sales order. In this example, the second detail line is selected. This detail
line is for part 4600-1.

8. Activate the BAQ zone by the PO field; notice the image that displays for this part.

10.0.700 369
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

9. Select or create a Sales Order for a different customer.

10. Notice the first detail line on this sales order is for the same part, 4600-1.

11. Activate the BAQ zone by the PO field; a different image displays for this part.

Menu Deployment

You complete the customization process by deploying your custom programs and sub-process programs to the
application interface. You add and/or substitute existing programs with customized programs using Menu
Maintenance, but you follow different methods depending on whether you add/update a program directly on
the Menu or add/update a sub-process program from a parent program.
Both methods are explored in this section of the chapter.

Main Menu Deployment


You can deploy custom programs onto the Main Menu through two methods within Menu Maintenance. You
can replace the base program icon with your customization. You can also add your customization as a separate
launch icon.
Menu Path: System Setup > System Maintenance > Menu Maintenance

This program is not available in the Epicor Web Access.

370 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Replace Existing Program


During this example, you replace the base version of Sales Order Entry with the No Counter Sales customization.
This customization then becomes the default version of the program your users always launch. To replace an
existing program:

1. Use the Tree View to navigate to the program you want to customize. In this example, you select Sales
Order Entry.

2. Notice the detail fields for this program display within the Detail sheet.

3. To replace the base program with your custom program, click the Customization drop-down list. All your
customizations for this program appear; in this example, you select the NoCounterSaleAltAdv (Customization)
option.

4. Click Save on the Standard toolbar.

The next time your users log into the application, the No Counter Sale customization displays when users launch
Sales Order Entry.

Add Custom Program


You can also add a custom program to the Menu. Instead of replacing the base program, this additional program
becomes a separate option users can select. To add a custom program:

10.0.700 371
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. From the New menu, select New Menu.

2. Use the Company drop-down list to indicate whether this new menu item just displays on the current
company menu or on all menus in the Epicor application. Through this functionality, you can define a default
version of the menu item used throughout all companies, but also create company specific menu items. In
this example, the custom Sales Order Entry program will only display in the EPIC03 company.

3. Enter a Menu ID for the custom program. Because it is a user-defined menu item, begin the identifier with
UD and then follow this with the rest of the identifier. In this example, the Menu ID is UDOENOC.

4. The Module field displays the module inside which this program is contained. This value is used to help
organize programs on the Main Menu; it displays on various tables. Because you are adding a custom
program, the UD value displays – indicating this program is a user-defined function.

5. Enter a Name for the menu item. This label displays on the Main Menu.

6. Select a Security ID for the menu item. This defines the security parameters used against this custom
program.

The Security ID can be used to limit access to the custom


program. You can limit access to user groups, specific
users, or both. To learn how to create new security IDs,
use the Epicor ICE Tools User Guide; review the Menu
Item Security section in the Security chapter. You can also
review the Menu Maintenance topics within application
help.

7. The Parent Menu ID defines the folder below which this custom program displays. In this example, you
want the custom program to appear below the Order Management and General Operations folders, so you
enter OMMN3000. Each folder within the Main Menu interface has its own Parent Menu ID.

372 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

8. The Order Sequence field defines the position where the icon for the custom program appears under the
Parent Menu. Low numbers (10, 20, 30) position the custom program near the top of the Parent Menu,
while higher numbers (100, 110) position the custom program near the bottom of the Parent Menu.

9. Verify the Enabled check box is selected. This indicates this menu item displays on the interface. If this check
box is clear, the menu item is hidden and users are not able to launch it.

10. The Program Type list defines what kind of program you are adding to the Main Menu.

Available options:
• BAQ Report - This item is a Business Activity Query (BAQ) report. These reports are built from custom
business activity queries and designed through the Crystal Reports application.
• Course - Educational courses can be embedded in the application in locations accessible to users from
the Main Menu. Select this option to display the Course drop-down list. Indicate the course you want
from the available options; all courses purchased by your organization display on this list. The Icon
drop-down list automatically displays the Education Course icon.
• Crystal Custom Report Link - This item is a custom Crystal Report. Select this option to activate the
Report field; use this field to find and select the customized Crystal Report you want to add to the menu.
• Dashboard-Assembly - Select this option when you are adding an updatable dashboard to the Main
Menu. Updatable dashboards are entry programs that use an updatable business activity query (BAQ).
Users can then add and modify records through this dashboard.

The Epicor ICE Tools User Guide contains information


related to these features. To learn more about creating
dashboards, review the Dashboards chapter. To learn
more about creating BAQ reports, review the BAQ
Report Designer chapter. To find out how to integrate
Epicor Enterprise Performance Management (EPM)
with the Epicor application, review the Dashboard
Utilities chapter. The application help also contains
information about this functionality.

10.0.700 373
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

• Dashboard-Runtime - Select this option when you are adding a read-only dashboard to the Main Menu.
Read-only dashboards are view programs users leverage to search and display database records. Users
cannot add or update records through read-only dashboards.
• External Process - This item is used when you want to place an external application, such as Microsoft®
Excel®, on the Main Menu.
• Menu Item - This item is a program you want to add below a Sub Menu item (folder). After you select
this option, the Program field activates; click the search button to find and select the program you want
to launch from this node. If you want to use a customized version of this program, you can then select
an available customization from the Customization drop-down list.
• Non Menu Item - This item does not directly appear on the Main Menu. Instead, users launch this
program through either a toolbar button or an Actions menu option. You select this program type when
you customize a process program like Memo Entry and need to set up access to this customization.
• Performance Canvas Link - A performance canvas provides a visual display of selected information
from your Epicor database. If the Epicor Enterprise Performance Management (EEPM) application is
installed and active on your system, you can select performance canvases to display on the Main Menu.
• Sub Menu - This item appears directly below a menu item (parent node). These items appear as child
node folders on the menus during run-time; use them to organize programs into related groups. Users
then expand these child nodes to display and launch the items you place below the sub-menu icon.
• SSRS Custom Report Link - This item is a custom SQL Server Reporting Services (SSRS) report. Selecting
this option activates the Report field; use this field to find and select the customized SSRS report you
want to add to the menu.
• URL Link - Select this item to place a uniform resource locator (URL) link to a website as a node on a
menu. Users can then click this icon on the menu to automatically display this website within their
browsers.

11. Click the Icon drop-down list to select the icon that displays next to the custom program. In this example,
you select the Entry > icon.

12. Click the Program button to find and select the program that contains the customization you want. In this
example, you select the Erp.UI.SalesOrderEntry.dll program.

13. Notice the Customization drop-down list becomes active. All the customizations created for this program
display on this list. For this example, you select the NoCounterSalesAltAdv option.

14. If you want to prevent users from entering data in your custom program, select the Read Only check box.
This program then only displays in Read Only mode.

15. Click Save.

16. Exit Menu Maintenance and then close and restart the application.
Your custom program displays with a separate icon on the Main Menu.

Copy Custom Program

You can use Menu Maintenance to duplicate a custom program node and then move this program node to a
different company. Users can then launch the custom program from this new company location.
To do this, you use the Copy to New Menu option on the Actions menu.

374 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

1. On the tree view, select the program node you want to duplicate. In this example, you select the No Counter
Sales customization for Sales Order Entry.

2. Click Actions > Copy to New Menu.

Notice the Copy to Current Company option is also


available. Use this option to copy a menu and all the
program nodes it contains to a location in another
company.

10.0.700 375
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

3. A duplicate Order Entry - No Counter Sales node appears on the tree view. Select the duplicate program
node.

4. Click on the Company drop-down list and select the company under which you want to place the duplicate
program node. You can also select the All option, which causes this custom program to be copied to all
companies in your Epicor application.

5. The Parent Menu ID defines the folder, or menu node, below which this custom program displays.

6. The Order Sequence field defines the position where the icon for the duplicate custom program appears
under the Parent Menu. Low numbers (10, 20, 30) position the custom program near the top of the Parent
Menu, while higher numbers (100, 110) position the duplicate custom program near the bottom of the
Parent Menu.

7. Click Save.

The next time users log into the Epicor ERP application, the duplicate program node displays on the Menu in the
different company below the menu location you specified. Users can now launch this custom program from this
new menu location.

Sub Program Deployment


You use Menu Maintenance to deploy customizations for programs you launch from within other programs such
as Memo Entry, Call Log, and Actions menu programs.
To deploy these customizations, you need to use both Menu Maintenance and Process Calling Maintenance. Run
these programs to make a sub-process program available for either a specific program or for all programs within
your Epicor application.
Through this example, you create a custom version of the Memo Entry form. You then indicate this custom Memo
Entry program only launches from Sales Order Entry.

376 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Create Custom Sub Process


To begin, you first customize a sub-process program. Be sure that Developer Mode is on, and then launch the
program that contains the sub-process program you need to customize.
For this example, you turn on Developer Mode and then launch the No Counter Sales customization of Sales
Order Entry. You now can customize the Memo Entry program.

1. Click the Sales Order button and find and select a record.

2. This activates the Memo button on the Standard toolbar. Click this button.

3. The Process Calling window displays. Notice the Process Key and Calling App values. You need these
values later. In this example, you record the Epicor.Mfg.UI.MemoEntry (Process Key) and the
Epicor.Mfg.UI.SalesOrderEntry (Calling App) values.

4. Click OK.

10.0.700 377
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

5. The Select Customization window displays.

6. To start a new customization, select the Base Only check box.

7. Click OK.

8. The base Memo Entry form displays.

9. To customize the sub-process program, click the Tools > Customization. For this example, you decide to
add a Memo Date field to the Memo Entry form.

To do this, you follow steps similar to those within the


Add a Text Box section from the Basic Customization
chapter. For this example, however, you click the

378 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

DateTimeEditor element on the Toolbox; you then click


and drag to create this Date field on the form.

10. On the Customization Tools Dialog, click Save to record your customization.

11. Exit the Customization Tools Dialog and the Memo Entry program.

12. Exit the Memo Entry program.


You have finished customizing the memo form, so be sure to shut off Developer Mode.

Menu Maintenance
With the customization complete, you next need to create a sub-process menu ID for this custom program.
Similar to creating a menu ID, this ID launches your custom sub-process program from within other programs.
You create sub-process menu IDs through Menu Maintenance.
Menu Path: System Setup > System Maintenance > Menu Maintenance

This program is not available in the Epicor Web Access.

10.0.700 379
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. To create your new sub-process menu ID, click New on the Standard toolbar.

2. Use the Company drop-down list to indicate whether this sub program is available just in the current
company menu or available in all companies. In this example, the custom Menu Entry program is only
available n the EPIC03 company.

3. Enter the Menu ID for the custom sub-process program. This ID must start with the letter UD for user-defined;
these letters appear automatically when you click the New button. For this example, you enter UDMEMO.

4. Enter the Name that you want displayed in the title bar of this sub process program.

5. Click the Security ID button to find and select the level of security for this custom program. Depending on
the security ID you select, you can prevent specific users and user groups from accessing this custom program.
Using Menu Maintenance, you create Security IDs and then assign users and security groups to specific
security IDs.

You can learn how to create new security IDs within the
Epicor ICE Tools User Guide; review the Menu Item
Security section in the Security chapter. You can also
review the Menu Maintenance topics within application
help.

6. The Parent Menu ID field defines the Main Menu identifier used with this sub-process menu ID. Because
your customization is for a common program found throughout the application, you enter PROCESS in this
field.

7. The Order Sequence field defines where this process is placed within any Tree View that displays available
processes. Enter a unique number for this sub-process; in this example, you enter 15. Low numbers (10, 20,
30) position the item towards the top of the Tree View, while higher numbers (100, 110) position the item
closer to the bottom.

380 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

8. By default, the Enabled check box is selected. This indicates users can launch this sub-process from the
program interfaces you indicate. If this check box is clear, the custom sub-process program cannot be
launched.

9. The Program Type defines the kind of program used for this menu ID. To indicate this program is a
sub-process that does not appear on the Main Menu, you select the Menu item option.

10. Click the Program button to find and select the program you have customized. In this example, you locate
the Erp.UI.MemoEntry.dll program.

11. Click the Customization list to select the customization that uses this sub-process ID. In this example, you
select the MemoCustomization (Customization) option.

12. When you finish, click Save.

Process Calling Maintenance


To complete the deployment of a sub-process program, you next must define the process call that launches this
custom program. You activate this call through Process Calling Maintenance.
Menu Path: System Setup > System Maintenance > Process Calling Maintenance

This program is not available in the Epicor Web Access.

To create a new custom process:

1. Click New on the Standard toolbar.

Some child sub process programs are not separate


processes, but are instead run within the same .dll
assembly as the parent program that launches them. These
child programs are embedded sub process programs that
only launch from the parent .dll form. Because of this,

10.0.700 381
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

you must create a “dummy” parent customization that


uses the same name as the customized sub process
program. You can then add this “dummy” parent
customization to the Main Menu, the Manufacturing
Execution System (MES) Menu, and/or the Handheld
Menu. Now that your parent “dummy” customization is
in place, you can point to the child sub process
customization using Process Calling Maintenance.

2. Enter the Called Process Reference value. You need to enter the name of the sub-process you customized.
For this example, you enter the Epicor.Mfg.UI.MemoEntry key. This value first displays within the Process
Calling window. This window is described in the previous Create Custom Sub Process section.

3. In the Called From field, enter the program from which the customized sub-process is launched (process
call). An optional value, enter a process name if you want to limit this custom sub-process program to only
display within a single parent program. This value also displays within the Process Calling window.
You can also leave the Called From field blank; this causes all instances of the Memo Entry program to
automatically display your custom version. If you want the customized sub-process program to become the
default for your company, do not put a value in this field.

4. Click the Menu ID drop-down list to select the sub-process menu ID that this process call uses. This value
is the same identifier (ID) you created within Menu Maintenance. For this example, you select the UDMEMO
identifier.

5. Click Save.

382 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Test the Sub Process Program

1. Navigate to the program that contains the custom subprocess program. For this example, you launch the
Sales Order Entry program – the No Counter Sales version.

2. Open a sales order.

3. Click the Memo Entry button.

4. The custom subprocess program displays contained the added field.

Customization Management

The Customization Management tools are programs you use to administrate the personalizations and
customizations created within your application.

Personalization Purge
You use Personalization Purge when you need to remove specific personalizations from the application. Through
this program, you first locate all the personalizations created by a specific user. You can then remove a
personalization this user no longer wants or remove all personalizations created by this specific user. You might
do this, for example, when an individual leaves your organization.
Menu Path: System Management > Purge/Cleanup Routines > Personalization Purge

This program is not available in the Epicor Web Access.

To use Personalization Purge:

10.0.700 383
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. Click the Search button to find and select the personalizations you want to remove. In this example, all the
personalizations for User: MANAGER are selected.

2. The Company field displays the name of the company record that contains the personalizations.

3. The Product ID field indicates the Epicor application used to create the personalizations.

4. The User field displays the identifier for the user who created the personalizations.

5. The Type Code indicates what kind of personalization was made to the selected item. In this example, the
change was a program Personalization. Other personalization types include MainMenuLayout,
MainMenuHistory, and GlobalOptions.

6. The Last Updated By field indicates the user who most recently updated the personalization, and the Last
Updated field displays the date on which this personalization was most recently modified.

7. The Description field contains any additional information about the personalization.

8. The Form Name field displays the application filename of the modified program. In this example,
App.POEntry.POEntryForm displays, which is the application filename for Purchase Order Entry.

9. To remove the selected personalization, from the Actions menu, select Purge Selected.

10. To remove all the personalizations displayed within this program, from the Actions menu, select Purge All.

Customization/Personalization Maintenance
Customization/Personalization Maintenance is an important tool; use it to manage all the customizations and
personalizations that exist within your application. Its primary feature is the verification functionality you run to
detect problems within any customizations/personalizations.
After you have detected issues, use Customization/Personalization Maintenance to launch to launch the tools
you need to correct them. This maintenance program is especially useful when you upgrade the application to
a new version, as it can help you make customized and personalized programs compatible with the current
version.

384 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Customization/Personalization Maintenance can then be used to upgrade the program. When users attempt to
launch a customized or personalized program that is not compatible, an error message displays. The user then
cannot launch the program. However, if the customized or personalized program is compatible, no error message
displays no error message displays and the user can run the program as expected.

In order to use this program, you must have Security Manager


rights. These rights are assigned within User Maintenance; on
the Security sheet, you select the Security Manager check box.
To learn more, review the Security chapter within the Epicor
ICE Tools User Guide.

This program has additional functionality you use to import/export your customizations and personalizations in
order to make these programs available throughout your organization. You also use this maintenance tool to
delete any customization or personalization. Use this feature when you want to either remove custom program
stages you no longer need or remove personalizations made by employees who are no longer with your company.
Menu Path: System Management > Upgrade/Mass Regeneration > Customization Maintenance

This program is not available in the Epicor Web Access.

Epicor Web Access Customizations


Your Epicor application can display as a Windows form, an Epicor Web Access (Internet browser) form, or an
Epicor Mobile Access form (iPhones and other mobile devices). If you want to display a customization as an
Internet form, it must use C# custom code. Be sure to convert any VB code customizations to C# before you
attempt to deploy and display them as Internet forms. Customization/Personalization Maintenance can help you
identify the customizations you need to change.
Some shareware tools are available to assist you with this conversion. VB code is a more open programming
language, so this original syntax primarily needs to be updated to match the restricted format required by the
C# language. If you only need to display your customizations as a Windows form, your VB code customizations
work as expected and do not need to be modified.

Review, Update, Delete Customizations/Personalizations


To use the primary functions of Customization/Personalization Maintenance:

10.0.700 385
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. To display customizations and personalizations, click the Name button. The Customization/ Personalization
Search program displays. Use this window to find and select the customizations and personalizations you
want to review.

2. Use the Tree View to select the customization/personalization you want to work on.

3. The Description field displays the brief explanation entered by the user when the
personalization/customization was created. If you need, you can update the description in this field.

4. The Form Name field contains the .xml filename of the form customized or personalized. In this example,
the Sales Order Entry program is the base form that was customized, so App.SalesOrderEntry.SalesOrderForm
displays in this field.

5. The Parent Layer displays the code layer above this customization or personalization. This value is set and
managed by the application and displays for your information. For example, if a user personalized a
customization, the name of the customization displays in this field.

6. The Company field displays the name of the company using the customization/personalization.

7. The Product ID indicates the application that was used to create the customization/personalization – for
this example EP (Epicor) displays.

8. The Last Updated By field displays the user how most recently worked on this customized or personalized
program. You can enter a different user name in this field.

9. If you need, select or clear the Work In Progress check box. When selected, this check box indicates the
modification is not available yet in Run Mode for users. You can then keep the personalization or
customization within a test environment.

10. The Type Code field displays the type. The type can be a Personalization or a Customization.

11. The Valid For field indicates for which application version this customization/personalization runs. For
example: 9.05.200

12. The Last Updated field displays the date on which this customization or personalization was last modified.

386 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

13. The Status field indicates the current state of the selected customized or personalized program. Available
options:
• Pass – This customized or personalized program works with the current version. A program must have
the Pass status before users can launch the program in Run Mode. If it doesn’t, an error message displays
and the user cannot launch the program.
• Not Validated – This customization/personalization has not yet been evaluated by the verification tool.
• Warning – Some issues with the elements (controls or properties) on the customized/personalized
program are occurring. You can view these issues on the Warning and Errors sheets; these sheets are
described later in the Verify Customizations section.

14. The Where Used grid indicates all the places that use this customized or personalized program within the
application.

15. Click the Restore button to revert the current customized or personalized program back to its previous
version. Use this button to undo any changes you made to upgrade the customization/personalization.
The Restore button is only available if a backup version exists in the database. The application automatically
creates a backup version of a customization or personalization during an upgrade. However, if the customized
or personalized program has not been upgraded, this button is not available.

16. To record changes to the current customized or personalized program, click Save.

17. If you want to remove the selected customization/personalization, click the Delete button. This customized
or personalized program is now completely removed from the application.

Export Customizations/Personalizations
You can use Customization/Personalization Maintenance to export a selected customized or personalized program
into a folder you select. You can also change the name of the exported file.
Typically you export a customization/personalization into a shared folder so other users can then import it into
their application using Customization/ Personalization Maintenance. Review the next section to learn how to
import a customization or personalization.

The export file uses a special format that can only be imported
within the Customization/Personalization Maintenance
program. You cannot use this format for importing within the
Customization Tools Dialog.

To export a customization:

10.0.700 387
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. From the Actions menu, select Export Customization.

2. The Export Customization window displays.

3. The current customization displays within the Name and Description fields.

4. Optionally, enter a New Name for the exported customization. If you leave this field blank, the exported
file uses the Name value for its filename.

5. Click the Export Filename button to find and select the path and filename you want. You can also enter
the path and the filename directly

6. When you finish, click the Export button. The customization is now available within the selected destination
folder. Other users can now import this customization into their applications.

Import Customizations/Personalizations
You can use Customization/Personalization Maintenance to import a selected customization or personalization
into your application. You can also change the name of the imported file.
You can then use the customization/personalization as you need. You can indicate it is a Work in Process
customization, modify the imported customization, correct issues, and so on.
To import a customization or personalization:

388 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

1. From the Actions menu, select Import Customization.

2. The Import Customization window displays.

3. Click the Import Filename button to find and select the customization or personalization you want to
import.

4. Optionally, enter a New Name for the customized or personalized program. This new name might help
you locate the program later within your application. If you leave this field blank, the imported file uses the
name of the file that was exported. If the Import Customization program finds a file with the same name,
you are asked if you want to copy over the existing file.

5. When selected, the All Companies check box indicates this imported customization/personalization is
available to all companies within your application. If this check box is clear, the imported program is only
available for use within the current company.

6. When you finish, click OK.

The customization/personalization is now added to your application.

Verify Customizations/Personalizations
The key tool in Customization/Personalization Maintenance is the verification functionality. Use this feature to
see if your customized or personalized programs work properly.
This verification tool can review all the custom fields and code within a selected customization/personalization
or a group of customizations and personalizations. After it has finished testing the customized or personalized

10.0.700 389
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

programs, review the Status field on the Detail sheet to see if the program passed its verification. If it did not,
you can view what caused the verification to fail on both the Warnings and Errors sheets.

The validate functionality can unfortunately generate an error


on valid sub-forms (like Memo Entry) attached to a main form.
This can occur because the sub-form was not launched within
the context of a main form, and the validation process cannot
always determine if the sub-form is valid. To correct this issue,
first launch the sub-form normally. If an error is reported,
launch the form in Developer Mode to correct the error. Then
launch the sub-form again in Run Mode to verify that the
changes corrected the error.

Verify a Selected Customization/Personalization


To verify that a selected customization/personalization works properly:

1. Select a customization or personalization from the Tree View.

2. From the Actions menu, select Verify Customization.

3. The customization or personalization is run through the verification process. This process launches the
program in a hidden mode that simulates the process that occurs when a user launches the program during

390 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Run Mode. If the Status field (on the Detail sheet) displays an Error value, click the Compile/Script Errors
sheet.

4. The compile errors for this customization display on the Errors grid.

5. The Level column indicates the severity of each error. If the Error value displays in this column, it indicates
these items must be fixed before the custom code can successfully compile.

6. The Error Code column displays the specific Visual Basic or C# error code number.

7. The Line# column contains the specific line within the code which generated the compile error.

8. The Warning column displays the specific error that occurred.

9. The Record Type column indicates the code type which caused the error.

10. Click the Selected Issue Helper button to display the Customization Data window. Use this window to
correct specific problems with the customization. For more information on this feature, review the Show
Custom Data section later in this chapter.

11. The Warnings sheet displays any elements within the customized or personalized program that did not
validate. These elements are displayed within the Warnings grid.

12. The Control Name field defines the elements within the program that could not be verified.

10.0.700 391
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

13. The Warning field displays why the warning was generated.

14. To remove the element from the program, click its Select check box. To remove multiple elements, choose
multiple Select check boxes.

15. To select all the elements, click the Select All button.

16. Click the Remove Selected Items button. All the elements that you selected are removed from the Warnings
grid.

You can now use the Run, Modify, and Show Custom Data features to help you identify these issues. This
functionality is described later within this section.

Verify a Group of Customizations/Personalizations


You can also verify a group of customizations and personalizations. As described previously, in order to verify a
form, each one is launched in a hidden mode. Just like when you launch a program normally, elements of the
software – .dll and compiled code - remain in memory. If you verify all the personalizations and customizations
at once, your system eventually runs out of memory. So Epicor recommends that you only run this command
against a selected group of customizations and personalizations – like all the forms that start with “A”, then all
that start with “B”, and so on. You must exit and restart your Epicor application to clear the memory between
each run.
To validate a selected group of forms, load in two or more personalizations/customizations:

1. From the Actions menu, select Verify All.

2. To the warning message, click Yes.

392 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

3. The verification process reviews all the selected personalizations and customizations. When complete, you
return to the Customization/ Personalization Maintenance window.

4. Select a customization/personalization you want to review.

5. If the Status field (on the Detail sheet) displays an Error value, click the Compile/Script Errors sheet to
see what elements within the program did not verify.

6. Click the Warnings sheet to review any error messages that may have been generated by the selected
program.

You can now use the Run, Modify, and Show Custom Data features to correct these issues. This functionality is
described in the following sections.

Run and Modify a Customization/Personalization


You can immediately launch a customization/personalization in both Run Mode and Developer Mode. Use these
modes to discover why a selected personalization or customization is not working correctly.

Run a Customization/Personalization
To launch a selected customization or personalization in Run Mode:

10.0.700 393
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

1. Select a personalization or a customization from the Tree View.

2. From the Actions menu, select Run Customization.

3. The program displays in Run Mode.

You can now test the personalization/customization to make sure it works properly.

394 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Modify a Customization/Personalization
To launch a selected customized or personalized program in Developer Mode:

1. Select a customization or personalization from the Tree View.

2. From the Actions menu, select Modify Customization.

3. The Select Customization window displays.

4. Select the customization or personalization you want to modify from the Tree View. In this example, you
select the ADPOSugg2 customization.

10.0.700 395
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

5. Click OK.

6. The customized program displays.

7. Developer Mode is active, so you can display the customization tools for this program. To do this, from
the Tools menu, select Customization.

The customization tools activate and you can work on the customized or personalized program as needed.

Show Custom Data


Run the Show Custom Data option to display all the elements (custom controls and properties) added to the
selected customized or personalized program. This reference tool helps you locate the specific controls and
properties that could not be verified.
You can then run the Modify Customization command to correct these elements.

Review Controls and Properties


Here is how you use this tool:

396 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

1. From the Actions menu, select Show Custom Data.

2. The Customization Data window displays.

3. The Controls sheet lists all the custom controls added to the selected customization. Select a control and
then enter any changes you need in each column.

4. The FormsID column displays the name of the form that contains the control.

5. The ControlName column displays the name of the custom control.

6. The ControlType column defines what kind of control is on the customization or personalization. For
example:
Epicor.Mfg.UI.Framework.EpiBasePanel

10.0.700 397
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

7. To see the custom property elements, click the Properties sheet.

8. The properties display on the Properties grid.

9. The FormsID displays the form that contains the custom property.

10. The ControlName indicates the name of the control that contains the property.

11. The PropertyName field displays the name of the custom property. Notice each control can have several
custom properties.

12. The PropertyValue field displays the specific value defined for the custom property.

13. When you finish updating the control and property values, click the Save Data button.

Fix Custom Code


The Custom Code sheet contains the tools you need to correct syntax errors within your customization code.
Use this tool to locate the errors and enter the correct syntax. You can also use this tool to convert a Visual Basic
customization into a C# customization.
To fix and convert the code:

1. Use the Error Level, Error Code, Line Number, or Error Description fields to find and select the error
you want to correct. Enter the parameters you need and press <Enter>.

398 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

2. The Code section navigates to the code line. Directly enter the code changes you need within the
customization code section.

3. This section contains the same functionality as the Script Editor. If you right-click the code, the context
menu displays with the Script Editor functions. To learn about the features available on this context menu,
review Advanced Customization.

4. You can also add adapter methods to a custom referenced adapter. To do this, select the adapter you need
within the Custom Referenced Adapters list.

5. The list of Available Adapter Methods displays. Select the method you want to add to the custom
referenced adapter.

6. The Method Parameters field displays the available parameters for the method you selected.

7. Older customizations were written in Visual Basic code. You can use this window to convert this Visual Basic
code into C# using the VB To C# Conversion Helper. Click this sheet.

8. To prepare the Visual Basic code for its transformation into C#, click the Prep VB Code button. This button
updates the Visual Basic code to match C# coding conventions.

9. During Step 2 in this process, you return to Customization/Personalization Maintenance and verify the
custom Visual Basic code as previously described. Be sure to correct all compile errors.

10. Return to the Customization Data window and click the Copy VB Code to Clipboard button. You can
then paste this code into a third party C# conversion tool. Use this tool to correct any C# conversion errors.
When you finish using this tool, be sure to save your updated code to the clipboard again.

11. Return to the Customization Data window again. Click the Paste/Prep C# Code button to place this
updated code within the code section (Script Editor).

12. During Step 5, you return to Customization/Personalization Maintenance and verify the custom code
as previously described. Be sure to correct all the C# compile errors.

10.0.700 399
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

13. When you finish, click the Save Data button.

Retriever Combo Conversion


You can also use the Customization Data window to convert missing and current retriever combos into UI combos.
Use this functionality when a retriever combo is no longer available within the Epicor application.

1. Select the retriever combo from the Missing Retriever Combos list. If you want to convert an existing
retriever combo, select it from the Other Retriever Combos list.

2. Use the Available UICombos list to find and select the UI Combo you want to use for the conversion.

3. The UICombo Properties group box displays the main parameters for the selected UI combo.

4. The Convert Retriever Combo to UI Combo section displays the Selected Retriever Combo, Control
Name, and Control Key used by the converted UI Combo. If you need, you can change these values.

5. Click the Convert to UICombo button. The retriever combo becomes a UI combo.

6. Continue to update all of the retriever combos that you need. When you finish, click the Save Data button.

Force Validation
Run the Force Validation feature to immediately validate a selected personalization or customization. This feature
causes Customization/Personalization Maintenance to ignore issues with the selected item, making it available
to users during Run Mode.
This option does not correct issues with the customization or personalization, it only causes the application to
ignore them. Only use this feature as a last resort when you are short on time and need to make the selected
item available. Any customization or personalization that is not valid can cause performance, usability, and other
issues.
To force validate a customization or personalization:

400 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

1. In the Tree View, select a customization or personalization.

2. From the Actions menu, select Force Validation.

3. The Status field updates to display a “Pass” value.

You can now use the selected customization or personalization within the application.

Generate Web Forms


Your customizations can be turned into a format for use within a web browser. Use this functionality when you
want to make your customizations available for display within Epicor Web Access. After you convert the
customizations into a web format, you can then place them on the Main Menu within the Epicor Web Access
environment. The Epicor Web Access environment can display within the Internet Explorer®, Firefox®, and
Safari® browsers. To find out which versions are currently compatible with this functionality, contact your Epicor
consultant.
Before you begin, make sure the current company configuration contains the Web Access Uniform Resource
locator (URL) your company uses for Epicor Web Access.

You can also create customized dashboards that display within


a mobile device such as an iPhone or a Blackberry. This
dashboard functionality is a separate process where you first
create a custom dashboard and then make it available for
display and data entry as a mobile device interface. This
dashboard functionality is described within the Dashboard
Utilities chapter in the Epicor ICE Tools User Guide. Before you
begin, make sure the current company configuration contains
the Web Access Uniform Resource Locator (URL) your company
uses for Epicor Web Access.

10.0.700 401
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

Verify Web Access Uniform Resource Locator


Menu Path: System Setup > Company/Site Maintenance > Company Maintenance

This program is not available in the Epicor Web Access.

1. Navigate to the General Settings sheet.

2. Enter the Web Access URL for your Epicor Web Access environment.

3. Enter the MetaData Output Path. This directory path indicates where metadata generated through the
Epicor Web Access environment is stored. This metadata is required for the Epicor Web Access forms to run
properly.

4. When you finish, click Save on the Standard toolbar.

Generate Web Form


You now can turn your customizations into web forms and place them at this web access URL. To generate web
forms:

402 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

1. Return to Customization/ Personalization Maintenance.

2. Select the customization you want to convert into the web format.

3. From the Actions menu, select Generate Web Form. The customization is converted into the web format.

4. If you want to convert all of the customizations currently loaded into Customization/Personalization
Maintenance, from the Actions menu, select Generate All Web Forms. The current customizations are
now available for use within the Epicor Web Access environment you defined within Company Configuration.

10.0.700 403
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

Verify Form Availability


You can verify whether a form is available for display within Epicor Web Access through Menu Maintenance.
Menu Path: System Setup > System Maintenance > Menu Maintenance

This program is not available in the Epicor Web Access.

1. Navigate to a program within the Tree View. In this example, you navigate to a Sales Order Entry
customization.

2. Check the Web Access status for the form. If the customization is available within Epicor Web Access, the
Available status displays.

Customization Maintenance Log


While you work on the customized or personalized program, Customization/Personalization Maintenance
automatically creates a tracing log. This log tracks all the changes made to the customized or personalized
programs. Use this log to review what you changed within each program.

Display the Log


Use Windows Explorer to locate the customization log files. These log files are organized by client, by version
and then by company in the c:\ProgramData\Epicor folder.
To locate and display the Customization Maintenance Log:

1. Launch Windows Explorer and navigate to the C:\ProgramData\Epicor\<Your Environment>\3.05.0\Log


folder that contains customization log files for your database.

404 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

In this example, you navigate to this directory path:


C:\ProgramData\Epicor\hvw12as09.playground.local-808\3.05.0\Epic-06\Log.

2. Select a Customization Maintenance Log you want to review.

3. The log displays within Notepad. All the changes you made to each customized or personalized program
show within this log.

Clear Application Cache


When the Epicor application launches on client workstations, a number of items automatically load into memory.
As you launch other programs during a session, some of these programs also are loaded into an application cache
to improve performance and track application activity. These items include dashboards, customizations, and the
Customization Maintenance Log described in the previous section.
You can view all the items currently loaded into your application cache to better understand how the Epicor
application is using system resources. If you are troubleshooting a customization, you may also want to clear the
items from the application cache to cleanly launch this custom program again without any previous data. This
can help you identify performance issues with your customizations.

Display the Application Cache


Use Windows Explorer to locate the application cache files. These files are organized by client, by version and
then by company in the c:\ProgramData\Epicor folder.

10.0.700 405
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide

To view the application cache for the Epicor application:

1. Launch Windows Explorer and navigate to the C:\ProgramData\Epicor\<Your


Environment>\3.05.0\Customization\ folder that contains application cache files for your database.
In this example, you navigate to this directory path:
C:\ProgramData\Epicor\hvw12as09.playground.local-808\3.05.0\Epic-06\Customization.

2. Expand the folder for the company you want to view. Various application cache folders, such as CustomDLLs
and Customization, display.

3. Expand one of these folders to see the items that have automatically loaded into the application cache.
Double-click specific files to view the XML code in your browser.

406 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5

Clear the Application Cache


You can remove the items in the application cache at any time. Use this feature to troubleshoot the performance
of a customization or dashboard. You can then re-launch these programs, potentially improving performance.
You will also have cleaner results within the Customization Maintenance Log. You clear the application cache
by using a Main Menu option.
To remove programs from the application cache:

1. In the Settings Menu menu, select Clear Client Cache.

2. You will be asked if you want to clear the client cache; click Yes in this dialog box.

All items loaded into the application cache are now removed. You can now relaunch these items and review the
results within the application cache folders and the Customization Maintenance Log.

10.0.700 407
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

Chapter 6: User-Defined Tables

The application contains customizable tables in the database that expand the functionality of customizations. These
extensions are user-defined tables. Use these tables to create your own entry programs so users can enter data unique
to your organization and/or industry. This data can also display on custom grids you create on customizations.
You do this by first adding these tables directly to the Menu and then by customizing the interface used to enter the
custom data. Each user-defined table can also be linked to another user-defined table. You can then create adapter
combinations that pull data from multiple tables. This user-defined data is then available within other programs
throughout the application.
Two kinds of user-defined tables are available – Standalone User-Defined Tables and Parent/Child User-Defined Tables.

Do not confuse user-defined tables with extended user-defined fields.


Extended user-defined fields are additional columns you add to an
existing table. These columns are contained in an _UD extension on
the existing table. For examples on how to create and use extended
user-defined fields, review the Simple Search Wizard section in the
Advanced Customization chapter and the Parent and Child
EpiRetrieverCombos section later in this chapter.

Standalone User-Defined Tables

Forty standalone user-defined tables are available. These tables are labeled as UD01, UD02, and so on to UD40.
Each table has five primary keys. Each table also has a Retriever Adapter you can use to bind Key 1 to an
EpiRetrieverCombo element. Because of this, you use Key 1 as the primary view for each user-defined table.
The other keys contained within the standalone user-defined table can be used to enter additional primary data.
However if you do not need them, you may hide these keys from view. You can also add other elements to the
standalone form.

EpiRetrieverCombos are custom drop-down lists you can add


to any customized form. You also can create character fields
to display the options from your standalone user-defined tables.
To learn more about EpiRetrieverCombo elements, read the
Toolbox section in the Basic Customization chapter.

Add the User-Defined Table Node


During this example, you customize a standalone user-defined table so users can enter shipping container sizes.
You can then indicate directly on the sales order or any other form the size of the package sent out to the
customer.
You do this by first placing the user-defined table onto the Menu. You make this change using Menu Maintenance.
Menu Path: System Setup > System Maintenance > Menu Maintenance

This program is not available in the Epicor Web Access.

To locate a user-defined table and add it to the Main Menu:

408 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

1. In the Tree View, select the point within the Menu where you want to place your user-defined table. In
this example, you select the Order Management folder and the Setup folder.

2. Click the Down Arrow next to the New button; select New Menu.

3. The fields within the Detail sheet are now available for data entry.

4. Use the Company drop-down list to indicate whether this standalone user defined table just displays on
the current company menu or on all menus in the Epicor application. Through this functionality, you can
define a default version of the user-defined table used throughout all companies, but also create custom
versions of this user-defined table that displays in specific companies.

10.0.700 409
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

5. Enter the Menu ID for the user-defined table. In this example, you enter UD01, for the user-defined table
01.

6. The Module value indicates the licensed module to which this item belongs. Because you are adding a
custom table to the interface, the UD ( User Defined) module must display in this field. This indicates this
custom program is part of the User Defined module functionality.

7. Enter the Name that you want displayed for the user-defined table. In this example, you enter Shipping
Package Size.

8. Select the Security ID you want for this user-defined table. The Security ID indicates the specific users and
user groups that are able to access this user-defined table.

You create security IDs on the Security tab within this


program. To learn how to do this, review the Security
chapter in the Epicor Implementation User Guide; the
Menu Maintenance section describes this functionality.

9. Verify the Parent Menu ID displays the menu under which you want to place this user-defined table. For
this example, you want it placed under the Order Management/Setup folder, so OMMN1000 displays.

10. Enter the Order Sequence value you need. This positions the user-defined table within the current menu’s
items; lower numbers insert the item towards the top, while higher numbers insert this item towards the
bottom. For this example, you enter 32.

11. Notice the Shipping Package Size item now displays after Customer Part Cross Reference on the Tree
View.

12. Vefiry the Enabled check box is selected. This makes the user-defined table visible to users.

13. Click the Program Type drop-down list and select Menu item. This indicates this item displays on the Main
Menu.

410 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

14. Click the Icon drop-down list to indicate the icon that displays next to the user-defined table. Since this
program is a maintenance program, you select the Maintenance icon.

15. To find and select the user-defined table, click the Program button.

Find the User-Defined Table

You next search for the user-defined table you want to add to the interface.

1. All standalone user-defined tables are in the client folder and they begin with the Ice.UI.UD01Entry.dll
file and continue on to the Ice.UI.UD40Entry.dll. Select Erp.UI.UD01Entry.dll.

2. Click Open.

3. The user-defined table now displays within the Program field.

10.0.700 411
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

4. Click Save.

5. Exit Menu Maintenance.

6. The new item does not display immediately on the interface. To display your new item on the Menu, either
log into the application as a different user or close and launch the application again.

Customize a User-Defined Table


To customize the user-defined table so you can enter the data you need:

412 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

1. Click the Home button and the Settings tile. From the General Options group, select the Developer
Mode option.

2. Navigate to Sales Management > Order Management > Setup > Shipping Package Size.

10.0.700 413
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

3. The Select Customization window displays.

4. Click OK to launch the base form.

5. The UD01 Maintenance program displays.

6. To switch to Customization Mode, from the Tools menu, select Customization.

Modify the Interface

You can now use the customization tools to modify the interface as you need.

414 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

1. To change the name of the form, in the Tree View, highlight UD01Form.

2. In the Text property field, enter Shipping Package Size Maintenance.

3. Notice the window titlebar now displays your text value.

4. Repeat these steps to change the main panel text. In the Tree View, select the mainPanel1 node.

5. Within its Text property field, enter Shipping Package Size.

6. Notice the text for the main panel updates with your text value.

7. Customize the form as you need by hiding elements, renaming labels, linking text fields to labels, and
positioning them as you need. You can hide all the key fields except for the Key 1 field; this field is required

10.0.700 415
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

for the table to work correctly. In this example, Key 2, Key 3, Key 4, and Key 5 are hidden and moved off
the Detail panel and the Description field is moved next to the Key 1 field.

Only hide the key fields and move them off the panel, do
not delete them. Deleting the key fields causes database
issues with your user-defined table. To review how to
customize elements on a form, read the Hide, Move, and
Add Elements section in the Basic Customization chapter.

416 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

8. In this example, you rename the Search button to display the Shipping Size... value.

9. You also rename the Key 1 label to display the Shipping Size ID: value.

10. Add text boxes and labels for the Length, Height, Width, and Weight fields; bind these fields to the
ShortChar columns available on the user-defined table. For information on how to add and bind fields,
review the Basic Customization chapter.

Be sure to bind the ShortChar columns to your custom


text boxes as much as possible. These columns store less

10.0.700 417
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

data than the larger Character columns, and require less


system resources to populate values. This improves the
performance of your customization.

11. On the Customization Tools Dialog window, click Save to record your customization. In this example,
you call it ShippingSize.

12. You must indicate this customization is the default version displayed on the Main Menu. Turn off Developer
Mode; launch Menu Maintenance.

13. Use the Tree View to select the Shipping Package Size program.

14. From the Customization drop-down list, select your customization. In this example, you select the
ShippingSize (Customization) option.

15. Click Save to record your changes.

418 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

16. Now all users who have security access to this program can enter data in it. This data is saved in the UD01
table within your database.

Add an EpiRetrieverCombo
The data users enter through your custom maintenance program can be displayed throughout the application.
To complete the implementation of your standalone user-defined table, you must customize other programs to
display this data. You do this by adding an EpiRetrieverCombo, or drop-down list, to a customized program.
To add the Shipping Size drop-down list to the Customer Shipment Entry’s Header sheet:

1. Activate Developer Mode again, then navigate to Material Management > Shipping/Receiving >
General Operations > Customer Shipment Entry

10.0.700 419
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

2. On the Select Customization window, click OK to launch the base form.

3. The Customer Shipment Entry window displays. From the Tools menu, select Customization.

420 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

4. You need to add the EpiRetrieverCombo to the form. On the Customization Tools Dialog window, from
the Tools menu, select Toolbox.

5. You place the newEpiRetrieverCombo within the Packaging group box. First, select the group box’s bottom
handle and make this box larger.

6. In the Toolbox window, select the EpiRetrieverCombo element.

7. To draw the EpiRetrieverCombo element, click and drag over an area within the Packaging group box.

10.0.700 421
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

8. The Select Retriever Combo window displays. It automatically populates with all the retriever combos
available within the application.

9. This window contains a navigation tree. Scroll down through the retriever combos and select the UD01 table.

10. Expand the node and select the UD01Combo.

11. Click OK.

Modify EpiRetriever Combo Properties

You next define some properties on your EpiRetriever combo.

1. Within the Properties tab on the Customization Tools Dialog, notice the (Name) property displays the
retriever combo bound to this drop-down list.

2. The (Type) property displays the filename of the UI adapter for the retriever combo. In this example, the
retriever combo for the UD01Combo displays.

422 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

3. Clear all the text that displays within the Text property field.

4. You next need to create a label for the EpiRetrieverCombo. In the Toolbox window, select the
EpiLabel element.

5. Click and drag over an area near the new EpiRetrieverCombo. The label displays.

6. Enter the Text that you want for this label. For this example, you enter Shipping Size within the Text property.

7. Click Save on the Customization Tools Dialog window.

8. The Customization Save Dialog window displays.

9. Enter the Name for the customization. In this example, you enter ShipSizeCombo.

10.0.700 423
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

10. Enter a Description for the customization. In this example, you enter Shipping Size Combo Box.

11. Click Save.

12. Exit the customization mode and refresh the form by closing and then launching it again. When the Select
Customization and Translation Dialog displays, select the ShipSize customization. The Customer Shipment
Entry form displays with your customization.

13. Load a record within Customer Shipment Entry.

14. You can now click the Shipping Size drop-down list to select an option you entered within the customized
user-defined table.

You have now added the custom Shipping Package Size Maintenance program to the Epicor application.

Parent/Child User-Defined Tables

Eleven parent/child user-defined tables are available. These tables all have the same basic functionality as the
standalone tables, but they contain additional functionality you use to create parent/child data relationships.
Using filenames UD100 to UD110, these user-defined tables are made up of two tables – a Parent table and a
Child table. UD100, for example, has the parent UD100 table and a child table, UD100A. The UD100A table
holds the child data to its parent table. Each parent and child table has five main keys for the data you want
users to enter; however, you can add other elements as you need.

Parent and Child EpiRetrieverCombos


One way you can leverage the parent/child user-defined table is to add Parent and Child EpiRetrieverCombos,
or drop-down lists, to a customized form. These drop-down lists pull data from the parent/child user-defined

424 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

table using this same data relationship; the child EpiRetrieverCombo is dependent on the parent EpiRetrieverCombo.
During Run Mode, when a user selects an option from the parent drop-down list, the child drop-down list then
populates with any child records entered under the parent record.
Through this example, you first add a parent/child user-defined table to the Menu. You then customize it. To
display this parent/child data, you next add two EpiRetrieverCombos to the Releases > Detail tab within Sales
Order Entry. One of these EpiRetrieverCombos is the parent drop-down list and the other the child drop-down
list.

Add a Parent/Child User-Defined Table


You add a parent/child user-defined table in the same way you add a standalone user-defined table. For this
example, you create a maintenance program you can use to enter shipping carrier address information and the
shipping package sizes your company typically uses for each carrier.
You do this by first placing the parent/child user-defined table onto the Menu. You make this change through
Menu Maintenance.
Menu Path: System Setup > System Maintenance > Menu Maintenance

This program is not available in the Epicor Web Access.

To add the parent/child user-defined table to the Menu:

1. In the Tree View, select where you want to place the user-defined table. In this example, you are placing
it within the Order Management>Setup folder.

2. Click the Down Arrow next to the New button and select New Menu.

3. Use the Company drop-down list to indicate whether this parent-child user defined table just displays on
the current company menu or on all menus in the Epicor application. Through this functionality, you can
define a default version of the user-defined table used throughout all companies, but also create custom
versions of this user-defined table that displays in specific companies.

10.0.700 425
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

4. Enter the Menu ID for the user-defined table. For this example, you enter UD100; this indicates the
user-defined table you are customizing.

5. The Module value indicates the licensed module to which this item belongs. Because you are adding a
custom parent-child table to the interface, the UD ( User Defined) module must display in this field. This
indicates this custom program is part of the User Defined module functionality.

6. Enter the Name for the user-defined table. For this example, you enter Carrier Shipping Sizes.

7. Select the Security ID you want for this parent/child user-defined table. The Security ID indicates the specific
users and user groups that are able to access this user-defined table.

You create security IDs on the Security tab within this


program. To learn how to do this, review the Security
chapter in the Epicor Implementation User Guide; the
Menu Maintenance section describes this functionality.

8. Verify the Parent Menu ID displays the menu under which you want to place this user-defined table. In
this example, you want it placed under the Order Management/Setup folder, so OMMN1000 is displayed.

9. Enter the Order Sequence value you need. This positions the user-defined table within the current menu’s
items; lower numbers insert the item towards the top, while higher numbers insert this item towards the
bottom. For this example, you enter 34.

10. Notice the Carrier Shipping Sizes item now displays after FOB on the Tree View.

11. Verify the Enabled check box is selected. This user-defined table is now visible to users.

12. Click the Program Type drop-down list to select Menu item. This indicates that this item displays on the
Main Menu.

13. Click the Icon drop-down list to define the icon that will display next to the user-defined table. Because this
program is a maintenance program, you select the Maintenance icon.

426 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

14. Click the Program button to find and select the user-defined table.

Find the User-Defined Table

You next search for the user-defined table you want to add to the interface.

1. All parent/child user-defined tables are in the client folder and they begin with the Ice.UI.UD100Entry.dll
file and continue on to the Ice.UI.UD110Entry.dll. Select Erp.UI.UD100Entry.dll.

2. Click Open.

3. The user-defined table now displays within the Program field.

4. Click Save.

10.0.700 427
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

5. Exit Menu Maintenance.

6. The new item does not display immediately in the Menu. To display your new item, either log into the
application as a different user or close and launch the application again. To see the new form, navigate to
Sales Management > Order Management > Setup > Carrier Shipping Sizes.

Customize a Parent/Child User-Defined Table


To customize the parent/child user-defined table to display the values you need:

428 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

1. Activate Developer Mode and launch the Carrier Shipping Sizes form. The Select Customization
window displays.

2. Click OK to launch the base form.

3. The UD100 Maintenance program displays.

4. Notice the Detail sheet is identical to the standalone user-defined table; it has four secondary keys, a primary
key (Key 1), and a Description field. You cannot delete Key 1.

10.0.700 429
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

5. The Child > Detail sheet contains five child keys and a Description field.

6. To customize this form, from the Tools menu, select Customization.

7. In this example, Keys 2 – 5 are hidden. Several new text fields are also added; these fields are bound to the
custom Character (longer fields) or ShortChar (shorter fields) columns within the UD100 table.

To review how to customize elements on a form, read


the Hide, Move, and Add Elements section in the Basic
Customization chapter.

430 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

8. The Key1 field cannot be removed. In this example, it is used as the Carrier ID field.

9. Change the text on the Search button to reflect the item searched through this user-defined table. In this
example, you enter the Carrier ID... value.

10. Change the text on the form’s Title Bar and Main Panel title. In this example, you enter Carrier Package
Size Maintenance for both interface items.

Modify the Child Sheet

Now make changes to the child sheet and finish the customization.

1. Click the Child > Detail tab and customize this sheet.

2. For this example, you enter information on each package size you send through each carrier. Hide all the
child keys except ChildKey1 and the Description field. Then enter custom TextBoxes that contain the package’s
Length, Width, Height, and Weight information. Be sure to bind these text boxes to the custom short
character fields (ShortChar01, ShortChar02, and so on) within the UD100A child table.

3. When you Save the customization, the Customization Save Dialog window displays.

10.0.700 431
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

4. Enter the Name for the customization. In this example, you enter CarrierSize.

5. Enter the Description for the customization. In this example, you enter Carrier Package Size.

6. Click Save.

7. Turn off Developer Mode and launch Menu Maintenance.

8. In the Tree View, navigate to the Carrier Shipping Sizes icon.

9. Click the Customization drop-down list to select your customization. In this example, you select the
CarrierSize option.

10. Click Save.

11. To view your custom Carrier Shipping Sizes Maintenance form in Run Mode, close and relaunch the
Epicor application.

432 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

12. Users can enter parent records on the Detail sheet.

13. Each parent record can also have multiple child records. To do this, click the Down Arrow next to the New
button and select New Child.

14. Enter your child record.

Now all users who have security access to this program can enter data in it. This data is saved in the UD100 and
UD100A tables within your database.

Display Parent/Child User-Defined Table Data

Now that you have created a custom maintenance program, you ready to create the Sales Order Entry customization
that displays the parent/child data. During this customization, you will add a parent epiRetrieverCombo and a
child epiRetrieverCombo to the Order Releases sheet.

Create Extended User Defined Table

The parent and child epiRetrieverCombos will need to populate some blank custom fields in your Sales Order
Entry customization. To add these fields, you first add an extended user-defined table to the Order Releases table.
You create extended user defined tables in Extended User Defined Table Maintenance.
Menu Path: System Setup > System Maintenance > Extended UD Table Maintenance

This program is not available in the Epicor Web Access.

10.0.700 433
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

1. Click the New button.

2. The Table Search window displays.

3. You find and select the OrderRel table.

4. Click OK.

5. The tree view now displays a new OrderRel_UD node.

6. For the Description, enter Custom Columns for Parent/Child EpiRetrieverCombos (Carrier Shipping Sizes).

434 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

7. You now can add the custom columns you need to the extended user defined table. Later you will bind
these columns to fields on your customization. Click the New menu and select New Column.

8. Enter the Column name that will display in the column header. For this example, enter CarrierParent.

9. Next for the Description, enter Carrier Parent for UD100. This will help you identify the purpose for the
column later.

10. For the Data type, select String.

11. Now for the Format, enter x(20). This indicates up to twenty characters can display in this field.

12. Click Save.

13. Now repeat these column steps to add the child column. Click the New menu and select New Column.

14. For the Column name, enter CarrierChild.

15. Next for the Description, enter Carrier Child for UD100A.

10.0.700 435
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

16. Once again for the Format, enter x(20).

17. When you finish created these custom columns, click Save.

18. You next must add, or synchronize, these columns to the database. To do this, click Actions > Sync Current
Table to DB. After this process runs, a dialog box displays that indicates the OrderRel_UD table is synchronized
to the database.

19. Close Extended User Defined Table Maintenance.

Your user defined columns are added to the OrderRel table. However to select these columns on your
customization, you need to refresh the database by logging out and back into the Epicor application. After you
relaunch the Epicor application, you can bind custom fields to these columns.

You may also need to refresh the data model for the Epicor
application. This function is run on the server, so you will need
to contact your System Administrator to complete this task.
As of this writing the data model functionality is not needed
to add extended user defined tables, but it may be required in
a future release.

Add the Parent EpiRetrieverCombo


You next add EpiRetrieverCombos that pull in the data users enter from the customized parent/child user-defined
table. To begin, you add the Parent EpiRetrieverCombo. This control is the primary drop-down list. Here’s how
you create this customization:

1. Be sure Developer Mode is active, and then navigate to Sales Order Entry.
Menu Path: Sales Management > Order Management > General Operations > Order Entry

436 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

The CRM menu path is: Customer Relationship Management > Order Management > General Operations
> Order Entry

2. The Select Customization window displays. Click OK to launch the base form.

10.0.700 437
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

3. The Sales Order Entry window displays. From the Tools menu, select Customization.

4. Navigate to the Releases > Detail sheet. You will place the EpiRetrieverCombos in the From group box on
the form.

438 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

5. In the Customization Tools Dialog from the Tools menu, select Toolbox.

6. In the Toolbox window, select the EpiRetrieverCombo element.

7. To place the EpiRetrieverCombo, click an empty space in the From group box.

8. The Select Retriever Combo window displays.

9. Navigate to the UD100 table, expand the node, and select the UD100Combo.

10. Click OK.

10.0.700 439
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

Modify Parent EpiRetrieverCombo Properties

1. On the Properties tab, select the AutoWidthOption you want when this EpiRetrieverCombo’s list is
displayed during Run Mode. In this example, you select ControlWidth. This limits the EpiRetrieverCombo
to the width of the element (in this case 120 pixels).

2. Select the EpiBinding for this EpiRetrieverCombo. Because this element is on the Release > Detail sheet,
you select OrderRel for the table. From this table, you next select the CarrierParent field. This selection
indicates this field is an empty character field you populate directly or through another custom method.

440 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

3. Fine-tune the Size property of the element to dimensions you want. For this example, you enter 120 (pixels)
for the width and 20 (pixels) for the height.

4. Clear the characters within the Text property.

10.0.700 441
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

5. Create a label for the new EpiRetrieverCombo. In the Toolbox window, select the EpiLabel element.

6. Click and drag over an area next to the EpiRetrieverCombo. The label displays.

7. Enter the Text that you want displayed within the label. For this example, you enter Carrier: in the Text
property.

442 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

8. You need to link this label to the EpiRetrieverCombo. In the Tree View, select the EpiRetrieverCombo.
In this example, you select [C]uD100ComboB1.

9. Define the EpiLabel name for the new label. For this example, you enter epiLabelC1.

10. Click Save. For the customization Name, enter CarrierPackage; for the Description, enter Carrier Package
Option.

Add the Child EpiRetrieverCombo


You are now ready to create the Child EpiRetrieverCombo. This control is the child drop-down list; this list’s data
is dependent on the option the user selects on the parent drop-down list.

10.0.700 443
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

1. In the Toolbox window, select the EpiRetrieverCombo element.

2. Click to add a second EpiRetrieverCombo on the form.

3. The Select Retriever Combo window displays.

4. Navigate to the UD100 table, expand the node, and select the UD100Combo.

5. Click OK.

444 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

6. Select the EpiBinding for the child EpiRetrieverCombo. Once again, you select OrderRel for the table.
However, for this control, you select the CarrierChild field. During Run Mode, this drop-down list uses the
CarrierChild field in order to populate data from the UD100A table.

10.0.700 445
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

7. Modify the Text, Size, and AutoWidth properties to the same values you used for the parent
EpiRetrieverCombo – clear the Text property, set the Size property to 120, 20, and set the AutoWidth
Option property to ControlWidth.

446 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

8. You next enter custom code within the Script Editor. To help you keep track of this second
EpiRetrieverCombo, you change its Name property to display ucbCarrierSize.

10.0.700 447
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

9. Finally, you need to add a label for the child EpiRetrieverCombo. To do this, in the Toolbox window, select
the EpiLabel element.

10. Click and drag an area next to the EpiRetrieverCombo; the label displays.

11. Enter the Text you want displayed within the label. For this example, you enter Package Size: for the Text
property.

448 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

12. Now link the child EpiRetrieverCombo to your new label. Select the child EpiRetrieverCombo.

13. On the Properties sheet, click the EpiLabel drop-down list and select your new label.

14. To record all these new elements, click Save.

Add Custom Assemblies

To complete the customization, you must enter the custom code that causes the Child EpiRetrieverCombo to
pull in child table data from the parent record.

10.0.700 449
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

1. Click the Script Editor tab to display the Script Editor code entry sheet.

2. To begin, you first define the UD100Adapter. To do this, you enter the following C# code under the Custom
Module Level Variables section.

The complete custom C# code script is shown at the end


of this section.

// Add Custom Module Level Variables Here **

private Ice.Adapters.UD100Adapter ud100Adapter;

public void InitializeCustomCode()


{
// instantiate and initialize UD100Adapter object
ud100Adapter = new UD100Adapter(oTrans);
ud100Adapter.BOConnect();

3. You now must add the UD100Adapter as a custom assembly. From the Tools menu, select Assembly
Reference Manager.

4. The Custom Assembly Reference Manager displays.

5. Click the Add Custom Reference button.

450 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

6. The Add Assembly Reference window displays.

7. From the Type drop down list, select the Ice Adapters (Ice.Adapters.*.dll) option.

8. Find and select the Ice.Adapters.UD100Adapter.dll file.

9. Click Open.

10. Now select the business object file. From the Type drop-down list, select the All files (*.*) option.

11. Find and select the Ice.Contracts.BO.UD100.dll file.

12. Click Open.

10.0.700 451
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

13. You return to the Custom Assembly Reference Manager. Notice these references display in the Tree View
under the Custom Assemblies folder.

14. Click OK.

Enter the Custom Code

1. Click the Script Editor tab.

2. You now must add a custom C# subroutine that populates the child EpiRetrieverCombo with data from the
100A child table. Here is the code you enter:
private void FillUD100ACombo(string key1)
{
// create hashtable of tableName, where Clause pairs
System.Collections.Hashtable myHash = new System.Collections.Hashtable();
string wClause = "Key1 = '" + key1 + "'";

//MessageBox.Show(wClause)

452 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

// add table name (key), and where Clause (value) to Hashtable


myHash.Add("UD100A", wClause);

// create SearchOptions object


SearchOptions opts = Ice.Lib.Searches.SearchOptions.CreateRuntimeSearch(
myHash, DataSetMode.RowsDataSet);

// call Adapter InvokeSearch() method using SearchOptions


// containing where clause.
ud100Adapter.InvokeSearch(opts);

// place combo code here


// set EpiUltraCombo properties
// value to be saved to the bound field
ucbCarrierSize.ValueMember = "ChildKey1";
ucbCarrierSize.DataSource = ud100Adapter.UD100Data.UD100A;

// value to display in EpiUltraCombo when not dropped down


ucbCarrierSize.DisplayMember = "Character01";

// Columns to Display when dropped down


string[] fields = new String[] { "Character01" };
ucbCarrierSize.SetColumnFilter(fields);
}

3. Add another C# subroutine that causes the child EpiRetrieverCombo to only populate with data contained
under the Parent record. Enter the following code:
private void ucbCarrierSize_BeforeDropDown(object sender,System.ComponentMo
del.CancelEventArgs args)
{
// ** Place Event Handling Code Here **
// get reference to OrderRel EpiDataView object
EpiDataView edvOrderRel = (EpiDataView)oTrans.EpiDataViews["OrderRel"];
// get Key1 value
string Key1 = (string)edvOrderRel.dataView[edvOrderRel.Row]["CarrierParen
t"];

10.0.700 453
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

FillUD100ACombo(Key1);
}

4. To verify no data stays in after the refresh, you enter the following C# code within the DestroyCustomCode
section:
public void DestroyCustomCode()
{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Obje
ct Disposal' lines **
// Begin Wizard Added Object Disposal
ucbCarrierSize.BeforeDropDown -= new System.ComponentModel.CancelEventHan
dler(ucbCarrierSize_BeforeDropDown);

// End Wizard Added Object Disposal

// Begin Custom Code Disposal


ud100Adapter.Dispose();
ud100Adapter = null;

454 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

// End Custom Code Disposal


}

5. Lastly to complete the code, you need to add a form event. Click the Wizards > Form Event Wizard tab.

6. Click the SelectEventType drop-down list and select the Load event.

7. Click the Right Arrow button.

8. Enter the following code within the View/Edit Event Handling Code window:
private void SalesOrderForm_Load(object sender, EventArgs args)
{
// Add Event Handler Code
ucbCarrierSize.ValueMember = "ChildKey1";
ucbCarrierSize.DataSource = ud100Adapter.UD100Data.UD100A;
ucbCarrierSize.DisplayMember = "Character01";

10.0.700 455
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

string[] fields = new string[] { "Character01" };


ucbCarrierSize.SetColumnFilter(fields);
}

9. Click the Update All Event Code button.

10. You are now ready to test your custom code. Return to the Script Editor tab; notice the Output pane
displays.

11. From the Tools menu, select Test Code.

12. If everything is coded correctly, the ** Custom Code Compiled Successfully. ** message displays.

If you have any errors, continue to adjust your code and


then run the Test Code command again. You frequently
use this command to evaluate your custom code.

13. Click Save.

456 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

Test the Customization

1. Close the form and then launch your customized Sales Order Entry form in Run Mode.

2. Navigate to the Releases > Detail sheet. Your Parent and Child drop-down lists are active.

3. You first select a record from the Carrier drop-down list; these options are pulled from the Parent table
within the customized parent/child user-defined table.

10.0.700 457
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

4. This causes the Package Size list to populate with the sizes you entered on the Child table for this Parent
record. Users can now select the size they need on the sales order.

Parent and Child EpiRetrieverCombo Custom Code

The complete C# code for this Parent and Child EpiRetrieverCombo customization is below. You enter this custom
code within the Script Editor.
// **************************************************
// Custom code for SalesOrderForm
// Created: 3/7/2017 10:16:12 AM
// **************************************************
using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using Erp.UI;
using Ice.Lib.Customization;
using Ice.Lib.ExtendedProps;
using Ice.Lib.Framework;
using Ice.Lib.Searches;
using Ice.UI.FormFunctions;
using Ice.Adapters;

public class Script


{
// ** Wizard Insert Location - Do Not Remove 'Begin/End Wizard Added Module Le
vel Variables' Comments! **
// Begin Wizard Added Module Level Variables **

// End Wizard Added Module Level Variables **

458 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6

// Add Custom Module Level Variables Here **

private Ice.Adapters.UD100Adapter ud100Adapter;

public void InitializeCustomCode()


{
// instantiate and initialize UD100Adapter object
ud100Adapter = new UD100Adapter(oTrans);
ud100Adapter.BOConnect();
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Variable
Initialization' lines **
// Begin Wizard Added Variable Initialization
ucbCarrierSize.BeforeDropDown += new System.ComponentModel.CancelEventHandler
(ucbCarrierSize_BeforeDropDown);
// 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 D
isposal' lines **
// Begin Wizard Added Object Disposal
ucbCarrierSize.BeforeDropDown -= new System.ComponentModel.CancelEventHandler
(ucbCarrierSize_BeforeDropDown);

// End Wizard Added Object Disposal

// Begin Custom Code Disposal


ud100Adapter.Dispose();
ud100Adapter = null;
// End Custom Code Disposal
}

private void SalesOrderForm_Load(object sender, EventArgs args)


{
// Add Event Handler Code
ucbCarrierSize.ValueMember = "ChildKey1";
ucbCarrierSize.DataSource = ud100Adapter.UD100Data.UD100A;
ucbCarrierSize.DisplayMember = "Character01";
string[] fields = new string[] { "Character01" };
ucbCarrierSize.SetColumnFilter(fields);
}

private void FillUD100ACombo(string key1)


{
// create hashtable of tableName, where Clause pairs
System.Collections.Hashtable myHash = new System.Collections.Hashtable();
string wClause = "Key1 = '" + key1 + "'";

//MessageBox.Show(wClause)

// add table name (key), and where Clause (value) to Hashtable


myHash.Add("UD100A", wClause);

// create SearchOptions object


SearchOptions opts = Ice.Lib.Searches.SearchOptions.CreateRuntimeSearch(myHa
sh, DataSetMode.RowsDataSet);

// call Adapter InvokeSearch() method using SearchOptions

10.0.700 459
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide

// containing where clause.


ud100Adapter.InvokeSearch(opts);

// place combo code here


// set EpiUltraCombo properties
// value to be saved to the bound field
ucbCarrierSize.ValueMember = "ChildKey1";
ucbCarrierSize.DataSource = ud100Adapter.UD100Data.UD100A;

// value to display in EpiUltraCombo when not dropped down


ucbCarrierSize.DisplayMember = "Character01";

// Columns to Display when dropped down


string[] fields = new String[] { "Character01" };
ucbCarrierSize.SetColumnFilter(fields);
}

private void ucbCarrierSize_BeforeDropDown(object sender,System.ComponentModel


.CancelEventArgs args)
{
// ** Place Event Handling Code Here **
// get reference to OrderRel EpiDataView object
EpiDataView edvOrderRel = (EpiDataView)oTrans.EpiDataViews["OrderRel"];
// get Key1 value
string Key1 = (string)edvOrderRel.dataView[edvOrderRel.Row]["CarrierParent"];

FillUD100ACombo(Key1);
}
}

460 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

Chapter 7: Localization

You can localize the application to display the language, date format, currency symbols, and other cultural attributes
you need. The localization tools consist of three primary features. Language files define the text that displays in labels,
title bars, and messages throughout the interface. Culture codes define the date format, number format, currency
symbols, and so on applicable to specific world cultures. By using these features together, you create unique localizations
you then assign to specific companies and users. All users throughout your international organization can then effectively
use the Epicor application.
To begin, Country Group and Country codes are available within the Epicor application. Primarily used by Epicor partners
creating localizations, these codes are assigned to specific companies. They filter localized programs and items throughout
the application, hiding and displaying programs as needed. You then install the languages on your application server.
You add this language to your server installation through Language Maintenance; the language is deployed to your
client installations and then selected on specific user accounts.
You can further localize specific programs by using the localization layer. Use this functionality to hide, show, or format
the elements you need to localize a specific program. You can also update the text strings within a specific program
through the Translation Utility. Use this tool to translate selected text strings (labels, tabs, messages) within the current
program. Run this functionality to enter regional, localized terms not installed with the imported language file.
When multiple languages are installed, users can change the language that displays during each session. You can also
assign a default language and culture code for a selected user. The language and the culture code can be different
from user to user, so leverage this flexibility to define localizations that best match each member of your international
personnel.

Country Group and Country Codes

To provide an overall localization structure for your Epicor application, Country Group and Country codes
(country/group codes) are implemented across the company nodes on the Main Menu. This licensing feature
defines both the modules and programs that appear on the Main Menu and the items available for use within
each company. These country/group codes are created and maintained by both Epicor and Epicor Partners to
deliver localization solutions specific for your organization. You typically do not have access to these codes, but
you may see them displayed within some administrative programs. This section describes how these codes work.
A Country Group code and a Country code are similar, but these code categories provide flexibility for localizing
the application. A country group code defines an area of the world that has similar legal requirements across all
member countries it contains. For example, the European Union has standard trade laws its member countries
share, and the Epicor application can be localized to reflect these regional trade requirements. However, some
countries within the European Union, such as France, might have additional legal requirements the Epicor
application needs to implement. A country code is then created for France and localizations are specifically set
up for this country. Epicor or an Epicor Partner can then create a localization solution where a company uses
both the European Union country group code and the France country code – displaying the modified programs
and items required for both the European Union country group and the France country localizations.
The Epicor application is set up to filter on these country group and country codes. When a company has a
country group or country code, for example, only programs or menu nodes that either have this country/group
code or do not have a country/group code defined (a null value) display within the company. If a program has a
different country/group code and this code is not defined for display within the company, this program or menu
node does not appear during run time.
Country/group codes are usually hidden, but you will likely see these codes within the Solution Manager. Most
items within the Solution Manager have a CGC Code (Country Group/County Code) column. If a specific item

10.0.700 461
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

is assigned a country/group code, it displays within this column. You can then verify whether the solution will
display in specific companies. For more information on building solutions, review Chapter 9: Solution Management.
If you have a Country Specific Functionality license for a specific code, you can then modify and implement
country/group codes within your application. You could add or remove these country/group codes as you need
on various programs and items. However, Epicor recommends that you rarely use this functionality. Any changes
you make to an existing localization will be overwritten during the next upgrade.

Install Languages

Before you can use multiple languages, you must install each language file onto your application server. This
language file contains the translated text strings for all the programs within the Epicor application. After the
language file is installed onto the server, you can then import it within the server installation through Language
Maintenance.

Purchasing and Installing Language Files


Various languages are available for purchase from Epicor. To find out which languages you can purchase, contact
your Epicor Customer Account Manager (CAM). This person has information on the currently released languages,
as well as any new languages scheduled for release in the future.

For details on purchasing and installing language files, refer to


the Language Translations Installation Guide.

Language Maintenance

Use Language Maintenance to add or update a language to display text in programs, menus, messages, and so
on. You use this program to first set up the various languages you want to display throughout the system. You
can also use it to update and add translations as you need. Because of this, you use Language Maintenance on
your server installation.
Initially, you run this program to add a language. Then, if you receive revised translation strings, you can also use
this program to add selected text string updates.
Menu Path: System Setup > System Maintenance > Language Maintenance

This program is not available in the Epicor Web Access.

462 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

Add a Language

To add a language using Language Maintenance:

1. Click the Language ID button to find and select the language you want. Notice the application contains a
set of default language codes. In this example, you select the sch (Chinese/Simplified) language code.

You can also create your own language records. To do


this, click the New button on the Standard toolbar.

2. The Description field displays an explanation of the language. For this example, Chinese/Simplified displays.

3. Optionally, you can use the Font field to indicate the font for the text reports of this specific language. If
you enter a font in this field, you override the default font typically used for this type of report. In this
example, the field is left blank.

4. Optionally, click the Style drop-down list to indicate what font style you use with this language on text
reports. Available options:
• Regular - The language displays using the typical weight value.
• Bold - The language displays using the darker bold weight value.

5. The Char Width Factor field defines how wide the characters must be to properly display this language on
text reports. A factor value of 1 indicates the characters use the default system width. A factor of 2 indicates
the characters are twice the size of the default system width. For this example, you enter a 2 value; to
properly display the Chinese language, each character must be twice the default size.

6. If you want, select the Installed Languages Only check box. This indicates that only languages you have
installed within the application can be used as a Parent Language. A parent language is the language file
used when the application cannot find a translation for a specific string within the current language.l

7. Click the Parent Language drop-down list to select the parent language file that will display if the application
cannot find the language file. If you select the Installed Languages Only check box, only current languages
installed within your application display on this list. However, if you clear this check box, all available language
codes display.

10.0.700 463
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

8. The Custom Language check box indicates whether the current language has an existing .NET culture:
• If this check box is clear, this language has a pre-existing .NET culture linked with it; this culture displays
in the Culture field
• If this check box is selected, .NET culture is not linked with this language; instead, a user-defined culture
value displays in the
Culture field. This indicates a culture must be selected for each user that requires this language. For more
information about
how to select cultures on specific user accounts, review the User Account Maintenance section later in
this chapter.

9. The Culture field determines the folder on the client that stores the language resources (and text strings);
it also defines the spelling dictionaries used with the selected language. For example, if en-GB displays in
this field for the English/Great Britain language, then en-GB folder contains the language resources and the
en-GB.dict dictionary file is used to check the spelling in this language
In order to work properly, a language must be assigned to the correct culture. To assign a language to the
correct culture, use the Reset Language Cultures option. This feature makes sure each language is linked
to its correct culture code.

10. Click Save.

The Language ID is now added to your application. You now import translations for your selected language.

Import Translations

To import translations for the language into your application:

1. From the Actions menu, select Import Transaction.

464 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

2. The Import Translations window displays.

3. The Language field displays the identifier for the imported translation. In this example, sch displays.

4. The Description field displays the name of the language.

5. Use the Translation File field to enter the path and the filename of the language file you installed. If you
need, click the ... (Ellipse) button to find and select this file. In this example, you select the
Simplified_Chinese.xml file.
This format is useful for customization, as the translated strings are contained within <OriginalText> and
<TranslatedText> .xml tags. This eliminates the need to keep track of a text number identifier when you
need to use the translated string in a customization. If you can, you should always use .xml formatted
languages. To learn how to install a language file onto your system, review the previous Install Languages
section.

6. Select the Overwrite Existing Translations check box as needed to overwrite existing language translations.

7. Select the Delete Obsolete Translations check box as needed to delete obsolete language translations.

8. The Total number of strings field indicates how many text strings are contained in the selected translation
file.

9. Click the Import button. The language begins to pull into your application.

This process takes some time. After you click the Import
button, monitor the process by watching the Processed
strings field. Do not click the Import button multiple times,
as you will cause the program to import the language file
multiple times as well.

10. The Non-imported strings field indicates how many text strings were not imported.

11. The Processed strings field indicates how many text strings are processed and imported so far.

12. When the import process is complete, the Processed strings field value usually equals the Total number of
strings field value. If the count is different, it may indicate that blank lines or errors exist in the import file.
To review these errors, click the Import Log tab.

13. When you finish, click Close.

10.0.700 465
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

The language is now added to your application.

Edit Translations
You can also use Language Maintenance to edit the translations. Use this feature if a text string is not translated
correctly or if a specific text string did not translate.
To edit the translations:

1. Navigate to the Translations > List sheet.

2. Click the Get Translations button.

3. The translations display within the Language Translation List grid.

4. Use this list to review all the translations. You can filter the list by entering values within the Text ID, Original
Text, or Translated Text fields. In this example, the results are filtered to only display translations for the
term “from.”

5. Review the Language Translation List grid and select the text you want to change. In this example, the “From
Date” text string is selected.

466 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

6. Select the Translations > Detail tab.

7. The Original Text displays for your review.

8. The Translated Text field displays the current translation. If you need, update this text.

9. If this text string is used on multiple programs, you can also change the translation for a specific program.
To do this, select the Translations > Program Specific Translations tab.

10. The Original Text ID field displays the identifier for the program’s text string.

11. The Program ID displays the identifier for the program that contains the text string.

12. The Original Text and Translated Text fields display the current translation for this program.

13. If you need, you can enter a different translation in the Program Specific Text field.

14. To change the same text on another program, navigate to the Program Specific Translations > List sheet.

10.0.700 467
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

15. Select the next program text string you want to update on the Translation/Program Cross Reference list.

16. Select the Program Specific Translations >Detail tab once again to update the text.

17. When you finish, click Save on the Standard toolbar.

Enter New Translated Text


When you display all the translated text strings within the Translations sheets, you can then add new translated
text strings. You can then use these translations wherever you need through the customization tools and the
Translation Utility.
To add a new language translation:

1. Click the Down Arrow next to the New button; New Language Translation.

2. The Translations > Detail sheet displays.

3. Enter the Original Text you want to translate.

4. Enter the Translated Text.

5. When you finish, click Save on the Standard toolbar.

This text string is now added to the language.

Enter Program Specific Text


You can also create a new translation string for a specific program. You might use this feature, for example, on
a customized form – as you can then translate text on any new fields, buttons, and other elements you have
added on the customization.
To create a new translation string for a specific program:

468 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

1. Select a specific translation string on the Translations > List sheet.

2. Click the Down Arrow next to the New button; select New Program Specific Translation.

3. The Program Specific Translations > Detail sheet displays.

4. The LanguageID field displays the identifier for the current language.

5. The Original Text ID displays the identifier used for the selected text string.

6. The Program ID displays the .dll filename for the program which contains the selected text string.

7. The Original Text field displays how the text appears within its starting language.

8. The Translated Text field displays the current translation of the text string.

9. Use the Program Specific Text field to enter your revised translation.

10.0.700 469
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

10. Repeat these steps to update the text strings as you need. When you finish, click Save on the Standard
toolbar.

Export a Language
Use Language Maintenance to export the language file out of the application. This feature is useful if you have
updated some translated text strings and want these updated strings used on other server installations within
your organization. You can also export a language to keep a back up copy of any changes you make. This copy
can be placed on a different database.
Here’s how you export a language file:

1. On the Detail sheet, click the Language ID button to find and select the language you want to export.
You can also enter the language ID directly.

2. From the Actions menu, select Export Translations.

3. The Export Translations window displays.

4. The Language and Description fields display the language being exported.

470 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

5. In the Translations File field, click the ... (Ellipse) button to find and select the directory path and filename
you want to use.

6. To limit the file to contain customized translated strings, select the Only customization entries check box.

7. To limit the file to contain translated strings, select the Only translated entries check box.

8. To limit the file to contain strings that are not translated, select the Only untranslated entries check box.

9. To include program references, select the Include program references check box.

10. The ID Range fields can be used to select a range of translation identifiers. To enter a starting ID, select the
check box to the right of the Start field, then enter the starting ID into that field. To enter an ending ID,
select the check box to the right of the End field, then enter the ending ID into that field.

11. When you finish, click OK.

Your file is exported into the new location using the parameters you defined. This file can now be imported into
other server installations. To learn how to do this, review the previous Add a Language section.

Generate Resource Assemblies


When you finish updating the language file, you next must incorporate the translated strings into the Epicor
application. Once you finish this process, users can switch to this language whenever they need. Because this
process creates a new set of resource assemblies, the application essentially just substitutes resources when
languages are changed. This ensures that optimal performance occurs regardless of which language is active.
To run this process:

1. From the Actions menu, select Generate Resource Assemblies.

2. The Language Resource Generation window displays. This window details the progress of the generation.

10.0.700 471
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

This process may take some time. While it runs, however,


you can perform other tasks within your Epicor
application. Return to this window periodically to monitor
how the resource generation is progressing.

3. The Culture fields detail the culture code associated with the language.

4. The Language ID field displays the identifier for the language being generated.

5. The Action field updates throughout the process. It displays the current task being run.

6. The File field indicates the current program for which a resource is generated.

7. As the generation continues, the Progress bar indicates how much is left to generate.

8. If you want to stop the resource generation, click Cancel.

When the resource generation is complete, the language, along with any modified and new translations you
added, is installed within your Epicor application.

Change Language Culture


If you manually create a language ID in Language Maintenance, the Epicor application automatically assigns a
user defined culture code to it. You must use the Change Language Culture selection on the Actions menu to
link it to a specific culture code. Here’s how:

1. In the Language ID field, select the language code for which you are changing the user defined culture
code.

2. From the Actions menu, select Change Language Culture.

472 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

3. The Change Language Culture window displays.

4. In the New Culture field, select the language culture you wish to assign.

5. Click OK.

Now when you load in a language, a culture code is included with the language. If you need, you can change
this culture code on specific user accounts.

Reset Cached Resource Information


Use the Reset Cached Resource Information feature to refresh internal assemblies. These assemblies are not
available for translation, but occasionally they must be rebuilt for a language to correctly load or reload its strings
in the application.
When you run this program, these internal assemblies are deleted. Then the next time you launch Language
Maintenance, log into the Epicor application, or find and select a language file, these assemblies automatically
regenerate.
Make sure you run this option whenever you install or update a language in the Epicor application.

1. Click the Actions menu, and then select Reset Cashed Resource Information.
A window displays that states this option regenerates internal resources. After you click OK, another message
displays indicating these cached resources are deleted. To close this window, click OK again.

You now can return to Language Maintenance and load in a language. You can also close and launch either
Language Maintenance or the Epicor application. The internal resource assemblies generate automatically.
The refreshed assemblies are now synchronized with your current language files.

10.0.700 473
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

Change Languages

You can change the displayed language during a current session. When using the Modern Shell style interface,
you do this using the Change Language command in the Settings Menu. When you use to Classic Style interface,
you do this on the Main Menu through either the Options menu or the Status Bar.

Change Language in Modern Shell Interface


When using the Modern Shell interface, the Settings Menu contains a command you use to change languages.
To change languages:

1. Navigate to the Home Menu.

2. On the Home Menu, click the Settings icon.

474 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

3. The Settings Menu displays.

4. In the General Options pane, select Change Language.

5. The Change Current Language window displays.

6. All languages installed within your application display. Select the language you want. In this example, you
select the Chinese/Simplified option.

7. Click OK.

10.0.700 475
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

8. The application restarts, pulling in the resources you generated through Language Maintenance. The interface
now displays in the selected language.

Change Language in Classic Style Interface


When using the Classic Style interface, the Options menu contains a command you use to change languages.
To change languages:

1. On the Main Menu, from the Options menu, select Change Language.

2. The Change Current Language window displays.

3. All languages installed within your application display. Select the language you want. In this example, you
select the Espanol/Mexico option.

476 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

4. Click OK.

5. The application restarts, pulling in the resources you generated through Language Maintenance. The interface
now displays in the selected language.

Classic Style Status Bar


In the Classic Style interface, you can only use the Status Bar on the bottom of the Main Menu to change languages
as well.

10.0.700 477
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

1. The current language displays as a separate button on the Status Bar. Click this button.

2. The Change Current Language window displays.

3. All languages installed within your application display. Select the language you want. In this example, you
select the Chinese/Simplified option.

4. Click OK.

478 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

5. The application restarts, pulling in the resources you generated through Language Maintenance. The interface
now displays in the selected language.

Localization Layer

Much like you create a program customization that you make available throughout your organization, you can
also create a program localization in the same way. A localization is very similar to a customization. You can hide
and show elements, create new elements, implement custom code, and so on. However, you use localizations
to make to make user experience changes that reflect the needs of a specific culture.
For example, you can hide unnecessary elements and show other required elements. You can also change a field
format to something besides the base formatting or the localized culture code formatting.

Create the Localization Layer


To create a localization:

10.0.700 479
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

1. On the Home Menu, click the Settings icon.

2. The Settings Menu displays.

3. In the General Options pane, select Developer Mode. A check mark appears to the left after you select
it.

480 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

4. Navigate to the program you want to localize. In this example, you need to localize Sales Order Entry, so
you launch this program.

5. The Select Customization window displays.

6. Notice that a Localization node displays within the Available Layers list.

7. You want to localize the form. Select the Base Only check box.

8. Click OK.

10.0.700 481
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

9. The Sales Order Entry window displays. From the File menu, select Customization.

10. The Customization Tools Dialog window displays.

11. If you do not want the one-time shipping location functionality to be available on this localization, in the
Tree View, select lblUseOTS. Change the Visible property to False. In the Text property, enter One Time.

12. From the File menu, select Save Customization As.

482 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

13. The Customization Save Dialog window displays.

14. Click the Type Code drop-down list and select the Localization option.

15. Notice the Name field becomes read-only and displays the name of the form. In this example, SalesOrderForm
displays.

16. Enter a Description for the localization.

17. Click Save.

18. In the Customization Comment window, use the Add/Edit Comments field to enter any additional
information.

19. Click OK.

Use the Localization Layer


Now you can apply the localization to any language you need. You can also export the localization for use in
another server location within your organization. To apply the localization to any language you need:

1. In the Customization Tools Dialog, from the File menu, select Export Customization. Find and select
the directory path inside which you want to place your localization. For more information on exporting

10.0.700 483
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

customizations, review the Export Customization and Import Customization sections within the Basic
Customization chapter.

2. Exit the Customization Tools Dialog and Sales Order Entry.

3. The application returns to the Main Menu. Navigate to the Settings Menu and change the interface to display
the language you need.

484 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

4. Click OK.

5. The Home Menu refreshes and displays the selected language.

6. Select the Settings Menu (Configuracion).

7. On the Settings Menu (Configuracio), activate Developer Mode (Modo de desarrollo) if it is not activated.

10.0.700 485
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

8. On the Main Menu, launch the program. In this example, you launch Sales Order Entry (Ingreso órden de
venta).

9. The Select Customization window displays. Notice the localization now displays under the Localizations
node.

10. If the localization was exported, you can click the Import button to find and select the exported localization.
To help identify the file you need, all exported localizations begin with the “Localization” prefix.

486 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

11. You do not import the localization in this example. Instead, you select the SalesOrderForm localization and
click OK (Aceptar).

12. The localization displays in selected language. Notice for this example, the One-Time check box does not
display on the form.

You can now save this localization as a customization. You can then use Menu Maintenance to add this localized
customization to the Main Menu as either a replacement or an alternate for the original program. To learn how
to do this, review the Menu Maintenance section within Chapter 6: Customization Utilities.

Translation Utility

Use the Translation Utility to manually update program text so it accurately translates into the current language.
If some program text does not initially translate properly, use this tool to enter the correct text strings and update
the interface. When you save your changes and refresh the interface, the translated text appears within the
program.

This tool is only available to users that have translation rights.


To learn how to assign these rights, review the User Account
Maintenance section later in this chapter.

The Translation Utility has three sheets – Missing LangOrg Records, Customization Records, and On-Line Translation
List. Leverage the functionality on these sheets to both locate and modify the text strings you need within the
current program.

10.0.700 487
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

Translation Utility – On-Line Translation List


Use the On-Line Translation List to directly translate specific text strings within the current program. You can use
this feature, for example, to further localize a translated string.
During the following scenario, you want to change a translation within Miscellaneous Shipment Entry (Ingreso
de embarque miscelÁneo). To change a translation:

1. Launch the program. In this example, you launch Miscellaneous Shipment Entry in the Spanish language.

2. From the Tools (Herramientas) menu, select Translation Utility (Utilidad de traducction).

488 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

3. The Translation Utility (Lista de traducciónes en linea) window displays. The On-Line Translation List
(Lista de traducciones en linea) sheet displays by default.

4. The Translation List (Lista de traducción) displays all the translated strings currently used within the program.

5. Scroll through the list to find the text string you want to update. In this example, you select the Pack ID (ID
de empaque) row.

6. Click the Translate (Traducir) button.

7. The On-Line Translation Maintenance (Mantenimiento de traducciones en linea) window displays.

8. The Translation Text (Texto de traducción) field displays the current translation.

9. Enter the Program Specific Translation Text (Texto traducción específico de programa) that you want.
In this example, you enter ID de embalaje for the new translation.

10. If you need, you can click the Arrow buttons to move forward and backward through the text strings. You
can then quickly translate anything else you need.

11. When you finish, click OK (Aceptar).

10.0.700 489
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

12. The updated text string displays within the Translation List (Lista de traducción).

13. To record your changes, click the Save Changes (Guardar cambio) button.

14. When you finish, click the Close (Cerrar) button.

15. The translations do not display automatically. To display your change, from the Tools (Herramientas) menu,
select Refresh Translation (Actualizar traducción).

490 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

16. The form updates and the translation displays according to the changes you made.

Translation Utility – Customization Records


When you create a customization, you add labels and tabs which are not included in the resource file generated
for the original program. You translate these custom elements by using the Customization Records tab. This
sheet functions in the same way as the On-Line Translation List. To use the Customization Records tab:

1. Launch the program. In this example, you launch Sales Order Entry (Ingreso órden de venta).

2. From the Tools (Herramientas) menu, select Translation Utility (Utilidad de traducción).

10.0.700 491
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

3. The Translation Utility (Utilidad de traducción) window displays. Select the Customization Records
(Registros de adaptación) tab.

4. A list of all the custom string elements display on the Translation List (Lista de traducción) grid. You highlight
the row for this text string.

5. Click the Translate (Traducir) button.

6. The On-Line Translation Maintenance (Mantenimiento de traducciones en linea) window displays.

7. The Translation Text (Texto original) field displays the current translation.

8. Enter the Translated Text (Texto traducción) you need.

9. When you finish, click OK (Aceptar).

492 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

10. The updated text string displays within the Translation List (Lista de traducción).

11. To record your changes, click the Save Changes (Guardar cambio) button.

12. When you finish, click the Close (Cerrar) button. As described previously, refresh the translation to display
your changes.

Translation Utility – Missing in Dictionary


If any text strings from the original program are not included with the language file, they display within the
Missing in Dictionary sheet. Use this sheet to review these strings and select the strings you want to add to the
database.
To use this sheet:

1. Click the Missing in Dictionary (Fanta en diccionario) tab.

2. A list of these text strings displays.

3. Select the strings you want to add to the database by clicking the Select (Agregar) check box on each string.

4. Click the Save Changes (Guardar cambio) button.

10.0.700 493
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

5. Click the Close (Cerrar) button.

6. Click the On-Line Translation List (Lista de traducciones en linea) sheet. Scroll through the list until you
locate the added string. In this example, the Pack Slip Currency string is added to this localization.

7. Scroll through the list until you locate the added string. In this example, the Pack Slip Currency string is
added to this localization.
Notice the Text ID (ID texto) contains a negative value. This prevents conflicts with existing Text ID values.

By leveraging the Translation Utility, you can make sure your translated program accurately displays the selected
language.

User Account Maintenance

To complete the localization functionality, you define the language and culture code for each user account. The
language and culture code you select is saved with the user account; each time this user logs in, the application
displays both in this language and culture format.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

Define the User Account Culture Code


As described previously, the culture code defines the interface and data format for a specific world culture. When
you select a culture code for a user account, this specific user views and enters data in the method appropriate
for the selected culture.
To use this functionality:

494 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

1. Click the User ID button to find and select a specific user account.

2. Use the Format Culture drop-down list to select the culture code you want to define for this user. In this
example, you select the German (Germany) option.

3. Click Save on the Standard toolbar.

4. To see this change in action, notice the format displayed in the Date Last Used field. It uses the
Month/Date/Year format.

5. Exit User Account Security Maintenance, log off and then log in again using the credentials for your modified
user account. Launch Purchase Order Entry on the Purchase Management > General Operations
menu.

6. In the PO Number field, select a purchase order.

10.0.700 495
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

7. Notice the PO Date field now uses a Date.Month.Year format.

8. Exit Purchase Order Entry.

9. Culture codes can also change the interface to read and enter data from right to left (instead of left to right).
Use the Format Culture drop-down list in User Account Maintenance and select a culture code that uses
this format. For this example, you select the Arabic (Algeria) culture code.

10. Click Save.

496 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

11. Once again, exit User Account Security Maintenance, log off and then log in again using the credentials for
your modified user account. Launch Purchase Order Entry.

12. Notice how this culture code changes the interface. The title bar text and the Tree View now display on
the right.

13. The Maximize, Minimize, and Close buttons display on the left of the title bar. Since the assigned Arabic
(Algeria) culture code is associated with Arabic, a Right-to-Left language, any text you enter displays from
right to left as well.
The culture code defines the format standards required for localizing a user account for a specific region.
You next select the actual language that this user needs to display on the interface.

Define the User Account Language


To indicate the language this user sees on the Detail sheet:

10.0.700 497
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

1. Click the User ID button to find and select the user you want to update.

2. Click the Language drop-down list, select the language you want this user to see on the application. In
this example, you select the Chinese/Simplified language.

3. Select the Format Culture you need to assign to this user. In this example, you select the Chinese (People’s
Republic of China) culture code.

4. Click Save on the Standard toolbar.

Translation Utility Rights


Lastly, you can also give users permission to launch the Translation Utility. If a user is given these rights, this utility
is located under the Tools menu within each program.
It is recommended you create a separate user account (or accounts) for translation rights. Additional translation
processing is run while each program launches, so these rights slow down performance for normal users.
To assign these rights:

498 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7

1. Select the Options tab.

2. Select the Allow Translation check box.

3. Click Save on the Standard toolbar.

Test the User Account


To test the account to verify it is set up correctly:

1. Launch the application on the client machine. The Log On window displays.

The user account functionality does not translate the Log


On window. You translate the text on this window by
using the Configuration File. Use this file to define various
settings on each client installation. To translate the Log
On window, you enter the language code you need within

10.0.700 499
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide

the Culture Code setting. To learn how to do this, review


the Startup Configurations chapter.

2. The Main Menu displays. In this example, the Espanol/Mexico localization is used.

3. Each program now displays the text using this localization as well.

500 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

Chapter 8: ERP 10 Solution Management

Use the Solution Management module to distribute your new items - custom programs, business objects, new
dashboards, Business Process Management directive groups, user-defined codes, extended properties, and so on - all
at the same time.
Within Solution Workbench, there are two ways of adding items into a solution:
• Tracking your current activity within the ICE environment.
• Adding the existing items into a solution.
To define which items you want to track when building your solution, select an appropriate Solution Type. The Epicor
ERP application comes with a series of delivered solution types, but users can define their custom types using the
Solution Type Maintenance.
A Solution Type is a collection Elements (items) you want to track within the type. The Epicor ERP application comes
with a series of predefined elements, such as BAQs or Dashboards, but users can define their custom elements using
the Element Maintenance.
A user creating an element type should understand the current Epicor database structure, business objects, and
application framework.

User Maintenance

Only specific users have rights to create solutions and install solutions. You give users these rights through User
Account Maintenance.
Navigate to User Account Maintenance.
Menu Path: System Setup > Secutiry Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

10.0.700 501
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

Assign Solution Management Rights

To assign Solution Management rights to a user perform the following steps:

1. Use Detail sheet to find and select the user record you need.

2. Click the Options sheet.

3. Select the Can Create Solutions check box if the user can build a solution in the Solution Workbench
by exporting and packaging objects that are part of the solution into a .cab file.

4. Select the Can Install Solutions check box if this user can install a solution created in Solution Workbench
within another Epicor environment.

5. Click Save on the Standard toolbar.

Solution Element Maintenance

Use the Element Maintenance to create and maintain solution elements.

Solution elements are application items you can track in your


solution.

502 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

Within the Element Maintenance, you can:


• Review existing/delivered elements.
• Create custom elements of your choice.
• Duplicate existing elements.
When creating custom elements, fundamental knowledge of relational database concepts, such as table
relationships, records, and field types as well as understanding the functionality of the current release of the
application is a recommended prerequisite.

Review Solution Elements

Solution elements are application items you can track in your solution. Through Element Maintenance, you
can review delivered elements, create custom elements and duplicate existing ones which you may use as a basis
for custom ones.
Navigate to Element Maintenance.
Menu path: System Management > Solution Management > Solution Element Entry

1. Click Element.... The Search window displays.

2. Now click the Search button. All the current elements display in the Search Results grid.

3. To highlight all the records, click Select All.

4. Click OK.

5. Review the list of all default solution elements delivered by Epicor:

10.0.700 503
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

Element Description Parent Table Business Object


Name
BAQ Tracks Busines Activity Queries (BAQs) created QueryHdr Ice.Contracts.BO.BAQDesigner
or modified through the BAQ Designer.
BAQReport Tracks dynamic reports created or modified BAQReport Ice.Contracts.BO.DynamicReport
through theBAQ Report Designer.
BpDirective Tracks BPM Method Directives created or BpDirective Ice.Contracts.BO.BpMethod
modified through Method Directives
Maintenance, Data Directives Maintenance
and Updatable BAQ Method Directives.
Dashboard Tracks Dashboards created or modified DashBdDef Ice.Contracts.BO.DashBoard
through the Dashboard program.
IPForm Tracks forms invoked by BPM method IPForm Ice.Contracts.BO.InfoPromptForm
directives created in BPM Data Form Designer.
Menu Track Menu Items created or modified through Menu Ice.Contracts.BO.Menu
Menu Maintenance.
Report Tracks Reports created or modified through Report Ice.Contracts.BO.Report
the Report Maintenance.
ReportStyle Tracks Report Style of the Report created or ReportStyle Ice.Contracts.BO.Report
modified through the Report Maintenance.
RptDataDef Tracks report data definitions for custom RptDataDef Ice.Contracts.BO.RptDataDef
reports and duplicate system reports created
or modified using the Report Data
Maintenance.
Security Tracks changes made to the Security business Security Ice.Contracts.BO.Security
object, through processes and programs such
as Menu Maintenance or Customization
Maintenance.
UDCodeType Tracks User-defined Code Types created or UDCodeType Ice.Contracts.BO.UserCodes
modified through User Defined Codes
Maintenance.
XXXDef Tracks changes made to the XXXDef table. XXXDef Ice.Contracts.BO.GenXData
This table holds changes to metadata by the
client, which includes BaseExtension,
Productization, Verticalization, Localization,
Customization and Personalization.
ZBODef Tracks changes made to the zBODef table. ZBODef Ice.Contracts.BO.ZBODef
ZDataSet Tracks changes made to the zDataSet table. ZDataSet Ice.Contracts.BO.ZDataSet
ZDataTable Tracks changes made to the zDataTable table. ZDataTable Ice.Contracts.BO.ZDataTable

504 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

Solution Types Maintenance

Use the Solution Type Maintenance to create and maintain solution types - containers of elements you want to
track in your solution.
Use this program to review existing types or create custom ones by adding elements of your choice. You then
select a solution type within the Solution Workbench . When you start tracking a solution, only the elements
defined in the selected solution type are tracked by the workbench.

Review Solution Types

Solution Types are containers of elements you want to track in your solution. Through the Solution Type
Maintenance, you can review delivered solution types and create custom ones.
Navigate to Solution Type Maintenance.
Menu Path: System Management > Solution Management > Solution Type Entry

1. Click the Solution Type... button. The list of installed solution types display in the Search Results grid.

2. Click Search.

3. Click Select All.

4. Click OK.

5. The following table displays the installed solution types as the list of default solution types and how you can
use them.

10.0.700 505
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

Solution Type Description


ALL Tracks all delivered solution elements defined in the database.
The following is the list of delivered elements:
• BAQ
• BPM Method Devices
• Dashboard
• IPForm
• Menu
• Security
• UDCodeType
• XXXDef
• zBODef
• zDataSet
• zDateTable

<blank> This type does not filter activity by elements. Instead, it tracks an activity of a user in the
ICE environment, which includes performing insert, update and delete operations against
ICE tables.
When you select this type in the Solution Workbench, the Tracked sheet displays
elements based on the performed activity. You can use this information to identify and
create custom elements you would like to track in a solution later.
With this option selected, the Move Tracked To Solution and Add To Solution options
are disabled in the current solution. The information in the Solution Workbench displays
for your information only.

Add a Solution Type

You can also create custom solution types. In this example, you will create a solution type that only tracks the
dashboard solution element.

1. Click the New button.

2. For the Solution Type, enter MySolutionType.

506 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

3. Now in the Description field, enter My Custom Dashboards.

4. Click Save. Next add elements to the custom solution type.

5. Click the Down Arrow next to the New button; select New Solution Type Detail.

6. Click the Element ID button.

7. The Search window displays.

8. Click Search. The Search Results grid displays the list elements you can add to your solution type.

9. Select the Dashboard element.

10. Click OK.

10.0.700 507
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

11. The Dashboard element displays in the grid.

12. Click Save.

13. Exit Solution Type Maintenance.

Solution Workbench

Use the Solution Workbench to create a solution that contains objects you wish to bundle together.
Through this program, you generate a .cab file that contains the files and data for the solution. You then distribute
this file to other Epicor environments. The files you can add to a solution include code projects, configuration
documents, xml files, and so on. Certain files can be 'flagged' so that during installation the user is prompted
where those files should be placed on the destination server when the .cab file is installed.
There are two ways you can add items into a solution:
• Track your activity within the ICE environment.
• Add the existing items into a solution.
Within the Solution Workbench program, you can perform the following activities:
• Create and build a solution.
• Install an existing solution to integrate with the local Epicor application environment.
• Export a solution definition.
• Import an existing solution definition as a base for a new solution.
• Access the Solution Type Entry and Solution Element Entry to review delivered solution types and elements,
or to create new ones, based on your needs.

Use Solution Workbench

Use the Solution Workbench program to create a .cab file which contains objects you wish to bundle together
and distribute to other locations within your organization, from one Epicor application server to another.
Navigate to Solution Workbench.
Menu Path: System Management > Solution Management > Solution Workbench

508 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

1. To create a new solution, click New.

2. In the Solution field, enter MySolution.

3. Now click Solution Type... button. The Search window displays.

4. Click Search to search for and select a type you want to use.

5. The solution types display in the Search Results grid.

6. Select the MySolutionType solution type.

7. Click OK.

10.0.700 509
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

8. For the Description, enter Custom Dashboard and BAQs. This value displays during the installation
process; it gives an overall explanation about what the solution contains.

9. Use the Internal Notes field to enter additional information on the solution. Enter "This solution contains
CustomerList dashboard and BAQ examples." When you build the solution, this text is automatically
converted into a readme.txt file which is bundled with the .cab file. It also displays within a field during
the installation process.

10. Save the solution.

11. Close the Solution Workbench.

Track Your Activity

This workshop demonstrates how to track the activity you want to include in the solution.

To track activity you want to add to a solution, you must log


in with a user account that has Can Track Solution privileges.
You assign these privileges in User Account Security
Maintenance.

Select the Solution Record

You first select the solution record you want to track your activity. The process of selecting a solution varies
depending on which mode you use to run Epicor ERP:

1. When you run the application using the Classic Style , on the Main Menu, select Options > Solution
Tracking.

510 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

2. When you run the application using the Modern Shell Style, on the Home Page, click the Settings tile.

3. From the General Options group, select Solution Tracking.

4. On the Change Current Tracked Solution window, select the MySolution record.

5. Click OK.

While a solution is actively being tracked it is monitoring


the Update, Insert and Delete events the user is doing
within the application or Service Designer. To discontinue
tracking for this user, clear the value in the Solution field.
You can control the solution tracking directly from the
status bar. When running the application using the Classic
Style, navigate to Options > Preferences window and
select the Solution check box on. Click OK to activate
this option.

Create a Custom Dashboard

Navigate to Dashboards.
Menu Path: Executive Analysis > Business Activity Management > General Operations > Dashboard.

10.0.700 511
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

1. In this example, create a custom dashboard that displays the list of customers.

For more information on how to create a dashboard,


review the Dashboards chapter within the ICE 3.0 Tools
Guide.

2. Return to the Solution Workbench.


Menu Path: System Management > Solution Management > Solution Workbench

3. Click on the Tracked sheet. The dashboards you created automatically display in the right grid.
Notice the tracked item has a Selected check box by default; if you do not want to include this item in your
solution, clear its Selected check box. In this example, leave the check box selected.

4. Click Move Tracked to Solution. This will move the selected items you tracked into the solution.

5. To the warning message, click OK.

6. To record your changes to the solution, click Save.

512 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

Add Items to Solution

You can also manually add element to a solution. In this task, you will add an existing BAQ records to the solution.

1. Click the Add To Solution button.

2. The Solution Element Search window displays. From the Available Elements list, select BAQ.

3. Click Search.

10.0.700 513
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

4. The Advanced Element Search window displays.

5. Click Search again to retrieve BAQ records.

6. The available BAQs display in the Search Results grid.

7. In this example, you select several BAQs you want to add to the solution and click OK.

8. The selected Solution Items grid now displays the dashboards and the selected query.

9. Click the Add To Solution button. The Solution Element Search window closes.

10. Click on the Detail > Solution tab. The dashboard and selected BAQs display on the grid.

11. Click Save.

514 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

Build a Solution

You are now ready to build your solution.

• Before you run this command, finish adding the items and
files you want included within your solution.
• Your user account must have the Can Build Solution
privileges enabled in User Account Security Maintenance.

To build a solution:

1. Click on the Actions menu and select Build Solution. The Build Solution window displays.

2. Notice you can define some Settings for the new .cab file:
• Encrypt Source Code - Select this check box to create a secure .cab file. The compiled .cab file solution
then contains encrypted project files, preventing materials and property from being viewable during the
distribution process. Even if the project does not build correctly, the files are encrypted and a user cannot
see the files as unencrypted.
• Create Code Documentation - Select this check box to automatically generate .xml documentation
for the generated assemblies on custom project items.

10.0.700 515
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

• Prompt for CAB File Name and Location - Select this check box to display a directory path window.
User this window to define the path where you want to place the .cable file sand enter the filename to
use for the solution. by default the .cab file is created in the application client directory.

3. For this workshop, select the Prompt for CAB File Name and Location checkbox.

4. Click the Build button.

5. The generation process displays within the Build Output field.

6. Because you prompted for the file location, the Save CAB File window displays. Notice the file is saved in
the //Epicor/ERP10/ERP10.0.XXX/Client directory (where XXX is the current service pack for the Epicor
application).

7. Click Save.

8. When the build is complete, click the Close button.

9. Exit the Solution Workbench.

The .cab file is created and ready to import. This cab file now contains the code, file, and data definitions you
supplied in the definition of the solution. Notice the .cab file name is assembled by placing the filename, type
value, and version number together.

516 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

Install a Solution

You are now ready to install the solution in a different company.


To install a solution:

1. Return to the Menu screen. In this example, switch to another company where you will install the solution.

2. Navigate to the Epicor Distribution, Main Site option.

3. Navigate to the Solution Workbench in this company.


Menu Path: System Management > Solution Management > Solution Workbench

4. Click on the Actions menu and select Install Solution. The Install Solution window displays.

5. Click on the Solution File button to navigate to the folder that contains the generated .cab file. For this
example, navigate to the \\Epicor\ERP10\ERP10.0.100\Client folder.

10.0.700 517
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

6. Select the MySolution_CustomerSolution_3.0.5.0.cab file you previously created.

7. Click Open.

8. In the File Conflicts group box, indicate the method by which you want the Solution Workbench to handle
file conflicts.

The available options include:


• Automatically overwrite duplicate files - Select this radio button option to automatically overwrite
all files that have the same name within the client directory.
• Prompt for each file conflict - Select this radio button option to review each file conflict encountered
during the import process. You can then decide whether to override the conflicting file or leave the file
in its original state.

518 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

9. In this example, select the Automatically overwrite duplicate files radio button option.

10. Now in the Data Conflicts group box, indicate the method by which you want the Solution Workbench to
handle data conflicts. The available options include:
• Automatically overwrite duplicate data - Select this radio button option to automatically overwrite
all the affected data within the client directory.
• Prompt for each data conflict - Select this radio button option to review each data conflict encountered
during the import process. You can then decide whether to override the conflicting data or leave this
data in its original state.

11. For this workshop, select the Automatically overwrite duplicate data radio button option.

12. When you are ready, click the Install button. The installation progress displays within the Installation
Output field.

13. When installation is complete, click the Close button. The solution is installed within this company in the
Epicor application.

For a complete list of the available install options, refer


to the Solution Management topics in the application
help.

Verify the Solution Installed

Now you can verify the items you placed in the solution are available to users in the Epicor Distribution company.

1. In this example, you first verify the custom dashboard has been imported in the Epicor Distribution Company.
To do so, navigate to Dashboard in the Epicor Distribution Company.
Menu Path: Executive Analysis > Business Activity Management > General Operations > Dashboard

This program is not available in the Epicor Web Access.

10.0.700 519
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

2. Click DefinitionID.

3. The Dashboard Search Form window displays.

4. In the Starting At field enter Customer.

5. Verify the CustomerList dashboard has been imported to the Epicor Distribution company.

6. Exit Dashboard.

7. Likewise, verify the BAQs are available for this company. Navigate to the Business Activity Query.
Menu Path: System Management > Business Activity Queries > Business Activity Query

This program is not available in the Epicor Web Access.

520 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8

8. In the BAQ, click the Query ID... button to launch the Business Activity Search Form window.

9. Click Search.

10. Verify the BAQs you added to the solution have been created in Epicor Distribution company.

11. Exit Business Activity Query Designer.

The solution has been successfully installed in Epicor Distribution company.

10.0.700 521
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide

522 10.0.700
Epicor ICE 3.0 Customization User Guide Index

Index
A create favorites groups 71
create the style library 51
activate personalization mode 102 custom code (fix) 398
activate style tracking 49 custom fields 318
event handlers, otrans_ 247 custom fields, custom columns 321
adapters 261 custom fields, synchronize table 322
adapters, what displays 262 custom fields, user-defined table 319
add external shortcuts to the favorites bar 70 custom grid 290
add internal shortcuts to the favorites bar 70 custom grid, event wizard 292
adjust column width 92 custom grid, launch user defined table as child wizard 290
advanced personalization options 101 custom object explorer 252
alternate interfaces, customizing 167 custom object explorer, launch 252
alternate interfaces, launch developer mode 169 custom session options 130
alternate interfaces, mes developer icon 167 custom xml editor 294
application cache (clear) 405, 407 custom xml editor, custom controls 296
application cache (display) 405 custom xml editor, custom properties 297
assembly reference manager 263 custom xml editor, xml view 295
assembly reference manager, how to use 264 customization code wizards 267
assign personalization privileges 101 customization code wizards, launch wizard 268
assign styling rights in user maintenance 14 customization form wizards 182
auto hide sheets 89 customization maintenance log 404
autoload favorites groups 72 customization maintenance log (display) 404
customization management 383
customization rights 118
B customization rights, assign 118
baq zone process 335 customization tools dialog 126
baq zone run mode 340 customization tools dialog, tree view 127
baq zones 335 customization tools dialog, wizards and script editor 128
begin personalization 104 customization/personalization (run, modify) 393
business activity query (create) 335 customization/personalization (verify selected) 390
business logic assembly references wizard 269 customization/personalization maintenance 384
business object method call wizard 286 customizations/personalizations (export) 387
customizations/personalizations (import) 388
customizations/personalizations (review, update, delete) 385
C customizations/personalizations (verify all) 392
customizations/personalizations (verify group) 392
cached resource information (reset) 473 customizations/personalizations (verify) 389
case study – new button theme 51
change column order 92
change language in status bar (classic style) 477 D
change language options menu (classic style) 476
change language settings menu (modern shell) 474 data dictionary viewer 303
change the font type and foreground color 107 data dictionary viewer – field report 305
change the location and size 108 data dictionary viewer – field view 304
change the look of ui roles 24 data dictionary viewer – table view 303
change the tab stop and text 110 data object, epidataview object 260
child epiretrievercombo, add 443 data objects 259
clear application cache 405 data objects, what displays 259
code type as an extended property (add) 330 database viewing tools 302
components in the used by section 35 debug customizations 298
context menu (create) 315 debug customizations, launch debug mode 298
context menu (edit) 312 default theme retrieval 50
context menu (test) 314 define additional options for ui role 30
context menu maintenance 312 define component role settings 53
context menus (deploy new) 317 define overall styles for ui role 31
country group and country codes 461 define ui role settings 54
create a child style filter 39 delete personalizations 116

10.0.700 523
Index Epicor ICE 3.0 Customization User Guide

deployment (add custom program) 371 foreign key view, like property 234
deployment (copy custom program) 374 form event wizard 212
deployment (create custom sub process) 377 form event wizard, available events 215
deployment (menu maintenance) 379 form event wizard, multiple conditions 214
deployment (process calling maintenance) 381 form event wizard, single condition 212
deployment (replace existing program) 371
deployment (sub program) 376
deployment (test the sub process program) 383
G
developer mode 119 general options 75
developer mode, activate 120 generate web forms 401
developer mode, launch 124 generate web forms (verify form availability) 404
developer mode, launch customization tools dialog 125 generate web forms (verify web access uniform resource locator)
developer mode, program customization 125 402
dialogs options 80 global customization tools 311
disable memory caching 124 global options - hot keys 82
docking sheets 85 global options - status bar 82
globally save the styling 58
E grid filters 94
grid settings 131
elements, add 140 grid size 131
elements, hide 134 grid split option 93
elements, hide example 134 grid, add 158
elements, hide, move, and add 134
elements, move 136
elements, move example 136
H
embedded customization (attach the baq zone) 338 hide columns in a grid 112
enable show summaries 98 hot keys options 80
epicor web access customizations 385
epiretrievercombo box, add 154
epiretrievercombo, add 419 I
epiretrievercombo, modify properties 422
event handlers 245 image browser (add images using) 333
event handlers, aftergetbyid() 247 image column wizard 202
event handlers, destroycustomcode() 245 image column wizard, add column 202
event handlers, initializecustomcode() 245 image column wizard, add rule 203
event handlers, retrieve() 246 image column wizard, row rule wizard 206
event handlers, trackerqueryrowchanged() 247 image column wizard, use row rule wizard 207
event sequence for shutdown 248 import a personalization 115
event sequence for startup 248 import resources 22
event wizard 223 import, export, and delete personalizations 114
event wizard, button click event 223
event wizard, grid event 226 L
export a personalization 114
export customizations 165 language (export) 470
export customizations, export the file 165 language culture (change) 472
extended property maintenance 324 language files (purchase) 462
extended property maintenance (attach the baq zone) 337 language maintenance 462
extended property maintenance, select dataset 324 languages (change) 474
extended property maintenance, update properties 325 languages (install) 462
extended property wizard 270 launch style filter manager 38
launch the runtime stylist 18
load style theme 15
F localization layer 479
favorites bar user privileges 68 localization layer (create) 479
field help 306 localization layer (use) 483
filter inheritance priorities 48
floating sheets 87 M
force validation 400
foreign key view 227 main menu deployment 370
foreign key view data, display 230 manage component role settings 32
foreign key view, create 228 manage resources 21
foreign key view, image column 235 manage shared object role settings 34

524 10.0.700
Epicor ICE 3.0 Customization User Guide Index

manage stylesets 20 rule wizard 182


memory caching 73, 124 rule wizard, add condition 182
menu deployment 370 rule wizard, available actions 187
menu maintenance 379 rule wizard, available conditions 184
mfgcustomimages.resources file 332 rule wizard, bitflag action 200
modify a customization/personalization 395 rule wizard, bitflag rule 198
modify child style filter 42 rule wizard, create actions 184
modify components in the used by section 35 rule wizard, cross view rule 188
modify grid properties 112 rule wizard, custom action 194
modify hot-tracked state 59 rule wizard, custom code 197
modify pressed state 60 rule wizard, custom condition 190
modify sheet tab order 84 rule wizard, custom condition rule 191
modify the status bar on the main interface 66 run a customization/personalization 393
moving toolbars 91 runtime stylist 17
runtime stylist – primary controls 19
N
S
new translated text (enter) 468
non-customizable forms 182 save options 162
save options, select 163
save settings on exit 68
P save the style library 61
parent and child epiretrievercombo custom code 458 script editor 236
parent and child epiretrievercombos 424 script editor examples 249
parent and child epiretrievercombos, test customization 457 script editor examples, before/afteradapter method() example
parent child user-defined table, find 427 250
parent child user-defined table, modify child sheet 431 script editor examples, launch a ui application (uiapp) 249
parent epiretrievercombo, add 436 script editor examples, launch search for specified adapter 249
parent epiretrievercombo, create extended user defined table script editor examples, validation test code 249
433 script editor, areas options 242
parent epiretrievercombo, modify properties 440 script editor, control options 243
parent/child epiretrievercombo, custom assemblies 449 script editor, display options 241
parent/child epiretrievercombo, enter code 452 script editor, editing menu 238
parent/child user defined table, display data 433 script editor, general options 244
parent/child user-defined table, add 425 script editor, interface 236
parent/child user-defined table, customize 428 script editor, options 241
parent/child user-defined tables 424 script editor, tabs options 244
personalization options window 75 script editor, test code 239
personalization purge 383 script editor, text options 242
personalize grids 92 select and size the image 56
personalize sheet layouts 84 select customization 121
personalize sheet properties 105 select customization, begin 121
personalize the colors of elements 105 set background image for ui role 25
personalize the main menu interface 62 set border for ui role 27
personalize the program interface 75 set common component properties 32
personalize toolbars 90 set font attributes for ui role 28
preview ui role 30 set foreground image for ui role 29
process calling maintenance 381 set specific component properties 33
program specific text (enter) 468 set specific properties for shared object role settings 35
sheet wizard 216
sheet wizard, add dashboard 219
R sheet wizard, add dashboard wizard 219
sheet wizard, add sheet 217
regenerate data model 323 sheet wizard, finish sheet 222
resource assemblies (generate) 471 show custom code (retriever combo conversion) 400
resource editor 331 show custom data 396
resources 21 show custom data (fix custom code) 398
retriever combo conversion 400 show custom data (force validation) 400
review controls and properties 396 show custom data (review controls and properties) 396
ribbon interface 78 show group by 95
role selection 36 show group by - secondary 97
roles 23 simple search wizard 271

10.0.700 525
Index Epicor ICE 3.0 Customization User Guide

simple search wizard, add controls to form 276 U


simple search wizard, add text fields 280
simple search wizard, add user defined fields 271 ui objects 253
simple search wizard, finish customization 284 ui objects, customscriptmanager object 257
simple search wizard, launch wizard 282 ui objects, epitransaction object (otrans) 255
simple search wizard, regenerate data model 274 ui objects, form object 256
simple search wizard, use the event wizard 279 ui objects, processes calling object 258
snap to grid mode 132 ui objects, session object 256
sort columns 93 ui objects, what displays 253
standalone user-defined table, add 408 use case 342, 344, 345, 347, 349, 352, 356, 358, 359, 362,
standalone user-defined table, customize 412 363, 368
standalone user-defined table, find 411 customer part baq zone 358
standalone user-defined table, modify interface 414 customer part baq zone (create the baq) 359, 362
standalone user-defined tables 408 customer part baq zone (create the customization) 363
string manager 265 customer part baq zone (use the baq zone) 368
string manager, custom strings 265 customer website baq zone 342
string manager, translation utility 267 customer website baq zone (activate the baq zone) 347
style filter management 38 customer website baq zone (attach the baq, extended
style theme loading 15 property method) 344
style tracking 49 customer website baq zone (create baq) 342
styling controls 173 customer website baq zone (personalize the zone indicator)
styling controls, create style 175 345
styling controls, define style 173 part image baq zone 349
styling controls, disable 180 part image baq zone (create customization) 352
suppress save comment dialog, activate 132 part image baq zone (create shortcut key) 356
suppress save comment option 133 part image baq zone (create the baq) 349
part image baq zone (use the baq zone) 358
use role selection tool 36
T use style library 19
text box, add 145 user account (test) 499
text box, add a label 148 user account culture code (define) 494
text box, bind field 146 user account language (define) 497
text box, place field 145 user account maintenance 494
text box, save and view 153 user defined codes maintenance 328
the favorites bar 68 user maintenance 14
the options menu 65 user-defined (ud) table add/edit/delete functionality wizard 288
the view menu 63 user-defined code type (create) 329
toolbox 140 user-defined codes (create) 329
toolbox tour, part one 141
top most mode 130 V
top most mode, disable 131
tracing log 309 verify form availability 404
tracing log (use) 310 view style tracking information 50
translation utility 487 event handlers, 245, 246, 247
translation utility – customization records 491
translation utility – missing in dictionary 493
translation utility – on-line translation list 488
W
translation utility rights 498 web access uniform resource locator (verify) 402
translations (edit) 466 web forms (generate) 401, 402
tree view options 81 web forms (verify form availability) 404
web forms (verify web access uniform resource locator) 402

526 10.0.700
Additional information is available at the Education and
Documentation areas of the EPICweb Customer Portal. To access
this site, you need a Site ID and an EPICweb account. To create an
account, go to http://support.epicor.com.

Вам также может понравиться