Professional Documents
Culture Documents
0
Customization
User Guide
Disclaimer
This document and its contents, including the viewpoints, dates and functional content expressed herein are the
proprietary copyrighted property of Epicor Software Corporation, are intended for informational purposes only and
are believed to be accurate as of its date of publication. However, Epicor Software Corporation makes no guarantee,
representations or warranties with regard to the enclosed information and specifically disclaims any applicable implied
warranties, such as fitness for a particular purpose, merchantability, satisfactory quality or reasonable skill and care.
As each user of Epicor software is likely to be unique in their requirements in the use of such software and their business
processes, users of this document are always advised to discuss the content of this document with their Epicor support
representative, account manager and/or consulting personnel. All information contained herein is subject to change
without notice and changes to this document since printing and other important information about the software
product are made or published in release notes, and you are urged to obtain the current release notes for the software
product. The usage of any Epicor software shall be pursuant to an Epicor end user license agreement and the performance
of any consulting services by Epicor personnel shall be pursuant to Epicor's services terms and conditions. Usage of the
solution(s) described in this document with other Epicor software or third party products may require the purchase of
licenses for such other products. Where any software is expressed to be compliant with applicable laws or other statutory
or regulatory requirements in this document, such compliance is not a warranty and is based solely on Epicor's current
understanding of such laws and requirements. All laws and requirements are subject to varying interpretations as well
as to change and accordingly, Epicor cannot guarantee that the software will be compliant and up to date with such
changes. All statements of platform and product compatibility in this document shall be considered individually in
relation to the products referred to in the relevant statement, i.e., where any Epicor software is stated to be compatible
with one product and also stated to be compatible with another product, it should not be interpreted that such Epicor
software is compatible with both of the products running at the same time on the same platform or environment.
Additionally platform or product compatibility may require the application of Epicor or third-party updates, patches
and/or service packs and Epicor has no responsibility for compatibility issues which may be caused by updates, patches
and/or service packs released by third parties after the date of publication of this document. Epicor, Business Inspired
and the Epicor logo are trademarks of Epicor Software Corporation, registered in the United States, certain other
countries and/or the EU. All other trademarks mentioned are the property of their respective owners. Copyright ©
Epicor Software Corporation 2014. All rights reserved. No part of this publication may be reproduced in any form
without the prior written consent of Epicor Software Corporation.
10.0.700
Revision: June 26, 2014 4:00 p.m.
Total pages: 527
sys.ditaval
Epicor ICE 3.0 Customization User Guide Contents
Contents
Introduction..........................................................................................................................13
10.0.700 3
Contents Epicor ICE 3.0 Customization User Guide
Chapter 2: Personalization..............................................................................62
Personalize the Main Menu Interface.............................................................................................................62
The View Menu.............................................................................................................................................63
The Options Menu.........................................................................................................................................65
Modify the Status Bar on the Main Interface...........................................................................................66
Save Settings on Exit......................................................................................................................................68
The Favorites Bar............................................................................................................................................68
Favorites Bar User Privileges....................................................................................................................68
Add Internal Shortcuts to the Favorites Bar..............................................................................................70
Add External Shortcuts to the Favorites Bar.............................................................................................70
Create Favorites Groups..........................................................................................................................71
AutoLoad Favorites Groups.....................................................................................................................72
Memory Caching....................................................................................................................................73
Personalize the Program Interface..................................................................................................................75
Personalization Options Window............................................................................................................75
General Options..............................................................................................................................75
Ribbon Interface..............................................................................................................................77
Hot Keys Options.............................................................................................................................80
Dialogs Options...............................................................................................................................80
Tree View Options...........................................................................................................................81
Global Options - Status Bar..............................................................................................................82
Global Options - Hot Keys...............................................................................................................82
Personalize Sheet Layouts..............................................................................................................................83
Modify Sheet Tab Order..........................................................................................................................84
Docking Sheets.......................................................................................................................................85
Floating Sheets.......................................................................................................................................87
Auto Hide Sheets....................................................................................................................................89
Personalize Toolbars.......................................................................................................................................90
Moving Toolbars.....................................................................................................................................91
Personalize Grids............................................................................................................................................92
Change Column Order...........................................................................................................................92
Adjust Column Width.............................................................................................................................92
4 10.0.700
Epicor ICE 3.0 Customization User Guide Contents
10.0.700 5
Contents Epicor ICE 3.0 Customization User Guide
6 10.0.700
Epicor ICE 3.0 Customization User Guide Contents
10.0.700 7
Contents Epicor ICE 3.0 Customization User Guide
8 10.0.700
Epicor ICE 3.0 Customization User Guide Contents
10.0.700 9
Contents Epicor ICE 3.0 Customization User Guide
10 10.0.700
Epicor ICE 3.0 Customization User Guide Contents
Force Validation....................................................................................................................................400
Generate Web Forms............................................................................................................................401
Verify Web Access Uniform Resource Locator................................................................................402
Generate Web Form......................................................................................................................402
Verify Form Availability..................................................................................................................404
Customization Maintenance Log...........................................................................................................404
Display the Log..............................................................................................................................404
Clear Application Cache.......................................................................................................................405
Display the Application Cache.......................................................................................................405
Clear the Application Cache..........................................................................................................407
Chapter 7: Localization..................................................................................461
Country Group and Country Codes..............................................................................................................461
Install Languages.........................................................................................................................................462
Purchasing and Installing Language Files...............................................................................................462
Language Maintenance................................................................................................................................462
Add a Language...................................................................................................................................463
Import Translations........................................................................................................................464
Edit Translations...................................................................................................................................466
Enter New Translated Text....................................................................................................................468
Enter Program Specific Text..................................................................................................................468
10.0.700 11
Contents Epicor ICE 3.0 Customization User Guide
Export a Language................................................................................................................................470
Generate Resource Assemblies..............................................................................................................471
Change Language Culture....................................................................................................................472
Reset Cached Resource Information......................................................................................................473
Change Languages......................................................................................................................................474
Change Language in Modern Shell Interface.........................................................................................474
Change Language in Classic Style Interface...........................................................................................476
Classic Style Status Bar..................................................................................................................477
Localization Layer.........................................................................................................................................479
Create the Localization Layer................................................................................................................479
Use the Localization Layer.....................................................................................................................483
Translation Utility.........................................................................................................................................487
Translation Utility – On-Line Translation List..........................................................................................488
Translation Utility – Customization Records...........................................................................................491
Translation Utility – Missing in Dictionary..............................................................................................493
User Account Maintenance..........................................................................................................................494
Define the User Account Culture Code.................................................................................................494
Define the User Account Language.......................................................................................................497
Translation Utility Rights.......................................................................................................................498
Test the User Account...........................................................................................................................499
12 10.0.700
Epicor ICE 3.0 Customization User Guide Introduction |
Introduction
The Epicor ICE 3.0 User Experience and Customization Guide explores the interface tools available within the
Epicor ICE framework. This guide is intended for managers responsible for fine-tuning their departmental use of
the Epicor 9 application and advanced users looking to modify the application interface for their specific needs.
This guide begins by exploring the various startup methods available within the configuration settings file. It then
examines the functionality for both styling the look of the interface and personalizing specific programs by user.
Then the customization tools are thoroughly documented through a series of chapters beginning with the basic
customization tools and then progressing on to managing customizations and modifying user-defined tables.
This guide concludes with chapters on localizing the application for different languages/cultures and building a
customized solution. You need both sets of tools fully leverage the Epicor application throughout your domestic
and international organization.
Use this guide as a starting point to learn about the available interface tools and as a reference for later use of
these same tools. This guide is a crucial resource for anyone who needs to leverage these tools for both managing
and enhancing their organization’s unique business practices.
10.0.700 13
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
Complete control over the look and feel of the entire interface is available through the styling functionality. You can
use this toolset to display a pre-built design, or theme, from the options installed with the application. You can also
use these tools to edit an existing theme and create a new theme.
Through the styling functionality, you manipulate the look of each item, or component, within the interface – buttons,
check boxes, fields, borders, and other items. You have complete control over the look of each component, as you
can update the different states in which they display. For example, you can create multiple button states – normal,
selected, pressed – in a graphics program and then add these various states as the default look for all buttons within
the application. Because you are updating one user interface definition, or UI role, the changes you make display
globally throughout the interface.
Your updated or new theme can then be made available to everyone within your entire organization. This toolset
contains export and import functions, which you can then pass along your revised or new theme to whomever you
want.
Use the styling functionality to create a user interface unique for your company, departments, and users. By refining
the look of existing themes or creating new ones, you can transform the application to display an entirely different
look and feel.
User Maintenance
Only specific users can access the styling functionality. You give users styling rights through User Account
Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance
14 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
1. Use the Detail sheet to find and select the user record you need.
This user can now access the Styling features. The next time this user logs into the application, the styling features
are available on the Options menu from the Main Menu.
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.0.700 15
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
1. On the Main Menu, from the Options menu, select Styling > Load Style Theme.
3. This window defaults to the Styles folder. This folder contains all default themes available for your application.
4. Select the theme you want to use. Notice that all themes use the .isl file extension. In this example, you
select the ArcticBlue.isl theme.
5. Click Open.
16 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
You can now use this theme for the rest of the current session. You can also use the Runtime Stylist to edit the
theme. Note that if you exit the application, however, the theme reverts back to the default theme.
If you want a different theme to become the default, run the Theme Maintenance program. Use this tool to
indicate that a different, selected theme becomes the default look when you launch this client application. For
more information about this tool, read the Theme Maintenance section later in this chapter.
Runtime Stylist
The primary tool of the Styling functionality is the Runtime Stylist. Use this tool to change the appearance of
every component within the user interface. You can then see this change immediately, as the interface is updated
while the application runs. This helps you decide if you like, or do not like, the change to the interface.
You use this tool to modify an existing theme or create an entirely new theme. You can then use this theme for
your client installation and make it available to other users within your company.
The application runs in two modes – Run Mode (or Runtime) and Developer Mode. Typically you use the application
in Run Mode, which means that the application sheets are used for normal activities like data entry and processing.
The Runtime Stylist operates in Run Mode, so you can see the application in action while you edit the styling.
In Developer Mode you suspend the normal operation of the program in order to customize it. The styling features
are never used in Developer Mode. For more information about the two modes, read the Basic Customization
chapter.
10.0.700 17
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
Runtime Stylist divides the user interface items into three main categories – UI Roles, Component Role Settings,
and Shared Object Role Settings.
Each of these categories has various properties and options that you can manipulate as you need. The differences
between these categories are explored later in this section.
1. On the Main Menu, from the Options menu, select Styling > Runtime Styler.
18 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
You can now use this program to update or create new themes.
4. To create a copy of the current theme, click the Save As… button.
10.0.700 19
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
6. If you want to constantly display the Property Panel, click the Show/Hide Property Panel button. The
Property Panel always stays on your screen; it displays different items based on the selected setting,
component, or UI role.
7. The Update Mode tab defines how the interface refreshes after you make changes to the current theme.
The Runtime Stylist is set to immediately update the interface; you cannot change this value.
Manage StyleSets
The base look and feel of each interface component is defined through a StyleSet. Much like a cascading style
sheet determines the look and feel of an .html page, a StyleSet determines the original overall look contained
within the selected theme. You can then change the baseline look of each component through the Runtime
Stylist.
Use the middle section of the Runtime Stylist to control the StyleSet used on the current theme. Available options:
3. Click the Add New button to create a new StyleSet to add to the current Style Library (theme). It is called
New StyleSet – followed by an incremented number.
4. To delete the current StyleSet from the library, click the Remove button. To the confirmation message, click
Yes.
5. If you wish to change the default StyleSet used by the current theme, highlight the StyleSet option you want
from the Existing StyleSets list.
For example, the EpiStyle_Invisible style set is used to hide a specific field. However, you could change this
style to use a gradient, image, or other style. You can then apply this style to a field using the Rule Wizard.
For more information, review the Rule Wizard sections in the Advanced Customization chapter.
6. Select the Make Default option. The StyleSet now displays in bold text followed by this word: (Default)
20 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
7. The StyleSet Name field displays the selected StyleSet. If you need, you can change the name of the StyleSet.
8. To use one StyleSet as the foundation for a new StyleSet, select this StyleSet from the Based On drop-down
list. In this example, StyleSet 2 is based on StyleSet 1.This means that StyleSet 2 now uses all of StyleSet 1’s
component styles – unless this styling is changed within StyleSet 2.
9. Use the Control Defaults list to select a style for a specific component. To do this, select the check box
next to the component. This style is now the default for this component within the current theme.
Only one default style is defined for each component, so if you select a component that already has one,
you are asked if you want to change it.
10. When you finish working on the StyleSets for this theme, click OK.
Resources
Resources are containers of style information that you can then use within themes. A resource can be any item
you create or add to a theme, like a gradient or a graphic file. Each resource can then be applied to a UI Role.
You can use the Runtime Styler to import and export various resources (graphics, colors, and other settings) that
you use with your themes. You can then incorporate these resources into any role on the user interface that you
need.
UI Roles are styling records that create a uniform look for the various interface components like buttons, fields,
borders, check boxes, and other items. To learn more about UI Roles, read the UI Roles section later in this chapter.
Manage Resources
Use the Resources tab to manage all the resources stored within the current Style Library (theme). To use this
tab:
2. Click the Add New button to create a new resource. This displays the Properties Panel; use this window
to create the resource. To learn more about this key styling window, read the UI Roles section later in this
chapter.
10.0.700 21
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
3. After you add a resource to the current Style Library, it is labeled as Resource 1, Resource 2 and so on. To
change the label text, right-click the resource; its context menu displays. Select the Rename command to
change the label.
4. Notice that you also Add New and Remove resources through this context menu.
5. If you want to duplicate the selected resource, select the Create Copy command from the context menu.
6. To create a new resource from another resource, use the commands under the Copy From submenu.
7. To delete a resource from the Style Library, highlight it and click the Remove button.
8. You can also pull in the resources from another style library (theme). To do this, click the Import button.
This launches the Open Style Library window from which you select an .isl file to load. For more information,
read the next section, Resources Tab –Importing Resources, to learn about the import functionality.
9. If you click the More Buttons icon, you display the Export button. Click this button to save this resource
list as a separate file. This causes the Save Style Library button to display, where you can select a folder
and enter a filename for the new library.
Import Resources
While you import resources, you can indicate which specific resources you want imported from a selected style
library (theme).
To select the resources:
3. By default, this window opens the Styles folder. If you need, you can navigate to another folder that contains
the .isl file (theme) you need.
4. Select the .isl file that contains the resources you want to import.
5. Click Open.
22 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
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.
11. The resources you selected display within the Resources tab.
Roles
Use the Runtime Stylist to update the styles of specific components through the Roles tab. To do this, you use
the Roles Tree View to navigate through all the components on the user interface. You can also use the Tree
View to launch the Properties Panel for each UI Role, so you can make detailed appearance changes on each
role.
Roles use an inheritance feature to help you make global changes to a theme. When you make a change to a
base role, this change is then passed along to all the components that use this base role. For example, each base
10.0.700 23
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
role contains a default background resource; you can change the color on this resource. This causes all the
components which use this base role to display using the same background color.
You can, however, override this inherited styling on specific components. Leverage this functionality to create
an overall style for your theme, but then add variations to it as you need.
If you need to override styling from a base role, you must set
the component’s UseOSThemes property to False. The example
at the end of this chapter shows you how to change this
setting.
This section describes the three main role categories – UI Roles, Component Role Settings, and Shared Object
Role Settings. It also describes the specific options you can change for each role type.
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.
4. Click the Base parent node and continue to expand the child nodes until the UI Role you want displays.
5. In this example, you want to change the properties for the UltraButtonDefault role. Select this role.
24 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
6. The Properties Panel window displays. Use this panel to change the style settings for the role. For this
example, the panel is labeled: Settings for ‘UltraButtonDefault.
7. Each role contains various states through which it displays. Depending on the user’s actions on the interface,
a different state for the component appears. In this example, the UltraButtonDefault role has a Normal
state, a HotTracked (highlighted) state, and a Pressed state. You can edit the settings of each state as you
need.
8. Notice you can always restore all the states of the current UI role to their original values. To do this, click
the Reset States button.
9. Select the tab of the state you wish to edit. In this example, you select the Normal tab.
10. Notice that the bottom toolbar divides the state’s settings into Background, Border, Font, Image, and
Other groups.
The next sections detail the style settings available within each group.
1. Click the Background Fill drop-down list to define whether the background for the role is a solid color,
gradient, or a hatch pattern.
2. Use the Fill button to indicate the main color displayed for the background of the state. When you select
either a gradient or a hatch pattern, two Fill buttons then display. You can then define the two colors used
for the background gradient or pattern.
3. Click the Type button to define the gradient or hatch pattern type that displays. When you click this button,
a list appears; select the gradient or hatch pattern type you want.
4. To substitute an image for the state’s background, click the Image button and select File from the drop-down
list. An Open File window displays. Find and select the image file that you want to display.
10.0.700 25
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
5. If the main image is not available, you can indicate that a second image can be displayed instead. To define
this image, click the Disabled Image button to find and select this backup image from the Open File
window.
6. Click the Layout Mode drop-down list to indicate how this image displays within the state. Available options:
• Center – The image is placed in the middle of any component that uses this state.
• Stretch – The image is pulled across any component that uses this state. The image size is not modified,
so it may or may not fill the entire component.
• Tile – The image size is not modified. Instead, multiple versions of the image display through a series of
tiles.
7. If you select the Stretched layout mode, the Margins button displays. Click this button to display the
Stretch Margins Editor.
8. Use the Top, Right, Bottom and Left values to define the margins, in pixels, for the image.
11. Click the Image Alpha drop-down list to select how the image displays. Available options:
• UseAlphaLevel – Select this option to use the Alpha Level defined on the Other section of the Properties
Panel. For more information, review the UI Roles – Other section later in this chapter.
• Opaque – Users see this image exactly as it normally appears.
• Transparent – Users can see through the image.
12. Use the Disabled Fill button to select what color is used when the main selected color is not available. If
the Background Fill is for a gradient or a hatch pattern, a second Disabled Fill button becomes available.
26 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
Use this button to select a second color to use when the second gradient or hatch pattern color is not
available.
13. Click the Alpha drop-down list to select how the background fill colors display. Available options:
• UseAlphaLevel – Select this option to use the Alpha Level defined on the Other section of the Properties
Panel. For more information, review the UI Roles – Other section later in this chapter.
• Opaque – Users see this color exactly as it normally appears.
• Transparent – Users can see through this color.
2. The Color Picker window displays. Use this window to define what color the current state of the UI Role
uses along its edge.
3. If you want, you can also make the border appear transparent by clicking the Transparent button (the
button with the red line through it) within the Color Picker.
4. After you select the color, you return to the Properties Panel.
5. Click the Border 2 button to launch the Color Picker; use this window to define a second color that this UI
Role displays along its edge.
10.0.700 27
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
6. You can use the Border 3D button to select the color (from the Color Picker) of the three dimensional
border. If you want, you can also make the border appear transparent by clicking the Transparent button
(the button with the red line through it) within the Color Picker.
7. Click the Alpha drop-down list to select how the border color appears to the user. Available options:
• UseAlphaLevel – Select this option to use the Alpha Level defined on the Other section of the Properties
Panel. For more information, review the UI Roles – Other section later in this chapter.
• Opaque – Users see this color exactly as it normally appears.
• Transparent – Users can see through this color.
1. Click the Font Type drop-down list to select the specific font you use for this state of the UI Role.
2. Click the Font Size drop-down list to define how large the font displays. You can also use a size not available
on this list. To do this, click the Font Size field and enter the number you need.
3. Click the Font Color button to display the Color Picker. Use this window to define the color this font uses.
4. Use the Font Style buttons to indicate whether any additional styling, like bold or italics, is used with this
font. Available style buttons:
• Bold
• Italics
• Underline
• Strikethrough
5. Click the Vertical Alignment button to indicate the alignment that this text has in vertical relationship
within the borders of the component. Available options:
• Top
• Middle
• Bottom
28 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
6. Click the Horizontal Alignment button to indicate the alignment that this text has in horizontal relationship
within the borders of the component. Available options:
• Top
• Middle
• Bottom
7. If the text does not fit within the component borders, you can specify how to display this text by using the
Text Trimming drop-down list. In this example, EllipseWord is selected, indicating that ellipses display on
the component to indicate that additional words cannot be displayed.
8. Use the Disabled button to select what color is used when the main font color is disabled. Click this button
to display the Color Picker; use this window to select the backup color that you need.
9. Use the Alpha drop-down list to select how the font displays on the component. Available options:
• UseAlphaLevel – Select this option to use the Alpha Level defined on the Other section of the Properties
Panel. For more information, review the UI Roles – Other section later in this chapter.
• Opaque – Users see this font exactly as it normally displays.
• Transparent – Users can see through this font.
1. Click the Image button to find and select the foreground image you want to display. When you select the
File option, an Open window displays that you use to search for the image file you want.
2. Click the Vertical Alignment button to indicate the alignment that this foreground image has in vertical
relationship within the borders of the component. Available options:
• Top
• Middle
• Bottom
3. Click the Horizontal Alignment button to indicate the alignment that this foreground image has in
horizontal relationship within the borders of the component. Available options:
• Top
• Middle
• Bottom
10.0.700 29
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
4. Click the Alpha drop-down list to select how the image displays on the component. Available options:
• UseAlphaLevel – Select this option to use the Alpha Level defined on the Other section of the Properties
Panel. For more information, review the UI Roles – Other section later in this chapter.
• Opaque – Users see this image exactly as it normally displays.
• Transparent – Users can see through this image.
1. Click the Cursor drop-down list to define how the mouse pointer displays when it hovers over a component
that uses this state.
2. The Alpha Level defines how visible the selected color level is for this UI role. The Background, Border,
Font, and Image sections all have an option that can use this Alpha Level value; review these previous
sections for more information.
If the value is set to 0, the current state of the UI role does not appear. As the level increases, the state
becomes more and more visible. It is fully visible at Alpha level 255.
3. The Themed Element Alpha button is similar to the Alpha buttons found on the Background, Border,
Font, and Image sections. The value you select here, however, only applies to themed elements when the
UseOsThemes property is set to TRUE. This property is a Component Role Setting that you can apply to
all the UI roles within your theme; a later section in this chapter, Component Role Setting, explains how
you change these settings.
If you set this value to Transparent, you turn off the styling for this state of the UI role.
Preview UI Role
Use the Resources and Preview sections to both apply resources to the current state and preview how they display.
You can also convert a state into a resource that you can then use in another state.
To use this section of the Properties Panel:
1. To display the Resources options, click the Down Arrow within the Resources section.
30 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
4. When a resource is higher in the list than another resource, its settings take precedence over any resource
that is below it.
For example, the first EpiShape resource has a Green gradient on its background. The second EpiShape
resource has a Yellow gradient applied to its background. The first EpiShape resource is higher on this list
than the second EpiShape resource. Because of this, the state displays the Green gradient.
5. To change the order of precedence, select the resource and click either the Up button or the Down button.
Continuing the previous example, if you move the second EpiShape resource higher than the first EpiShape
resource, the Yellow gradient now displays instead of the Green gradient. The current state of the role
updates with the resources you define.
6. Click the Convert to Resource button to capture the appearance properties of the current state. A resource
is then created for these properties that you can then use in other UI role states.
7. Click the Down Arrow next to the Preview button to review how these resources display.
8. The Preview section displays how the selected resource looks using the current settings.
9. The 3D Preview section displays what the selected resource looks like in three dimensions.
2. To select a style for this UI role's border, click the Border Style drop-down list and select a style. In this
example, the list is grayed out, so only the default border style can be used.
3. Click the Button Style drop-down list to select a style for this UI role’s buttons. Because this example is a
role for UltraButtonDefault, this drop-down list is available.
10.0.700 31
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
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.
32 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
1. Click the Categorized button to display the different categories available for the selected setting. In this
example, only one behavior is available: the Resolution Order.
2. Notice that a Description of the selected property displays at the bottom of this section.
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.
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.
10.0.700 33
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
5. To manipulate a specific property, click the property’s row. All options available for this property typically
display in a drop-down list. If a drop-down list does not display, however, you may enter a value within the
text field.
3. All the shared object roles display. Select the setting you want to modify. In this example, you select the
DragDropIndicatorManager setting.
4. The Properties Panel displays. You can now make the changes you need to this component.
34 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
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.
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.0.700 35
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
2. Select the UI Role you want to view. In this example, you select the Button role.
3. All the components that use this role display in the Used By section.
4. Select one of these components. In this example, you select the top UltraButton item.
5. The Component Role Settings window displays. Make the changes you need. For more information about
the options on this window, review the previous Manage Component Role Settings section.
Role Selection
As you make changes to the current theme, you can navigate through the user interface to see how the changes
look. Because the Runtime Stylist is active, however, you can also launch a component Property Panel to
immediately make the changes you need.
Use this tool to further refine your style. You can then make specific runtime changes to selected components
as you see them on the interface.
36 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
1. Launch a program that you want to review. In this example, you launch the Analysis Code Maintenance
program.
2. Hover your mouse over a component you wish to update. In this example, you hold it over a cell in the grid.
3. The Role Selection call out window displays. This window displays all the UI Roles and Component Filters
that define the selected component – in this example the grid cell.
4. To launch the Properties Panel for one of these roles or filters, press the specific key on your keyboard. In
this example, you want to change the look of each grid cell, so press 1 on your keyboard.
6. Make the changes you need to this UI Role. In this example, you create a gradient that displays within the
cells of every grid.
10.0.700 37
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
7. The change immediately displays within the interface. In this example, the red gradient displays within each
cell.
Continue to use the Role Selection tool to make all the changes you want on the interface. When you finish your
changes, save your theme.
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.
38 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
1. The filters available for the current theme display in the Tree View.
2. If you want to create a new style filter for a different theme, click the Load button to find and select the
.isl file you want.
3. To create a child style filter, first highlight the parent style you want on the Tree View. In this example, the
Default style is selected.
10.0.700 39
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
4. Right-click your mouse to display the context menu. Select the Create Child Style command.
5. A (New) style filter displays on the Tree View. Enter a StyleSetName for this child style filter. In this example,
you enter Epicor Education. The new Name displays on the Tree View.
7. Define what item is affected by this filter. To do this, click the FilterTypeSelect drop-down list. Depending
on the filter, different items display. In this example, all the companies within the application are listed, so
40 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
you select the Epicor Education option. When users switch to this company, the interface displays using this
child style.
8. The FilterValue displays the name that the application uses to identify the selected item. In this example,
the company ID, EPIC06, displays.
9. You can also define the EpiResources that use this child style filter. If you need, you could enter values in
these properties to limit this child style to specific interface items, like panels, the OK shape, and so on. In
this example, you leave these properties blank.
10. The EpiStyles section defines the additional interface components that use this style filter – like the Message
Box and the Navigation Control. If you need, you can enter additional style values in these fields.
11. The Description area displays an explanation for the currently selected property. This text changes as
different items are selected.
12. You next must select the Create resources if missing check box. This indicates that you can create the
main EpiResource for this style filter.
10.0.700 41
Chapter 1 | Styling and Themes Epicor ICE 3.0 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.
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.
42 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
4. Select the theme that contains your child style filter. In this example, you select the Inspired.isl file.
5. Click Open.
6. When the Runtime Stylist displays, click the Active StyleSet drop-down list and select Epicor Education.
10.0.700 43
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
7. Create your child style. Highlight an area of the interface, and press the corresponding key.
9. Make the changes to this item that you want. For this example, you are changing the interface to shades
of gray.
44 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
10. To see how this styling choice looks, on the Main Menu, launch a program within the Epicor Education
company.
10.0.700 45
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
11. All the programs within this company display using this child style.
46 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
12. Access another company, and in this example, you navigate to Epicor USA and launch Sales Order Entry.
10.0.700 47
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
13. Notice that the default styling displays within this program. This happens because the child style filter applies
only to the Epicor Education company.
You can continue to create child styles for all the other companies within your organization. By leveraging this
functionality, you make it easier for users to identify different companies when they switch between them.
1. Default
2. Company
3. Site
4. Language
5. Application
Use this hierarchy to create many filtering combinations within a selected theme. For example, you first create a
style filter for Company VN00C. You next create a second Language style filter, which you call Spanish. Lastly,
you create an Application filter for Supplier, and this filter is a child style filter derived from the Spanish filter.
Now when you launch the application and use VN00C for the company, you see the company filter styling. If
you change the session to display the Spanish language, however, most of the forms now display using the
Spanish filter styling. The only form that does not is Supplier Maintenance, which displays the specific styling you
created through this application style filter.
48 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
Next, you open the Supplier style filter again and modify it to be based on the Default filter. This child style filter
is now applied throughout your application because it is directly related to the Default filter.
Notice that this order of inheritance prevents certain parent-child relationships from occurring. You cannot, for
example, pass along styling from a Language style filter to a Company style filter.
Style Tracking
Another styling tool that helps you create your theme is Style Tracking. You activate this tracking mode to find
out the details for a specific interface component.
Style Tracking is useful, for example, when you are trying to apply a style to a specific component. It helps you
find the details about a specific component that you can then modify within the Runtime Stylist.
1. On the Main Menu, from the Options menu, select Styling > Style Tracking On/Off. This turns Style
Tracking on.
10.0.700 49
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
1. Hover your mouse pointer over an interface component you want to review. In this example, you hold it
over the Material check box.
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.
You can restore the original default theme by using the Unload Style Theme command. All areas within the
interface then automatically return to the default styling defined for the application.
To use this feature:
50 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
This section now guides you through a case study of a detailed example of styling. Use this example to better
understand how you can create your own themes to use throughout your organization.
To begin this case study, you have created a series of graphic files (within a graphics editing application) that you
would like to use for button states throughout the application. You leverage the styling functionality to create
a new theme that uses these button graphics. You then indicate that this theme becomes the default for all of
your client installations.
10.0.700 51
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
1. On the Main Menu, from the Options menu, select Styling > Runtime Styler.
52 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
10.0.700 53
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
8. Set the UseOsThemes property to False. This indicates that you override the styling from a base role.
54 10.0.700
Epicor ICE 3.0 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.
8. Select the Transparent button (the button with the red line through it).
9. You return to the Settings for “Button” window. Notice that the Transparent icon now displays within the
Background Fill Color button.
10. Within the Border section, click the Border Fill Color button.
10.0.700 55
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
11. The Color Picker window displays. Click the Transparent button again.
12. Now the Border Fill Color button displays the Transparent icon.
1. Within the Background section, click the Background Image button and select the File option.
56 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
2. The Open window displays. Navigate to where you previously saved the three button states graphics you
created.
3. Select the first button state. In this example, you select the Button_Normal.png file.
4. Click Open.
10.0.700 57
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
58 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
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.
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.
10.0.700 59
Chapter 1 | Styling and Themes Epicor ICE 3.0 Customization User Guide
6. Click the Margins button and use these values for the margins:
• Left – 5
• Top – 4
• Right – 5
• Bottom – 4
You now have updated the HotTracked state for buttons throughout the application.
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.
5. Click the Margins button and use these values for the margins:
• Left – 5
• Top – 4
• Right – 5
• Bottom – 4
You now have updated the Pressed state for buttons throughout the application.
60 10.0.700
Epicor ICE 3.0 Customization User Guide Styling and Themes | Chapter 1
4. Enter a File Name for this theme. For this example, you enter GrayButtons.isl.
5. Click Save.
10.0.700 61
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
Chapter 2: Personalization
Personalization is defined as any change made to the application that only affects a specific user’s interface. Every user
has different needs. Some users may want to change the order of columns on a grid. Others may want to add more
options to a program’s status bar. Epicor’s application can be set up to reflect these individual needs. Use the
Personalization tools to modify any program’s interface to maximize your workspace to better match the tasks you
perform every day.
Personalizations are stored by individual user and do not affect any other users on the system. Once a personalization
is created, it can be exported from the software, and imported back in to the application for another user. It is important
to understand that personalizations are stored on the server and not on each individual user’s machine. Because of
this, if a user logs in to another workstation, their personalizations are automatically downloaded and cached to that
computer. The flexibility of the software enables every user to tailor the interface to suit their business needs and
maximize their efficiency.
In this chapter, you explore the personalization tools you can use to refine the interface and make your daily routine
more efficient. This chapter ends with a discussion on advanced personalization. Advanced personalization options are
only available to those users with user account personalization privileges.
Several personalization options are available at the system level or main interface. You can change the organization
of the main interface to quickly access the programs you frequently use, thus making you more efficient.
When you first log in to the application, you are presented with the main interface.
1. The Menu Bar is located on the top of the interface and contains four menus; the File menu, View menu,
Options menu and the Help menu.
2. The Standard Toolbar contains buttons you use to change your current session. These icons are also
accessible from the Options menu, which is described later in this chapter.
62 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
3. The History Toolbar contains a drop-down list that displays recent programs you have launched. To use
this feature, select a program from this list and click the Go button. The selected program displays.
4. The Menu Items Pane is located on the left side of the main interface and contains access to Menu Groups
and Favorites. The Menu Groups sheet contains a series of folders by which you navigate through the
application. The Favorites tab is where you can create personal favorites menus for your frequently accessed
programs.
5. The Contents Pane is located on the right side of the main interface. This displays the contents of each
folder as you navigate through the main menu.
You can personalize the main interface in several ways. The View menu can be used to select interface functionality
that displays by default when the application is first launched. You can choose to display large or small icons,
and you can decide to display or hide certain elements of the main menu including the Favorites Bar, the Full
Tree, Menu Items, the History Toolbar, and the Status Bar.
1. When you select the View menu from the main menu, options that change the default view of your main
menu are available.
2. When the Full Tree option is selected, the application displays all the modules through a series of folders
and program icons in both the Main Menu pane and in the Menu Items pane.
10.0.700 63
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
3. The Main Menu pane is found on the left side of the main interface.
4. The Icon Level pane is found on the right side of the main interface.
5. When you select the Large Icons option from the View menu, the application displays folder contents as
large icons in the Menu Items pane.
64 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
6. If you do not want to display the contents of the main menu folders in the Menu Items pane, you can
deselect the Menu Items view. When you do this, you use the Full Tree to navigate to all folders and
programs in the application.
Throughout this user guide the Full Tree and Menu Items
views are used in all the menu displays.
7. When the History Toolbar is selected, a drop-down list displays on the main menu that contains programs
that you have recently accessed.
8. When you select the Status Bar option from the View menu, the Status Bar displays at the bottom of the
main interface. This bar contains information such as current company, location, language and other details
about your current session.
The Options menu contains settings you use to change your current company, Site, language, and so on. It also
contains user preferences you leverage to personalize the Status Bar on your main interface. You can also save
personalized settings automatically when exiting the application.
The Options menu also contains access to the application’s Styling functionality which gives you complete control
over the look and feel of the entire interface. You can use this toolset to display a pre-built design, or theme,
from the options installed with the application.
10.0.700 65
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
The Preferences command controls specific elements that display on the Status Bar of the main interface. You
can also add a tab to the Main Menu for displaying dashboards and web sites.
The Preferences command on the Options menu controls specific elements that display on your status bar of the
main interface.
To modify the status bar on the main menu:
2. In the Preferences window, select the elements to display on the status bar. Notice you can place the
current User ID, Language, Company, Site, Server, and Workstation on the status bar.
66 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
3. You can click the Clear History button to remove the history from the History Toolbar.
4. Select the Tabs sheet to add a new tab to the main interface.
5. Click the New button to create a new tab that displays a Web Browser.
6. Enter the text you want to display on the tab in the Tab Caption field. In this example you enter Epicor.com.
7. Select Web Browser in the Type field. You can also select the Dashboard Type to display a system dashboard
on the main menu.
8. Enter the web address you want to display in the Content field. If you have chosen Dashboard in the Type
field, the Content field contains a list of Dashboards in the application for you to select.
9. Click OK.
10. Review the changes on the Main Menu to verify it displays the items you need.
10.0.700 67
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
The Save Settings on Exit option automatically saves any settings you have changed on your View menu when
you exit the application. By default, this option is enabled for every user. It causes the application to track which
folders were expanded in the Folder List when the user closed the application. Folders still expanded on exit are
then expanded again at login.
Once you have set a default folder, disable the Save Settings on Exit option. If you do not, the interface always
opens to the last folder you had open before you quit the application.
For example, if you regularly use Opportunity / Quote Entry and would like this program’s folder to be expanded
at login, open the main interface to the Quote module’s General Operations folder. Verify the Save Settings on
Exit option is selected, and exit the application. The next time you login, the main interface opens directly to this
folder. Now disable this option, and the Main Menu always opens to the Quote Module folder. Any recent change
made to the Folder List interface are saved only when you enable this option.
Notice that you can automatically restore the Main Menu interface to its default view by selecting the Reset
Layouts to Base option. You can also restore the Main Menu to the version you previously saved by selecting the
Reset Layouts to Last Saved option.
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®.
To modify the Favorites Bar, you must select the Can Allow Favorites Programs check box on the Options sheet
in User Maintenance.
Main Menu Path: System Setup > Security Maintenance > User Account
To give a specific user rights to modify the Favorites Bar:
68 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
1. Enter the User ID of the User you want to grant the Personalization Privileges.
10.0.700 69
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
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:
3. The icon for the shortcut now displays on the Favorites Bar.
You can also add external shortcuts to the Favorites Bar that open any applications or files that are stored on
your network.
To add an external shortcut that opens Internet® Explorer® to the Favorites Bar:
1. Right-click the Favorites Bar and select Add New Shortcut from the context menu.
70 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
2. In the Properties dialog window, browse to the program or file you want to add to the Favorites Bar.
3. Click OK.
4. The Internet Explorer shortcut icon now displays on the Favorites Bar.
Shortcuts on the Favorites Bar can be organized into Favorite Groups. For example, you can group programs by
modules or create a group for a workflow that contains specific tasks. Later if you want to make changes, any
favorite groups and shortcuts you add can be removed or renamed.
To add a new favorite group to the Favorites Bar:
1. Right-click the Favorites Bar and select Add New Group from the context menu.
10.0.700 71
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
3. Enter the New Group name. In this example, the group is called Reports.
You can change the name of this group by using the Rename Group option.
You can improve the performance of Favorites Bar programs you use the most by using the AutoLoad feature.
This program automatically loads selected programs in your workstation's memory. When you select an autoload
option for a favorites group, all the programs contained within the favorite group are temporarily selected for
memory caching. Each program can then be pre-loaded into memory during the current session so when you
launch one of these selected programs, it displays faster.
To access the AutoLoad options, right-click a Favorites Group.
Two AutoLoad options are available on the Favorites Bar.
72 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
1. AutoLoad this Group - Automatically loads favorites group programs into your workstation’s memory
when you log into the application.
2. AutoLoad on Session Changes - This option causes memory cached programs to re-load into memory
when the User, Site, Company, or Language are changed during the current session.
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.
Before you personalize or customize a memory cached program, be sure you disable this feature. To do this,
press the [Shift] key on the keyboard and then launch the program. You can do this from either the Main Menu
or a context menu.
10.0.700 73
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
1. After any program is launched (in this example the Part Maintenance form has been launched), click the
Tools menu.
2. Select Options.
5. Click OK.
You can have the same program open multiple times. For
example, one session of the program can have memory
caching active, while another session of the program can
turn off this function. You can then customize the
program while its cached version is still in use. To learn
more about customization, review the Basic
Customization, Advanced Customization, and
Customization Utilities chapters of the User Guide.
74 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
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.
Many of the program level personalization features are found in the Options window from the Tools menu in a
specific program. Once the options are selected from this window, they become the default standards that are
used each time the program is run. In addition, this window has several global settings that affect every program.
In the following example, Customer Maintenance is used to demonstrate the personalization options.
Menu Path: Sales Management > Quote Management > Setup > Customer
The CRM menu path is: Customer Relationship Management > Quote Management > Setup > Customer
2. Select Options.
General Options
The General tab contains options that affect the entire program. These options determine whether your sheet,
toolbar, grid, and tree view personalizations save when you close the program. Special actions are also available,
such as automatically launching the Search window when you activate the program.
1. As The Form Opens - The options in this group cause specific actions to occur as the program (form)
launches.
10.0.700 75
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
2. No Action - When selected, this option causes the program (form) to launch normally. All the program’s
fields are blank and you must search for an existing record or create a new record.
3. Auto Populate Data - When Auto Populate Data is selected, the program executes a search (the search
form does not display) and selects all records to return them to the program.
4. Auto Load Search - When a program is launched with this option enabled, the search form displays
automatically without having to click a button to manually launch the search. If you specify a named search
(from the drop-down list) in conjunction with this Auto Load Search setting, the Named Search field in the
search form populates with that search. When Auto Load Search is selected without specifying a Named
Search, the search form loads and waits for entry.
If you want to auto populate a program with many records, consider using a Named Search to retrieve a
filtered list of records instead of the whole table. A Named Search is search criteria previously defined and
saved. This can be automatically launched with the Auto Load Search option, or selected manually from the
search window. Named Searches are discussed in greater detail within the Searches chapter in the Epicor
ICE Tools User Guide.
5. Memory Cache - Select this option to cause the current program to stay in your computer’s memory after
it closes. The next time you launch this program, it appears faster, improving this program’s performance.
This program only stays in memory during the current application session. When you exit the application,
the program is also removed from memory.
Only select this option for programs program you use most frequently. If this option is selected on several
programs, your computer may run low on memory, impacting its performance.
6. Show Ribbon Override – Indicates whether the program toolbar displays as a ribbon instead of a series
of drop-down menus. Select True to display the ribbon on the current program. The next section, Ribbon
Interface, provides more detail about this feature.
7. On Save Layouts - The interface layouts of a program’s grids and sheets can be changed during a session.
To save these changes for the next session, you would select the Save Layouts command from the Options
menu of the main interface. The two Save Layouts options found in a program’s Options dialog box control
whether or not these changes are saved for a specific program. By default, these options are enabled in
every program. Available options:
• Save Dock Layouts: This option saves all the position changes you make to a program’s sheets.
Personalizing sheet layouts is discussed later in this chapter.
• Save Grid Layouts: This option saves changes you make to a program’s grid layout. You can change
the order in which columns are displayed within each grid and also resize the grid’s column. Personalizing
grid layouts is discussed later in the chapter.
76 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
8. Context Menu - When selected, the Context Indicator check box causes the interface to show which
fields have Context Menus. If the field has a context menu, a triangle displays in the upper right corner of
the field. You can also personalize the color of the Context Indicator triangle by selecting a color from the
drop-down list.
9. Select the Zone Indicator check box to define the color used for displaying any BAQ zone indicators on a
program. Users hold their mouse over the BAQ zone indicator to display a tooltip of the BAQ results for the
current value of the field (if any). Depending on the columns the BAQ returns, the BAQ zone can display
different results. For example, you could have a BAQ zone display the current customer’s web site.
For more information on creating business activity query zones, review Chapter 6: Customization Utilities.
The BAQ Zones section describes how to create and display BAQ zones.
10. If you want to indicate which fields need data before a new record is saved, select the Required Field check
box.
11. Click OK. After you exit the Options window, notice all required fields become highlighted on the interface.
Any sheet tabs that contain required fields are also highlighted.
12. When a field displays a Context Indicator, a context menu can be accessed by right-clicking on the field.
The field’s context menu displays; you can use it to cut, copy, and paste text as well as open related programs.
Ribbon Interface
You can cause the top of each program window to display a ribbon interface instead of a series of menus. The
ribbon interface groups together related functions and links for easy access. This feature is available from the
Options window of the Tools menu for any program. In the following example, Customer Maintenance is changed
to display the ribbon interface.
10.0.700 77
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
1. Navigate to Customer Maintenance. Main Menu Path: Sales Management > Quote Management >
Setup > Customer
3. Click the Show Ribbon Override drop-down list and select True.
78 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
5. The ribbon displays on your program. The Main tab contains buttons that launch Action programs specific
to your program, navigation arrows, and file editing tools.
6. The Links tab contains buttons that launch programs related to the current program, like search and entry
programs. It also contains the methods by which you can send the files created within the current program.
7. The Support tab contains buttons you use to launch customization, personalization, and translation tools.
You can also use this tab to access the application help and support resources available from Epicor.
10.0.700 79
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
8. To display the Save, Undo, and Exit buttons below the ribbon, select the Show Below the Ribbon option
from the Quick Access toolbar. To place these buttons above the ribbon again, select the Show Above the
Ribbon option from this toolbar.
9. To hide the ribbon from constantly displaying, select the Minimize the Ribbon option. The tabs still display,
but the options do not appear unless you click the specific tab. To maximize the ribbon again, clear the
Minimize the Ribbon option.
Use Hot Keys (shortcut keys) to quickly navigate through the interface with keyboard options. The Hot Keys sheet
is where all shortcut key combinations are defined for the current program. This sheet also contains controls you
use to globally define specific functions. Global Options are discussed later in this chapter.
To define a Form Hot Key:
1. Select a Command from the drop- down list. Available options include New, Edit, Delete, and so on.
2. Click the Short Cut drop-down list and select the keyboard combination you want to use for the command.
Available options include <F4>, <Shift><F2>, <Alt> 5, and so on.
These shortcut key combinations are then used on the current form.
Dialogs Options
The Dialogs sheet contains a series of tabs that indicate when data can be verified for specific actions that occur
within the program. When a selected action activates, a confirmation window automatically displays. You must
acknowledge the message before you can continue to use the program.
These actions (or tabs) indicate the type of action which can trigger a dialog window:
80 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
1. Update - When a current record is edited and one of the selected conditions occurs, a confirmation window
displays.
2. Add New - A confirmation window displays when you create a new record.
4. Undo - A confirmation window displays when you remove the results of a previous action on the program.
Use the Tree View sheet in a program’s Options window to change the text that displays within a program’s Tree
View. You can also change the Image (icon) and the Display Column (field) that displays in the Tree View as well.
10.0.700 81
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
Use the Global Options sheet to personalize global Hot Keys and modify the Status Bars that display in every
program.
1. Select the Status Bar Panel options you want to display on programs. These options can be different from
the status bar options that display on the Main Menu.
2. Click the Border Style and Panel Border Style drop-down lists to personalize these items on the interface.
You can define shortcut keys used throughout the application on the Hot Keys tab. In addition to defining
shortcuts, several additional global options are also available:
1. Select a Command from the drop-down list. Available options include New, Edit, Delete, and other program
commands.
2. Click the Short Cut drop-down list and select the keyboard combination you want to use for the command.
Available options include <F4>, <Shift><F2>, <Alt> 5, and so on. This short cut key combination is then
used to launch this program function throughout the Epicor application.
3. Handle [Enter] as Tab - Select this check box to indicate you want to use the Enter key to move through
each program's fields. You can then use both the Tab and Enter keys to move through the fields.
82 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
4. Launch Search with - Define the global shortcut you want to use to launch a search from a selected field.
5. Launch Enterprise Search with – Use this shortcut combination to launch the Enterprise Search functionality.
This search application retrieves indexed content from your Epicor application. You can search on any record
within the Epicor database – like a part, customer, purchase order, AR invoice, and so on. For more
information on Enterprise Search, review the Searches chapter in the Epicor ICE Tools User Guide.
6. Launch Maintenance with – Use this drop-down list to define the shortcut used to launch the maintenance
program for a selected field.
7. Launch Info Zone with – A shortcut combination you use to activate a BAQ zone. Pressing this keyboard
combination causes a tooltip to display BAQ results for the current value of the field (if any). Depending on
the columns the BAQ returns, the BAQ zone can display different results. For example, you could have a
BAQ zone display the current customer’s web site.
For more information on creating business activity query zones, review Chapter 6: Customization Utilities.
The BAQ Zones section describes how to create and display BAQ zones.
8. Use the Designer Grid tab to specify the grid characteristics used when you are in personalization mode.
Grid settings include activating the Snap To Grid functionality, and determining the grid size.
9. The Snap to Grid option helps position elements when you are creating personalizations on a grid. When
this option is selected, the shapes pull, or snap, towards the grid dots.
For example, if Snap To Grid is selected and you add a check box to the form, the box snaps towards the
nearest grid dots, instead of floating between the dots.
10. Use the Grid Width and Grid Height values to specify the space, in pixels, that displays between the grid
dots in Personalization mode.
11. Click OK to save your changes and exit the Options dialog window.
A sheet is a layer of a program’s interface that contains related functionality. Every program contains at least two
or more sheets (the Detail and the List sheet). You can use the personalization tools to change the position of
any sheet within a program. By clicking and dragging each sheet’s tab, you can also change the order in which
the sheets are displayed. A sheet can even be completely moved out of the program so that it displays as a
floating sheet.
10.0.700 83
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
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:
5. To reset the sheet layouts to their default position, from the Tools menu, select Reset Layouts to Base.
84 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
Docking Sheets
In addition to changing the tab order within a program, tabs can be moved out of their default position by
dragging them and docking them to a new position on the same sheet. A sheet can be docked to any one of
four quadrants of a window (top, bottom, left, and right).
As a sheet is dragged out of position, an outline displays on the window indicating where the sheet will be placed
when it is released. The outline snaps into position when the mouse is moved into one of the four quadrants of
the window. Once the outline ‘snaps’ into position, release the mouse to dock the sheet.
1. Click the List sheet tab and drag it down to the bottom of the sheet.
2. The outline snaps into position in the lower portion of the window.
10.0.700 85
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
3. Notice the List Sheet is now docked to the lower section of the window.
4. If you drag the List sheet to the right side of the window, the outline again snaps into position.
86 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
5. When you release the mouse button, the sheet docks to its new position in the window.
6. To reset the sheets to their default position, click the Tools menu.
Floating Sheets
A Floating sheet is a sheet moved from its original position and released in a non-docked position. Use this feature
to display many sheets at the same time.
To create a Floating sheet:
10.0.700 87
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
1. Click a sheet’s tab and drag the sheet away so that the outline does not snap into any of the quadrants of
the window. In this example, click and drag the List sheet.
88 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
3. When a sheet is floating, the thumb tack icon does not display in the upper right pane of the sheet title bar.
When you exit the program, any floating sheets close automatically.
The Auto Hide thumb tack icon displays on the right side of every sheet’s title bar that is docked into position.
The default view of the thumb tack icon is in a ‘pinned’ position. When the icon is selected, the thumb tack
changes to an ‘unpinned’ position and auto hides the contents from view.
1. Once a sheet is unpinned, it slides out of view and is replaced with a tab. In this example, the Tree View of
Part Class Maintenance is unpinned and is hidden on the left side of the program.
10.0.700 89
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
2. If you hover the mouse over the tab, the Tree View pane slides back into focus.
Personalize Toolbars
Every program contains default toolbars you can move to any location in a program’s window. They can be
docked to either side of the interface or placed in a floating position.
Default toolbars you can personalize:
1. Main Menu Toolbar - This toolbar displays all the program’s menus. It typically displays the File, Edit,
Tools, Actions, and Help menus.
2. Standard Toolbar - All the main controls are displayed on this toolbar. Options like New, Cut, Paste,
Refresh and so on display on this toolbar.
3. Navigation Toolbar - Use this toolbar to search through all the records created through this program. It
displays the Search button and the Navigation tool.
90 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
Moving Toolbars
Each Toolbar has a dotted line along its left side. This is called the Move Control. Use this control to click and
drag the toolbar into the position you want.
To move a toolbar to one of four sides of any window:
3. Click and hold down your mouse button and drag the toolbar to one of four sides of the window. When
it is placed next to the edge, it automatically flattens itself to the side. Release the mouse button.
4. To adjust its position along the side, click and drag the Move Control along the horizontal or vertical edge
of the window. You can also position each toolbar as a floating toolbar. This toolbar is always visible on top
of the program, regardless of the sheet selected within the program. Use this feature to place the toolbar
wherever you need it on the window. After you close the window, the toolbar reverts back to its default
position.
10.0.700 91
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
Personalize Grids
Grids display information through a series of columns and rows. Each column displays a category of information,
like Part Number orPart Class, while each row displays data for individual records. The List sheet in each program
displays information in a grid format.The standard Personalization tools provide you with the ability to change
grid layouts in several different ways.
Additional personalization options are available to users who have the Personalization privilege enabled in their
User ID. These options are reviewed in the Personalization Mode section of this chapter.
Every grid’s columns can be moved around into any order that you want.
1. To move a column within a grid, click and drag the column to the desired position.
2. When the black arrows display, release the mouse button and the column docks in its new position.
3. In the example below, the Buyer ID column is moved to the far left.
You can also adjust the column width so the maximum amount of information displays in each column.
To automatically adjust the width of a column to fit the data it contains:
92 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
1. Place the mouse pointer over the right edge of a column header. The mouse pointer turns into a double
arrow icon.
2. Double-click the mouse to adjust the width of the column to auto-fit its contents.
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:
10.0.700 93
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
The grid automatically sorts the contents in ascending order based on the selected column.
2. When you sort by a particular column, an arrow icon displays in the column header indicating an ascending
sort. In this example, the Part Class records that contain a blank Buyer ID sorts at the top of the list. You
can then identify records you need to update.
3. You can change the sort on a column to be descending by clicking the column header again.
4. Notice the arrow icon now displays upside down. This indicates the grid is sorted in descending order by
the data in this column.
Grid Filters
Use the Show Grid Filters option to work with a subset of data in a grid. You specify the column data you want
to see; when you apply the filter, data that does not meet the criteria you specified does not display within the
grid. You can further limit the filter results by creating another child filter that runs against the results of a parent
filter. You can create as many child filters as you wish to get the results you want.
To use the Show Grid Filters option:
94 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
3. Click the Filter icon in the column you want to filter and select the data you want to see.
4. The grid now displays only rows that contain the column data you filtered. Notice the Filter icon changes
to indicate a grid filter has been applied to the data in the grid.
Show Group By
Many grids offer Show Group By functionality that groups all of the records in a grid by a specific column. This
option is available in any grid, and especially useful in the Dashboard programs.
The Sales Order Backlog Status dashboard is used to illustrate this functionality.
10.0.700 95
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
1. Navigate to the Sales Order Backlog Status dashboard. Main Menu Path: Executive Analysis > Status
Dashboards > Sales Order Backlog Status
2. Click the Refresh button to retrieve all the part records to the dashboard.
3. Drag and drop the Part column header onto the Group By area above the grid.
96 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
4. All sales order records are now organized by Part. You can see the sales orders placed against each part by
clicking on the plus (+) sign. This expands the rows under each part to display the sales orders.
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.
10.0.700 97
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
The column headers now display in the Group By header. Notice each of the Groupings displays a count of
records. This example shows two groups of parts organized by their Unit Price Values.
The column headers now display in the Group By header. Notice each of the Groupings displays a count of
records. This example shows two groups of parts organized by their Unit Price Values.
Two methods are available to turn off the Show Group By functionality:
• Right-click the title of the grid, and click Show Group By to remove the check mark and disable it.
• Drag the column headers back down to the grid area and release. This returns the columns to their default
position.
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
98 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
3. Select the Orders sheet and click the Retrieve button to display all the open orders for the customer.
6. Once the option is enabled, the column header for every number field in the grid will display a Sigma icon.
To access the Summary options for a specific field, click the Sigma icon next to the column header.
10.0.700 99
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
7. Select any or all of the options that display in the Select Summaries window.
8. When selected, the Sum option totals the column and adds Grand Summary information along the bottom
of the grid.
9. In addition to displaying the Sum along the bottom of the grid, this feature also displays the Sums when
using the Group By functionality.
100 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
10. To save the changes you have made to the grid, right-click the grid again and select Save Layout from the
content menu.
In this example, the Open Orders grid is grouped by Part, and summarized by Selling Quantity.
Advanced personalization 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.
The advanced Personalization Privileges are assigned by User ID in User Account Maintenance.
Main Menu Path: System Setup > Security Maintenance > User Account
1. In the User ID field, enter the user identifier for the User you want to grant the Personalization Privileges.
10.0.700 101
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
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
102 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
The Control Properties window contains all the advanced personalization features.
4. This window displays in the forefront of your window until it is closed by selecting the Delete, OK, or
Cancel buttons.
5. A grid also displays over the sheet currently in focus. Use this grid to help you move elements to the areas
where you want them.
10.0.700 103
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
Begin Personalization
1. To begin personalizing the form, click the field (or element) on the sheet in focus. This updates the Control
Properties window with the selected element name and its properties. In this example, the Ship To fields
on the Sales Order Entry Summary sheet are personalized.
2. When an element is selected to Personalize, it is surrounded with white boxes. In this example, the Ship To
group box is selected.
3. The Element Name field displays grpShipTo, this is the name of the element in focus.
4. The Path Code name displays the form or sheet name programmatically. This value is the specific path
name used by the programs in the application to execute or display the sheet in focus. In this example, the
Path Code name is Epicor.Mfg.UI.FrameWork.EpiGroupBox.
5. The Properties are items in the Control Properties window that may be modified for each element (on a
sheet).
As you click different fields (elements), the Control Properties window displays the set of properties that
may be modified for those elements. The dialog window changes to reflect the type of control you select.
You may also rearrange the position of controls on the form by dragging and dropping them.
6. The buttons located at the bottom of the Control Properties window are used to Import and Export
personalizations, as well as Delete, Save (OK) and Cancel an existing personalization.
104 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
7. Click the Select Top Level Form button to reset the Control Properties window to the top most level of
the selected form.
A sheet’s font type, font size, background color, foreground color, and tab stops can also be personalized.
The BackColor defines the color of the sheet’s background and BorderColor defines the color of the outline of
a field. When selected, these options display all the available colors in a list; you may choose between System
colors (the colors defined for your current operating system color scheme), a Custom colors list, or a list of Web
colors.
10.0.700 105
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
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.
106 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
You can also personalize the Font Type and the Font Color (Fore Color) of text.
2. Click the Bold property and change the property from False to True.
10.0.700 107
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
4. Click the ForeColor property. A drop-down list of colors to choose from displays.
5. Select the Custom color tab and select a color to apply to the group box.
The Location property refers to the exact position of the control (or element) on the sheet. The location is defined
as X and Y axis numbers. You can expand the property to change the X and Y axis or you can click and drag the
element to a new position on the sheet. The Location property updates with the new X and Y axis points.
In the example below, the Attention field is moved from below the Name and Address field to above the Name
and Address field, next to the Ship To ID field.
108 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
10.0.700 109
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
field moved to its new location, the field was made smaller
to fit in its new position. Notice the Height and Width
properties changed to reflect this new size.
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:
2. Click the TabStop property to view the drop-down list for this property.
110 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
10.0.700 111
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
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.
112 10.0.700
Epicor ICE 3.0 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.
10.0.700 113
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
8. The columns you want visible (their Hidden check boxes were not selected) now display on the Order Lines
grid.
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.
3. The default save location is a folder called Export on your local machine.
4. The File name is the application name followed by an underscore and the user name who is currently logged
into the application. For example, after personalizing the Sales Order form logged in as system manager,
the export filename defaults to App.SalesOrderEntry. SalesOrderForm_MANAGER.xml in the Export folder.
6. Click Save.
114 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
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.0.700 115
Chapter 2 | Personalization Epicor ICE 3.0 Customization User Guide
4. In the Open window, the Look In folder defaults to the user’s Export folder. However, you may need to
browse to the network location where the exported personalization is stored.
5. Select the file you want to import. In this example the filename is App.SalesOrderEntry.
SalesOrderForm_MANAGER.xml.
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.
116 10.0.700
Epicor ICE 3.0 Customization User Guide Personalization | Chapter 2
When you launch Sales Order Entry again, the form is no longer personalized.
10.0.700 117
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
You can customize most programs within the application. A well-designed customization can greatly enhance your
company’s use of the original program, as customized programs can directly match the application to fit your business
needs.
Customizations are different from personalizations. A personalization is a modification to the interface that you save
with a specific user account. Each time this specific user logs into the application, the interface displays the
personalizations linked to that user record. However a customization can be both a program code change and an
interface change you make available to the users you want within the entire company.
This chapter explains how you launch Developer Mode – the mode you use to activate the customization tools. It also
shows you how to both make basic changes and add new elements – like fields and check boxes – to a customization.
It then explores options for saving and exporting.
This chapter focuses on basic customization tools; use these tools mainly to make control changes to each program
interface. The next chapter, Advanced Customization, examines deeper, code level customizations that you can create
and add to your custom program.
Customization Rights
To customize the application, your user account must be set up for customization rights. By default, user records
are not set up for these rights, because typically you only assign customization rights to a limited group of users.
You assign these rights within User Account Security Maintenance.
118 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
3. In the Tools Options section, select the Customize Privileges check box.
Now the next time this user logs into the application, this user is able to customize it.
Developer Mode
The application runs in two modes – Run Mode and Developer Mode. Typically you use the application in Run
Mode. This means that program sheets are used for functional activities like data entry, operation processes, and
report generation.
In Developer Mode, the program still functions normally at first. However you can suspend the normal operation
of the program in order to customize it. Each sheet becomes customizable, so you modify the sheet by changing
its existing elements or adding new elements. You can also create new sheets and customized code that you
then add to the program.
10.0.700 119
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
If your user account has customization rights, you can turn on Developer Mode.
2. Select the General Options link on the left side of this window.
3. Now click the Developer Mode option. A check mark displays next to this option.
120 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
You are now in Developer Mode. The next section explains what happens when this mode is active.
Select Customization
When you are in Developer Mode, you display a special window each time you launch a program – the Select
Customization window. You use this window to create and manage all the customizations created for the selected
program.
Begin Customization
For this example, you are developing a customization for Sales Order Entry. After you switch the program to
Developer Mode, you are ready to work on customizing this program. To begin the customization:
Navigate to Sales Order Entry.
Menu Path: Sales Management > Order Management > General Operations > Order Entry
The CRM menu path is: Customer Relationship Management > Order Management > General Operations >
Order Entry
2. The Form Name field displays the .xml filename of the program, or form, you are customizing. In this Sales
Order Entry example, you are customizing App.SalesOrderEntry.SalesOrderForm.
3. To begin a new customization, select the Base Only check box. This causes the default form to appear after
you leave this window. Selecting this check box also causes the Available Layers section to be disabled.
You can also display the base form by just clicking the OK
button. Selecting the Base Only check box mainly ensures
you load the installed form.
10.0.700 121
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
4. The Available Layers section displays all the existing Localizations, Base Extensions, Customizations,
and Personalizations for the current program. You select items in this section to work on them. In this
example, the NoCounterSalesAlt customization is selected.
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.
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.
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.
13. Click the Import button to find and select an exported customization of the current form. You export
customizations through the Customization Tools Dialog. For more information, read the Export
Customization section later in this chapter.
122 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
14. When you click the Import button, the Import Customization window displays. Use this window to navigate
to the <Company>/Shared/Export folder that contains the customization you want to import.
15. Select the customization you want. In this example, you select the
App.SalesOrderEntry.SalesOrderForm_Customization_LineDetailsModification_CustomExport file.
17. The selected customization now displays within the Select Customization window. If you want to use this
imported customization, select the Use Imported Customization check box.
18. Select the Debug in Visual Studio check box to launch a selected customization in Visual Studio. You can
then step through the customization code and debug any errors that may occur in the code. When you
launch a customization in this mode, Visual Studio runs the customization source code file and stops at a
break point on the first line of the InitializeGlobalVariables method.
To launch the customization in Visual Studio, you must install any version of Microsoft Visual Studio 2010
except Express on the computer where you run the Epicor application client. To leverage all debugging
functions, you should also have C# installed in Visual Studio.
10.0.700 123
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
Depending on the item you select, the form displays using a selected customization, an imported customization,
or the default base form.
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.
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.
2. Select Options.
124 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
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.
2. Select Customization.
10.0.700 125
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
4. The Customization Tools Dialog window displays. You can now customize the current form.
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.
126 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
Tree View
Use the tree view to select different controls on the customized form.
1. The element currently selected on the interface displays in the top field.
2. The second field displays the name of the form that contains the currently selected element.
3. The Tree View is a navigational tool that can help you locate the sheets, panels, grids, and fields on the
current form. To review or customize a specific item, highlight it on the Tree View.
4. The right side of the form displays the Properties of the selected item. You can use these properties to
change the item’s position on the form, font attributes, fore/back colors, and other key properties. Some
of these properties are explored later in this chapter.
10.0.700 127
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
The Forms Wizards help you customize several aspects of your custom forms. You use the Script Editor to modify
the custom code generated by the Forms Wizards.
1. When you click the Wizards tab, you can see the Form Wizards.
2. Use the Rule Wizard to create new row rules and actions for any grid, or dataView, for the current
customization.
3. Use the Image Column Wizard to create an image column within a grid. This column can display an
application image you select. You can also create row rules which indicate under what conditions various
images are displayed within this column.
4. Use the Form Event Wizard to enter code activated when specific events occur on a form.
5. Use the Sheet Wizard to add a custom sheet to the current program. You can also use this wizard to edit
a custom sheet’s tab or text properties.
6. The Event Wizard links code to your custom controls. Before you can use this wizard, you first need to add
one or more custom controls to the current form.
128 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
7. The Script Editor is the interface you use to enter custom code on the current form. Use this sheet to enter
any advanced customization you want to run within your custom program.
Tools Menu
You use the tools menu to launch additional tools that will help you customize the form.
1. From the Tools menu, select the customization feature you need.
2. Select the Test Code option to run any custom code you have entered. Use this feature to discover if your
code has any errors.
3. The Toolbox option displays the controls you use to add elements on the current form. Use this window
to add fields, buttons, drop-down lists, check boxes, and so on to the current customization. The next
section, Hide, Move, and Add Elements, describes how to use the Toolbox.
4. The Assembly Reference Manager displays a list of all the native assemblies (.dll files) used within the
application. You can then use this program to add an assembly reference to the custom code. The Assembly
Reference Manager is described in the Advanced Customization chapter.
10.0.700 129
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
5. Select the Object Explorer to view the various objects, methods, and properties available for use in the
custom code. You can use this tool to view framework objects, data objects, and adapter assemblies.
6. The Options sub-menu defines the overall settings you use during this customization session.
7. The Custom XML Editor displays the XML code of your customization. Use the sheets on this troubleshooting
tool to correct any issues that occur within the customization.
8. Select Data Tools to create and edit custom views, or foreign key views, of data. These views can be accessed
on customized sheets and also can be displayed within dashboard interfaces.
9. Select Wizards to launch the Image Column Row Rule Wizard and the Customization Code Wizards.
Run the Image Column Row Rule Wizard to add an image column to the current grid that displays an
application image you select. Use the Customization Code Wizards to create valid, primary pieces of code
within the Script Editor.
10. Use the String Manager to specify how specific custom text will be translated into a different language.
These strings will then display within the Translation Utility.
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.
The Customization Tools Dialog can operate with Top Most mode either on or off. When Top Most mode is on,
the Customization Tools Dialog is always placed over the form you are customizing. However when this mode
is turned off, the Customization Tools Dialog is placed behind the current form.
You typically turn off Top Most mode when you are adding new elements, like fields and grids, to the form. You
can then see and manipulate more of the customized form.
130 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
2. Select Options.
3. Notice that a check displays next to the Top Most option, indicating that Top Most mode is active. Select
this option.
Top Most mode is now no longer active; a check does not display next to this option. To activate Top Most mode,
follow these steps again.
Grid Settings
Use the Grid Setting options to define the characteristics of the grid used during this customization session. You
can activate the Snap to Grid mode. You can also indicate how large you want the grid to display.
Grid Size
Use the Grid Size option to specify the amount of space, in pixels, that displays between the grid dots during
this custom session. Use this function to define both width and height values.
To change the size of the grid:
10.0.700 131
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
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.
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:
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 default, the Customization Comment window appears each time you save. You can select the Suppress Save
Comment Dialog option to prevent this dialog from appearing.
You use the Customization Comment window to enter any comments about the customization. This feature
might be useful if you need to audit the development of the customization. However if you do not need this
feature, selecting the Suppress Save Comment Dialog option prevents this dialog from appearing each time you
save. This causes the Customization Tools Dialog to instead come into focus after you save.
132 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
By default, the Customization Comment dialog automatically appears each time you save a customization. To
prevent this dialog from displaying:
2. Select Options.
3. Notice the Suppress Save Comment Dialog option; select this option.
A check mark now appears next to this option on the sub-menu.
Now each time you save the customization, the Customization Comment dialog no longer displays.
10.0.700 133
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
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.
In this example, you are customizing the Sales Order Entry interface. You have a group of users who never use
the Counter Sales functionality, so you want to hide these fields on the interface.
1. A Group Box is an interface section that contains related fields, check boxes, and other elements. You can
also hide all the elements within a group box. For this example, you want to hide the Counter Sales group
box and all the fields its contains.
134 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
4. Select False.
5. The Counter Sale group box, and all the fields this box contains, disappear from the interface.
10.0.700 135
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
You can continue to hide elements you do not want by using each element’s Visible property. To continue this
example, you should hide all the Counter Sales fields and grids from view. You should also hide the Ship Via list
from the Header group box. You add this list back to the custom form later in this chapter.
What is unique about this property is that you are only hiding these elements – you are not removing them. If
you need to display a hidden element again, just change the Visible property back to True.
You can also hide elements quickly by using the Tree View in
the Customization Tools Dialog. To do this, highlight the tree
node of the element you want to hide. The selected element’s
properties display within the Properties tab and you can change
its Visible property.
Move Elements
Each element can be moved to a different area on a sheet. Notice that through the Sales Order Entry example,
hiding the counter sales fields and group boxes creates space on the sheet.
You can clean up the look of your customization by clicking and dragging elements around to different locations.
1. In the Tree View, select the element you want to move; its handles display. In this example, you are moving
the Summary group box.
136 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
2. Drag and release the element to the location where you want it to be.
3. Notice when you move a group box, all the fields it contains are moved with the group box. If you like,
however, you can also move an individual button or field in the same way. To do this, just highlight the
element so its handles display.
10.0.700 137
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
4. Move the element into the location you want to place it on your customization.
5. An important way you can streamline your custom interface is to add and edit tab stops. You can then
customize the order in which users move through fields when pressing the <Tab> key. To do this, first
highlight the element.
138 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
6. To indicate you want the field to be selected while users press the <Tab> key, select the TabStop property.
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.
10.0.700 139
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
Add Elements
One of the fundamental customizations you can do is add elements, like custom fields and buttons, to a form.
For example, you could add a button that launches another program. You can also add a text field that is linked,
or bound, to a selected column within a dataView (DataSet table).
The Toolbox
You add elements by using the ToolBox. You launch this window from the Customization Tools Dialog. To add
elements:
2. Select Toolbox.
3. The Toolbox window displays. Notice each element that you can place on your form has its own button.
140 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
1. Pointer – Click this button to return the mouse back to its normal pointer arrow. You use this arrow to
click and drag the sizing handles on a selected element. You can also click and drag over an element to
move it to a new location on the form.
2. EpiLabel – Click this tool to create a label for an element. With this tool selected, click and drag your mouse
pointer on the form. A label appears with its resizing handles. Release your mouse button to drop the label;
enter the text for the label within the selected field.
3. EpiTextBox – Click this tool to create a text box. With this tool selected, click and drag your mouse pointer
over the form. A text box appears with its resizing handles. Release your mouse button to drop the text box
onto the form. You bind a text box to a field in the database by defining its EpiBinding property.
You explore how to bind both data and a label to a text box later in this chapter.
4. EpiCheckBox – Select this tool to create a check box. With this tool selected, click and drag your mouse
pointer over the form. A check box appears with its resizing handles. Release your mouse button to drop
the check box onto the form. Use the handles to make the check box the size you need. You can also bind
a check box to a column in the database by defining its EpiBinding property.
5. EpiRadioButton – Use this tool to create a new radio button (the round field, that when selected, has a
black dot in the middle of it). With this tool selected, click and drag your mouse pointer over the form. A
button appears with its label and resizing handles. Release your mouse button to drop the button onto the
form.
10.0.700 141
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
6. EpiButton – Click this tool to create a new button. With this tool selected, click and drag your mouse
pointer over the form. A button appears with its resizing handles. Release your mouse button to drop the
button onto the form. Use the handles to make the button the size you want.
7. EpiUltraCombo – Use this tool to create a drop-down list. Drop-down lists display a selected option in the
main field, but when users click the down arrow button, they may select another option from the list. You
link this list to a database property by defining its EpiBinding property and you can also select it to retrieve
data from a specific table.
8. EpiCombo – Click this tool to create a drop-down list. Drop-down lists display a selected option in the main
field, but when users click the down arrow button, they may select another available option from the list.
The Combo element is derived from the UltraCombo control. Use this control to retrieve data from a data
object without using an adapter; this improves the performance of your customization.
9. BAQCombo – Use this tool to create a drop-down list which displays information from a selected business
activity query (BAQ). BAQs are query tools you can create and modify; they pull in a set of data you define
within the BAQ Designer. After you draw the BAQCombo on your form, indicate the specific BAQ and the
ValueMember column which holds the data. You then define the DisplayMember column the customization
uses to display the data during run time on the form.
Note you can create updatable BAQs which allow users to enter data directly into a business object. On the
updatable BAQ, you can define one of the updatable columns to use a BAQCombo. Users can then enter
data through this drop-down list. For more information about BAQs, review the Epicor ICE Tools User Guide;
the Business Activity Queries chapter explains how you modify and create BAQs.
10. EpiGroupBox – Click this tool to create a group box; use group boxes to place related elements together
within one section of the interface.
11. EpiUltraGrid – Use this tool to create a grid. With this tool selected, click and drag your mouse pointer
over the form to create the grid. You then can bind the grid to the data you wish to display.
You explore how to create new grids and bind them to data later in this chapter.
12. EpiUltraComboPlus - Select this tool to create a Navigation toolbar. Users leverage these toolbars to
move through all the records they have pulled onto a form during the current session. It automatically places
the Start, Previous Record, Next Record, and End buttons next to the main drop-down list. You bind an
UltraComboPlus box to a database column by defining its EpiBinding property.
142 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
1. EpiDateTimeEditor - Click this tool to create a date/time field. With this tool selected, click and drag your
mouse pointer over the form to create the date field. A down arrow button is also automatically created;
when users click this button in run mode, the Calendar window displays.
2. EpiTimeEditor - Use this tool to create a time field. With this tool selected, click and drag your mouse
pointer over the form to create a field that displays a time value.
3. EpiNumericEditor - Click this tool to create a numeric field. With this tool selected, click and drag your
mouse pointer over the form to create the field. This field only displays numeric data.
4. EpiCurrencyEditor - Select this tool to set up a currency field on the form. This field only displays currency
data.
5. EpiCurrencyConver - Use this control on a form when you need to leverage a source currency value, and
then convert this source currency value into equivalent values in other currencies. If you are developing a
customization that requires amounts to display in different currencies, be sure to place this control on your
customization.
6. EpiShape - Use this tool to create an oval graphic on the interface. Once you have placed the shape on the
interface, you can adjust its size and change its color. You can also enter text that displays inside the shape.
7. EpiPictureBox – Click this tool to create a frame that can then display a graphics file. You can then write
custom code that displays the image you want within the picture box. When you place the picture box, you
can then resize its handles so it has the dimensions you need to contain the selected graphic file.
10.0.700 143
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
8. EpiRetrieverCombo - Use this tool to create a drop-down list that pulls its data from a retriever combo
you select. When you select this option and draw the control onto the form, the Select Retriever Combo
window displays and loads the available retriever combos (for example, JobEntryCombo). Select the retriever
combo you need, click OK, and place the custom control on the form. When the form is in run mode, this
drop-down list populates with data from the selected retriever combo.
9. EpiDayView – Leverage this tool to add a Day sheet to your customization. During run-time, users click
this Day tab to display a sheet which lists all the hours available during a specific work day. Tasks and events
assigned on that specific day display on this sheet.
10. EpiMonthViewMulti – Use this tool to add a Calendar pane to your customization. During run-time, users
click the controls on this Calendar pane to navigate to different months within the current year, previous
years, or future years.
11. EpiMonthViewSingle – Click this tool to add a Month sheet to your customization. During run-time, users
click this Month tab to display a sheet which lists all days available during a specific month. Tasks and events
assigned on each day during this month appear on this sheet.
12. EpiWeekView – Use this tool to add a Week sheet to your customization. During run-time, users click this
Week tab to display a sheet which lists all the days available during a specific week. Tasks and events assigned
on each day during this week appear on this sheet.
144 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
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
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.
3. Click and drag over an empty area of the form. The new text box displays.
10.0.700 145
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
Bind Field
You now link, or bind, the field to a table and column in the database.
2. You need to bind this field to a table within your database. In this example, you want the field to display
the Allocation Priority for the sales order. To do this, you select OrderHed from the EpiBinding drop-down
list.
3. From the OrderHed drop-down list, select AllocPriorityCode. AllowPriorityCode displays in the EpiBinding
field.
146 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
4. The ReadOnly property is set to True, which means that users cannot change the value displayed in this
field. However, you want users to be able to change this value, so click this property and select False.
10.0.700 147
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
Add a Label
In order for users to understand the purpose for this field, you should place a label next to it.
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.
148 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
5. You now want to make sure the new text box and its label are side by side on the form. To do this, select
the label, then hold down <Shift> and select the text box. Notice that both the label and the text box are
highlighted.
10.0.700 149
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
Both the label and the text box are now lined up correctly.
If you wanted to align two or more elements so that their
left sides are lined up, you would instead select the Lefts
option.
150 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
8. You can also link the label to the text box. This causes the label and text box to become a single unit and
move together. To do this, highlight the text box.
9. Now in the EpiLabel property, click the drop-down list and select the custom label. In this example, the
label’s name is epiLabelC1. The text box is both bound to data and it is linked to its label.
10.0.700 151
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
10. To help you keep track of each custom text box on the form, the element identifier displays inside the text
box. To clear this value, locate the Text property and clear the epiTextBoxC1 value.
152 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
You are ready to review the customization in runtime to see how it works.
4. To see your new text box in action, close the program and launch it again.
10.0.700 153
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
If you removed all the counter sales fields, your customization looks something like this example. Note the
new Priority field. The field is active and is displaying the priority code currently defined on the selected
order.
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:
3. The Select RetrieverCombo dialog box displays with a list of available retriever combos.
4. Select ShipVia> ShipViaCombo to link the drop-down list of your combo box to the Ship Via data. This
retrieves a list of ship via codes that display when you click the combo box.
154 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
5. In the Customization Tools Dialog window, click the Text property. Clear the shipViaCombo1 text.
6. You now must place a label next to the new list. In the Toolbox window, click the EpiLabel element.
10.0.700 155
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
156 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
10. In the EpiLabel property, select the new label. In this example, you select epiLabelC2.
10.0.700 157
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
14. The Ship Via drop-down list is now added to your customized form. When you create or edit a sales order,
this list of Ship Via options is available.
Add a Grid
Grids display multiple records simultaneously through a table format. To add grids to your customizations:
158 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
2. Click and drag the grid over an empty section of the custom form. In this example, you placed the grid at
the bottom of the Summary sheet.
10.0.700 159
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
160 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
6. Click the Columns property and select the drop-down list. The Column Properties grid displays.
7. All the columns that can be displayed are shown in the Column Properties grid. Notice that you can hide
some columns and prevent data from being entered (Read Only) in other columns. You can do this
individually on each column by selecting either its Hidden or ReadOnly check box.
8. To hide all the columns you have selected as Hidden on the grid, click the Toggle Hidden button. During
run mode, these columns do not display. To display these columns again, click the Toggle Hidden button
again.
9. To indicate all columns selected as ReadOnly appear in this state, click the Toggle Read Only button; during
run mode, users cannot enter data within these columns. To remove the ReadOnly state on these columns,
click the Toggle Read Only button again.
10. Click outside this grid to close it and then click Save.
11. Exit the Customization Tools Dialog and close the Sales Order Entry form.
10.0.700 161
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
12. To see your custom grid in Run Mode, launch the customized form in run mode again. The Order Releases
grid is now added to your customized form.
Save Options
Several save options are available for your customizations. You can indicate this customization is for one or
multiple companies. You can also save different versions of your customization, so you can develop more complex
customizations in stages.
A key feature is the Work in Process (WIP) status option. If you save your customization using this status, it is not
available to other users. You can then keep the customization within your test environment, preventing it from
being placed on the Menu before it is ready to use.
All of these options display on the Customization Save Dialog window. This window appears the first time you
save the customization, and it also appears when you use the Save As command.
162 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
2. Select either Save Customization (if this item is a new custom form) or Save Customization As.
4. The Form Name field displays the .xml filename for the form currently being customized.
5. The User field identifies the person who created the customization.
6. The Existing Customizations grid displays information on all the customizations currently available for this
form. If you need, use the bottom scroll bar on the grid to review complete information.
7. To make this customization available for every company within your system, select the All Companies check
box. Every company can now add this customization to their Menu.
8. Use the Company list to restrict this customization to a specific company. All the companies within your
application are available; select the company you want.
10.0.700 163
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
9. The Product Code field shows you the Epicor product for which this customization is made. In this example,
the customization is for Epicor (EP).
10. The Form Name field displays the .xml filename for the form being customized.
11. The Type Code list displays the kind of custom form you are creating. By default, Customization displays.
12. Enter the Name of this customization. For this example, you enter NoCounterSales. This value is the name
that displays within the Select Customization window. For more information about this window, review
the Developer Mode section earlier in this chapter.
13. Enter the Description for this customization. In this example, you have removed the Counter Sales
functionality, so you enter No Counter Sales.
14. If this customization is a sub-layer, or child, of an existing program, the Parent Layer Key field displays the
code layer that contains the child customization.
15. Select the WIP check box to indicate this customization is a Work In Process. You can then keep the
customization within your test environment, preventing it from being placed on the Menu. If you want to
add this customization to the Menu, you need to clear this check box.
16. When you finish defining the save options, click Save.
17. The Customization Comment window displays. Enter comments to help identify the purpose for the
customization.
164 10.0.700
Epicor ICE 3.0 Customization User Guide Basic Customization | Chapter 3
Export Customizations
You can make a customization available outside the application through the Export Customization functionality.
You then place the customization out into a shared folder where other users can then import it into their systems.
To export customizations:
4. By default, this program places your customization within a shared Export directory. If you need, you can
select a different directory.
5. The File name field automatically creates a name for the exported file. You can enter a different name in
this field.
10.0.700 165
Chapter 3 | Basic Customization Epicor ICE 3.0 Customization User Guide
6. Click Save.
The customization is moved out to the selected folder; it can now be imported into another system. You can
review how to do this in the Select Customization section found earlier in this chapter.
166 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
The Advanced Customization chapter explores how you can further customize a program through modifications to its
code. Several wizards are available that guide you through adding customizations that can, for example, cause a field
to alert users through color changes or cause special code to run when a form is launched.
To increase your customization options, Foreign Key Views can be added to each form. Use these custom data views
to pull in data from a related table into a customized form. You can then add fields, drop-down lists, and other elements
that display the data from this foreign key view.
You can also customize the code behind the current form using the Script Editor. Use this tab within the Customization
Tools Dialog to enter C# code directly, changing the form code as you need. To help you customize at this level, you
can use the Custom Objects Explorer, the Assembly Manager, and the XML Editor. In this chapter, you also find building
blocks of code you can incorporate within your customization.
Unless noted, most of the examples in this chapter use the NoCounterSalesAlt customization you created in the Basic
Customization chapter. In some situations, a new customization must be created to prevent a potential conflict within
the base NoCounterSalesAlt customization.
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.
1. On your desktop, make a copy of your MES icon and rename it to MES Developer (or something similar).
10.0.700 167
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
3. In the Target field, modify the runtime argument, or switch, to use the /MESC argument.
4. Click Apply.
5. Click OK.
168 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
1. Double-click the MES shortcut icon to launch the application. The Select Customization window displays.
4. Next the Select Customization window displays for the System Monitor layer. Notice the Form Name
field displays the App.SysMonitorEntry.SysMonitorForm value.
10.0.700 169
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
9. Another Select Customization window displays. Notice the Form Name field displays the
Menu.Mes.EmployeeSelect value.
170 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
11. The MES Menu refreshes. Notice the buttons on this interface activate.
12. To customize a program, click a button on the MES Menu. In this example, you click the Start Production
Activity button
14. Record the Process Key and Calling App values. You will need these values later, you must keep track of
this information.
10.0.700 171
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
16. To customize the main MES Menu, right-click and select Customization from the context menu.
17. The Customization Tools Dialog displays and you can make modifications to the MES Menu as you need.
You can now customize the program. Because you are customizing a sub process program, however, some
additional steps are required in order to deploy your program onto the MES Menu. Follow the steps described
in the Sub Program Deployment section within the Customization Utilities chapter to learn more about this
172 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
process. When you test your MES or Handheld customization, be sure to launch your regular (runtime) MES or
Handheld shortcut icon.
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.
1. Select the control you want to style. In this example, you select the Ship Via drop-down list.
2. On the Properties tab, select the UseAppStyling property. This property indicates whether the control
uses a separate style from the rest of the form. Verify that this value is set to True; this activates the control
styling feature.
10.0.700 173
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
3. Scroll down through the properties to display the StyleSetName property. This property defines the specific
style you use for the control. In this example, you enter NoCounterSales.
4. You also want the Ship Via label to use this style. Highlight the Ship Via label.
174 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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.
10.0.700 175
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
You can also click the Manage Stylesets button and base
your new style on the default style. In this way, the control
style uses the same base attributes as the original style.
5. The StyleSet Manager window displays. In the StyleSet Name field,enter NoCounterSales.
6. Click OK.
176 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
7. The next steps are similar to exercises you followed in the Styling and Themes chapter. Select the Ship
Via drop-down list.
8. The Runtime Stylist indicates you can update this control by pressing <2> on your keyboard. Press this
key.
9. You locate the Background section in the Settings for ‘UltraComboEditPortion’ window. Select Gradient
for the background color.
10. Select the first color you want for the gradient.
12. Click the Gradient button to select the gradient style you want for the two colors. In this example, the
gradient goes from left to right across the field.
10.0.700 177
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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.
18. You are asked if you want to save changes to the style. Click Yes and save your NoCounterSales style in
the Styles folder. This folder is located in your client installation.
178 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
Close and reload your custom program. The controls display using the new style you created. However notice
the rest of the controls on this form still use the original style.
10.0.700 179
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
You can also turn off the style so it no longer displays on the control. To launch customization mode again:
2. Navigate to the Properties list, highlight the UseAppSetting property, and select False.
180 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
4. Navigate to the Properties list, highlight the UseAppSetting property, and select False.
5. Click Save.
6. Exit and re-launch your custom program. The controls on the customized program no longer use any styling.
10.0.700 181
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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.
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.
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.
The overall rule defines the condition of the data that activates the rule action or actions. When data is placed
in the selected field, the rule evaluates the data based on the condition you define.
You want your Sales Order Entry customization to indicate when the discount percent becomes higher than the
rate you normally give customers. To create the rule:
182 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
2. Enter a Rule Description for the rule. This value will display in several programs. In this example, you enter
Discount Limit.
3. Click the Rule View drop-down list to select the table, or dataView, that contains the field you want to
monitor. In this example, you select OrderHed.
4. If you want the condition to monitor a field in a different dataView, you can define this view from the Select
View drop-down list. In this example, however, you select the same OrderHed dataView.
5. Click the Select Field drop- down list to select the specific field you want the rule to monitor. In this example,
you select the DiscountPercent field.
6. Select a Rule Condition from the list. This operator evaluates the data within the selected field. For this
example, you want the interface to change when the Discount Percent amount becomes higher than a
specified value, so you select Greater Than from this list.
7. Enter a Rule Value against which this condition is to be evaluated. You can enter a numeric value here (in
this example, 5) or select another field from the drop-down list. If you select another field, you are telling
the rule to evaluate one field against another field.
10.0.700 183
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
8. When you finish defining the rule, click the Right Arrow button.
Rule Conditions
After you create the rule and its condition, you then must define the action that occurs when the condition
activates. You can have one or multiple actions for each rule; all of these actions occur when the rule condition
is launched.
You next create an action for the row rule. In this example, you want the Discount Percent field to display the
red Error color. To create an action for the row rule:
184 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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.
10.0.700 185
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
7. You also want this rule to highlight the Terms field as well, so you need to create another rule action. Click
the New Rule Action button again.
8. Click the Select Field drop- down list to select the TermsCode field.
9. Click the Setting Styles drop-down list to select the Highlight action.
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.
13. To see your rule in action, exit the Customization Tools Dialog and then close and restart your customized
form.
186 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
14. Now when users enter a discount amount that is larger than five percent, this rule activates. The Discount
Percent field displays in yellow, while the Terms field displays in blue.
Available Actions
You can also define row rules for image columns within the
Rule Wizard. You do this by creating rule actions that place
different images within an image column created with the
Image Column Wizard. The next section, Image Column
Wizard, explains how you use this feature.
10.0.700 187
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
You follow similar steps to create a rule that monitors a field in one table (dataView) but then updates a field in
another table. In this example, you cause the Order Number field in the Order Release grid to highlight when
the current order is for a specific customer. The customer value is from the OrderHed table, while the Order
Number field is in the OrderRel table.
1. Navigate to Wizards > Rule Wizards sheet and click the New Row Rule button.
2. Enter the Rule Description for this rule. This value will display in several programs. In this example, you
enter Specific Customer.
3. Click the Rule View drop-down list to select the specific table where you want the action to occur. For this
example you select OrderRel (the Order Release table). This value can be different than the Select View value;
it is the first argument (Arg1) for the condition.
4. Click the Select View drop-down list to select the other table involved in this cross row rule. This value is
the second argument (Arg2) used in the condition. For this example, you select OrderHed (the Order Header
table).
5. Select the field in this table that you want the condition to monitor. In this example, you click the Select
Field drop-down list and select CustomerCustID (the Customer identifier field).
6. Select the Rule Condition used to evaluate this rule. Because you want this condition to trigger when the
field contains a specific value, you select Equals.
7. Enter the specific Rule Value you want for this condition. You enter DALTON, which means that any sales
orders that contain this identifier then trigger the rule condition.
8. Click the Right Arrow button. The new rule displays in the Custom Row Rules field.
188 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
9. To define the rule action, click the New Rule Action button.
10. Notice the Rule View displays the same table (dataView) you selected for the Rule View in the condition.
11. Click the Select Field drop-down list to define which field is affected by the condition. In this example, you
select the OrderNum (Order Number) field.
12. Select the Setting Styles option this rule action uses. In this example, you select Highlight.
14. Click Save, exit the customization, and launch the customization again.
15. Click the Sales Order button to find and select an order with DALTON as customer.
10.0.700 189
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
16. Notice the Order Number field is highlighted in the Order Release grid.
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:
2. Enter the Rule Description for this row rule. In this example, you enter Percentage Range.
3. Select the Rule View table (dataView) that this custom condition monitors. You select OrderHed for this
example.
4. Click the Select View drop-down list to select the table this condition monitors. You can select a different
table, so you can create a cross row rule for a custom condition. For this example, however, you keep the
OrderHed table in this field.
5. Click the Select Field drop-down list to define the field that this custom condition monitors. For this example,
you select DiscountPercent.
6. To indicate you are creating a custom condition, click the Rule Condition drop-down list and select
CustomCondition.
7. To indicate the condition resolves to a value, enter a number, such as 5, in the Rule Value field. This value
ensures that the custom condition code shell generates correctly.
190 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
8. Click the Right Arrow button and the custom condition displays in the Custom Row Rules field.
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.
10.0.700 191
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
7. The custom row rule shell displays; notice it returns as a Boolean (True/False) value. The first argument
(Arg1) evaluates the table and field defined for the condition.
8. Enter your custom code below the //** put Row Rule condition evaluation logic here comment.
Example C# code:
private bool OrderHedDiscountPercent5_CustomRuleCondition(Ice.Lib.Extended
Props.RowRuleDelegateArgs args)
{
bool result = false;
// ** RowRuleDelegateArgs Properties: args.Arg1, args.Arg2, args.
Context, args.Row
// ** put Row Rule condition evaluation logic here
double discPct = System.Double.Parse(args.Arg1.ToString());
return result;
}
9. Make sure the code does not contain any syntax errors. Click the Tools menu and select Test Code.
10. If the code is valid, the Output pane displays **Custom Code Compiled Successfully.**
11. Click Save, exit the Customization Tools Dialog, and re-launch your Sales Order Entry customization.
192 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
12. To see the custom condition in action, load in an order, in the Disc % field, enter 1.00. Notice this field
does not highlight.
13. To change the Discount Percent, in the Disc % field, enter 2.00. The DiscountPercent field highlights.
10.0.700 193
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
14. Change the Discount Percent one more time. Enter 5.00 in the Disc % field. Notice the Discount Percent
field is no longer highlighted.
Similar to a custom condition, you can also generate a custom code shell for a rule action. You can then enter
code to launch nearly any action you need. However you can only create one custom rule action for each row
rule. If you need additional actions for the same condition, create a new row rule with a new name, but use the
same condition parameters.
A new customization, Custom Rule, was created for Sales Order Entry to demonstrate this example.
To create a custom rule action:
194 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
2. Enter a Rule Description for this row. This value will display in several programs. For this example, you
enter Wrong FOB.
3. Select the Rule View monitored by the condition. You select OrderHed for this rule.
4. You want this condition to monitor the same table, so you leave OrderHed in the Select View field.
5. To define the field monitored by the condition, click the Select Field drop-down list and select FOB.
6. Select the Rule Condition which evaluates this rule. For this example, you select Equals.
7. Define the Rule Value against which the condition is evaluated. You enter CHI in this field. This indicates
the condition is met when a user select the CHI (Chicago Docks) FOB option.
8. Click the Right Arrow button to place this condition in the Custom Row Rules field.
10.0.700 195
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
196 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
Now enter the C# code for the custom rule action. This code displays a message box when the rule condition
activates.
2. Locate the // ** put custom Rule Action logic here comment. Enter your custom code in this section.
This example uses the following C# code:
// ** put custom Rule Action logic here
MessageBox.Show ("Do not select the Chicago Free On Board options.");
3. Make sure the code does not contain any syntax errors. Click the Tools menu and select Test Code.
4. If the code is valid, the Output pane displays **Custom Code Compiled Successfully.**
5. Click Save, exit the Customization Tools Dialog, close Sales Order Entry, and re-launch your customization.
10.0.700 197
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
6. Load in a sales order, click the FOB drop-down list, and select Chicago Dock.
The application also contains a BitFlag column that detects the presence of a specific item within a record. If the
item is detected, the BitFlag value changes to True, and a change occurs within the program. For example, when
the BitFlag value within Sales Order Entry detects that a memo is attached to a sales order, the Memo button
icon changes on the Standard toolbar; a “star” graphic displays on the button to indicate a memo is attached
to the current record.
These files can be changed based on a row rule condition you define. Based on the condition of the BitFlag, you
can cause other actions to occur on the interface.
A new customization, BitFlag, was created for Sales Order Entry to demonstrate this example.
To create a BitFlag rule:
198 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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.
6. This limits the Rule Condition field to display two options – Has and DoesNotHave. The condition either
sets the BitFlag to True or False. Since this condition needs to evaluate to True, you select Has.
7. Click the Rule Value drop-down list. All the items within the application that use a BitFlag value display on
this drop-down list. For this example, you select Memo. This means that when a sales order record is linked
to a memo, this condition activates.
8. Click the Right Arrow button to add this Custom Row Rule.
10.0.700 199
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
Now define the action that occurs when the BitFlag condition activates.
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.
6. Click Save, exit the Customization Tools Dialog, close Sales Order Entry, and re-launch the customization.
200 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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.
10.0.700 201
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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.
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:
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.
202 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
4. Enter a Column Name for the new column. Enter a name you can easily find when creating row rules. In
this example, entering zImage causes this column to be placed at the bottom of the column list.
5. Enter a Caption for the new column. This defines the text that displays in the top header of this column.
For this example, you enter Size.
6. Click the Image Name drop-down list to select the default image you want to display. This file is the default
image that displays if no other rules are applied against the image column. All images available within the
application display; select the image you need from the list. For this example, you select the
ZoneIndicatorGreen image.
7. In the Visible Index field, define the position where the new image column is placed inside the grid. The
lower the number, the closer to the left of the grid the image column displays. In this example, you enter
a 0 in this field; this indicates the column is the first left-side column in the grid.
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.
Right now, the ZoneIndicatorGreen image always displays on each line within the Order Releases grid. You want
this image column to also alert users when a customer has ordered a large quantity.
To do this, you need to create a row rule that displays a different image when the Our Requested Quantity value
is greater than a defined numeric value. For this example, you use 100 as this numeric value. You set up this row
rule through the Rule Wizard.
To create a rule that displays this alternate image:
10.0.700 203
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
3. Enter the Rule Description for this rule. This value will display in several programs. In this example, you
enter Large Order Image.
4. Define the dataView affected by this rule. Indicate a dataView from the Select View drop-down list. In this
example, you select the OrderRel dataView; this defines the table that contains your new image column.
5. The Select Field drop-down list populates with fields contained within the selected dataView. Use this list
to select the specific field monitored by this rule. For this example, you select the OurReqQty field.
6. Select the Rule Condition this rule uses. In this example, you select GreaterThan.
7. Enter or select the Rule Value for this rule. This defines the value against which the Rule Condition is
evaluated. For this example, you enter 100.
8. To add your rule, click the Right Arrow. The new rule displays within the Custom Row Rules list.
204 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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.
14. The image column rule now displays within the Rule Actions list.
10.0.700 205
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
17. After you exit customization mode and then close and reload your Sales Order Entry customization, you can
test how this works. If you have an order release that has an Our Requested Quantity of 100 or less, the
green indicator image displays.
18. If you have an order release that has an Our Requested Quantity of 101 or more, the red indicator image
displays.
A wizard is also available to do this entire process all at once – you can both create an image column and then
add the row rules you need to the column. This tool is the Image Column Row Rule Wizard. During this example,
you add another image column that alerts users when the Available Quantity for a part is below a 50 quantity
numeric value.
To use the Image Column Row Rule Wizard:
206 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
1. You can launch this wizard from two locations. Navigate to the Wizards > Rule Wizard tab and click the
Image Column/Row Rule Wizard button.
2. You can also launch this wizard by clicking the Tools menu. From the Tools menu, select Wizards > Image
Column Row Wizard.
When the Custom Image Column / Row Rule Wizard window displays, you can step through the wizard to add
your image column.
1. Select the dataView that contains your new image column. In this example, you select the OrderRel dataView
again.
2. Click Next.
10.0.700 207
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
3. Enter a unique Name for the image column. This defines the identifier used for the column within the
dataView. For this example, you use a z for the prefix and enter zImage2.
4. Enter a Column Heading for the new image column. In this example, you enter Low Stock.
5. Define the Column Position for this new column. This defines the position where the new column is placed
inside the grid. The lower the number, the closer to the left of the grid the image column displays. In this
example, you enter a 1.
6. Click Next.
7. Select the Default Image you want to display within this column. Because you want to use this column to
only warn users about low stock quantities, you decide to select (None) for the image. You create a row
rule later that places an image within this column.
8. Click Next.
208 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
9. Enter a Description for this row rule. For this example, you enter Low Stock Quantity.
10. The Rule Data View field displays the dataView (table) for the condition. This value can be different than
the Data View value; it is the first argument (Arg1) for the condition. This field displays the dataView you
selected during the first step on this wizard.
11. Click the Data View drop-down list to select the table that contains the field you want to monitor. You
can monitor a field in a different dataView (table) from the rule, so a change in one table can affect the
image column in another table. This value is the second argument (Arg2) used in the condition. In this
example, however, the field displays the OrderRel dataView, and you keep this default value.
12. Select the Field that you want this row rule to monitor. For this example, you select the AvailableQuantity
field.
14. Select a Rule Condition for this rule. In this example, you select the LessThan value.
15. Notice you can Enter or Select a Rule Value. This defines the value against which the condition evaluates
the rule. For this example, you select the Enter radio button and enter a 50 value.
10.0.700 209
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
17. Click the drop-down list and select the image you want to display when the rule condition is met. In this
example, you select the ZoneIndicatorYellow image to alert the user there is a low stock quantity for the
part selected on this order release.
210 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
4. If you have an order release that has an Available Quantity of 51 or more, the Low Stock image column is
empty within the Order Releases grid.
5. If the part on the order release has an Available Quantity of 50 or less however, the Low Stock image
column displays the selected image graphic.
10.0.700 211
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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.
You need to create a form event for the Need By Date field. You want to prevent users from entering a Need By
Date that is over a year in the future from the current system date. This prevents errors, as sales orders can then
only have Need By dates within one year of the current system date.
1. In the Customization Tools Dialog, navigate to Wizards > Form Event Wizard.
2. Click the Select Event Type drop-down list to select the BeforeFieldChange event. This event occurs just
before an entered value is updated to the database; use it to validate a new data value.
3. Click the Tables drop-down list to define the data table that contains the field. In this example, you select
the OrderHed table.
4. Click the Fields drop-down list to select the field that you want this form event to monitor. In this example,
you select the NeedByDate field.
5. Click the Right Arrow. Notice the form event moves to the Select New/Existing Event Handler list.
212 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
6. The form event code displays within the View/Edit Event Handling Code field. Beneath the case
“NeedByDate” code line, enter the following C# code:
case "NeedByDate":
DateTime dtNeedByDate;
if (args.ProposedValue!=null)
{
dtNeedByDate = Convert.ToDateTime(args.ProposedValue);
if (dtNeedByDate > System.DateTime.Today.AddDays(365))
{
MessageBox.Show("Need By Date exceeds one year. Ente
r a valid Need By Date.");
}
}
break;
7. To save your change to the specific event on the current form, click the Update Selected Event Code
button.
8. To see your form event in action, exit the customization and then launch the program again.
9. Enter a Need By Date that is 365 days over the current system date.
10. Your custom message displays. After you click OK on this dialog box, a valid date needs to be entered within
the Need By date field.
10.0.700 213
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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:
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;
214 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
8. To see your form event in action, exit the customization and launch it again.
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
You can see the code used for these events later in this
chapter. This section, Script Editor Event Handlers, details
the code used to execute the events you select through this
wizard.
• After a row is changed - This event is called after a row is changed on a grid. If only one row is on the grid,
this event must be used in combination with the List Changed event to activate the handling code. The List
Changed event is described later in this chapter.
• Before a field is changed - This event is called before a user leaves a field that is linked, or bound, to a data
table. Use this event to validate the value of a field; if this value is not valid, you can then prevent the user
from leaving the field until a correct value is entered.
• After a field is changed - This event is called after a user leaves a field that is linked, or bound, to a data
table. Use this event to call to another adapter and fill in any resulting data - like validating a part, populating
Description fields, and so on.
• When a list is changed - This event is useful when only one row is present on the grid. Use this event in
combination with the AfterRowChanged() event to run a custom event.
10.0.700 215
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
• Retrieve - An event that happens when data is being pulled from the database. This event is called when
the user clicks the Retrieve button – which is typically found on trackers. This event is useful for custom code
that refreshes data displayed on one panel only.
• Load - An event that happens while the program is launched. Use this event when you want code to run
during the UI Form_Load() method, but after the InitializeCustomCode() method is run.
• Closing - An event that happens while the program closes. Use this event for custom code that cleans up
variables in the data.
• EpiViewNotification - An event that happens just after a dataView (table) is loaded into a program. This
event alerts users this data is ready to be viewed and edited. You frequently use this event to enter custom
code for the GetNew method; run this method to create unique IDs in the user-defined (UD) table.
• BeforeAdapterMethod - This method listens before a call to a business object occurs; when it detects the
event, it initializes your custom code. Use this method to create customizations that run just before an event
launches - displaying message boxes, automatically displaying search programs, validating data, and so on.
You can also use this method to cancel the business object call event before it runs.
• AfterAdapterMethod - This method listens after a call to a business occurs; when it detects the event, it
initializes your custom code. Use this method to create customizations that populate fields, validates data,
updates external tools, and so on. You link the event and the code to a specific row, field, or form. When the
user performs the customized event, this special handling code automatically runs.
• ToolClick - This event occurs after a menu item is selected. Use this event to add code that runs just after a
user selects a specific menu item. The menu item code runs first and then the custom code activates.
• BeforeToolDropdown - This event launches after a primary menu item is selected and the sub-menu items
display. Use this form event to enter code that modifies when certain sub-menu items are visible.
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.
Much like when ships dock into a port, each sheet can also be attached, or docked, to a parent sheet. On the
program interface, this causes the sheet to display as a sub-sheet under the parent sheet. Custom sheets can
also become docking sheets (parent sheets) for other custom sheets.
216 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
1. In the Customization Tools Dialog, navigate to the Wizards > Sheet Wizard tab.
3. Use the Dockable Sheets list to select under what Parent Sheet your custom sheet is placed, or docked.
In this example, you want to place your new sheet on the same level as the main sheets, so you select the
sheetTopLevelPanel1 option.
4. The Parent Sheet field displays the name of the sheet you selected.
5. If you want this sheet to be a Parent Sheet for other custom sheets, select the Docking Sheet check box.
Other sheets can now dock to this custom sheet. For this example, you do not need to activate this feature,
so you ignore this check box.
6. Enter the Name for the sheet. This defines the name that the custom sheet uses in the Tree View. For this
example, you enter SalesKit.
7. Enter the Text that you want to display in the blue bar at the top of the new sheet.
8. Enter the Tab Text that you want to display in the tab for the sheet. For both the Text and the Tab Text,
you enter Sales Kit Summary.
9. Click the Right Button. This adds the new sheet to your customization.
10.0.700 217
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
10. Your new sheet is added to the Custom Sheets list. All sheets added to this customization display in this
list.
11. If you need to change the text that displays on the sheet, highlight the sheet on the Custom Sheets list and
then click the Edit Custom Sheet button.
12. Notice the text for the docking, or Parent Sheet, now displays in the Parent Sheet Text fields.
14. To display your custom sheet, minimize the Customization Tools Dialog.
15. The custom Sales Kit Summary sheet displays. Notice the Text value displays in the sheet tab.
16. To finish this customization, you decide to add a grid to this sheet. To do this, you follow the steps in the
Add a Grid section within the Basic Customization chapter.
For the grid’s DataSource value, you select the Sales Kits table. You also select the columns you want to
display within the grid.
After you exit Customization Mode, you can see how your new sheet works in Run Mode. When you display an
order for a sales kit, your Sales Kit Summary sheet looks similar to what displays in this illustration.
218 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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:
3. Enter a Name for the custom sheet. In this example, you enter PartOnHandStatus.
4. Enter the Text that displays in the blue bar at the top of the new sheet. In this example, you enter Part On
Hand Status.
5. Enter the Tab Text that displays in the tab for the sheet. For this example, you enter Part On Hand Status
again.
Clicking the Add Dashboard button launches the Embedded Dashboard Panel Wizard. Do the following to move
through the wizard.
10.0.700 219
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
• AppBuilder Panel – Select this option to cause the embedded dashboard to build the finished dashboard
assembly. Because you are pulling in a compiled dashboard, this option typically has better performance.
2. Click the Dashboard ID button to find and select the standard or custom dashboard you want to display
on this sheet.
3. If you want to show the toolbar for this dashboard, select the Display Dashboard Tool Bar check box.
4. If you want to show the status bar for this dashboard, select the Display Dashboard Status Bar check
box.
5. Click Next.
6. Use the following window to indicate if this dashboard can also publish (display) data from a related Business
Activity Query or subscribe (update) its data based on a selection in a related Business Activity Query. Available
options:
• Subscribe to UI data (auto Retrieve on publication) – Select this option to cause the dashboard to
automatically pull, or retrieve, data when the customized program publishes the current value. Only
select this option if the dashboard will return a small amount of data. If you select this option for
dashboards that pull in a lot of data, you will slow performance.
• Subscribe to UI data (include Retrieve button) - Select this option to cause the dashboard to
automatically clear data when the customized program publishes the current value. A Retrieve button
displays on the dashboard so users can manually pull in the data based on the customized program’s
current published value.
• Publish data to the UI - Select this option to cause the dashboard to display data pulled from another
query.
• Neither Subscribe nor Publish - Select this option to cause the dashboard to only display the data
contained within its current query.
220 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
For this example, you select the Publish data to the UI option.
7. Click Next.
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.
10. The selected column displays within the Selected Published Columns list. You can add as many columns
as you need.
11. To delete a column, highlight it from the Selected Published Columns list and click the Remove button.
12. When you have selected the publish (or subscribe) options that you want, click the Finish button.
10.0.700 221
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
1. You return to the Sheet Wizard. Notice the PartOnHandStatus now displays within the Add
Dashboard field.
3. The PartStatusOnHandTracker custom sheet now displays within the Custom Sheets list.
4. After you exit Customization Mode, you can see how your new sheet works in Run Mode. In this example,
the Part On Hand Status Tracker now displays within your Sales Order Entry customization.
222 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
Event Wizard
The Event Wizard creates code that captures an event from an item like a button, text box, check box, and so
on. The events you can create are nearly endless. You can create code that launches a third party application,
plays sound files, displays a message box, runs a calculation on selected data, and so on.
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.
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.
10.0.700 223
Chapter 4 | Advanced Customization Epicor ICE 3.0 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.
12. The Control Event Code field displays the code shell required for the control event. Notice the ‘// ** Place
Event Handling Code Here** comment.
224 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
13. Enter your custom event code after this comment. For this example, you enter the following C# code:
Process.Start(“IExplore.exe”,"https://EPICweb.epicor.com/default.aspx");
14. You now have two options. To update the event code for all the custom controls of this type on the current
form (EpiButton),click the Update All Event Code button. To update the event code for the specific event
within the selected control, however, click the Update Selected Event Code button. For this example, you
click the Update Selected Event Code button.
15. To see your form event in action, exit the customization and launch the customized form again.
16. The new EPICweb Home button displays on your customization. Click this button and Internet Explorer
launches.
17. Enter your EPICweb username and password, and the EPICweb Home page displays. Your users can
now view all the information and resources available at this Web site.
10.0.700 225
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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:
3. Click the Control Type Filter drop-down list to select the EpiUltraGrid control type.
4. All the custom grids within your customization display on the Custom Control list. For this example, you
select the epiUltraGridC1 grid – the Order Release grid.
5. Select the Data Entry Grid? check box. This indicates that users can enter data within this grid.
6. Notice the Available Control Events list changes to the Available GetNew Method list. This method list is
only used on grid type controls, and these methods vary depending on the table linked (bound) to the grid.
To indicate this Order Release grid is available for data entry, you select the GetNewOrderRel method.
7. To confirm you want to add this event, click the Right Arrow button.
8. Click the Update All Event Code button to add this event script to the grid.
226 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
9. To see the grid in Run Mode, exit the Customization Tools Dialog, the program, and launch your customized
form again.
10. Your customized Sales Order Entry form displays; notice the fields within the Order Releases grid are available
for data entry. In this example, a user is selecting a Ship By date from this grid. Users can now create releases
for the current sales order directly through this custom grid.
A Foreign Key View is a link to a separate, or foreign, table that contains logically similar data to the main table
used on the form. Fields that logically link to foreign key fields in other tables all must share the Like property.
The Like property defines which foreign keys can link to other tables.
You can create foreign key views for any dataView, or table, that has a field you use to search by its record
GetByID identifier. You can then link custom fields to this foreign key view, displaying its data within any custom
fields you create on the form. The data you display through a Foreign Key View is read-only; users cannot edit
this data. A powerful tool, use this functionality to link related tables together so they display the information
you need on your customization.
After you create a foreign key view, you can use the features
on the Custom Column Like tab to add the Like property to a
specific field. Read the Add a Like Property section later in this
chapter for details.
You can set up a variety of table combinations. You can first create one foreign key view and then link another
sub-view to this view, another sub-view to this sub-view, and so on. As long as you can establish a logical
10.0.700 227
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
connection between the Parent and Child columns through their Like properties, you can display data through
nearly any combination of views.
A new customization, Foreign Key View, was created for Sales Order Entry to demonstrate this example.
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.
4. The Custom View Info fields activate. Enter the View Name you want for the new foreign key view. In
this example, you enter CustomerSalesInfo.
228 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
5. If this view will be a sub-table view (Child) to a Parent View, use the Parent View Name list to select this
table. Because you want to pull in information from the customer record selected on the sales order, you
select OrderHed on this list.
6. Notice the View Type field indicates what kind of view you are adding. For this example, it displays Foreign
Key View.
7. Click the Column Name drop-down list to select the record identifier (GetByID) you need to pull in the
table’s data. You are pulling in data from customer records, so for this example, you select the CustNum
option – the customer number value. This value is the internal number assigned to all customer records; it
cannot be changed.
8. The Like Column Value field displays the Like property value that is shared, in this example, between the
OrderHed table and the CustomerSalesInfo foreign key view. This value causes these two tables to display
related data on the current form.
9. The Adapter Name displays the database routine that pulls the foreign key view data into the current form.
In this case, the CustomerAdapter is the routine that pulls in customer data into forms throughout the
application.
10. The Get By Type list displays the method the foreign key view uses to pull data out of its table. Because
you need this foreign key view to first pull in data through the customer number, you use the IntegerGetByID
method.
11. To add this foreign key view to your customization, click the Add button. If the foreign key view was
successfully added, the Foreign Key View dialog box displays. Click OK in this dialog box.
12. Notice the new foreign key view displays in the Custom Views list. It starts with the abbreviation FKV,
followed by the View Name you entered.
10.0.700 229
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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.
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.
4. In the Name, Text, and Tab Text fields, enter the Customer Sales Info values you need displayed on the
sheet.
5. Click the Right Arrow button to add this sheet to the Custom Sheets list.
230 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
6. The new sheet now displays on your custom interface. From the Tools menu, select Toolbox.
8. To display a customer record’s Salesperson data on this sheet, in the Toolbox window, select the
EpiTextBox element.
9. To create the field, click and drag over an area of your new sheet.
10.0.700 231
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
10. Restore the Customization Tools Dialog and click the Properties tab.
11. Use the EpiBinding list to select the CustomerSalesInfo foreign key view and the SalesRepCode option.
12. Now add a Label to the sheet, enter Salesperson for the label, and then link the text box to the label.
232 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
13. Repeat these steps so this sheet displays a customer record’s Salesperson Name, Territory, and Comments
information. For each text box, you again select CustomerSalesInfo from the DataSource list and then
select the appropriate DataField.
14. To see these fields display the foreign key view data, exit the customization and then launch it again.
15. Open a sales order and click the Sales Info tab.
16. Sales information from the customer record automatically displays within your customized sheet.
10.0.700 233
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
To complete the Foreign Key View functionality, you can both add and edit Like properties for selected dataViews.
Use this property to create custom foreign key views. When you define a Like property, you can then link a field
from one table to a similar field on the new table that now shares the Like property value.
To display the Credit Card Description value through a foreign key view:
1. Launch the Custom Data Dialog again and click the Custom Column Like tab.
2. The Columns with Existing Like Values grid displays the current dataViews (tables) that have Like properties.
The name of the Like property displays in the LikeValue column.
3. To add a Like property to a new dataView and column combination, select the view you need from the
Available Views list. In this example, you select the OrderHed view.
4. Use the Available Columns list to select the column that needs a Like property with the selected view.
Because you want to display the Credit Card Description through a foreign key view, you select the
CardTypeDescription column.
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.
234 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
You can now display data through this foreign key view combination. You can create a text field, for example,
that displays the Credit Card Description values from your credit card data.
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.
3. You next indicate which Data View will contain the image column. Click the Data View drop-down list and
select CustomerSalesInfo.
4. Enter the Column Name for this new image column. For this example, enter zGlobal.
5. Enter the Caption that will display in the column header. Enter Global Customer in this field.
6. Click the Image Name drop-down list and select the default image that will display in this column. Since
you want to indicate when a customer is defined as a global customer by default, you select the
ZoneIndicatorGreen image.
7. The Visible Index indicates the position of the new column. A "0" value indicates the column displays on
the left side of the grid; a "1" value indicates it displays to the right of the first grid column.
You can now use the Image Column Wizard to change which image displays in the CustomerSalesInfo.zGlobal
column. For this example, you could add a grid to the Customer Sales Info sheet that displays selected columns
from the CustomerSalesInfo foreign key view. You then would use the Image Column Wizard to cause the image
column to display the ZoneIndicatorYellow image to indicate when a customer is not a global customer.
10.0.700 235
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
Script Editor
You use the Script Editor to enhance the source code for the form by entering code level customizations. Each
form has a default code shell that initially displays within this tab on the Customization Tools Dialog. You can
then add and edit this shell to create code level programs within your customization.
Use this tool to go beyond interface changes to create customizations that can validate data, link your customization
to other programs, run calculations on incoming data, and so on.
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.
This section gives you a brief tour of the Script Editor interface.
236 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
2. Select the All Code (Read Only) check box to see all the code generated by the Framework in display only
mode.
3. When you first create a customization, you can indicate whether you write the code in the C# or
VB programming language. After you select the option and save the customization, you must always enter
code using the selected programming language.
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.
10.0.700 237
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
Editing Menu
When you right-click the Script Editor, you display the Edit Menu.
1. Right-click anywhere within the Script Editor to display the Editing menu. This special menu contains several
tools that help you more efficiently and accurately create your custom code.
3. Run the Tabify Selection option to create tabs within the current code selection.
4. Use the Untabify Selection option to remove tabs within the current code selection.
5. Select the Indent Selection option to push the current line over to the next tab.
6. Use the Unindent Selection option to pull the current line back towards the left side (the previous tab) of
the Script Editor.
7. Select the Comment Selection option to place a comment marker in front of the selected code. This code
still displays, but it does not run. You also comment text that explains each piece of your custom code.
8. Run the Uncomment Selection option to remove the comment marker from the selected code.
9. Select the Collapse All option to compress all the areas in your custom code to a series of headers. You
can then more quickly navigate to areas within your custom code.
10. To fully display your custom code, select the Expand All option. You can then scroll through the code to
review all the code lines.
238 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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:
2. The results of the test display within the Output pane. If errors occur, they display within this pane. Notice
the line number and the error condition display within this pane.
10.0.700 239
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
6. Correct the error within the code. In this example, you need to add a semi-colon to line 137 within the code.
240 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
8. To find out if your change fixed the issue, from the Tools menu, select Test Code.
9. If your change worked, the **Custom Code Compiled Successfully. ** message displays.
Your custom code is now correct and will not cause compile errors.
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
1. Right-click somewhere within the Script Editor to display the context menu.
2. Select Options.
The Control Options window displays. The next sections describe the options you can activate through this
window.
10.0.700 241
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
Areas
You use the Areas options to define how you want the Script Editor to display.
1. From the tree view, select the Appearance > Areas folder.
2. Indicator Area – This check box causes the left gray indicator margin to display.
3. Word Wrap Area - Select this option to cause the code to move to the next line. You then do not need to
use the bottom scroll bar to review the code. To use this option, you need to select the Word Wrap option
in the Behavior > General folder.
4. Selection Area – This check box pushes the code away from the left side of the Script Editor window. This
helps indent the custom code.
5. User Area – This check box causes a user section area to display on the right side of the Script Editor.
6. Line Numbers – This check box causes the code line numbers to display. These numbers display along the
left side of the Script Editor window.
7. Changed Lines Marking – Select this check box to cause the Script Editor to indicate which lines of code
you have changed. When you edit a code line, a yellow bar displays on the left side next to the code line
number.
Text
You use the Text options to define how the code characters display in the Script Editor.
1. From the tree view, select the Appearance > Text folder.
2. Lines Wrapping Marks – Indicates when a single line is too long to display in the Script Editor. These
indicators appear at the end of lines that wrap to the next line. To use this option, you need to select the
Word Wrap option in the Behavior > General folder.
242 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
3. Wrapped Lines Marks – Indicates when a single line is too long to display in the Script Editor. These
characters appear at the beginning of lines that continue from the previous line. To use this option, you
need to select the Word Wrap option in the Behavior > General folder.
4. Indentation Guidelines – Select this check box to display a line that links all the code contained within an
indentation. This line displays from the first to the last line of the indentation.
5. Indentation Block Borders – Select this check box to cause the Script Editor to highlight all the code
contained inside a selected indentation block.
6. Column Guides – Displays the column lines within the Script Editor.
7. Outlining Collapsers – Select this check box to display the plus and minus icons. You can then click the
minus icons to collapse a section of code, and then click the plus icon to expand a section of code.
8. Transparent Selection – Select this check box to highlight what lines and selections of lines you have
currently selected. This shows you which part of the Script Editor is currently active. If you were to press
<Delete> on your keyboard, all text within the transparent selection is removed.
Control
Leverage the Control options to indicate what controls you want to display on the Script Editor.
1. From the tree view, select the Appearance > Control folder.
2. Horizontal ScrollBar – This check box causes the Horizontal (lower) toolbar to display.
3. Vertical ScrollBar – This check box causes the Vertical (side) toolbar to display.
4. Status Bar – This check box indicates the bottom status bar displays. You use this bar to view the current
state of your custom code.
5. XP Style - Select this check box to display the interface using the Windows XP style.
10.0.700 243
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
General
The General options define some features that affect how the Script Editor works.
1. From the tree view, select the Behavior > General folder.
2. Virtual Space Mode - Select this check box to cause a red indicator to display when you select a section
of the Script Editor.
3. Insert Mode - When you select this check box, the thin insertion point cursor displays when you click the
Script Editor. When you clear this check box, a block cursor displays instead.
4. White Space – This check box causes the space markers ( . ) and tab markers to display within the Script
Editor.
5. Word Wrap - Select this check box to cause long lines to move down to the next line. You can then use
the Text options, Lines Wrapping Marks and Wrapped Lines Marks to indicate what wrap markers
should display to indicate which lines continue on the next line.
6. Group Undo - Select this check box option to reverse multiple changes contained in group.
Tabs
This section details the Tab and Indent options you can use within the Script Editor.
1. Use Tabs – Select this check box to activate the tabbing feature. You can then press the <Tab> key on your
keyboard to advance forward in a code line.
2. Tab Stops – Select this check box to display each tab marker stop in the Script Editor.
3. Tab Size – The size, in pixels, that the Script Editor uses when you press the <Tab> key to manually create
tabs within your custom code.
244 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
4. Auto Indent Mode – The indent method you use in the Script Editor. Available options:
• None - You do not use an indent method.
• Block - This option indicates you manually enter indents. Each indent moves the text over using the
Indent Size value.
• Smart - This option causes the Script Editor to automatically indent your custom code. The Script Editor
attempts to identify your code following standard coding indent conventions.
Event Handlers
This section details the event handler methods that can display within the Script Editor. These event handlers are
either automatically generated by the Script Editor or they are added by you through a wizard. You can also enter
these event handlers directly.
The application interface provides several event handler methods. These special methods can be used to run code
at particular times – during the opening and closing of a user interface or when certain events relative to the
data occurs. These methods listen for events fired by objects in the application and then run the custom code
contained within the method.
InitializeCustomCode()
This defines the first method called within the custom code. This event handler is automatically created when
you launch the Script Editor for the first time. It performs the following events:
• It initializes module level variables.
• It can create custom EpiDataViews and add them to the Transaction object. Review the next section, Custom
Object Explorer, for more information about this object.
• The Form Event Wizard also places variable code initializations and calls within this method.
DestroyCustomCode()
This defines the last method called within the custom code. This event handler is automatically created when
you launch the Script Editor for the first time. It performs the following events:
• It cleans up any remaining module level variables.
• The Form Event Wizard also places variable code initializations and calls within this method.
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.
This event handler is called after users change rows within a multi-row EpiDataView. It performs the following
event:
• It monitors changes in a row’s data. If any data changes occur, the event runs.
10.0.700 245
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
This event handler does not run if a new row has been added to the grid. It also does not run if only one row is
present on the grid. In this case, this event needs to listen for a ListChanged event handler to activate first – then
the AfterRowChange event handler runs.
This event handler is called before users can shift focus away from a field with changed data bound to a DataSource
and DataField. It performs the following events:
• This event handler can validate the entered value of a field.
• If the value is not valid, then you can prevent the user from leaving the field until a correct value is entered.
To prevent users from leaving a field that is not validated, you can use this C# code:
throw new EpiUIException();
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.
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.
This event handler is called if you need to run something during the UI Form_Load() event after the
InitializeCustomCode() method is run.
246 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
[ViewName]_EpiViewNotification() Handles
This event handler method runs the EpiDataView.EpiViewNotification event. It pre-populates default values on
the GetNew event – such as creating a unique identifier (ID) within a user-defined (UD) table or displaying default
values within a field.
The Epicor application frequently uses this method.
AfterGetByID()
This event handler runs after an identifier is validated by the application. It can use the AfterAdapterMethod to
duplicate code behavior.
The customization wizards do not generate code for this method.
oTrans_[AdapterName]_BeforeAdapterMethod()
This event handler method runs just before an adapter is run. This can be used to validate data, check for required
fields, and so on.
Users can cancel this method. If a user cancels this method, the business object call and its corresponding
AfterAdapterMethod call are canceled.
oTrans_[AdapterName]_AfterAdapterMethod()
This method handles the oTrans_ordAdapter.AfterAdapterMethod; it activates just after an adapter is run. It
performs the following events:
• It can populate default values into a form.
• It can be used to update an external business object.
• This method can also be used to run code just after a business layer call is complete.
TrackerQueryRowChanged()
A dashboard tracker event handler, it runs after a row has changed within the query that is contained within the
tracker. A key code item to remember is that dashboards do not contain EpiDataViews.
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
10.0.700 247
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
248 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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.
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
}
This button now launches Job Entry.
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);
}
}
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.
10.0.700 249
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
dsSearch = Epicor.Mfg.UI.FormFunctions.SearchFunctions.listLookup(oTr
ans,“PartAdapter”, recSelected, true, whereClause);
if {recSelected)
{
txtEpiCustom2.Text = (string)dsSearch.Tables[0].Rows[0] [“PartNu
m”]
}
}
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.
3. Click the Adapter drop-down list and select the Transaction Adapter. This option is the ssAdapter.
250 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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
}
Use the Custom Object Explorer to find and select specific code objects you can then use in your custom code.
It guides you through the customization process, as this tool functions as a browser to locate the object you
want. Use this tool to locate UI Objects, Data Objects, and Adapters you can then add to your custom code. The
selected object’s code then displays as a code example; you can use this example as a base for your own custom
code.
10.0.700 251
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
1. In the Customization Tools Dialog, from the Tools menu, select Object Explorer.
3. Notice you can use this program to search for three code object types – UI Objects, Data Objects, and
Adapters.
252 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
UI Objects
UI Objects contain the code that displays program interface components on a monitor. It houses the methods
used to display various programs. Some common UI objects you frequently use are documented later in this
section.
What Displays
The UI Objects tab displays information on all the Properties, Sessions, and Methods required to display the
Framework API for the user interface object. The following items display on the UI Objects tab:
1. Use the Tree View to navigate through all the UI Objects and their properties and methods. In this example,
you have opened the Equals method under the Sales Order Form (ILaunch) UI object.
2. Details on the selected UI object display on the right side of the Custom Object Explorer. The Return
Type field indicates the data that this method displays – System.Boolean, or True/False.
3. The Parameters field displays the selected object’s main attributes that are passed into the method. In this
example, the selected method is an obj: System.Object.
4. If selected, the Static Method check box indicates you do not need an instance of the UI object to run the
method.
5. The VB.NET Example field displays the code snippet used for the UI object, property, or method. You can
use this code within your customization.
6. To place this code snippet onto your clipboard, click the Copy button.
10.0.700 253
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
9. Select Paste.
254 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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.
10.0.700 255
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
Form Object
This object is the actual UI object for the form. If you are customizing Sales Order Entry, for example, this object
is the SalesOrderEntryForm.
The Form Object contains many properties and methods – including the Session Object, which you frequently
use within your customizations.
The Session Object controls all the information that defines the current session. It contains details about the User
ID, Site, Company, and so on.
256 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
Code example:
ILaunch iLnch = PartEntryForm as ILaunch;
if (((Epicor.Mfg.Core.Session)iLnch.Session).UserID == "user1")
{
Use this object to define the custom code you can add to the customization.
• AddForeignKeyView Method – Use this method to add an updatable Foreign Key View to the EpiTransaction
object. When this method is called, the added Foreign Key View is available for control binding. You can also
use this method with business logic adapters.
• Parameter: ViewName – String. The name of the Foreign Key View (must be unique).
• Parameter: dsData – DataSet. An Empty DataSet of the Foreign Key Views Type.
• Parameter: TableName – String. The name of the Table corresponding to the View in the DataSet.
The C# code looks similar to the following:
// Add Adapters Table to List of Views
10.0.700 257
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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.
258 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
You can even pass in an initial value. However, notice this may not work in some UIs:
ProcessCaller.LaunchForm(oTrans, “Erp.UI.PartEntry.dll”, “4600-1”);
You can modify the LaunchForm() method so users can open an external program - External Process Calling.
To do this, you use the Microsoft® .NET Process static class. Verify you include the following Imports statement
at the beginning of your code:
Imports System.Diagnostics
using System.Diagnostics;
Then use the following code shell to open an external process:
Process.Start(“[Program Name]”, “[Command Line Parameter(s)]”);
Some examples:
Process.Start(“IExplore.exe”, “www.epicor.com”);
Data Objects
Data Objects contain the code that interacts with a database. It houses the methods used to enter, view, and
calculate data for a specific function within an application.
What Displays
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.
3. The Column Name field displays the name of the column (field) that the EpiDataView object displays. In
this example, it displays the DocTypeID column (field).
4. The Column Data Type field displays the kind of data this object displays – numeric, integer, string, and
so on.
5. The Extended Props field displays any additional properties - Read Only, Enabled, Visible, and so on - that
define the selected data object. In this example, notice the Format of this string field can contain up to eight
10.0.700 259
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
characters and it has the Company.Company Like property. For more information on Like properties, read
the Foreign Key Views section earlier in this chapter.
6. The Code Block for this data object displays in the bottom field. Use this code example for accessing the
field.
7. Notice you can click the Copy button to place this code on your clipboard. You can then return to the Script
Editor and place the code within any section you need. The previous UI Objects section explains how to do
these steps.
EpiDataView Object
The EpiDataView object encapsulates a dataView of a specific DataTable that corresponds to a Table within the
database. Because of this, a direct connection usually exists between a Database Table and an EpiDataView.
1. To see the properties and methods available for an EpiDataView, click the UI Objects tab.
2. To see the EpiDataViews available for a specific UI application, click the Data Objects tab.
260 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
if (edv.dataView.Table.Columns.Contains(“PONum”))
{
edv.dataView.Table.Columns[“PONum”].ExtendedProperties[“ReadOnly”
] = true
edv.dataView.Table.Columns[“PONum”].ExtendedProperties[“Enabled”]
= false
// or to make invisible…
//edv.dataView.Table.Columns[“PONum”].ExtendedProperties[“IsHidde
n”] = false
}
}
Adapters
Adapters are code objects that connect a UI object with a data object. This file makes calls that either get or send
data to the data object.
After you find and select the adapter that you want, you can display both its properties and its methods. The
program displays the code used to run the property or method.
10.0.700 261
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
What Displays
2. Use the Tree View to navigate through all the adapters. In this example, you have opened the Properties
under the SalesOrderAdapter.
3. The Assembly References field displays all the areas within the application this adapter is used.
4. The Property Type field details the overall function of this property. Each property is used to manipulate
different kinds of data; this field indicates the type of data affected by the property.
5. When the Set check box is selected, it indicates this property can be set, or defined, by your custom code.
6. When the Get check box is selected, it indicates this property can be read by custom code.
7. The VB.NET Example field displays the code that runs the selected property.
8. Notice you can click the Copy button to place this code on your clipboard. You can then return to the Script
Editor and place the code within any section you need. The previous UI Objects section explains how to
use this feature.
262 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
9. If you select a method from the Tree View, a different group of fields display.
10. The Return Type field displays the type of data this method evaluates for the adapter.
11. The Parameters field displays the attributes that define the method. These attributes define how the method
returns data to the adapter. For this example, it indicates this method handles the date/time information.
12. The VB.NET Example field displays the code that runs the selected property.
13. Notice you can click the Copy button to place this code on your clipboard. You can then return to the Script
Editor and place the code within any section of the code that you need. The previous UI Objects section
explains how to use this feature.
An assembly is piece of code used to join UI objects, data objects, and business objects together. Assemblies
keep all these objects functioning correctly with each other.
The Assembly Reference Manager displays a list of all the system, native, and custom assemblies used within the
application. Use the Tree View to find and select an assembly; this displays the main information for this assembly.
You can then use this program to reference the assembly within your custom code.
10.0.700 263
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
1. In the Customization Tools Dialog, from the Tools menu, select Assembly Reference Manager.
3. In the Referenced Assemblies list, select the assembly you want to view or edit.
4. The System Assemblies node displays the current assemblies that cause the overall application to run
within the operating system.
264 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
5. The Native Assemblies node displays all the assemblies required to run the current standard (non-customized)
user interface. Notice the Epicor.Mfg.UI.SalesOrderEntry assembly, the program currently being customized,
displays in this list.
6. The Custom Assemblies node displays all the additional assemblies you have added through this
customization. Notice this list contains the Epicor.Mfg.AD.ShipVia adapter. You added this custom assembly
when you created a new drop-down list (UltraCombo) on the Sales Order Entry – Summary sheet during
the Basic Customization chapter.
7. The Assembly Info group box displays the information on the selected reference. The Name field contains
the assembly code’s name which displays within Windows Explorer and other programs. In this example,
the name Epicor.Mfg.AD.ShipVia displays.
8. The Full Name field displays the complete name of the assembly, which includes all of the assembly’s main
attributes. Notice this example displays the assembly’s Version, Culture, PublicKeyToken, and other key
attributes.
9. The Path field displays the directory path, if any, that leads to this assembly.
10. The Version field displays the development level of the selected assembly. In this example, the assembly is
currently at the 10.0.500 release version.
11. You can attach a file of custom reference code to the selected assembly. To do this, click the Add Custom
Reference button. This launches a Browse window; use this window to find and select the file that contains
the custom reference code you want to add to the assembly.
12. If custom code is already linked to the assembly, the Remove Custom Reference button is active. Click
this button to delete the custom code.
13. When you finish using the Custom Assembly Reference Manager, click OK.
The String Manager 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.
Use the String Manager functionality to create customizable strings for translation. Certain commonly used
phrases within reports do not translate into other languages; however, you can leverage the String Manager to
tag certain phrases and customize their translation for future use.
To use the String Manager:
10.0.700 265
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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.
5. Enter a String Key value; a String Key can be an identifier for the sentence or phrase being translated. For
example, enter "YourID".
266 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
6. Now enter a String Value. A String Value is the actual sentence or phrase you wish to translate. For example,
enter "Your ID".
7. Click Add/Update.
The string now displays in the Existing Strings box. As you add more strings to translate, they display in
this list box.
These string values are now available to use with 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
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.
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.
10.0.700 267
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
Launch a Wizard
To display a wizard:
1. In the Customization Tools Dialog, from the Tools menu, select Wizards > Customization Wizards.
4. The description for the wizard displays in the box below the list.
The selected wizard displays. The next sections describe the purpose of each wizard and the code it generates.
268 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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:
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.
6. To see the added files, from the Tools menu, select Assembly Reference Manager.
10.0.700 269
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
7. Notice the Custom Assemblies node displays all added assembly references. In this example, the forecast
files are added as references to the custom code.
The Extended Property Wizard guides you through defining a specific property for a selected DataColumn – which
is a field within a selected table. The Properties sheet on the Customization Tools Dialog then reflects the extended
property you defined for the field through this wizard.
To use this wizard:
1. Select the DataView you want from the drop-down list. In this example, you select the OrderHed dataView.
2. Select the DataField for which you need to define its extended property. In this example, you select the
TotalCharges field.
3. The Extended Property drop-down list contains all the extended properties available for you to define.
Select the property you need. Available options:
• Enabled - Activates the field for data entry.
• Format - Changes the field's entry format; for example, changes a character field from x(8) to x(25).
• IsHidden - Removes the field from view.
• LinkedColumn - Pairs the field column with another column. They then move together on grids.
• ReadOnly - Prevents users from entering data; users can only view data
• ZoneBAQ - Adds a business activity query (BAQ) to the field that populates with data you wish to display.
For more information, review the BAQ Zones section in Chapter 6: Customization Utilities.
270 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
4. Click the Value drop-down list to define the selected extended property. Only values that pertain to the
selected extended property display on this drop-down list. In this example, the ReadOnly extended property
is selected, so the available values are True or False.
Continue to use this wizard to define the extended properties you want for specific fields.
Use the Simple Search Wizard to add a search program and search results fields to your customization. The
following example illustrates how you add extended user-defined fields to a table, and then use these fields to
create a search program.
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.
10.0.700 271
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
Menu Path: System Setup > System Maintenance > Extended UD Table Maintenance
3. The Table Search window displays. For this example you find and select the OrderHed table.
4. Click OK.
272 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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.
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.
4. Now for the Format, enter x(20). This indicates up to twenty characters can display in this field.
5. Click Save.
10.0.700 273
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
6. Now add the Search02, Search03, Search04 character fields. Use the the x(20) Format for each field.
8. You next must add, or synchronize, these columns to the database. To do this, click Actions > Sync Current
Table to DB. After this process runs, a dialog box displays that indicates the OrderHed_UD table is
synchronized to the database.
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.
To finish adding the extended user-defined columns, you must regenerate the data model for the specific database.
You do this task on the server that contains your database.
274 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
2. Expand the Database Server Management node and the database server node that contains the database
you need to update. Select the database icon.
4. From the Actions pane, click the Regenerate Data Model button.
6. Verify the Deployment folder field displays the root path location for the server.
7. Click Generate.
10.0.700 275
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
8. Now to complete this process, pull the latest data model from the database and copy it to the local application
server by restarting IIS. Restarting IIS is a mandatory task after the data model is successfully regenerated.
To do this, launch the Command Prompt window.
10. After IIS stops and restarts, close the Command Prompt window.
The data model generates, adding the extended user-defined table to the database. Now that the data model
is regenerated, you can add these columns to a customization. Epicor users can also view and enter data in the
extended user-defined columns.
You first need to add a button and text fields to the Sales Order Entry form.
1. Make sure Developer Mode is active, and then navigate to Sales Order Entry.
Menu Path: Sales Management > Order Management > General Operations > Order Entry
276 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
The CRM menu path is: Customer Relationship Management > Order Management > General Operations
> Order Entry
10.0.700 277
Chapter 4 | Advanced Customization Epicor ICE 3.0 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.
278 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
3. Select the specific Custom Control. In this example, you select epiButtonC1.
10.0.700 279
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
Next add the fields that will populate with search results.
4. In the EpiBinding property, link this text box to the OrderHed.Search01_c column you created.
280 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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.
10.0.700 281
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
You now use the Simple Search Wizard to link the custom text fields to the search results.
3. Select the search adapter you want to bind to the search button. In this example, you select the
CustCntAdapter and click Next.
282 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
4. You have the option of adding the search to a drop-down list or a search dialog. For this example, you select
the SearchDialog option.
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.
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.
10.0.700 283
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
1. Navigate to the Script Editor and place the call to the search adapter within the code for the button click
event. This causes the search window to display when a user clicks your custom button. Enter the Search
OnCustCntAdapterShowDialog(); call.
2. Click Save.
284 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
3. Relaunch your Sales Order Entry customization and navigate to the One Time Ship To tab.
7. The contact’s phone number and email address display in your custom fields.
10.0.700 285
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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:
2. Select an adapter from the list. In this example, you select the PartAdapter.
3. Click Next.
4. All adapter methods available with this adapter now display in the wizard. Select the method you want to
add to your customization. In this example, you select the ChangePartSiteVendorID method.
5. The Return Type field displays the data returned through this method.
6. The Parameters field displays all the parameters passed by the selected method.
7. Click Next.
286 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
8. If the selected method does not contain parameters, select the Method Contains No Parameters check
box. In this example, however, the method uses parameters, so you clear this check box.
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.
14. Create another method call. Select an option from the Parameters drop-down list. In this example, you
select ds : Epicor.Mfg.BO.PartDataSet.
16. Since you are not passing this call into data, you are finished. Click Add.
Both calls are added to your customization, and they use the correct syntax. You can now customize these method
calls as you need within the Script Editor. They also display as custom calls within the Assembly Reference Manager.
10.0.700 287
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
A common customization is to add a user-defined (UD) table as a sub-table within a customized form. User-defined
tables are included within your application as an additional customization feature. You leverage user-defined
tables to enter data unique to your company and then display and use this data within custom forms. You explore
this functionality within the User-Defined Tables chapter.
You can run the UD Table Add/Edit/Delete Functionality Wizard to add a selected user-defined table to your
current customization. You can also use this wizard to modify or remove the user-defined table link.
To use this wizard:
1. Click the Data Views drop-down list to select the DataView you want to contain the UD table. This defines
the parent table for the child UD table. In this example, you select OrderHed.
2. Click from the UD Adapters drop-down list to select the adapter for the user-defined table you want to
link to the parent table. In this example, you select UD04Adapter.
3. Click Next.
4. You next map the keys from the user-defined table to fields within the parent view. To do this, you first
select the field from the parent table for which you want to map the user-defined key. In this example, you
select UserChar2 from the Fields drop-down list.
288 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
5. Click the UD Key Fields drop-down list to select the key from the UD table you want to map to UserChar1.
In this example, you select Key1. You can map up to four keys for each user-defined table.
6. Click Add.
7. The map relationship displays. Repeat steps 4-6 to add more keys from the user-defined table. In this example,
you mapped UserChar3 to Key2.
8. Click Finish.
The code required to link the user-defined table and its keys to the customization generates. You can display
and modify this code by using the Script Editor.
10.0.700 289
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
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:
You begin by launching the User Defined Table As Child Wizard. Use this tool to add a user defined table to your
customization.
1. Click the Data Views drop-down list to select the native DataView to use as the parent view. In this example,
you select OrderHed.
2. Click the UD Adapters drop-down list and select the user-defined table. In this example, you select
UD01Adapter.
3. Click Next.
4. On this window, you link, or map, fields from the parent data view to a key field on the user-defined table.
Click the Fields drop-down list and select CustomerCustID.
5. Now use the UD Key Fields drop-down list and select the key field from the user-defined table. In this
example, you select Key1.
290 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
8. Click Finish.
9. Close the wizard and the Customization Code Wizard dialog boxes.
11. To finish linking the user-defined table to the customized form, close and relaunch the customization. This
refreshes the customization to include the user defined table.
10.0.700 291
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
1. After you relaunch the customized program, launch the Customization Tools Dialog.
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.
292 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
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.
10.0.700 293
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
14. The Control Event Code field displays the event code you are adding to the customization.
17. Launch your customization again in Run Mode. When you click the New menu, notice a New UD01 option
is available.
As you use the wizards, create controls, and modify control properties, the customization tools automatically
create the .xml code that runs each customization. The Custom XML Editor is a tool that then displays the XML
code created for your customization.
Use the sheets on this troubleshooting tool to correct any .xml issues that occur within your customization. You
can both review the current code and also update controls or properties within the code.
294 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
XML View
The first sheet on this window displays a customization's code layers in .xml.
2. The Custom XML Editor Dialog displays. Notice the tabs on this window.
3. All layers of this code display within the XML View sheet. This sheet displays a read-only view of the .xml
code. Use this view to get a complete look at the .xml code used within the current form.
10.0.700 295
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
Custom Controls
1. To edit the .xml created for the customized controls on the form, click the Custom Controls tab.
2. All the controls on the current form and their .xml attributes display within the Custom Controls Grid
View.
3. Each control is on a separate row. The FormsID column displays the form that contains the control.
4. The ControlName column indicates the name assigned to the specific control. It is the same name that
displays on the Tree View within the Customization Tools Dialog.
5. The Key column displays the .xml identifier used for the control. Notice these identifiers are a combination
of letters, numbers, and dashes.
6. The ParentControlKey column displays the identifier for the item onto which the custom control is placed.
This can be another custom control (for example, a label that is linked to a text field), or the control identifier
for a sheet.
7. The ControlType column defines what kind of control is listed within each row. For example, a grid control
type is defined as Epicor.Mfg.UI.Framework.EpiUltraGrid.
296 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
Custom Properties
1. To edit the .xml created for the properties used for customized controls, click the Custom Properties tab.
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.0.700 297
Chapter 4 | Advanced Customization Epicor ICE 3.0 Customization User Guide
Debug Customizations
If you have Microsoft Visual Studio ® 2010 for later installed on the computer where you make customizations,
you can debug (step through code as it executes) your customization code. Debugging helps you test whether
your code works correctly and resolve errors.
1. Launch a customized program in Developer Mode. The Select Customization window displays.
4. Click OK.
298 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
® ®
5. Microsoft Visual Studio opens and finds a break point automatically set in the InitializeGlobalVariables
method. This break point gives you access to the debugger.
10.0.700 299
Chapter 4 | Advanced Customization Epicor ICE 3.0 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.
300 10.0.700
Epicor ICE 3.0 Customization User Guide Advanced Customization | Chapter 4
10. Select a point in the custom code from which you want to start the debug process. For example you could
set a break point that starts from the public void InitializeCustomCode() line.
11. The break point you set is now active. To move line by line, from the Debug menu, select Step Over.
Continue to step through the code for your customization. By leveraging Visual Studio, you can quickly identify
and correct errors in your customization.
10.0.700 301
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
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
The Database Viewing Tools are a series of programs that can help you locate database information you need.
They can also reduce programming issues by making sure you reference the correct fields within the database
tables within your customizations.
These tools are the Data Dictionary Viewer, the Data Relationships Tracker, and the Tracing Log. The rest of this
section explains how you use these tools.
302 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
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.
4. The Index Name displays the name used by the database to access a specific field. Each field displays using
its database schema name. In this example, ABCldx displays.
5. Fields displays the complete database location of the field. This column shows you the name of the field
and the sheet on which it displays. In this example, CompanyABCCode displays.
10.0.700 303
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
6. The Display Format section contains options that change how the information displays on the Tree View.
Available options:
• Schema – Select this option to display the table fields in schematic order on the Tree View. This defines
the order of precedence in which the fields are evaluated by the application. For example, Company,
Resource Group, and Alternate Resource Group.
• Alphabetic – Select this option to display the table fields in alphabetic order on the Tree View. For
example, Alternate Resource Group, Company, and Resource Group.
1. In the Tree View, select a field. In this example, you select the PcntTolerance field.
3. The Field Name displays the selected field. If you need, you can use the Navigation toolbar to display a
different field.
4. The Format field defines the layout for the characters within the field. This value displays in either schema
or alphanumeric format. For example: X(8), >9.99
5. If this field is a Decimal type (see the Type field description below), the Decimals field displays how many
decimal positions are available within the field. In this example, ‘2’ displays, indicating you can enter two
decimal positions in this field.
6. The Extent field indicates how many items you can store within this field for each record. If this value is
higher than one, it indicates that multiple values can appear within this field. For example, if 5 displays here,
it means the field can display up to five items.
7. The Type field defines the selected field’s main data definition. The type defines the data that appears within
the field. For example: Character, Decimal, Boolean (True or False).
304 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
8. The Initial Value field defines the beginning value, if any, that automatically displays within this field. It
indicates the default value that appears each time a user views this field.
9. If this field displays on a grid, the Column Label field indicates the text that appears at the top of the grid
column, for example: Count Freq.
10. The Label field displays the title that appears above the field on a sheet, for example, Percent Tolerance.
11. The Mandatory check box indicates the current field is required. To finish a record within this table, users
must either enter data or select an option within this field.
12. The Description field displays the concise explanation for the field. This text explains the field’s purpose
and other useful information.
13. The Display Format section contains options that change how the selected field’s information displays on
the Fields sheet. Available options:
• Schema – When selected, this option displays the field’s schematic values. These values define how the
database views and evaluates this field’s data.
• Alphabetic – When selected, this option displays the field’s alphanumeric values. Use these values to
help you understand how the field’s data displays on the interface.
1. To print the Data Dictionary Field Report, from the Actions menu, select Print Field Definitions.
2. Select the Relation Types you want; this defines the sequence through which fields are listed on the report.
Available options:
• Order – The fields display in the schematic order defined for the selected tables.
10.0.700 305
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
• Name – The fields for each table display in alphabetical order by name.
3. Select the Print Table of Contents check box to indicate you want a table of contents printed with the
report. The table of contents is placed at the end of the report; it includes a File Name/Page cross-reference
and a file description for each table.
4. Click the Filter sheet to limit how many tables and their accompanying fields display on the field report. In
this example, only some tables are selected.
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.
Field Help
Use the Field Help feature to display the technical details on a specific field within a program (form). With the
Field Help window displayed, you can immediately see the technical details on each field. When you click the
mouse pointer inside a field, the Field Help window displays the field details from the Data Dictionary.
To activate field help within each program:
1. Navigate and launch the program which contains fields you want to use in a BAQ. For this example, you
launch Ship Via Maintenance: Sales Management > Order Management > Setup > Ship Via .
306 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
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).
10.0.700 307
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
6. The Field Help window now displays the technical details on each selected field. For this example, the SCAC
field is selected on the Detail sheet, and so the technical details for this field display within the Field Help
window.
8. The EpiBinding field displays the database relationship you use if you want to link to this field through a
customization or a code reference.
9. The DB Field value contains the information you most likely need for your BAQ. It displays the table name
and the column name for the selected field. Typically this value is identical to the EpiBinding value.
10. The Format field defines the layout for the characters within the field. This value displays in either schema
or alphanumeric format. For example: X(30)
11. If this field is a Decimal type, the Decimals field displays how many decimal positions available within the
field.
12. The Data Type field defines the selected field’s main data definition. The type defines the data that appears
within the field. For example: Character, Decimal, Boolean (True or False).
13. If this field displays on a grid, the Column Label field indicates the text that appears at the top of the grid
column.
14. The Description field displays the concise explanation for the field. This text explains the field’s purpose
and other useful information.
15. Continue to click in other fields to display the technical details for each field on the form. When you finish,
click Close on the Field Help toolbar.
308 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
Tracing Log
Use the Tracing Log tool to set up a tracing log that captures all the calls the user interface makes to the server.
When you activate this log, any business logic (BL) calls sent to the server are automatically recorded within this
log.
Run this log to fine-tune your custom programs. You can use it to find out which business logic method calls are
made. You can also find out the duration of these business calls. Lastly, you can also see the data sent to and
from the server.
To make this log easier to review, you can organize it by entering Mark Text; all calls that reference this mark
text are then grouped together. You then have the option to display this log either as a text (.txt) file or as an
.xml file.
10.0.700 309
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. Use the Tracing Options Form window to define how the Tracing Log captures the BL calls.
2. Select the Enable Trace Logging check box to activate the Tracing Log. All calls made by the user interface
to the server are automatically recorded within the tracing log.
3. Select the Write Full DataSet check box if you want to record all data within the tracing log. If this option
is not selected, only header information is stored within the log.
4. Select the Track Changes Only check box if you only want changes to the dataset recorded within the
tracing log. All changes to columns in the dataset are then stored within the log.
5. Use the Write Call Context Dataset check box to include Business Process Management (BPM) table values
on the trace log. This information provides the data context for a call each time a call is sent between the
client and the server. This information is useful for developing BPM method directives, as you can intercept
these calls to run additional processing to verify data and other custom functions. For more information
about Business Process Management, review the Epicor ICE Tools User Guide.
310 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
6. Numerous method calls occur where the data is passed down, modified, not written to the database, and
then returned to the client. Select the Write Response Data option to include these database transactions
on the trace log.
7. The Current Log File displays the directory path and filename of the tracing log.
8. Click the View button to display the log within a .txt format.
9. Enter Mark Text to organize the tracing log so it is easier to review. To use this field, enter the text you
need and then click the Write button. All the calls that reference this mark text are grouped together within
the same section of the tracing log, for example, ABC Code Lookup.
10. The XML File field displays the directory path and filename used for the .xml version of the tracing log.
Click the Browse button to find and select this directory path and filename.
11. Click the Create XML button to save the tracing log within the default .xml format. This file can then be
viewed within any web browser. The Mark Text values you enter for this log also appear as options on the
.xml file.
12. To remove all entries from the tracing log, click the Clear Log button.
13. To add all these current settings to the tracing log, click the Apply button.
The Global Customization Tools are a series of programs you use to make uniform custom changes to the
application. You can create custom context menus and place them wherever you need using Context Menu
Maintenance. Use Extended Properties Maintenance to globally define properties for specific fields throughout
the database. Run User Defined Codes Maintenance to create unique drop-down lists you can then place within
existing or custom fields.
10.0.700 311
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
Menu Path: System Setup > System Maintenance > Context Menu Maintenance
1. Select the Customization Mode check box. This causes the maintenance program to create customized
context menus instead of personalized context menus.
2. Click the Context Menu ID button to find and select the context menu you want to update. In this example,
the Customer ID context menu is selected.
3. If you are creating a new context menu, enter the identifier in the Context Menu ID field. This identifier
must be in the Table.Column format; this assigns the correct LIKE value to the new context menu. In this
example, the Customer.CustID identifier displays.
If a context menu identifier does not follow the Table.Column format, an error message displays during
run time and the context menu does not display.
4. The Current Status field displays the type of context menu that currently displays. Available options:
• Base – A context menu installed with the application.
312 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
• Customization – A context menu you have customized through this program. A customized version of
a context menu automatically displays before a base version of the same menu.
• Personalization – A context menu you have personalized through this program. Unless you select the
Customization Mode check box, all your changes to context menus are personalizations. A personalized
version of a context menu automatically displays before either a customized or base version of the same
menu.
5. You want to add Customer Group Maintenance to this context menu. This program is a Base Form that
appears on the default Main Menu. To do this, click the Down Arrow next to the New button. Select New
Context Menu Item.
6. Enter a Menu Item Name for the new context menu command.
7. The Process Type list defines what type of program appears when this context menu command is selected.
Available options:
• Base Form - An Entry, Maintenance, or other primary program.
• Search Form - A Search program.
8. Because you select Base Form as the Process Type, the Base Form sheet is active.
9. Click the Process ID button to find and select the Entry, Maintenance, or another program. For this example,
you select Customer Group Maintenance. Notice its ID, CRMT3010, displays in this field.
10. Click Save on the Standard toolbar. The context menu is updated.
10.0.700 313
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. For this example, you launch Customer Maintenance because the context menu for the Customer ID is now
updated with the new command.
314 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
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.
3. Enter a Context Menu ID for your new context menu. In this example, enter SalesRep.SalesRepCode.
4. Notice the Current Status is Customize. This means you can link this context menu to fields on forms
throughout the application.
5. Repeat the steps you followed in the previous section for adding a new command to a context menu. Click
the Down Arrow next to the New button New Context Menu Item.
6. Enter the Menu Item Name . In this example, you enter Salesperson Pipeline. Click the Process Type
drop-down list and select Process Type.
7. Click the Process ID button to find and select the Salesperson Pipeline program.
10.0.700 315
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
9. Click Save.
10. Continue to add any other base processes to the context menu. In this example, the Salesperson Quota
and Salesperson Workbench are added to the context menu; they also display in the Tree View.
11. You also want to give the user a way to find and select a salesperson record from this context menu. To do
this, you add a search form to it. Once again, click the Down Arrow next to the New button and select
New Context Menu Item.
12. Enter the Menu Item Name for this search program. In this example, you enter Workforce Search.
13. Click the Process Type drop-down list to select, the Base Search option. This indicates that the menu item
launches a search program.
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.
You can now link your new context menu to a text box.
316 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
1. Create a new TextBox field and Label. In this example, you create the Salesperson text box and label.
3. Within the Properties sheet, link the text box to the label using the EpiLabel property. In this example,
you link to EpiLabelC3.
4. Select the EpiBinding property and bind this text box to an open field within the dataView; you can then
populate this field with data from the context menu. You select OrderHed.Character01 to bind this text box
to the dataView.
5. Select the EpiContextMenuKey property, and enter the name of your new context menu within this field.
In this example, you enter SalesRep.SalesRepCode.
7. Exit Customization Mode and Sales Order Entry. Launch Sales Order Entry again.
10.0.700 317
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
8. When you right-click the text box, your new context menu displays.
Custom Fields
You can add custom fields to an interface so users can enter unique data.
In previous Epicor versions, each table included a series of user-defined fields such as Character01, Date03,
Number02, and so on. While these additional columns satisfied most customization needs, some users ran out
of available columns. Then during an upgrade these user-defined fields would be overwritten, so users would
need to export customizations and, after the upgrade was complete, import them back into their environments.
This process sometimes required users to additionally update the tables/columns to make the customization
compatible with the new version.
To address these issues, the Epicor application now incorporates this functionality as a database extension. If you
are building a customization that needs unique fields, you create extended user-defined tables and add columns
to these tables. You control what column data types are included in the extended user-defined table. Then when
you add a custom text box, radio button, check box, and so on, you bind this element to the specific column in
the extended user-defined table. Since these tables are extensions from parent tables, they are not overwritten
during an upgrade, making your customizations much easier to maintain.
You create extended user-defined fields through a two-part process. You first create the extended user-defined
tables and columns within the Epicor application. You then use the Epicor Administration Console to regenerate
the data model. This process refreshes the database, making the extended user-defined fields visible, so you can
318 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
add them to your customization. You can then bind new elements (fields, check boxes, radio buttons) to the
columns in this extended user-defined table.
You begin by adding the extended user-defined table to an existing table you need to customize.
10.0.700 319
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
3. The Table Search window displays. Click Search and find/select the table for the program you wish to
customize. For example, if you are customizing ABC Code Maintenance, find and select the ABCCode table.
To make it easier to find the table you need, enter a value in the Starting At field.
4. Click OK.
You return to Extended User Defined Table Maintenance.
5. Notice the Table Name field automatically displays the name of the database table you selected, adding a
“_UD” suffix to the end of this table name.
This suffix only displays when you access the user defined
table through this program. On customizations this table
extension is integrated directly with the primary table and
the "_UD" suffix does not display.
6. Enter a Description that describes the purpose for this extended user-defined table. You could enter
information that describes which customization uses this extended table, the columns this table includes,
or other information.
7. The System Code field identifies which Epicor application contains the extended user-defined table. Typically
ERP appears in this field.
320 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
8. Click Save.
You now add the custom columns you want on this user-defined table. You can then bind custom fields, check
boxes, and other interface controls to these custom columns.
1. Click the Down Arrow next to the New button; select New Column.
2. Enter the Column name that you want to use in the database. Notice the program automatically adds a
"_c" suffix to the Column name value. This will help you find the column later after the custom column is
integrated with the primary table.
3. You can enter Like values to create foreign key views with other customizations. Enter the System Code
and the Table name for the foreign key view in these fields.
4. You also need to specify which Like column the current column will link to through the foreign key view.
Enter the specific column in this field.
5. Next enter a Description that defines the purpose for the custom column.
6. Click on the Data type drop-down list to indicate what kind of data this column will contain. Available
options:
• Boolean (True/False) - Use Y/N to indicate this field holds a True or False value.
• Date - Use 99/99/99 to indicate this field contains a date value.
• DateTime - Defines a format for a field that contains a date/time value.
• Decimal - Use the 9 value by the number of digits, including decimals, you want available in this field.
You can also suppress the zero by using the > symbol, and you can allow negative values by using the
– symbol. The maximum value you can enter in this field is: ->>>,>>>,>>9.99999
• Integer - Use the 9 value to indicate the number of digits, excluding decimals, you want available in this
field. The maximum value you can enter in this field is: ->,>>>,>>9
• String - Use the x value followed by how many characters you want available in the field. For example,
x(10) indicates that ten characters are available; x(50) indicates that 50 characters are available.
10.0.700 321
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
7. If you select the Decimal data type, the Decimals field activates. Enter how many decimal places this custom
column will have available.
8. After you select a Data Type, the default Format for this data type displays. You can accept this format or
modify this value so the custom column contains the data length you need.
Be sure to keep the length of custom columns as short as possible. Custom columns that have long data
lengths can reduce performance.
9. Now enter the Label for the custom column. When this table is included on a grid, this label value displays
in the column header.
10. If you need this column to display a default value, enter this default in the Initial value field. When this
column first displays, this default value automatically populates any elements (fields, check boxes, and so
on) linked to this column.
11. If this column needs a value before the record can be saved, select the Required check box.
Synchronize Table
To complete this user-defined table, you synchronize it. This formats the table so it can be linked to the database
and used while you develop your customization. Note this process does not make the table available for display
for other users; you need to update the data model to finish incorporating this user-defined table in your database.
1. Click on the Actions menu. To synchronize the active table, select the Sync Current Table to DB option.
2. To synchronize all the tables loaded into Extended User Defined Table Maintenance, select the Sync
all tables to DB option.
3. After you receive a message that the process has completed, exit User-Defined Table Maintenance.
322 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
You are ready to regenerate the data model to include this new table; this integrates the extended user defined
table with the database.
To finish adding the extended user-defined columns, you must regenerate the data model for the specific database.
You do this task on the server that contains your database.
2. Expand the Database Server Management node and the database server node that contains the database
you need to update. Select the database icon.
4. From the Actions pane, click the Regenerate Data Model button.
6. Verify the Deployment folder field displays the root path location for the server.
7. Click Generate.
10.0.700 323
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
8. Now to complete this process, pull the latest data model from the database and copy it to the local application
server by restarting IIS. Restarting IIS is a mandatory task after the data model is successfully regenerated.
To do this, launch the Command Prompt window.
10. After IIS stops and restarts, close the Command Prompt window.
The data model generates, adding the extended user-defined table to the database. You can now bind controls
on your customization to these fields. Epicor users can also view and enter data in the extended user-defined
table.
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
324 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
1. Click the DataSetTable ID button to find and select the dataset you need.
2. The rest of the fields on this sheet only display for your information; you cannot edit these fields. The
Database Table field displays the name of the table.
3. The Table Type field defines the purpose of the table. In this example, the APInvHed (Accounts Payable
Invoice Header) table is a database type.
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.
10.0.700 325
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. Use the Tree View to navigate to the field you want to update, and then navigate to the Fields > Detail
sheet. You use this sheet to modify the extended properties.
2. The Field Name displays the name of the selected field within the table.
3. The Data Type field defines the kind of data that displays in this field. For example, Character, Date, Numeric,
and so on. If the field is a column for a custom field, like Character01, Number01, Date01, and so on, the
Description field is active. You can enter the text you want for this custom field.
4. When you select a custom string field like ShortChar03 or a custom numeric field like Number02, you can
define the Business Type for the data it contains. This value indicates the data that displays in the custom
field. When you place this field on your customization, the field only displays the kind of data defined for
the business type. Available options:
• String field – The Unit of Measure business type is available. Select this option to indicate the custom
field holds a unit of measure code value. When you then define a numeric field with the Quantity business
type, you can then select this unit of measure field from the UOM Column drop-down list.
• Numeric field – You can select either the Quantity or Currency business type. Selecting the Quantity
type indicates a quantity value, like a stock quantity or a selling quantity, populates this custom field.
You can then select the unit of measure field linked to this quantity field within the UOM column field.
If you select the Currency business type, however, the Currency Type, Currency Source, and Currency
Code fields become available. Use these fields to define how the currency values are calculated within
this field.
5. Use the Like and Like Field properties to select a specific field from one table to link to the current field.
This field then displays the context menu from the linked table/field. To do this, click the Like button to find
and select the table you need. Then use the Like Field drop-down menu to select the specific field. During
Run Mode, the context menu for the table/field now displays.
6. If you want users to always enter data in this field before they can save the record, select the Required
check box.
326 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
7. If you do not want users to enter or modify data within this field, select the Read Only check box.
8. Use the Zone BAQ drop-down list to select a business activity query to use as a Business Activity Query
(BAQ) zone. A BAQ zone is an embedded query that links to a specific field on a program interface. When
you activate a BAQ zone, it displays as a tool tip window that populates with data the business activity query
generates.
9. To change the data that can display in this field, enter a value within the Format field. Use this value, for
example, to lengthen or shorten the characters or decimals available within the field. Available formats:
• Character String – Use the x value, followed by how many characters you want available in the field.
For example, x(10) indicates that 10 characters are available; x(50) indicates that 50 characters are
available.
• Boolean – Use Y/N to indicate this field holds a True or False value.
• Date – Use 99/99/99 to indicate this field contains a date value.
• Numeric – Use the 9 value by the number of digits, including decimals, you want available in this field.
You can also suppress the zero by using the > symbol, and you can allow negative values by using the
– symbol. The maximum value you can enter in this field is: ->>>,>>>,>>9.99999
10. Use the Label field to enter a different column title for the field. When this column title displays in a grid,
this label value displays.
11. Use the Linked Column drop-down list to select a column that moves with the current field (column) when
it is repositioned on a grid. For example, if the current field is a quantity field and you want its corresponding
unit of measure field to move with it, select the UOM field from this list. Now when a user clicks, drags,
and drops the numeric quantity field to a new location on a grid, the selected UOM field is automatically
dragged with it.
12. If you select a custom numeric field (like Number01) and indicate it holds a Quantity business type, the UOM
column list becomes available. Use this drop-down list to define the unit of measure field that displays with
this quantity field. When you place these fields on your customization, they automatically display quantity
and unit of measure values.
13. The UD Code Type drop-down list indicates a list of user-defined codes display within this field. You create
user-defined codes within User Defined Code Maintenance; this program is explored later in this chapter.
If you want to display a user-defined code list through this field, select the code you need from this list.
14. If you want the BAQ zone to activate when the selected field does not contain a value, select the Zone
Search On Empty check box. For more information on how to create and link BAQ zones, review the BAQ
Zones section later in this chapter.C
15. The Default Format, Default Label, Default Init Value, Like Table, and Like Field all display the default
values for the selected field. This information displays for your reference.
16. If you select a custom numeric field (like Number03) and indicate it holds a Currency business type, the
currency fields become available. Use the Currency Type drop-down list to define what values can display
in this currency field. Available options:
• General - This currency field displays values such as extended prices, tax amounts, and any amounts
posted through inventory, general ledger, assets, and banks.
10.0.700 327
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
• Unit Cost – This currency field only displays unit cost amounts.
• Unit Price – This currency field only displays unit price amounts.
17. Use the Currency Source field to define the currency used to calculate the value that displays in the custom
numeric field. The currency sources defined for the company are then calculated against this field to display
the amount in the correct currency source. Available sources:
• Document – An additional currency which the company uses.
• Global Currency – A currency used by all the companies within the organization.
• Own/Base – The primary currency used by the company. This currency is used to post transaction
amounts to the general ledger.
• Reportable Currency 1 – A currency the company uses to calculate amounts for international transactions.
• Reportable Currency 2 – A second currency the company uses to calculate amounts for international
transactions.
• Reportable Currency 3 – A third currency the company uses to calculate amounts for international
transactions.
For example, if a company uses the Japanese Yen for its base currency and you select the Own/Base
option, the selected numeric field displays its values using the Japanese Yen.
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.
328 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
2. Enter the Code Type ID you need. For this example, you enter User.
4. If your code type requires additional explanation, enter the text you need within the Long Description
field.
5. Optionally, select the Auto Sequence check box to cause the program to automatically generate code IDs
for each code you add to the code type. If you do not select this check box, you can enter each code ID
manually.
6. The Next Sequence ID displays the next code identifier available for the code type. If you select the Auto
Sequence check box, this field displays the next available number. In this example, three codes are created
for this code type, so a 4 value displays in this field.
7. The Created By field displays the ID of the user who created the code type.
8. The Created field displays the date on which the code was created.
10.0.700 329
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. Click the Down Arrow next to the New button; select New UD Code.
2. The Code field displays the identifier for the new code. If you selected the Auto Sequence check box on
the Detail sheet, this value is generated automatically. If you clear this check box, you must manually enter
the Code value.
3. Enter the Description for the code. This value is the text that displays on the list during Run Mode.
4. Optionally, enter an extended explanation for the code in the Long Description field.
5. The Created By and Created fields automatically display the user who created the code and the date on
which it was created.
6. The Active check box is selected by default; it indicates this code displays on any drop-down list linked to
this code type. If you no longer want this code to display, clear this check box.
7. Continue to add the codes you need. When you finish, click Save.
330 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
1. Use the Detail sheet to find and select the table you need. For this example, the ABCCode_UD table is
selected.
2. Navigate through the Tree View to find and select the field you want to contain the user-defined codes.
In this example, you select the EnteredBy_c field.
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.
Now when you create a customization that uses the APInvDtl table, you can incorporate this user-defined code
type. To do this, add an EpiCombo control to the form and bind it to the Character06 field. When you switch
the customization to Run Mode, the codes you created for the code type display on the drop-down list.
You can continue to add codes to the user-defined code type within User Defined Code Maintenance. The code
type then updates and displays these new codes during Run Mode.
Resource Editor
You use the Resource Editor to add, edit, and delete the images that display within your customized program or
dashboard. Use this tool to create a custom resource file that automatically loads each time you launch your
application. You can then access these images within the application.
While you are in Developer Mode for either a customized program or a dashboard, you can select these images.
Place these images on customizations by using the Picture Box tool, the Image Column Wizard, or the Image
Column Row Rule Wizard. When you add a new grid to a dashboard, use the Image Column Tab to display your
custom images on the custom grid.
10.0.700 331
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
The Resource Editor is not available directly within the Epicor application. Instead, you need to navigate to the
Utilities > EpiResourceEditor folder. The Utilities folder installs on the same level as your Client and Server folders,
directly below the main Epicor application folder.
2. You cannot save a resource file until you add an image to it. To do this, click the Add Image (the green
plus sign) button.
3. The Choose Image for New Resource window displays. Find and select the image you want to add to
the image file.
4. Click Open.
332 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
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.
Your custom resource file is created. The images contained within this file can now be used on your custom
programs and custom dashboards.
10.0.700 333
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
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.
8. When you finish adding the images you need, click Save.
334 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
You can now access these images for display within customizations and dashboards. You can also use the Picture
Box tool (described in Basic Customization) to place a custom image directly on to a form. Review the Image
Column Wizard section within Advanced Customization to learn how to add an image to a column. Review the
Dashboards chapter within the Epicor ICE Tools User Guide to learn how to place images within a custom
dashboard.
BAQ Zones
A business activity query (BAQ) zone is an embedded query you can link to a specific field on a program interface.
When you activate a BAQ zone, it displays as a linked tool tip window. The data that populates this window
depends on both the business activity query and the current value, if any, within the linked field.
You create and modify business activity queries within the Business Activity Query Designer. Use this custom
query tool to select and join tables. You then define what columns from the selected tables display in the results.
Through this functionality, you can also create calculated fields that run an expression against the query results
to return values you need. These custom queries display the resulting data; you can then embed these queries
throughout the Epicor application in dashboards, reports, searches, and BAQ zones.
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.
10.0.700 335
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. Define the main parameters for each query on the General sheet.
2. The Query Builder > Phrase Build sheet is the primary sheet you use to build a new query.
336 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
3. Select what items display on your query on the Query Builder > Display Fields > Column Select sheet.
You also create calculated fields on this sheet.
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
1. Use the Detail sheet to find and select the table that contains the field you want to link to the BAQ zone.
10.0.700 337
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
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.
338 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
10.0.700 339
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
6. The Extended Property Wizard displays. Use the DataView list to select the table that contains the field
you want to link to the BAQ zone.
7. Click the DataField drop-down list to select the field you need.
8. Click the Extended Property drop-down list to search for and select the ZoneBAQ option.
9. Indicate the business activity query you want by selecting an option from the Value list.
10. If you want the BAQ zone to activate when the selected field does not contain a value, select the Zone
Search On Empty Control check box.
340 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
1. The selected field you linked to a BAQ zone now has a zone indicator that displays next to it.
2. Hover your mouse over the zone indicator; the BAQ zone launches. If you indicated this field does not need
a value, the BAQ zone automatically populates with data.
10.0.700 341
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
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.
4. Select the Shared check box. You can then see this query in the BAQ zone lists.
342 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
8. Navigate to the Query Builder > Display Fields > Column Select sheet.
10.0.700 343
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
9. Use the Available Columns list to find and select the columns you want to display in the BAQ zone.
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.
344 10.0.700
Epicor ICE 3.0 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.
10.0.700 345
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. Notice the Customer ID field now displays a zone indicator next to its field.
2. You can change the color used to display the zone indicator. To do this, from the Tools menu, select
Options.
4. Select the Zone Indicator check box. This indicates you want zone indicators to display in the current
program. If you clear this check box, the zone indicators do not display in the current program.
5. Click the drop-down list to select the color you want to use for the zone indicator.
6. Click OK.
346 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
10.0.700 347
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. Hover your mouse over the zone indicator. The BAQ zone first retrieves all the Customer ID fields, so you
can use the BAQ zone as a search program.
2. Select the customer record you want from the BAQ zone.
348 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
4. Now when you hover your mouse over the zone indicator, the customer’s website displays within the BAQ
zone window.
10.0.700 349
Chapter 5 | Customization Utilities Epicor ICE 3.0 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 EPIC03-PartImage.
4. Select the Shared check box. You can then see this query in the BAQ zone lists.
350 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
8. Navigate to the Query Builder > Display Fields > Column Select sheet.
9. Use the Available Columns list to search for and select the columns you want to display in the BAQ zone.
For this example, you select the Part.PartNum (part identifiers) field.
10. In order to display the part graphic files, you need to create a calculated field. Click the Calculate button.
11. The Calculated field editor window displays. Click New button on the Standard toolbar.
12. Enter the Field Name you want for this calculated field. For this example, you enter PartImage.
10.0.700 351
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
13. You need this field to handle the image filenames. In the Data Type field, select nvchar.
14. In the Format field, enter x(80). This calculated field can contain values up to 80 characters in length.
15. Enter the Label you need. For this example, you enter PartImage.
16. You store the image files on your local hard drive. Each of these .bmp files use the Part Number value for
their filenames. You need to create an expression that first goes out to this directory path and then calculates
the current Part Number value. You enter the following expression in the Editor pane:
“C:\DL\zone\[LIKE:Part.PartNum].bmp”
For this expression, the LIKE Lookup Token is used to determine the name of the .bmp graphic file. This
means the current value in the Part.PartNum field is used to determine the value that will populate in the
calculated field. If the expression finds an image filename that matches this value, the BAQ zone displays
this graphic file.
19. Navigate to the Query Builder > Display Fields > Column Select sheet. Notice your calculated field
displays in the Display Column(s) list.
352 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
2. Navigate to Sales Management > Order Management > Setup > Part. The Select Customization window
displays.
4. Click OK.
10.0.700 353
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
6. The Customization Tools Dialog displays. From the Tools menu, select Wizards > Customization
Wizards.
7. The Customization Code Wizard Dialog displays. Select the Modify Extended Properties wizard.
354 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
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.
13. Define the business activity query that will link to this field. For this example, from the Value list, select the
EPIC03-PartImage query.
16. You return to the Customization Tools Dialog. The customization is complete, so click Save.
10.0.700 355
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
17. The Customization Save Dialog displays. Enter a Name for the customization. For this example, you enter
BAQZone.
356 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
3. Click OK.
10.0.700 357
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
9. Click the Launch Info Zone with drop-down list, select a hot key combination.
In this example, you indicate that the BAQ zone will activate when users press the Ctrl keyboard combination.
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.
3. The corresponding image from your graphic library displays in the BAQ zone.
During this scenario, you will create a customization for Sales Order Entry. This customization contains a BAQ
zone that links to a customer’s purchase order number field. Depending on the customer selected on the sales
order header, a different part image displays within the BAQ zone that links to the PO Number field.
Before you create this BAQ zone, you need a graphic file library that contains separate folders for each customer.
Then each customer folder needs to contain a different set of graphic files; each of these files must use the part
number in their filenames, for example, 38FW.bmp.
358 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
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.
4. Select the Shared check box. You can then see this query in the BAQ zone lists.
10.0.700 359
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
5. Navigate to the Query Builder > Phrase Build sheet. In the Filtering pane, select the Erp.Customer table.
8. Use the Available Columns list to search for and select the columns you want to display in the BAQ zone.
For this example, you select the Customer.CustID (customer identifiers) field.
9. In order to display the part graphic files, you need to create a calculated field that evaluates an expression
against the Customer ID values. Click the Calculate button.
360 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
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.
10.0.700 361
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
19. Navigate to the Query Builder > Display Fields > Column Select sheet. Notice your calculated field
displays in the Display Column(s) list.
To complete the query, you need to define a criteria that filters the results based on the customer identifier.
1. Navigate to the Query Builder > Phrase Build > Table Criteria sheet.
362 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
3. Select the Field Name you want to use for the criteria filter. From this list, select the CustID field.
5. From the Filter Value list, select the specified constant filter.
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.0.700 363
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
2. Navigate to Sales Management > Order Management > Setup > Order Entry. The Select
Customization window displays.
4. Click OK.
364 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
5. Now create the customization. From the Tools menu, select Customization.
6. The Customization Tools Dialog displays. From the Tools menu, select Wizards > Customization
Wizards.
10.0.700 365
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
7. The Customization Code Wizard Dialog displays. Select the Modify Extended Properties wizard.
9. The Extended Property Wizard displays. From the DataView list, select the OrderHed table.
10. Now select the specific DataField to which you want to link the BAQ zone. For this example, you select the
PONum field.
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.
366 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
15. You return to the Customization Tools Dialog. The customization is complete, so click Save.
17. Enter a Name for the customization. For this example, you enter CustPart_BAQZone.
20. Exit the Customization Tools dialog and Sales Order Entry.
10.0.700 367
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
3. Click OK.
368 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
7. Select one of the detail lines on the sales order. In this example, the second detail line is selected. This detail
line is for part 4600-1.
8. Activate the BAQ zone by the PO field; notice the image that displays for this part.
10.0.700 369
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
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.
370 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
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.
The next time your users log into the application, the No Counter Sale customization displays when users launch
Sales Order Entry.
10.0.700 371
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
2. Use the Company drop-down list to indicate whether this new menu item just displays on the current
company menu or on all menus in the Epicor application. Through this functionality, you can define a default
version of the menu item used throughout all companies, but also create company specific menu items. In
this example, the custom Sales Order Entry program will only display in the EPIC03 company.
3. Enter a Menu ID for the custom program. Because it is a user-defined menu item, begin the identifier with
UD and then follow this with the rest of the identifier. In this example, the Menu ID is UDOENOC.
4. The Module field displays the module inside which this program is contained. This value is used to help
organize programs on the Main Menu; it displays on various tables. Because you are adding a custom
program, the UD value displays – indicating this program is a user-defined function.
5. Enter a Name for the menu item. This label displays on the Main Menu.
6. Select a Security ID for the menu item. This defines the security parameters used against this custom
program.
7. The Parent Menu ID defines the folder below which this custom program displays. In this example, you
want the custom program to appear below the Order Management and General Operations folders, so you
enter OMMN3000. Each folder within the Main Menu interface has its own Parent Menu ID.
372 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
8. The Order Sequence field defines the position where the icon for the custom program appears under the
Parent Menu. Low numbers (10, 20, 30) position the custom program near the top of the Parent Menu,
while higher numbers (100, 110) position the custom program near the bottom of the Parent Menu.
9. Verify the Enabled check box is selected. This indicates this menu item displays on the interface. If this check
box is clear, the menu item is hidden and users are not able to launch it.
10. The Program Type list defines what kind of program you are adding to the Main Menu.
Available options:
• BAQ Report - This item is a Business Activity Query (BAQ) report. These reports are built from custom
business activity queries and designed through the Crystal Reports application.
• Course - Educational courses can be embedded in the application in locations accessible to users from
the Main Menu. Select this option to display the Course drop-down list. Indicate the course you want
from the available options; all courses purchased by your organization display on this list. The Icon
drop-down list automatically displays the Education Course icon.
• Crystal Custom Report Link - This item is a custom Crystal Report. Select this option to activate the
Report field; use this field to find and select the customized Crystal Report you want to add to the menu.
• Dashboard-Assembly - Select this option when you are adding an updatable dashboard to the Main
Menu. Updatable dashboards are entry programs that use an updatable business activity query (BAQ).
Users can then add and modify records through this dashboard.
10.0.700 373
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
• Dashboard-Runtime - Select this option when you are adding a read-only dashboard to the Main Menu.
Read-only dashboards are view programs users leverage to search and display database records. Users
cannot add or update records through read-only dashboards.
• External Process - This item is used when you want to place an external application, such as Microsoft®
Excel®, on the Main Menu.
• Menu Item - This item is a program you want to add below a Sub Menu item (folder). After you select
this option, the Program field activates; click the search button to find and select the program you want
to launch from this node. If you want to use a customized version of this program, you can then select
an available customization from the Customization drop-down list.
• Non Menu Item - This item does not directly appear on the Main Menu. Instead, users launch this
program through either a toolbar button or an Actions menu option. You select this program type when
you customize a process program like Memo Entry and need to set up access to this customization.
• Performance Canvas Link - A performance canvas provides a visual display of selected information
from your Epicor database. If the Epicor Enterprise Performance Management (EEPM) application is
installed and active on your system, you can select performance canvases to display on the Main Menu.
• Sub Menu - This item appears directly below a menu item (parent node). These items appear as child
node folders on the menus during run-time; use them to organize programs into related groups. Users
then expand these child nodes to display and launch the items you place below the sub-menu icon.
• SSRS Custom Report Link - This item is a custom SQL Server Reporting Services (SSRS) report. Selecting
this option activates the Report field; use this field to find and select the customized SSRS report you
want to add to the menu.
• URL Link - Select this item to place a uniform resource locator (URL) link to a website as a node on a
menu. Users can then click this icon on the menu to automatically display this website within their
browsers.
11. Click the Icon drop-down list to select the icon that displays next to the custom program. In this example,
you select the Entry > icon.
12. Click the Program button to find and select the program that contains the customization you want. In this
example, you select the Erp.UI.SalesOrderEntry.dll program.
13. Notice the Customization drop-down list becomes active. All the customizations created for this program
display on this list. For this example, you select the NoCounterSalesAltAdv option.
14. If you want to prevent users from entering data in your custom program, select the Read Only check box.
This program then only displays in Read Only mode.
16. Exit Menu Maintenance and then close and restart the application.
Your custom program displays with a separate icon on the Main Menu.
You can use Menu Maintenance to duplicate a custom program node and then move this program node to a
different company. Users can then launch the custom program from this new company location.
To do this, you use the Copy to New Menu option on the Actions menu.
374 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
1. On the tree view, select the program node you want to duplicate. In this example, you select the No Counter
Sales customization for Sales Order Entry.
10.0.700 375
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
3. A duplicate Order Entry - No Counter Sales node appears on the tree view. Select the duplicate program
node.
4. Click on the Company drop-down list and select the company under which you want to place the duplicate
program node. You can also select the All option, which causes this custom program to be copied to all
companies in your Epicor application.
5. The Parent Menu ID defines the folder, or menu node, below which this custom program displays.
6. The Order Sequence field defines the position where the icon for the duplicate custom program appears
under the Parent Menu. Low numbers (10, 20, 30) position the custom program near the top of the Parent
Menu, while higher numbers (100, 110) position the duplicate custom program near the bottom of the
Parent Menu.
7. Click Save.
The next time users log into the Epicor ERP application, the duplicate program node displays on the Menu in the
different company below the menu location you specified. Users can now launch this custom program from this
new menu location.
376 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
1. Click the Sales Order button and find and select a record.
2. This activates the Memo button on the Standard toolbar. Click this button.
3. The Process Calling window displays. Notice the Process Key and Calling App values. You need these
values later. In this example, you record the Epicor.Mfg.UI.MemoEntry (Process Key) and the
Epicor.Mfg.UI.SalesOrderEntry (Calling App) values.
4. Click OK.
10.0.700 377
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
7. Click OK.
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.
378 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
10. On the Customization Tools Dialog, click Save to record your customization.
11. Exit the Customization Tools Dialog and the Memo Entry program.
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
10.0.700 379
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. To create your new sub-process menu ID, click New on the Standard toolbar.
2. Use the Company drop-down list to indicate whether this sub program is available just in the current
company menu or available in all companies. In this example, the custom Menu Entry program is only
available n the EPIC03 company.
3. Enter the Menu ID for the custom sub-process program. This ID must start with the letter UD for user-defined;
these letters appear automatically when you click the New button. For this example, you enter UDMEMO.
4. Enter the Name that you want displayed in the title bar of this sub process program.
5. Click the Security ID button to find and select the level of security for this custom program. Depending on
the security ID you select, you can prevent specific users and user groups from accessing this custom program.
Using Menu Maintenance, you create Security IDs and then assign users and security groups to specific
security IDs.
You can learn how to create new security IDs within the
Epicor ICE Tools User Guide; review the Menu Item
Security section in the Security chapter. You can also
review the Menu Maintenance topics within application
help.
6. The Parent Menu ID field defines the Main Menu identifier used with this sub-process menu ID. Because
your customization is for a common program found throughout the application, you enter PROCESS in this
field.
7. The Order Sequence field defines where this process is placed within any Tree View that displays available
processes. Enter a unique number for this sub-process; in this example, you enter 15. Low numbers (10, 20,
30) position the item towards the top of the Tree View, while higher numbers (100, 110) position the item
closer to the bottom.
380 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
8. By default, the Enabled check box is selected. This indicates users can launch this sub-process from the
program interfaces you indicate. If this check box is clear, the custom sub-process program cannot be
launched.
9. The Program Type defines the kind of program used for this menu ID. To indicate this program is a
sub-process that does not appear on the Main Menu, you select the Menu item option.
10. Click the Program button to find and select the program you have customized. In this example, you locate
the Erp.UI.MemoEntry.dll program.
11. Click the Customization list to select the customization that uses this sub-process ID. In this example, you
select the MemoCustomization (Customization) option.
10.0.700 381
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
2. Enter the Called Process Reference value. You need to enter the name of the sub-process you customized.
For this example, you enter the Epicor.Mfg.UI.MemoEntry key. This value first displays within the Process
Calling window. This window is described in the previous Create Custom Sub Process section.
3. In the Called From field, enter the program from which the customized sub-process is launched (process
call). An optional value, enter a process name if you want to limit this custom sub-process program to only
display within a single parent program. This value also displays within the Process Calling window.
You can also leave the Called From field blank; this causes all instances of the Memo Entry program to
automatically display your custom version. If you want the customized sub-process program to become the
default for your company, do not put a value in this field.
4. Click the Menu ID drop-down list to select the sub-process menu ID that this process call uses. This value
is the same identifier (ID) you created within Menu Maintenance. For this example, you select the UDMEMO
identifier.
5. Click Save.
382 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
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.
Customization Management
The Customization Management tools are programs you use to administrate the personalizations and
customizations created within your application.
Personalization Purge
You use Personalization Purge when you need to remove specific personalizations from the application. Through
this program, you first locate all the personalizations created by a specific user. You can then remove a
personalization this user no longer wants or remove all personalizations created by this specific user. You might
do this, for example, when an individual leaves your organization.
Menu Path: System Management > Purge/Cleanup Routines > Personalization Purge
10.0.700 383
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. Click the Search button to find and select the personalizations you want to remove. In this example, all the
personalizations for User: MANAGER are selected.
2. The Company field displays the name of the company record that contains the personalizations.
3. The Product ID field indicates the Epicor application used to create the personalizations.
4. The User field displays the identifier for the user who created the personalizations.
5. The Type Code indicates what kind of personalization was made to the selected item. In this example, the
change was a program Personalization. Other personalization types include MainMenuLayout,
MainMenuHistory, and GlobalOptions.
6. The Last Updated By field indicates the user who most recently updated the personalization, and the Last
Updated field displays the date on which this personalization was most recently modified.
7. The Description field contains any additional information about the personalization.
8. The Form Name field displays the application filename of the modified program. In this example,
App.POEntry.POEntryForm displays, which is the application filename for Purchase Order Entry.
9. To remove the selected personalization, from the Actions menu, select Purge Selected.
10. To remove all the personalizations displayed within this program, from the Actions menu, select Purge All.
Customization/Personalization Maintenance
Customization/Personalization Maintenance is an important tool; use it to manage all the customizations and
personalizations that exist within your application. Its primary feature is the verification functionality you run to
detect problems within any customizations/personalizations.
After you have detected issues, use Customization/Personalization Maintenance to launch to launch the tools
you need to correct them. This maintenance program is especially useful when you upgrade the application to
a new version, as it can help you make customized and personalized programs compatible with the current
version.
384 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
Customization/Personalization Maintenance can then be used to upgrade the program. When users attempt to
launch a customized or personalized program that is not compatible, an error message displays. The user then
cannot launch the program. However, if the customized or personalized program is compatible, no error message
displays no error message displays and the user can run the program as expected.
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
10.0.700 385
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. To display customizations and personalizations, click the Name button. The Customization/ Personalization
Search program displays. Use this window to find and select the customizations and personalizations you
want to review.
2. Use the Tree View to select the customization/personalization you want to work on.
3. The Description field displays the brief explanation entered by the user when the
personalization/customization was created. If you need, you can update the description in this field.
4. The Form Name field contains the .xml filename of the form customized or personalized. In this example,
the Sales Order Entry program is the base form that was customized, so App.SalesOrderEntry.SalesOrderForm
displays in this field.
5. The Parent Layer displays the code layer above this customization or personalization. This value is set and
managed by the application and displays for your information. For example, if a user personalized a
customization, the name of the customization displays in this field.
6. The Company field displays the name of the company using the customization/personalization.
7. The Product ID indicates the application that was used to create the customization/personalization – for
this example EP (Epicor) displays.
8. The Last Updated By field displays the user how most recently worked on this customized or personalized
program. You can enter a different user name in this field.
9. If you need, select or clear the Work In Progress check box. When selected, this check box indicates the
modification is not available yet in Run Mode for users. You can then keep the personalization or
customization within a test environment.
10. The Type Code field displays the type. The type can be a Personalization or a Customization.
11. The Valid For field indicates for which application version this customization/personalization runs. For
example: 9.05.200
12. The Last Updated field displays the date on which this customization or personalization was last modified.
386 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
13. The Status field indicates the current state of the selected customized or personalized program. Available
options:
• Pass – This customized or personalized program works with the current version. A program must have
the Pass status before users can launch the program in Run Mode. If it doesn’t, an error message displays
and the user cannot launch the program.
• Not Validated – This customization/personalization has not yet been evaluated by the verification tool.
• Warning – Some issues with the elements (controls or properties) on the customized/personalized
program are occurring. You can view these issues on the Warning and Errors sheets; these sheets are
described later in the Verify Customizations section.
14. The Where Used grid indicates all the places that use this customized or personalized program within the
application.
15. Click the Restore button to revert the current customized or personalized program back to its previous
version. Use this button to undo any changes you made to upgrade the customization/personalization.
The Restore button is only available if a backup version exists in the database. The application automatically
creates a backup version of a customization or personalization during an upgrade. However, if the customized
or personalized program has not been upgraded, this button is not available.
16. To record changes to the current customized or personalized program, click Save.
17. If you want to remove the selected customization/personalization, click the Delete button. This customized
or personalized program is now completely removed from the application.
Export Customizations/Personalizations
You can use Customization/Personalization Maintenance to export a selected customized or personalized program
into a folder you select. You can also change the name of the exported file.
Typically you export a customization/personalization into a shared folder so other users can then import it into
their application using Customization/ Personalization Maintenance. Review the next section to learn how to
import a customization or personalization.
The export file uses a special format that can only be imported
within the Customization/Personalization Maintenance
program. You cannot use this format for importing within the
Customization Tools Dialog.
To export a customization:
10.0.700 387
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
3. The current customization displays within the Name and Description fields.
4. Optionally, enter a New Name for the exported customization. If you leave this field blank, the exported
file uses the Name value for its filename.
5. Click the Export Filename button to find and select the path and filename you want. You can also enter
the path and the filename directly
6. When you finish, click the Export button. The customization is now available within the selected destination
folder. Other users can now import this customization into their applications.
Import Customizations/Personalizations
You can use Customization/Personalization Maintenance to import a selected customization or personalization
into your application. You can also change the name of the imported file.
You can then use the customization/personalization as you need. You can indicate it is a Work in Process
customization, modify the imported customization, correct issues, and so on.
To import a customization or personalization:
388 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
3. Click the Import Filename button to find and select the customization or personalization you want to
import.
4. Optionally, enter a New Name for the customized or personalized program. This new name might help
you locate the program later within your application. If you leave this field blank, the imported file uses the
name of the file that was exported. If the Import Customization program finds a file with the same name,
you are asked if you want to copy over the existing file.
5. When selected, the All Companies check box indicates this imported customization/personalization is
available to all companies within your application. If this check box is clear, the imported program is only
available for use within the current company.
Verify Customizations/Personalizations
The key tool in Customization/Personalization Maintenance is the verification functionality. Use this feature to
see if your customized or personalized programs work properly.
This verification tool can review all the custom fields and code within a selected customization/personalization
or a group of customizations and personalizations. After it has finished testing the customized or personalized
10.0.700 389
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
programs, review the Status field on the Detail sheet to see if the program passed its verification. If it did not,
you can view what caused the verification to fail on both the Warnings and Errors sheets.
3. The customization or personalization is run through the verification process. This process launches the
program in a hidden mode that simulates the process that occurs when a user launches the program during
390 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
Run Mode. If the Status field (on the Detail sheet) displays an Error value, click the Compile/Script Errors
sheet.
4. The compile errors for this customization display on the Errors grid.
5. The Level column indicates the severity of each error. If the Error value displays in this column, it indicates
these items must be fixed before the custom code can successfully compile.
6. The Error Code column displays the specific Visual Basic or C# error code number.
7. The Line# column contains the specific line within the code which generated the compile error.
9. The Record Type column indicates the code type which caused the error.
10. Click the Selected Issue Helper button to display the Customization Data window. Use this window to
correct specific problems with the customization. For more information on this feature, review the Show
Custom Data section later in this chapter.
11. The Warnings sheet displays any elements within the customized or personalized program that did not
validate. These elements are displayed within the Warnings grid.
12. The Control Name field defines the elements within the program that could not be verified.
10.0.700 391
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
13. The Warning field displays why the warning was generated.
14. To remove the element from the program, click its Select check box. To remove multiple elements, choose
multiple Select check boxes.
15. To select all the elements, click the Select All button.
16. Click the Remove Selected Items button. All the elements that you selected are removed from the Warnings
grid.
You can now use the Run, Modify, and Show Custom Data features to help you identify these issues. This
functionality is described later within this section.
392 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
3. The verification process reviews all the selected personalizations and customizations. When complete, you
return to the Customization/ Personalization Maintenance window.
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 a Customization/Personalization
To launch a selected customization or personalization in Run Mode:
10.0.700 393
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
You can now test the personalization/customization to make sure it works properly.
394 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
Modify a Customization/Personalization
To launch a selected customized or personalized program in Developer Mode:
4. Select the customization or personalization you want to modify from the Tree View. In this example, you
select the ADPOSugg2 customization.
10.0.700 395
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
5. Click OK.
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.
396 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
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.
6. The ControlType column defines what kind of control is on the customization or personalization. For
example:
Epicor.Mfg.UI.Framework.EpiBasePanel
10.0.700 397
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
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.
1. Use the Error Level, Error Code, Line Number, or Error Description fields to find and select the error
you want to correct. Enter the parameters you need and press <Enter>.
398 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
2. The Code section navigates to the code line. Directly enter the code changes you need within the
customization code section.
3. This section contains the same functionality as the Script Editor. If you right-click the code, the context
menu displays with the Script Editor functions. To learn about the features available on this context menu,
review Advanced Customization.
4. You can also add adapter methods to a custom referenced adapter. To do this, select the adapter you need
within the Custom Referenced Adapters list.
5. The list of Available Adapter Methods displays. Select the method you want to add to the custom
referenced adapter.
6. The Method Parameters field displays the available parameters for the method you selected.
7. Older customizations were written in Visual Basic code. You can use this window to convert this Visual Basic
code into C# using the VB To C# Conversion Helper. Click this sheet.
8. To prepare the Visual Basic code for its transformation into C#, click the Prep VB Code button. This button
updates the Visual Basic code to match C# coding conventions.
9. During Step 2 in this process, you return to Customization/Personalization Maintenance and verify the
custom Visual Basic code as previously described. Be sure to correct all compile errors.
10. Return to the Customization Data window and click the Copy VB Code to Clipboard button. You can
then paste this code into a third party C# conversion tool. Use this tool to correct any C# conversion errors.
When you finish using this tool, be sure to save your updated code to the clipboard again.
11. Return to the Customization Data window again. Click the Paste/Prep C# Code button to place this
updated code within the code section (Script Editor).
12. During Step 5, you return to Customization/Personalization Maintenance and verify the custom code
as previously described. Be sure to correct all the C# compile errors.
10.0.700 399
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
1. Select the retriever combo from the Missing Retriever Combos list. If you want to convert an existing
retriever combo, select it from the Other Retriever Combos list.
2. Use the Available UICombos list to find and select the UI Combo you want to use for the conversion.
3. The UICombo Properties group box displays the main parameters for the selected UI combo.
4. The Convert Retriever Combo to UI Combo section displays the Selected Retriever Combo, Control
Name, and Control Key used by the converted UI Combo. If you need, you can change these values.
5. Click the Convert to UICombo button. The retriever combo becomes a UI combo.
6. Continue to update all of the retriever combos that you need. When you finish, click the Save Data button.
Force Validation
Run the Force Validation feature to immediately validate a selected personalization or customization. This feature
causes Customization/Personalization Maintenance to ignore issues with the selected item, making it available
to users during Run Mode.
This option does not correct issues with the customization or personalization, it only causes the application to
ignore them. Only use this feature as a last resort when you are short on time and need to make the selected
item available. Any customization or personalization that is not valid can cause performance, usability, and other
issues.
To force validate a customization or personalization:
400 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
You can now use the selected customization or personalization within the application.
10.0.700 401
Chapter 5 | Customization Utilities Epicor ICE 3.0 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.
402 10.0.700
Epicor ICE 3.0 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.0.700 403
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
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.
404 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
3. The log displays within Notepad. All the changes you made to each customized or personalized program
show within this log.
10.0.700 405
Chapter 5 | Customization Utilities Epicor ICE 3.0 Customization User Guide
2. Expand the folder for the company you want to view. Various application cache folders, such as CustomDLLs
and Customization, display.
3. Expand one of these folders to see the items that have automatically loaded into the application cache.
Double-click specific files to view the XML code in your browser.
406 10.0.700
Epicor ICE 3.0 Customization User Guide Customization Utilities | Chapter 5
2. You will be asked if you want to clear the client cache; click Yes in this dialog box.
All items loaded into the application cache are now removed. You can now relaunch these items and review the
results within the application cache folders and the Customization Maintenance Log.
10.0.700 407
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
The application contains customizable tables in the database that expand the functionality of customizations. These
extensions are user-defined tables. Use these tables to create your own entry programs so users can enter data unique
to your organization and/or industry. This data can also display on custom grids you create on customizations.
You do this by first adding these tables directly to the Menu and then by customizing the interface used to enter the
custom data. Each user-defined table can also be linked to another user-defined table. You can then create adapter
combinations that pull data from multiple tables. This user-defined data is then available within other programs
throughout the application.
Two kinds of user-defined tables are available – Standalone User-Defined Tables and Parent/Child User-Defined Tables.
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.
408 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
1. In the Tree View, select the point within the Menu where you want to place your user-defined table. In
this example, you select the Order Management folder and the Setup folder.
2. Click the Down Arrow next to the New button; select New Menu.
3. The fields within the Detail sheet are now available for data entry.
4. Use the Company drop-down list to indicate whether this standalone user defined table just displays on
the current company menu or on all menus in the Epicor application. Through this functionality, you can
define a default version of the user-defined table used throughout all companies, but also create custom
versions of this user-defined table that displays in specific companies.
10.0.700 409
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
5. Enter the Menu ID for the user-defined table. In this example, you enter UD01, for the user-defined table
01.
6. The Module value indicates the licensed module to which this item belongs. Because you are adding a
custom table to the interface, the UD ( User Defined) module must display in this field. This indicates this
custom program is part of the User Defined module functionality.
7. Enter the Name that you want displayed for the user-defined table. In this example, you enter Shipping
Package Size.
8. Select the Security ID you want for this user-defined table. The Security ID indicates the specific users and
user groups that are able to access this user-defined table.
9. Verify the Parent Menu ID displays the menu under which you want to place this user-defined table. For
this example, you want it placed under the Order Management/Setup folder, so OMMN1000 displays.
10. Enter the Order Sequence value you need. This positions the user-defined table within the current menu’s
items; lower numbers insert the item towards the top, while higher numbers insert this item towards the
bottom. For this example, you enter 32.
11. Notice the Shipping Package Size item now displays after Customer Part Cross Reference on the Tree
View.
12. Vefiry the Enabled check box is selected. This makes the user-defined table visible to users.
13. Click the Program Type drop-down list and select Menu item. This indicates this item displays on the Main
Menu.
410 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
14. Click the Icon drop-down list to indicate the icon that displays next to the user-defined table. Since this
program is a maintenance program, you select the Maintenance icon.
15. To find and select the user-defined table, click the Program button.
You next search for the user-defined table you want to add to the interface.
1. All standalone user-defined tables are in the client folder and they begin with the Ice.UI.UD01Entry.dll
file and continue on to the Ice.UI.UD40Entry.dll. Select Erp.UI.UD01Entry.dll.
2. Click Open.
10.0.700 411
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
4. Click Save.
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.
412 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
1. Click the Home button and the Settings tile. From the General Options group, select the Developer
Mode option.
2. Navigate to Sales Management > Order Management > Setup > Shipping Package Size.
10.0.700 413
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
You can now use the customization tools to modify the interface as you need.
414 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
1. To change the name of the form, in the Tree View, highlight UD01Form.
4. Repeat these steps to change the main panel text. In the Tree View, select the mainPanel1 node.
6. Notice the text for the main panel updates with your text value.
7. Customize the form as you need by hiding elements, renaming labels, linking text fields to labels, and
positioning them as you need. You can hide all the key fields except for the Key 1 field; this field is required
10.0.700 415
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
for the table to work correctly. In this example, Key 2, Key 3, Key 4, and Key 5 are hidden and moved off
the Detail panel and the Description field is moved next to the Key 1 field.
Only hide the key fields and move them off the panel, do
not delete them. Deleting the key fields causes database
issues with your user-defined table. To review how to
customize elements on a form, read the Hide, Move, and
Add Elements section in the Basic Customization chapter.
416 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
8. In this example, you rename the Search button to display the Shipping Size... value.
9. You also rename the Key 1 label to display the Shipping Size ID: value.
10. Add text boxes and labels for the Length, Height, Width, and Weight fields; bind these fields to the
ShortChar columns available on the user-defined table. For information on how to add and bind fields,
review the Basic Customization chapter.
10.0.700 417
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
11. On the Customization Tools Dialog window, click Save to record your customization. In this example,
you call it ShippingSize.
12. You must indicate this customization is the default version displayed on the Main Menu. Turn off Developer
Mode; launch Menu Maintenance.
13. Use the Tree View to select the Shipping Package Size program.
14. From the Customization drop-down list, select your customization. In this example, you select the
ShippingSize (Customization) option.
418 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
16. Now all users who have security access to this program can enter data in it. This data is saved in the UD01
table within your database.
Add an EpiRetrieverCombo
The data users enter through your custom maintenance program can be displayed throughout the application.
To complete the implementation of your standalone user-defined table, you must customize other programs to
display this data. You do this by adding an EpiRetrieverCombo, or drop-down list, to a customized program.
To add the Shipping Size drop-down list to the Customer Shipment Entry’s Header sheet:
1. Activate Developer Mode again, then navigate to Material Management > Shipping/Receiving >
General Operations > Customer Shipment Entry
10.0.700 419
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
3. The Customer Shipment Entry window displays. From the Tools menu, select Customization.
420 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
4. You need to add the EpiRetrieverCombo to the form. On the Customization Tools Dialog window, from
the Tools menu, select Toolbox.
5. You place the newEpiRetrieverCombo within the Packaging group box. First, select the group box’s bottom
handle and make this box larger.
7. To draw the EpiRetrieverCombo element, click and drag over an area within the Packaging group box.
10.0.700 421
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
8. The Select Retriever Combo window displays. It automatically populates with all the retriever combos
available within the application.
9. This window contains a navigation tree. Scroll down through the retriever combos and select the UD01 table.
1. Within the Properties tab on the Customization Tools Dialog, notice the (Name) property displays the
retriever combo bound to this drop-down list.
2. The (Type) property displays the filename of the UI adapter for the retriever combo. In this example, the
retriever combo for the UD01Combo displays.
422 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
3. Clear all the text that displays within the Text property field.
4. You next need to create a label for the EpiRetrieverCombo. In the Toolbox window, select the
EpiLabel element.
5. Click and drag over an area near the new EpiRetrieverCombo. The label displays.
6. Enter the Text that you want for this label. For this example, you enter Shipping Size within the Text property.
9. Enter the Name for the customization. In this example, you enter ShipSizeCombo.
10.0.700 423
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
10. Enter a Description for the customization. In this example, you enter Shipping Size Combo Box.
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.
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.
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.
424 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
table using this same data relationship; the child EpiRetrieverCombo is dependent on the parent EpiRetrieverCombo.
During Run Mode, when a user selects an option from the parent drop-down list, the child drop-down list then
populates with any child records entered under the parent record.
Through this example, you first add a parent/child user-defined table to the Menu. You then customize it. To
display this parent/child data, you next add two EpiRetrieverCombos to the Releases > Detail tab within Sales
Order Entry. One of these EpiRetrieverCombos is the parent drop-down list and the other the child drop-down
list.
1. In the Tree View, select where you want to place the user-defined table. In this example, you are placing
it within the Order Management>Setup folder.
2. Click the Down Arrow next to the New button and select New Menu.
3. Use the Company drop-down list to indicate whether this parent-child user defined table just displays on
the current company menu or on all menus in the Epicor application. Through this functionality, you can
define a default version of the user-defined table used throughout all companies, but also create custom
versions of this user-defined table that displays in specific companies.
10.0.700 425
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
4. Enter the Menu ID for the user-defined table. For this example, you enter UD100; this indicates the
user-defined table you are customizing.
5. The Module value indicates the licensed module to which this item belongs. Because you are adding a
custom parent-child table to the interface, the UD ( User Defined) module must display in this field. This
indicates this custom program is part of the User Defined module functionality.
6. Enter the Name for the user-defined table. For this example, you enter Carrier Shipping Sizes.
7. Select the Security ID you want for this parent/child user-defined table. The Security ID indicates the specific
users and user groups that are able to access this user-defined table.
8. Verify the Parent Menu ID displays the menu under which you want to place this user-defined table. In
this example, you want it placed under the Order Management/Setup folder, so OMMN1000 is displayed.
9. Enter the Order Sequence value you need. This positions the user-defined table within the current menu’s
items; lower numbers insert the item towards the top, while higher numbers insert this item towards the
bottom. For this example, you enter 34.
10. Notice the Carrier Shipping Sizes item now displays after FOB on the Tree View.
11. Verify the Enabled check box is selected. This user-defined table is now visible to users.
12. Click the Program Type drop-down list to select Menu item. This indicates that this item displays on the
Main Menu.
13. Click the Icon drop-down list to define the icon that will display next to the user-defined table. Because this
program is a maintenance program, you select the Maintenance icon.
426 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
14. Click the Program button to find and select the user-defined table.
You next search for the user-defined table you want to add to the interface.
1. All parent/child user-defined tables are in the client folder and they begin with the Ice.UI.UD100Entry.dll
file and continue on to the Ice.UI.UD110Entry.dll. Select Erp.UI.UD100Entry.dll.
2. Click Open.
4. Click Save.
10.0.700 427
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
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.
428 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
1. Activate Developer Mode and launch the Carrier Shipping Sizes form. The Select Customization
window displays.
4. Notice the Detail sheet is identical to the standalone user-defined table; it has four secondary keys, a primary
key (Key 1), and a Description field. You cannot delete Key 1.
10.0.700 429
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
5. The Child > Detail sheet contains five child keys and a Description field.
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.
430 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
8. The Key1 field cannot be removed. In this example, it is used as the Carrier ID field.
9. Change the text on the Search button to reflect the item searched through this user-defined table. In this
example, you enter the Carrier ID... value.
10. Change the text on the form’s Title Bar and Main Panel title. In this example, you enter Carrier Package
Size Maintenance for both interface items.
Now make changes to the child sheet and finish the customization.
1. Click the Child > Detail tab and customize this sheet.
2. For this example, you enter information on each package size you send through each carrier. Hide all the
child keys except ChildKey1 and the Description field. Then enter custom TextBoxes that contain the package’s
Length, Width, Height, and Weight information. Be sure to bind these text boxes to the custom short
character fields (ShortChar01, ShortChar02, and so on) within the UD100A child table.
3. When you Save the customization, the Customization Save Dialog window displays.
10.0.700 431
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
4. Enter the Name for the customization. In this example, you enter CarrierSize.
5. Enter the Description for the customization. In this example, you enter Carrier Package Size.
6. Click Save.
9. Click the Customization drop-down list to select your customization. In this example, you select the
CarrierSize option.
11. To view your custom Carrier Shipping Sizes Maintenance form in Run Mode, close and relaunch the
Epicor application.
432 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
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.
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.
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.
The parent and child epiRetrieverCombos will need to populate some blank custom fields in your Sales Order
Entry customization. To add these fields, you first add an extended user-defined table to the Order Releases table.
You create extended user defined tables in Extended User Defined Table Maintenance.
Menu Path: System Setup > System Maintenance > Extended UD Table Maintenance
10.0.700 433
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
4. Click OK.
6. For the Description, enter Custom Columns for Parent/Child EpiRetrieverCombos (Carrier Shipping Sizes).
434 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
7. You now can add the custom columns you need to the extended user defined table. Later you will bind
these columns to fields on your customization. Click the New menu and select New Column.
8. Enter the Column name that will display in the column header. For this example, enter CarrierParent.
9. Next for the Description, enter Carrier Parent for UD100. This will help you identify the purpose for the
column later.
11. Now for the Format, enter x(20). This indicates up to twenty characters can display in this field.
13. Now repeat these column steps to add the child column. Click the New menu and select New Column.
15. Next for the Description, enter Carrier Child for UD100A.
10.0.700 435
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
17. When you finish created these custom columns, click Save.
18. You next must add, or synchronize, these columns to the database. To do this, click Actions > Sync Current
Table to DB. After this process runs, a dialog box displays that indicates the OrderRel_UD table is synchronized
to the database.
Your user defined columns are added to the OrderRel table. However to select these columns on your
customization, you need to refresh the database by logging out and back into the Epicor application. After you
relaunch the Epicor application, you can bind custom fields to these columns.
You may also need to refresh the data model for the Epicor
application. This function is run on the server, so you will need
to contact your System Administrator to complete this task.
As of this writing the data model functionality is not needed
to add extended user defined tables, but it may be required in
a future release.
1. Be sure Developer Mode is active, and then navigate to Sales Order Entry.
Menu Path: Sales Management > Order Management > General Operations > Order Entry
436 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
The CRM menu path is: Customer Relationship Management > Order Management > General Operations
> Order Entry
2. The Select Customization window displays. Click OK to launch the base form.
10.0.700 437
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
3. The Sales Order Entry window displays. From the Tools menu, select Customization.
4. Navigate to the Releases > Detail sheet. You will place the EpiRetrieverCombos in the From group box on
the form.
438 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
5. In the Customization Tools Dialog from the Tools menu, select Toolbox.
7. To place the EpiRetrieverCombo, click an empty space in the From group box.
9. Navigate to the UD100 table, expand the node, and select the UD100Combo.
10.0.700 439
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
1. On the Properties tab, select the AutoWidthOption you want when this EpiRetrieverCombo’s list is
displayed during Run Mode. In this example, you select ControlWidth. This limits the EpiRetrieverCombo
to the width of the element (in this case 120 pixels).
2. Select the EpiBinding for this EpiRetrieverCombo. Because this element is on the Release > Detail sheet,
you select OrderRel for the table. From this table, you next select the CarrierParent field. This selection
indicates this field is an empty character field you populate directly or through another custom method.
440 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
3. Fine-tune the Size property of the element to dimensions you want. For this example, you enter 120 (pixels)
for the width and 20 (pixels) for the height.
10.0.700 441
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
5. Create a label for the new EpiRetrieverCombo. In the Toolbox window, select the EpiLabel element.
6. Click and drag over an area next to the EpiRetrieverCombo. The label displays.
7. Enter the Text that you want displayed within the label. For this example, you enter Carrier: in the Text
property.
442 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
8. You need to link this label to the EpiRetrieverCombo. In the Tree View, select the EpiRetrieverCombo.
In this example, you select [C]uD100ComboB1.
9. Define the EpiLabel name for the new label. For this example, you enter epiLabelC1.
10. Click Save. For the customization Name, enter CarrierPackage; for the Description, enter Carrier Package
Option.
10.0.700 443
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
4. Navigate to the UD100 table, expand the node, and select the UD100Combo.
5. Click OK.
444 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
6. Select the EpiBinding for the child EpiRetrieverCombo. Once again, you select OrderRel for the table.
However, for this control, you select the CarrierChild field. During Run Mode, this drop-down list uses the
CarrierChild field in order to populate data from the UD100A table.
10.0.700 445
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
7. Modify the Text, Size, and AutoWidth properties to the same values you used for the parent
EpiRetrieverCombo – clear the Text property, set the Size property to 120, 20, and set the AutoWidth
Option property to ControlWidth.
446 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
8. You next enter custom code within the Script Editor. To help you keep track of this second
EpiRetrieverCombo, you change its Name property to display ucbCarrierSize.
10.0.700 447
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
9. Finally, you need to add a label for the child EpiRetrieverCombo. To do this, in the Toolbox window, select
the EpiLabel element.
10. Click and drag an area next to the EpiRetrieverCombo; the label displays.
11. Enter the Text you want displayed within the label. For this example, you enter Package Size: for the Text
property.
448 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
12. Now link the child EpiRetrieverCombo to your new label. Select the child EpiRetrieverCombo.
13. On the Properties sheet, click the EpiLabel drop-down list and select your new label.
To complete the customization, you must enter the custom code that causes the Child EpiRetrieverCombo to
pull in child table data from the parent record.
10.0.700 449
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
1. Click the Script Editor tab to display the Script Editor code entry sheet.
2. To begin, you first define the UD100Adapter. To do this, you enter the following C# code under the Custom
Module Level Variables section.
3. You now must add the UD100Adapter as a custom assembly. From the Tools menu, select Assembly
Reference Manager.
450 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
7. From the Type drop down list, select the Ice Adapters (Ice.Adapters.*.dll) option.
9. Click Open.
10. Now select the business object file. From the Type drop-down list, select the All files (*.*) option.
10.0.700 451
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
13. You return to the Custom Assembly Reference Manager. Notice these references display in the Tree View
under the Custom Assemblies folder.
2. You now must add a custom C# subroutine that populates the child EpiRetrieverCombo with data from the
100A child table. Here is the code you enter:
private void FillUD100ACombo(string key1)
{
// create hashtable of tableName, where Clause pairs
System.Collections.Hashtable myHash = new System.Collections.Hashtable();
string wClause = "Key1 = '" + key1 + "'";
//MessageBox.Show(wClause)
452 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
3. Add another C# subroutine that causes the child EpiRetrieverCombo to only populate with data contained
under the Parent record. Enter the following code:
private void ucbCarrierSize_BeforeDropDown(object sender,System.ComponentMo
del.CancelEventArgs args)
{
// ** Place Event Handling Code Here **
// get reference to OrderRel EpiDataView object
EpiDataView edvOrderRel = (EpiDataView)oTrans.EpiDataViews["OrderRel"];
// get Key1 value
string Key1 = (string)edvOrderRel.dataView[edvOrderRel.Row]["CarrierParen
t"];
10.0.700 453
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
FillUD100ACombo(Key1);
}
4. To verify no data stays in after the refresh, you enter the following C# code within the DestroyCustomCode
section:
public void DestroyCustomCode()
{
// ** Wizard Insert Location - Do not delete 'Begin/End Wizard Added Obje
ct Disposal' lines **
// Begin Wizard Added Object Disposal
ucbCarrierSize.BeforeDropDown -= new System.ComponentModel.CancelEventHan
dler(ucbCarrierSize_BeforeDropDown);
454 10.0.700
Epicor ICE 3.0 Customization User Guide 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.
8. Enter the following code within the View/Edit Event Handling Code window:
private void SalesOrderForm_Load(object sender, EventArgs args)
{
// Add Event Handler Code
ucbCarrierSize.ValueMember = "ChildKey1";
ucbCarrierSize.DataSource = ud100Adapter.UD100Data.UD100A;
ucbCarrierSize.DisplayMember = "Character01";
10.0.700 455
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
10. You are now ready to test your custom code. Return to the Script Editor tab; notice the Output pane
displays.
12. If everything is coded correctly, the ** Custom Code Compiled Successfully. ** message displays.
456 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
1. Close the form and then launch your customized Sales Order Entry form in Run Mode.
2. Navigate to the Releases > Detail sheet. Your Parent and Child drop-down lists are active.
3. You first select a record from the Carrier drop-down list; these options are pulled from the Parent table
within the customized parent/child user-defined table.
10.0.700 457
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
4. This causes the Package Size list to populate with the sizes you entered on the Child table for this Parent
record. Users can now select the size they need on the sales order.
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;
458 10.0.700
Epicor ICE 3.0 Customization User Guide User-Defined Tables | Chapter 6
//MessageBox.Show(wClause)
10.0.700 459
Chapter 6 | User-Defined Tables Epicor ICE 3.0 Customization User Guide
FillUD100ACombo(Key1);
}
}
460 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
Chapter 7: Localization
You can localize the application to display the language, date format, currency symbols, and other cultural attributes
you need. The localization tools consist of three primary features. Language files define the text that displays in labels,
title bars, and messages throughout the interface. Culture codes define the date format, number format, currency
symbols, and so on applicable to specific world cultures. By using these features together, you create unique localizations
you then assign to specific companies and users. All users throughout your international organization can then effectively
use the Epicor application.
To begin, Country Group and Country codes are available within the Epicor application. Primarily used by Epicor partners
creating localizations, these codes are assigned to specific companies. They filter localized programs and items throughout
the application, hiding and displaying programs as needed. You then install the languages on your application server.
You add this language to your server installation through Language Maintenance; the language is deployed to your
client installations and then selected on specific user accounts.
You can further localize specific programs by using the localization layer. Use this functionality to hide, show, or format
the elements you need to localize a specific program. You can also update the text strings within a specific program
through the Translation Utility. Use this tool to translate selected text strings (labels, tabs, messages) within the current
program. Run this functionality to enter regional, localized terms not installed with the imported language file.
When multiple languages are installed, users can change the language that displays during each session. You can also
assign a default language and culture code for a selected user. The language and the culture code can be different
from user to user, so leverage this flexibility to define localizations that best match each member of your international
personnel.
To provide an overall localization structure for your Epicor application, Country Group and Country codes
(country/group codes) are implemented across the company nodes on the Main Menu. This licensing feature
defines both the modules and programs that appear on the Main Menu and the items available for use within
each company. These country/group codes are created and maintained by both Epicor and Epicor Partners to
deliver localization solutions specific for your organization. You typically do not have access to these codes, but
you may see them displayed within some administrative programs. This section describes how these codes work.
A Country Group code and a Country code are similar, but these code categories provide flexibility for localizing
the application. A country group code defines an area of the world that has similar legal requirements across all
member countries it contains. For example, the European Union has standard trade laws its member countries
share, and the Epicor application can be localized to reflect these regional trade requirements. However, some
countries within the European Union, such as France, might have additional legal requirements the Epicor
application needs to implement. A country code is then created for France and localizations are specifically set
up for this country. Epicor or an Epicor Partner can then create a localization solution where a company uses
both the European Union country group code and the France country code – displaying the modified programs
and items required for both the European Union country group and the France country localizations.
The Epicor application is set up to filter on these country group and country codes. When a company has a
country group or country code, for example, only programs or menu nodes that either have this country/group
code or do not have a country/group code defined (a null value) display within the company. If a program has a
different country/group code and this code is not defined for display within the company, this program or menu
node does not appear during run time.
Country/group codes are usually hidden, but you will likely see these codes within the Solution Manager. Most
items within the Solution Manager have a CGC Code (Country Group/County Code) column. If a specific item
10.0.700 461
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
is assigned a country/group code, it displays within this column. You can then verify whether the solution will
display in specific companies. For more information on building solutions, review Chapter 9: Solution Management.
If you have a Country Specific Functionality license for a specific code, you can then modify and implement
country/group codes within your application. You could add or remove these country/group codes as you need
on various programs and items. However, Epicor recommends that you rarely use this functionality. Any changes
you make to an existing localization will be overwritten during the next upgrade.
Install Languages
Before you can use multiple languages, you must install each language file onto your application server. This
language file contains the translated text strings for all the programs within the Epicor application. After the
language file is installed onto the server, you can then import it within the server installation through Language
Maintenance.
Language Maintenance
Use Language Maintenance to add or update a language to display text in programs, menus, messages, and so
on. You use this program to first set up the various languages you want to display throughout the system. You
can also use it to update and add translations as you need. Because of this, you use Language Maintenance on
your server installation.
Initially, you run this program to add a language. Then, if you receive revised translation strings, you can also use
this program to add selected text string updates.
Menu Path: System Setup > System Maintenance > Language Maintenance
462 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
Add a Language
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.
2. The Description field displays an explanation of the language. For this example, Chinese/Simplified displays.
3. Optionally, you can use the Font field to indicate the font for the text reports of this specific language. If
you enter a font in this field, you override the default font typically used for this type of report. In this
example, the field is left blank.
4. Optionally, click the Style drop-down list to indicate what font style you use with this language on text
reports. Available options:
• Regular - The language displays using the typical weight value.
• Bold - The language displays using the darker bold weight value.
5. The Char Width Factor field defines how wide the characters must be to properly display this language on
text reports. A factor value of 1 indicates the characters use the default system width. A factor of 2 indicates
the characters are twice the size of the default system width. For this example, you enter a 2 value; to
properly display the Chinese language, each character must be twice the default size.
6. If you want, select the Installed Languages Only check box. This indicates that only languages you have
installed within the application can be used as a Parent Language. A parent language is the language file
used when the application cannot find a translation for a specific string within the current language.l
7. Click the Parent Language drop-down list to select the parent language file that will display if the application
cannot find the language file. If you select the Installed Languages Only check box, only current languages
installed within your application display on this list. However, if you clear this check box, all available language
codes display.
10.0.700 463
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
8. The Custom Language check box indicates whether the current language has an existing .NET culture:
• If this check box is clear, this language has a pre-existing .NET culture linked with it; this culture displays
in the Culture field
• If this check box is selected, .NET culture is not linked with this language; instead, a user-defined culture
value displays in the
Culture field. This indicates a culture must be selected for each user that requires this language. For more
information about
how to select cultures on specific user accounts, review the User Account Maintenance section later in
this chapter.
9. The Culture field determines the folder on the client that stores the language resources (and text strings);
it also defines the spelling dictionaries used with the selected language. For example, if en-GB displays in
this field for the English/Great Britain language, then en-GB folder contains the language resources and the
en-GB.dict dictionary file is used to check the spelling in this language
In order to work properly, a language must be assigned to the correct culture. To assign a language to the
correct culture, use the Reset Language Cultures option. This feature makes sure each language is linked
to its correct culture code.
The Language ID is now added to your application. You now import translations for your selected language.
Import Translations
464 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
3. The Language field displays the identifier for the imported translation. In this example, sch displays.
5. Use the Translation File field to enter the path and the filename of the language file you installed. If you
need, click the ... (Ellipse) button to find and select this file. In this example, you select the
Simplified_Chinese.xml file.
This format is useful for customization, as the translated strings are contained within <OriginalText> and
<TranslatedText> .xml tags. This eliminates the need to keep track of a text number identifier when you
need to use the translated string in a customization. If you can, you should always use .xml formatted
languages. To learn how to install a language file onto your system, review the previous Install Languages
section.
6. Select the Overwrite Existing Translations check box as needed to overwrite existing language translations.
7. Select the Delete Obsolete Translations check box as needed to delete obsolete language translations.
8. The Total number of strings field indicates how many text strings are contained in the selected translation
file.
9. Click the Import button. The language begins to pull into your application.
This process takes some time. After you click the Import
button, monitor the process by watching the Processed
strings field. Do not click the Import button multiple times,
as you will cause the program to import the language file
multiple times as well.
10. The Non-imported strings field indicates how many text strings were not imported.
11. The Processed strings field indicates how many text strings are processed and imported so far.
12. When the import process is complete, the Processed strings field value usually equals the Total number of
strings field value. If the count is different, it may indicate that blank lines or errors exist in the import file.
To review these errors, click the Import Log tab.
10.0.700 465
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
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:
4. Use this list to review all the translations. You can filter the list by entering values within the Text ID, Original
Text, or Translated Text fields. In this example, the results are filtered to only display translations for the
term “from.”
5. Review the Language Translation List grid and select the text you want to change. In this example, the “From
Date” text string is selected.
466 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
8. The Translated Text field displays the current translation. If you need, update this text.
9. If this text string is used on multiple programs, you can also change the translation for a specific program.
To do this, select the Translations > Program Specific Translations tab.
10. The Original Text ID field displays the identifier for the program’s text string.
11. The Program ID displays the identifier for the program that contains the text string.
12. The Original Text and Translated Text fields display the current translation for this program.
13. If you need, you can enter a different translation in the Program Specific Text field.
14. To change the same text on another program, navigate to the Program Specific Translations > List sheet.
10.0.700 467
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
15. Select the next program text string you want to update on the Translation/Program Cross Reference list.
16. Select the Program Specific Translations >Detail tab once again to update the text.
1. Click the Down Arrow next to the New button; New Language Translation.
468 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
2. Click the Down Arrow next to the New button; select New Program Specific Translation.
4. The LanguageID field displays the identifier for the current language.
5. The Original Text ID displays the identifier used for the selected text string.
6. The Program ID displays the .dll filename for the program which contains the selected text string.
7. The Original Text field displays how the text appears within its starting language.
8. The Translated Text field displays the current translation of the text string.
9. Use the Program Specific Text field to enter your revised translation.
10.0.700 469
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
10. Repeat these steps to update the text strings as you need. When you finish, click Save on the Standard
toolbar.
Export a Language
Use Language Maintenance to export the language file out of the application. This feature is useful if you have
updated some translated text strings and want these updated strings used on other server installations within
your organization. You can also export a language to keep a back up copy of any changes you make. This copy
can be placed on a different database.
Here’s how you export a language file:
1. On the Detail sheet, click the Language ID button to find and select the language you want to export.
You can also enter the language ID directly.
4. The Language and Description fields display the language being exported.
470 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
5. In the Translations File field, click the ... (Ellipse) button to find and select the directory path and filename
you want to use.
6. To limit the file to contain customized translated strings, select the Only customization entries check box.
7. To limit the file to contain translated strings, select the Only translated entries check box.
8. To limit the file to contain strings that are not translated, select the Only untranslated entries check box.
9. To include program references, select the Include program references check box.
10. The ID Range fields can be used to select a range of translation identifiers. To enter a starting ID, select the
check box to the right of the Start field, then enter the starting ID into that field. To enter an ending ID,
select the check box to the right of the End field, then enter the ending ID into that field.
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.
2. The Language Resource Generation window displays. This window details the progress of the generation.
10.0.700 471
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
3. The Culture fields detail the culture code associated with the language.
4. The Language ID field displays the identifier for the language being generated.
5. The Action field updates throughout the process. It displays the current task being run.
6. The File field indicates the current program for which a resource is generated.
7. As the generation continues, the Progress bar indicates how much is left to generate.
When the resource generation is complete, the language, along with any modified and new translations you
added, is installed within your Epicor application.
1. In the Language ID field, select the language code for which you are changing the user defined culture
code.
472 10.0.700
Epicor ICE 3.0 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.
1. Click the Actions menu, and then select Reset Cashed Resource Information.
A window displays that states this option regenerates internal resources. After you click OK, another message
displays indicating these cached resources are deleted. To close this window, click OK again.
You now can return to Language Maintenance and load in a language. You can also close and launch either
Language Maintenance or the Epicor application. The internal resource assemblies generate automatically.
The refreshed assemblies are now synchronized with your current language files.
10.0.700 473
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
Change Languages
You can change the displayed language during a current session. When using the Modern Shell style interface,
you do this using the Change Language command in the Settings Menu. When you use to Classic Style interface,
you do this on the Main Menu through either the Options menu or the Status Bar.
474 10.0.700
Epicor ICE 3.0 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.
10.0.700 475
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
8. The application restarts, pulling in the resources you generated through Language Maintenance. The interface
now displays in the selected language.
1. On the Main Menu, from the Options menu, select Change Language.
3. All languages installed within your application display. Select the language you want. In this example, you
select the Espanol/Mexico option.
476 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
4. Click OK.
5. The application restarts, pulling in the resources you generated through Language Maintenance. The interface
now displays in the selected language.
10.0.700 477
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
1. The current language displays as a separate button on the Status Bar. Click this button.
3. All languages installed within your application display. Select the language you want. In this example, you
select the Chinese/Simplified option.
4. Click OK.
478 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
5. The application restarts, pulling in the resources you generated through Language Maintenance. The interface
now displays in the selected language.
Localization Layer
Much like you create a program customization that you make available throughout your organization, you can
also create a program localization in the same way. A localization is very similar to a customization. You can hide
and show elements, create new elements, implement custom code, and so on. However, you use localizations
to make to make user experience changes that reflect the needs of a specific culture.
For example, you can hide unnecessary elements and show other required elements. You can also change a field
format to something besides the base formatting or the localized culture code formatting.
10.0.700 479
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
3. In the General Options pane, select Developer Mode. A check mark appears to the left after you select
it.
480 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
4. Navigate to the program you want to localize. In this example, you need to localize Sales Order Entry, so
you launch this program.
6. Notice that a Localization node displays within the Available Layers list.
7. You want to localize the form. Select the Base Only check box.
8. Click OK.
10.0.700 481
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
9. The Sales Order Entry window displays. From the File menu, select Customization.
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.
482 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
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.
18. In the Customization Comment window, use the Add/Edit Comments field to enter any additional
information.
1. In the Customization Tools Dialog, from the File menu, select Export Customization. Find and select
the directory path inside which you want to place your localization. For more information on exporting
10.0.700 483
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
customizations, review the Export Customization and Import Customization sections within the Basic
Customization chapter.
3. The application returns to the Main Menu. Navigate to the Settings Menu and change the interface to display
the language you need.
484 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
4. Click OK.
7. On the Settings Menu (Configuracio), activate Developer Mode (Modo de desarrollo) if it is not activated.
10.0.700 485
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
8. On the Main Menu, launch the program. In this example, you launch Sales Order Entry (Ingreso órden de
venta).
9. The Select Customization window displays. Notice the localization now displays under the Localizations
node.
10. If the localization was exported, you can click the Import button to find and select the exported localization.
To help identify the file you need, all exported localizations begin with the “Localization” prefix.
486 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
11. You do not import the localization in this example. Instead, you select the SalesOrderForm localization and
click OK (Aceptar).
12. The localization displays in selected language. Notice for this example, the One-Time check box does not
display on the form.
You can now save this localization as a customization. You can then use Menu Maintenance to add this localized
customization to the Main Menu as either a replacement or an alternate for the original program. To learn how
to do this, review the Menu Maintenance section within Chapter 6: Customization Utilities.
Translation Utility
Use the Translation Utility to manually update program text so it accurately translates into the current language.
If some program text does not initially translate properly, use this tool to enter the correct text strings and update
the interface. When you save your changes and refresh the interface, the translated text appears within the
program.
The Translation Utility has three sheets – Missing LangOrg Records, Customization Records, and On-Line Translation
List. Leverage the functionality on these sheets to both locate and modify the text strings you need within the
current program.
10.0.700 487
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
1. Launch the program. In this example, you launch Miscellaneous Shipment Entry in the Spanish language.
2. From the Tools (Herramientas) menu, select Translation Utility (Utilidad de traducction).
488 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
3. The Translation Utility (Lista de traducciónes en linea) window displays. The On-Line Translation List
(Lista de traducciones en linea) sheet displays by default.
4. The Translation List (Lista de traducción) displays all the translated strings currently used within the program.
5. Scroll through the list to find the text string you want to update. In this example, you select the Pack ID (ID
de empaque) row.
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.
10.0.700 489
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
12. The updated text string displays within the Translation List (Lista de traducción).
13. To record your changes, click the Save Changes (Guardar cambio) button.
15. The translations do not display automatically. To display your change, from the Tools (Herramientas) menu,
select Refresh Translation (Actualizar traducción).
490 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
16. The form updates and the translation displays according to the changes you made.
1. Launch the program. In this example, you launch Sales Order Entry (Ingreso órden de venta).
2. From the Tools (Herramientas) menu, select Translation Utility (Utilidad de traducción).
10.0.700 491
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
3. The Translation Utility (Utilidad de traducción) window displays. Select the Customization Records
(Registros de adaptación) tab.
4. A list of all the custom string elements display on the Translation List (Lista de traducción) grid. You highlight
the row for this text string.
7. The Translation Text (Texto original) field displays the current translation.
492 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
10. The updated text string displays within the Translation List (Lista de traducción).
11. To record your changes, click the Save Changes (Guardar cambio) button.
12. When you finish, click the Close (Cerrar) button. As described previously, refresh the translation to display
your changes.
3. Select the strings you want to add to the database by clicking the Select (Agregar) check box on each string.
10.0.700 493
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
6. Click the On-Line Translation List (Lista de traducciones en linea) sheet. Scroll through the list until you
locate the added string. In this example, the Pack Slip Currency string is added to this localization.
7. Scroll through the list until you locate the added string. In this example, the Pack Slip Currency string is
added to this localization.
Notice the Text ID (ID texto) contains a negative value. This prevents conflicts with existing Text ID values.
By leveraging the Translation Utility, you can make sure your translated program accurately displays the selected
language.
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
494 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
1. Click the User ID button to find and select a specific user account.
2. Use the Format Culture drop-down list to select the culture code you want to define for this user. In this
example, you select the German (Germany) option.
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.0.700 495
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
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.
496 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
11. Once again, exit User Account Security Maintenance, log off and then log in again using the credentials for
your modified user account. Launch Purchase Order Entry.
12. Notice how this culture code changes the interface. The title bar text and the Tree View now display on
the right.
13. The Maximize, Minimize, and Close buttons display on the left of the title bar. Since the assigned Arabic
(Algeria) culture code is associated with Arabic, a Right-to-Left language, any text you enter displays from
right to left as well.
The culture code defines the format standards required for localizing a user account for a specific region.
You next select the actual language that this user needs to display on the interface.
10.0.700 497
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
1. Click the User ID button to find and select the user you want to update.
2. Click the Language drop-down list, select the language you want this user to see on the application. In
this example, you select the Chinese/Simplified language.
3. Select the Format Culture you need to assign to this user. In this example, you select the Chinese (People’s
Republic of China) culture code.
498 10.0.700
Epicor ICE 3.0 Customization User Guide Localization | Chapter 7
1. Launch the application on the client machine. The Log On window displays.
10.0.700 499
Chapter 7 | Localization Epicor ICE 3.0 Customization User Guide
2. The Main Menu displays. In this example, the Espanol/Mexico localization is used.
3. Each program now displays the text using this localization as well.
500 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
Use the Solution Management module to distribute your new items - custom programs, business objects, new
dashboards, Business Process Management directive groups, user-defined codes, extended properties, and so on - all
at the same time.
Within Solution Workbench, there are two ways of adding items into a solution:
• Tracking your current activity within the ICE environment.
• Adding the existing items into a solution.
To define which items you want to track when building your solution, select an appropriate Solution Type. The Epicor
ERP application comes with a series of delivered solution types, but users can define their custom types using the
Solution Type Maintenance.
A Solution Type is a collection Elements (items) you want to track within the type. The Epicor ERP application comes
with a series of predefined elements, such as BAQs or Dashboards, but users can define their custom elements using
the Element Maintenance.
A user creating an element type should understand the current Epicor database structure, business objects, and
application framework.
User Maintenance
Only specific users have rights to create solutions and install solutions. You give users these rights through User
Account Maintenance.
Navigate to User Account Maintenance.
Menu Path: System Setup > Secutiry Maintenance > User Account Security Maintenance
10.0.700 501
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
1. Use Detail sheet to find and select the user record you need.
3. Select the Can Create Solutions check box if the user can build a solution in the Solution Workbench
by exporting and packaging objects that are part of the solution into a .cab file.
4. Select the Can Install Solutions check box if this user can install a solution created in Solution Workbench
within another Epicor environment.
502 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
Solution elements are application items you can track in your solution. Through Element Maintenance, you
can review delivered elements, create custom elements and duplicate existing ones which you may use as a basis
for custom ones.
Navigate to Element Maintenance.
Menu path: System Management > Solution Management > Solution Element Entry
2. Now click the Search button. All the current elements display in the Search Results grid.
4. Click OK.
10.0.700 503
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
504 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
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.
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.
4. Click OK.
5. The following table displays the installed solution types as the list of default solution types and how you can
use them.
10.0.700 505
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
<blank> This type does not filter activity by elements. Instead, it tracks an activity of a user in the
ICE environment, which includes performing insert, update and delete operations against
ICE tables.
When you select this type in the Solution Workbench, the Tracked sheet displays
elements based on the performed activity. You can use this information to identify and
create custom elements you would like to track in a solution later.
With this option selected, the Move Tracked To Solution and Add To Solution options
are disabled in the current solution. The information in the Solution Workbench displays
for your information only.
You can also create custom solution types. In this example, you will create a solution type that only tracks the
dashboard solution element.
506 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
5. Click the Down Arrow next to the New button; select New Solution Type Detail.
8. Click Search. The Search Results grid displays the list elements you can add to your solution type.
10.0.700 507
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
Solution Workbench
Use the Solution Workbench to create a solution that contains objects you wish to bundle together.
Through this program, you generate a .cab file that contains the files and data for the solution. You then distribute
this file to other Epicor environments. The files you can add to a solution include code projects, configuration
documents, xml files, and so on. Certain files can be 'flagged' so that during installation the user is prompted
where those files should be placed on the destination server when the .cab file is installed.
There are two ways you can add items into a solution:
• Track your activity within the ICE environment.
• Add the existing items into a solution.
Within the Solution Workbench program, you can perform the following activities:
• Create and build a solution.
• Install an existing solution to integrate with the local Epicor application environment.
• Export a solution definition.
• Import an existing solution definition as a base for a new solution.
• Access the Solution Type Entry and Solution Element Entry to review delivered solution types and elements,
or to create new ones, based on your needs.
Use the Solution Workbench program to create a .cab file which contains objects you wish to bundle together
and distribute to other locations within your organization, from one Epicor application server to another.
Navigate to Solution Workbench.
Menu Path: System Management > Solution Management > Solution Workbench
508 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
4. Click Search to search for and select a type you want to use.
7. Click OK.
10.0.700 509
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
8. For the Description, enter Custom Dashboard and BAQs. This value displays during the installation
process; it gives an overall explanation about what the solution contains.
9. Use the Internal Notes field to enter additional information on the solution. Enter "This solution contains
CustomerList dashboard and BAQ examples." When you build the solution, this text is automatically
converted into a readme.txt file which is bundled with the .cab file. It also displays within a field during
the installation process.
This workshop demonstrates how to track the activity you want to include in the solution.
You first select the solution record you want to track your activity. The process of selecting a solution varies
depending on which mode you use to run Epicor ERP:
1. When you run the application using the Classic Style , on the Main Menu, select Options > Solution
Tracking.
510 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
2. When you run the application using the Modern Shell Style, on the Home Page, click the Settings tile.
4. On the Change Current Tracked Solution window, select the MySolution record.
5. Click OK.
Navigate to Dashboards.
Menu Path: Executive Analysis > Business Activity Management > General Operations > Dashboard.
10.0.700 511
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
1. In this example, create a custom dashboard that displays the list of customers.
3. Click on the Tracked sheet. The dashboards you created automatically display in the right grid.
Notice the tracked item has a Selected check box by default; if you do not want to include this item in your
solution, clear its Selected check box. In this example, leave the check box selected.
4. Click Move Tracked to Solution. This will move the selected items you tracked into the solution.
512 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
You can also manually add element to a solution. In this task, you will add an existing BAQ records to the solution.
2. The Solution Element Search window displays. From the Available Elements list, select BAQ.
3. Click Search.
10.0.700 513
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
7. In this example, you select several BAQs you want to add to the solution and click OK.
8. The selected Solution Items grid now displays the dashboards and the selected query.
9. Click the Add To Solution button. The Solution Element Search window closes.
10. Click on the Detail > Solution tab. The dashboard and selected BAQs display on the grid.
514 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
Build a Solution
• Before you run this command, finish adding the items and
files you want included within your solution.
• Your user account must have the Can Build Solution
privileges enabled in User Account Security Maintenance.
To build a solution:
1. Click on the Actions menu and select Build Solution. The Build Solution window displays.
2. Notice you can define some Settings for the new .cab file:
• Encrypt Source Code - Select this check box to create a secure .cab file. The compiled .cab file solution
then contains encrypted project files, preventing materials and property from being viewable during the
distribution process. Even if the project does not build correctly, the files are encrypted and a user cannot
see the files as unencrypted.
• Create Code Documentation - Select this check box to automatically generate .xml documentation
for the generated assemblies on custom project items.
10.0.700 515
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
• Prompt for CAB File Name and Location - Select this check box to display a directory path window.
User this window to define the path where you want to place the .cable file sand enter the filename to
use for the solution. by default the .cab file is created in the application client directory.
3. For this workshop, select the Prompt for CAB File Name and Location checkbox.
6. Because you prompted for the file location, the Save CAB File window displays. Notice the file is saved in
the //Epicor/ERP10/ERP10.0.XXX/Client directory (where XXX is the current service pack for the Epicor
application).
7. Click Save.
The .cab file is created and ready to import. This cab file now contains the code, file, and data definitions you
supplied in the definition of the solution. Notice the .cab file name is assembled by placing the filename, type
value, and version number together.
516 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
Install a Solution
1. Return to the Menu screen. In this example, switch to another company where you will install the solution.
4. Click on the Actions menu and select Install Solution. The Install Solution window displays.
5. Click on the Solution File button to navigate to the folder that contains the generated .cab file. For this
example, navigate to the \\Epicor\ERP10\ERP10.0.100\Client folder.
10.0.700 517
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
7. Click Open.
8. In the File Conflicts group box, indicate the method by which you want the Solution Workbench to handle
file conflicts.
518 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
9. In this example, select the Automatically overwrite duplicate files radio button option.
10. Now in the Data Conflicts group box, indicate the method by which you want the Solution Workbench to
handle data conflicts. The available options include:
• Automatically overwrite duplicate data - Select this radio button option to automatically overwrite
all the affected data within the client directory.
• Prompt for each data conflict - Select this radio button option to review each data conflict encountered
during the import process. You can then decide whether to override the conflicting data or leave this
data in its original state.
11. For this workshop, select the Automatically overwrite duplicate data radio button option.
12. When you are ready, click the Install button. The installation progress displays within the Installation
Output field.
13. When installation is complete, click the Close button. The solution is installed within this company in the
Epicor application.
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
10.0.700 519
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
2. Click DefinitionID.
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
520 10.0.700
Epicor ICE 3.0 Customization User Guide ERP 10 Solution Management | Chapter 8
8. In the BAQ, click the Query ID... button to launch the Business Activity Search Form window.
9. Click Search.
10. Verify the BAQs you added to the solution have been created in Epicor Distribution company.
10.0.700 521
Chapter 8 | ERP 10 Solution Management Epicor ICE 3.0 Customization User Guide
522 10.0.700
Epicor ICE 3.0 Customization User Guide Index
Index
A create favorites groups 71
create the style library 51
activate personalization mode 102 custom code (fix) 398
activate style tracking 49 custom fields 318
event handlers, otrans_ 247 custom fields, custom columns 321
adapters 261 custom fields, synchronize table 322
adapters, what displays 262 custom fields, user-defined table 319
add external shortcuts to the favorites bar 70 custom grid 290
add internal shortcuts to the favorites bar 70 custom grid, event wizard 292
adjust column width 92 custom grid, launch user defined table as child wizard 290
advanced personalization options 101 custom object explorer 252
alternate interfaces, customizing 167 custom object explorer, launch 252
alternate interfaces, launch developer mode 169 custom session options 130
alternate interfaces, mes developer icon 167 custom xml editor 294
application cache (clear) 405, 407 custom xml editor, custom controls 296
application cache (display) 405 custom xml editor, custom properties 297
assembly reference manager 263 custom xml editor, xml view 295
assembly reference manager, how to use 264 customization code wizards 267
assign personalization privileges 101 customization code wizards, launch wizard 268
assign styling rights in user maintenance 14 customization form wizards 182
auto hide sheets 89 customization maintenance log 404
autoload favorites groups 72 customization maintenance log (display) 404
customization management 383
customization rights 118
B customization rights, assign 118
baq zone process 335 customization tools dialog 126
baq zone run mode 340 customization tools dialog, tree view 127
baq zones 335 customization tools dialog, wizards and script editor 128
begin personalization 104 customization/personalization (run, modify) 393
business activity query (create) 335 customization/personalization (verify selected) 390
business logic assembly references wizard 269 customization/personalization maintenance 384
business object method call wizard 286 customizations/personalizations (export) 387
customizations/personalizations (import) 388
customizations/personalizations (review, update, delete) 385
C customizations/personalizations (verify all) 392
customizations/personalizations (verify group) 392
cached resource information (reset) 473 customizations/personalizations (verify) 389
case study – new button theme 51
change column order 92
change language in status bar (classic style) 477 D
change language options menu (classic style) 476
change language settings menu (modern shell) 474 data dictionary viewer 303
change the font type and foreground color 107 data dictionary viewer – field report 305
change the location and size 108 data dictionary viewer – field view 304
change the look of ui roles 24 data dictionary viewer – table view 303
change the tab stop and text 110 data object, epidataview object 260
child epiretrievercombo, add 443 data objects 259
clear application cache 405 data objects, what displays 259
code type as an extended property (add) 330 database viewing tools 302
components in the used by section 35 debug customizations 298
context menu (create) 315 debug customizations, launch debug mode 298
context menu (edit) 312 default theme retrieval 50
context menu (test) 314 define additional options for ui role 30
context menu maintenance 312 define component role settings 53
context menus (deploy new) 317 define overall styles for ui role 31
country group and country codes 461 define ui role settings 54
create a child style filter 39 delete personalizations 116
10.0.700 523
Index Epicor ICE 3.0 Customization User Guide
deployment (add custom program) 371 foreign key view, like property 234
deployment (copy custom program) 374 form event wizard 212
deployment (create custom sub process) 377 form event wizard, available events 215
deployment (menu maintenance) 379 form event wizard, multiple conditions 214
deployment (process calling maintenance) 381 form event wizard, single condition 212
deployment (replace existing program) 371
deployment (sub program) 376
deployment (test the sub process program) 383
G
developer mode 119 general options 75
developer mode, activate 120 generate web forms 401
developer mode, launch 124 generate web forms (verify form availability) 404
developer mode, launch customization tools dialog 125 generate web forms (verify web access uniform resource locator)
developer mode, program customization 125 402
dialogs options 80 global customization tools 311
disable memory caching 124 global options - hot keys 82
docking sheets 85 global options - status bar 82
globally save the styling 58
E grid filters 94
grid settings 131
elements, add 140 grid size 131
elements, hide 134 grid split option 93
elements, hide example 134 grid, add 158
elements, hide, move, and add 134
elements, move 136
elements, move example 136
H
embedded customization (attach the baq zone) 338 hide columns in a grid 112
enable show summaries 98 hot keys options 80
epicor web access customizations 385
epiretrievercombo box, add 154
epiretrievercombo, add 419 I
epiretrievercombo, modify properties 422
event handlers 245 image browser (add images using) 333
event handlers, aftergetbyid() 247 image column wizard 202
event handlers, destroycustomcode() 245 image column wizard, add column 202
event handlers, initializecustomcode() 245 image column wizard, add rule 203
event handlers, retrieve() 246 image column wizard, row rule wizard 206
event handlers, trackerqueryrowchanged() 247 image column wizard, use row rule wizard 207
event sequence for shutdown 248 import a personalization 115
event sequence for startup 248 import resources 22
event wizard 223 import, export, and delete personalizations 114
event wizard, button click event 223
event wizard, grid event 226 L
export a personalization 114
export customizations 165 language (export) 470
export customizations, export the file 165 language culture (change) 472
extended property maintenance 324 language files (purchase) 462
extended property maintenance (attach the baq zone) 337 language maintenance 462
extended property maintenance, select dataset 324 languages (change) 474
extended property maintenance, update properties 325 languages (install) 462
extended property wizard 270 launch style filter manager 38
launch the runtime stylist 18
load style theme 15
F localization layer 479
favorites bar user privileges 68 localization layer (create) 479
field help 306 localization layer (use) 483
filter inheritance priorities 48
floating sheets 87 M
force validation 400
foreign key view 227 main menu deployment 370
foreign key view data, display 230 manage component role settings 32
foreign key view, create 228 manage resources 21
foreign key view, image column 235 manage shared object role settings 34
524 10.0.700
Epicor ICE 3.0 Customization User Guide Index
10.0.700 525
Index Epicor ICE 3.0 Customization User Guide
526 10.0.700
Additional information is available at the Education and
Documentation areas of the EPICweb Customer Portal. To access
this site, you need a Site ID and an EPICweb account. To create an
account, go to http://support.epicor.com.