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

Epicor ICE 3.

2 Customization User
Guide
10.2.700
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 2020. All rights reserved. Not for distribution or republication. Information in this document
is subject to Epicor license agreement(s).

10.2.700
Revision: October 20, 2020 10:26 a.m.
Total pages: 911
sys.ditaval
Epicor ICE 3.2 Customization User Guide Contents

Contents
Introduction..........................................................................................................................17

Chapter 1: Styling and Themes.......................................................................18


Assign Styling Rights......................................................................................................................................18
Style Theme Loading......................................................................................................................................19
Load Style Theme...................................................................................................................................20
Runtime Stylist...............................................................................................................................................23
Launch the Runtime Stylist......................................................................................................................23
Runtime Stylist – Primary Controls...........................................................................................................25
Use Style Library..............................................................................................................................26
Manage StyleSets............................................................................................................................26
Resources...............................................................................................................................................28
Manage Resources..........................................................................................................................28
Import Resources.............................................................................................................................30
Roles......................................................................................................................................................32
Change the Look of UI Roles...........................................................................................................32
Set Background Image for UI Role...................................................................................................34
Set Border for UI Role......................................................................................................................36
Set Font Attributes for UI Role.........................................................................................................38
Set Foreground Image for UI Role....................................................................................................39
Define Additional Options for UI Role..............................................................................................40
Preview UI Role................................................................................................................................41
Define Overall Styles for UI Role.......................................................................................................42
Manage Component Role Settings..................................................................................................43
Set Common Component Properties...............................................................................................44
Set Specific Component Properties..................................................................................................45
Manage Shared Object Role Settings...............................................................................................46
Set Specific Properties for Shared Object Role Settings.....................................................................47
Components in the Used By Section.......................................................................................................48
Modify Components in the Used By Section....................................................................................48
Role Selection.........................................................................................................................................49
Use Role Selection Tool....................................................................................................................49
Style Filter Management................................................................................................................................51
Launch Style Filter Manager....................................................................................................................51
Create a Child Style Filter........................................................................................................................53
Modify Child Style Filter..........................................................................................................................56
Filter Inheritance Priorities.......................................................................................................................64
Style Tracking................................................................................................................................................65
Activate Style Tracking............................................................................................................................65
View Style Tracking Information..............................................................................................................66

10.2.700 3
Contents Epicor ICE 3.2 Customization User Guide

Theme Maintenance......................................................................................................................................68
Launch Theme Maintenance...................................................................................................................68
Import Theme.........................................................................................................................................70
Import/Export Icon Resources..................................................................................................................74
Import/Export Custom Icons....................................................................................................................77
Manage Themes.....................................................................................................................................80
Export Theme.........................................................................................................................................82
Delete Theme.........................................................................................................................................83
Retrieve Default Theme..................................................................................................................................84
Unload Style Theme................................................................................................................................84
Case Study – New Button Theme...................................................................................................................86
Create the Style Library...........................................................................................................................87
Define Component Role Settings............................................................................................................89
Define UI Role Settings...........................................................................................................................91
Select and Size the Image.......................................................................................................................95
Globally Save the Styling.........................................................................................................................97
Modify Hot-Tracked State.......................................................................................................................98
Modify Pressed State..............................................................................................................................99
Save the Style Library............................................................................................................................100
Import GrayButtons Theme...................................................................................................................102
Set New Theme as Default....................................................................................................................104
View the Theme...................................................................................................................................105
Case Study – Theming By Company.............................................................................................................106
Copy an Existing Theme........................................................................................................................107
Modify The Theme................................................................................................................................111
Modify The Active Style Set...................................................................................................................113
Launch the Runtime Styler.............................................................................................................114
Change The Background Color......................................................................................................117
Override the Custom Theme..........................................................................................................120
Define the Colors..................................................................................................................................121
View Theming By Companies........................................................................................................127
Set Theme as Default............................................................................................................................131

Chapter 2: Personalization............................................................................136
Select Interface Style....................................................................................................................................136
Classic Menu Personalization.......................................................................................................................138
Main Menu...........................................................................................................................................138
The View Menu....................................................................................................................................139
The Options Menu................................................................................................................................142
Preferences (Classic Menu)............................................................................................................143
Save Settings on Exit......................................................................................................................148
The Favorites Bar..................................................................................................................................149
User Privileges...............................................................................................................................149
Add Internal Shortcuts...................................................................................................................151

4 10.2.700
Epicor ICE 3.2 Customization User Guide Contents

Add External Shortcuts..................................................................................................................152


Create Favorites Groups................................................................................................................154
AutoLoad Favorites Groups............................................................................................................156
Memory Caching...........................................................................................................................157
Modern Home Page Personalization.............................................................................................................159
General Options (Modern Shell)............................................................................................................159
Preferences (Modern Shell)............................................................................................................159
Tiles......................................................................................................................................................165
Links..............................................................................................................................................166
Use Add Tile Wizard...............................................................................................................166
Add Link Tile..........................................................................................................................167
Select Tile Design...................................................................................................................172
Define Tile Size.......................................................................................................................177
BAQ Gadget..................................................................................................................................178
Use Add Tile Wizard...............................................................................................................179
Select BAQ.............................................................................................................................181
BAQ Tile Links........................................................................................................................182
BAQ Line Links.......................................................................................................................184
Favorites List..................................................................................................................................185
Use Add Tile Wizard...............................................................................................................185
Add Favorites List Tile.............................................................................................................188
Define Tile Size.......................................................................................................................189
Add Programs........................................................................................................................190
General.........................................................................................................................................192
Use Add Tile Wizard...............................................................................................................192
Add General Tile....................................................................................................................194
Define Tile Size.......................................................................................................................196
Drag and Drop Feature..................................................................................................................197
Edit Tiles........................................................................................................................................199
Add Menu Items............................................................................................................................201
Rearrange Tiles..............................................................................................................................203
Manage Tile Groups.............................................................................................................................204
Add New Tile Group......................................................................................................................205
Rearrange Tile Groups...................................................................................................................207
Edit Tile Group..............................................................................................................................210
Delete Tile Group..........................................................................................................................211
Home Page Layouts..............................................................................................................................212
Assign User Rights.........................................................................................................................212
Create Base Layout........................................................................................................................213
Change Appearance......................................................................................................................215
Favorites List Tile............................................................................................................................218
Add Favorites................................................................................................................................224
Test Layout....................................................................................................................................230
Delete Layout................................................................................................................................236
Export and Import Layouts.............................................................................................................237

10.2.700 5
Contents Epicor ICE 3.2 Customization User Guide

Export Layout.........................................................................................................................237
Import Layout.........................................................................................................................240
Default Layouts.............................................................................................................................246
User Account Layout..............................................................................................................246
Company Layout....................................................................................................................247
Reset Layout..................................................................................................................................248
Save Settings on Exit.............................................................................................................................251
Program Personalization...............................................................................................................................254
Personalization Options........................................................................................................................254
General Options............................................................................................................................255
Ribbon Interface............................................................................................................................258
Hot Keys Options...........................................................................................................................261
Dialogs Options.............................................................................................................................262
Tree View Options.........................................................................................................................264
Global Options - Status Bar............................................................................................................264
Global Options - Hot Keys.............................................................................................................265
Sheet Layouts.......................................................................................................................................267
Modify Sheet Tab Order................................................................................................................267
Docking Sheets..............................................................................................................................269
Floating Sheets..............................................................................................................................274
Auto Hide Sheets...........................................................................................................................275
Toolbars...............................................................................................................................................277
Moving Toolbars............................................................................................................................278
Grids....................................................................................................................................................279
Change Column Order..................................................................................................................279
Adjust Column Width....................................................................................................................280
Grid Split Option...........................................................................................................................281
Sort Columns................................................................................................................................281
Grid Filters.....................................................................................................................................282
Show Group By.............................................................................................................................284
Show Group By - Secondary..........................................................................................................286
Enable Show Summaries................................................................................................................286
Advanced Personalization Options...............................................................................................................290
Assign Personalization Rights................................................................................................................290
Activate Personalization Mode..............................................................................................................292
Begin Personalization............................................................................................................................294
Sheet Properties....................................................................................................................................295
Element Colors..............................................................................................................................295
Change Font Type and Foreground Color......................................................................................299
Change Location and Size.............................................................................................................303
Change Tab Stop and Text............................................................................................................305
Grid Properties......................................................................................................................................309
Hide Columns in a Grid.................................................................................................................309
Import, Export, and Delete Personalizations...........................................................................................311
Export a Personalization.................................................................................................................311

6 10.2.700
Epicor ICE 3.2 Customization User Guide Contents

Import a Personalization................................................................................................................313
Delete Personalizations..................................................................................................................316

Chapter 3: Basic Customization....................................................................318


Assign Customization Rights........................................................................................................................318
Developer Mode..........................................................................................................................................319
Activate Developer Mode......................................................................................................................320
Activation with Modern Home Page..............................................................................................320
Activation with Kinetic Home Page................................................................................................322
Select Customization............................................................................................................................324
Begin Customization.....................................................................................................................324
Launch Developer Mode..............................................................................................................................328
Disable Memory Caching......................................................................................................................328
Disable Memory Caching...............................................................................................................328
Developer Mode...................................................................................................................................329
Launch Customization Tools Dialog...............................................................................................329
Customization Tools Dialog..................................................................................................................331
Tree View......................................................................................................................................331
Wizards and Script Editor...............................................................................................................332
Tools Menu...................................................................................................................................333
Custom Session Options..............................................................................................................................335
Top Most Mode....................................................................................................................................335
Disable Top Most Mode.................................................................................................................335
Grid Settings.........................................................................................................................................336
Grid Size........................................................................................................................................336
Snap to Grid Mode........................................................................................................................337
Suppress Save Comment Dialog............................................................................................................337
Activate the Suppress Save Comment Option................................................................................338
Hide, Move, and Add Elements....................................................................................................................339
Hide Elements.......................................................................................................................................339
Hide Elements – Example...............................................................................................................339
Move Elements.....................................................................................................................................341
Move Elements – Example.............................................................................................................341
Add Elements.......................................................................................................................................345
The Toolbox..................................................................................................................................345
Toolbox Tour - Part One.........................................................................................................347
Toolbox Tour - Part Two.........................................................................................................350
Add a Text Box..............................................................................................................................352
Place Field..............................................................................................................................352
Bind Field...............................................................................................................................353
Add a Label............................................................................................................................354
Save and View the Customization...........................................................................................359
Add an EpiRetrieverCombo Box.....................................................................................................361
Add a Grid....................................................................................................................................367

10.2.700 7
Contents Epicor ICE 3.2 Customization User Guide

Save Options................................................................................................................................................372
Select Save Options..............................................................................................................................372
Export Customizations.................................................................................................................................374
Export the File.......................................................................................................................................374

Chapter 4: Advanced Customization............................................................377


Customizing Alternate Interfaces.................................................................................................................377
Create MES Developer Icon...................................................................................................................377
Launch Developer Mode.......................................................................................................................379
Styling Specific Controls...............................................................................................................................386
Define the Control Style........................................................................................................................387
Create the Control Style.......................................................................................................................389
Disable the Control Style.......................................................................................................................394
Non-Customizable Forms.............................................................................................................................396
Customization Form Wizards.......................................................................................................................397
Rule Wizard..........................................................................................................................................397
Add a Basic Condition...................................................................................................................397
Rule Conditions.............................................................................................................................399
Create Basic Rule Actions..............................................................................................................400
Available Actions...........................................................................................................................402
Cross View Rule.............................................................................................................................403
Create a Custom Condition...........................................................................................................405
Define Rule Action.................................................................................................................406
Create a Custom Rule Action.........................................................................................................411
Enter Custom Code................................................................................................................413
Create a BitFlag Rule.....................................................................................................................415
Define BitFlag Rule Action......................................................................................................416
Image Column Wizard..........................................................................................................................419
Add an Image Column..................................................................................................................419
Add an Image Column Rule...........................................................................................................421
Image Column Row Rule Wizard...................................................................................................424
Use the Wizard.......................................................................................................................425
Test the Image Column..........................................................................................................431
Form Event Wizard...............................................................................................................................434
Single Condition Form Event..........................................................................................................434
Multiple Conditions Form Event.....................................................................................................436
Available Events.............................................................................................................................437
Sheet Wizard........................................................................................................................................438
Add a New Sheet..........................................................................................................................439
Add a Dashboard to a New Sheet..................................................................................................441
Use the Dashboard Wizard.....................................................................................................442
Finish the Sheet......................................................................................................................444
Event Wizard........................................................................................................................................446
Create a Button Click Event...........................................................................................................446

8 10.2.700
Epicor ICE 3.2 Customization User Guide Contents

Add an Event to a Grid..................................................................................................................450


Foreign Key Views........................................................................................................................................451
Create a Foreign Key View....................................................................................................................452
Display Foreign Key View Data..............................................................................................................455
Add a Like Property..............................................................................................................................459
Add an Image Column..........................................................................................................................461
Script Editor.................................................................................................................................................462
Script Editor Interface...........................................................................................................................462
Editing Menu........................................................................................................................................464
Test the Code.......................................................................................................................................465
Script Editor Options.............................................................................................................................467
Display Options.............................................................................................................................467
Areas.....................................................................................................................................468
Text........................................................................................................................................468
Control..................................................................................................................................469
General..................................................................................................................................470
Tabs.......................................................................................................................................471
Event Handlers......................................................................................................................................472
InitializeCustomCode()...................................................................................................................472
DestroyCustomCode()...................................................................................................................472
[ViewName]_BeforeRowChange() Handles EpiDataView.EpiRowChangingEvent event...................472
[ViewName]_AfterRowChange() Handles EpiDataView.EpiRowChanged event...............................472
[Table/ViewName]_BeforeFieldChange() Handles DataTable.ColumnChanging event......................473
[Table/ViewName]_AfterFieldChange() Handles DataTable.ColumnChanged event.........................473
[ViewName]_DataView_ListChanged() Handles DataView.ListChanged event.................................473
Retrieve().......................................................................................................................................473
[FormName]_Load() Called from end of EpiBaseForm_Load()..........................................................473
[FormName]_Closing() Handles EpiBaseForm.Closing()...................................................................473
[ViewName]_EpiViewNotification() Handles....................................................................................474
AfterGetByID()...............................................................................................................................474
oTrans_[AdapterName]_BeforeAdapterMethod()............................................................................474
oTrans_[AdapterName]_AfterAdapterMethod()..............................................................................474
TrackerQueryRowChanged()..........................................................................................................474
Event Sequence for Startup...................................................................................................................475
Event Sequence for Shutdown..............................................................................................................475
Script Editor Examples...........................................................................................................................476
Launch a UI Application (UIApp)....................................................................................................476
Validation Test Code.....................................................................................................................476
Launch Search for Specified Adapter..............................................................................................476
Before/AfterAdapter Method() Example.........................................................................................477
Compile/Script Errors...................................................................................................................................478
Custom Object Explorer...............................................................................................................................479
Launch Custom Object Explorer............................................................................................................479
UI Objects.............................................................................................................................................481
What Displays................................................................................................................................481

10.2.700 9
Contents Epicor ICE 3.2 Customization User Guide

The EpiTransaction Object (oTrans)................................................................................................484


Form Object..................................................................................................................................485
The Session Object........................................................................................................................486
The CustomScriptManager Object.................................................................................................487
Processes Calling Object................................................................................................................488
Data Objects.........................................................................................................................................489
What Displays................................................................................................................................489
EpiDataView Object.......................................................................................................................490
Adapters...............................................................................................................................................493
What Displays................................................................................................................................493
Assembly Reference Manager......................................................................................................................495
Use Assembly Reference Manager........................................................................................................495
The String Manager.....................................................................................................................................497
Create Custom Strings for Translation...................................................................................................497
Strings and the Translation Utility..........................................................................................................499
Customization Code Wizards.......................................................................................................................499
Launch a Wizard...................................................................................................................................499
Business Logic Assembly References Wizard..........................................................................................501
Extended Property Wizard.....................................................................................................................503
Simple Search Wizard...........................................................................................................................504
Add User Defined Fields.................................................................................................................504
Add Custom Column.............................................................................................................506
Regenerate Data Model.................................................................................................................508
Add Controls to Form....................................................................................................................510
Use the Event Wizard....................................................................................................................512
Add Text Fields..............................................................................................................................513
Launch the Simple Search Wizard..................................................................................................516
Finish the Customization...............................................................................................................519
Business Object Method Call Wizard.....................................................................................................521
User-Defined (UD) Table Add/Edit/Delete Functionality Wizard..............................................................525
Custom Grid for Data Entry...........................................................................................................528
Launch the User Defined Table as Child Wizard......................................................................528
Use the Event Wizard.............................................................................................................532
Custom XML Editor......................................................................................................................................536
XML View.............................................................................................................................................536
Custom Controls..................................................................................................................................537
Custom Properties................................................................................................................................539
Debug Customizations.................................................................................................................................540
Launch Debug Mode............................................................................................................................540
Custom Methods and Epicor Functions........................................................................................................544
Create REST Client................................................................................................................................544
Specify Call Context..............................................................................................................................546
Make REST Call.....................................................................................................................................548
Handle Response..................................................................................................................................550
DataSet/TableSet Handling............................................................................................................552

10 10.2.700
Epicor ICE 3.2 Customization User Guide Contents

Error Handling...............................................................................................................................552
Examples..............................................................................................................................................552

Chapter 5: Customization Utilities...............................................................555


Database Viewing Tools...............................................................................................................................555
Data Dictionary Viewer.........................................................................................................................556
Table View....................................................................................................................................556
Field View......................................................................................................................................557
Field Report...................................................................................................................................558
Field Help.............................................................................................................................................560
Tracing Log...........................................................................................................................................564
Activate From User Account..........................................................................................................564
Activate From Client......................................................................................................................566
Select Write Options......................................................................................................................571
Global Customization Tools.........................................................................................................................573
Context Menu Maintenance.................................................................................................................574
Edit a Context Menu.....................................................................................................................574
Test the Context Menu..................................................................................................................577
Create a Context Menu.................................................................................................................578
Deploy New Context Menus..........................................................................................................581
User-Defined Fields...............................................................................................................................582
Create the User-Defined Table.......................................................................................................583
Add User-Defined Columns...........................................................................................................586
Regenerate Data Model.................................................................................................................589
Legacy Columns............................................................................................................................592
Extended Property Maintenance...........................................................................................................592
Select the Dataset..........................................................................................................................592
Update Field Extended Properties...................................................................................................593
User Defined Codes Maintenance.........................................................................................................597
Create a User-Defined Code Type..................................................................................................597
Create User-Defined Codes...........................................................................................................598
Add Code Type as an Extended Property.......................................................................................599
Resource Editor.....................................................................................................................................600
The MfgCustomImages.Resources File...........................................................................................600
Add Images Using the Image Browser............................................................................................602
BAQ Zones...........................................................................................................................................604
The BAQ Zone Process...................................................................................................................604
Create the Business Activity Query..........................................................................................605
Attach the BAQ Zone – Extended Property Maintenance.........................................................607
Attach the BAQ Zone – Embedded Customization..................................................................609
BAQ Zone Run Mode.............................................................................................................612
Use Case: Customer Website BAQ Zone........................................................................................614
Create the BAQ......................................................................................................................614
Attach the BAQ – Extended Property Method.........................................................................617

10.2.700 11
Contents Epicor ICE 3.2 Customization User Guide

Personalize the Zone Indicator................................................................................................619


Activate the BAQ Zone...........................................................................................................622
Use Case: Part Image BAQ Zone....................................................................................................624
Create the BAQ......................................................................................................................624
Create the Customization.......................................................................................................630
Create a Shortcut Key............................................................................................................636
Use the BAQ Zone..................................................................................................................638
Use Case: Customer Part BAQ Zone...............................................................................................639
Create the BAQ......................................................................................................................639
Complete the BAQ.................................................................................................................643
Create the Customization.......................................................................................................645
Use the BAQ Zone..................................................................................................................652
Menu Deployment.......................................................................................................................................655
Main Menu Deployment.......................................................................................................................655
Replace Existing Program...............................................................................................................656
Add Custom Program....................................................................................................................657
Copy Custom Program..................................................................................................................661
Sub Program Deployment.....................................................................................................................662
Create Custom Sub Process...........................................................................................................663
Menu Maintenance.......................................................................................................................666
Process Calling Maintenance.........................................................................................................668
Test the Sub Process Program........................................................................................................669
Customization Management........................................................................................................................670
Progress 4GL Code Migration...............................................................................................................670
Personalization Purge............................................................................................................................671
Customization/Personalization Maintenance.........................................................................................673
Epicor Web Access Customizations................................................................................................673
Review, Update, Delete Customizations/Personalizations................................................................673
Export Customizations/Personalizations..........................................................................................675
Import Customizations/Personalizations.........................................................................................677
Verify Customizations/Personalizations...........................................................................................678
Verify a Selected Customization/Personalization......................................................................678
Verify a Group of Customizations/Personalizations..................................................................680
Run and Modify a Customization/Personalization...........................................................................682
Run a Customization/Personalization......................................................................................682
Modify a Customization/Personalization.................................................................................684
Show Custom Data.......................................................................................................................686
Review Controls and Properties..............................................................................................686
Fix Custom Code....................................................................................................................688
Retriever Combo Conversion..................................................................................................690
Force Validation.............................................................................................................................691
Generate Web Forms.....................................................................................................................693
Verify Web Access Uniform Resource Locator.........................................................................693
Generate Web Form...............................................................................................................694
Verify Form Availability...........................................................................................................696

12 10.2.700
Epicor ICE 3.2 Customization User Guide Contents

Customization Maintenance Log...................................................................................................696


Display the Log.......................................................................................................................697
Clear Application Cache.......................................................................................................................698
Display the Application Cache.......................................................................................................698
Clear the Application Cache..........................................................................................................699

Chapter 6: Delivered User-Defined Tables...................................................701


Standalone User-Defined Tables...................................................................................................................701
Add the User-Defined Table Node.........................................................................................................701
Find the User-Defined Table...........................................................................................................704
Customize a User-Defined Table...........................................................................................................707
Modify the Interface......................................................................................................................711
Add an EpiRetrieverCombo...................................................................................................................717
Modify EpiRetriever Combo Properties...........................................................................................722
Parent/Child User-Defined Tables.................................................................................................................725
Parent and Child EpiRetrieverCombos...................................................................................................725
Add a Parent/Child User-Defined Table..........................................................................................726
Find the User-Defined Table...................................................................................................728
Customize a Parent/Child User-Defined Table................................................................................731
Modify the Child Sheet...........................................................................................................734
Display Parent/Child User-Defined Table Data................................................................................739
Create User Defined Table......................................................................................................739
Regenerate Data Model..........................................................................................................741
Add the Parent EpiRetrieverCombo.........................................................................................744
Add the Child EpiRetrieverCombo..........................................................................................753
Add Custom Assemblies.........................................................................................................760
Enter the Custom Code..........................................................................................................764
Test the Customization..................................................................................................................768
Parent and Child EpiRetrieverCombo Custom Code.......................................................................770
Parent/Child Grids.................................................................................................................................772
Add a Parent/Child User-Defined Table..........................................................................................772
Display User-Defined Table............................................................................................................774
Create Customization....................................................................................................................777
Update Child Detail Sheet..............................................................................................................781
Update Child List Sheet.................................................................................................................788
Save Customization.......................................................................................................................790
Add EpiUltraGrid...........................................................................................................................791
Select Display Columns..................................................................................................................793
Refine Code..................................................................................................................................798
Make Customization the Default...................................................................................................802
Test the Custom Grid....................................................................................................................803

Chapter 7: Localization..................................................................................808
Country Group and Country Codes..............................................................................................................808

10.2.700 13
Contents Epicor ICE 3.2 Customization User Guide

Install Languages.........................................................................................................................................809
Purchasing and Installing Language Files...............................................................................................809
Language Maintenance................................................................................................................................809
Add a Language...................................................................................................................................810
Import Translations........................................................................................................................811
Edit Translations...................................................................................................................................814
Enter New Translated Text....................................................................................................................816
Enter Program Specific Text..................................................................................................................817
Export a Language................................................................................................................................819
Generate Resource Assemblies..............................................................................................................821
Change Language Culture....................................................................................................................822
Reset Cached Resource Information......................................................................................................823
Change Languages......................................................................................................................................824
Change Language in Modern Shell Interface.........................................................................................824
Change Language in Classic Style Interface...........................................................................................828
Classic Style Status Bar..................................................................................................................830
Localization Layer.........................................................................................................................................832
Create the Localization Layer................................................................................................................833
Use the Localization Layer.....................................................................................................................839
Translation Utility.........................................................................................................................................846
On-Line Translation List.........................................................................................................................846
Customization Records.........................................................................................................................852
Missing in Dictionary.............................................................................................................................855
Grid Caption Translations.....................................................................................................................857
User Account Maintenance..........................................................................................................................858
Define the User Account Culture Code.................................................................................................859
Define the User Account Language.......................................................................................................862
Assign Translation Utility Rights............................................................................................................863
Test the User Account...........................................................................................................................864

Chapter 8: Solution Management................................................................867


Assign Solution Management Rights............................................................................................................867
Solution Element Maintenance.....................................................................................................................868
Review Solution Elements.....................................................................................................................869
Solution Types Maintenance........................................................................................................................873
Review Solution Types..........................................................................................................................873
Add a Solution Type.............................................................................................................................875
Solution Workbench....................................................................................................................................878
Start the Solution..................................................................................................................................878
Track Your Activity................................................................................................................................881
Select the Solution Record.............................................................................................................882
Create a Custom Dashboard..........................................................................................................884
Add Items to Solution...........................................................................................................................885
Dependent Items..................................................................................................................................889

14 10.2.700
Epicor ICE 3.2 Customization User Guide Contents

Build a Solution....................................................................................................................................890
Install a Solution...................................................................................................................................892
Install Queries with External Databases..................................................................................................895
Install Queries with Service Connect Workflows....................................................................................897
Verify the Solution Installed..................................................................................................................901

10.2.700 15
Contents Epicor ICE 3.2 Customization User Guide

16 10.2.700
Epicor ICE 3.2 Customization User Guide Introduction |

Introduction

The Epicor ICE 3.2 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 application
and advanced users looking to modify the application interface for their specific needs.
This guide begins by examining the functionality for both styling the look of the interface and personalizing
specific programs by user. Then the customization tools are 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.
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.2.700 17
Chapter 1 | Styling and Themes Epicor ICE 3.2 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.

Assign Styling Rights

Only specific users can access the styling functionality. You give users styling rights through User Account
Maintenance.
To assign styling rights to a user account:

1. Navigate to User Account Security Maintenance.


Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

18 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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

3. Click the Options sheet.

4. Select the Can Maintain Themes check box.

5. 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 Modern Shell interface within the Settings > General Options window or the Classic interface
from the Options > Styling sub-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.

10.2.700 19
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

Load Style Theme


To preview the interface theme:

1. If you use the Modern Shell interface, click Settings > General Options and select the Load Style Theme
option.

2. If you use the Classic interface, click the Options menu and select Styling > Load Style Theme.

20 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

3. The Open window displays.

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

10.2.700 21
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

5. Select the theme you want to use. Notice that all themes use the .isl file extension. In this example, you
select the NightWing.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.

6. Click Open.

7. 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. However if you exit the application, the theme reverts back to the default theme.
If you want a different theme to become the default, run Theme Maintenance. 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. Customized controls can also be set
up to display a specific style; review this functionality within the Advanced Customization 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 Startup Configurations chapter in the
Implementation User Guide.

22 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.
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. If you use the Modern Shell interface, click Settings > General Options and select the Runtime Styler
option.

10.2.700 23
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

2. If you use the Classic interface, click the Options menu and select Styling > Runtime Styler.

24 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

3. 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.

10.2.700 25
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

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.

26 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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)

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.

10.2.700 27
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

28 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

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.

10.2.700 29
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

6. The Select Resources window displays.

30 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

10.2.700 31
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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
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.

32 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

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.

10.2.700 33
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

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.

34 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

10.2.700 35
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

• 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.
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.

36 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

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.

10.2.700 37
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

• 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

38 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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

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.

10.2.700 39
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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

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.

40 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

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.

10.2.700 41
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

42 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

10.2.700 43
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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:

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.

44 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

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.

10.2.700 45
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

46 10.2.700
Epicor ICE 3.2 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.

10.2.700 47
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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:

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.

48 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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:

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

10.2.700 49
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

50 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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:

1. If you use the Modern Shell interface, click Settings > General Options and select the Style Filter
Manager option.

10.2.700 51
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

