You are on page 1of 50

What's New in Epicor 10

Product Configurator
Rob Ainsley

2014 Epicor Software Corporation


Agenda

Configurator Setup Not based on Part Revision

Configurator Designer

Data Lookup tables

Dynamic lists

User Defined Methods

Document Rules & Method Rules

Migration

2014 Epicor Software Corporation


Configurator Setup

2014 Epicor Software Corporation


Configurator Setup

Epicor 9 Configurator = Part Number & Revision

Create Part
Create Revision
Actions
Configurator

Single UI for
Inputs
Document Rules
Methods Rules
ETC

2014 Epicor Software Corporation


Epicor 10 ERP Configurator

Configurator split into 3 Separate UIs


Configurator ID <> Part Number
Single configurator can be used by Multiple Products

Configurator Entry

Configurator Designer

Configurator Rules entry

2014 Epicor Software Corporation


Configurator Entry
Type (Product configurator or Inspection Plan)
Document rules
Pricing
Smart string
Part Creation
Approval

2014 Epicor Software Corporation


Configurator Designer
Define Input Pages
Input Rules

2014 Epicor Software Corporation


Configurator Rule Entry
Attach Configurator to Part Revision
Define Method rules for Configurator & Part Rev combination

2014 Epicor Software Corporation


Designer

2014 Epicor Software Corporation


UI Events
Configurator level events
Page level events
Field level events

Code Editor
Improved Designer

Demo

2014 Epicor Software Corporation


Configurator Events
Configurator Event Execution DB Access Comment
On Load Server Yes First event
On Loaded Client No Executed after first Page On Load
On Complete Client No Executed after last Page On Leave
On Save Server Yes Executed in reverse order

Multi-level configurators having keep when rules on


sub configurators:
On Save event of the top configurator is always executed last
EQM Set Pass/Fail event is moved to the Configurator
On Complete event.

2014 Epicor Software Corporation


Configurator Events Configurator Designer

2014 Epicor Software Corporation


Page Events
Page Event Execution DB Access Comment
Read Only Client No Replacement for Page Prompt When
On Load Server Yes Page is not visible yet
On Loaded Client No Page is visible
On Leave Client No

If database access is needed in On Leave event


Call a server side User Defined Method
Server side UD Methods can be called from any client side
event for indirect database access

2014 Epicor Software Corporation


Page Events

2014 Epicor Software Corporation


Field Events

Field Event Execution DB Access Comment


Read Only Client No Replacement for Field Prompt When
On Validated Client No Custom validations before
committing to UI
On Changed Client No Replacement for Field On Leave
On Clicked Client No Button event

The Button has only two events: Read Only and On


Clicked

2014 Epicor Software Corporation


Field Events

2014 Epicor Software Corporation


Code Editor
Same look and feel as the BAQ and BPM editors
Drag and drop
Intellisense
Color coding
Syntax check
Specific features depending on where the code editor is used:
Context functions (Company ID, User, Order Number, )
Target Entities (Quote, Order, Job, PO, Demand, Web Basket)
User defined methods
Look up functions
Method rule variables
Document rule variables
Refresh functions (Dynamic List, Events)
EQM Set Pass/Fail (only available in Configurator On Complete event and EQM)
The Expression Builder can be used multiple times within an
expression

2014 Epicor Software Corporation


Code Editor

2014 Epicor Software Corporation


Code Editor Expression Builder

2014 Epicor Software Corporation


Improved Designer

Lightweight Designer
Moved method rules to a new UI: Method Rule Entry
Moved non designer features to configurator Entry
Search Filter Input fields
Dockable Tool Box
Field and Page properties listed in a property grid
New: Button control

2014 Epicor Software Corporation


Data Lookup Table

2014 Epicor Software Corporation


Data Lookup Table

Define and store your spreadsheet data


Stored in the database
Re-usable (template) column sets
Direct entry of data in detail sheet (paste insert)
Import & export of detail sheet from/to csv file
Global table Enterprise Configurator
Accessible for any configurator
Available without configurator license
Accessible via BAQs: PcLookup..

2014 Epicor Software Corporation


Lookup in a BAQ

Dynamic List
Source = Data lookup Method
Table = PCModels
Data Lookup = Data Column Lookup List

2014 Epicor Software Corporation


Data Lookup Table

2014 Epicor Software Corporation


Data Lookup Functions
9 out-of-the-box functions to retrieve data from the lookup tables
Lookup.DataLookup (lookupTable, columnName, rowName)
Lookup.DataRow (lookupTable, rowName)
Lookup.DataRowListNum (lookupTable, rowName)
Lookup.DataRowRange (lookupTable, rowName, startCol, endCol)
Lookup.DataRowLookup (lookupTable, rowName, searchValue)
Lookup.DataColumn (lookupTable, colName)
Lookup.DataColumnListNum (lookupTable, colName)
Lookup. DataColumnRange (.Table, colName, startRow, endRow)
Lookup.DataColumnLookup (lookupTable, colName, searchValue)

Data lookup functions are available to both client and server side
expressions
Available as data source for Dynamic Lists

2014 Epicor Software Corporation


Data Lookup Functions

2014 Epicor Software Corporation


Dynamic Lists

2014 Epicor Software Corporation


Dynamic Lists

A conditional data source for combo-boxes