2. If you use the Classic interface, click the Options menu and select Styling > Style Filter Manager.

52 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

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.

10.2.700 53
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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
you select the Epicor Education option. When users switch to this company, the interface displays using this
child style.

54 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

14. The Save Style Library window displays.

10.2.700 55
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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).

56 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

2. Click the Load button.

3. The Open Style Library window displays.

10.2.700 57
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

58 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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

10.2.700 59
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

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

60 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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

10.2.700 61
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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

62 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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

10.2.700 63
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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

64 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

Spanish filter styling. The only form that does not is Supplier Maintenance, which displays the specific styling you
created through this application style filter.
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.

This feature can only track components in the Classic interface.


You cannot use this option with the Modern Shell interface.

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.

10.2.700 65
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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

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.

66 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

10.2.700 67
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

Theme Maintenance

Use Theme Maintenance to manage all the themes you want available throughout your system. Use this tool to
add, export, and delete themes. You can also select a default theme for all the client installations linked to your
application server.

Launch Theme Maintenance

To launch Theme Maintenance:

1. If you use the Modern Shell interface, click Settings > General Options and select the Theme
Maintenance option.

68 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

2. If you use the Classic interface, click the Options menu and select Styling > Theme Maintenance.

10.2.700 69
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

3. The Theme Maintenance program displays.

You can now use this program to manage your themes and set a default theme for the Epicor application.

Import Theme
To begin using this program, you first import the themes you want to manage into Theme Maintenance. They
can then be loaded into this program.

1. From the Actions menu, select Import Theme Styles.

70 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

2. The Open window displays.

10.2.700 71
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

3. Notice that this window automatically defaults to the Styles folder. If you need, click the drop-down list to
navigate to a different folder.

4. Select the file you want to import. In this example, you select NightWing.isl.

5. Click Open.

6. You return to Theme Maintenance. Click the Name button.

7. The Theme Search program displays.

72 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

8. Click Search.

9. When the Search Results grid, select the theme you want to import.

10. Click OK.

11. The selected theme displays within Theme Maintenance.

10.2.700 73
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

Import/Export Icon Resources

Use the Import Icon Resources option to import an icon resource file available in the database. You then use
these icons with the current theme.
You typically use this option when you create a custom theme and attach a delivered resource icon file to the
theme. Theme styles delivered with the Epicor ERP application come with predefined icon resources.

1. From the Actions menu, select the Import Icon Resources option.

74 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

2. The Open window displays.

10.2.700 75
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

3. Select the file you want to import.

By default, resource files are located in the Client\Res


folder, for example:
• C:\Epicor\ERP10\ERP10.1.500\ClientDeployment\Client\Res

4. Click Open.

5. You are notified the icons were successfully imported. Click OK.

6. You return to Theme Maintenance. Notice the selected icon record displays within the Icon Resources
field.

76 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

7. Click Save.
The resources are now saved with the current theme.

8. You can also export the icon resources file attached to the current theme. From the Actions menu, select
Export Icon Resources.

9. The Save As window displays.

10. Navigate to the folder where you want to place the resources file.

11. Enter a File name for the exported file.

12. Click Save.

The icon resources file is exported into the selected folder. Other users can now import it into their applications
using Theme Maintenance.

Import/Export Custom Icons

Use the Import Custom Icon Resources option to overlay selected theme icons.
When you select a custom icon resource for a theme, the previously selected icon set selected for the theme is
suppressed (does not display).

1. From the Actions menu, select the Import Custom Icon Resources option.

10.2.700 77
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

2. The Open window displays.

78 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

3. Select the file you want to import.

By default, resource files are located in the Client\Res


folder, for example:
• C:\Epicor\ERP10\ERP10.1.500\ClientDeployment\Client\Res

4. Click Open.

5. You are notified the icons were successfully imported. Click OK.

6. You return to Theme Maintenance. The selected record displays within the Custom Icons field.

10.2.700 79
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

7. Click Save.
A custom icon resource file now takes precedence and defines the Epicor ERP icons.

8. You can also export the icon resources file attached to the current theme. From the Actions menu, select
Export Custom Icon Resources.

9. The Save As window displays.

10. Navigate to the folder where you want to place the resources file.

11. Enter a File name for the exported file.

12. Click Save.

The custom icon resources file is exported into the selected folder. Other users can now import it into their
applications using Theme Maintenance.

Manage Themes

Theme Maintenance contains several options you can use to manage your themes.
These options display on the Detail sheet:

1. The Name field displays the filename for the selected .isl file.

80 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

2. The Description field displays the brief explanation of the selected theme. If you want, you can enter a
different description in this field.

3. To make this theme available to all your client applications, select the Distributable check box. This theme
is then automatically downloaded to all client machines within your system.
If users set up their Configuration Files to use specific server themes, the corresponding theme is
automatically loaded when the user logs into the client application. They do this by defining the
Style parameter within the Configuration File. Any changes made on the server to these themes (through
the Runtime Stylist) then automatically update the corresponding files on all client applications.
Likewise, if any customized program is set up to use a specific server theme, the corresponding theme is
automatically loaded when a user launches the customization. As previously described, any changes made
on the server to these themes (through the Runtime Stylist) automatically update on all client applications.

For more information about the Style parameter within


the Configuration File, review the Startup Configurations
chapter in the Implementation User Guide. For more
information about the styling override options on a
customized control, review the Advanced Customization
chapter in this user guide.

4. Select the Default check box to indicate the current theme will be the default theme for the application.
When users log into the Epicor application, this theme then displays and is considered the primary, default
theme for the application.

5. If the current theme is the application default, the Default Theme icon displays.

10.2.700 81
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

6. The Imported Resources section displays details on any theme resources you have imported into the
application. The Theme ISL displays the name of the imported Infragistics Theme Style (.isl).

7. The Icon Resources displays the name of the icon set attached to the current theme.

8. The Custom Icons displays the name of any customized icons that you may have imported with the selected
theme.

9. The Last Updated By field displays the identifier of the user who previously updated the theme.

10. The Last Updated field displays the date on which the theme was last modified.

11. To record your changes to the theme, click Save.

If you indicated this theme is the Default theme, the next time users log into the Epicor application this theme
displays.

Export Theme
If you have created a theme that you want to make available throughout your organization, you can export it
into a folder you select.
To export a theme into a folder:

1. From the Actions menu, select Export Theme Styles.

2. The Save As window displays.

82 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

3. Notice that this window automatically defaults to the Styles folder. If you need, click the drop-down list to
navigate to a different folder.

4. Enter a File name for the exported theme.

5. When you finish, click Save.

The theme .isl file is exported into the new folder. Another user can now import it into their application using
Theme Maintenance.

Delete Theme
You can also use Theme Maintenance to remove themes from your application. A deleted theme is no longer
available to the client installations linked to your server. To delete a theme:

1. Click the Name... button to find and select the theme you wish to remove.

10.2.700 83
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

2. Click the Delete button. When asked if you want to delete the record, click Yes.

The theme is removed from the Epicor application.

Retrieve Default Theme

You can restore the original default theme by using the Unload Style Theme option. All areas within the interface
then automatically return to the default styling defined for the application.

Unload Style Theme

To retrieve the current default theme:

1. If you use the Modern Shell interface, click Settings > General Options and select the Unload Style
Theme option.

84 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

2. If you use the Classic interface, click the Options menu and select Styling > Unload Style Theme.

10.2.700 85
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

The interface changes back to display the default theme.

Case Study – New Button Theme

This section guides you through 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
will 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 this theme becomes the default for your client installation.
To create button graphics that work well with this example, make three graphics 22 width x 18 height pixels in
size. Be sure to place these graphic files within a folder you can then access through the Runtime Stylist. The
three files should use these file names and resemble the following graphics:
• Button_Normal.png --

• Button_HotTracked.png --

86 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

• Button_Pressed.png --

Create the Style Library


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

1. If you use the Modern Shell interface, click Settings > General Options and select the Runtime Styler
option.

2. If you use the Classic interface, click the Options menu and select Styling > Runtime Styler.

10.2.700 87
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

3. The Runtime Stylist window displays.

88 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

4. Click the New button.

The new Style Library is created.

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.

10.2.700 89
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

90 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

6. Change some Common Component Properties on this window.

7. Set the UseFlatMode property to True.

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.

10.2.700 91
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

2. Expand the Base node.

3. Select the Button UI Role.

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

92 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.2.700 93
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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

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

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

94 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

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.

10.2.700 95
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

9. The Stretch Margins Editor window displays.

96 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

10.2.700 97
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

2. Expand the Component Role Settings node.

3. Select All Components.

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.

98 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.

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:

10.2.700 99
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

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.

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.

100 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

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.2.700 101
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

Import GrayButtons Theme

The new theme is now ready to become the default look for your client installations. To set a new theme as
default using Theme Maintenance, you first need to import it.

1. If you use the Modern Shell interface, click Settings > General Options and select the Theme
Maintenance option.

2. The Theme Maintenance window displays.

3. You first need to import the GrayButtons theme. To do this, from the Actions menu, select Import Theme
Styles.

102 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

4. The Open window displays.

10.2.700 103
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

5. Select the GrayButtons.isl file.

6. Click Open.

7. You return to Theme Maintenance.

8. Notice the Theme ISL field displays the GrayButtons theme.

9. You need to give the imported theme an identifier. In the Name field, enter GrayButtons.

10. For the Description, enter GrayButtons.

11. Click Save.

Set New Theme as Default


You can now indicate this theme will be the default style for the Epicor application.

1. Select the Distributable check box. This setting indicates that all the client installations on your system can
use this theme, and it also activates the Default check box.

104 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

2. To indicate you want to use this theme as the primary style, select the Default check box.

3. Click Save.

4. The Default Theme icon displays. The GrayButtons theme is now the default for the application.

5. Close Theme Maintenance.

When a client is first installed, it is set up to use the default


theme. However if a client installation no longer uses the
default theme, you can change this back within the
Configuration Settings File. To do this, you update the Styles
setting. To learn more, review the Startup Configurations
chapter within the Implementation User Guide.

View the Theme


The button theme is now the default look for the client installations throughout your system. Any client installations
set up to display the default style automatically use this theme.
To see your new theme in action, close the application and then launch it again. When you display a program,
you can see how this new theme is incorporated into the interface.

1. Notice on the tree view, the bottom and right side sliders now contain thumb buttons that use your new
button style.

10.2.700 105
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

The button graphics display for all the various sized


buttons because you selected the Stretched Layout Mode.

2. The Navigation buttons on the toolbar display using this style.

3. The Search button uses the GrayButtons style.

4. The Down Arrow buttons use the button style.

When you hover your mouse over a button, the HotTracked.png graphic displays. When you click a button,
the Pressed.png graphic displays. This happens because you defined these different states within the Runtime
Stylist.
As this case study demonstrates, the Styling functionality is a dynamic tool you can use to create interface themes
unique for various areas within your organization.

Case Study – Theming By Company

This case study demonstrates how you can use the styling and themes capabilities to display all application forms
in different colors based on the company a user is logged into. Different styles display for each company, helping
users quickly identify the current company they have active. Through this example, you learn how to create a
copy of an existing theme, modify it and deploy to users.

This example applies only to the application forms and not the
Modern Shell Menu. The theme becomes common across all
the forms. To complete this case, a user must be provided with

106 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

theming rights. For more information, see the Assign Styling


Rights at the beginning of this chapter.

Copy an Existing Theme

You first copy an existing theme and then use it as the base style for your company specific theme.

1. If you use the Modern Shell interface, click Settings > General Options and select the Style Filter
Manager option.

2. If you use the Classic interface, click the Options menu and select Styling > Style Filter Manager.

10.2.700 107
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

3. The Style Filter Management displays.

108 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

4. Click the Load button to search for and select an existing Infragistics theme. This theme will be the base
for your custom style.

5. In this example, select an existing theme,Inspired.isl, and click Open.

6. You return to Style Filter Management.

10.2.700 109
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

7. To create a copy of an existing theme, click Save.

8. The Save Style Library window displays.

110 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

9. Enter a File name for this theme. For this example, enter InspiredColorsByCompany.isl.

10. Click Save.

Modify The Theme

You can create child style filters based on the original, or parent theme. These filters limit these child styles. In
this example, the child style is limited for use with a specific company.

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

2. Right-click your mouse to display the context menu. Select the Create Child Style option.

3. The [New] style displays in the Tree view. Click on this style.

10.2.700 111
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

4. Now in the Properties pane, enter a StyleSetName for this child style filter. In this example, you enter
Epicor Corp.

112 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

5. Set Filter Type to Company.

6. Depending on the filter, different items display in the FilterTypeSelect drop-down list. In this example, all
the companies within current installation are listed. Select the Epicor Corporation. When users switch to
this company, the interface displays using this child style.

7. You can create a new Child Style for each company in your environment. In this example, you have created
another child style for the Epicor Distribution company.

8. Click Save and replace .isl file you created.

9. Close the Style Filter Management. The alternate theme is loaded in this session.

Modify The Active Style Set

The primary tool to modify the Active Style Set 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

10.2.700 113
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

interface is updated while the application runs. This helps you decide if you like, or do not like, the change to
the interface.

Launch the Runtime Styler

To begin, you launch the Runtime Styler window.

1. If you use the Modern Shell interface, click Settings > General Options and select the Runtime Styler
option.

2. If you use the Classic interface, click Options menu and select Styling > Runtime Styler.

114 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

3. The Runtime Styler displays the Infragistics App Styler window.

10.2.700 115
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

While making the color/style selections, the Runtime Styler


is hidden sometimes. You can get it back by minimizing
everything on the desktop with Windows key + M. If you
cannot find the RuntimeStyler, another way is to save the
changes made so far and start the Style Filter Management
form and save the changes to the custom theme file.

4. Use the Active Style Set drop down list to display the custom Epicor Corp company style set.

116 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

Change The Background Color

1. Open any standard form. In this example, you select Role Code Maintenance.

2. You decide to change the color for the ToolbardockAreaTop for area.

3. To select ToolbarDockAreaTop from the Infragistics popup, press 1 key.

4. The Settings for ToolbarDockAreaTop window displays.

5. Click the Background Fill Color button.

6. The Color Picker window displays.

10.2.700 117
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

7. Select a color of your choice.

8. The selected color now appears in the ToolbardockAreaTop form area.

9. Modify another area, hover the mouse on the UltragroupBoxContentArea groupbox.

10. To select UltragroupBoxContentArea from the Infragistics popup, press 1 key

11. The Settings for UltragroupBoxContentArea window displays.

118 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

12. Click the Background Fill color button.

13. The Color Picker window displays.

14. Select a color of your choice.

15. The selected color appears in the UltragroupBoxContentArea.

10.2.700 119
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

Override the Custom Theme

You can now override the custom theme with your background color changes.

1. To save the custom theme in the Runtime Stylist, click the Save As button.

2. The Save Style Library window displays.

120 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

3. Click Save.

4. Click Yes to override the custom theme.


The custom theme will display the colors you selected on the Role Code Maintenance form.

Define the Colors

To define the appearance of forms for another company:

1. Restart the application and log into another company. In this example, navigate to Epicor Distribution
company.

10.2.700 121
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

2. Launch the Runtime Styler and make sure your custom theme is loaded.

122 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

3. Use the dropdown to change Active Style Set to the company where you wish to define alternate style
properties. In this example, select Epicor Distribution.

4. Open any standard form. In this example, you select Role Code Maintenance.

10.2.700 123
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

5. Once again, you decide to change the color for the ToolbardockAreaTop for area.

6. To select ToolbarDockAreaTop from the Infragistics popup, press 1 key.

7. The Settings for ToolbarDockAreaTop window displays.

8. Click the Background Fill Color button.

9. The Color Picker window displays.

124 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

10. Select a color of your choice.

11. The selected color now appears in the ToolbardockAreaTop form area.

12. Modify another area; hover the mouse on the UltragroupBoxContentArea groupbox.

13. To select UltragroupBoxContentArea from the Infragistics popup, press the 1 key.

14. The Settings for UltragroupBoxContentArea window displays.

10.2.700 125
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

15. Click the Background Fill color button.

16. The Color Picker window displays.

17. Select a color of your choice.

18. The selected color appears in the UltragroupBoxContentArea.

126 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

View Theming By Companies

Now when users log into the application, the toolbar and groupbox colors change based on the current company.
You can test this by switching companies.

1. Return to Home Menu.

2. Navigate to the Epicor Corporation company.

10.2.700 127
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

3. Open any standard form. In this example open Role Code Maintenance.

128 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

When users log into the Epicor Corporation company, the color scheme you defined appears on the
interface.

4. Close the Role Code Maintenance.

5. Navigate to the Epicor Distribution company.

10.2.700 129
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

6. Open any standard form. In this example open Role Code Maintenance.

130 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

When logged into the Epicor Distribution company, the color scheme you defined appears on the interface.

7. Close the Role Code Maintenance.

Set Theme as Default

To set the new theme as the default for all users, you first need to import it.

1. If you use the Modern Shell interface, click Settings > General Options and select the Theme
Maintenance option.

10.2.700 131
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

2. If you use the Classic interface, click Options menu and select Styling >Theme Maintenance.

132 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

3. The Theme Maintenance window displays.

4. You first need to import the new Theme. To do this, from the Actions menu, select Import Theme Styles.

10.2.700 133
Chapter 1 | Styling and Themes Epicor ICE 3.2 Customization User Guide

5. The Open window displays.

6. Select the file you want to import. In this example, select InspiredColorsByCompany.isl.

7. Click Open.

8. You return to Theme Maintenance.

134 10.2.700
Epicor ICE 3.2 Customization User Guide Styling and Themes | Chapter 1

9. Select the Distributable check box. This setting indicates that all the client installations on your system can
use this theme and it also activates the Default check box.

10. To indicate you want to use this as the primary style, select the Default check box.

11. Click Save.

12. The Default Theme icon displays. The InspiredColorsByCompany theme is now the default for the
application.

13. Close Theme Maintenance.


Now when you install a client installation, the user interface uses this default theme. By configuring your
custom theme as default, users can automatically see different colors depending on the Company.

10.2.700 135
Chapter 2 | Personalization Epicor ICE 3.2 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.

Select Interface Style

The primary way you can personalize the interface is by selecting the menu interface style you will use. The Epicor
ERP application installs with these interface styles:
• Classic Menu - This menu is designed using a tree view. You navigate this interface by expanding nodes on
the tree view and selecting programs either within the tree view node or in a selection panel.
• Modern Home Page - This menu uses a tablet style interface, organizing a Home page through a series of
tiles. You click on the options within these tiles to launch programs.
• Kinetic Home Page - This interface provides an extremely easy to use sense-making, dashboarding, data
exploration, and data visualization experience. It allows to use a broad set of capabilities of the Epicor Data
Discovery tool for managing, accessing, sharing, visualizing, and extracting insights from Epicor data on your
Home Page.
All of these interfaces have features for personalizing the menu. Leverage these features so the menu displays
the programs and functions you use most often.
You select which interface you want to display through the Log In window.

1. Launch the Epicor ERP application; the Log in window displays.

136 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. Enter your User name and Password.

3. To display the Classic Menu, select the Classic Style check box.

4. To display the Kinetic Home Page, select the Kinetic Home Page check box.

To display the Modern Home Page menu, clear all these


check boxes.

5. Click the Right Arrow button.


Depending on your selection, either the Classic menu, Modern Home Page or Kinetic Home Page displays.
If you logged in using the Classic Style check box, this check box is selected the next time you log into the
application.

10.2.700 137
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

Classic Menu Personalization

The Classic Menu interface is the interface display originally released for your Epicor ERP application. This interface
is organized through a tree view design, so you navigate by opening nodes to locate the programs you need to
launch.

Main Menu

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.

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

138 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

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

10.2.700 139
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

140 10.2.700
Epicor ICE 3.2 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.

10.2.700 141
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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 items that affect how the Epicor ERP application displays and runs during the current
session. Leverage these items to personalize your interaction with the application.
Through the settings on this menu, you can change your current company, site, language, and so on. By launching
the Preferences window, you can personalize the Status Bar to display the information you need, automatically
log in with your Epicor user account, select an interface style, and add tabs to the Main Menu. By activating the
Save Settings On Exit option, your personalized settings automatically save when you close the application.
The Options Menu also contains the Styling functionality which gives you complete control over the look and
feel of the user interface. If you have customization rights, you activate Developer Mode from this menu.
Likewise if you need to localize the interface to display correct language usage, launch the Translation Utility.

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.

142 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Preferences (Classic Menu)

You use the Preferences window to define how you want the Epicor ERP application to run during each session.
To select your session preferences:

1. From the Options menu, select Preferences.

10.2.700 143
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. The Preferences window displays.

3. By default, the General tab appears.

4. Use the Form To Use field to set the preferred type of user interface for programs that have both a Windows
form and a Kinetic web form interfaces available.
Options:
• User Choice - The programs will open with a default interface defined in the Form to Use property of
the menu.
Please refer to the Menu Maintenance documentation for details of form type settings for individual
menus (System Setup > Menu Maintenance > Detail > Fields).
• Classic - Select this option to launch programs as standard Windows forms.
If a certain program's form type (Form to Use) is set to User Choice, this user setting will override it
and the program will open as a standard Windows form. If the program's form type is set to Kinetic, it
cannot be overridden by this user preference, and the program will open as a Kinetic web form.
• Kinetic - Select this option to launch programs as Kinetic web forms.

144 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

If a program's form type is set to User Choice or Kinetic, it will open as a Kinetic web form. If the
program's form type is set to Classic, this user preference will be ignored, and the program will open
as a classic Windows form.

Kinetic UI is only supported on standard report and


process screens. Customized reports or processes will
display as classic Windows forms regardless of admin or
user form type settings.

5. Select the elements you want to display on the status bar. Notice you can display the current User ID,
Language, Company, Site, Server, Workstation, and Solution.

6. Select the Automatically sign on check box to bypass the logon window and immediately launch the
application. If your system administrator has activated the Single Sign On (Epicor Account) feature, this check
box is available.

After you close the Preferences window, the User Name


and Password from your user account are saved to your
client installation. Your password is also encrypted to
prevent malicious outside entry.

7. Select the appropriate option if you need to update your SharePoint or DocStar account user name and
password.

10.2.700 145
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

The next time you access a file attachment from a SharePoint library or DocStar, the logon window displays
again. You can then update your account credentials.

After you close the Preferences window, the selected


check box automatically clears (de-activates). You will
need to select a check box again to launch the SharePoint
or DocStar logon window.

8. As you open and close programs, the History toolbar adds each program as a drop-down list option. To
launch a program, click this History drop-down list, select a program, and then click the Go button. However
if too many programs are on this list, click the Clear History button here to remove all the program options
from the drop-down list.

9. To change the look of the interface, click the Theming tab.

10. When you select the Disable Theming check box, you can no longer select different themes. Only the
default theme and icons will display.

11. If you want to display the interface through a different Theme, select an option from this drop-down list.
After you select a theme, you must exit the application and log in again to display your selected theme.

If you have Can Maintain Themes rights, you can add and
update themes. To display a custom theme on this
drop-down list, you add it as an option through Theme

146 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Maintenance. For more information, review the Styling


and Themes chapter in the Customization User Guide.

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

If you use the Classic Menu, use this option to add a custom tab to the Main Menu. In the Modern Shell
mode, menu tabs you add on this window automatically load on each logon.

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

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

15. Now from the Type drop-down list, select Web Browser. Notice you can also select the Dashboard-runtime
and Dashboard-assembly options; select this option to add a custom dashboard to the interface.

16. Enter the web address you want to display in the Content field. If you selected a dashboard type, a list of
custom dashboards display on this drop-down list.

Any custom dashboards added to the application in Menu


Maintenance or as Favorites Items display on this
drop-down list.

17. Click OK.

10.2.700 147
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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

Save Settings on Exit

Just like the Modern Shell interface, the Save Settings on Exit option in the Classic Menu automatically saves any
settings you change on your View menu. When you exit and then launch the Epicor ERP application, the changes
you made during the previous session display.
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 that were expanded on exit expand 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 expand 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.

148 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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®.

User Privileges

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

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

10.2.700 149
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. Click the Options sheet.

150 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

3. Select the Can Maintain Favorites Programs check box.

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

Add Internal Shortcuts

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.

10.2.700 151
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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

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.

152 10.2.700
Epicor ICE 3.2 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.

10.2.700 153
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

154 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

10.2.700 155
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

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.

156 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

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.

10.2.700 157
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

158 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Modern Home Page Personalization

The Modern Home Page is designed as a tablet style interface. You can personalize this interface to display
shortcuts to the programs you use the most, improving how quickly you launch specific programs.
This section describes how you can personalize the Home Page to display the interface shortcuts you need. You
primary personalize the interface by changing the tile groups and tiles that display when you log into the Epicor
ERP application. This section also illustrates how you can create and save default user and company Home Page
layouts. You can then assign these layouts to companies and user accounts.

General Options (Modern Shell)

When you click the Settings icon on the Application bar, the General Options page displays. These options
affect how the Epicor ERP application appears and runs during the current session. Leverage these items to
personalize your interaction with the application.
Through the settings on this page, you can change your current user, language, and password. By launching the
Preferences window, you can personalize the Status Bar to display the information you need, automatically
log in with your Epicor user account, and select an interface style. If you have customization rights, you can switch
to Developer Mode from these options. By activating the Save Settings On Exit option, your personalized
settings automatically save when you close the application.

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.

Preferences (Modern Shell)

You use the Preferences window to define how you want the Epicor ERP application to run during each session.
To select your session preferences:

1. From the Home page, click Settings.

10.2.700 159
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. The Settings page displays.

160 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

3. By default, the General Options group is selected.

4. Click the Preferences... option.


The Preferences window displays.

10.2.700 161
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

5. The General tab displays by default.

6. Use the Form To Use field to set the preferred type of user interface for programs that have both a Windows
form and a Kinetic web form interfaces available.
Options:
• User Choice - The programs will open with a default interface defined in the Form to Use property of
the menu.
Please refer to the Menu Maintenance documentation for details of form type settings for individual
menus (System Setup > Menu Maintenance > Detail > Fields).
• Classic - Select this option to launch programs as standard Windows forms.
If a certain program's form type (Form to Use) is set to User Choice, this user setting will override it
and the program will open as a standard Windows form. If the program's form type is set to Kinetic, it
cannot be overridden by this user preference, and the program will open as a Kinetic web form.
• Kinetic - Select this option to launch programs as Kinetic web forms.
If a program's form type is set to User Choice or Kinetic, it will open as a Kinetic web form. If the
program's form type is set to Classic, this user preference will be ignored, and the program will open
as a classic Windows form.

Kinetic UI is only supported on standard report and


process screens. Customized reports or processes will

162 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

display as classic Windows forms regardless of admin or


user form type settings.

7. Select the elements you want to display on the status bar. Notice you can display the current User ID,
Language, Server, Workstation, and Solution.

8. Select the Automatically sign on check box to bypass the logon window and immediately launch the
application. If your system administrator has activated the Single Sign On (Epicor Account) feature, this check
box is available.

After you close the Preferences window, the User Name


and Password from your user account are saved to your
client installation. Your password is also encrypted to
prevent malicious outside entry.

9. Select the appropriate option if you need to update your SharePoint or DocStar account user name and
password.
The next time you access a file attachment from a SharePoint library or DocStar, the logon window displays
again. You can then update your account credentials.

After you close the Preferences window, the selected


check box automatically clears (de-activates). You will
need to select a check box again to launch the SharePoint
or DocStar logon window.

10. As you open and close programs, the History toolbar adds each program as a drop-down list option. To
launch a program, click this History drop-down list, select a program, and then click the Go button. However
if too many programs are on this list, click the Clear History button here to remove all the program options
from the drop-down list.

11. To change the look of the interface, click the Theming tab.

10.2.700 163
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

12. When you select the Disable Theming check box, you can no longer select different themes. Only the
default theme and icons will display.

13. If you want to display the interface through a different Theme, select an option from this drop-down list.

14. Click OK.

15. After you select a theme, you must exit the application and log in again to display your selected theme. In
this example, program windows now display using the NightWing theme.

164 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Tiles

The primary item on the Modern Shell interface you modify is the tile. You can create, modify, and remove tiles
to create a Home Page that reflects your typical use of the Epicor ERP application.
You can add, remove, and modify these tiles as you need. Each tile has a type that determines what displays
when you activate a tile. Available tile types:
• Links - Contains Epicor Forms, URL Links, documents, or other programs.
• BAQ Gadget - Displays business activity query (BAQ) results within a Home Page tile.
• Favorites List - Contains icons you use to launch frequently used programs.
• General - Adds standard tiles delivered by Epicor.

10.2.700 165
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

Links

Use the Link tile to add elements of your choice such as Epicor Forms, URL Links, documents, or other programs.
You can add a Link tile to the Home Page through the following methods:
• Right-click a blank area on the Home Page and open the Add Tile wizard.
• Drag files and shortcuts from your desktop onto the Home Page.
• Use the Menu application to add menu items onto the Home Page

Use Add Tile Wizard

The following steps discuss the main principles of adding a tile using the wizard.

1. Right-click anywhere in the blank area of the Home Page. Notice the Application Bar at the bottom will
slide open.

2. In the bottom right hand corner, click the Add Tile button.

3. You can optionally place this new tile within a tile group. However for this example, you select the (No title)
option.

166 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

4. In the top right corner, select a color you want for a new tile.

5. Click the right-arrow to proceed to the next screen.

Add Link Tile

Use the following steps to add a link a website URL, document, program executable or an Epicor program you
frequently use.

1. For the type, select Link.

10.2.700 167
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. Click Next.

3. On the following screen, specify the type of link tile. To add an Epicor program, for example, Customer
Maintenance, select the Epicor form option.

168 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

4. Within the What form would you like to open? drop-down list, enter some text to find and select the
Epicor form you wish to use.

10.2.700 169
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

5. To displays a website URL on the Home Page, enter a valid address and specify the link title.

170 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

6. Optionally, you can change the default link title or make the tile available for a different company.

7. When adding a program or document, enter the path of the file you want to launch. In the following
example, the link to Adobe Reader executable is used. This way, you can launch the application directly by
clicking on a tile within the Home Page.

10.2.700 171
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

8. Click Next to specify how the tile displays on the Home Page.

Select Tile Design

The following steps discuss how you can modify the tile design you want to display on the Home Page.

1. If you want to use the default tile design based on the selected type, click the Default for link type option.

172 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

The following example displays the default tile design of a Microsoft spreadsheet and Adobe application
link.

2. To display the snapshot of the website on the tile, select the URL Snapshot option.

10.2.700 173
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

3. Enter the valid website address.

4. If you want to refresh the URL tile, select the Should the URL tile be periodically refreshed? check box.

5. Enter the refresh interval.

174 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

The following example shows the tile displaying a snapshot of a website. When you click the bottom of the
tile, the website displays in a separate browser on the Home Page.

10.2.700 175
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

6. To display a custom image on the tile, select the Image option.

7. Now click the Browse (...) button to find and select the image file on your network. The image is saved to
your application database and is available for importing and exporting with the Home Pag layout.
The following example displays a custom image used on a Company Configuration form tile.

8. When finished, click Next.

176 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Define Tile Size

The following steps discuss the tile sizing options.

1. If you want to be able to expand the tile on the Home Page, select the checkbox at the top of the screen
and define the size of the tile when switched to a full size.

2. Define the default Width and Height of the tile.

A standard tile size of 1x1 is 125x125 pixels.

3. Next define the expanded size for the tile.

4. Click the Save button.

10.2.700 177
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

The following example displays a tile with the default size of 1x1 (125x125 inches)expanded to its full size of 2x2
(250x250 inches).

To expand the tile, click the arrow button at the bottom right of the tile.

BAQ Gadget

Use the BAQ Gadget type to display Business Activity Query results within a Home Page tile.
When you attach a BAQ to a tile, you can select to periodically refresh the BAQ results to make sure you work
with the latest database output. Optionally, you can select different item to open when users click the BAQ such
as existing Epicor forms, website, applications or documents. For example, you can display the list of customers
and invoke Customer Maintenance form when users click any BAQ line.

Only users who can launch the Business Activity Query (BAQ)
Designer can add these tiles or display query results on them.
If you attempt to edit an existing BAQ Gadget tile and you do
not have access to the BAQ Designer, an error message
displays.

178 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Use Add Tile Wizard

The following steps discuss the main principles of adding a BAQ Gadget tile using the wizard.

1. Right-click anywhere in the blank area of the Home Page. Notice the Application Bar at the bottom will
slide open.

2. In the bottom right hand corner, click the Add Tile button.

10.2.700 179
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

3. You can optionally place this new tile within a tile group. However for this example, you select the (No title)
option.

4. In the top right corner, select a color you want for a new tile.

5. Click the right-arrow to proceed to the next screen.

180 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Select BAQ

Use the following steps to add the source Business Activity Query for the tile.

1. For the type, select BAQ Gadget.

2. Click Next.

10.2.700 181
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

3. On the following screen, either type the name of the BAQ manually or click the Search icon and use the
Business Activity Query Search Form to search for and select the BAQ of your choice.

4. If you want to refresh BAQ results, select the Should the BAQ tile be periodically refreshed? check box.

5. Enter the interval (in minutes) for which the data on the BAQ is periodically refreshed.

6. Select BAQ columns you want to display within the BAQ tile. Use the scrollbar on the right to view all columns
the selected BAQ incorporates.

7. Once complete, click Next.

BAQ Tile Links

You can set up a BAQ Gadget to automatically open Epicor forms, website, program or a document when you
click on the tile.
The following options are available:

182 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

1. If you want an Epicor program, for example, Sales Order Tracker, to open when you click a BAQ tile, select
Epicor Form.

Using this option will display the Epicor program with no selected record. The following topic explains
how you can invoke Epicor program with selected record in focus when you click on the BAQ gadget
line.

2. Start typing in a field to narrow down the list of available Epicor forms.

3. To displays a website, click URL, enter a valid address and specify the link title.

4. If you want to launch a Program, folder or document, select this option and enter the path of your choice.

10.2.700 183
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

BAQ Line Links

Similar to BAQ tile, you can set up a BAQ Gadget to automatically open Epicor forms, website, program or a
document when you click on BAQ lines.
The following options are available:

1. If you do not want a program to launch when you click on this tile, select the None option.

2. If you want an Epicor program, for example, Sales Order Tracker, to open when you click a BAQ line, select
Epicor Form.

3. Select which Epicor program you want open when you click on the BAQ Gadget line. In this example, you
select the Order Tracker program.

4. Then, select the BAQ column with key data for which you want to open a particular record. When you select
a record on a gadget line, data related to this record displays on the selected Epicor form.

184 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

5. Click Save.

6. In this example, you click on the line that displays order number 5329 and Sales Order Tracker opens with
the selected record in focus.

Favorites List

Use the Favorites List tile to create a placeholder of your favorite Epicor forms. For example, you are a sales person,
so you create a tile that has favorite links to the quote, sales order, and Customer Relationship Management
programs you use the most.

Use Add Tile Wizard

The following steps discuss the main principles of adding a Favorites List tile using the wizard.

1. Right-click anywhere in the blank area of the Home Page. Notice the Application Bar at the bottom will
slide open.

10.2.700 185
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. In the bottom right hand corner, click the Add Tile button.

186 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

3. You can optionally place this new tile within a tile group. However for this example, you select the (No title)
option.

4. In the top right corner, select a color you want for a new tile.

5. Click the right-arrow to proceed to the next screen.

10.2.700 187
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

Add Favorites List Tile

Select a Favorites List tile and specify a name.

1. For the type, select Favorites List.

2. Click Next.

3. Enter a name you want to display on a tile.

4. Click Next.

188 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Define Tile Size

The following steps discuss the tile sizing options.

1. If you want to be able to expand the tile on the Home Page, select the checkbox at the top of the screen
and define the size of the tile when switched to a full size.

2. Define the default Width and Height of the tile.

A standard tile size of 1x1 is 125x125 pixels.

3. Next define the expanded size for the tile.

4. Click the Save button.

10.2.700 189
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

A blank Favorites List tile is placed on the Home Page. See the following topic to learn how to populate the tile
with your favorite programs.

Add Programs

Use the following steps to add menu items of your choice into the Favorites List tile.

1. On the Home Page click, the Menu tile to access the Main Menu.

2. Right-click the icon of a program you want to add into the Favorites List.

3. To add this menu item to the home page, click the Add to Home button.

4. To make a menu item become a part of one of the Favorites group, click the Add to Favorites Icon.

5. The Add to favorites window displays.

190 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

6. Use the Company context drop-down list to define what records display in the favorite program. If you
select the Always use current company and site option, this favorite program displays records from the
active company/site. However if you select a specific company/site, this favorite will only display records
from the selected company/site.

Through this feature, you can add multiple tiles for the
same program, and each tile launches the program within
a specific company. For example, you could add three
Sales Order Entry tiles; each tile opens this program within
a different company.

7. Notice the newly created group displays on the list of available Favorites Lists. Select the MyGroup option.

8. Click Save to confirm your selection.

9. The program becomes a part of the group. In this example, Attribute Maintenance is now added to the
MyGroup favorite tile.

10.2.700 191
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

General

Use the General tile to add standard tiles delivered by Epicor.


The following is the list of tiles you can add using this option:
• Menu - Provides access to the Menu application.
• Settings - Provides access to application Settings such as current environment options or changing a color
scheme.
• Help - Provides access to the Help application.
• Recent Forms - Provides a list of your recently visited Epicor forms.

Use Add Tile Wizard

The following steps discuss the main principles of adding a General tile using the wizard.

1. Right-click anywhere in the blank area of the Home Page. Notice the Application Bar at the bottom will
slide open.

2. In the bottom right hand corner, click the Add Tile button.

192 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

3. You can optionally place this new tile within a tile group. However for this example, you select the (No title)
option.

4. In the top right corner, select a color you want for a new tile.

5. Click the right-arrow to proceed to the next screen.

10.2.700 193
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

Add General Tile

Use the following steps to add a general tile.

1. For the type, select General.

2. Click Next.

194 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

3. Select a delivered tile you want to place on the Home Page.

4. Click Next.

10.2.700 195
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

Define Tile Size

The following steps discuss the tile sizing options.

1. If you want to be able to expand the tile on the Home Page, select the checkbox at the top of the screen
and define the size of the tile when switched to a full size.

2. Define the default Width and Height of the tile.


A standard tile size of 1x1 is 125x125 pixels.

3. Next define the expanded size for the tile.

4. Click the Save button.

196 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

The following illustrations are examples of delivered general tiles you may add into your Home Page.

Drag and Drop Feature

You can customize your working environment by dragging files and shortcuts from your desktop onto the Home
Page.
Use this feature to access application links or documents you commonly use directly from the Epicor ERP application
workplace.

10.2.700 197
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

1. Select an item on your local machine and position it on a place of your choice within the Home Page.

You can select and move several items at once by holding


the Ctrl button.

2. To customize display settings of added items, right-click a tile.

3. From the Application's Bar Context Menu, select Edit Tile option.

198 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Edit Tiles

Use the context menu to change the main parameters of a tile.

1. Right-click a tile you want to modify.

2. If you want to remove a tile, on the context menu, click the Delete Tile icon.

3. From the context menu that displays at the bottom of the page, click the Edit Tile icon to change the change
tile settings.

10.2.700 199
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

4. Based on type of tile you are about to modify, different options become available, such as changing a
color, size, title, network path and so on.

5. When you finish modifying the tile, click Save.

200 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Add Menu Items

Use the following steps to add menu items, such as Customer Maintenance or Sales Order Entry onto the Home
Page.

1. On the Home Page click, the Menu tile to access the Main Menu.

2. Right-click the icon of a program you want to add into the Home Page. Notice the context menu displays
at the bottom of the page.

3. To add a menu item as a tile on the Home Page, click the Add to Home icon.
Use the Add a new tile wizard described in previous topics to place your menu item on the Home Page.

4. To make a menu item become a part of one of the Favorites group, click the Add to Favorites Icon.

10.2.700 201
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

5. Notice you change the company for the tile you're adding.

The home page is customized for all companies. When you create a tile that is a link to a form, the company
is attached to that. This way, on the Home Page, you can add three Sales Order Entry tiles, each opening
for a different company.

6. On the Add to favorites wizard, select the existing Favorite group or create a new one.

7. On the Home Page, the menu item becomes a part of the Favorites group you selected in the wizard.

202 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Rearrange Tiles

You can rearrange Tiles within the Home Page by using the drag and drop process.

1. In the navigation toolbar, click the Edit Mode button to switch from the view mode to the edit mode.

2. If you want to change the position of a Tile within a Tile Group or if you want to move the standalone Tile
to a new position within the Home Page, slide the tile you want to change, and then drag it to a new
position.

10.2.700 203
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

3. Place the Tile on its new position within the Tile Group or Home Page.

You can move tiles from one Tile Group to another in a


similar way.

4. Resize the tile by selecting the corner of the tile, and then dragging to your desired size.

Manage Tile Groups

To personalize your environment, you can change the appearance or position of the Tile Groups.
The following are the main features of Tile groups:
• Drag and drop Tiles within a Tile Group to reposition them.
• Drag and drop Tile Groups to rearrange them on the Home Page.
• Move Tiles from one Tile Group to another group.
• Change size, color and name or an existing Tile Group.
• Edit Tiles within the Favorites List; change names of shortcuts and company context.
• Remove unwanted tiles from the Tile Group or delete the whole group.

204 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Add New Tile Group

Tile groups organize related tiles on your Home Page layout. You can then create a block of tiles you can use to
launch similar functions.

1. To create a new Tile Group, right-click the Home Page and click the Add Tile button on the toolbar.

10.2.700 205
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. The Add New Tile wizard displays. Select the Create a new tile group option.

3. Enter the name of the group.

4. Click Next.

206 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

5. To create a new Favorite List tile, select Favorites List option.

6. Click Next.

7. Enter a name you want to display on a tile.

8. Click Save.

Rearrange Tile Groups

You can rearrange Tiles Groups within the Home Page by using the drag and drop process.

1. In the navigation toolbar, click the Edit Mode button to switch from the view mode to the edit mode.

10.2.700 207
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. To rearrange a Tile Group, select the group heading.

3. Move the Tile Group.

208 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

4. The Tile Group now displays in its new location on the Home Page.

5. Resize the tile group by selecting the corner of the tile, and then dragging to your desired size.

10.2.700 209
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

Edit Tile Group

Use the context menu to change the name of a tile group or to remove unwanted group.

1. Right-click a tile group name.

2. From the toolbar that displays at the bottom of the window, click the Edit Tile icon to change the change
tile group settings.

3. Enter a new name for the tile group. You are limited to 30 characters.

4. Click Save.

210 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Delete Tile Group

Do the following to remove a tile group.

1. Right-click the tile group you wish to delete.

2. Now from the bottom toolbar, click the Delete Tile icon.

3. To the confirmation dialog, click Yes.

10.2.700 211
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

4. The tile group and all the tiles it contains are removed from the Home Page.

Home Page Layouts

You can create default Home Page layouts on the Modern Shell interface.
By adding/removing tiles, selecting colors, and defining favorite programs, you can design unique Home Page
layouts. Through this feature, you create default Home Page layouts for new users, setting up a default Home
Page layout at either the company or user level.
These default layouts display when new users are added to a company. When new users log in, the default
company or user layout displays. Users can then personalize these default layouts as they need. If they wish to
restore the original layout, they can reset the original Home Page layout you designed.
Users can also export and import the Home Page layout for use in other Epicor ERP environments. Through this
feature, users can then share these default layouts with other areas of your organization.
Security Managers can assign security codes to layouts to make it available only for a specific user role or user
groups; however user roles cannot import, modify, and publish such layouts to other user roles.

Assign User Rights

You first determine which user accounts have rights to create and modify home page layouts. You define these
rights within User Account Security Maintenance.

1. Navigate to User Account Security Maintenance.


Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

212 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. Use the Detail sheet to find and select the user account you need to update. For this example, select the
Manager account.

3. Click on the Options tab.

4. Select the Can Publish Home Page Layouts check box.

5. Click Save.

Now the next time a user logs into the Epicor ERP application through this user account, the Home Page Layout
Publishing features are available.

Create Base Layout

You decide to create a role based layout for users who create business activity queries (BAQs). To do this, you
access the Settings page to create and manage Home Page layouts.
You should first save the installed Home Page layout as the default option and then design your new layout.

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

10.2.700 213
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

214 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. The Settings page displays. Now from the tree view, click on the Home Page option.

3. In the What would you like to name the published layout field, enter Base.

4. If you want to make this layout available only to certain users or user groups based on their security role,
use the Select a security code for the layout field to select the necessary security code.
Role based layouts provide a way for system administrators to set unique pre-defined layouts for users
depending on their security role. A Security Manager can assign any number of pre-defined layouts to each
user role and distribute a layout template to a group of users; however user roles cannot import, modify,
and publish these layouts to other roles.

You assign a security code to a user in the User Account


Security Maintenance program.

5. Click Publish current layout.

6. The Base layout is now available as a layout option. Notice it displays on the Select Layout drop-down list.

Change Appearance

To help identify your custom layout, you can change the colors of the tiles, text, and background colors. By
selecting different colors, you define the look of the layout for specific companies and users.

1. Enter a Layout Name for your new Home Page layout. For this example, you enter DataTools.

10.2.700 215
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. Click Publish Current Layout.

216 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

3. Now click the Appearance option.

4. The appearance tab displays your current color palette.

5. Click Set Logo image to add your company logo to the Home Page..

6. Select one of the available default palettes, either Dark or Light.

7. Select one of the color set.

8. Optionally, use the Advanced Settings tab to adjust tile colors or background colors, and change font
properties.

9. Click the Save button.


In the Save Settings dialog box, specify if you want to save the layout for the current user or for the
company.

10. Now click the Home button to see your color changes.

10.2.700 217
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

11. Notice the tiles on the Home page display using the colors you selected.

Favorites List Tile

You want to further customize this Home Page layout by adding a Favorites tile. This tile will contain shortcuts
to the business activity query (BAQ) tools.

1. Return to the Home page.

218 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. Right-click a blank space on the page; the bottom toolbar displays.

3. Click the Add Tile button.

4. The Add a new tile wizard displays.

10.2.700 219
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

5. For the tile group that will contain your new tile, select the Favorites radio button option.

6. Click Next.

7. You now define the type of tile you wish to add. Since you wish to add several program icons to the same
tile, you select the Favorites List radio button option.

220 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

For details on each tile type, review the previous Tiles


section.

8. Click Next.

9. You are asked to enter a title for your Favorites tile. For this example, enter BAQ Tools.

10.2.700 221
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

10. Click Next.

11. You now indicate whether you want users to expand the tile. Because this Favorites List tile will contain
multiple shortcut icons, verify the Do you want to be able to expand your tile? check box is selected.

222 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

12. For the default tile size, use the default Width and Height values.

13. For the expanded size, increase the Width to a 3 value. This will give you more room to add multiple program
shortcut icons.

14. Click Save.

15. Your new Favorites List tile, BAQ Tools, displays on the Home Page.

10.2.700 223
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

Currently this tile is empty. You will next add programs to this new Favorites List tile.

Add Favorites

You add programs to your BAQ Tools tile by selecting them on the Menu.

1. Click on the Menu tile.

224 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. You need to add three business activity query programs to your custom tile. From the tree view, navigate
to the Main Site > System Management > Business Activity Queries node.

10.2.700 225
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

3. Right-click the Business Activity Query icon.

4. The bottom toolbar displays. Click the Add to Favorites button.

5. The Add to favorites window displays. You can indicate this program will use a specific company and site.
When users launch this program, it only displays data from the company and site you select from this
drop-down list.
However for this program, you decide to select the default Always use current company and site option.
The program will then always display data from the active company.

226 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

If a user does not have right to launch the program, it


does not display on the tile.

6. From the Favorites tile options, select the BAQ Tools radio button option.

7. Click Save.

8. Now right-click the BAQ Report Designer icon.

10.2.700 227
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

9. The bottom toolbar displays. Click the Add to Favorites button.

10. The Add to favorites window displays.

228 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

11. Once again, select the BAQ Tools radio button option.

12. Click Save.

13. Now right-click the BAQ Export Process icon.

14. The bottom toolbar displays. Click the Add to Favorites button.

15. The Add to favorites window displays.

10.2.700 229
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

16. From the Favorites tile options, select the BAQ Tools option.

17. Click Save.

Test Layout

You have finished your custom DataTools layout. Do the following steps to save and test the new layout.

1. Return to the Home page.

230 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. Notice your BAQ Tools tile now contains three shortcut icons.

3. Click on the Settings tile.

4. From the tree view, click the Home Page option.

10.2.700 231
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

5. Click the Layout Name drop-down list and select the DataTools option.

6. Click Save.

7. Test your layouts to make sure they display as you expected. From the Select Layout drop-down list, select
the Base option.

232 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

8. The Favorites List tiles will persist between layouts unless you indicate you want to use the tiles
created/removed for a specific layout. Select the Replace Favorites check box.

9. Click the Confirm Selected Option button.

10. The Base layout displays. Notice the BAQ Tools tile does not display, and the colors revert to their original
settings.

10.2.700 233
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

11. Now verify the DataTools layout displays the BAQ Tools tile and your custom colors. Select the Settings
tile.

12. Navigate to the Home Page options.

234 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

13. From the Select Layout drop-down list, select the DataTools option.

14. Select the Replace Favorites check box.

15. Click the Confirm Selected Option button.

16. The Home Page displays your color options and the BAQ Tools tile.

10.2.700 235
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

Delete Layout

If you no longer want a Home Page layout to be available, you can remove it.

1. Verify the Home Page setting is selected.

236 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. Click the Layout Name drop-down list to select the layout option.

3. Now click the Delete selected published layout button.

This layout no longer displays on the Select Layout drop down list.

Export and Import Layouts

You deliver layouts to other Epicor ERP environments through the export and import feature.
This functionality is available to all users. You first export the Home Page layout in a folder you specify. Then you
or another user launch a different Epicor ERP environment and import the layout. The imported layout now
becomes the default Home Page when the user logs into the Epicor ERP application.

You cannot import, modify and publish layouts that have a


security code. They will only be available for selection in the
Home Page settings for users who have access to that Security
code either by User ID or Security Group membership.

Export Layout

Do the following steps to export your Home Page layout.

1. Verify the Home Page layout you want to export is active. Return to the Settings > Home Page options.

10.2.700 237
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. Select the Export Layout option.

3. Now next to the Select the file location to export the layout field, click the Browse (…) button.

4. The Export Layout window displays.

238 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

5. Navigate to the directory that will contain the layout file.

6. Now in the File name field, enter the file name for your layout. In this example, you enter DataTools.

7. Click Save.

8. You return to the Settings page. Notice the Select the file location to export the layout field displays
the directory path and the file name you selected.

10.2.700 239
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

9. Click the Confirm selected option button.

The DataTools.layout file is exported to the selected directory.

Import Layout

Follow these steps to import your Home Page layout.

1. Launch the Epicor ERP environment that will use the imported layout. Click the Settings tile.

240 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. Now click the Home Page option.

10.2.700 241
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

3. Select the Import Layout button.

4. Now next to the Select the file that contains the layout to import field, click the Browse (…) button.

5. The Import Layout window displays.

242 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

6. Navigate to the directory that contains the exported layout file.

7. Select the file you wish to import. In this example, you select the DataTools.layout file.

8. Click Open.

9. You return to the Settings page. Notice the Select the file that contains the layout to import field
displays the directory path and the file name you selected.

10.2.700 243
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

10. Select the Replace Favorites check box.

11. Click the Confirm button.

12. You are asked if you want to import the home page settings. Click Yes.

244 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

13. The imported Home page layout displays. This layout is now the default Home Page for the current user.

10.2.700 245
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

Default Layouts

You define default Home Page layouts for specific companies and user accounts.
These default layouts then automatically display when the user first logs into the Epicor ERP application. The user
can then personalize this layout as needed. Which layout displays when a new user logs in depends on the
following hierarchy:

1. User Account Layout (role-based)

2. Company Layout (company specific)

3. Base Layout (no layout defined)

User Account Layout

You specify a role based layout within User Account Security Maintenance.

1. Navigate to User Account Security Maintenance.


Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

246 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. On the Detail sheet, find and select a new user account. For this example, you select Howard Low. Howard
has just joined your organization and has not yet logged into the Epicor ERP application.

3. Click on the Options tab.

4. From the Default Published Home Page Layout drop-down list, select the DataTools option.

5. Click Save.

When Howard Low logs in for the first time, the Data Tools layout displays by default on his Home Page. Howard
can then personalize this layout as he needs.

Company Layout

You specify a company layout within Company Maintenance.

1. Navigate to Company Maintenance.


Menu Path: System Setup > Company/Site Maintenance > Company Maintenance

This program is not available in Epicor Web Access.

10.2.700 247
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. Click on the General Settings tab.

3. Click on the Home Page Layout drop-down list and select a layout option. For this example, you select
the Base option.

4. Click Save.

Now when new users log in for the first time and they don't have a layout specified on their user accounts, this
Base layout displays.

Reset Layout

You can restore the layout to the version defined on the user account.

1. Return to the Settings > Home Page options.

248 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. Select the Reset Layout button.

3. You want to restore the Favorites tiles as well. Select the Replace Favorites check box.

4. Now select the Reset your home page to default user layout check box. This indicates you wish to
restore the layout to the file selected on the current user account or company. If neither the user account
nor the company has a default layout, the Epicor ERP application will restore the original Home Page layout
installed with the application.

5. Click the Confirm button.

6. You are asked if you want to reset your home page. Click Yes.

10.2.700 249
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

7. The default user Home Page layout displays.

250 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Save Settings on Exit

When the Save Settings on Exit feature is active, users can save most changes they make to the Modern Shell
interface. The next time users log into the Epicor ERP application, the user interface changes they made during
the previous session display by default.
This personalization feature is automatically selected on each user account. The feature saves any changes users
make to tile size, tile screen position, and tile color. Likewise the last menu folder the users had open during the
previous session is open by default as well.
You can activate or disable this feature for specific users through User Account Security Maintenance. If you
disable this feature, the user can only display the default Modern Shell interface or the default Home Page Layout
defined on the user account. However the Recent Forms tile continues to update; the list of the forms the user
opened during previous sessions display in this tile.
You modify the Save Settings on Exit rights within User Account Security Maintenance:
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

1. Use the Detail sheet to find and select the user account you wish to update.

10.2.700 251
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. Click the Options tab.

3. To activate this feature, select the Can Change Save Settings On Exit check box. To deactivate this feature,
clear (de-select) this check box.

This check box is automatically selected on new user


accounts.

4. Save the user account settings.

5. If your user account has these rights, you can also manually shut off the Save Settings on Exit option. Do
this when you are satisfied with the current layout and do not want to make more interface changes. You
access this feature from the Home screen.

252 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

6. Click the Settings tile.

7. Select the General Options setting group.

10.2.700 253
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

8. Clear the Save Settings On Exit option. Now the interface no longer updates with your changes.

If your user account does not have these rights, this option
does not appear on this list.

Program Personalization

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

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

1. Click the Tools menu.

2. Select Options.
To invoke the program personalization options in the Kinetic user interface, hold down the Alt key while
you are launching the program.

254 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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. Default Form Type - Use the Form To Use field to set the preferred type of user interface for programs
that have both a Windows form and a Kinetic web form interfaces available.
Options:
• User Choice - The programs will open with a default interface defined in the Form to Use property of
the menu.
Please refer to the Menu Maintenance documentation for details of form type settings for individual
menus (System Setup > Menu Maintenance > Detail > Fields).
• Classic - Select this option to launch programs as standard Windows forms.
If a certain program's form type (Form to Use) is set to User Choice, this user setting will override it
and the program will open as a standard Windows form. If the program's form type is set to Kinetic, it
cannot be overridden by this user preference, and the program will open as a Kinetic web form.
• Kinetic - Select this option to launch programs as Kinetic web forms.
If a program's form type is set to User Choice or Kinetic, it will open as a Kinetic web form. If the
program's form type is set to Classic, this user preference will be ignored, and the program will open
as a classic Windows form.

10.2.700 255
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

8. 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.

256 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

• 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.

9. 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.

10. 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.

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

12. Quick Access Panel


Select the Enable Quick Access Panel check-box to activate this option in the program.

13. 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.

14. 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.

10.2.700 257
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

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.

258 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

4. Click OK to close the Options window.

10.2.700 259
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

260 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

10.2.700 261
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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:

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

262 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

5. Printing - A confirmation window displays when you Print Preview, Print, Email or Generate a report for
which routing is enabled.

10.2.700 263
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

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.

264 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

10.2.700 265
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

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.

266 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

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.

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:

10.2.700 267
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

1. Before the List sheet is moved.

2. After the List sheet is moved.

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

268 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

4. Select Save Layouts.

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

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.

10.2.700 269
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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

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

270 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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

10.2.700 271
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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

272 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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

10.2.700 273
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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:

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.