Condition: Boolean expression: return true;
4 data source options
1. Predefined list of values and descriptions
2. BAQ with filter criteria and multiple description columns
3. Data Lookup functions
4. User Defined Methods returning a string
Dynamic Lists are only built upon page load.
Use Refresh.DynamicList(Options,Colors) to rebuild
one or more Dynamic Lists when needed.

2014 Epicor Software Corporation


Dynamic Lists Predefined List

2014 Epicor Software Corporation


Dynamic List - BAQ

2014 Epicor Software Corporation


User Defined Methods

2014 Epicor Software Corporation


User Defined Methods
Centralize code
Re-use code
Optimize performance:
Execute on Client compiled into the run-time client
Available to Client events only
Input Fields are available
Data lookup functions are available
Execute on Server database access
Available to Client events, Document and Method rules
Bound to single configurator
Sync with Enterprise Configurator

2014 Epicor Software Corporation


User Defined Method

2014 Epicor Software Corporation


Document Rules

2014 Epicor Software Corporation


Document Rules
Write Document Rules in Configurator Entry
Pricing is a feature within Document Rules
Based on enabled target entities modify data:
Quote Header, Quote Line
Order Header, Order Line
Demand Header, Demand Line
ECC Web Basket Item (Epicor Commerce Connect)
Purchase Order Header, Purchase Order Line
Job Header
Part (when Part Creation is enabled)

2014 Epicor Software Corporation


Document Rules
Two levels:
Rule Conditions
Always Execute (Default)
The target entity is equal to Specified value
Column Specified of target entity is equal to Specified value
The Specified expression is equal to true
Session parameter Specified is equal to Specified value
Current user belongs to Specified user group
Rule Actions
Set Specified field of target entity to Specified value
Set Specified configurator pricing to Specified constant value
Set Specified configurator pricing to Specified expression value
Execute Specified expression (Free Form expression)

2014 Epicor Software Corporation


Pricing

2014 Epicor Software Corporation


Method Rules

2014 Epicor Software Corporation


Method Rules

Write Method Rules in Configurator Method Rules


Entry
Modify data based on enabled target entities:
Job Assembly, Job Material, Job Operation & Job Operation
Detail
Quote Assembly, Quote Material, Quote Operation & Quote
Operation Detail
Test Rules Report replaced by Test Rules Tracker
Test Rules Engine uses the same code line as the Run-
Time Rules Engine.

2014 Epicor Software Corporation


Method Rules
Three levels
Method Rule Set: Keep When condition
The Specified expression is equal to true
Method Rule Conditions
Always Execute (Default)
The target entity is equal to Specified value
Column Specified of target entity is equal to Specified value
The Specified expression is equal to true
Session parameter Specified is equal to Specified value
Current user belongs to Specified user group
Method Rule Actions
Set Specified field of current element to Specified value
Set Specified field of target entity to Specified value
Execute Specified expression (Free Form expression)
Execute Specified rule function

2014 Epicor Software Corporation


Method Rules

2014 Epicor Software Corporation


Test Method Rule Tracker
Test input tracker replaces the test inputs report
Tracker displays full tree
Items with an exclamation mark are not kept
Each item displays its value

2014 Epicor Software Corporation


Migration

2014 Epicor Software Corporation


Migration

All layouts are converted automatically


All single statements are converted automatically
All configurations are upgraded automatically
Free Form (multi-line) expressions have to be
manually converted

Pricing Rules moved to Document Rules


Part and QuoteDtl Method Rules moved to Doc Rules
Most Page Settings disappeared: use new features like
On Load(ed) events and Refresh functions.

2014 Epicor Software Corporation


How to convert Progress ABL to C#

Use the Conversion Portal


Used by Epicor Development
Optimized for Epicor ERP
Convert snippet by snippet
Use internet to find C# syntax
Test behavior
Code may compile but results might be different than
expected

2014 Epicor Software Corporation


C# versus Progress ABL

ABL is forgiving, C# is not


ABL does things behind the scenes for you but you
have no control
Transaction Locking
Data type conversion
Case, abbreviations
C# is Case Sensitive
C# is rich and precise: details are important.
With C# you are in control; You have to take control

2014 Epicor Software Corporation


Progress ABL C#: Snippet 1
Progress ABL Code:

C# Code:

2014 Epicor Software Corporation


Tips & Tricks

2014 Epicor Software Corporation


Tips & Tricks

Use UD Methods to query database in client


expressions
Use UD Method to centralize code for maintainability
Use Data lookup functions and BAQs to query data
lookup table
Use Data lookup table outside the configurator
Use Refresh functions to optimize performance

2014 Epicor Software Corporation


Tips & Tricks
Use Reflection to call Epicor business objects or custom
assemblies
Use LINQ queries to retrieve data from the database
(blocked for Express customers)
Use the expression builder to learn C# syntax
Do not forget the semicolon ; at the end of every
statement
Use return for each code path for logical conditions
Clear these server folders to regenerate server code:
C:\inetpub\wwwroot\erp10\customizations\pc
C:\inetpub\wwwroot\erp10\BPM\builds\pc
C:\inetpub\wwwroot\erp10\BPM\sources\pc
Clear the client\pclibrary folder to regenerate the client

2014 Epicor Software Corporation

You might also like