274 10.2.700
Epicor ICE 3.2 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.2.700 275
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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

276 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

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.

10.2.700 277
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

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.

278 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Grids

Grids display information through a series of columns and rows. Each column displays a category of information,
like Part Number or Part 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.

10.2.700 279
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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:

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.

280 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.


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.

10.2.700 281
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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:

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

282 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

10.2.700 283
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

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

284 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

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.

10.2.700 285
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.


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

286 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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

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.

10.2.700 287
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

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

288 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

10.2.700 289
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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 Rights

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

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

290 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. Click the Options sheet.

10.2.700 291
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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

292 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

2. From the Tools menu, select Personalization.

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


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.

10.2.700 293
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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.

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 Ice.Lib.Framework.EpiGroupBox.

5. The Properties are items in the Control Properties window that may be modified for each element (on a
sheet).

294 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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 the Basic
Customization chapter.

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.

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

Sheet Properties

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

Element Colors

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

10.2.700 295
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

colors (the colors defined for your current operating system color scheme), a Custom colors list, or a list of Web
colors.

296 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

10.2.700 297
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

1. Select the Ship To group box.

298 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

Change 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.

10.2.700 299
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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

300 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

3. Click OK to save the changes.

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

10.2.700 301
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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

6. Click OK to save the changes.

302 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

Change 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.

1. Before the Attn field is moved.

10.2.700 303
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. After the Attn field is moved.

304 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

The Size property defines the height and width of the


control (or element) on the sheet. When the Attention
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 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.

10.2.700 305
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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

3. Change the property from True to False.

306 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.2.700 307
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

5. In the Text property, enter Address.

308 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

6. Click OK to save the changes.

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.

10.2.700 309
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. The Control Properties window displays.

310 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

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.

10.2.700 311
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. The Save As window displays.

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

312 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

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.

10.2.700 313
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

2. From the Tools menu, select Personalization.

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

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.

314 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.

10.2.700 315
Chapter 2 | Personalization Epicor ICE 3.2 Customization User Guide

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:

1. From the Tools menu, select Personalization.

316 10.2.700
Epicor ICE 3.2 Customization User Guide Personalization | Chapter 2

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.2.700 317
Chapter 3 | Basic Customization Epicor ICE 3.2 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.

Assign 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
To give a user customization rights:
Navigate to User Account Security Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

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

318 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.2.700 319
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

Activate Developer Mode

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

Activation with Modern Home Page

Turn on this mode using the application with the Modern Home Page interface.
Developer Mode can be activated in several ways.

You can also press Ctrl + Shift + D to activate Developer


Mode.

1. On the main Epicor ERP window, click the bottom arrow. The Application Bar displays.

2. Click the Developer Mode button.

3. You can also activate Developer Mode from the Home screen. To do this, click the Settings tile.

320 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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

10.2.700 321
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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

6. 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.

Activation with Kinetic Home Page

Turn on this mode using the application with the Kinetic Home Page interface.
In the Kinetic Home Page application interface, this mode can be turned on in two ways.

You can also press Ctrl + Shift + D to activate Developer


Mode.

1. On the Kinetic Home Page of the Epicor ERP application, click the Utilities button in the top right corner
of the window. The list of utilities displays.

2. Select Developer Mode. The check sign appears next to this option, signaling the mode is turned on

322 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

3. Alternately, you can activate Developer Mode by going to Settings > General Options list and select
Developer Mode. The check sign appears next to this option, the mode is turned on.

10.2.700 323
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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

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.

324 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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.

10.2.700 325
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

326 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

19. Click OK.

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

10.2.700 327
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

3. The Options window displays.

328 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

10.2.700 329
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

2. Select Customization.

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

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

330 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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.

10.2.700 331
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

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.

332 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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.

10.2.700 333
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

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

334 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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.

10.2.700 335
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

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.

336 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

10.2.700 337
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

338 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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

10.2.700 339
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

340 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

10.2.700 341
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

342 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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

10.2.700 343
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

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

344 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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.

10.2.700 345
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

2. Select Toolbox.

3. The Toolbox window displays. Notice each element that you can place on your form has its own button.
Apart from the pre-defined controls discussed in this section, you can add custom controls to the client
side customization ToolBox. To do so, first add custom reference using the Assembly Reference Manager.
You then add the custom control to the list by right-clicking anywhere in the ToolBox and selecting
Choose Items.

346 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

The next sections describe each toolbox element.

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.

10.2.700 347
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

348 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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. To see the BAQCombo
tool in action, see the Case Studies section at the end of the BAQs chapter.

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.

For more technical details on these controls, review the Control


List topic within the application help. From the application help
Table of Contents, navigate to the Customization > Menus >
Tools Menu > Tool Box > Controls List topic.

10.2.700 349
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.
By default, this field displays the time using the twelve hour clock format. However if you can change the
Use24HourClock property to True, the afternoon (pm) hours display as 13:00, 16:00, 21:00, and so on.

350 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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.

For more technical details on these controls, review the Control


List topic within the application help. From the application help
Table of Contents, navigate to the Customization > Menus >
Tools Menu > Tool Box > Controls List topic.

10.2.700 351
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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

352 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

customization. The next time you customize this form,


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.

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.2.700 353
Chapter 3 | Basic Customization Epicor ICE 3.2 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.

354 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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.2.700 355
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

6. Click the Format menu.

356 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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.

10.2.700 357
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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. 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.

358 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

11. Notice the field no longer contains text.

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.

10.2.700 359
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

360 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

10.2.700 361
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

5. In the Customization Tools Dialog window, click the Text property. Clear the shipViaCombo1 text.

362 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

6. You now must place a label next to the new list. In the Toolbox window, click the EpiLabel element.

10.2.700 363
Chapter 3 | Basic Customization Epicor ICE 3.2 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.

364 10.2.700
Epicor ICE 3.2 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.

10.2.700 365
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

12. Exit the Customization Tools Dialog.

13. Close the Sales Order Entry form.

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.

366 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

1. In the Toolbox, click the EpiUltraGrid element.

10.2.700 367
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

3. Navigate to the Customization Tools Dialog window.

368 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

4. Click the EpiBinding drop-down list and select OrderRel.

5. In the Text property, enter Order Releases.

10.2.700 369
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

6. Click the Columns property and select the drop-down list. The Column Properties grid displays.

370 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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.

10.2.700 371
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

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.

372 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

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.

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.

10.2.700 373
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

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.

374 10.2.700
Epicor ICE 3.2 Customization User Guide Basic Customization | Chapter 3

2. Select Export Customization.

3. The Export Customization window displays.

10.2.700 375
Chapter 3 | Basic Customization Epicor ICE 3.2 Customization User Guide

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.

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.

376 10.2.700
Epicor ICE 3.2 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# or VB.NET 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.2.700 377
Chapter 4 | Advanced Customization Epicor ICE 3.2 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.

378 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

Launch Developer Mode

1. Double-click the MES shortcut icon to launch the application. The Select Customization window displays.

10.2.700 379
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

380 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

5. Click OK to continue to launch the base form.

6. The MES interface displays.

10.2.700 381
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

382 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

10. Click OK to continue to launch the base form.

11. The MES Menu refreshes. Notice the buttons on this interface activate.

10.2.700 383
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

384 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

15. Click OK.

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.

10.2.700 385
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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
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.

386 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 387
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

4. You also want the Ship Via label to use this style. Highlight the Ship Via label.

388 10.2.700
Epicor ICE 3.2 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.

10.2.700 389
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

2. Switch to the Main Menu.

3. From the Options menu, select Styling > Runtime Styler.

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.

7. The next steps are similar to exercises you followed in the Styling and Themes chapter. Select the Ship
Via drop-down list.

390 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

13. Select the Ship Via label.

10.2.700 391
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

392 10.2.700
Epicor ICE 3.2 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.2.700 393
Chapter 4 | Advanced Customization Epicor ICE 3.2 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.

3. Select the Ship Via label.

394 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.2.700 395
Chapter 4 | Advanced Customization Epicor ICE 3.2 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.

396 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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:

1. Click the New Row Rule button.

10.2.700 397
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

8. When you finish defining the rule, click the Right Arrow button.

398 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 399
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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:

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.

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.

400 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 401
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

402 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 403
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

8. Click the Right Arrow button. The new rule displays in the Custom Row Rules field.

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.

404 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 405
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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.

406 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 407
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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.

408 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

13. To change the Discount Percent, in the Disc % field, enter 2.00. The DiscountPercent field highlights.

10.2.700 409
Chapter 4 | Advanced Customization Epicor ICE 3.2 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.

410 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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:

1. Click the New Row Rule button.

10.2.700 411
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

9. Click the New Rule Action button.

412 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

10. Select the Custom Action (Code) check box.

11. Click the Right Arrow button.

12. Click the Update Code button.

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.

10.2.700 413
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

6. Load in a sales order, click the FOB drop-down list, and select Chicago Dock.

414 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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:

1. Click the New Row Rule button.

10.2.700 415
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

Define BitFlag Rule Action

Now define the action that occurs when the BitFlag condition activates.

1. Click the New Rule Action button.

416 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

7. Attach a memo to a sales order; Save the memo.

10.2.700 417
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

418 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

9. The Customer ID field is also highlighted.

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.

10.2.700 419
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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).

420 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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:

1. Navigate to the Wizards > Rule Wizard tab.

10.2.700 421
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

9. Click the New Rule Action button.

422 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 423
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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:

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.

424 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 425
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

2. Click Next.

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.

426 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 427
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

9. Enter a Description for this row rule. For this example, you enter Low Stock Quantity.

428 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 429
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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.

430 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

18. Click Finish.

Test the Image Column

Now you can test the customization.

1. Save the customization.

10.2.700 431
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

2. Exit the Customization Tools Dialog.

3. Close and relaunch the custom program.

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.

432 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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

10.2.700 433
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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 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.

434 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.2.700 435
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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;

436 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

7. Click the Update Selected Event Code button.

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:


• BeforeRowChange - 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.

• AfterRowChange - 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.
• BeforeFieldChange - 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.
• AfterFieldChange - 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.

10.2.700 437
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

• ListChanged - 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.
• 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.
• BeforeToolClick - This event runs from the EpiBaseForm before the framework processes a toolbar click
event. Use this event to bypass and suppress the base ToolClick behavior. The OnBeforeToolClick handler
exposes a BeforeToolClickEventArgs; you can then set args.Handled=true to bypass the base click behavior
and activate a different click result.
• AfterToolClick - This event occurs after a menu item is clicked. Use this event to add code that runs just after
a user clicks a specific menu item. The menu item code runs first and then the custom code activates.
• ToolClick - This event occurs when a menu item is clicked. Use this event to add code that runs immediately
when a user activates a specific menu item.
• 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.

438 10.2.700
Epicor ICE 3.2 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.

10.2.700 439
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

9. Click the Right Button. This adds the new sheet to your customization.

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.

440 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 441
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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 runtime dashboard
definition from the dataset. The data is pulled into the dashboard during run time using the Dashboard
ID.
• AppBuilder Panel – Select this option to cause the embedded dashboard to build the finished dashboard
assembly. The Assembly Dashboard must already be deployed to a Menu ID prior to this step. Since 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.

442 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.
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.

10.2.700 443
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization 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.

Finish the Sheet

1. You return to the Sheet Wizard. Notice the PartOnHandStatus now displays within the Add
Dashboard field.

444 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 445
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

446 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

6. Navigate to the Wizards > Event Wizard tab.

10.2.700 447
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

448 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

12. The Control Event Code field displays the code shell required for the control event. Notice the ‘// ** Place
Event Handling Code Here** comment.

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.

10.2.700 449
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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.

450 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

8. Click the Update All Event Code button to add this event script to the grid.

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

10.2.700 451
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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
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.

452 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 453
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

454 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

6. The new sheet now displays on your custom interface. From the Tools menu, select Toolbox.

10.2.700 455
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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. Restore the Customization Tools Dialog and click the Properties tab.

456 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 457
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

458 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 459
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

460 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

11. Click OK.

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.

10.2.700 461
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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 can enter custom code using either the
C# or VB.NET languages.

You must have a solid understanding of C# or VB.NET 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.

462 10.2.700
Epicor ICE 3.2 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 (VB.NET)
programming language. After you select the option and save the customization, you must always enter
code using the selected programming language.

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

10.2.700 463
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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.

464 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

3. To correct the errors, click the Error List tab.

10.2.700 465
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

466 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

7. Click Save to record your change.

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.2.700 467
Chapter 4 | Advanced Customization Epicor ICE 3.2 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.

468 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 469
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

General

The General options define some features that affect how the Script Editor works.

1. From the tree view, select the Behavior > General folder.

470 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 471
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.
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.

472 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

[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 UIException();

[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.

10.2.700 473
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

[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 ERP 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;

474 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

// ** 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()

10.2.700 475
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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, “Erp.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

476 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

dsSearch = Ice.UI.FormFunctions.SearchFunctions.listLookup(oTrans,“Pa
rtAdapter”, recSelected, true, whereClause);

if (reSelected)
{
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.

6. Repeat these steps for the AfterAdapterMethod.

10.2.700 477
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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
}

Compile/Script Errors

If you are experiencing problems when compiling the code in Script Editor, review the topics in this section. It
contains information about the most common issues and the steps you can follow to resolve these issues.
Resolve Conflicting DLLs

478 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

Referencing two versions of assemblies that have the same fully-qualified type names may result into the following
error:
Error: CS0433 - line <line_number> - The type <FullTypeName> exists in both <Fi
rstAssemblyName.dll> and <SecondAssemblyName.dll>
For example:
Error: CS0433 - line 38 (249) - The type 'Erp.BO.PackOutDataSet' exists in both
'c:\Epicor\Pacific\ERP10.1Client\Client\Erp.Contracts.BO.CustShip.dll' and 'c:
\Epicor\Pacific\ERP10.1Client\Client\Erp.Contracts.BO.PackOutSearch.dll’
To resolve this issue, the system automatically generates two extern alias statements at the top of the custom
code corresponding to the conflicting DLL names:
• extern alias Erp_Contracts_BO_CustShip;
• extern alias Erp_Contracts_BO_PackOutSearch

The external aliases are generated only if the selected


customization language is C#NET.

In order for the script to compile without the error, prepend the type name with extern alias name. The extern
alias name will be the name of the DLL name wherein dots (.) in the DLL name are replaced with underscore (_):
Erp_Contracts_BO_CustShip::Erp.BO.PackOutDataSet.PackOutRow testPOR = null;
or
Erp_Contracts_BO_PackOutSearch::Erp.BO.PackOutDataSet.PackOutRow testPOR = null;

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.

Launch Custom Object Explorer

To display the Custom Object Explorer:

1. In the Customization Tools Dialog, from the Tools menu, select Object Explorer.

10.2.700 479
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

2. The Custom Object Explorer window displays.

480 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

3. Notice you can use this program to search for three code object types – UI Objects, Data Objects, and
Adapters.

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.

10.2.700 481
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

5. The VB.NET tab displays the code snippet used for the UI object, property, or method. You can use this
code within your customization.

6. To view the C#.Net code used for the UI object, property, or method, use the C#.Net tab.

7. On the VB.Net tab, click the Copy button to place this code snippet onto your clipboard.

8. Navigate to Script Editor. Right-click to display the context menu.

9. Select the Edit sub-menu.

10. Select Paste.

11. The code example is added to your custom code.

482 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

10.2.700 483
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.
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.

484 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 485
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

Code example:
' ** Get Property
Dim [varName] As Object = ILaunch.Session

486 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 487
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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;

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.

488 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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”);
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.

10.2.700 489
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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
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 C#.Net code for this data object displays in the bottom field. Use this code example for accessing the
field.

7. Use the VB.Net tab to view the VB.Net code for this data object.

8. Notice you can click the Copy button to place either of these codes 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.

490 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

2. To see the EpiDataViews available for a specific UI application, click the Data Objects tab.

10.2.700 491
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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));

492 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

What Displays

The following items display on the Adapters tab:

1. Click the Get Adapters button.

10.2.700 493
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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.

494 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

Use Assembly Reference Manager

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.

10.2.700 495
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

5. The Native Assemblies node displays all the assemblies required to run the current standard (non-customized)
user interface. Notice the Erp.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 Erp.Adapters.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 Erp.Adapters.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.

496 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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:

1. The From the Tools menu, select String Manager.

10.2.700 497
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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".

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.

498 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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 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.

Launch a Wizard

To display a wizard:

1. In the Customization Tools Dialog, from the Tools menu, select Wizards > Customization Wizards.

10.2.700 499
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

2. The Customization Code Wizard Dialog displays.

500 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.2.700 501
Chapter 4 | Advanced Customization Epicor ICE 3.2 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.

502 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 503
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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 user-defined fields to a table, and then use these fields to create a
search program.

Do not confuse creation of user-defined fields with UD tables


delivered directly with the application. User-defined fields are
additional columns you add to an existing table. When you
search for these columns, their names include the "_c" suffix.
Delivered UD tables are empty tables (Ice.UD01, Ice.UD22,
Ice.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.

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.


Menu Path: System Setup > System Maintenance > UD Column Maintenance

This program is not available in Epicor Web Access.

This program may not be available, or operate under


certain restrictions in Epicor Cloud ERP.

In Epicor Cloud ERP - Multi Tenant or Epicor Cloud


ERP - Dedicated Tenancy, this program or feature may
not be available or may operate under certain restrictions.

504 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

2. Click the New button.

3. The Table Search window displays. For this example you find and select the OrderHed table.

10.2.700 505
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

4. Click OK.

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.

506 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

6. Now add the Search02, Search03, Search04 character fields. Use the the x(20) Format for each field.

10.2.700 507
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

7. When you finish created these custom columns, click Save.

8. 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 user-defined columns, you must regenerate the data model for the specific database. You
do this task on the server that contains your database.

To regenerate data model and recycle application pools in


Epicor Cloud ERP (Dedicated Tenant) environment, you
must promptly submit a request via an EpicCare case and
specify the location of the newly added user-defined data
(table/column) - System, Live, or Pilot, - and the best time
the Cloud Operations team can run these processes.

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.

508 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

6. Enter the Server name where the database is located. Notice this field initially populates with the database
server for the selected database.

7. Now for the Database name, enter the database for which you are regenerating the database model. This
field initially populates with the selected database.

8. Select the Authentication method you use for this database. You can select either SQL Server
Authentication or Windows Authentication.

9. Next enter your current login values in the User name and Password fields.
• If you select Windows Authentication, the User name and Password default to your current login
values.
• If you select SQL Server Authentication, enter the user account and password you use to log into SQL
Server.

10. If you want this window to save this password for future use, click the Remember password check box.

11. Click Generate.

If you receive an error that the .dll file for the data model
generation is in use by another process, end the task.
Launch the Internet Information Services Manager by
clicking Start > Programs > Administrative Tools > Internet
Information Services (IIS) Manager. Select the Application
Pools node; the center pane displays the application pools
available on your system. Right-click your application
server node; from the context menu, select Recycle. You
should be able to regenerate the data model.
Likewise if you receive an error that states some tables
did not synchronize, you can review the log file to see
more details about these table errors. The location of this
log file displays in the error message.

10.2.700 509
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

12. Now to complete this process, you must pull the latest data model from the database and copy it to the
local application server by recycling the application pool. Recycling the application pool is a mandatory task
after the data model successfully regenerates. To do this, click Start > Programs > Administrative Tools
> Internet Information Services (IIS) Manager.

13. Select the Application Pools node.


The center pane displays the application pools available on your system.

14. Right-click on the application pool for your application server; from the context menu, select Recycle.
Optionally you can also recycle the application pool within the Epicor Administration Console. To do this,
expand the Server Management node and select your application server. From the Actions pane, select
the Recycle IIS Application Pool option.

The regenerate process stages the data model in the database. When the application server restarts, the Epicor
ERP application checks the data model on both the disk and the database. If a new data model version is available,
this version is retrieved from staging and the database is updated to include the user-defined table. Epicor users
can now view and enter data in the user-defined columns.

When you reference these user-defined columns through either


programming or a customization, the columns appear to be
part of the base (primary) table because the data model merges
the two tables into one logical entity. To identify the UD
columns, their identifiers all use the "_c" suffix.

If you need to regenerate the data model more often, consider running this process through a command line, a
desktop icon, or a recurring task. These launch options are explained in the Epicor Administration Console help,
Command Line Tools Guide and the System Administration Guide.

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.

510 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

Menu Path: Sales 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.

5. The Toolbox displays.

10.2.700 511
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

Use the Event Wizard

You next must add a click event to the new button.

1. Navigate to the Wizards > Event Wizard sheet.

512 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

Add Text Fields

Next add the fields that will populate with search results.

1. Return to the Toolbox and select EpiTextBox.

10.2.700 513
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

6. Now return to the Toolbox and select EpiLabel.

514 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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
Email: OrderHed.Search04_c epiLabelC4 120, 20

10.2.700 515
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

516 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 517
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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

518 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 519
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

2. Click Save.

3. Relaunch your Sales Order Entry customization and navigate to the One Time Ship To tab.

520 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 521
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

522 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

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.

10.2.700 523
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

524 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

User-Defined (UD) Table Add/Edit/Delete Functionality Wizard

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.
A common customization is to add a user-defined (UD) table as a sub-table within a customized form.

This type of customization is normally available for Multi-View


forms that contain more than one related EpiDataViews and
associated EpiControls - for example, Sales Order Entry.
However, if absolutely necessary, you can add a UD table to a
Single-View form. To do this, you need to enable the
AddEnabled parameter of the InitializeUDXXAdaptor method
in the customization code by adding a line in the following
format: this.[PrimaryEpiDataViewName].AddEnabled =
true. For example, this._edvDMRCorAct.AddEnabled
= true;

10.2.700 525
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

526 10.2.700
Epicor ICE 3.2 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.

10.2.700 527
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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.

528 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 529
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

7. The mapped fields display in the View/Field list.

530 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

8. Click Finish.

9. Close the wizard and the Customization Code Wizard dialog boxes.

10. Save your customization.

10.2.700 531
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

Use the Event Wizard

1. After you relaunch the customized program, launch the Customization Tools Dialog.

532 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

7. Navigate to Wizards > Event Wizard.

10.2.700 533
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

534 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

10.2.700 535
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

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.

536 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

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.

Custom Controls

1. To edit the .xml created for the customized controls on the form, click the Custom Controls tab.

10.2.700 537
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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 Ice.Lib.Framework.EpiUltraGrid.

538 10.2.700
Epicor ICE 3.2 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.

10.2.700 539
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

9. To finish updating the custom form’s .xml, click OK.

Debug Customizations
® ®
If you have Microsoft Visual Studio 2010, 2012, or 2013 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.
® ®
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.

540 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

6. Click the Continue button.

7. Your customized program launches.

10.2.700 541
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

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.

542 10.2.700
Epicor ICE 3.2 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.

10.2.700 543
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

Continue to step through the code for your customization. By leveraging Visual Studio, you can quickly identify
and correct errors in your customization.

Custom Methods and Epicor Functions

This section explains how you can make a REST call against a Custom Method or Epicor Function from a client
customization or a standalone C# project.
The Epicor REST API client provides a simple way of calling Epicor Functions and Custom Methods. Note that
OData is not directly supported at this time. Calling a Function or a Custom Method via REST can be broken into
four parts: creating a C# client, specifying call parameters, executing a call, and handling the response.

Create REST Client

This topic explains how you can create a new instance of a REST Client.

1. Add reference to the REST Client Builder assembly.


To do this, follow the steps below depending on the type of your customization project.
WinForms Client Customization

544 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

a. Enable Developer Mode and add your customization layer - for example add a new control to the
program user interface (UI).

b. Open the ERP program you wish to customize - for example, Tip of the Day.

c. In the Customization Tools Dialog, go to Tools > Assembly Reference Manager.


The Custom Assembly Reference Manager window displays.

d. Click Add Custom Reference.

e. From the Client folder, select the Epicor.Ice.Lib.RestClient.dll assembly and whatever contract
assemblies you intend to use.

Select All files (*.*) from the file name filter to be


able to select this assembly.

f. Click OK.
At this point, you should be able to reference the RestClientBuilder to create your REST clients. You
will want to add the following C# using declarations as well as any contract assemblies you need to work
with:
using Ice.Lib.RestClient;
using Ice.Tablesets;
using Ice.Common;

Standalone C# Project

a. Create a new project - for example, a .NET Framework 4.8 console project, or use an existing .NET project.

b. From the Client folder, add a reference to Epicor.Ice.Lib.RestClient.dll to your project.

c. Add references to whatever contract assemblies you intend to use.

If you are using this from outside the standard Epicor


client directory, then you will need to copy the
Epicor.ServiceModel.dll and Newtonsoft.Json.dll
assemblies to your execution directory.

2. Create the REST API Client.

a. Set an API Key for your client.

A valid API Key must be passed with any call against


the Epicor REST API v.2. API Keys are managed through
the API Key Maintenance program (System Setup
> Security Maintenance > API Key Maintenance).
You can set the default API key with the REST Client
Builder, as shown in the below examples, with
SetDefaultApiKey, or you can set it in the content
of each individual REST call.

The below examples show how to set the default API key as well as using a user name and password
for authentication. The second example uses basic authentication. Directly using token authentication
is currently not supported. If token authentication is required then create a client Session and use
UseSession instead.

10.2.700 545
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

b. If you have a client Session, you can use it to configure your client, including the Company ID that also
must be specified in any call against the Epicor REST API v.2.
In this example we are inside an Epicor WinForms customization and have access to the Session through
this.oTrans.CoreSession. This is the simplest way to create a REST client:
private const string ApiKey = "MyApiKey";
var restClient = new RestClientBuilder()
.SetDefaultApiKey(ApiKey)
.UseSession(this.oTrans.CoreSession)
.Build();

c. If you do not have a client Session, you must provide the following information: application server URL,
Company ID, API Key, and credentials. Here is a simple code sample for setting this up:
private const string ApiKey = "MyApiKey";
var restClient = new RestClientBuilder()
.SetAppServerUrl("https://host/ERP10")
.SetCompanyId("Company")
.SetDefaultApiKey(ApiKey)
.UseBasicAuthentication("UserName", "Password")
.Build();

The above approach uses basic authentication. If you


use Single Sign On, replace the
'.UseBasicAuthentication' with the following code:
.SetIsSingleSignOn(true)

Note that directly using token authentication is currently not supported. If token authentication is required,
create a client 'Session' and use 'UseSession' instead.

Specify Call Context

This topic explains how you specify parameters.


In call content, you need to specify a valid API Key to authenticate against the Epicor REST API and Custom
Method or Function input parameters.
If you need to specify an API key specific to your call, you can do the following:
private const string ApiKey = "MyApiKey";
var getByIdContent = new RestContent(new { mfgSys = "EP", tipNum = 123 })
.SetApiKey(ApiKey);

This works with any of the different ways of specifying the


parameters below.

There are two supported ways of making REST calls: HTTP GET and HTTP POST. Each method sends the
parameters to the server in a slightly different way. For HTTP GET, the parameters are specified at the end of the
URL. For HTTP POST, the parameters are specified as content in the request body as a JSON document.
Additionally, there are a number of ways of building the parameters. Depending on what you are calling, parameter
names may be case sensitive. For example, names are case sensitive when calling service methods (sometimes
referred to as "custom methods"), but not when calling Epicor Functions. Order of parameters is not important.
You can use the same parameter "sets" for different calls as long as the necessary parameters are specified and
of the correct type.
The following are the examples of building parameters for HTTP GET and HTTP POST methods:

546 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

1. Anonymous Type Parameters


The easiest way of doing this is to use anonymous types. This is a C# feature that allows you to define classes
in a very simple and concise manner.
• For HTTP GET:
var getByIdParameters = new { mfgSys = "EP", tipNum = 123 };

• For HTTP POST:


var getByIdContent = new RestContent(new { mfgSys = "EP", tipNum = 123 })
;

Here, we are setting up the call content to call the Tip


service's GetByID method. This method takes a string
parameter named mfgSys and an integer (Int32) named
tipNum.

2. POCO Parameters
POCO (Plain Old C# Object) are classes that you define to hold your parameters. This is what anonymous
types do in a more verbose way. This would work better for sets of parameters you use more than once or
for more complex sets of parameters. The below shows how to define the class to use for parameters:
internal class GetByIdParameters
{
public GetByIdParameters(string mfgSys, int tipNum)
{
this.mfgSys = mfgSys;
this.tipNum = tipNum;
}

public string mfgSys { get; set; }

public int tipNum { get; set; }


}
• For HTTP GET:
var getByIdParameters = new GetByIdParameters("EP", 123);

• For HTTP POST:


var getByIdContent = new RestContent(new GetByIdParameters("EP", 123));

3. Dictionary Parameters
If you need to dynamically build a set of parameters then you can simply build a Dictionary<string, object>
that holds the parameters and their values - for example:
• For HTTP GET:
var getByIdParameters = new Dictionary<string, object> { ["mfgSys"] = "EP
", ["tipNum"] = 123 };

• For HTTP POST:


var getByIdContent = new RestContent(new Dictionary<string, object> { ["m
fgSys"] = "EP", ["tipNum"] = 123 });

4. JSON Parameters - HTTP POST only

10.2.700 547
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

All the above mechanisms for specifying a set of HTTP POST parameters convert the specified parameters
into a JSON document. If you want, you can specify the JSON content directly as a string:
var getByIdContent = new RestContent("{ \"mfgSys\": \"EP\", \"tipNum\": 123
}");

5. Query string parameters - HTTP GET only


All the above mechanisms for specifying a set of HTTP GET parameters just converts the specified parameters
into a query string in the URL. If needed, you can specify the query string directly.
var parameters = "mfgSys=EP&tipNum=123";
This approach provides most control over your parameters, however, it assumes understanding of how the
query is used.

Special considerations for HTTP GET method parameters:


• The individual values must be encoded correctly. In .NET Framework, the System.Uri class can be used to build
the URI with the correct encoding. For example, 'A & B' needs to passed as 'A %26 B'.
• Complex parameters such as DataSets or other classes need to be serialized to JSON, for example: 'https:
//localhost/ERP/api/v2/Ice.BO.SomeService/GetData?request={ "viewId": "Ice.UI
Rpt.ChgLogReport", "properties": { "layers": [ "MyLayer", "MyLayer2" ] } }'
The request parameter represents a class, defined as per the below example:
''' C#
public class MyClass
{
public string ViewId { get; set; }
public MyChildClass Properties { get; set; }
}

public class MyChildClass


{
public string[] Layers { get; set; }
}
'''

• To specify arrays using 'IEnumerable<>', 'IList<>' or 'List<>' parameter types, make sure to specify each value
separately using the same parameter, for example:
https://localhost/ERP/api/v2/Ice.BO.SomeService/GetData?value=A&value=B&value=C.
Each value in the array is specified as if it were the only value. Because the parameter is defined as one of the
above types, on the server side, it will build up the list of values from the individual values.

There is no way to send a 'null' value for the list parameter.


Any null value in the list will be lost and the value on the
server will be an empty list if no values are sent.

Make REST Call

This topic explains how you execute a call against Epicor REST API.

The client currently supports Epicor Functions and Custom


Methods of the Epicor REST Services v.2. The REST client can
be used multiple times and is thread-safe.

Asynchronous versus synchronous calls

548 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

Calls can be either synchronous or asynchronous. The asynchronous methods all have Async at the end of the
method name. When calling from a WinForms customization, you will usually use the synchronous calling style.
In other areas, you should default to asynchronous calls, if possible. Asynchronous programming gives a good
overview of asynchronous programming in C#.
Asynchronous calls can be used from the WinForms client, but are more complicated than synchronous calls. For
example, you can use the standard C# async/await style, on an event such as a button Click. When you call
the REST server, the Click event will immediately return before the server responds. If the server call takes a long
time, such as 20 seconds, the user will see control being returned to the UI and they will be able to do whatever
they like including closing the UI. If you choose to use asynchronous calls, you may want to disable the UI before
making the call. In any case, understand that there are additional complexities you need to consider when using
asynchronous calls.

1. Calling Epicor Functions


Epicor Functions require you to specify the library and Function names. You can also specify whether you
are calling the staged (unpublished) or published version of the Function:

a. Sync Call
var getByIdResponse = restClient.Function.Post("LibraryName", "FunctionNa
me", getByIdContent, published: true);

b. Async Call
var getByIdResponse = await restClient.Function.PostAsync("LibraryName",
"FunctionName", getByIdContent, published: true);

2. Calling Custom Methods


Calling a Custom Method of a REST Service requires specifying the service and method names. You can find
the service name, method name, parameters and return values in the Epicor REST API v.2 Interactive Help
Page that can be found at the following URI: https://[EpicorServer]/[ERPInstance]/api/help/v2/.
Please refer to the REST Service v.2 Guide in the Application Help (System Management > Working
with System Management > REST Services v.2) for details on the latest version of the Epicor REST
API.

• For HTTP GET:


• Sync Call
var getByIdParameters = new { mfgSys = "EP", tipNum = 123 };
var getByIdResponse = restClient.Service.Get("Ice.BO.TipSvc", "GetByID"
, getByIdParameters);

• Async Call
var getByIdParameters = new { mfgSys = "EP", tipNum = 123 };
var getByIdResponse = await restClient.Service.GetAsync("Ice.BO.TipSvc"
, "GetByID", getByIdParameters);

• For HTTP POST:


• Sync Call
var getByIdContent = new RestContent(new { mfgSys = "EP", tipNum = 123
});
var getByIdResponse = restClient.Service.Post("Ice.BO.TipSvc", "GetByID
", getByIdContent);

10.2.700 549
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

• Async Call
var getByIdContent = new RestContent(new { mfgSys = "EP", tipNum = 123
});
var getByIdResponse = await restClient.Service.PostAsync("Ice.BO.TipSvc
", "GetByID", getByIdContent);

Handle Response

Like the content you send, the response that comes back can be processed in many different ways. As with
parameters, in some cases you must be case-specific in your naming and in some you don't.
The different "get result" methods described below are extension methods. To see and use them, you must add
a using declaration for the Ice.Lib.RestClient namespace:
using Ice.Lib.RestClient

1. JSON Response
All communications between the client and the server are done through JSON. You can use this directly,
but it requires fiddling around more than you might want to do:
var getByIdResult = getByIdResponse.GetJsonResult();
The response will look something like this:
{
"ds": {
"Tip": [
{
"Company": "",
"MfgSys": "EP",
"TipNum": 123,
...
"RowMod": ""
}
],
"ExtensionTables": []
}
}
You can see from this that there is one value being returned named ds. This result value is the Tip TableSet
from the Tip contract.

You have to be careful using this because the serializer


will assume data types since there is no way to determine
the exact type just from the returned JSON. For example,
the TipNum in the JSON above will be interpreted as a
C# long instead of int. Also, some data types, such as
the Epicor TableSets, need extra handling to deserialize
correctly. This handling suits most use cases. Use the other
get result methods if you want guaranteed data types.

2. Dynamic Response
C# has the dynamic type allows you to use the GetJsonResultAsync and code more easily. Simply change
the returned type to dynamic as shown here:
dynamic getByIdResult = getByIdResponse.GetJsonResult();

550 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

GetJsonResultAsync will still return a JObject as always, but C# will treat it as a dynamic value. This allows
you to access the values in the result in a much simpler way - for example:
var tipTable = getByIdResult.ds.Tip;
var tipRow = tipTable[0];
var tipTitle = tipRow.TipTitle;

Data types will be assumed as they are when using the


JSON response directly.

3. Anonymous Type Response


If your result is simple enough, you can use an anonymous type as we did for the call content. You define
the structure of the result data by creating an instance of the anonymous class. This is a much shorter syntax
than defining your own C# class. Note that you actually create an instance of your anonymous class specifying
values of the appropriate types. The instance you create is not actually used so the values you specify do
not matter - for example:
var getByIdResult = getByIdResponse.GetAnonymousResult(new { ds = (TipTable
set)null });

var tipTableSet = getByIdResult.ds;

4. POCO Response
If you choose, you can define the response as a C# class and specify it as the result value - for example:
var updateResult = updateResponse.GetTypedResult<UpdateResponse>();
...
private class UpdateResponse
{
public TipTableset ds { get; set; }
}
For more complex result values you have to use POCO's instead of anonymous types. For example, the Tip
service's Update method returns JSON that looks like this:
{
"parameters": {
"ds": {
"Tip": [
{
"Company": "",
"MfgSys": "EP",
"TipNum": 123,
...
"RowMod": ""
}
],
"ExtensionTables": []
}
}
}
Note that the result value is enclosed in a parameters object. To get to this data you need to build a parent
and child C# class like this:
private class UpdateResponse
{
public UpdateParametersResponse parameters { get; set; }
}

private class UpdateParametersResponse


{

10.2.700 551
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

public TipTableset ds { get; set; }


}

DataSet/TableSet Handling
The application server only uses TableSets while the WinForms client only uses DataSets. The REST client will
automatically convert to and from DataSets if you specify enough information to know the object being serialized
is a DataSet. For call parameters, this will not work using JSON parameters. For return values, you can't use
JSON response or Dynamic response since neither specify that the data coming back is a DataSet.
If you are writing performance critical code then you should use TableSets instead of DataSets since the data has
to be copied between the TableSet and DataSet. From small amounts of data, this is trivial, but could become
wasteful on large data set.

Error Handling
Error handling is almost identical to the WCF (Windows Communication Foundation) error handling. You should
be able to use the same try/catch kind of code as you are used to.
Some exception responses don't have enough information to recreate the original exception. These are converted
to UnknownRestException's. This exception holds all the available information that is returned from the REST
call. This includes the raw HttpResponseMessage, the response content as a string and an
ApiExceptionResponse. Error responses that are not produced by the application server, such as those caused
by an invalid URL, will have the first one or two of these values. Error responses from the application server should
also have the ApiExceptionResponse, which is used to serialize the error information to the client. You can use
this information to determine how to handle the error similar to how you would in WCF calls.

Be aware that in the future, more exceptions may be added


to the mapped ones above.

Examples

This topic contains examples that demonstrate REST calls from client customizations.

Calling Function from Client Customization


This example adds some custom controls to a form and calls an Epicor Function. Customize the Tip of the Day
Maintenance program. See the Create REST Client topic to configure the customization.

1. In Epicor Functions Maintenance, create a new TipLib library and a widget Function named NextTipNum.

1. Add the tipNum request parameter and the nextTipNum response parameter to the Function.

2. Add a Set Argument/Variable widget and set the nextTipNum parameter to the following expression:
TipNum + 1

3. Map library to a Company - for example, EPIC06.

4. Promote library to production.

2. Generate an API Key in API Key Maintenance.

3. Customize Tip of the Day by adding a button and a multiline text box to the UI.

552 10.2.700
Epicor ICE 3.2 Customization User Guide Advanced Customization | Chapter 4

Use the Wizards > Event Wizard to create an empty Click event handler for the button.

4. Paste the following code after the using declarations at the top of the code window:
using Ice.Common;
using Ice.BO;
using Ice.Lib.RestClient;

5. Assuming you used the default control names, you should be able to copy/paste the code below over the
empty method.

Replace the MyApiKey with the appropriate value you


generated in Step 2.

private const string ApiKey = "MyApiKey";


private const string LibraryName = "TipLib";

private void epiButtonC1_Click(object sender, System.EventArgs args)


{
var restClient = new RestClientBuilder()
.SetDefaultApiKey(ApiKey)
.UseSession(this.oTrans.CoreSession)
.Build();
using (restClient)
{
try
{
var nextTipNumContent = new RestContent(
new { tipNum = (int)this.Tip_Row.CurrentDataRow["TipNum"] }
);
var nextTipNumResponse = restClient.Function.Post(
TipLib,
NextTipNum,
nextTipNumContent,
published: false);
var nextTipNumResult = nextTipNumResponse.GetAnonymousResult(
new { nextTipNum = 0 });
this.epiTextBoxC1.Text = nextTipNumResult.nextTipNum;
}
catch (RecordNotFoundException ex)
{
MessageBox.Show("Tip not found.");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}

6. Open the customized UI, pick an existing tip, click the custom button and have the custom text box filled
with the appropriate value.

Calling Custom Method from a Standalone Project


This example gets tip number 123, adds some text on the end of the TipText field and updates the row. See
the Create REST Client topic for the initial setup. Replace the constants with appropriate values.
using Ice.Common;
using Ice.BO;

10.2.700 553
Chapter 4 | Advanced Customization Epicor ICE 3.2 Customization User Guide

using Ice.Lib.RestClient;

private const string ApiKey = "MyApiKey";


private const string BaseUrl = "https://host/Erp10";
private const string CompanyId = "CompanyId";
private const string UserName = "UserName";
private const string Password = "Password";

private static async Task Main()


{
var restClient = new RestClientBuilder()
.SetDefaultApiKey(ApiKey)
.SetAppServerUrl(BaseUrl)
.SetCompanyId(CompanyId)
.UseBasicAuthentication(UserName, Password)
.Build();
using (restClient)
{
TipTableset tipTableSet;
var getByIdParameters = new { mfgSys = "EP", tipNum = 123 };
using (var getByIdResponse = await restClient.Service.GetAsync("Ice.BO.
TipSvc", "GetByID", getByIdParameters))
{
var getByIdResult = await getByIdResponse.GetAnonymousResultAsync(n
ew { returnObj = (TipTableset)null });
tipTableSet = getByIdResult.returnObj;
}

var tipRow = tipTableSet.Tip[0];


tipRow.TipText += "\r\n" + DateTime.Now.ToString();
tipRow.RowMod = IceRow.ROWSTATE_UPDATED;

using (var updateContent = new RestContent(new { ds = tipTableSet }))


using (var updateResponse = await restClient.Service.PostAsync("Ice.BO.
TipSvc", "Update", updateContent))
{
var updateResult = await updateResponse.GetTypedResultAsync<UpdateR
esponse>();
}
}
}

private class UpdateResponse


{
public UpdateParametersResponse parameters { get; set; }
}

private class UpdateParametersResponse


{
public TipTableset ds { get; set; }
}

554 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

10.2.700 555
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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

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.

556 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

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.

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.

10.2.700 557
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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).

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.

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.

558 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.
• Name – The fields for each table display in alphabetical order by name.

10.2.700 559
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

560 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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 .

2. From the Help menu, select Field Help.

3. The Field Help window displays.

10.2.700 561
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

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.

562 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

10.2.700 563
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

Tracing Log

Use the Tracing Log to capture calls the client sends to the server. When you activate this feature, any business
logic (BL) calls sent from the client installation to the server are automatically recorded within a log file.
Run this client log to fine-tune your custom programs. You can use it to find out which business logic method
calls are activated when users do specific actions. You can find out the duration of these business calls and also
see the specific data these calls send to and from the server.
The client tracing log can be activated in two ways. Your system administrator can activate the client tracing log
on your user account. Then each time you access the Epicor ERP application through your user account, a client
log automatically generates. You can also manually activate this tracing log in a client. You can then decide what
transactions you want to trace and the directory path where this client tracing log generates.

Activate From User Account

You or a system administrator can set up the client log to automatically run each time you log in through your
user account.
You activate the tracing log through User Account Security Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

1. On the Detail sheet, click the User ID... button to find and select the user account you wish to update.

564 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

2. Click on the Tracing sheet.

3. Select the Enable Trace Logging check box.

4. Click the Write Full DataSet check box if you want to record all header and detail information within the
tracing log. If this option is not selected, only header information is stored within the log.

5. 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.

10.2.700 565
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

6. Activate the Include Server Trace check box when you want to track the client's interaction with the server.
This creates a <serverTrace> node within trace packets (<tracePacket>) in the client tracing log. Use the
database activity gathered in this section to review how the client installation may be affecting the
performance of the server.
You can add server profiles and traces to the client log. When you select the Include Server Trace check
box, the client log captures these additional options. To add these profiles and traces to the client log,
update the .sysconfig file that launches the client installation. You can also customize what the tracing
log tracks by creating a client configuration file that contains additional tracing options and logging levels.
These custom options are used when you activate the client tracing log.
For more information, review the Performance Tuning Guide in the application help. The Custom
Trace Logs section documents how you add these server profile and custom trace options.

7. 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 that verifies data and other custom functions.

8. 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.

9. Now select the Log Directory Scheme option for the default log directory. The option you select defines
the directory path scheme for this client account.

If you select the Default from Epicor.exe.config file option,


you use the path defined in the Epicor.exe.config file. This
config file is located in the Client directory for each Epicor
ERP installation.
To learn how to set up this feature, review the Auto
Capture Client Logs topic in the Performance Tuning
Guide. This guide is found in the application help under
the System Management > Working With > node.

Notice after you select a scheme option, the Current Log Directory field displays the default directory path
and folder that gathers the client logs for this user account.

10. Click Save.

The next time you launch the Epicor ERP application with this account, a client log automatically generates using
the selected Dataset Options. It generates in the default file location specified on the user account.
A new log file is created each time you log into the application with this user account. If you log into multiple
computers through the same user account, a new log generates for each client instance.

Activate From Client

You can manually activate the tracing log on a client installation.


'When you activate the tracing log through a client, you can also select the directory where this log generates.
This directory path overwrites the directory path that may be defined on the user account within User Account
Security Maintenance.
To activate the trace log on a client:

566 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

1. When you run the application using the Classic interface, you activate the trace log from the Main Menu.
Click Options > Tracing Options.

2. When you run the application using the Modern Shell interface, you can activate the trace log in a couple
ways. Click the Down Arrow at the bottom of the window to display the toolbar.

3. Now click the Tracing Options button.

4. You can also activate the tracing log from the Home menu. Click the Settings tile.

10.2.700 567
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

5. Click the General Options setting.

568 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

6. Select Tracing Options.

7. If you run the application using the Kinetic Home Page style, on the Home Page, select Tracing Options
from the overflow menu.

Alternately, click the User icon at the bottom left corner of the window and select More Settings.

8. On the Settings page, select General Options > Tracing Options.

10.2.700 569
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

9. Whichever way you access it, the Tracing Options Form window displays. Use this window to define how
the Tracing Log captures the BL calls.

10. 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.

The next section describes the write options available for the log.

570 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

Select Write Options

You next decide what information the client log tracks and how you want to view the log.
To make it easier to locate information, 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 decide how the tracing log displays:

1. Select the Dataset Options you want the client trace log to track. Each option you select causes the log
to record another type of transaction data.

Notice these options match the ones available on User


Account Security Maintenance; for information on each
option, review the previous Activate From User Account
topic.

2. Activate the Include Server Trace check box when you want to track the client's interaction with the server.

This creates a <serverTrace> node within trace packets


(<tracePacket>) in the client tracing log. Use the database
activity gathered in this section to review how the client
installation may be affecting the performance of the
server.

10.2.700 571
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

For more information, review the Performance Tuning


Guide in the application help. The Custom Trace Logs
section documents how you add these server profile and
custom trace options.

3. If you select the Trigger Hits check box, when a record is sent to the database to be added, updated, or
deleted (Write/Update/Delete), the framework creates an event in which SQL Server intercepts the call and
performs table specific logic. After this event is processed, the record is sent to the database. Select this
check box to record these trigger events in the server log.

4. Activate the ERP DB Hits check box to track how the Epicor ERP application interacts with the database.
You can review each database hit as well as how long it took each hit to complete.

5. Select the BPM Logging check box to record Business Process Management (BPM) method calls. Each time
user activity activates a BPM directive, the application server log records the business object method that
was called and how long this call took to complete. This option is production friendly.

6. Select the BAQ Logging check box to record Business Activity Query (BAQ) database calls. Each time user
activity activates a BAQ, the application server log records which query was called and how long it took this
BAQ to gather the data results. This option is production friendly.

7. Use the Other Flags (comma delimited list) field if you want to include additional traces in the log. You
can review the available client and server trace options in the Customize Logs chapter of Performance Tuning
Guide. Note that when you enter multiple trace options, you should delimit them using commas.

8. Select the Enable EO Browser Trace Logging option to capture EO Browser error and console messages
to a log file.
ERP programs that have a Kinetic user interface (UI) can be launched as Kinetic applications in the embedded
EO Browser. The EO Browser maintains an internal running log that may provide useful information to
troubleshoot a problem. The Enable EO Browser Trace Logging option allows to silently collect this log
and save it to a file on the Epicor application server.

9. The Current Log File displays the directory path and filename for the tracing log. If your system administrator
activates the client log through User Account Security Maintenance, the default directory path defined
on the user account displays in this field. However you can enter a different directory path in this field or
click the Browse (...) button to find and select it. After you click Apply or OK, this custom directory path
becomes the default location that stores the generated log files for this client.

10. Click the View button to display the log within a .txt format.

11. 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.

12. The XML File field displays the directory path and filename for the .xml version of the tracing log. Click the
Browse button to find and select this directory path and filename.

13. 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.

14. To remove all entries from the tracing log, click the Clear Log button.

15. To add all these current settings to the tracing log, click the Apply button.

572 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

16. 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.2.700 573
Chapter 5 | Customization Utilities Epicor ICE 3.2 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 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.

574 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

4. The Current Status field displays the type of context menu that currently displays. Available options:
• Base – A context menu installed with the application.
• 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 option. When users right-click the field to display the
context menu, this text value displays.

If you need this text to appear in another language besides


English, you must first enter this value in English and save
the custom context menu. Then launch Language
Maintenance, select the language you will use for the
translation, and then translate the string on the
Translations > List sheet. For more information, review
the Localization chapter.

7. The Process Type list defines what type of program appears when this context menu node is selected.
Available options:
• Base Form - An entry, maintenance, or other Epicor ERP program.
• Search Form - A search program linked to the <tablename>.<column> for the context menu.
• Zone Info - A business activity query (BAQ) used to pull in data through a BAQ Zone.

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.2.700 575
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

10. Click Save on the Standard toolbar. The context menu is updated.

You can also remove items from a context menu. However if you try to delete a BPM Holds menu item, a
confirmation message displays indicating that once deleted, the BPM Hold menu item cannot be restored to this
menu. Click Yes to remove the item.

576 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

10.2.700 577
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

578 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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 option to a context menu. Click the
Down Arrow next to the New button; select New Context Menu Item.

6. Enter the Menu Item Name. When users right-click the field to display the context menu, this text value
displays. In this example, you enter Salesperson Pipeline.

If you need this text to appear in another language besides


English, you must first enter this value in English and save
the custom context menu. Then launch Language
Maintenance, select the language you will use for the
translation, and then translate the string on the
Translations > List sheet. For more information, review
the Localization chapter.

7. Click the Process Type drop-down list and select Base Form.

8. The Base Form sheet displays.

9. Click the Process ID button to find and select the Salesperson Pipeline program.

10. Notice the new Salesperson Pipeline menu item displays on the Tree View. Click Save.

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.

10.2.700 579
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

The Workforce Search option now displays on this custom context menu.
Continue to add any additional items you need. Notice in this example, the Salesperson Quota and Salesperson
Workbench are added to this custom context menu. You can now link your new context menu to a text box.

580 10.2.700
Epicor ICE 3.2 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.UserChar01 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.

8. When you right-click the text box, your new context menu displays.

10.2.700 581
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

User-Defined Fields

You can add user-defined (UD) fields to an interface so users can enter unique data.

You only need to add columns if you use an on-premise


environment. If you are in an Epicor Cloud ERP environment,
the additional columns most likely are on the table, so you do
not need to add them. When you create a customization, use
the EpiBinding property to locate these additional columns;
they are called Character01, Date03, Number02, and so on.
If you need to customize a table that does not have these
columns, contact your system administrator.

In previous Epicor ERP versions, each table included a series of user-defined fields. 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. In other Epicor installations,
the predefined user-defined columns may not have been used at all and were causing unnecessary system load.
To address these issues, the Epicor ERP application now incorporates the UD column creation functionality. If you
are building a customization that needs unique fields, you create user-defined tables and add columns to these

582 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

tables. You control what column data types are included in the 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 user-defined
table. These UD columns only appear where you need them on your customization; they do not display on List
sheets or Search Results grids. Since these tables are extensions from parent tables, they are not overwritten
during an upgrade, making your customizations much easier to maintain.
You create user-defined fields through a two-part process. You first create the custom user-defined tables and
columns within the Epicor ERP application. You then use the Epicor Administration Console to regenerate the
data model. This process refreshes the database, making the user-defined fields visible, so you can add them to
your customization. You can then bind new elements (fields, check boxes, radio buttons) to the columns in this
user-defined table.

Do not confuse creation of user-defined fields with UD tables


delivered directly with the application. Custom 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. Delivered UD tables are empty tables
(Ice.UD01, Ice.UD22, Ice.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 user-defined table to an existing table you need to customize. You create this table
within User Defined Column Maintenance. If your user account has Security Manager or Global Security Manager
rights, you can launch this program.

1. Navigate to User Defined Column Maintenance.


Menu Path: System Setup > System Maintenance > UD Column Maintenance

This program is not available in Epicor Web Access.

This program may not be available, or operate under


certain restrictions in Epicor Cloud ERP.

In Epicor Cloud ERP - Multi Tenant or Epicor Cloud


ERP - Dedicated Tenancy, this program or feature may
not be available or may operate under certain restrictions.

10.2.700 583
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

2. From the New menu, click New Table.

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.

584 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

To make it easier to find the table you need, enter a value in the Starting At field.

4. Click OK.
You return to User Defined Column 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 UD
table is integrated directly with the primary table and the
"_UD" suffix does not display.

10.2.700 585
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

6. Enter a Description that describes the purpose for this user-defined table. You could enter information
that describes which customization uses this table, the columns this table includes, or other information.

7. The System Code field identifies which Epicor application contains the user-defined table. Typically ERP
appears in this field.

8. Click Save.

Add User-Defined Columns

You now add the user-defined columns you want on this UD table. You can then bind custom fields, check boxes,
and other interface controls to these UD columns.

1. Click the Down Arrow next to the New button; select New Column.

586 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

2. The Column > Detail sheet displays.

3. 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 it is integrated with
the primary table.

4. 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.

5. 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.

6. Next enter a Description that defines the purpose for the UD column.

7. 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 - The {date} value indicates this column displays date values using the standard format for the
Epicor application. You cannot change this format.
• DateTime - Similar to the Date format, the {datetime} value indicates this column displays date/time
values using the standard format for the Epicor application. You cannot change this format.
• 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
• Guid - Defines the global identification of records in the database. Each GUID value generates from an
®
algorithm (developed by Microsoft ) to insure the value is unique. The default format for this data type
is x(36).
• Integer - Use the 9 value to indicate the number of digits, excluding decimals, you want available in this
field. Maximum value you can enter in this field: ->,>>>,>>9

10.2.700 587
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

• Long - Select this data type when your UD column needs to contain numbers too large for the Integer
data type. Maximum value you can enter in this field: ->,>>>,>>>,>>>,>>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.
• SysName - Use this data type for table columns, variables, and any stored procedure parameters that
contain object names. The default format for this data type is x(128).

8. If you select the Decimal data type, the Decimals field activates. Enter how many decimal places this UD
column will have available.

9. 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 UD column contains the data length you need. When a user enters data in this UD
field, the application validates this entry to ensure it matches the Data Type and Format you define on this
sheet.
Be sure to keep the length of UD columns as short as possible; columns having long data lengths can
reduce performance.

10. Now enter the Label for the UD column. When this table is included on a grid, this label value displays in
the column header.

11. 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.

12. If this column needs a value before the record can be saved, select the Required check box.

13. Select the Hidden by default check box to prevent the current column from displaying on grids. This
prevents the column from automatically appearing in search grids, dashboards, and customizations that use
the current user defined table.
Leverage this feature when you only want the column to appear on selected customizations, secured
dashboards, specific reports, and so on. This causes the system to activate the IsHidden property on the

588 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

column. If you need to display this user defined column on a custom grid, clear (de-select) the IsHidden
property on the UD column in the customization or the dashboard grid.

14. Click Save.

Continue to add other UD columns as you need. When you finish, you are ready to regenerate the data model.

Use Extended Property Maintenance to add more properties


to the UD columns. These properties define the Like, Read
Only, Business Type, and other properties which can further
fine-tune your use of the UD columns. For more information
about extended properties, review the next Extended Property
Maintenance section.

Regenerate Data Model

To finish adding the UD columns, you must regenerate the data model for the specific database. You do this
task on the server that contains your database.

To regenerate data model and recycle application pools in


Epicor Cloud ERP (Dedicated Tenant) environment, you
must promptly submit a request via an EpicCare case and
specify the location of the newly added user-defined data
(table/column) - System, Live, or Pilot, - and the best time
the Cloud Operations team can run these processes.

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.

10.2.700 589
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

6. Enter the Server name where the database is located. Notice this field initially populates with the database
server for the selected database.

7. Now for the Database name, enter the database for which you are regenerating the database model. This
field initially populates with the selected database.

8. Select the Authentication method you use for this database. You can select either SQL Server
Authentication or Windows Authentication.

9. Next enter your current login values in the User name and Password fields.
• If you select Windows Authentication, the User name and Password default to your current login
values.
• If you select SQL Server Authentication, enter the user account and password you use to log into SQL
Server.

10. If you want this window to save this password for future use, click the Remember password check box.

11. Click Generate.

If you receive an error that the .dll file for the data model
generation is in use by another process, end the task.
Launch the Internet Information Services Manager by
clicking Start > Programs > Administrative Tools > Internet
Information Services (IIS) Manager. Select the Application
Pools node; the center pane displays the application pools
available on your system. Right-click your application
server node; from the context menu, select Recycle. You
should be able to regenerate the data model.
Likewise if you receive an error that states some tables
did not synchronize, you can review the log file to see
more details about these table errors. The location of this
log file displays in the error message.

590 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

12. Now to complete this process, you must pull the latest data model from the database and copy it to the
local application server by recycling the application pool. Recycling the application pool is a mandatory task
after the data model successfully regenerates. To do this, click Start > Programs > Administrative Tools
> Internet Information Services (IIS) Manager.

13. Select the Application Pools node.


The center pane displays the application pools available on your system.

14. Right-click on the application pool for your application server; from the context menu, select Recycle.

Optionally you can also recycle the application pool within


the Epicor Administration Console. To do this, expand
the Server Management node and select your application
server. From the Actions pane, select the Recycle IIS
Application Pool option.

As a rule, recycling application pool should suffice to renew data model. However, if this doesn't work,
consider resetting IIS by running IISReset in Command Prompt.

The regenerate process stages the data model in the database. When the application server restarts, the Epicor
ERP application checks the data model on both the disk and the database. If a new data model version is available,
this version is retrieved from staging and the database is updated to include the user-defined table. Epicor users
can now view and enter data in the user-defined columns.

When you reference these user-defined columns through either


programming or a customization, the columns appear to be
part of the base (primary) table because the data model merges
the two tables into one logical entity. To identify the UD
columns, their identifiers all use the "_c" suffix.

If you need to regenerate the data model more often, consider running this process through a command line, a
desktop icon, or a recurring task. These launch options are explained in the Epicor Administration Console help,
Command Line Tools Guide and the System Administration Guide.

10.2.700 591
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

Legacy Columns

While the custom columns used in older versions of Epicor ERP are no longer included on each table, the application
still recognizes these legacy columns.
If you will import an older customization, the application validates these columns and makes them available to
use. You can also create user-defined columns that still use these original column names. The application saves
these user defined custom columns and does not place a "_c" value at the end of their names.
Legacy columns the application recognizes:
• Character(N)
• Number(N)
• CheckBox(N)
• ShortChar(N)
• Date(N)
• UserChar(N)
• UserDate(N)
• UserDecimal(N)
• UserInteger(N)
The (N) value indicates a numeric value up to a four digit number, such as Character03 or Date7001.

Extended Property Maintenance

In Epicor Cloud ERP - Multi Tenant, this program or feature


may not be available or may operate under certain restrictions.

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 Epicor Web Access.

This program may not be available, or operate under certain


restrictions in Epicor Cloud ERP.

Select the Dataset


To select and review the main items for the dataset:

1. Click the DataSetTable ID button to find and select the dataset you need.

592 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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:

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.

10.2.700 593
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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

594 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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
when adding check box.

If you set this property for an existing field, the previously


created records will still be valid even if this field is empty.
Users will be required to enter data into this field only
when they create a new record.

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. You typically use
this value to shorten the characters or decimals contained within the field. This reduces the data users can
enter, which potentially improves performance. 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.
• 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

Values for field length can be less than the default size,
but they cannot be larger. If you attempt to enter a length
larger than the maximum allowed for the field, an error
message displays.

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.

10.2.700 595
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.
• 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.

596 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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

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.

Once you enter and save multiple user codes to this code
type, you can no longer change this setting. If you select
or clear this check box, an error message displays
indicating you cannot change this option because these
user codes already exist.

10.2.700 597
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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:

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.

598 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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 Epicor Web Access.

This program may not be available, or operate under certain


restrictions in Epicor Cloud ERP.

In Epicor Cloud ERP - Multi Tenant, this program or feature


may not be available or may operate under certain restrictions.

To add a code type as an extended property:

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.

10.2.700 599
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.
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.

600 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

5. Your new image displays on the grid.

10.2.700 601
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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:

1. Click the Image Browser sheet.

602 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

10.2.700 603
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

8. When you finish adding the images you need, click Save.

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.

604 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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 Epicor Web Access.

To create a business activity query:

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.

10.2.700 605
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

606 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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 Epicor Web Access.

This program may not be available, or operate under certain


restrictions in Epicor Cloud ERP.

In Epicor Cloud ERP - Multi Tenant, this program or feature


may not be available or may operate under certain restrictions.

1. Use the Detail sheet to find and select the table that contains the field you want to link to the BAQ zone.

10.2.700 607
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

2. In the Tree View, select the field you want to modify.

3. Navigate to the Fields > Detail sheet.

608 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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:

1. Switch to Developer Mode and launch the Customization Tools Dialog.

10.2.700 609
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

2. From the Tools menu, select Wizards > Customization Wizards.

3. The Customization Code Wizard Dialog displays.

610 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

4. Select the Modify Extended Properties wizard.

5. Click the Launch Wizard button.

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.

10.2.700 611
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

1. The selected field you linked to a BAQ zone now has a zone indicator that displays next to it.

612 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.2.700 613
Chapter 5 | Customization Utilities Epicor ICE 3.2 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 Epicor Web Access.

You first create the business activity query.

1. Click New on the Standard toolbar.

614 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

5. Navigate to the Query Builder > Phrase Build sheet.

10.2.700 615
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

616 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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 Epicor Web Access.

This program may not be available, or operate under certain


restrictions in Epicor Cloud ERP.

In Epicor Cloud ERP - Multi Tenant, this program or feature


may not be available or may operate under certain restrictions.

10.2.700 617
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

4. Navigate to the Fields > Detail sheet.

618 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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

1. Notice the Customer ID field now displays a zone indicator next to its field.

10.2.700 619
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

620 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

7. The zone indicator displays with your new color.

10.2.700 621
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

Activate the BAQ Zone


The BAQ zone is now ready to use. To activate the BAQ zone:

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.

622 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

2. Select the customer record you want from the BAQ zone.

3. The selected customer record displays within the program.

10.2.700 623
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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 Epicor Web Access.

1. Click New on the Standard toolbar.

624 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

10.2.700 625
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

6. In the Filtering pane, select the Erp.Part table.

7. The Part table displays on the grid.

8. Navigate to the Query Builder > Display Fields > Column Select sheet.

626 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

10.2.700 627
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

12. Enter the Field Name you want for this calculated field. For this example, you enter PartImage.

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 (BAQ Markup Syntax) 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.

In general, the BAQ Markup syntax looks as follows:


[Token:Value].
The Token attribute within the brackets defines the type
of replacement to perform, and the value can be either:
• Like - For example you can use
[Like:Customer.CustID] syntax to find the first data
column of the currently selected data view that has
the matching Like value. Typically, use this markup

628 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

when the BAQ will be re-used on several UIApps where


the Like value will be found.
• EpiBinding - For example, you can use [EpiBinding:
OrderHed.CustomerCustID] syntax to find the data
value of the currently selected row of the data view
and column described by the EpiBinding. Typically, use
this markup when the BAQ will be used on a specific
UIApp where the EpiBinding is known.
• Current Value - This option is primarily used for
InfoZone BAQs, where the InfoZone was added to a
UI control that is "unbound". As a result of being
unbound, the data value is not accessible via either of
the previous two options. When you need to retrieve
a value from an unbound control and use it for an
InfoZone BAQ criteria, use the [Current:Value] syntax.
The second Value, separated from the first using the
colon ":", describes either the Like value, the actual
EpiBinding string, or the Current Value.

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.

10.2.700 629
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

20. Click Save.

Create the Customization


To create the customization for Part Maintenance:

1. On the Settings Menu, click the Developer Mode.

2. Navigate to Sales Management > Order Management > Setup > Part. The Select Customization window
displays.

630 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

3. Select the Base Only check box.

4. Click OK.

5. To create the customization, from the Tools menu, select Customization.

10.2.700 631
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

6. The Customization Tools Dialog displays. From the Tools menu, select Wizards > Customization
Wizards.

632 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

10.2.700 633
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

634 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

17. The Customization Save Dialog displays. Enter a Name for the customization. For this example, you enter
BAQZone.

10.2.700 635
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

2. Select your customization.

3. Click OK.

4. The Part Maintenance window displays.

636 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

5. Notice a zone indicator displays next to the Part field.

6. From the Tools menu, select Options.

7. The Options window displays.

10.2.700 637
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

8. Navigate to the Global Options > Hot Keys sheet.

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.

638 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

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.

10.2.700 639
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

5. Navigate to the Query Builder > Phrase Build sheet. In the Filtering pane, select the Erp.Customer table.

640 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

10. The Calculated Field Editor displays.

10.2.700 641
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

642 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

10.2.700 643
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

644 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

1. Turn on Developer Mode.

a. When running the application with Modern Home Page interface, you can do this by expanding the
Application Bar at the bottom of the home page and selecting the Wrench icon. Alternately, from the
application Home Page, go to the Settings Page, select General Options and then select Developer
Mode.

10.2.700 645
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

b. If you run the application using Kinetic Home Page interface, use the overflow menu in the top right
corner of the home page window to select Developer Mode.

You can also press Ctrl + Shift + D to activate Developer


Mode.

2. Navigate to Sales Management > Order Management > Setup > Order Entry. The Select
Customization window displays.

646 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

3. Select the Base Only check box.

4. Click OK.

5. Now create the customization. From the Tools menu, select Customization.

10.2.700 647
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

6. The Customization Tools Dialog displays. From the Tools menu, select Wizards > Customization
Wizards.

648 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

7. The Customization Code Wizard Dialog displays. Select the Modify Extended Properties wizard.

10.2.700 649
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

8. Click the Launch Wizard button.

9. The Extended Property Wizard displays. From the DataView list, select the OrderHed table.

650 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

15. You return to the Customization Tools Dialog. The customization is complete, so click Save.

16. The Customization Save Dialog displays.

10.2.700 651
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

Use the BAQ Zone

You are now ready to use this BAQ zone.

1. Launch Sales Order Entry. The Select Customization window displays.

652 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

2. Select your customization.

3. Click OK.

4. The Sales Order Entry window displays again.

10.2.700 653
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

9. Select or create a Sales Order for a different customer.

654 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.

If you use an on-premise environment, you can add it through


either option. However, if you use an Epicor Cloud ERP

10.2.700 655
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

environment, you must add the customization as a new


program.

Menu Path: System Setup > System Maintenance > Menu Maintenance

This program is not available in Epicor Web Access.

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.

656 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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:

1. From the New menu, select New Menu.

2. 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.

3. 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.

4. Enter a Name for the menu item. This label displays on the Main Menu.

5. The Owning Company field displays the company inside which the custom menu item was created. You
cannot change this value; only users within the Owning Company can modify this custom menu item.

6. Select the All Companies check box to share the custom menu item with users in companies that reside
in the same organization as the Owning Company. Users within these companies can than view and use
this custom menu item.

10.2.700 657
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

If this check box is clear (not selected), the custom menu item is only available to users in the Owning
Company.

7. The System Menu check box indicates whether the current menu node is installed with the Epicor ERP
application. If the current menu item is a system menu node, you cannot modify some of its fields and you
also cannot delete this menu item. The Owning Company field will also be blank.

8. 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,
review the Security chapter within the Implementation
User Guide; the Menu Item Security describes these
records. You can also review the Menu Maintenance
topics within application help.

9. The Parent Menu ID defines the folder below which this custom report displays. In this example, you want
the custom program to appear below the Job Management and Reports folders, so JCMN4000 displays.

10. 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.

11. 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.

12. The Program Type list defines what kind of program you are adding to the Main Menu.

658 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

Available options:
• Sub Menu - Adds a folder that appears directly below a parent folder on the Menu. These folders appear
on the Menu during run-time; use them organize items into related groups. Users then expand these
sub-menu nodes to display and launch the programs you place below them.
• Menu Item - Adds a program you wish to place below a Sub Menu item (folder). After you select this
option, the Program field activates; click on the search button to find and select the program you want
to launch from this node. If you wish to use a customized version of this program, you can then select
an available customization from the Customization drop-down list.
• Crystal Custom Report Link - Adds a custom Crystal Report to the Menu. Selecting this option activates
the Report... button and field; use this field to find and select the customized Crystal Report (.rpt file)
you wish to add to the menu.
• Dashboard-Runtime - Dashboards originally displayed using the Dashboard-Runtime program type.
This type is available to provide backwards compatibility with custom dashboards created in previous
Epicor versions. However if you create a new custom dashboard, use the Dashboard-Assembly program
type instead.
® ®
• External Process - Use this type when you want to place a process or program such as Microsoft Excel
installed outside of the Epicor application on the Menu. Users can then click this icon to launch the
process or program.
• BAQ Report - Places a business activity query (BAQ) report on the Menu. You build these reports from
custom queries developed in the Business Activity Query Designer and BAQ Report Designer; you
then modify these report layouts to display the data you need. Selecting this program type activates the
Report... button; click this button to select the BAQ report you want to display. To learn more about
creating these reports, review the BAQ Report Designer topics.

10.2.700 659
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

• Dashboard-Assembly - Dashboard programs display custom data that can automatically or manually
refresh to display current information. You can create both read only and updatable dashboards. Select
this Dashboard - Assembly program type to add a custom dashboard to the Menu. To learn more about
creating and modifying dashboards, review the Dashboard topics.
• URL Link - Select this type to place a uniform resource locator (URL) link to a website or an SSRS report
(10.x or higher) on the user interface. Users can then click this icon on the Menu to automatically display
this website or SSRS report. When you select the URL Link option, you enter the directory path (URL) to
the SSRS report or website in the Program field.
• URL Form - Select this program type to add a menu that will host any web resource with a uniform
resource locator (URL) regardless of its status or location. For example, a company website, or an external
web application. Note that this program type is not available in the Epicor Web Access.
• SSRS Custom Report Link - Select this program type to add a legacy SQL Server Reporting Services
(SSRS) report (9.x version or earlier) to the interface. Selecting this option activates the Report field; use
this field to enter the \<FolderLocation>\<ReportName> for the custom SSRS report.
• Performance Canvas Link - Select this type to add an interactive web based dashboard to the Menu.
When you select this option, the Performance Canvas field displays; use this field to select the desired
dashboard.
• Report - Select this program type to choose either a system or custom report that is based on a Report
Data Definition containing BAQs or Electronic Interfaces as the Data Sources. Selecting this program type
activates the Report... button; click this button to select from a search list of the reports that qualify. To
learn more about creating these reports, review the Report Data Definition topics.
• Web Bridge - Epicor Development uses this program type to add a menu that will display either a local
(installed on the same Epicor ERP server as your main system), or an external Kinetic application. It will
leverage the components and libraries of the Kinetic Framework. Note that this program type is not
available in the Epicor Web Access.
• Kinetic App - Select this program type to add a Kinetic Application to the Menu. Any program - a
dashboard, report, process, tracker, or entry program - can be a Kinetic Application. These applications
are built using the Epicor Kinetic Framework, an enterprise design system that includes UX and
development frameworks for building web and mobile applications for Epicor's software systems. Kinetic
Apps have a web-based UI that is displayed in the ERP via a built-in Chromium browser.

13. 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.

14. 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.

15. 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.

16. 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.

17. Click Save.

18. Exit Menu Maintenance and then close and restart the application.
Your custom program displays with a separate icon on the Main Menu.

660 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

Copy Custom Program

You can use Menu Maintenance to duplicate a custom program node and then move this program node to a
different menu node. Users can then launch the custom program from this new menu location.
To do this, you use the Copy to New Menu option on the Actions menu.

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 menu nodes it contains to a location in another
company.

3. A duplicate Order Entry - No Counter Sales node appears on the tree view. Select the duplicate program
node.

10.2.700 661
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

4. Enter a new Menu ID for the copied node. When you save, the copied menu node will then use this unique
identifier.

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 menu node displays on the Menu in the
different 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.

662 10.2.700
Epicor ICE 3.2 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 Ice.UI.MemoEntry (Process Key) and the Erp.UI.SalesOrderEntry
(Calling App) values.

4. Click OK.

5. The Select Customization window displays.

10.2.700 663
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

6. To start a new customization, select the Base Only check box.

7. Click OK.

8. The base Memo Entry form displays.

664 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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
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.

10.2.700 665
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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 Epicor Web Access.

1. To create your new sub-process menu ID, click New on the Standard toolbar.

666 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

2. 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.

3. Enter the Name that you want displayed in the title bar of this sub process program.

4. 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.

5. 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.

6. 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.

10.2.700 667
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

7. 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.

8. 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 Non Menu item option.

9. Click the Program button to find and select the program you have customized. In this example, you locate
the Erp.UI.MemoEntry.dll program.

10. Click the Customization list to select the customization that uses this sub-process ID. In this example, you
select the Memo_Date (Customization) option.

11. 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 Epicor Web Access.

To create a new custom process:

668 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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,
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 Ice.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.

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.

10.2.700 669
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

Progress 4GL Code Migration

Originally you could write custom code using either the Progress 4GL (ABL) or C# scripting languages. Starting
with the Epicor 10.0 version, new customizations could only be written using the C# scripting language.

For backwards compatibility, the application can still run legacy


customizations that contain 4GL code. However to insure these
customizations will continue to function in future releases,
Epicor highly recommends you recreate obsolete directives
utilizing ABL code using the standard BPM functionality and
only use custom directives for specific requirements not
achieved by the out-of the box BPM features. Using standard
BPM functionality ensures easier maintenance and upgrade of
your directives across Epicor ERP releases.

670 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

For more information on the available BPM tools, please review the below Epicor ERP resources:
• Epicor ERP Help:
• System Management > Business Process Management
• Epicor ERP User Guides > Tools User Guide.

• Help and Support center panel > Embedded Education Courses:


• Business Process Management
• Advanced Business Process Management
• Auto Print

• Epicor ERP Help and Support center panel > Epicor Learning Center:
• Sign into your account, choose the ERP Product and search for the current on-demand and live BPM
course offerings.

If you cannot achieve the desired functionality using the standard BPM Toolset and need to migrate your Progress
4GL code snippets into the C# language, review the C# Programming Guide available in the Application help.
The guide provides guidelines on what corrections and modifications users may need to perform when converting
snippets of Progress ABL code to the .NET C# language used by the Epicor ERP 10 framework. This guide is
available in the System Management > Working with System Management location.

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 Epicor Web Access.

To use Personalization Purge:

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.

10.2.700 671
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

672 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.
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 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:

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.

10.2.700 673
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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 On Menu check box is selected when the customization displays in a menu item.

11. The Duplicate check box is selected when more than one customization pointing to the same company
and assembly is detected.

12. The Cosmetic check box is selected if the customization cosmetic problem occurs, and a warning message
displays.

674 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

13. The Type Code field displays the type. The type can be a Personalization or a Customization.

14. The Valid For field indicates for which application version this customization/personalization runs. For
example: 9.05.200

15. The Last Updated field displays the date on which this customization or personalization was last modified.

16. 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.

17. The Where Used grid indicates all the places that use this customized or personalized program within the
application.

18. 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.

19. To record changes to the current customized or personalized program, click Save.

20. 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:

1. From the Actions menu, select Export Customization.

10.2.700 675
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

676 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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:

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

10.2.700 677
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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
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.

678 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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
Run Mode. The Status field indicates verification results.

4. If the Status field displays an Error value, click the Compile/Script Errors sheet.

5. The compile errors for this customization display on the Errors grid.

6. 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.

7. The Error Code column displays the specific Visual Basic or C# error code number.

8. The Line# column contains the specific line within the code which generated the compile error.

9. The Warning column displays the specific error that occurred.

10.2.700 679
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

10. The Record Type column indicates the code type which caused the error.

11. 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.

12. Click the Warnings sheet to display any elements within the customized or personalized program that did
not validate. These elements are displayed within the Warnings grid.

13. The Control Name field defines the elements within the program that could not be verified.

14. The Warning field displays why the warning was generated.

15. To remove the element from the program, click its Select check box. To remove multiple elements, choose
multiple Select check boxes.

16. To select all the elements, click the Select All button.

17. 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.

680 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

2. To the warning message, click Yes.

3. The verification process reviews all the selected personalizations and customizations. When complete, you
return to the Customization/ Personalization Maintenance window.

10.2.700 681
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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:

1. Select a personalization or a customization from the Tree View.

682 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

2. From the Actions menu, select Run Customization.

3. The program displays in Run Mode.

10.2.700 683
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

You can now test the personalization/customization to make sure it works properly.

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.

684 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

2. From the Actions menu, select Modify Customization.

3. The Select Customization window displays.

10.2.700 685
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

4. Select the customization or personalization you want to modify from the Tree View. In this example, you
select the ADPOSugg2 customization.

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


To use this tool:

686 10.2.700
Epicor ICE 3.2 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:
Ice.Lib.Framework.EpiButton

7. To see the custom property elements, click the Properties sheet.

10.2.700 687
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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>.

688 10.2.700
Epicor ICE 3.2 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.

10.2.700 689
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

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.

690 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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
Use Force Validation to immediately validate customizations or personalizations. Force Validation causes
Customization/Personalization Maintenance to ignore issues, making items available to users during Run Mode.
Force Validation does not correct issues, 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 items available. Any customization or personalization
that is not valid can cause performance, usability, and other issues.
To force validate customizations or personalizations:

1. Do either of the following:


• To work with all customizations/personalizations in the Tree View, click the Actions menu.

10.2.700 691
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

• To work with a single customization/personalization, ensure that item is selected in the Tree View and
click the Actions menu.

2. From the Actions menu, select a Force Validation command:


• Force Validation - Force validate the selected customization/personalization with uplift (version 9 to
version 10) and check for memory leaks.
If memory leaks are found, and the item compiles, a confirmation window displays. Click No to cancel
the force validation (it can be run again after you fix the memory leaks). Click Yes to continue the force
validation without fixing the memory leaks.
• Force Validation All - Force validate all customizations/personalizations in the Tree View with uplift
(version 9 to version 10) and check for memory leaks.
If memory leaks are found, and the items compile, a confirmation window displays. Click No to cancel
the force validation (it can be run again after you fix the memory leaks). Click Yes to continue the force
validation without fixing the memory leaks.
• Force Validation (No Check) - For the selected customization/personalization, force the Status field
to Pass and the Valid For field to the current version. There is no version uplift and no check for memory
leaks.
In the confirmation window, click Yes to complete the force validation or click No to cancel.
• Force Validation All (No Check) - For all customizations/personalizations in the Tree View, force the
Status field to Pass and the Valid For field to the current version. There is no version uplift and no check
for memory leaks.
In the confirmation window, click Yes to complete the force validation or click No to cancel.

3. In the affected customizations/personalizations, verify that the Detail sheet Status field is set to Pass. Verify
that Valid For field displays, as applicable, the current version of the application or ICE framework.

692 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

You can now use the customizations or personalizations 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.

Verify Web Access Uniform Resource Locator


Menu Path: System Setup > Company/Site Maintenance > Company Maintenance

This program is not available in Epicor Web Access.

1. Navigate to the General Settings sheet.

10.2.700 693
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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:

1. Return to Customization/Personalization Maintenance.

694 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.2.700 695
Chapter 5 | Customization Utilities Epicor ICE 3.2 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 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.

696 10.2.700
Epicor ICE 3.2 Customization User Guide Customization Utilities | Chapter 5

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.
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.

10.2.700 697
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.
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.

698 10.2.700
Epicor ICE 3.2 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.

10.2.700 699
Chapter 5 | Customization Utilities Epicor ICE 3.2 Customization User Guide

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.

700 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

Chapter 6: Delivered User-Defined Tables

The application contains customizable tables (UD01, UD02 and so on) in the database that expand the functionality
of customizations. 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 creation of user-defined fields with UD tables


delivered directly with the application. User-defined fields are
additional columns you add to an existing table via the User Defined
Column Maintenance program. When you search for these custom
columns, their names include the "_c" suffix. 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.
Delivered UD 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.

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.

10.2.700 701
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

Menu Path: System Setup > System Maintenance > Menu Maintenance

This program is not available in Epicor Web Access.

To locate a user-defined table and add it to the Main Menu:

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.

702 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

10.2.700 703
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

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.

704 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

2. Click Open.

3. The user-defined table now displays within the Program field.

10.2.700 705
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 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.

706 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

Customize a User-Defined Table


To customize the user-defined table so you can enter the data you need:

1. Click the Home button and the Settings tile. From the General Options group, select the Developer
Mode option.

10.2.700 707
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

2. Navigate to Sales Management > Order Management > Setup > Shipping Package Size.

708 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

3. The Select Customization window displays.

10.2.700 709
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

710 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

Modify the Interface

You can now use the customization tools to modify the interface as you need.

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.

10.2.700 711
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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
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.

712 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

8. In this example, you rename the Search button to display the Shipping Size... value.

10.2.700 713
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

714 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

Be sure to bind the ShortChar columns to your custom


text boxes as much as possible. These columns store less
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.

10.2.700 715
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

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.

716 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.2.700 717
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

2. On the Select Customization window, click OK to launch the base form.

718 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

3. The Customer Shipment Entry window displays. From the Tools menu, select Customization.

10.2.700 719
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

720 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

8. The Select Retriever Combo window displays. It automatically populates with all the retriever combos
available within the application.

10.2.700 721
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

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.

722 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

10.2.700 723
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

9. Enter the Name for the customization. In this example, you enter ShipSizeCombo.

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.

724 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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
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.

10.2.700 725
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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 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.

726 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

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.

10.2.700 727
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

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.

728 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

2. Click Open.

3. The user-defined table now displays within the Program field.

10.2.700 729
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

4. Click Save.

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.

730 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

Customize a Parent/Child User-Defined Table


To customize the parent/child user-defined table to display the values you need:

1. Activate Developer Mode and launch the Carrier Shipping Sizes form. The Select Customization
window displays.

10.2.700 731
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

2. Click OK to launch the base form.

3. The UD100 Maintenance program displays.

732 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

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.

10.2.700 733
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

To review how to customize elements on a form, read


the Hide, Move, and Add Elements section in the Basic
Customization chapter.

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.

734 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.2.700 735
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 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.

736 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

10.2.700 737
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

738 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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 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 user-defined table to the Order Releases table.
You create user defined tables in User Defined Column Maintenance.
Menu Path: System Setup > System Maintenance > UD Column Maintenance

This program is not available in Epicor Web Access.

This program may not be available, or operate under certain


restrictions in Epicor Cloud ERP.

1. Click the New button.

2. The Table Search window displays.

3. You find and select the OrderRel table.

4. Click OK.

10.2.700 739
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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).

7. You now can add the custom columns you need to the 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.

740 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

16. Once again for the Format, enter x(20).

17. When you finish created these custom columns, click Save.

Regenerate Data Model

To finish adding the user-defined columns, you must regenerate the data model for the specific database. You
do this task on the server that contains your database.

To regenerate data model and recycle application pools in


Epicor Cloud ERP (Dedicated Tenant) environment, you
must promptly submit a request via an EpicCare case and
specify the location of the newly added user-defined data
(table/column) - System, Live, or Pilot, - and the best time
the Cloud Operations team can run these processes.

1. On your server machine, launch the Epicor Administration Console.

10.2.700 741
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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. Enter the Server name where the database is located. Notice this field initially populates with the database
server for the selected database.

7. Now for the Database name, enter the database for which you are regenerating the database model. This
field initially populates with the selected database.

8. Select the Authentication method you use for this database. You can select either SQL Server
Authentication or Windows Authentication.

742 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

9. Next enter your current login values in the User name and Password fields.
• If you select Windows Authentication, the User name and Password default to your current login
values.
• If you select SQL Server Authentication, enter the user account and password you use to log into SQL
Server.

10. If you want this window to save this password for future use, click the Remember password check box.

11. Click Generate.

If you receive an error that the .dll file for the data model
generation is in use by another process, end the task.
Launch the Internet Information Services Manager by
clicking Start > Programs > Administrative Tools > Internet
Information Services (IIS) Manager. Select the Application
Pools node; the center pane displays the application pools
available on your system. Right-click your application
server node; from the context menu, select Recycle. You
should be able to regenerate the data model.
Likewise if you receive an error that states some tables
did not synchronize, you can review the log file to see
more details about these table errors. The location of this
log file displays in the error message.

12. Now to complete this process, you must pull the latest data model from the database and copy it to the
local application server by recycling the application pool. Recycling the application pool is a mandatory task
after the data model successfully regenerates. To do this, click Start > Programs > Administrative Tools
> Internet Information Services (IIS) Manager.

13. Select the Application Pools node.


The center pane displays the application pools available on your system.

10.2.700 743
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

14. Right-click on the application pool for your application server; from the context menu, select Recycle.
Optionally you can also recycle the application pool within the Epicor Administration Console. To do this,
expand the Server Management node and select your application server. From the Actions pane, select
the Recycle IIS Application Pool option.

The regenerate process stages the data model in the database. When the application server restarts, the Epicor
ERP application checks the data model on both the disk and the database. If a new data model version is available,
this version is retrieved from staging and the database is updated to include the user-defined table. Epicor users
can now view and enter data in the user-defined columns.

When you reference these user-defined columns through either


programming or a customization, the columns appear to be
part of the base (primary) table because the data model merges
the two tables into one logical entity. To identify the UD
columns, their identifiers all use the "_c" suffix.

If you need to regenerate the data model more often, consider running this process through a command line, a
desktop icon, or a recurring task. These launch options are explained in the Epicor Administration Console help,
Command Line Tools Guide and the System Administration Guide.

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

744 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

2. The Select Customization window displays. Click OK to launch the base form.

10.2.700 745
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

3. The Sales Order Entry window displays. From the Tools menu, select Customization.

746 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

4. Navigate to the Releases > Detail sheet. You will place the EpiRetrieverCombos in the From group box on
the form.

10.2.700 747
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

748 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

9. Navigate to the UD100 table, expand the node, and select the UD100Combo.

10. Click OK.

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).

10.2.700 749
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

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.

750 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

4. Clear the characters within the Text property.

5. Create a label for the new EpiRetrieverCombo. In the Toolbox window, select the EpiLabel element.

10.2.700 751
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

8. You need to link this label to the EpiRetrieverCombo. In the Tree View, select the EpiRetrieverCombo.
In this example, you select [C]uD100ComboB1.

752 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

1. In the Toolbox window, select the EpiRetrieverCombo element.

10.2.700 753
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

2. Click to add a second EpiRetrieverCombo on the form.

3. The Select Retriever Combo window displays.

754 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

4. Navigate to the UD100 table, expand the node, and select the UD100Combo.

5. Click OK.

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.2.700 755
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 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.

756 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered 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.2.700 757
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 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.

758 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

12. Now link the child EpiRetrieverCombo to your new label. Select the child EpiRetrieverCombo.

10.2.700 759
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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.

1. Click the Script Editor tab to display the Script Editor code entry sheet.

760 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

10.2.700 761
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

5. Click the Add Custom Reference button.

6. The Add Assembly Reference window displays.

762 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

13. You return to the Custom Assembly Reference Manager. Notice these references display in the Tree View
under the Custom Assemblies folder.

10.2.700 763
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

14. Click OK.

Enter the Custom Code

1. Click the Script Editor tab.

764 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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)

// 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"];
FillUD100ACombo(Key1);
}

10.2.700 765
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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;
// End Custom Code Disposal
}

766 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

10.2.700 767
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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";
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.

Test the Customization

1. Close the form and then launch your customized Sales Order Entry form in Run Mode.

768 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

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.

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.

10.2.700 769
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

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 **

770 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered 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.2.700 771
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 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);
}
}

Parent/Child Grids

A common way to customize a Parent/Child user-defined table is to add a custom grid to the Detail sheet that
displays data from the child table. Users can create a parent record and then add child records directly into this
grid; data for the entire record then displays on the Detail sheet.
The following example illustrates how you add a Parent/Child user-defined table to the interface and then create
a customization that contains an updatable grid. To add, update, and delete new rows to this updatable grid,
you enter custom code that links this grid to the BeforeRowInsert and BeforeChildRowInsert event. You will
create a program that records companies which buy scrap metal and the types of scrap metal they purchase.

Add a Parent/Child User-Defined Table

You do this by first placing the parent/child user-defined table onto the Menu.
To add this table, you launch Menu Maintenance:
Menu Path: System Setup > Security Maintenance > Menu Maintenance

This program is not available in Epicor Web Access.

1. In the Tree View, select where you want to place the user-defined table. In this example, you are placing
it within the Material Management > Inventory Management > Setup folder.

772 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

2. Click the Down Arrow next to the New button and select New Menu.

3. Enter the Menu ID for the user-defined table. For this example, you enter UD106; this indicates the
user-defined table you are customizing.

4. 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.

5. Enter the Name for the user-defined table. For this example, you enter Scrap Metal Buyers.

6. 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.

7. 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 Inventory Management/Setup folder, so IMMN1000 displays in
this field.

10.2.700 773
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

8. 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 0.

9. Click the Program Type drop-down list to select Menu item. This indicates that this item displays on the
Menu.

10. 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.

11. Click the Program button to find and select the parent/child user-defined table. In this example, you select
the Ice.UI.UD106Entry.dll table.

12. Click Save.

Display User-Defined Table

Now that you have added the parent/child user-defined table to the Menu, you need to completely exit out of
the Epicor application and then launch it again. This refreshes the interface.

1. After you have logged back into the Epicor application, turn on Developer Mode.

a. If you run the application using Classic Menu interface, from the Main Menu click Options > Developer
Mode.

b. If you run the application using Modern Home Page interface, click on the bottom Application Bar and
select the Wrench icon. A line displays over this icon, indicating Developer Mode is active.

774 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

c. If you run the application using Kinetic Home Page interface, use the overflow menu in the top right
corner of the home page window to deselect Developer Mode.

2. Navigate and launch your custom Scrap Metal Buyers program.


Menu Path: Material Inventory Management > Setup > Scrap Metal Buyers

3. The Select Customization window displays.

10.2.700 775
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

4. Select the Base Only check box.

5. Click OK.

6. The UD106 Maintenance window displays.

776 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

Create Customization

You next create the customization for the Scrap Metal Buyers interface.

1. Now click Tools > Customization.

2. The Customization Tools Dialog (default) displays.

10.2.700 777
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

3. You do not need Key2, Key3, Key4, and Key5 for this customization. Click and drag these fields off the
user interface until only (Do not remove) Key1 and the Description field display.

4. Highlight the (Do not remove) Key1 label.

5. Now on the Properties sheet, change the Text property to display the Scrap Buyer: value.

778 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

6. Likewise highlight the Description label.

10.2.700 779
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

7. On the Properties sheet, change the Text property to display the Buyer Name: value.

8. From the Tree View, highlight the UD108Form icon.

9. On the Properties sheet, change the Text property to say Scrap Metal Buyers.

10. Notice the title bar now displays Scrap Metal Buyers.

11. Now click the mainPanel1 icon.

780 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

12. On the Properties sheet, change the Text property to say Scrap Metal Buyers.

13. The sub-title of the program now displays Scrap Metal Buyers.

You can continue to change the name of interface items as you need. For this workshop, you update these two
title bars.

Update Child Detail Sheet

Now modify the child sheets to only display the fields you need. You also modify the labels to be reflect the scrap
buyer information users will enter in this custom program.

1. Navigate to the Child > Detail sheet.

10.2.700 781
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

2. You do not need Child Key2, Child Key3, Child Key4, and Child Key5 for this customization. Click and
drag these fields off the user interface until only Child Key1 and the Description field display.

3. Highlight the Child Key 1 label.

4. From the Properties sheet, change the Text property to display the Type: text.

5. Click Tools > Toolbox; the Toolbox displays.

782 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

6. Select the epiTextBox element.

7. Place the epiTextBox below the Description field.

8. Now select the epiLabel element.

10.2.700 783
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

9. Place the epiLabel on the form.

10. Select the epiTextBox again. On the Properties sheet, clear the Text property.

784 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

11. Click the EpiBinding drop-down list and select the UD106A.Number01 field.

12. For the EpiLabel property, select the epiLabelC1 label.

13. Change the Size to the standard value of 120, 20.

14. Now select the epiLabelC1; for its Text property, enter the Price: text.

10.2.700 785
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

15. Repeat these steps to add a UOM text box and label. Bind this text box to the UD106A.ShortChar01
column.

786 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

16. From the Tree View, select the childDockPanel1.

17. Change its Text Tab property to display Type.

18. Likewise, from Tree View, select the childDetailPanel1.

10.2.700 787
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

19. Change its Text Tab property to display Type.

Update Child List Sheet

You now modify the list sheet to display a few columns.

1. Select the Child List sheet.

788 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

2. From the Properties list, click in the Columns property and select the drop-down list to display the Column
Properties grid.

3. Click the ToggleHidden button.

4. This hides all of the columns.

5. Find the Child Key 1 field; clear the Hidden check box.

10.2.700 789
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

6. Now for the Caption, enter the Type: text.

7. Locate the Character01 row. For its Caption, enter Description: and clear its Hidden checkbox.

8. Repeat these steps to display the Number01 column using a Price: caption.

9. Likewise, display ShortChar01 column with a UOM: caption.

Save Customization

Now save your customization.

1. Click Save.

790 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

2. The Customization Save Dialog displays.

3. For the Name, enter ChildGrid.

4. For the Description, enter Child Grid Customization.

5. Click Save.

Add EpiUltraGrid

You next add the custom grid to the Detail sheet. This grid will match the columns you display on the Type > List
grid.

1. Click the Tools menu and select the Toolbox option.

10.2.700 791
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

2. The Toolbox displays.

3. Select the EpiUltraGrid item.

4. Place the grid onto the Detail sheet. Use the handles to increase the size of the grid on the user interface.

5. In the Text property, enter Scrap Metal Types.

792 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

6. Now from the EpiBinding drop-down list, select UD106A.

7. Save your customization.

8. You now must refresh your customization. Close the Customization Tools Dialog.

9. Close the Scrap Metal Buyers program.

Select Display Columns

You only need a few columns to display on this grid. You use the Column Properties window to define which
columns you want to display.

1. Launch the Scrap Metal Buyers program again. The Select Customization window displays.

10.2.700 793
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

2. From the Tree View, select ChildGrid.

3. Click OK.

4. When the Scrap Metal Buyers program displays, click Tools > Customization. The Customization Tools
Dialog (ChildGrid) displays.

794 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

5. Select your custom Scrap Metal Types grid.

6. Click in the Columns property and select the drop-down list.

7. The Column Properties window displays.

8. Click the Toggle Hidden button.

9. This selects all the Hidden check boxes. Now all the columns no longer display on the user interface.

10. Now display the same columns that you selected on the Child > List sheet. Use the Collection sheet to
display the Child Key 1 column as the Type column.

10.2.700 795
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

11. Display the Character01 column and change its Caption to display Description: value.

796 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

12. Now display the Number01 column and change its Caption to display the Price: value.

10.2.700 797
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

13. Finally display the ShortChar01 column and change its Caption to display the UOM: value.

14. Click Save.

Refine Code

You finish the customization by updating code in the Script Editor. You need to enter this code so that users can
create a parent record and add child records within the custom grid.

1. Click on the Script Editor.

798 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

2. You need this code to add a new row to the child table. Within the InitializeCustomCode section, enter
the this.epiUltraGridC1.BeforeRowInsert += beforeChildRowInsert; code line.

3. You next enter code that removes a row from the child table. Within the DestroyCustomCode section,
enter the this.epiUltraGridC1.BeforeRowInsert -= beforeChildRowInsert; code line.

10.2.700 799
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

4. Now enter a beforeChildRowInsert code block that defines the child row insert event.
private void beforeChildRowInsert(object sender, Infragistics.Win.UltraWin
Grid.BeforeRowInsertEventArgs args)
{
// Event handling code generated by wizard.
args.Cancel = true;
oTrans.SetCurrentEvent(TransactionEvent.AddNewOnNewFromGrid);
oTrans.GetNewChild();
}

800 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

5. Verify the code compiles without errors. Click Tools > Test Code.

6. The Custom Code Compiled Successfully message displays.

7. Click Save.

If you run into errors, the code syntax is not correct. Your custom code should look similar to the following
example code.
// **************************************************
// Custom code for UD106Form
// Created: 7/20/2016 2:58:44 PM
// **************************************************
using System;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using Ice.BO;
using Ice.UI;
using Ice.Lib;
using Ice.Adapters;
using Ice.Lib.Customization;
using Ice.Lib.ExtendedProps;
using Ice.Lib.Framework;
using Ice.Lib.Searches;
using Ice.UI.FormFunctions;

public class Script


{
// ** 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 **

// Add Custom Module Level Variables Here **

10.2.700 801
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

public void InitializeCustomCode()


{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Variable
Initialization' lines **
// Begin Wizard Added Variable Initialization

// End Wizard Added Variable Initialization

// Begin Wizard Added Custom Method Calls

// End Wizard Added Custom Method Calls

this.epiUltraGridC1.BeforeRowInsert += beforeChildRowInsert;
}

public void DestroyCustomCode()


{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Object D
isposal' lines **
// Begin Wizard Added Object Disposal

// End Wizard Added Object Disposal

// Begin Custom Code Disposal

// End Custom Code Disposal


this.epiUltraGridC1.BeforeRowInsert -= beforeChildRowInsert;
}

private void beforeChildRowInsert(object sender, Infragistics.Win.UltraWinGrid


.BeforeRowInsertEventArgs args)
{
// Event handling code generated by wizard.
args.Cancel = true;
oTrans.SetCurrentEvent(TransactionEvent.AddNewOnNewFromGrid);
oTrans.GetNewChild();
}
}

Make Customization the Default

Now make your customization the default layer for the user-defined table. You do this on Menu Maintenance.
First, shut off Developer Mode. Then return to Menu Maintenance and indicate that your ChildGrid customization
is now the default layer for the Scrap Metal Buyers program.

1. Launch Menu Maintenance.


Menu Path: System Setup > Security Maintenance > Menu Maintenance

This program is not available in Epicor Web Access.

802 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

2. Use the Tree View to navigate to the Material Management > Inventory Management > Setup >
Scrap Metal Buyers node.

3. Click the Customization drop-down list and select the ChildGrid (Customization) option.

4. Click Save.

Refresh the interface by closing and then re-launching the Epicor application.

Test the Custom Grid

You next test your custom program by first creating a buyer record in the parent table and then adding multiple
child records on the grid.

1. Launch the custom Scrap Metal Buyers program.


Menu Path: Material Management > Inventory Management > Setup

10.2.700 803
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

2. Click New > New Parent.

3. Enter a Scrap Buyer and Buyer Name.

4. Now click New > New Child.

804 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

5. Navigate to the Type > Type list.

6. Enter the Type, Description, Price, and UOM for the scrap metal type.

7. Now navigate to the Detail sheet.

10.2.700 805
Chapter 6 | Delivered User-Defined Tables Epicor ICE 3.2 Customization User Guide

8. Within the Scrap Metal Types grid, click in the UOM column and press Enter.

9. A new line displays. Enter a new type in the Scrap Metal Types grid.

10. Click Save.

11. Click on the Type > List sheet.

806 10.2.700
Epicor ICE 3.2 Customization User Guide Delivered User-Defined Tables | Chapter 6

The same child records display. Your custom Parent-Child user-defined table now has a grid on the Detail sheet
that can update the child table.

10.2.700 807
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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 ERP application, country group and country codes
(country/group codes) are implemented across all companies. This licensing feature defines the modules and
programs that appear on the interface, the programs available for use within each company, and the tables and
columns that display within each grid.
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 ERP 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
ERP 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 ERP application is set up to filter on these country group and country codes. For example when a
company has a country group or country code, only menu nodes, programs, tables, and columns 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 menu node, program, table, or column has a different country/group code and this code is not defined for
display within the company, this item does not appear during run time.

808 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

Country/group codes are usually hidden, but you will likely see these codes within the Solution Workbench. Most
items within the Solution Workbench have a CGC Code (Country Group/County Code) column. If a specific item
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 the Solution Management
chapter.
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 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.
Language in Epicor ERP is defined the following way: you can select an available language in Language
Maintenance or using the Change Language option available on the user menu on your homepage, and
configure it with a standard, CSF, or custom translation, if necessary.
• Standard translation file - it covers only the core functionality. You can download a required translation file
from Epicweb; this file contains translation for all existing lines to the target language;
• Customized language file - this file is usually created and provided by your partner as required, it contains
translation for additional custom functionality that the partner is developing themselves;
• Country Specific Functionality (CSF) language file - this file is provided with a CSF package, if required; you
need to import it after the base parent language file is installed.

All three types of files can also contain program specific


translations that adjust the existing translations to the context
(it might be necessary when, for example, the same word in a

10.2.700 809
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

target language must be translated differently in different


programs and forms).

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 Epicor Web Access.

Add a Language

Epicor ERP supports 25+ languages. You can choose as many languages as necessary and add them in any order.
However, if you also plan to add a Country Specific Functionality (CSF) language file, it is best if you firstly add
a base language and then import a required CSF translation file.
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.

810 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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.

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.

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

Before you import a new translation, you need to understand


which versions of which languages are already installed in your
application. This helps you keep the required translation
updated, if necessary (for example, if something in the current
version is translated incorrectly or not translated at all). To
review the version, use the Change Language option available
on the user menu on your homepage and in the grid review

10.2.700 811
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

the values in the Version and Date fields of your required


language. If the version is outdated and a new one is available,
you can download a new translation from Epicweb and import
it.

To import translations for the language into your application:

1. From the Actions menu, select Import Transaction.

2. The Import Translations window displays.

812 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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 if you need to overwrite existing language translations.
This process overwrites individual translations if they already exist. For example, if the translation file has a
line with a phrase for Sales Order, it will replace the existing Sales Order line in the database language.
Thus if you leave this check box clear, the existing translation lines will be skipped and not overwritten in
the import process. However, if some individual lines in the language file have changed, they will be also
skipped. Thus new reviewed translations can be imported and fixed in your installation.

7. Select the Delete Obsolete Translations check box if you need to delete obsolete language translations.
It is recommended to leave this check box clear. If you select it, the program deletes any translation that
does not exist in the translation file you are importing (i.e. all translation lines that have no IDs from the ID
list in the import translation file). Thus the translation tables are cleaned up from any values received with
previous imports of both base language file and customization translations, if any, along with any respective
English translation lines.

If you need to delete existing translations without deleting


English lines, you can use the following commands of the
Actions menu:
• Delete Custom Translations - this is a preferable
way to clean up existing translations. This command
allows you to delete all custom translations for a
selected language, and if you click the Get
Translation button for this language, the system will
populate all custom language lines with English lines;
• Delete Translations - this command allows you to
delete all standard translations for this language.

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.2.700 813
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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, navigate to the Import Log sheet. The Has Errors check box will be selected for
the lines with errors. If some program specific lines failed to be imported, their Text ID value will be 0.

13. When you finish, click Close.

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.

814 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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.

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.2.700 815
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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.

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:

816 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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:

1. Select a specific translation string on the Translations > List sheet.

10.2.700 817
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

2. Click the Down Arrow next to the New button; select New Program Specific Translation.

3. The Program Specific Translations > Detail sheet displays.

818 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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. 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.

10.2.700 819
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

3. The Export Translations window displays.

4. The Language and Description fields display the language being exported.

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.

820 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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.

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.

10.2.700 821
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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.

3. The Change Language Culture window displays.

822 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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.

10.2.700 823
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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.

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 tile contains an option you use to change languages. To
change languages:

1. Navigate to the Home Menu.

2. On the Home Menu, click the Settings icon.

824 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

3. The Settings Menu displays.

10.2.700 825
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

4. In the General Options pane, select Change Language.

5. The Change Current Language window displays.

826 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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.

8. The application restarts, pulling in the resources you generated through Language Maintenance. The interface
now displays in the selected language.

10.2.700 827
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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.

828 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

3. All languages installed within your application display. Select the language you want. In this example, you
select the Espanol/Mexico option.

4. Click OK.

5. The application restarts, pulling in the resources you generated through Language Maintenance. The interface
now displays in the selected language.

10.2.700 829
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

Classic Style Status Bar


In the Classic Style interface, you can also use the Status Bar on the bottom of the Main Menu to change languages.

1. The current language displays as a separate button on the Status Bar. Click this button.

830 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

2. The Change Current Language window displays.

10.2.700 831
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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.

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.

832 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

Create the Localization Layer


To create a localization:

1. On the Home Menu, click the Settings icon.

2. The Settings Menu displays.

10.2.700 833
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

3. In the General Options pane, select Developer Mode. A check mark appears to the left after you select
it.

4. Navigate to the program you want to localize. In this example, you need to localize Sales Order Entry, so
you launch this program.

834 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

5. The Select Customization window displays.

10.2.700 835
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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.

9. The Sales Order Entry window displays. From the File menu, select Customization.

836 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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.

13. The Customization Save Dialog window displays.

10.2.700 837
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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.

838 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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
customizations, review the Export Customization and Import Customization sections within the Basic
Customization chapter.

10.2.700 839
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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.

840 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

4. Click OK.

5. The Home Menu refreshes and displays the selected language.

10.2.700 841
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

6. Select the Settings Menu (Configuracion).

7. On the Settings Menu (Configuracio), activate Developer Mode (Modo de desarrollo) if it is not activated.

842 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

You can also press Ctrl + Shift + D to activate Developer


Mode.

8. On the Main Menu, launch the program. In this example, you launch Sales Order Entry (Ingreso órden de
venta).

10.2.700 843
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

9. The Select Customization window displays. Notice the localization now displays under the Localizations
node.

844 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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.

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.

10.2.700 845
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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 or report text so it accurately translates into the current
language. If some program or report 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 translated text appears within
the program or report.

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.

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.

846 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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).

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.

10.2.700 847
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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.

848 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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).

12. The updated text string displays within the Translation List (Lista de traducción).

10.2.700 849
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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).

850 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

16. The form updates and the translation displays according to the changes you made.

10.2.700 851
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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).

852 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

2. From the Tools (Herramientas) menu, select Translation Utility (Utilidad de traducción).

3. The Translation Utility (Utilidad de traducción) window displays. Select the Customization Records
(Registros de adaptación) tab.

10.2.700 853
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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).

10. The updated text string displays within the Translation List (Lista de traducción).

854 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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.

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.

10.2.700 855
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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.

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.

856 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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.

Grid Caption Translations

If you need to translate grid captions (column headers), you must launch the Translation Utility directly from the
specific grid.
Grid caption strings are stored in the contracts file instead of the user interface file. Because these strings are
stored in a separate file location, you translate caption strings by accessing the Translation Utility from the grid.
You do this by right-clicking the grid table header and selecting a Translation Utility option. After you enter, save,
and refresh your text changes, the grid column headers display the translated captions.

To display the Translation Utility options on a grid context


menu, your user account must have translation rights.

1. Navigate to the grid that contains column headers you need to translate.

10.2.700 857
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

2. Right-click the grid column headers; a context menu displays.

3. To translate captions for the current grid, select the Grid Caption Translation option.
This launches the Translation Utility. When you use this option, the program only displays the captions
available in the current grid. Enter and save the translations as described in the previous topics.

4. If you want to translate all strings associated with the current grid, select the Translation for <current
contract assembly> option.
The Translation Utility now contains all the translatable grid strings from the contracts file. If the current
contracts file contains several datasets and tables, you can translate these grid captions at the same time
instead of launching each grid separately.

5. When you are ready to update the grid with your translated text, select the Refresh Grid Caption
Translation option.

The current grid now displays your translated grid captions. If you translated strings for the entire contracts file,
these captions refresh on other grids linked to this file.

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

858 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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:

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.

10.2.700 859
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

6. In the PO Number field, select a purchase order.

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.

860 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

10. Click Save.

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.

10.2.700 861
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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:

1. Click the User ID button to find and select the user you want to update.

862 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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 Espanol/Mexico language.

3. Select the Format Culture you need to assign to this user. In this example, you select the Spanish (Mexico)
culture code.

4. Click Save on the Standard toolbar.

Assign 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:

1. Select the Options tab.

10.2.700 863
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

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
the Culture Code setting. To learn how to do this, review
the Startup Configurations chapter.

864 10.2.700
Epicor ICE 3.2 Customization User Guide Localization | Chapter 7

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.

10.2.700 865
Chapter 7 | Localization Epicor ICE 3.2 Customization User Guide

866 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

Chapter 8: 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.

In Epicor Cloud ERP - Multi Tenant, this program or feature may


not be available or may operate under certain restrictions.

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 ERP database structure, business objects, and
application framework.

Assign Solution Management Rights

Only specific users have rights to create solutions and install solutions. You give users these rights through User
Account Maintenance.
To assign Solution Management rights to a user perform the following steps:

1. Navigate to User Account Maintenance.


Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

10.2.700 867
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

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

3. Click the Options sheet.

4. 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.

5. Select the Can Install Solutions check box if this user can install a solution created in Solution Workbench
within another Epicor environment.

6. Click Save on the Standard toolbar.

Solution Element Maintenance

Use the Element Maintenance to create and maintain solution elements.

Solution elements define categories of application items you


can track or add into your solution.

868 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

Within 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

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

This program is not available in Epicor Web Access.

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.

10.2.700 869
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

4. Click OK.

5. Review the list of all default solution elements delivered by Epicor:

Element Description Parent Business Object


Table
Name
BAQ Tracks Busines Activity Queries (BAQs) QueryHdr Ice.Contracts.BO.BAQDesigner
created or modified through the BAQ
Designer.
BAQReport Tracks dynamic reports created or BAQReport Ice.Contracts.BO.DynamicReport
modified through theBAQ Report
Designer.
BaseExtension Tracks metadata changes that occur XXXDef Ice.Contracts.BO.GenXData
in the XXXDef table on the Epicor ERP
client. These metadata changes use
the BaseExtension type.
Be sure you specify a solution type
for any custom elements that
reference the XXXDef parent table.
If you do not specify a solution type
and you use the custom element in
the solution, all metadata changes
for each XXXDef type
(BaseExtension, Customization,
Localization, and so on) are tracked
by the solution.

BpDirective Tracks BPM Method Directives created BpDirective Ice.Contracts.BO.BpMethod


or modified through Method
Directives Maintenance, Data
Directives Maintenance and Updatable
BAQ Method Directives.
Customization Tracks metadata changes that occur XXXDef Ice.Contracts.BO.GenXData
in the XXXDef table on the Epicor ERP
client. These metadata changes use
the Customization type.
Dashboard Tracks Dashboards created or DashBdDef Ice.Contracts.BO.DashBoard
modified through the Dashboard
program.
EfxLibrary Tracks Epicor Function libraries created EfxLibrary Ice.Contracts.Lib.EfxLibraryDesigner.dll
or modified through the Function
Designer.
ExtensionSet Tracks changes made for system ExtensionSet Ice.Contracts.BO.Extension
Extensibility, which includes changes
made in the Extension Maintenance
form and optionally, any assemblies
associated with the Extension. When
added to a solution and exported, it
packages the ExtensionSet and
appropriate assembly/assemblies.

870 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

Element Description Parent Business Object


Table
Name
IPForm Tracks forms invoked by BPM method IPForm Ice.Contracts.BO.InfoPromptForm
directives created in BPM Data Form
Designer.
KNTCCustLayer Tracks metadata changes that occur XXXDef Ice.Contracts.BO.GenXData
in the XXXDef table on the Epicor ERP
client as a result of Kinetic App
customization. These metadata
changes use the KNTCCustLayer
type.
KNTCPersLayer Tracks metadata changes that occur XXXDef Ice.Contracts.BO.GenXData
in the XXXDef table on the Epicor ERP
client as a result of Kinetic App
personalization. These metadata
changes use the KNTCPersLayer
type.
Localization Tracks metadata changes that occur XXXDef Ice.Contracts.BO.GenXData
in the XXXDef table on the Epicor ERP
client. These metadata changes use
the Localization type.
Menu Track Menu Items created or modified Menu Ice.Contracts.BO.Menu
through Menu Maintenance.
Personalization Tracks metadata changes that occur XXXDef Ice.Contracts.BO.GenXData
in the XXXDef table on the Epicor ERP
client. These metadata changes use
the Personalization type.
Productization Tracks metadata changes that occur XXXDef Ice.Contracts.BO.GenXData
in the XXXDef table on the Epicor ERP
client. These metadata changes use
the Productization type.
Quick Search Tracks custom quick searches created QuickSearch Ice.Contracts.BO.QuickSearch
through Quick Search Maintenance.
Report Tracks Reports (data definitions) and Report Ice.Contracts.BO.Report
created or modified through the
Report Maintenance and includes
all the components used in these
reports, such as Electronic Compliance
Definitions, BAQs, Styles, RDDs, RDLs,
and Electronic Interfaces (if any).
ReportStyle Tracks Report Style of the Report ReportStyle Ice.Contracts.BO.Report
created or modified through the
Report Maintenance.
When you add an SSRS Report Style
to the solution, during the build
process you can optionally pull the
definition from the corresponding

10.2.700 871
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

Element Description Parent Business Object


Table
Name
Report Definition Language file and
include it in the solution.

RptDataDef Tracks report data definitions for RptDataDef Ice.Contracts.BO.RptDataDef


custom reports and duplicate system
reports created or modified using the
Report Data Maintenance.
Security Tracks changes made to the Security Security Ice.Contracts.BO.Security
business object, through processes
and programs such as Menu
Maintenance or Customization
Maintenance.
UDCodeType Tracks User-defined Code Types UDCodeType Ice.Contracts.BO.UserCodes
created or modified through User
Defined Codes Maintenance.
UDMap Tracks User-Defined Field Maps UDMapTable Ice.Contracts.BO.UDMap
created or modified within Extended
Field Map Maintenance. These maps
copy fields from one user-defined
table to another user-defined table,
making it easier for you to maintain
custom table structures.

Verticalization Tracks metadata changes that occur XXXDef Ice.Contracts.BO.GenXData


in the XXXDef table on the Epicor ERP
client. These metadata changes use
the Verticalization type.

XXXDef Tracks metadata changes made to the XXXDef Ice.Contracts.BO.GenXData


XXXDef parent table for all XXXDef
types (BaseExtension, Productization,
Verticalization, Localization, and
Customization). However this element
only displays these parent table
changes in the Tracked and Solution
panels within the Solution
Workbench.
ZBODef Tracks changes made to the zBODef ZBODef Ice.Contracts.BO.ZBODef
table.
ZDataSet Tracks changes made to the zDataSet ZDataSet Ice.Contracts.BO.ZDataSet
table.
ZDataTable Tracks changes made to the ZDataTable Ice.Contracts.BO.ZDataTable
zDataTable table.

872 10.2.700
Epicor ICE 3.2 Customization User Guide 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.2.700 873
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

Solution Description
Type
ALL Tracks all Delivered elements defined in the database. When you use this type, custom
elements you create in Element Maintenance do not display in the solution. Only elements
that have their System Flag values set to True (Delivered) are recorded by this solution type.

Note all elements listed in this table apply


to integration of the standalone ICE
platform with other Epicor products such
as iScala or Prophet 21. The limitation
includes BAQ Reporting, Business Process
Management (BPM) functionality, Reporting
capabilities and creation of User-Defines
tables and columns.

Delivered elements:
• BAQ
• BAQReport
• BaseExtension
• BPM Method directives
• Customization
• Dashboard
• ExtensionSet
• IPForm
• Localization
• Menu
• Productization
• Report
• ReportStyle
• RptDataDef
• Security
• UDCodeType
• UDMap
• Verticalization
• XXXDef
• zBODef
• zDataSet
• zDataTable

<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.

874 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

Solution Description
Type
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.

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.

10.2.700 875
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

7. The Search window displays.

876 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

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.

11. The Dashboard element displays in the grid.

10.2.700 877
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

12. Click Save.

Solution Workbench

Use the Solution Workbench to create a solution that contains objects you wish to bundle together and distribute
to other locations within your organization, from one Epicor application server to another.
Through this program, you generate a .cab file that contains the files and data for the solution. The files you can
add to a solution may include code projects, configuration documents, xml files, Database Scripts and so on.
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.
• Delete an existing solution from a system.

Start the Solution

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.

878 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

Menu Path: System Management > Solution Management > Solution Workbench

This program is not available in Epicor Web Access.

1. To create a new solution, click New.

By default, the read-only Release Version field displays


the current version of your Epicor ERP.

2. In the Solution field, enter MySolution.

10.2.700 879
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

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.

8. If the performance of your solution depends on functionality introduced with a specific release update, use
the Min. Upd. Version field to set the minimum release update version this solution can be installed to.

Example At the time of solution creation, the Release


Version is 3.2.500.7 and the Min. Upd. Version is set
to 5. This means that this solution can be installed into
version 3.2.500.5 or higher - for example, 3.2.500.10 or
even into a higher release version, 3.2.600.5.

9. Select the Restrict to current release option if you wish allow the installation of this solution strictly within
the Release Version it has been created in.

10. 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. You can enter a maximum of 50
characters in this field.

880 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

11. 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.

12. You may use an optional field Solution Reference to enter a custom version of the solution. It allows the
creator of a solution to use their own scheme to track what instance of a solution package was installed or
is being installed.
The value you enter in this field is written to the manifest data within the generated CAB file, and solution
history when installing a solution. It is displayed as a visual reference when installing a solution and displays
on the grid used to delete installed solutions. This field is not checked by any Epicor business rules, it is used
for informational purposes only.

13. The Build Iteration field displays the solution build number. Each time you build the current solution, the
value is increased by 1. When you install a solution, the system checks this value. If you attempt to install
an older version of the current solution, a warning message displays, indicating you are attempting to
overwrite a newer build.

14. Save the solution.

If you did not select an existing solution type, an error


message displays when you attempt to save. To correct
this, click the Solution Type... button to find and select
an available solution type.

15. 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.

10.2.700 881
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

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 Menu style, on the Main Menu, select Options > Solution
Tracking.

2. When you run the application using the Modern Home Page, on the Home Page, click the Settings tile.

3. From the General Options group, select Solution Tracking.

882 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

4. When you run the application using the Kinetic Home Page, on the Home Page, click the User icon, and
then select the More Settings button.
From the General Options group, select Solution Tracking

5. On the Change Current Tracked Solution window, select the MySolution record.

10.2.700 883
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

6. 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
Menu style, navigate to Options > Preferences window
and select the Solution check box on. Click OK to activate
this option.

Create a Custom Dashboard

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.

1. Navigate to Dashboards.
Menu Path: Executive Analysis > Business Activity Management > General Operations > Dashboard

This program is not available in Epicor Web Access.

2. Return to the Solution Workbench.


Menu Path: System Management > Solution Management > Solution Workbench

This program is not available in Epicor Web Access.

3. Click on the Tracked sheet. The dashboards you created automatically display in the right grid.

884 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

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.

Add Items to Solution

You can also manually add elements to a solution. During this example, you will add a custom dashboard to the
solution.

1. Click the Add To Solution button.

10.2.700 885
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

2. The Solution Element Search window displays.

3. Click on the User Defined tab.

4. Now click the Get Adapters... button.


The adapters populate the selection list.

5. You want to add a Customer List dashboard to this solution; this item is a custom dashboard you created.
Select the DashboardAdapter option.

6. Click Search.

886 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

7. The Dashboard Search Form window displays.

8. Click Search again to retrieve the available dashboards.

9. The dashboards display in the Search Results grid. Select the CustomerList dashboard.

10. Click OK.

11. The Selected Solution Items grid now displays the Customer List dashboard.

10.2.700 887
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

12. Click the Add To Solution button.

13. This dashboard contains a dependent element, the zCustomer01 BAQ. You want to include this dependent
item in the solution, so you click Yes.

When you click No, the dependent item is not included


in the solution. You typically do this when the dependent
item already exists on the target database or when you
do not need to include this item. For example, if you are

888 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

adding an External BAQ, you may not want the


Datasource and Datasource Type included in the solution,
as these items would be overwritten by the installed
solution.

14. Click on the Detail > Solution tab.

15. The dashboard and selected BAQs display on the grid. Notice the dependent BAQ, zCustomer01, is included
with other BAQs you have added to this solution.

16. Click Save.

Dependent Items

Items like dashboards, BAQs, external BAQs, quick searches, reports, and so on require dependent items to run.
When you add these items to a solution, the Solution Workbench asks whether you want to include these
dependent items in the solution as well.
When you include these dependent items, they install in the target database. These dependent items then update
equivalent dependent items in this database. Because you may not want this to occur, you can also prevent
dependent items from being installed with the solution. Do this when the dependent items already exist in the
target database or when you do not need them. For example, if you are adding an External BAQ, you may not
want the Datasource and Datasource Type included in the solution, as these items will be overwritten by the
installed solution.
This option displays when you use the Solution Element Search window. After you select an item that contains
dependent items, a dialog box displays. This dialog box lists the dependent item and asks whether you want to
include it in the solution. If the selected item contains multiple dependent items, each one displays in a separate
dialog box.

10.2.700 889
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

For example, when you add a report style element to a solution, you are prompted to add the corresponding
report data definition (RDD). Furthermore, if the report style has a digital certificate associated with it, the system
will prompt you to add this certificate file to the solution.

When you add a report element to a solution, all its dependent


items - report style, data definition, and digital certificate(s) (if
any) - are automatically added too.

When you install a solution with dependent items and the target database already has items with the same IDs,
you are offered to overwrite them with the ones from the solution or skip their installation.

If your solution includes a report that uses columns in an


extended user-defined tables ([TableName]_UD), you need to
do an additional step. The Solution Workbench will not prompt
you for these dependent tables/columns, so you must manually
add the ZDataTable to your solution.

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 Create Solutions 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.

890 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

• 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.

Depending on items included within the solution you are


importing, additional dialogs display during the process.

5. If you are building an updatable Business Activity Query utilizing Epicor Service Connect (ESC) workflow to
perform database updates, you are presented with the Logon To Service Connect dialog.

6. Enter the valid ESC Server credentials used to export the workflow for the updatable BAQ and press OK.

7. If you are building an SSRS Report Style, you are presented with the SSRS RDL Export window.
Select if you want to pull the definition from the corresponding Report Definition Language file and export
it to the SSRS server once the solution is installed.

8. 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).

9. Click Save.

10. The generation process completes and its results display within the Build Output pane.

10.2.700 891
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

11. Click the Save Log button if you wish to save the solution build log to a file.
If any build errors occur, the process will be terminated and a message prompting you to save the log file
will display.

12. When the build is complete, click the Close button.

13. Exit the Solution Workbench.

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.

892 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

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.

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.

10.2.700 893
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

• 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.

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.

13. Depending on items included within the solution you are importing, additional dialogs may display during
the process. If you are installing a solution that contains an External Business Activity Query, you are presented
with the Select External Datasource window. Select a valid datasource that provides access to an external
database.
For more information on retrieving, updating and displaying information from an external database, read
the External Business Activity Queries chapter of the Tools User Guide in the Application help.

14. If you are importing an updatable Business Activity Query with the help of the Epicor Service Connect (ESC)
workflow to perform database updates, you are presented with a Logon To Service Connect dialog.
Enter the valid ESC Server credentials you want to use when the BAQ executes.

15. If the ESC workflow attached to the updatable BAQ already exists in the ESC installation, the Warning
message displays.
You can select to overwrite the existing workflow or keep the existing one.

16. If a Visual Studio .NET C# Project file (.csproj) is included in the solution, the Compile Custom window
displays. If you click Yes, the project is passed to the MS Visual Studio compiler. If the compilation succeeds,
the assembly is delivered to the folder defined in the project.

17. If you install a solution that contains a file in a directory you do not have write permission access, you receive
an Access Denied warning that this external file cannot be installed. Either ask your system administrator
to give you rights to this folder or recompile the .cab using a directory location you can access. Then install
the solution again.

894 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

18. The installation progress displays within the Installation Output pane.

19. Use the Save Log button to save the installation log to a file.
If the installation process runs with errors, the Save Log to File message displays prompting you to save
the log. Click Yes and save the file. Click No, if you don't wish to save log details.

20. When the installation process completes, click the Close button. The solution is installed within the current
company in the Epicor application.

In Epicor SaaS installations (Epicor hosted environments),


a Global Security Manager (GSM) installing the solution
has the ability to overwrite a BAQ in another company or
owned by another user.
Note the installation process does not prompt a GSM user
to overwrite the existing query. This user imports the BAQ
into a company and with authorship as defined in the
BAQ definition included in the solution.
The above process does not apply to Global BAQs; when
importing a query of this type, a GSM user has the same
rights as an ordinal user.

The options/values for tenant and multi-tenant features


are only for Epicor hosted environments. Typically you can
ignore these options. Internal Epicor administrators who
need more information should refer to the Epicor SaaS
Installation Guide.

For a complete description of all fields found on the Install Solution window, review the Solution
Workbench topics in the application help.

Install Queries with External Databases

Business activity queries (BAQs) can be extended through connections with external databases. When you install
a solution that has a query linked to an external database, you must define some additional setup parameters
during installation.

1. From the Solution Workbench, click Actions > Install Solution.

10.2.700 895
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

2. The Install Solution window displays.

896 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

3. As described in the previous topic, find and select the Solution File, select your install options, and click
Install.

4. The Select External Datasource window displays.

5. Select the external datasource you use with the external BAQ.

To import an external query, an external datasource must


be enabled for the current company. If this external
datasource is not set up before you install, this dialog box
will be empty.

6. To verify this query can display external data, click Test Connection. A dialog box displays indicating that
the BAQ was able to connect with the external database.

7. Click OK.

The query installs using the external database parameters you defined.

Install Queries with Service Connect Workflows

Business activity queries (BAQs) can be linked to Epicor Service Connect (ESC) workflows. To import these BAQs
into your system, you must define some additional Service Connect parameters as you install the solution.

1. From the Solution Workbench, click Actions > Install Solution.

10.2.700 897
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

2. The Install Solution window displays.

898 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

3. As described previously, find and select the Solution File, select your install options, and click Install.

4. The Select Epicor Service Connect Server window displays.

5. Define the ESC server and run-time credentials you want to save with the imported query. Available options:
• Use Company Default Server - Select this default option to use the ESC server and credentials specified
in Company Maintenance. When the query executes, it leverages these values to link with Service
Connect.
• Use Specified Server - Select this option to specify custom ESC server credentials.

6. When you select the Use Specified Server option, you next enter the Server you need. Enter or select the
identifier for the specific ESC server you wish to use. The value you enter in this field depends on the certificate
created for the ESC server. You might enter the Full Domain Name (FQDN) or the network server name.

7. Notice after you select or enter a server value, the Server URL field displays the Uniform Resource Locator
(URL) for the ESC server.

8. Now enter the User and Password for the user account that has rights to access Service Connect.

9. To verify access, click the Test Connection button. A dialog box displays indicating you have connected
with the Service Connect server.

10. Click OK.

11. Now the Select Workflow Package window displays. Use this window to define the group, or package,
of Service Connect workflows into which you want to install the query. From the Define a Workflow
package drop-down list, select the package you need.

10.2.700 899
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

12. If you wish to update the workflows in the package with the imported BAQ, select the Overwrite existing
workflows in the package check box.

13. Click OK.

14. If the query is contained in a Service Connect workflow that already exists, a Warning displays asking if
you want to overwrite the workflow. If you want to do this, click Yes.

15. However if you wish to create a new workflow, click No.

16. When you click No, the Enter Workflow window displays. From the Select a Workflow package
drop-down list, select the current workflow package that will include your new Service Connect workflow.

17. Now define the name for your new workflow in the Enter new Workflow name field.

900 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

18. Click OK.

The query installs using the Service Connect options you defined.

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 Epicor Web Access.

2. Click DefinitionID.

10.2.700 901
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

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 Epicor Web Access.

8. In the BAQ, click the Query ID... button to launch the Business Activity Search Form window.

902 10.2.700
Epicor ICE 3.2 Customization User Guide Solution Management | Chapter 8

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.2.700 903
Chapter 8 | Solution Management Epicor ICE 3.2 Customization User Guide

904 10.2.700
Epicor ICE 3.2 Customization User Guide Index

Index
4gl migration 670 create a child style filter 53
create favorites groups 154
create the style library 87
A custom code (fix) 688
activate personalization mode 292 custom columns, legacy 592
activate style tracking 65 custom fields 582
event handlers, otrans_ 474 custom fields, custom columns 586
adapters 493 custom fields, user-defined table 583
adapters, what displays 493 custom grid 528
add items to solution 885 custom grid, event wizard 532
adjust column width 280 custom grid, launch user defined table as child wizard 528
advanced personalization options 290 custom icons, export 77
alternate interfaces, customizing 377 custom icons, import 77
alternate interfaces, launch developer mode 379 custom object explorer 479
alternate interfaces, mes developer icon 377 custom object explorer, launch 479
application cache (clear) 698, 699 custom session options 335
application cache (display) 698 custom xml editor 536
assembly reference manager 495 custom xml editor, custom controls 537
auto hide sheets 275 custom xml editor, custom properties 539
autoload favorites groups 156 custom xml editor, xml view 536
customization code wizards 499
customization code wizards, launch wizard 499
B customization form wizards 397
customization maintenance log 696
baq zone process 604 customization maintenance log (display) 697
baq zone run mode 612 customization management 670
baq zone, customer part 639, 643, 645, 652 customization rights 318
baq zone, customer website 614, 617, 619, 622 customization tools dialog 331
baq zone, part image 624, 630, 636, 638 customization tools dialog, tree view 331
baq zones 604 customization tools dialog, wizards and script editor 332
begin personalization 294 customization/personalization (run, modify) 682
business activity query, create 605 customization/personalization (verify selected) 678
business logic assembly references wizard 501 customization/personalization maintenance 673
business object method call wizard 521 customizations/personalizations (export) 675
customizations/personalizations (import) 677
C customizations/personalizations (review, update, delete) 673
customizations/personalizations (verify all) 680
cached resource information (reset) 823 customizations/personalizations (verify group) 680
case study – new button theme 86 customizations/personalizations (verify) 678
change column order 279
change language in status bar (classic style) 830
change language, classic menu 828
D
change the look of ui roles 32 data dictionary viewer 556
child epiretrievercombo, add 753 data dictionary viewer – field report 558
classic menu personalization 138 data dictionary viewer – field view 557
clear application cache 698 data dictionary viewer – table view 556
code migration 670 data object, epidataview object 490
code type as an extended property (add) 599 data objects 489
components in the used by section 48 data objects, what displays 489
context menu (create) 578 database viewing tools 555
context menu (edit) 574 debug customizations 540
context menu (test) 577 debug customizations, launch debug mode 540
context menu maintenance 574 default theme, retrieve 84
context menus (deploy new) 581 define additional options for ui role 40
country codes 808 define component role settings 89
country group 808 define overall styles for ui role 42

10.2.700 905
Index Epicor ICE 3.2 Customization User Guide

define ui role settings 91 filter inheritance priorities 64


delete theme 83 floating sheets 274
dependent items 889 force validation 691
deployment (add custom program) 657 foreign key view 451
deployment (copy custom program) 661 foreign key view data, display 455
deployment (create custom sub process) 663 foreign key view, create 452
deployment (menu maintenance) 666 foreign key view, image column 461
deployment (process calling maintenance) 668 foreign key view, like property 459
deployment (replace existing program) 656 form event wizard 434
deployment (sub program) 662 form event wizard, available events 437
deployment (test the sub process program) 669 form event wizard, multiple conditions 436
developer mode 319 form event wizard, single condition 434
developer mode, activate 320
developer mode, launch 328
developer mode, launch customization tools dialog 329
G
developer mode, program customization 329 general options 256
dialogs options 262 general options, modern shell 159
disable memory caching 328 generate web forms 693
docking sheets 269 generate web forms (verify form availability) 696
generate web forms (verify web access uniform resource locator)
E 693
global customization tools 573
element colors, personalize 296 global options - hot keys 265
elements, add 345 global options - status bar 264
elements, hide 339 globally save the styling 97
elements, hide example 339 grid caption translations 857
elements, hide, move, and add 339 grid filters 282
elements, move 341 grid properties, personalize 309
elements, move example 341 grid settings 336
embedded customization (attach the baq zone) 609 grid size 336
enable show summaries 286 grid split option 281
epicor web access customizations 673 grid, add 367
epiretrievercombo box, add 361 grids, personalize 279
epiretrievercombo, add 717
epiretrievercombo, modify properties 722
event handlers 472
H
event handlers, aftergetbyid() 474 hide columns in a grid 309
event handlers, destroycustomcode() 472 home page layouts 212
event handlers, initializecustomcode() 472 home page layouts, base layout 213
event handlers, retrieve() 473 home page layouts, colors 215
event handlers, trackerqueryrowchanged() 474 home page layouts, company default 247
event sequence for shutdown 475 home page layouts, default 246
event sequence for startup 475 home page layouts, delete 236
event wizard 446 home page layouts, export 237
event wizard, button click event 446 home page layouts, favorites 224
event wizard, grid event 450 home page layouts, favorites list 218
export customizations 374 home page layouts, import 237, 240
export customizations, export the file 374 home page layouts, reset 248
export theme 82 home page layouts, test 230
extended property maintenance 592 home page layouts, user 246
extended property maintenance (attach the baq zone) 607 home page layouts, user rights 212
extended property maintenance, select dataset 592 hot keys options 261
extended property maintenance, update properties 593
extended property wizard 503
I
F icon resources, export 74
icon resources, import 74
favorites bar 149 image browser (add images using) 602
favorites bar, external shortcuts 152 image column wizard 419
favorites bar, internal shortcuts 151 image column wizard, add column 419
favorites bar, user privileges 149 image column wizard, add rule 421
field help 560

906 10.2.700
Epicor ICE 3.2 Customization User Guide Index

image column wizard, row rule wizard 424 P


image column wizard, use row rule wizard 425
image column, test 431 parent and child epiretrievercombo custom code 770
import graybuttons theme 102 parent and child epiretrievercombos 725
import resources 30 parent and child epiretrievercombos, test customization 768
import theme 70 parent child user-defined table, find 728
import translations 812 parent child user-defined table, modify child sheet 734
install queries 895, 897 parent epiretrievercombo, add 744
install solution 892 parent epiretrievercombo, create user defined table 739
interface style 136 parent epiretrievercombo, modify properties 749
parent epiretrievercombo, regenerate data model 741
parent/child epiretrievercombo, custom assemblies 760
L parent/child epiretrievercombo, enter code 764
language (export) 819 parent/child grids 772, 774, 777, 781, 788, 790, 791, 793, 798,
language culture (change) 822 802, 803
language files (purchase) 809 parent/child grids, add 772
language maintenance 810 parent/child grids, add epiultragrid 791
language settings, modern shell 824 parent/child grids, create customization 777
language, add 810 parent/child grids, make default 802
languages (change) 824 parent/child grids, refine code 798
languages (install) 809 parent/child grids, save customization 790
launch style filter manager 51 parent/child grids, select display columns 793
launch the runtime stylist 23 parent/child grids, test 803
legacy columns 592 parent/child grids, update child detail sheet 781
load style theme 20 parent/child grids, update child list sheet 788
localization layer 832 parent/child grids, user-defined table 774
localization layer (create) 833 parent/child user defined table, display data 739
localization layer (use) 839 parent/child user-defined table, add 726
parent/child user-defined table, customize 731
parent/child user-defined tables 725
M personalization options 254
personalization purge 671
main menu deployment 655 personalization rights 290
main menu personalization 138 personalization, delete 311, 316
manage component role settings 43 personalization, export 311
manage resources 28 personalization, import 311, 313
manage shared object role settings 46 personalize, font type 299
manage stylesets 26 personalize, foreground color 299
manage themes 80 personalize, location 303
memory caching 157, 328 personalize, size 303
menu deployment 655 personalize, tab stop 305
menu items, add 201 personalize, text 305
menu maintenance 666 preferences, classic menu 143, 159
mfgcustomimages.resources file 600 preview ui role 41
migration, code 670 process calling maintenance 668
modern shell personalization 159 program personalization 254
modify a customization/personalization 684 program specific text (enter) 817
modify child style filter 56 progress code migration 670
modify components in the used by section 48
modify hot-tracked state 98
modify pressed state 99 Q
modify sheet tab order 267
moving toolbars 278 queries, external databases 895
queries, service connect workflows 897
queries, solution workbench 895, 897
N
new translated text (enter) 816 R
non-customizable forms 396
regenerate data model 589
resource assemblies (generate) 821
O resource editor 600
resources 28
options menu 142 retriever combo conversion 690

10.2.700 907
Index Epicor ICE 3.2 Customization User Guide

review controls and properties 686 show custom code (retriever combo conversion) 690
ribbon interface 258 show custom data 686
role selection 49 show custom data (fix custom code) 688
roles 32 show custom data (force validation) 691
rule wizard 397 show custom data (review controls and properties) 686
rule wizard, add condition 397 show group by 284
rule wizard, available actions 402 show group by - secondary 286
rule wizard, available conditions 399 simple search wizard 504
rule wizard, bitflag action 416 simple search wizard, add controls to form 510
rule wizard, bitflag rule 415 simple search wizard, add text fields 513
rule wizard, create actions 400 simple search wizard, add user defined fields 504
rule wizard, cross view rule 403 simple search wizard, finish customization 519
rule wizard, custom action 411 simple search wizard, launch wizard 516
rule wizard, custom code 413 simple search wizard, regenerate data model 508
rule wizard, custom condition 405 simple search wizard, use the event wizard 512
rule wizard, custom condition rule 406 simple search, custom column 506
run a customization/personalization 682 snap to grid mode 337
runtime stylist 23 solution element maintenance 869
runtime stylist – primary controls 25 solution management 867
solution management, user rights 867
solution types 873, 875
S solution workbench 878, 881, 882, 884, 885, 890, 892, 895,
save options 372 897, 901
save options, select 372 solution, add items 885
save settings on exit, classic menu 148 solution, build 890
save settings on exit, modern shell 251 solution, install 892
save the style library 100 solution, start the 878
script editor 462 solution, verify install 901
script editor examples 476 sort columns 281
script editor examples, before/afteradapter method() example standalone user-defined table, add 701
477 standalone user-defined table, customize 707
script editor examples, launch a ui application (uiapp) 476 standalone user-defined table, find 704
script editor examples, launch search for specified adapter 476 standalone user-defined table, modify interface 711
script editor examples, validation test code 476 standalone user-defined tables 701
script editor, areas options 468 string manager 497
script editor, control options 469 string manager, custom strings 497
script editor, display options 467 string manager, translation utility 499
script editor, editing menu 464 style filter management 51
script editor, general options 470 style theme loading 19
script editor, interface 462 style tracking 65
script editor, options 467 styling controls 386
script editor, tabs options 471 styling controls, create style 389
script editor, test code 465 styling controls, define style 387
script editor, text options 468 styling controls, disable 394
select and size the image 95 styling rights 18
select customization 324 suppress save comment dialog, activate 337
select customization, begin 324 suppress save comment option 338
set background image for ui role 34
set border for ui role 36 T
set common component properties 44
set font attributes for ui role 38 text box, add 352
set foreground image for ui role 39 text box, add a label 354
set new theme as default 104 text box, bind field 353
set specific component properties 45 text box, place field 352
set specific properties for shared object role settings 47 text box, save and view 359
sheet layouts, personalize 267 the view menu 139
sheet properties, personalize 295 theme maintenance 68
sheet wizard 438 theme maintenance, launch 68
sheet wizard, add dashboard 441 tile groups 204
sheet wizard, add dashboard wizard 442 tile groups, add 205
sheet wizard, add sheet 439 tile groups, delete 211
sheet wizard, finish sheet 444 tile groups, edit 210

908 10.2.700
Epicor ICE 3.2 Customization User Guide Index

tile groups, rearrange 208 ui objects, form object 485


tiles 165 ui objects, processes calling object 488
tiles, baq gadget 178, 179, 181, 183, 184 ui objects, session object 486
tiles, drag and drop 197 ui objects, what displays 481
tiles, edit 199 unload style theme 84
tiles, favorites list 185, 188, 189, 190 use case 639
tiles, general 192, 194, 196 customer part baq zone 639
tiles, links 166, 167, 172, 177 use role selection tool 49
tiles, rearrange 203 use style library 26
toolbars, personalize 277 user account (test) 864
toolbox 345 user account culture code (define) 859
toolbox tour, part one 347 user account language (define) 862
top most mode 335 user account maintenance 858
top most mode, disable 335 user defined codes maintenance 597
tracing log 564, 571 user-defined (ud) table add/edit/delete functionality wizard 526
tracing log, client 566 user-defined code type (create) 597
tracing log, user account 564 user-defined codes (create) 598
translation utility 846
translation utility rights 863
translation utility, customization records 852
V
translation utility, missing in dictionary 855 verify form availability 696
translation utility, on-line translation list 846 view style tracking information 66
translations (edit) 814 view the theme 105
translations, grid captions 857 event handlers, 472, 473, 474
translations, import 812
tree view options 264
W
U web access uniform resource locator (verify) 693
web forms (generate) 693, 694
ui objects 481 web forms (verify form availability) 696
ui objects, customscriptmanager object 487 web forms (verify web access uniform resource locator) 693
ui objects, epitransaction object (otrans) 484

10.2.700 909
Index Epicor ICE 3.2 Customization User Guide

910 10.2.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.

Вам также может понравиться