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

Epicor ICE 3.

0
Tools
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 3:14 p.m.
Total pages: 813
sys.ditaval
Epicor ICE 3.0 Tools User Guide Contents

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

Chapter 1: Business Activity Queries.............................................................18


Database Viewing Tools.................................................................................................................................18
Data Dictionary Viewer...........................................................................................................................19
Data Dictionary Viewer – Table View................................................................................................19
Data Dictionary Viewer – Field View.................................................................................................20
Field Help...............................................................................................................................................21
System Queries..............................................................................................................................................24
View System Queries..............................................................................................................................24
New Business Activity Query..........................................................................................................................26
The General Sheet..................................................................................................................................26
Define Business Activity Query Attributes.........................................................................................26
The Query Builder...................................................................................................................................28
Phrase Build - Add Table..................................................................................................................28
Phrase Build - Additional Controls....................................................................................................29
Phrase Build – Table Relations..........................................................................................................31
Table Relations - Predefined Dictionary Relations......................................................................32
Table Relations - Manually Connect Tables...............................................................................34
Phrase Build – Table List...................................................................................................................36
Phrase Build – Table Criteria............................................................................................................37
Phrase Build - SubQuery Criteria......................................................................................................42
Phrase Build – Filter Values.......................................................................................................45
Specified table field value.........................................................................................................45
Specified constant....................................................................................................................46
Specified Expression.................................................................................................................47
Specified parameter.................................................................................................................47
BAQ special constant................................................................................................................51
Current date + specified number of days..................................................................................52
Select Value(s) of Field From Specified Subquery.......................................................................53
Operation Specific Filters..........................................................................................................54
Phrase Build - Function Call Parameters............................................................................................55
Add Function Call Parameter Values.........................................................................................55
Phrase Build - Pivot SubQuery FOR Clause........................................................................................57
Aggregate Data Using Pivot......................................................................................................57
Display Fields...................................................................................................................................65
Column Select..........................................................................................................................65
Select Display Columns - TopLevel, CTE, InnerSubQueries.........................................................65
Select Columns - Set Operator Type SubQueries.......................................................................68
Create a Calculated Field..........................................................................................................72

ICE 3.0 | 10.0.700 3


Contents Epicor ICE 3.0 Tools User Guide

Calculated Field: Example One..................................................................................................76


Calculated Field: Example Two..................................................................................................76
Calculated Field: Functions.......................................................................................................77
Calculated Field: Operators.......................................................................................................82
Calculated Field: BAQ Constants..............................................................................................84
Advanced Group By Clause Editor............................................................................................86
Create Group By Expression.....................................................................................................87
Sort Order................................................................................................................................91
SubQuery Options...........................................................................................................................92
Define Main SubQuery.............................................................................................................93
Create SubQuery......................................................................................................................96
SubQuery List..................................................................................................................................98
Updatable Business Activity Query........................................................................................................100
User Rights....................................................................................................................................100
General Properties.........................................................................................................................102
Updatable Query Settings.......................................................................................................102
Define Updatable Fields..........................................................................................................104
Updatable Field Editor............................................................................................................105
Update Processing.........................................................................................................................107
Service Connect Workflow.....................................................................................................108
Create Service Connect Workflow..........................................................................................110
Configure Workflow Parameters.............................................................................................110
Standard Template Workflow.................................................................................................111
BPM Update Processing..........................................................................................................113
Column Mapping...................................................................................................................114
Advanced BPM Processing......................................................................................................117
Analyze................................................................................................................................................120
Analyze and Test the Query...........................................................................................................120
Test the Updatable Query..............................................................................................................122
Where Used..........................................................................................................................................128
BAQ Search..........................................................................................................................................129
Actions.................................................................................................................................................131
Copy Query...................................................................................................................................131
Export Query Definition.................................................................................................................133
Import Query Definition.................................................................................................................134
Change BAQ Author.....................................................................................................................135
ASP Page Generation.....................................................................................................................136
Complete the ASP Page..........................................................................................................138
Run BPM Designer.........................................................................................................................140
Define Custom Action...................................................................................................................141
Define Parameter...........................................................................................................................142
Execution Settings.........................................................................................................................143
Get Query Execution Plan..............................................................................................................146
Export Query Data.......................................................................................................................................148
BAQ Application Server Settings...................................................................................................................150

4 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Contents

BAQ Info Zones............................................................................................................................................152


Activate a BAQ Zone.............................................................................................................................153
BAQ Best Practices.......................................................................................................................................153
Case Studies................................................................................................................................................155
Labor Summary BAQ............................................................................................................................155
Define the Query...........................................................................................................................155
Select and Create Columns for Display...........................................................................................157
Not Clocked Out BAQ...........................................................................................................................160
Define the Query...........................................................................................................................160
Select Columns for Display............................................................................................................162
Supplier Record Updatable BAQ............................................................................................................164
Define the Query...........................................................................................................................164
Define Basic Processing Details......................................................................................................166
Update and Create Supplier Records..............................................................................................167
Using Inner SubQueries.........................................................................................................................172
Create Open Orders SubQuery......................................................................................................172
Select Columns..............................................................................................................................173
Create Closed Orders SubQuery....................................................................................................175
Select Columns..............................................................................................................................176
Create TopLevel SubQuery.............................................................................................................176
Select BAQ Display Columns..........................................................................................................178
Test the BAQ.................................................................................................................................179
Combine Results Sets Using Union........................................................................................................179
Create TopLevel BAQ.....................................................................................................................180
Create Order View SubQuery.........................................................................................................183
Create Invoice View SubQuery.......................................................................................................187
Create Query Parameter................................................................................................................190
Test the BAQ.................................................................................................................................192
Intersect and Except SubQuery Type.....................................................................................................194
Create TopLevel BAQ.....................................................................................................................194
Create Intersect SubQuery.............................................................................................................197
Use Except SubQuery Type............................................................................................................200
Common Table Expression Query..........................................................................................................201
Create CTE SubQuery....................................................................................................................201
Create Query Parameter................................................................................................................202
Select Columns..............................................................................................................................205
Define UnionAll SubQuery.............................................................................................................207
Select Columns..............................................................................................................................209
Create TopLevel SubQuery.............................................................................................................211
Test the BAQ.................................................................................................................................212

Chapter 2: External Business Activity Queries............................................215


External Datasource Type Maintenance........................................................................................................215
Create New Datasource Type................................................................................................................216

ICE 3.0 | 10.0.700 5


Contents Epicor ICE 3.0 Tools User Guide

Create New Filter Group.......................................................................................................................217


Add New Definition..............................................................................................................................217
Apply Table Filter..................................................................................................................................219
Apply Column Filter..............................................................................................................................220
External Datasource Maintenance................................................................................................................221
Create an External Datasource..............................................................................................................223
Use the Distribution sheet.....................................................................................................................226
Export Datasources...............................................................................................................................227
Import Datasources...............................................................................................................................228
32 Bit vs 64 Bit ODBC...........................................................................................................................229
External Datasource Metadata Maintenance.................................................................................................231
Retrieve External Tables........................................................................................................................232
Use Table List........................................................................................................................................234
Modify Field Properties.........................................................................................................................234
Enable External DataSources........................................................................................................................235
Design External Business Activity Query........................................................................................................237

Chapter 3: BAQ Report Designer..................................................................239


About the BAQ and BAQ Report Datasets....................................................................................................239
Review a Standard BAQ Report Interface......................................................................................................240
Review BAQ Report Options for SSRS Reports..............................................................................................242
Create a BAQ Report...................................................................................................................................243
Add the New BAQ Report.....................................................................................................................244
Add Option Fields to the New Report....................................................................................................247
Perform an Initial Test of the New BAQ Report......................................................................................248
Design the BAQ Report Layout in Report Builder...................................................................................251
Add the BAQ Report to the Epicor ERP Application...............................................................................258
Customize a BAQ Report.............................................................................................................................261

Chapter 4: Searches.......................................................................................267
Default Search Interface...............................................................................................................................267
Default Features...................................................................................................................................268
Hot Key Searches.........................................................................................................................................270
Quick Searches............................................................................................................................................271
Create a Quick Search..........................................................................................................................272
Activate Quick Search Functionality................................................................................................272
Create a Quick Search – Detail Sheet.............................................................................................273
Create a Quick Search – Criteria....................................................................................................276
Test a Quick Search.......................................................................................................................280
Display a Quick Search..........................................................................................................................281
Quick Search Tab...........................................................................................................................281
Context Menu Options..................................................................................................................282
Default Search Program.................................................................................................................284
Business Activity Query Searches..................................................................................................................285

6 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Contents

Enable BAQ Search Fields......................................................................................................................286


Use a BAQ Search.................................................................................................................................287
Advanced Searches......................................................................................................................................289
Access and Use an Advanced Search.....................................................................................................289
Named Searches..........................................................................................................................................290
Create a Named Search........................................................................................................................290
Named Search Details...........................................................................................................................293
Named Searches – Auto Populate Data.................................................................................................294
Named Searches – Auto Load Search....................................................................................................296
Override Search Options..............................................................................................................................297
Data Tag Searches.......................................................................................................................................297
Add Data Tags to a Record...................................................................................................................298
Add Data Tags to Records in a Grid......................................................................................................300
Perform a Data Tag Search...................................................................................................................301
Data Tags and BPM Directives...............................................................................................................302
Data Tag Maintenance..........................................................................................................................302
Enterprise Search.........................................................................................................................................305
User Account Maintenance...................................................................................................................305
Smart Client Enterprise Search..............................................................................................................307
Web Client Enterprise Search................................................................................................................310
Enterprise Search Filter Options.............................................................................................................312
Predictive Search..........................................................................................................................................313
Activate Predictive Search Functionality.................................................................................................314
Define Source BAQ...............................................................................................................................315
Create Predictive Search.......................................................................................................................318
Test Predictive Search...........................................................................................................................320

Chapter 5: Dashboards..................................................................................321
Standard System Dashboards.......................................................................................................................321
Navigate in a Dashboard.......................................................................................................................322
Conduct an Advanced Search...............................................................................................................324
Authorization...............................................................................................................................................325
Assign Dashboard Developer Privileges.................................................................................................326
Dashboard Creation.....................................................................................................................................327
Launch the Dashboard and Switch to Developer Mode.........................................................................327
Add a Query to the Dashboard.............................................................................................................329
Add the Query...............................................................................................................................330
Modify Query Properties.......................................................................................................................333
Modify Query Properties - General Properties.................................................................................334
Modify Query Properties - Publish to Title Bar.................................................................................335
Modify Query Properties – Apply Filters to a Query.........................................................................336
The Grid View.......................................................................................................................................338
The Grid Properties Window..........................................................................................................338

ICE 3.0 | 10.0.700 7


Contents Epicor ICE 3.0 Tools User Guide

Modify Grid Properties – Change Display Columns and Enable Group By and Summarization
in a Grid............................................................................................................................338
Modify Grid Properties - Change the Grid Display...................................................................341
Modify Grid Properties - Apply a Filter to a Grid......................................................................344
Add a New Grid View to the Dashboard.................................................................................345
Modify Grid Properties - Add a Rule to Highlight Cells............................................................348
Modify Grid Properties - Add an Image Column to a Grid Based on a Rule..............................351
The Chart View.....................................................................................................................................354
The Chart Properties Window........................................................................................................354
Add a Chart View to the Dashboard.......................................................................................354
Chart Settings...............................................................................................................................357
Modify Chart Settings............................................................................................................357
The Tracker View..................................................................................................................................359
The Tracker Properties Window.....................................................................................................360
Add a Tracker View for an Advanced Search...........................................................................360
Add an Advanced Search with Range.....................................................................................362
The Gauge View...................................................................................................................................368
The Gauge Properties Window......................................................................................................368
Add a Gauge View to the Dashboard.....................................................................................368
The URL/XSLT View...............................................................................................................................370
URL/XSLT Properties.......................................................................................................................370
Add a URL Link to Display the Customer Website...................................................................371
The Process Link...................................................................................................................................372
Process Link Properties...................................................................................................................373
Add a Process Link for Customer Entry...................................................................................373
Publish and Subscribe Functionality..............................................................................................................375
Add a Secondary Query to Display Line Item Shipment Information.......................................................375
Publish..................................................................................................................................................377
Publish Fields from a Query............................................................................................................377
Subscribe..............................................................................................................................................378
Apply a Filter that Subscribes to the Published Order and Line Number..........................................378
The Dashboard Browse................................................................................................................................379
Add a Dashboard Browse to the Dashboard..........................................................................................380
Dashboard User Notes and Tech Notes.........................................................................................................383
Update Dashboard User Notes and Tech Notes.....................................................................................384
Dashboard Properties...................................................................................................................................385
Modify the Dashboard Title Bar.............................................................................................................385
Enable the Dashboard as Advanced Search...........................................................................................387
Dashboard Modification...............................................................................................................................388
Copy a Dashboard................................................................................................................................388
Multi Threaded Save....................................................................................................................................390
Reusing Views..............................................................................................................................................392

Chapter 6: Dashboard Utilities.....................................................................399

8 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Contents

Export and Import Dashboards.....................................................................................................................399


Export...................................................................................................................................................399
Import..................................................................................................................................................401
Build and Deploy a Dashboard to the Main Menu........................................................................................403
Test and Deploy the Dashboard as a UI Application...............................................................................403
Access New Dashboard.........................................................................................................................406
Create and Deploy Mobile Device Dashboards.............................................................................................410
Assign User Privileges............................................................................................................................410
Create a Mobile Device Dashboard.......................................................................................................411
Define Mobile Navigation.....................................................................................................................413
Deploy Mobile Dashboard Device..........................................................................................................416
Mobile Menu Maintenance...................................................................................................................417
Launch Mobile Dashboard....................................................................................................................418
Configure Epicor Mobile Access............................................................................................................420
Select Company....................................................................................................................................422
Change Language................................................................................................................................424
Change Appearance.............................................................................................................................426
Clear Browser Cache............................................................................................................................430
Test a Mobile Dashboard on a Mobile Device........................................................................................430
Dashboard URL Query Phrase Subscribers.....................................................................................................436
Create New Dashboard.........................................................................................................................436
Create URL View...................................................................................................................................437
Epicor SharePoint Publisher..........................................................................................................................440
Create a New Web Part Page................................................................................................................440
Modify a Web Page..............................................................................................................................443
Arrange Views Within the SharePoint Page...........................................................................................447
Adjust the ESP Dashboard.....................................................................................................................449
Web Dasher..........................................................................................................................................452

Chapter 7: Executive Dashboards.................................................................455


ShopVision Module......................................................................................................................................455
How Executive Dashboards Work.................................................................................................................456
Executive Dashboard Setup..........................................................................................................................457
Schedules.............................................................................................................................................457
Process Set Maintenance......................................................................................................................458
The Business Activity Query (BAQ).........................................................................................................458
Executive Dashboard Creation......................................................................................................................459
Create an Executive Dashboard - Overview...........................................................................................459
Executive Query....................................................................................................................................460
What It Adds.................................................................................................................................460
Limitations.....................................................................................................................................460
Create the Base Cube Query..........................................................................................................461
Field Mapping...............................................................................................................................463
Save to Process Set........................................................................................................................465

ICE 3.0 | 10.0.700 9


Contents Epicor ICE 3.0 Tools User Guide

Executive Query Examples.....................................................................................................................467


Example One.................................................................................................................................467
Example Two.................................................................................................................................468
Create a Dimension BAQ......................................................................................................................469
Build the Executive Query Against Data Dimensions.......................................................................472
Schedule a Process Set..........................................................................................................................474
Create BAQs for Executive Dashboard Display.......................................................................................475
Dimension BAQ.............................................................................................................................475
Dimension Details BAQ..................................................................................................................476
Data BAQ......................................................................................................................................477
Create and Deploy a Dashboard...........................................................................................................478
Verify the Process Set............................................................................................................................479

Chapter 8: Business Process Management..................................................481


BPM Base Elements......................................................................................................................................481
User Maintenance........................................................................................................................................482
Directive Scope............................................................................................................................................483
Holds...........................................................................................................................................................484
Hold Type Maintenance........................................................................................................................485
Hold Type Maintenance – How to Use...........................................................................................485
BPM Holds............................................................................................................................................486
BPM Holds – How to Use...............................................................................................................486
Review BPM Holds.........................................................................................................................488
Directives.....................................................................................................................................................489
Method Directives.................................................................................................................................489
Data Directives......................................................................................................................................490
Updatable BAQ Method Directives........................................................................................................490
How it Works................................................................................................................................491
Custom Actions.............................................................................................................................493
How BPM Works..................................................................................................................................493
Standard Execution Flow...............................................................................................................494
Using Business Process Management.............................................................................................494
Create a New Directive.........................................................................................................................495
Locate the Object of the Directive..................................................................................................495
Create the Directive.......................................................................................................................498
BPM Workflow Designer.......................................................................................................................500
General Principles..........................................................................................................................500
Customize Element Block..............................................................................................................502
Availability of Workflow Elements..................................................................................................503
Callers...........................................................................................................................................504
Call BPM Data Form...............................................................................................................504
Call SC Workflow...................................................................................................................505
Execute Custom Code............................................................................................................506
Invoke External Method..........................................................................................................506

10 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Contents

Flow Chart....................................................................................................................................507
Condition...............................................................................................................................507
List of Conditions...................................................................................................................508
Labels............................................................................................................................................515
Attach Data Tag.....................................................................................................................515
Remove Data Tag...................................................................................................................516
Attach Hold............................................................................................................................517
Remove Holds........................................................................................................................518
Other............................................................................................................................................518
Auto Print..............................................................................................................................518
Change Log...........................................................................................................................519
Enable Post Directive..............................................................................................................520
Notify Me...............................................................................................................................520
Raise Exception......................................................................................................................521
Send E-mail............................................................................................................................521
Show Message.......................................................................................................................522
Setters...........................................................................................................................................523
Set BPM Data Field.................................................................................................................523
Set By Query..........................................................................................................................524
Set Field.................................................................................................................................524
Support for Multiple Dirty Rows............................................................................................................525
Dependent Directives...................................................................................................................................525
Primary Directive...................................................................................................................................526
Dependent Directive.............................................................................................................................526
Case Studies................................................................................................................................................526
Make a Field Mandatory.......................................................................................................................526
Add a Method Code......................................................................................................................526
Add a Pre-Processing Directive.......................................................................................................528
Add First Condition.......................................................................................................................529
Extend First Condition...................................................................................................................531
Add First Action.............................................................................................................................533
Add Another Condition.................................................................................................................534
Check for Sales Kit Part.................................................................................................................536
Extend Second Condition..............................................................................................................538
Add Second Action........................................................................................................................540
Test the BPM for the Part Class......................................................................................................543
Test the BPM for the Part Group....................................................................................................545
Create and Use a Hold Type..................................................................................................................546
Create the Hold Type.....................................................................................................................546
Add a Method Code......................................................................................................................548
Add a Pre-Processing Directive.......................................................................................................549
Add an Action...............................................................................................................................552
Add a Pre-Processing Directive.......................................................................................................553
Add an Action...............................................................................................................................556
Add a Post-Processing Directive.....................................................................................................557

ICE 3.0 | 10.0.700 11


Contents Epicor ICE 3.0 Tools User Guide

Add an Action...............................................................................................................................559
Add a Post-Processing Directive.....................................................................................................560
Add an Action...............................................................................................................................562
Add a Method Code......................................................................................................................563
Add a Pre-Processing Directive.......................................................................................................564
Add an Action...............................................................................................................................566
Test the BPM.................................................................................................................................568
Use Auto Print Action...........................................................................................................................569
Locate the OrderHed Table............................................................................................................569
Add Standard Directive..................................................................................................................570
Add an Action...............................................................................................................................573
Define Report Parameters..............................................................................................................575
Test the BPM.................................................................................................................................576

Chapter 9: Custom Business Process Management.....................................579


Execute Custom Code Directive...................................................................................................................579
Create the Data Directive......................................................................................................................579
Test the Data Directive..........................................................................................................................582
BPM Data Form Designer.............................................................................................................................584
Create a BPM Data Form......................................................................................................................585
Add Fields.....................................................................................................................................585
Define Control Values....................................................................................................................586
Create Password............................................................................................................................587
Create or Remove Buttons.............................................................................................................588
Test the Form................................................................................................................................589
Data Form Directive..............................................................................................................................590
Create BPM Data Form Action.......................................................................................................590
Create Send E-Mail Action.............................................................................................................592
Design E-mail Template.................................................................................................................593
Test the BPM Form........................................................................................................................596
External Methods and Workflows................................................................................................................598
Advanced BPM User Rights...................................................................................................................598
Method Arguments..............................................................................................................................599
Programming Interface Generator Form................................................................................................601
.NET Assembly [C#].......................................................................................................................601
.NET Assembly [VB.NET].................................................................................................................603
Service Connect Workflow............................................................................................................604
External Method Logic..........................................................................................................................605
Programming Action Signatures....................................................................................................606
.NET Process [C#]...........................................................................................................................606
.NET Process [VB.NET]....................................................................................................................608
Deploy the External Method.................................................................................................................609
Attach the External Method..................................................................................................................609
Build the Method..........................................................................................................................609

12 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Contents

Test the Method............................................................................................................................613


Custom Code Performance..........................................................................................................................614
Include Field Lists..................................................................................................................................614
Consolidate Queries with Table Joins....................................................................................................614
Collect the Right Rows..........................................................................................................................615
Match Joined Rows...............................................................................................................................615
Always Use FIELD Lists..........................................................................................................................616
Select One Row....................................................................................................................................616
Join Multiple Tables..............................................................................................................................616
Consider a Sort Order...........................................................................................................................617
Use the EACH Statement......................................................................................................................617
Use Correct Locking..............................................................................................................................617

Chapter 10: Global Alerts..............................................................................618


Global Alerts Setup......................................................................................................................................618
Company Maintenance - Email Settings................................................................................................618
Alert Attachments - Shortcut Link.........................................................................................................620
Alert Data Directive for Standard Global Alerts......................................................................................621
Create Data Directive.....................................................................................................................621
Define the Condition.....................................................................................................................622
Define the Send E-Mail Action.......................................................................................................624
Connect the Directive Sequence and Enable the Directive..............................................................626
Standard Global Alerts.................................................................................................................................627
Standard Global Alert for Specific Recipient..........................................................................................628
Activate the Global Alert...............................................................................................................628
Set Up the Work Force..................................................................................................................629
Set Up a Test Sales Order...............................................................................................................630
Trigger the Alert............................................................................................................................631
Alert for Alert Group............................................................................................................................633
Alert Groups..................................................................................................................................633
Activate the Global Alert...............................................................................................................634
Set Up an Alert Group...................................................................................................................635
Set Up a Person.............................................................................................................................635
Assign the Person to a Production Team........................................................................................636
Trigger the Alert............................................................................................................................637
Custom Global Alerts...................................................................................................................................638
Refine the Shortcut Link File..................................................................................................................638
Create the Data Directive......................................................................................................................639
Define the Alert Condition....................................................................................................................641
Define the Send E-mail Alert Action......................................................................................................643
Connect the Directive Sequence and Enable the Directive.....................................................................646
Test the Custom Alert...........................................................................................................................647
Test the Shortcut Link...........................................................................................................................648

ICE 3.0 | 10.0.700 13


Contents Epicor ICE 3.0 Tools User Guide

Chapter 11: Updatable Dashboards.............................................................651


User Account Security Maintenance.............................................................................................................651
Assign Updatable BAQ Rights...............................................................................................................652
Updatable Business Activity Queries.............................................................................................................652
Define an Updatable BAQ.....................................................................................................................653
Set Up the Updatable Query.................................................................................................................654
General Properties................................................................................................................................656
Primary Updatable Properties.........................................................................................................656
Define Updatable Fields.................................................................................................................657
Updatable Field Editor...................................................................................................................659
Update Processing................................................................................................................................661
Advanced BPM Processing.............................................................................................................661
Update Processing.........................................................................................................................663
Analyze................................................................................................................................................667
Update Existing Record..................................................................................................................667
Add New Record...........................................................................................................................670
Customer Contact Updatable BAQ.......................................................................................................672
Define the Query...........................................................................................................................673
Add the Tables..............................................................................................................................673
Link the Role Code Table...............................................................................................................675
Add the Ship To Table...................................................................................................................677
Select Columns for Display............................................................................................................681
Indicate the Sort Order..................................................................................................................684
Define the Updatable Fields...........................................................................................................686
Activate Database Processing.........................................................................................................686
Test the Updatable BAQ................................................................................................................689
Regenerate Updatable BAQs.................................................................................................................693
Updatable Dashboards.................................................................................................................................695
Create a Dashboard..............................................................................................................................695
Add Customer Query............................................................................................................................696
Modify Customer Grid Properties..........................................................................................................699
Add Updatable Contact Query..............................................................................................................700
Modify Contact Grid Properties.............................................................................................................703
Add Tracker View for Contact Query....................................................................................................705
Test Updatable Dashboard....................................................................................................................707
Updatable BAQ Method Directives...............................................................................................................710
Custom Actions....................................................................................................................................711
Default Data to Updatable BAQ Records...............................................................................................711
Publish Dashboard Data.................................................................................................................711
Get the Updatable BAQ Methods..................................................................................................713
New Post-Processing Directive.......................................................................................................714
Select BAQ Directive Action...........................................................................................................715
Define BAQ Directive Action..........................................................................................................716

14 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Contents

More Set Field Actions...................................................................................................................718


Test the Directive...........................................................................................................................719

Chapter 12: Business Process Management Utilities..................................722


Action Processing.........................................................................................................................................722
System Agent.......................................................................................................................................722
BPM Action Process..............................................................................................................................723
BPM Async Processing Log....................................................................................................................724
Directive Management.................................................................................................................................724
Groups.................................................................................................................................................724
Directive Export....................................................................................................................................725
Directive Import....................................................................................................................................726
Import User Rights.........................................................................................................................727
Import Compatibility......................................................................................................................727
Directive Update...................................................................................................................................727
Update a Directive Group..............................................................................................................728
Recompile a Directive Group..........................................................................................................729
Update ESC Credentials.................................................................................................................731
Troubleshooting Actions..............................................................................................................................731
BPM Tracing.........................................................................................................................................731
Client Tracing Log.........................................................................................................................732
BPM Server Logging......................................................................................................................734
Debugging Using Visual Studio.............................................................................................................736
Disable BPM.........................................................................................................................................740

Chapter 13: Epicor Social Enterprise............................................................742


Accessing Epicor Social Enterprise................................................................................................................742
Open Epicor Social Enterprise from Epicor ERP Home Page....................................................................742
Epicor Social Enterprise Home Page and Toolbar...................................................................................744
User Profile Page...................................................................................................................................747
Add Epicor Social Tile to Epicor ERP Home Page....................................................................................748
Open Epicor Social Enterprise in Epicor Classic Mode............................................................................752
Working in the Public Message Stream........................................................................................................752
Locate and Follow Another User...........................................................................................................753
Post a Message to Your Followers.........................................................................................................754
Reply to a Message...............................................................................................................................756
Locate and Join a Public Group.............................................................................................................757
Post a Message to a Public Group.........................................................................................................759
Mentioning a User................................................................................................................................761
Using Hashtags.....................................................................................................................................762
Post Message from Epicor ERP in Context of Current Record.................................................................764
Include an ERP Resource Reference in a Message..................................................................................767
Recommend a Message........................................................................................................................769
Searching in Messages and ERP Data...........................................................................................................770

ICE 3.0 | 10.0.700 15


Contents Epicor ICE 3.0 Tools User Guide

Search in the Message Stream..............................................................................................................770


Search the Data in a Notification Source...............................................................................................772
Following Changes in Epicor ERP Data.........................................................................................................774
Notification Center Page.......................................................................................................................774
Follow Notifications on a Data Record...................................................................................................776
Follow Notifications on a Notification Profile.........................................................................................777
Set up in Epicor ERP to Follow Notifications for a Selected Record.........................................................779
Working in Private Messages and Private Groups..........................................................................................781
Post a Private Message to Another User................................................................................................781
Locate and Join a Private Group............................................................................................................783
Post a Message to a Private Group........................................................................................................785
Interacting with the Message Stream via Email.............................................................................................786
Post a Message to Your Followers from Your Email...............................................................................787
Post a Message to a Group from Your Email.........................................................................................789
Receive a My Stream Daily Email Digest.................................................................................................791
Receive Private Message Email Alerts.....................................................................................................792
Receive Mention Email Alerts................................................................................................................794
Using BPM Directives to Post Data Notifications............................................................................................795
Create a Standard Data Directive with a Notify Me Action.....................................................................796
Verify the Notification Profile.........................................................................................................796
Create the Data Directive...............................................................................................................798
Configure the Notify Me Action.....................................................................................................800
Connect the Directive Actions and Enable the Directive..................................................................803
Test the Data Notification..............................................................................................................804

16 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Introduction |

Introduction

The Epicor ICE 3.0 Tools User Guide explores the data gathering and monitoring 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 manage and display key data for their specific business needs.
The first chapter details how you can generate data automatically through a regular schedule for selected reports,
processes, and dashboards. Next you learn about attaching files, like spreadsheets and CAD designs, to specific
records using the Enterprise Content Management feature set. Then the Reporting Tools chapter explains the
report generation functionality available through the Crystal Reports and SQL Server Reporting Services (SSRS)
programs, describing how these report writers integrate with your Epicor application.
The next chapters examine business activity queries, or BAQs, which are the primary query tools you use for
pulling, displaying, and entering specific data. You can create BAQs that display unique views of data, and also
updatable BAQs that contain fields you activate for data entry. Then the chapters that follow explore how you
incorporate BAQs for custom use on search programs, BAQ reports, smart client dashboards, executive dashboards,
and mobile device dashboards.
The rest of the guide documents the tools you use to regulate, secure, and distribute data throughout your
organization. The Business Activity Manager chapter provides step-by-step instructions on creating specific logs,
email alerts, and automatic reports for database activities you define. Then the Business Process Management
chapter describes how you create method, data, and BAQ directives that ensure data entries are valid and reflect
your business cycle. The guide concludes with chapters that document the methods available for securing your
data and duplicating it for read-only display within other areas of your organization.
Use this guide as a starting point to learn about the available data flow tools and as a reference for later use of
these same tools. This guide is a crucial resource for anyone who monitors data to both manage and enhance
their organization’s unique business practices.

ICE 3.0 | 10.0.700 17


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Chapter 1: Business Activity Queries

Use the Business Activity Query (BAQ) Designer to create personalized queries or to copy system queries so you can
modify them. Queries can be accessed in different ways throughout the Epicor ERP application. Queries can be used
to generate Reports, included in application Searches, displayed and updated through a dashboard and mobile devices.
BAQ execution results can also be exported as .xml or ASCII files, so you can edit their data in third party applications
as well. The functionality has some security options, as you can create queries only available for your personal use, or
create shared queries available to everyone within your company.

Example You are in charge of your company’s security. You need


to build one query that lists all security IDs in the system for the
current company. Since this item is a sensitive query, you do not
select it as a shared query.
You next create a query that summarizes the status of current orders.
Because you want everyone to be aware about the progress of the
sales orders, you define this query as a shared query.

Leveraging this functionality does require some fundamental knowledge of database concepts such as table relationships,
records, and field types. This knowledge helps you create queries that have good performance and display the results
you want. You start by defining the information to display through your BAQ, and then finding out which database
tables contain the appropriate columns which hold this data. Some application tools are available which can help you
find the database information you need. This chapter describes these tools.
Once you determine the information you want to display, you can begin creating the query through the Business
Activity Query Designer. Use the Query Builder sheets to define which tables you want to include in your main query,
potential subqueries and what relationship they have with each other. You also define subquery parameters and decide
which columns you want to display for the end user. Finalize your BAQ by testing it using the Analyze sheet, correct
any errors before you use this query on a dashboard or mobile device.
Queries can be read only tools which you can later place on a smart client dashboard for display on the Main Menu.
You can also create an updatable BAQ. These BAQs can be placed on a smart client dashboard and/or used on a mobile
device, such as an iPhone® or a Blackberry®. Users then enter data through either the dashboard or the mobile device,
and this new data updates records within the main database. Business Process Management (BPM) directives can be
created which monitor the data entered through an updatable BAQ. Based on the conditions defined in the BPM
directive, various actions run automatically. For example, you could use this functionality to verify data is being correctly
entered into the database. Updatable dashboards and BAQ directives are described in later chapters in this guide, but
you will learn the basic principles for updatable BAQ functionality through this chapter.
To further leverage the BAQ functionality, you can connect to an external data source using the ODBC connection.
Use this feature to design an external query in a similar way to create an ordinary query. For more information on how
to utilize External BAQs, review the Chapter 02: External Business Activity Queries.

Database Viewing Tools

The Epicor application contains tools to help you locate database information you need. These tools also reduce
issues with your BAQs, as you can leverage them to make sure you reference correct fields and tables within your
modified and personalized queries. This section describes Data Dictionary Viewer and Field Help options you can
use to find the required information before you start designing your custom query.

18 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Data Dictionary Viewer

You use the Data Dictionary Viewer to find and review details of each field and table within the database. It helps
you better understand the purpose and data values of every field.
Use this program to identify the fields and tables you want within a custom business activity query. This program
is also an aid during upgrades, as you can view the current database structure to compare it against a previous
database version; this helps to ensure your BAQs match the current state of the database.
Menu Path: System Setup > System Maintenance > Data Dictionary Viewer

Data Dictionary Viewer – Table View

To use the Data Dictionary Viewer:

1. In the Table Schema Type, select a schema that holds the table of your interest.
The available options include:
• 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 wish to review.

In Epicor ERP version 10, user-defined columns are placed


within separate UD tables.
For example, the Part table may have a corresponding
Part_UD table.

3. The Description field displays a brief explanation for the table.

ICE 3.0 | 10.0.700 19


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

4. The IndexName column displays the index name used by the database to access a specific field. Each field
is displayed using its database schema name. In this example, ABCldx is shown.

5. The Fields displays which column(s) of a database table are associated with a particular index as well as the
order in which columns are listed in the index definition.

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, 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, Resource Group.

Data Dictionary Viewer – Field View

You can also use the Data Dictionary Viewer to display information on a selected field.

1. In the Tree View, select a field. In this example, you select the Count Frequency field.

2. The Fields > Detail sheet displays the field’s information.

3. The Field Name displays the selected field. If you need, you can use the Navigation toolbar to display a
different field.

4. The Format field defines the layout for the characters within the field. This value displays in either schema
or alphanumeric format; for example, X(8), >>9.

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.

20 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

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 multiple values can appear within this field. For example, if 5 displays, the field
can contain up to five items.

7. The Type field defines the selected field’s main data definition. The type defines the data that displays within
the field; for example, nvarchar, integer, bit.

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 is displayed on a grid, the Column Label field indicates the text that displays at the top of the
grid column; for example, Count Freq.

10. The Label field displays the title that displays above the field on a sheet, for example, Count Frequency.

11. When selected, 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. Here is what these options do:
• 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 appears on the interface.

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 information you need on each field. When
you click the mouse pointer inside a field, the Field Help window displays the field details from the Data Dictionary.
Navigate and launch the program which contains fields you want to use in a BAQ To activate field help within
each program:
For this example, you launch Ship Via Maintenance: Sales Management > Order Management > Ship Via.

ICE 3.0 | 10.0.700 21


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

1. Click the Help menu.

2. From the menu options, select Field Help to display the pane in the left portion of the screen.

3. Click the Thumbtack icon to pin the window in place. If you do not click this icon, the Field Help window
automatically minimizes to the side of the window (form). You can then display Field Help again by clicking
the button that displays on the side of the window.

4. When the Field Help window is pinned to the interface, you can view the technical details for the current
field. To do this, click the Technical Details button.

22 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

5. The Field Help window displays the technical details on each selected field. For this example, the Description
field is selected on the Detail sheet, and so the technical details for this field display within the Field Help
window.

6. The Field Name displays the selected field.

7. The EpiBinding field displays the name to use if you want to link to this field through a customization or
a code reference. This value uses the ViewName.FieldName format. ViewName is the name of the view on
the user interface; FieldName is the database column name.

8. 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 and it
displays the true database name for the field.

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

10. If this field is a Decimal type, the Decimals field displays how many decimal positions are available within
the field.

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

12. If this field is displayed on a grid, the Column Label field indicates the text that appears at the top of the
grid column.

13. The Description field displays the concise explanation for the field. This text explains the field’s purpose
and other useful information.

ICE 3.0 | 10.0.700 23


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

14. Continue to click other fields to display the technical details for each field on the form. When you finish,
click Close on the Field Help toolbar.

System Queries

Several system queries developed by Epicor are installed within the application. The delivered queries all begin
with the letter ‘z’ so that you can easily differentiate them from queries you create. When you create a custom
query, or copy an existing query to modify it, you must follow specific naming conventions.
Navigate to Business Activity Query Designer.
Menu Path: Executive Analysis > Business Activity Management > Setup > Business Activity Query

This program is not available in the Epicor Web Access.

View System Queries

To view the list of system queries:

1. Click the Query ID button.

24 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

2. Notice you can filter the business activity queries by various types. To view system queries, select the
System check box.

3. In the Search Form window, click the Search button.

4. Notice the system queries all begin with the letter z.

You cannot modify a system query delivered with the


Epicor application. You must first copy the query, rename
it, and then modify it. This process is reviewed in the Copy
Query section later in this chapter.

5. The Author ID field displays the login of the user who created the BAQ. Only the Author can modify their
BAQs. However, you can assign a new author to modify a BAQ. To do this, from the Actions menu, select
Change Author. This functionality is explored during the Actions Menu section of this chapter.

6. The Description field describes the purpose of the query.

7. The Global check box indicates whether the BAQ Definition is visible to another companies within the
database. The BAQ definition can only be updated from the original company, but is available for execution
and review in other companies.

8. System queries display a mark in the Shared check boxes. This value indicates the BAQ is available for
everyone within the current company to view.

9. As you indicated in the Search criteria, only System queries display on the list.
All system queries are created by Epicor, and this column indicates Epicor delivered these BAQs to your
database.

10. The Cross-Company check box indicates the ability of a query to brings back all results across companies.
In order to use this function, a selected user must have the ability to create cross-company queries.

ICE 3.0 | 10.0.700 25


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

11. If a query is Updatable, a check mark displays in this column as well. This value indicates users can enter
data within the BAQ that then updates the database.

12. The External queries use data retrieved from an external datasource outside the Epicor ERP application.
They are created within the External Business Activity Designer found in the System Management module.
To learn more about this functionality, review Chapter 02: External Business Activity Queries.

13. Select the system query you need and click OK.

New Business Activity Query

The Business Activity Query Designer program contains multiple sheets through which you define the query
criteria and indicate how the data displays through the executed query. The content and purpose of each sheet
is described in this section.

The General Sheet

Use the General sheet to create your query; you define the query’s identifier and description here. You also
indicate whether this query should be made available to all users within the company, support data updatability,
if you want to share this query between multiple companies and if the query should retrieve results across
companies.
In this example, you create a query that displays all open sales order detail lines.

Define Business Activity Query Attributes

1. Click the New button.

2. In the Query ID field, enter a value. For this example, you enter SalesValue.
When creating a new Business Activity Query, the originating company information is attached to the BAQ
behind the scenes.

You can not use the following special characters when


creating a new query:
\ / : | * ? > < " ' + - <Space>

3. In the Description field, enter a concise explanation for the query. For this example, you enter Total Value
of Quotes, Orders, Invoices by Date.

26 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

4. Select the Shared check box. This check box indicates this query is available to all users. After you save the
query, all users in your company can add this query to quick searches, BAQ info zones, BAQ reports, and
dashboards. Note these users will need various rights to use these features.

To learn more about creating your own dashboards, refer


to the Dashboards chapter. For more information about
how to use global BAQs and the multi-company
functionality, review the Multi-Site Technical Reference
Guide available within application help.

5. Select the Global to indicate whether the BAQ Definition is visible to another companies within the database.
The BAQ definition can only be updated from the original company, but is available for execution and review
in other companies. To modify the BAQ definition in other companies, you must create a copy of the BAQ.
The following rules apply to usage of Global BAQs:
• Global BAQs definition only exists in the originating company and can only be updated from this company.
• The Global BAQ ID must be unique across all companies. It is not possible to create a global BAQ with
the same ID as a Global BAQ created in another company.
• When you create a Global BAQ in company 1, and company 2 uses a local BAQ with the same BAQ ID,
a warning message displays, informing that company 2 will use the local BAQ and the Global BAQ will
not be available for use in this company. The same principle is true for the BAQ import process.
• Likewise, when you create a local BAQ in company 1 and a Global BAQ with the same ID exists in company
2, a warning message displays, informing a user that the local BAQ will take precedence over the Global
BAQ in company 1. The same principle is true for the BAQ import process.

The local BAQ always take precedence over the Global


BAQ, when the naming conflict occur.

To see in which companies (outside the current company), references to the Global BAQ were created,
use the Where Used tabs.

If you have the Multi-Site module installed, you can


create queries which display data across multiple
companies. You can then place these global BAQs on
multi-company dashboards to view the records generated
by companies throughout your organization.

6. Select the Updatable check box if you want to create an updatable query. Users can then enter and modify
data within this query that updates your database. If the BAQ was originally defined as a global query, the
Global check mark is removed, and updatable queries cannot be used across multiple companies. To learn
more, review the Create an Updatable BAQ section later in this chapter.

7. Select the Cross-company check box to display data across multiple companies.

8. When you finish, click Save on the Standard toolbar.

ICE 3.0 | 10.0.700 27


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

The Query Builder

Use the Query Builder sheets to design a Business Activity Query. Use this sheet to set up everything from basic
queries with a single table to complex queries including multiple subqueries of different types, joins or query
parameters.
The Phrase Build sheet is where you select the tables and fields you wish to include in the query. Use this sheet
to set up everything from basic queries with a single table to complex joins between multiple tables.
Five sheets are available at the bottom of the Phrase Build sheet. Use these sheets to indicate how tables are
linked together, define the relation between the tables, and specify the selection criteria for the query.
The Display Fields sheets define which columns display and in what order they display in the query. It You can
also create and display a special calculated field you need within the current business activity query and indicate
if you want to sort BAQ results through any combination of columns.
The SubQuery Options sheet is where define subquery properties. When you construct a BAQ, use this sheet
control what data displays in the SQL output by selecting an appropriate subquery type. You also have the ability
to control the SQL results set. For example, you can construct an SQL text to only display top 50% of rows from
the retrieved results set.
The SubQuery List sheet displays the read-only information of all subqueries created within the BAQ. All
subqueries are ordered by the sequence number. Using this sheet, you can change the order of subqueries to
define how partial query texts are concatenated in the final SQL statement.

Phrase Build - Add Table

Use the Phrase Build sheet to design a query using the visual representation of the query.

1. On the left pane, all Epicor ERP tables display in the table palette Select a table you want to add.

2. To easily locate the table you want, in the Filtering field, enter a value.
By default, the filter is applied to all tables whose names (excluding the schema part of the table name) start
with the string you enter in the filtering box. In this example, enter Quote to narrow down the list of tables.

28 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

3. When you select the Contains check box, all tables that contain a filtering substring you enter in the Filtering
field display.

4. In the left pane, above the list of tables, the three buttons control the list of available objects you can select
and drag on the designer canvas:
• Connected Only - When selected, the palette displays only the tables that have relations, described in
system tables, with the table you select on the canvas.
• SubQueries - When selected, the palette displays subqueries of InnerSubQuery or CTE type created
within the current BAQ. You can drag these subqueries on the canvas and use in the JOIN clause as any
ordinary table.
• Table-Valued Functions - When selected, the palette displays all Table-Valued Function (TVF) defined
in the application. A Table-Valued Function is a user-defined function that returns a table. Currently, this
feature is only supported in External Business Activity Query.

5. The central part of the form contains the canvas where tables are dropped.

6. To include a table in your query, select a table and drag it on the canvas in the center pane.

To perform multi-selection, hold Ctrl or Shift and select


tables you want to include in the BAQ.

Phrase Build - Additional Controls

Several additional Phrase Build controls help you construct the query.

1. To create a manual connection between two tables, click the Add Connection button. Select the first table
you want to link; drag the line and drop it on the table you want to connect to.
For more information on table connections, review the Phrase Build - Table Relations topic.

ICE 3.0 | 10.0.700 29


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

2. If you want to remove a table or an existing connection from the query, select it on the canvas and click
Remove Selected.

3. Instead of selecting tables individually, you can use the Business Objects button to search for and load
table(s) within an entity, for example, Erp.Part. These tables are organized as hierarchical nodes under the
business objects, User can inspect these tables and drag some of them on the canvas. Dragging the parent
node results into adding all child nodes also. The links between loaded tables are displayed automatically.

You cannot select multiple tables/objects at once.

4. The Toggle IsSummary Flag button is an Epicor 9 legacy feature, which should be used ONLY with legacy,
migrated BAQs to simulate Epicor 9 summary table behaviour. Users should not use this option when creating
new BAQs as this flag does not support new features such as subqueries. New BAQs should used standard
SQL syntax with GROUP BY and HAVING, and SQL aggregate functions to create aggregate queries.

5. You can use the options on the Arrange Diagram list to modify how the tables display on the grid. Available
options include:
• Diagram Overview - Displays the query in its default view mode.
• Zoom - Select this option to turn on zoom mode. When you click the tables in the grid, they increase
in size.
• Fit to Screen - Displays the entire query through a high level view.
• Layout Tables Automatically - Places the tables in a default order. The order of tables can be set on
the Table List sheet. Current positions of tables within a subquery is represented by numbers in the upper
left corner of table rectangles.

6. The right pane contains the description and list of the columns on the selected table. You can use the
Filtering edit box to only view the columns, with names that start with specified letters and sort column
names (alphabetically or in database order).

30 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Phrase Build – Table Relations

Use the Table Relations sheet to display and modify the fields that make up the joins between tables and
subqueries. You can add, modify and delete the join fields within the current query.
By default, queries are set up to display Inner Joins, which means that data from the first table only displays if it
is linked to data within the second table. The query output from an inner join includes all the records in which
the table relations values in both tables are an exact match. Records from either table that do not have a match
in the other table are not included in the query results.
For example, use an inner join to view all customers and the orders they have placed. You will not get a match
for any customer who has not placed orders. Most queries you create only need this type of join.

It is crucial a user explicitly determines the correct order of


tables in the query to retrieve the expected results.

You can use the following join types to retrieve the expected BAQ results:
• INNER JOIN - only rows satisfying join criteria from both joined tables are selected. By default, tables are
linked through an inner join.

Example
The join between the Customer table1 and the OrderDtl
table2 creates a view that displays customers and orders
placed. In this case, the view includes only customers who
have placed an order. Records for any customers who have
not placed an order are excluded.

Use this join to display only matching records between the primary table and the lookup table.
• LEFT OUTER JOIN - rows satisfying join criteria from both joined tables are selected as well as all remaining
rows from left joined table are being kept along with Nulls instead of actual right joined table values.

Example
Use a left outer join to view all customers (table1) and the
orders (table2) for these customers, and to retrieve a row
for every customer who has not placed any orders. Fields
that otherwise hold the order information display blank for
these customers.

ICE 3.0 | 10.0.700 31


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

• RIGHT OUTER JOIN - rows satisfying join criteria from both joined tables are selected as well as all remaining
rows from right joined table are being kept along with Nulls instead of actual left joined table values.

Example
Use the right outer join to find each employee (table1) and
his or her department (table2), but still show departments
that have no employees.

• FULL OUTER JOIN - rows satisfying join criteria from both joined tables are selected as well as all remaining
rows both from left joined table and right joined table are being kept along with Nulls instead of values from
other table.
In SQL, the Full Outer Join combines the results of both left and right outer joins and returns all (matched or
unmatched) rows from the tables on both sides of the join clause.

Table Relations - Predefined Dictionary Relations

When two tables are placed on the canvas, and relation between tables is described in the dictionary, the relation
is drawn by the BAQ automatically. The relation is represented by the line that indicates the JOIN clause. You
can also create table relations manually or replace existing ones.
To automatically connect tables:

32 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

1. Click the Connected Only button (the chain link icon) to only display tables appropriate for linking with
the selected table that displays on the grid.

2. Click and drag another table to the grid. In this example, drag and drop the Customer table on the center
pane.

3. When two tables are placed on the canvas, and relation between tables is described in the dictionary, the
relation is drawn by the BAQ automatically. The relation is represented by the line that indicates the JOIN
clause.

4. By default, queries are set up to display Inner Join, which means that data from the first table only displays
if it is linked to data within the second table. The query output from an inner join includes all the records
in which the table relations values in both tables are an exact match. Records from either table that do not
have a match in the other table are not included in the query results.
The available types of joins are discussed on the Phrase Build - Table Relations topic.

5. You can use the Dictionary button to view and select one of the predefined relations between tables. When
two tables are placed on the canvas, and relation between tables is described in the dictionary, the relation
is automatically defined by the BAQ.
As tables are placed on the canvas subsequently, the newly added table always checks relation with the
previous table within the table order. It does not check relations to all possible tables within the query. This
button is enabled when some predefined relation exists in the dictionary for the selected join connection,
and its title contains number of predefined dictionary relations in the parentheses.

6. The Table Relations from Dictionary window that displays when you click the button list all relations with
their fields. The result relation expression displays in the Expression textbox at the bottom. You can select

ICE 3.0 | 10.0.700 33


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

one of the relations and press Replace In Query button. As a result, fields from Dictionary form will replace
fields used in current BAQ relation.

7. In this example, accept the default relation between tables using the Company and CustNum columns.

Table Relations - Manually Connect Tables

If you want join tables or subqueries with no predefined relations in the system, you must manually create these
relations. You can also replace or modify existing relations by building an expression of your choice.
To manually create a relation between tables:

1. To create a join between tables or subqueries, click the Add Connection button.
The cursor turns to the cross.

2. Create a join between tables using the drag and drop functionality.
The tables are connected with the line. In this example, assume you would like to create a business activity
query that displays the list of parts and for each part you would like to attach a detailed company information.

34 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

3. At the bottom of the screen, the Table Relations sheet is automatically selected.

4. To define the relation between the tables, on the Table Relations sheet toolbar, click the Add Row button.

5. Create a join between the first and second table. In this example, you select the Company column to join
Part and Company tables.

You have the following options to create a relation:


• Create a simple join between table fields using the
field1 = field2 pattern.
• Construct an advanced expression, for example, using
functions or operations different from = (equals). There
is no list of predefined operators, you can enter a
custom expression of your choice.

6. If BAQ designer determines a non-standard expression, it displays the Fx symbol in the middle of the join
square on the link.

ICE 3.0 | 10.0.700 35


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

7. In the Join Type field, select a desired type of join to combine records from two tables to construct your
query. The available types of joins are discussed on the Phrase Build - Table Relations topic.

When tables you add are not joined by any field, the
CROSS JOIN (Cartesian join) is automatically selected.
This join returns all records where each row from the first
table is combined with each row from the second table.

It is not possible to add new connection to the already


connected tables. Instead add new fields on the Table
Relations tabs at the bottom of the page.

Phrase Build – Table List

The Tables List sheet displays the list of tables and subqueries you place on the canvas for the subquery in focus.
The order of tables listed in the FROM clause of the resulting SQL statement is explicitly set on this sheet.

1. If your BAQ incorporates multiple SubQueries, switch between them using the Active SubQuery navigational
toolbar found above the Phrase Build tab.

2. Current position of a table within a subquery is represented by a number in the upper left corner within the
table rectangle.

3. In this example, the QuoteHed table is the first table within the table order.

36 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

4. Notice how the current resulting SQL Syntax looks like.

5. To change the order of tables, select a table and use Up or Down arrow on the toolbar to move the selected
table one position up or down. Repeat this action the required number of times to move the table several
positions up or down to define the new table order. In this example, select the Customer table and click
the Up arrow make it the first table on the list.

6. Notice the change in the resulting SQL Syntax.

The correct order of tables is crucial for retrieving the


expected BAQ results.

Phrase Build – Table Criteria

Use the Table Criteria sheet to to limit the data that displays in the BAQ results by adding filtering conditions for
the selected table.
When you add a filter on the table, the following rules are applied:
• If the table with applied filtering is the first table in the BAQ, then these criteria go to the WHERE part of the
resulting SQL statement.

ICE 3.0 | 10.0.700 37


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

• If the table with applied filtering is not the first table in the BAQ and is connected to the previous table with
join, then within the resulting SQL statement, these criteria will be applied to the JOIN clause in the ON
condition.

You should consider leaving the query criteria open. You then
have more flexibility within the query, as you can always add
a filter to the query results within a dashboard or a BAQ report.
For more information on this functionality, review the BAQ
Report Designer and the Dashboards chapters.

To create a table filter criterion:

1. Select a table on the canvas from which you want to filter the data. In this example, you select the QuoteHed
table. Notice the table with applied filter displays the "+criteria" indicator on the table rectangle.

2. Click the Sort Columns Alphabetically button to display the fields on the drop-down lists in alphabetical
order.

3. Click the Add Row button on the toolbar.

4. A new row displays on the grid; enter the options you need for this filter. In this example, you add a filter
that causes the query to only display quotes that are currently active.

5. The And/Or field defines the criterion string clause in relation with other criterion on this sheet. Use this
field when you need to apply a filter based on the values of more than one criterion.

6. Use the ( and ) fields to insert the left and right parenthesis to the clause. You can enter as many parenthesis
characters as you need to complete the order in which you want the criteria to filter the results.

7. If you want this criterion to evaluate a Not criterion value, select the Not check box. This Not value indicates
you want a value returned not like the evaluating value; for example, a column NOT IsNull.

38 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

8. Use the Field drop-down to display the list of fields from the table selected on canvas. In this example, select
the QuoteClosed field.

9. The Compare (operator) list defines how the selected field will be evaluated against the Filter Value. In
this example, select = (equals) option. The Filter Value can be an alphanumeric value. You have the following
options:

Operator Description
> Greater than
< Less than
= Equals
>= Greater than or equals
<= Less than or equals
<> Not equal or not identical to
BEGINS Returns data that starts with the same characters. Although this operator is less efficient
compared to the Greater than or Equal sign (>=), you can use this value to pull in a series
of records that start with the same set of alphanumeric characters.

This operator is only used for backward


compatibility with legacy ABL/Progress
BAQs used in Epicor 9 application.

MATCHES Returns data that is exactly the same as the character string. Although this operator is less
efficient compared to the Equal sign (=), you can use asterisk wildcards to pull in data. For
example: MATCHES '*owe*' finds both owe and powerful. With MATCHES, you can use
no asterisks, a left asterisk, a right asterisk or both asterisks.

This operator is only used for backward


compatibility with legacy ABL/Progress
BAQs used in Epicor 9 application.

ISNULL Returns fields that have an unknown, or "NULL" value.


• If you want to find rows with EMPTY string value, use comparison with an empty
constant. The example of an empty constant looks as follows:
SELECT AbcCode from Erp.AbcCode where AbcCode.Company <> ''

• If you want to find rows with unassigned fields, use the ISNULL operation. This
operation may be useful in external queries which execute against non-Epicor
databases.

IN Indicates this value is used with either a list of constant values or a BAQ item list parameter,
or a field from an inner subquery.
You can also use this criterion for updatable BAQs.

ICE 3.0 | 10.0.700 39


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Operator Description
CONTAINS Returns data when the selected character field has data which is present within the defined
Filter Value.

In MSSQL, CONTAINS only works when


a field is fully-indexed, otherwise the
following error is thrown:

Msg 7601, Level 16, State 2, Line 1 Cannot use a CONTAINS or FRE
ETEXT predicate on table or indexed view 'Erp.Abccode' because i
t is not full-text indexed.
This field is a predicate used in a WHERE clause to search columns containing character-based
data types for precise or fuzzy (less precise) matches to single words and phrases, the
proximity of words within a certain distance of one another, or weighted matches. This
operation can be applied against column of following data types and its derived types:
• char
• text
• image
• xml
• binary

EXISTS The EXISTS condition is considered to be met if the SubQuery returns at least one row. This
condition can be used in any valid SELECT SQL statement. The syntax for the EXISTS
condition is:

SELECT columns
FROM tables
WHERE EXISTS ( subquery );

When you select the EXISTS operator, in


the Filter Value field, you can only select
the specified subquery option.

LIKE Allows usage of SQL Like syntax. It determines whether a specific character string matches
a specified pattern defined in the filtering value. A pattern can include regular characters
and wildcard characters.

10. Click the Filter Value drop-down list to define how this criterion filters data. Each option displays with
hyperlink text; click this hyperlink text to define the filter values. The next section describes each of these
options in more detail. For this example, you select the specified constant option. Click the specified link.

11. The Specify a Value window displays.

40 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

12. In the Value field, enter the constant value you need. In this example you enter False as you the query to
return open quotes.

13. Click OK.

14. Notice the word False now displays as the filter value.

15. Continue to add the criteria you need. When you finish, click Save.

16. You can now view your query; click the General tab.

17. The Query Phrase field displays the query you created. Notice your criterion is included as part of the
resulting SQL Syntax.

ICE 3.0 | 10.0.700 41


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Phrase Build - SubQuery Criteria

Use the SubQuery Criteria sheet to narrow down BAQ results by adding filtering conditions on the selected
SubQuery.
When you add a filter on the SubQuery the following rules are applied:
• In the resulting SQL statement, the SubQuery criterion displays in the WHERE part of the SubQuery.
• When you select the Having check box to indicate the SubQuery should meet specified conditions, the criterion
displays within the SubQuery's HAVING part of the resulting SQL statement.
For more information on creation of SubQueries, read the SubQuery Options topics.

1. If your BAQ incorporates multiple SubQueries, switch between them using the Active SubQuery navigational
toolbar found above the Phrase Build tab.

2. Select the SubQuery Criteria tab.

3. Click the Add Row button on the toolbar.

4. A new row displays on the SubQuery Criteria grid; enter the options you need for this filter. In this example,
the BAQ is comprised of two SubQueries returning the list of Quotes and Orders. You will limit the BAQ
results by adding a filter on each SubQuery. For the Quotes SubQuery, add a criterion to only return quotes
for the customer Addison.

5. Entering a condition for the SubQuery is similar to entering Table Criteria discussed in the previous topic,
except in SubQuery, first use the Table field to select a table from the current SubQuery or a predefined
Calculated table name, when referring to calculated fields. In this example, select the Customer table.

6. Build the criterion by selecting the SubQuery Field, Operation and Filtering Value. In this example, create
a criterion to only retrieve quotes from the customer Addison.

42 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

7. When you select the Having check box, the SQL statement returns rows where aggregate values meet the
specified conditions. Typically you use this field with the calculated field editor.

8. If you want to apply criteria on another SubQuery, use the Active SubQuery navigational toolbar to select
it.

9. Enter the criteria for the second SubQuery. In this example, you limit the BAQ results to only retrieve orders
for the customer Dalton.

10. You can now view your query; click the General tab.

11. The Query Phrase field displays the query you created. Notice the filtering is applied on each SubQuery
within the resulting SQL Syntax.

ICE 3.0 | 10.0.700 43


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

12. The following is the BAQ Result returned by the query.

44 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Phrase Build – Filter Values

The previous sections described how to create a criterion using the specified constant filter value. This section
now discusses each of the Filter Value options, explaining what you can define on each option.

Specified table field value

Use this potion to filter the data using a field from a table included in the query.

1. From the Filter Value drop-down list, select the specified table field value option.

2. Click on the specified link.

3. The Select Table window displays.

4. In the Subquery field, select the name of the subquery used to filter data.

By default, the current subquery is selected.

5. Click on the Table drop-down list to select the table which contains the fields you want to filter against.
All the tables available in your current subquery display.

6. All the available fields display in the fields section. Select the field you want to use in the criterion.

7. Click OK.

ICE 3.0 | 10.0.700 45


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

8. The field value displays in the Filter Value column.

Specified constant

Use this option to filter the data against a specific value you define. To use this option, do the following:

1. From the Filter Value drop-down list, select the specified constant option.

2. Click the specified link.

3. The Specify a Value window displays.

4. In the Value field, enter the value you want to filter against. You can enter any text value you need.
Depending on what you enter, some values may or may not be case sensitive.

5. Click OK.

6. Your specific value displays in the Filter Value column.

46 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Specified Expression

Use this option to filter the data against a specific expression you create. You can use this filter to build complex
expression which are calculated when the criteria is applied to the query.
To create an expression:

1. From the Filter Value drop-down list, select the specified expression option.

2. Click on the specified link.

3. The ExprQueryForm window displays. To help you create expressions, the Editor window contains lists of
available fields, functions, and operators. You can add these items to an expression by either double-clicking
them or dragging them onto editor window's Editor field.

4. Click OK.

5. Your specific value displays in the Filter Value column.

Specified parameter

Use this option to filter the data using an alternative parameter value you define. These parameters can be nearly
any value you need.
You can also use parameters to display customized method arguments for use in Business Process Management
(BPM) directives.

ICE 3.0 | 10.0.700 47


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

The query text contains references to arguments using this format: @arg_name

Example

select * from dbo.PartCOPart as PartCOPart


where PartCOPart.CoRevisionNum = @CustomParameter
This argument reference is replaced by the argument value when the query activates.
To select this option and create a new parameter:

1. From the Filter Value drop-down list, select the specified parameter option.

2. Click on the specified link.


The Select Parameter window displays.

3. To create a new parameter, click the Define parameters… button.


The Query Parameters window displays.

4. Enter the Parameter Name you want for your new parameter value.

48 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

This name cannot contain any spaces.

5. Select the Data Type for the parameter from the drop-down list. Available types:
• Nvarchar
• Integer
• Decimal
• Date
• DateTime
• Bit
• uniqueidentifier

6. In the Format field, the default format for this Data Type displays.
If you need, you can edit this value. Be sure the format follows the convention of the database.

7. If this parameter is required in order for the BAQ to pull in query results, select the Mandatory check box.

8. Use the Editor Type drop-down list to select how you will define the parameter values. Available options:

Option Description
Common Editor Activates the Default Value field. Enter a custom text value you need for the
parameter. The field selected on the criterion will then be evaluated against this
default value.
Radio Button Set Activates the Values Editor sheet. Use this sheet to define the various radio button
options this parameter will use. The field selected on the criterion will then be
evaluated against these multiple options.
DropDown List Activates the Data from drop-down list. Use this list to define the source of the
drop-down list options. The field selected on the criterion will then be evaluated
against the options contained on the drop-down list.
Item List Use this option the create the list of values this parameter will use. The field selected
on the criterion will then be evaluated against these item list options. For this option,

ICE 3.0 | 10.0.700 49


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Option Description
BAQ execution expects the list of values transmitted in ExecutionParameter table,
instead of a single value.
This parameter is only used with IN operation.

9. If you select the Common Editor option from the Editor Type drop-down list, the Default Value field
activates. Enter the default value you want within this field.

10. Select the Skip condition if empty check box when you want the BAQ to ignore this parameter if it returns
a blank, or empty, value. If parameter is not supplied, the BAQ will ignore the criterion with this parameter.

Example In the condition StartDate > @param1, the


param1 value is null. If the Skip condition if empty is
selected, the BAQ does not check the criterion specified
for the StartDate field.

11. If you select the DropDown List option from the Editor Type drop-down list, the Data from field activates.
Use the options from this drop-down list to indicate the source from which the data on this list populates.
Available options:

Option Description
Custom The Values Editor displays controls for creating a new list of values. Use this functionality
Values to define the various list options this parameter will use. The field selected on the criterion
will then be evaluated against these item list options. Enter the following information:
• Value - Enter the actual value of the parameter that will be send to the query.
• Display text - Enter the text displayed for the user for this value.
• Order - Defines the sequential order of items in the list.

BAQ The Values Editor displays controls for selecting a BAQ. Enter the following information:
• Query ID - search for and select the BAQ you need.
• Display Column - select the column which displays in the lookup list.
• Value Column - defines the name of the column you want to use for the parameter
value.

User Codes The Values Editor display the control for selecting a specific User Code.
User codes are lists of custom values you define through User Defined Codes
Maintenance. When you select a user code, its list of values is compared against the
field selected on the criterion. For more information about creating user codes, review
the User Defined Codes Maintenance help topics.

12. When you finish defining the parameter, click Save.

13. Continue to create as many parameters as you need.

14. When you finish, exit the Query Parameters window.

50 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

15. Your new parameter displays on the Select Parameter window. Highlight the parameter you created.

16. Click Select.

17. Your parameter displays on the Filter Values column.

18. You can also create parameters through the Actions menu. To do this, click on the Actions menu and select
Define Parameters.

BAQ special constant

Use this option to filter against a specific constant, like CurrentCompany, CurrentEmployeeID, First Day of the
Month, Fiscal Period, and so on. The query pulls data based on the BAQ constant you select.
To define a BAQ special constant:

ICE 3.0 | 10.0.700 51


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

1. From the Filter Value drop-down list, select the BAQ special constant option.

2. Click on the special link.


The Select BAQ Constant window displays.

3. In the Select BAQ Constant window, select one of the constant options available from the list.

4. Click OK.

5. The selected BAQ constant displays on the Filter Values column.

To review the complete list of BAQ constants, see the


Calculated Field: BAQ Constants topic.

Current date + specified number of days

Use this option to filter by the date intervals days, weeks, months, and years. The result is always evaluated
against the current date (TODAY). You can enter a positive or negative value; the value is then added or subtracted
from the current date to calculate a different date.
To filter query results by a date interval:

52 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

1. From the Filter Value drop-down list, select the Current date + specified interval option.

2. Click on the + specified interval link.


The Select Date window displays.

3. Use the arrow buttons and the drop-down list to define the next BAQ execution date.

4. Click OK.

5. The interval in days you defined displays on the Filter Value column. The query will pull in records which
have a date equal to or greater than the interval you defined ahead from the current date. In this example,
the query will pull in records that have a date equal to or greater than five days ahead from the current
date.

Select Value(s) of Field From Specified Subquery

Use this option to filter the data using values a subquery field(s) you define.

Example Create a simple query and add a new inner subquery


with one display field. On the main subquery, create a filter
using a scalar operation, for example, <>=. In the Filter Value
field, select the inner subquery you created.

ICE 3.0 | 10.0.700 53


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

1. From the Filter Value drop-down list, select selected value(s) or field from specified subquery option.

2. Click the word selected.


The available options:
• ALL - the condition evaluates against all values returned from a subquery.
• ANY - comparison with at least one value returned from a subquery.

3. Click the field from specified link.

4. In the Select Subquery Field window, the list of subqueries of InnerSubQuery or CTE type displays.

5. Select a Subquery you want to use.

6. Select a Field against which you want do filter data.

7. Click OK.

8. The subquery field you defined displays on the Filter Value column.

Operation Specific Filters

For certain operations, only specific filters are available for use.
The below table displays which filters become available when you select the below operations:

54 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Operation Available Filter(s)


IN operation
• specified constants list
Use this filter to specify the list of constants.
• specified list parameter
Use this filter to select an Item List parameter you want to use in the query execution.
This parameter contains a list of values that will be supplied during query execution.
• field from specified subquery
Use this option to filter the data using a subquery field(s) you define. You can select
fields from subqueries of InnerSubQuery or CTE type.

EXISTS operation
• field from specified subquery
Use this option to filter the data using a subquery field(s) you define. You can select
fields from subqueries of InnerSubQuery or CTE type.
This operator only checks that the row is returned.

CONTAINS operation
• specified contains expression
Use this filter to launch the Specify Expression window. Use this form to create an
expression, compatible with CONTAINS predicate in SQL. Supported terms: AND (&),
OR (|) wildcard (*), parenthesis (()). Full-text indexed column is required.

Phrase Build - Function Call Parameters

Use the Function Call Parameters sheet to specify values for the parameters in a Table-Valued Function.

This option is only available in External Business Activity


Query.

A Table-Valued Function (TVF) is a user-defined function that returns a table. To view the list of TVFs available
for use with your product, click the Table Value Function button above the left panel on the Phrase Build
sheet.
TVFs typically require input parameter values. The Function Call Parameters sheet is populated when you add a
TVF to the grid. To be able to retrieve results from the TVF, you must define an expression in the Value field of
each listed parameter. This can be done by manually typing an expression or by using the expression editor that
displays when you click the ellipses button.

Add Function Call Parameter Values

This procedure discusses adding parameter values when adding a Table-Valued Function (TVF) to an External
Business Activity Query (BAQ). You also can select an existing TVF on the grid and edit the parameter values.
To use the TVF function:

1. Display the TVFs available for use with your product.

ICE 3.0 | 10.0.700 55


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

On the Phrase Build sheet, click the Table-Valued Functions button above the left pane.

2. Click and drag a TVF to the grid.


On the grid, the TVF rectangle displays in red color.

3. By default, the Function Call Parameters sheet is selected.


Adding the TVF to the grid populated this sheet with a list of all parameters in the TVF.

4. Add an expression in the Value field of each listed parameter.


Enter the expression manually or click the ellipses button to open an expression editor. To help you create
expressions, the editor window contains lists of available fields, functions, and operators. You can add these
items to an expression by either double-clicking them or dragging them onto editor window's Editor field.

5. When you right click on a red TVF rectangle on the canvas, you can use the context menu to set the APPLY
operator.

The following options are available:


• CROSS APPLY - when selected, only rows from the outer table that produce the result set from the TVF
are returned.
• OUTER APPLY - when selected, either rows that produce the result set as well as those that do not,
with NULL values in the columns produced by the TVF are returned.

56 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

If the APPLY operator is set for TVF, it is used instead of the join expression. The selected operator specifies
how the TVF is invoked for each row in the result set. The result set is created by tables that precede the
TVF within the table order. If the preceding table and TVF are connected through the join, the APPLY operator
is ignored.

Example The below BAQs demonstrate usage of the


APPLY operator. Either of the below BAQs return the same
results.

SELECT * from dbo.activity OUTER APPLY dbo.p21_fn_split(…)

Phrase Build - Pivot SubQuery FOR Clause

You can use the PIVOT operator within a query to transform data from row-level to columnar data.
PIVOT rotates a SubQuery results by turning the unique values from one column in the expression into multiple
columns in the output, and performs aggregations where they are required on any remaining column values that
are wanted in the final output.
Creation of PIVOT statements within a BAQ is available for InnerSubQuery or CTE SubQuery types. To activate
the Pivot SubQuery FOR Clause sheet, place the SubQuery on the canvas. Right-click the SubQuery rectangle
and select PIVOT > SET PIVOT. To create an aggregation formula used within the PIVOT statement, click the
ellipses button to invoke the Pivot Aggregate Expression Editor.

Aggregate Data Using Pivot

In this example, build a query against the OrderHed and Customer tables to determine the number of sales orders
placed by each customer throughout the selected years.
To use the PIVOT operator:

ICE 3.0 | 10.0.700 57


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

1. Create a BAQ comprised of two SubQueries. In this example, you display the aggregated data through the
TopLevel SubQuery1. For the moment, leave this first SubQuery intact.

2. For the second SubQuery type, select InnerSubQuery.

You can use either InnerSubQuery or CTE Subquery types


to aggregate data using the PIVOT operator. When the
CTE SubQuery is used, it must be placed as the first
SubQuery as it provides the base data for the rest of the
process for fetching the data.

58 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

3. In SubQuery2, place the Erp.OrderHed and ErpCustomer tables on the canvas.

4. For the DisplayColumn(s), select Customer_CustID and OrderHed_OrderNum columns.

5. Now create a calculated column that displays the order creation year.

ICE 3.0 | 10.0.700 59


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

6. To get the year part of the date on which a sales order was placed, use the datepart(year, expression)
function. The expression looks as follows:
datepart(year,OrderHed.OrderDate)

7. Now switch back to the SubQuery1 and place SubQuery2 on the canvas.

60 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

8. Right-click the SubQuery2 rectangle and select PIVOT > SET PIVOT.

9. Notice the word PIVOT displays on the rectangle and the Pivot SubQuery FOR Clause sheet becomes
enabled.

10. Click the ellipses button to invoke the Pivot Aggregate Expression Editor.

ICE 3.0 | 10.0.700 61


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

11. Use the Pivot Aggregate Expression Editor to create an aggregation formula.

Similar to Calculated Field Editor, the window contains lists of available fields, functions, and operators. You
can add these items to an expression by either double-clicking them or dragging them onto editor window's
Expression Editor field.

Users are not limited to using only the functions from the
tree-view. Any function supported by the SQL Server used
by your Epicor ERP application can be used within an
expression. In External BAQs, functions supported in the
database server where the external BAQ is executed
should be used.

12. In this example, count the number of sales orders using the below expression:
count( OrderHed_OrderNum )

62 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

13. Now specify the FOR clause of the PIVOT statement. In this example, you define which years you want to
include the pivot table output. To begin with, in the Field column, select the Calculated_OrderYear field
you created. Recall this field returns the year on which each sales order was created.

14. Now you must evaluate this field against the values you define. In the Filter Value column, select specified
constants list.

15. Click the word specified.

16. In the Enter Value List window, create the list of custom values you want to evaluate in the FOR clause.
In this example, define the years you want to analyze.

17. Using the TopLevel SubQuery1, select the columns you want to include in the BAQ output.

ICE 3.0 | 10.0.700 63


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

In this example, select Customer_CustID and all fields from the constants list you created in the previous
step.

For the Display Columns, do not add fields used in the


PIVOT formula or in the FOR clause. Other columns from
the source SubQuery can be selected for display.

18. Now you can test the query. The BAQ output presents aggregated numbers of orders placed by each
customer throughout the selected years.

64 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

The resulting SQL syntax looks as follows:

Display Fields

Use the Display Fields sheets to define the columns that display on your query, how the data is sorted within the
query, and set the display names for the columns. You can also create a special calculated field that you need
within the current BAQ and create advanced data grouping expressions.
The Display Fields sheet consists of two sub sheets: Column Select and Sort Order.

Column Select

Use the Column Select sheet to define the columns that display on your query.
You can also configure the display name and format for each column, create a calculation for a selected field
and define how you want to summarize data within the BAQ.

The Display Column(s) grid changes when SubQuery in focus


is of the Union, UnionAll, Intersect or Except type.

Select Display Columns - TopLevel, CTE, InnerSubQueries

When the SubQuery in focus is of the TopLevel, CTE, or InnerSubQuery type, use the below steps to select
BAQ columns.
To select columns you want to displays in BAQ results:

ICE 3.0 | 10.0.700 65


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

1. The Available Columns list displays all the tables included within the query.

2. To view the columns within each table, expand the table node. In this example, you expand the OrderDtl
table.

3. The columns available within the OrderDtl table display. Notice each column identifies the type of data it
contains - Y/N (check box), 1.2 (Numeric field), abc (Character field), and so on.

4. You can click the Sort Columns Alphabetically button to display the columns in alphabetical order. Typically
you will activate this button, as it will make the fields (columns) easier to find.

5. From the Available Columns list, select the fields you want to display. You can select multiple fields by
holding Ctrl on your keyboard while selecting fields or by holding Shift to select a range of fields.

6. Click the Right Arrow button to move it into the Display Columns list. In this example, you select multiple
columns from the Available Columns list and move them into the Display Column(s) list.

66 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

7. If you want to modify the column name, enter a value in the Label field. This field displays the default name
for a field. You can edit the display name for the current field. The name you enter displays on a column
header within BAQ results.

8. To change the field's format mask, modify the value in the Format field.
Several single character format options are available. You use these options in various combinations to
display the results in the format that you want. Available single character formats:
• X - Any Character
• N - Number or Letter
• A - Letter Only
• ! - Lower Case Letter
• 9 - Number Only
• > - Suppress Zeros

Example
• X(8)
• ->>>,>>>,>>9.9999

Updatable BAQs utilize two field format definitions. The


format you define on the Display Fields > Columns
Select sheet defines how a field value displays in a
read-only mode, for example, in a grid.
For updatable BAQs, you can define a second format in
Updatable field editor. You launch the editor using the
Advanced Column Editor Configuration button found
on the Update > General Processing sheet. This way,

ICE 3.0 | 10.0.700 67


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

you can define different formats for example, x(10) for


display and >>,>>9.99 for editing.

9. To group query results by specific column, select the Group By check box.

When selected, this field will be listed in the Group By


SQL clause as well as in the Select clause. The Group By
statement is usually used in conjunction with aggregate
queries utilizing aggregate functions such as AVG, SUM
or COUNT.
Outside the simple grouping mechanism you can use by
selecting this check box, the advanced grouping features
are available for use by clicking the Advanced Group By
Clause Editor button. For more information, review the
Advanced Group By Clause Editor topic later in this
section.

10. You can remove columns by highlighting them in the Display Columns list.

11. Click the Left Arrow button, or drag and drop the column name to the left pane. The column returns to
the Available Columns list.

12. You can change the order in which the columns display across the BAQ grid. To do this, select a field in the
Display Columns List and use the Up and Down Arrow buttons.

Select Columns - Set Operator Type SubQueries

When the SubQuery in focus is of the Union, UnionAll, Intersect or Except type, use the below steps to select
BAQ columns.
In BAQ Designer, SubQueries are concatenated in the sequential order, so one or more SubQueries of Union,
UnionAll, Except, Intercept types can go after TopLevel, or CTE SubQueries.

When one or more SubQueries are combined using the above


set operators, their fields, specified on the Display Fields >
Columns Select sheet should conform to the following rules:
• The number and the order of the columns must be the
same in all SubQueries.

68 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

• The data types must be compatible, through implicit


conversion.
• Field aliases of the result record set are taken from the first
SubQuery.

To select columns you want to displays in BAQ results:

1. In SubQuery of TopLevel or CTE type, define the set of Display Columns. In this example, SubQuery1 has
five columns set for display.

2. On a SubQuery that follows, set one of the Union, UnionAll, Intersect or Except set operators. In this example,
SubQuery2 of Union type is used.

ICE 3.0 | 10.0.700 69


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

3. Navigate to the Display Fields > Column Select sheet.

4. At the bottom, the information on how many fields you need to select to match the number of display
columns in SubQuery1 displays.

5. You are also informed what first column is selected for display in SubQuery1 and what format it uses.

6. From the Available Columns list, select fields that meet criteria described above.

7. Use the Right Arrow button to move the fields into the Display Column(s) list.

8. The Alias field displays the field alias of the current SubQuery's column.

Field aliases of the result record set are taken from the
first SubQuery.

70 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

9. Each SubQuery treats Group By independently. You can construct a BAQ where only one SubQuery
aggregates data, for example:
SELECT Field1, Count(field2)
From Table1
Group By
Group By Field1
UNION
SELECT FieldX, FieldY
FROM Table2
However, if a TopLevel or CTE SubQuery groups data by specific column, and SubQuery of Union, UnionAll,
Intersect or Except type is set up to also aggregate data, the number of columns must match and column
types must be compatible in both SubQueries. The grouping method used to aggregate BAQ results can
differ in each SubQuery. You can use simple group by in one SubQuery and an advanced grouping method
in another.
On the Display Column(s) grid, all fields except Group By provide read-only information only.

10. The DataType field displays the type of data of the current SubQuery's column.

11. The Subquery Set Data Type displays the expected data type of the corresponding field from the group's
uppermost SubQuery, which is either CTE or TopLevel type.

12. When the expected data type is different than selected, the error indicator displays in the corresponding
Subquery Set Data Type column.

13. The Subquery Set Alias field displays a field alias of the corresponding field from the uppermost SubQuery.
In the resulting record set, field aliases are taken from the group's uppermost SubQuery.

Example

CTE Subquery 1
UNION ALL Subquery 2 <-- fields are from Subquery 1
TopLevel Subquery3 <-- new group of Subqueries
INTERSECT Subquery 4 <-- fields are from Subquery 3
In the above example, result fields are taken from Subquery3 – TopLevel Subquery.

14. The Expected Fields box at the bottom displays the following information:

Condition Information
If the number of selected columns in the current The field shows the first NEXT field from the group's
SubQuery is Less than the number of selected uppermost SubQuery, which is expected to be added.
columns in the group's uppermost SubQuery.
Also, the information on how many fields are still to be
added displays.

If the number of selected columns in the current The information on how many fields should be removed
SubQuery Exceeds the number of selected displays.
columns in the group's uppermost SubQuery.
If the number of column in both SubQueries The "Check type compatibility" message displays.
Equals, and Any Type difference between
When SubQuery fields have different types, in the
columns occurs.
Subquery Set Data Type column, the error sign displays.
The error sign does not automatically mean the SubQuery
will fail as proper conversion can still be potentially done

ICE 3.0 | 10.0.700 71


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Condition Information
by the database server. The intention of the error sign is
to inform user about the potential data type discrepancy.

When number of columns Equals in both The "Subqueries have equal number of fields"
SubQueries, and No Type difference is found. informational message displays.

15. When the BAQ designer logic encounters any errors, these are also displayed on the Analyze Message
window.

16. In this example, the column mapping of SubQuery2 should look as follows.

Create a Calculated Field

Use the Calculator button to create user-defined columns based on a calculation of selected fields within the
query.
To help you create valid calculations, the Calculated Field Editor contains lists of fields, functions, and operators.
These default items display in a Tree Views where you can navigate and find the item you need. To add an item
to calculation, you either double-click or drag and drop the selected item to the Editor pane.
To create a calculated field:

72 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

1. Navigate to the Display Fields > Column Select sheet and click the Calculation (the calculator icon)
button.

2. In the Calculated Field Editor, click New.


In this example, you want to create a BAQ that calculates orders by customer.

3. In the Field Name field, enter the name of the field, for which you create the calculation. In this example,
enter OrderCount.

4. From the Data Type drop-down list, select the data type generated by this calculation.
In this example, select integer.

ICE 3.0 | 10.0.700 73


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

5. The Format field automatically displays the data format for this calculated field. In this example, ->>,>>>,>>9.
If you need, you can change this value.

Refer to the Business Activity Query – Calculated Fields


topic in the application help for a complete list of the
format options available.

6. Enter the Label you want to display above this calculated field’s column header on the BAQ grid. In this
example, enter Total.

7. Now you can start building the calculation logic in the Editor pane.

Be sure to use the appropriate SQL syntax within the Editor


pane.

8. Use the tree view to find and select the Functions, Operators, and BAQ Constants you will use in the
current calculated field. A function calculates a value through specified parameters. An operator is a
mathematical expression used to evaluate a function. BAQ operators and functions are consistent with SQL
naming methodology.

A complete list of available Functions, Operators and BAQ


Constants is discussed later in this chapter.

9. First navigate to the function or operator you need. Now either double-click it or drag and drop it onto your
calculation within the Editor field. In this example, use the Count function.

10. Use the Fields Tree View to place a specific field within the calculation.
You can use the Fields Tree View to:
• Select any of the current Display Fields and existing Calculated fields you want to add to the calculation.
• Pull in any fields contained within the Available tables included with the current query.
• If you have created parameters to use with the BAQ, these options display under the Parameters node.
Parameters pull in multiple values which you can then use within your calculation. For information about
creating parameters, review the previous Phrase Build – Filter Values section
In this example, you add expand the OrderHed table and double-click OrderHed.OrderNum field. The field
is added to your calculation.

11. If you need, use the Calculator keys to manually refine your expression.

12. When you complete the calculation, click Check Syntax to verify that the calculation logic is valid.

13. Click Save to complete the calculation.


This field now uses this calculation when you run the query.

74 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

If you have created Inner or CTE type of Subqueries, you can also use them to build a calculated field.
For example, you create a simple query and add a new inner subquery with only one display field returning
a single value; e.g. Select count(id) from table. You can then use the subquery to create a calculated
expression, such as {SubqueryN} + 1.

14. Click Close to exit the Calculated field editor window.

15. Your calculated field is now added to the list of Display Column(s).

16. You can use Up and Down Arrow buttons to reposition the calculated field as necessary.

ICE 3.0 | 10.0.700 75


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Calculated Field: Example One

Several calculated fields have been created by Epicor for use in the system queries. The first example is a calculated
field called OpenQty that is used in the zSVSalesOrderBacklog query.
This calculated field determines the Open Quantity of a sales order release by taking the Requested Quantity for
a sales order release, and subtracting the Job Shipped Quantity and the Stock Shipped Quantity. The field is
formatted as a number and displayed as a decimal.

Calculated Field: Example Two

The second example is a calculated field called OpenValue that is also used in the zSVSalesOrderBacklog query.
This calculation determines the value of the remaining open balance on a sales order. The calculation uses If,
Then, Else logic written in C# based on the Price Per Code on the Order Detail table. Three different Price Per
Code values are tested in the calculation: M (price per thousand) and C (price per hundred).

76 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

The field is formatted as a number and displayed as a decimal.

Calculated Field: Functions

The following tables display the Functions you can use within the Calculated Field Editor.

Users are not limited to using only the functions from the
tree-view. Any function supported by the SQL Server used by
your Epicor ERP application can be used within an expression.
For External BAQ functionality, functions supported in the
database server where the external BAQ is executed should be
used.

Aggregate
Aggregate functions perform a calculation on a set of values and return a single value. Aggregate functions are
frequently used with the GROUP BY clause of the SELECT statement.

Function Description

Avg(x) avg(expression)
Calculates the average of all values within the numeric database field.

Count(x) count(expression)
Counts the number of times the database field was counted.

Max(x) max(expression)
Calculates the maximum of all of the values of the numeric database field.

ICE 3.0 | 10.0.700 77


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Function Description

Min(x) min(expression)
Calculates the minimum of all of the values of the numeric database field.

Sum(x) sum(expression)
Calculates the total of all the values of the numeric database field.

Math
Mathematical functions execute mathematical operations usually based on input values that are provided as
arguments, and return a numeric value as the result of the operation.

Function Description

Abs(x) abs(expression)
Returns the absolute value of a numeric expression.

Sqrt(x) sqrt(expression)
Returns the square root value of a decimal expression.

Power(x, y) power(expression. exponent)


Returns the expression raised to the power of a decimal expression.

Log(x) Log(expression)
Calculates the natural (e) logarithm of a decimal expression.

Log10(x) Log10(expression)
Calculates the base-10 logarithm of a decimal expression.

(x modulo y) (top expression % bottom expression)


Returns the remainder of the top decimal expression divided by the bottom decimal
expression.

Round(x, y) round(expression , precision )


Rounds a decimal expression to a specified number of places after the decimal
point.

Truncate(x, y) round (expression, precision, 1)


Truncates a decimal expression to a specified number of decimal places, returning
a decimal value.

String
String functions manipulate a string or query information about a string.

78 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Function Description

Asc(x) Asc(expression)
Converts a character expression representing a single character into the
corresponding ASCII value, returned as an integer.

Char(x) Char(expression)
Converts an ASCII integer code to its corresponding character value.

Len(x) Len(expression)
Returns the number of characters in an expression

Left-Trim(x) ltrim(expression)
Removes leading white space from a string expression.

Trim(x) ltrim(rtrim(expression))
Removes leading and trailing white space from a string expression.

Right-Trim(x) trim(expression)
Removes trailing white space from a string expression.

Substitute(x[, y, ...]) Substitute(base-string [, arg ] ...)


Returns a character string that is made up of a base string plus the substitution of
arguments in the string. An argument is referenced in string by &num identifier
where num is 1-based argument index in argument list.

Substring(x,y,z) substring(expression ,position ,length)


Extracts a portion from a string expression.

Replace(x,y,z) Replace(expression ,search ,replace)


Performs a search and replace function on a string expression.

Upper(x) upper(expression)
Converts any lowercase characters in a string expression to upper-case characters.

lower(x) lower(expression )
Converts any upper-case characters in a string expression to lowercase characters.

Date
There are a number of date functions available in the Epicor ERP application.

Function Description

Date(year, month, day) convert(date, expression, 112)


Converts a string expression in 'yyyymmdd' format into date value.

ICE 3.0 | 10.0.700 79


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Function Description

Year(x) datepart(year, expression)


Evaluates a date expression and returns the year value of that date, including the
century, as an integer value.

Month(x) datepart(month, expression)


Evaluates a date expression and returns a month integer value from 1 to 12.

Day(x) datepart(day, expression)


Evaluates a date expression and returns a day of the month as an integer value from
1 to 31.

WeekDay(x) datepart(weekday, expression)


Evaluates a date expression and returns the day of the week as an integer value from
1 (Sunday) to 7 (Saturday) for that date.

Add-interval(x,y,z) dateadd(interval-unit, interval-amount, expression)


Adds a date interval to, or subtracts a date interval from, specified expression.
Expression should be of date type.
To subtract, enter interval-amount as a negative value.
Interval-unit is one of the following words: year, month, week, day.

Conversion
Conversion functions transform an expression of one data type to another.

Function Description

DateToString(x) convert(varchar, expression, date-format-index)


Converts a date value into a character value using a date format index. Default
101 results in 'mm/dd/yyyy' string.

TimeToString(x) convert(varchar, expression, time-format-index)


Converts an integer value into a character value using a time format index. Default
108 results 'hh:mi:ss' string.

DecimalToString(x) convert(varchar, expression)


Converts a decimal value into a character value.

IntToString(x) convert(varchar, expression)


Converts an integer value into a character value.

Integer(x) convert(int, expression)


Converts an expression of any data type to a value of integer data type.

Decimal(x) convert(decimal, expression)

80 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Function Description
Converts an expression of any data type to a decimal value.

Date(mm,dd,yyyy) convert(datetime, convert(char, _year_*10000 + _month_*100 + _day_), 112)


Converts a set of month, day, and year values into a date value. Replace _year_,
_month_ and _day_ placeholders with references to fields of integer type or constant
values.

StringToDate("x") convert(date, expression, date-format-index)


Converts a string date representation (expression) into a date value based on date
format index. For example, if the input string contains a date like '07/21/2012',
then date format index should be set to 101.

IntToDateTime(x) convert(datetime, expression)


Converts an integer expression, into a date value. The expression is treated as
number of days after 01/01/1900.

Logical(x) convert(tinyint, expression)


Converts any data type into the logical data type.

Ranges
Functions in this category return the position, string entry, or number of elements from the list, based on the
expression.

Function Description
Lookup(x,y)
[Ice].lookup(expression, list)
Returns an integer value giving the position of an expression in a list. Returns a 0
if the expression is not in the list.

Lookup(x,y,z)
[Ice].lookup(expression, list, separator )
Returns an integer value giving the position of an expression in a list. Returns a 0
if the expression is not in the list.

Entry(x,y)
[Ice].entry(expression, list, ',')
Returns a character string entry from a list based on an integer position.

Entry(x,y,z)
[Ice].entry(expression, list, separator )
Returns a character string entry from a list based on an integer position.

Num-entries(x)
[Ice].num_entries(list)
Returns the number of elements in a list of character strings as an integer value.

Num-entries(x,y)
[Ice].num_entries(list, separator)
Returns the number of elements in a list of character strings as an integer value.

ICE 3.0 | 10.0.700 81


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Financial
Functions in this category return either the fiscal year or fiscal period for the supplied date based on the fiscal
calendar.

Function Description
FiscalYear(x)
FiscalYear(company, date)
Returns fiscal year for passed date according to fiscal calendar in the database.

FiscalPeriod(x)
FiscalPeriod(company, date)
Returns fiscal period for passed date according to fiscal calendar records in the
database.

Calculated Field: Operators

An operator is a mathematical expression either used with a single function or used to process two or more
functions.

Section Tree View Editor View Expression


Arithmetic Add (x + y) (+) + Addition operator.
Adds two numeric expressions. Adds days to date (date
+ days).

Arithmetic Divide (x / y ) (/) / Division operator.


Divides one numeric expression by another numeric
expression, producing a decimal result.

Arithmetic Modulo (x modulo y) (x modulo y) Module operator.


Determines the remainder after division.

Arithmetic Multiply (x * y) (*) * Multiplication operator.


Multiplies two numeric expressions.

Arithmetic Negate ( - x) (-) - Unary negative operator.


Reverses the sign of a numeric expression.

Arithmetic Subtract (x - y) (-) Subtraction operator.


Subtracts one numeric expression from another
numeric expression.

Boolean Equal (x = y) (=) = Equal operator.


Returns a TRUE value if two expressions are equal.

Boolean And (x = y) and Add operator.


Returns a TRUE value if each logical expression is TRUE.

Boolean Or (x or y) or Or operator.
Returns a TRUE value if either of two logical expressions
is TRUE.

82 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Section Tree View Editor View Expression


Boolean Not (Not x) not Not operator.
Returns TRUE if an expression is false and FALSE if an
expression is true.

Comparison Equal (x = y) = = Equal operator.


Returns a TRUE value if two expressions are equal.

Comparison Greater or Equal (x >= >= Greater or Equal operator.


>= y)
Returns a TRUE value if the first of two expressions is
greater than or equal to the second expression.

Comparison Greater Than (x > y) > > Greater Than operator.


Returns a TRUE value if the first of two expressions is
greater than the second expression.

Comparison Less or Equal (x>=y) <+ <= Less or equal operator.


Returns a TRUE value if the first of two expressions is
less than or equal to the second.

Comparison Less Than (x < y) < < Less Than operator.


Returns a TRUE value if the first of two expressions is
less than the second.

Comparison Not Equal (x <> y) <> < > Not Equal operator.
Compares two expressions and returns a TRUE value
if they are not equal.

Condition If x Then y Else z (case when If-Then-Else condition.


then else end)
Evaluates and returns one of two expressions,
depending on the value of a specified condition.

Condition Case x When y Then case Evaluates a list of conditions and returns one of
z Else k end multiple possible result expressions.
when then
when then
else
end

Other Comment /* */ Comment Characters.


Allows adding explanatory text to a procedure between
the /* and */ characters.

Other Begins Begins Begins operator.


Tests a character expression to see if that expression
begins with a second character expression.

Other Matches “* *” Matches operator.


Compares a character expression to a pattern and
evaluates to a TRUE value if the expression satisfies the
pattern criteria.

ICE 3.0 | 10.0.700 83


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Calculated Field: BAQ Constants

The following table displays the BAQ Constants you can use within the Calculated Field Editor.

BAQ Constant Description


CompanyName The Company Name of the company the user is logged into.
CountryCode The Country Code of the company the user is logged into.
CountryGroupCode The Country of Origin Code of the company the user is logged into.
CurComp The Company ID of the company the user is logged into.

This constant is used for


compatibility with queries
written in Epicor 9 after
they were migrated or
imported into Epicor ERP
Version 10.
When building a new BAQ,
use the CurrentCompany
constant.

CurCompName The Company Name of the company the user is logged into.

This constant is used for


compatibility with queries
written in Epicor 9 after
they were migrated or
imported into Epicor ERP
Version 10.
When building a new BAQ,
use the
CurrentCompanyName
constant.

CurLangID The language ID of the language being used in the Main Menu of the current
session.

This constant is used for


compatibility with queries
written in Epicor 9 after
they were migrated or
imported into Epicor ERP
Version 10.
When building a new BAQ,
use the CurrentLanguageID
constant.

CurrentCompany The Company ID of the company the user is logged into.


CurrentCompanyName The Company Name of the company the user is logged into.
CurrentEmployeeID The Employee ID linked to the user of the current session.

84 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

BAQ Constant Description


CurrentLanguageID The language ID of the language being used in the Main Menu of the current
session.
CurrentPlant The Plant ID of the company the user is logged into.
CurrentTime The current system time. Returns seconds elapsed since midnight.
CurrentUserID The User ID of the user of the current session.
Day The day of month of the system date.
DayOfWeek Returns the current day number of the current week.
DefUM The default Unit of Measure of the current site.

This constant is used for


compatibility with queries
written in Epicor 9 after
they were migrated or
imported into Epicor ERP
Version 10.
When building a new BAQ,
use the DefaultUM
constant.

DefaultUM The default Unit of Measure of the current site.


DesignMode Indicates the special developer mode for Epicor developers is used.
EmployeeID The employee id linked to the user of the current session.
FirstDayOfMonth The first day of the current month of the System Date.
FirstDayOfNextMonth The first day of the next month of the System Date.
FirstDayOfNextWeek The first day of the next week of the System Date.
FirstDayOfPrevMonth The first day of the previous month of the System Date.
FirstDayOfPrevWeek The first day of the previous week of the System Date.
FirstDayOfWeek The first day of this week of the System Date.
GlobalSecurityManager The current session user is a Global Company Security Manager.
LanguageID The language ID of the language being used in the Main Menu of the current
session.

This constant is used for


compatibility with queries
written in Epicor 9 after
they were migrated or
imported into Epicor ERP
Version 10.
When building a new BAQ,
use the CurrentLanguageID
constant.

LastDayOfMonth The last day of the month of the System Date.


LastDayOfNextMonth The last day of the next month of the System Date.

ICE 3.0 | 10.0.700 85


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

BAQ Constant Description


LastDayOfNextWeek The last day of the next week of the System Date.
LastDayOfPrevMonth The last day of the previous month of the System Date.
LastDayOfPrevWeek The last day of the previous week of the System Date.
LastDayOfWeek The last day of the current week of the System Date.
MobileConnect Indicates the Mobile Connect mode is running.
Month The current month of the System Date.
PlantID The Plant ID of the company the user is logged into.

This constant is used for


compatibility with queries
written in Epicor 9 after
they were migrated or
imported into Epicor ERP
Version 10.
When building a new BAQ,
use the CurrentPlantID
constant.

ProductCode The application product code. The available options include "EX" for Express,
"ST" for Standard, "EN" for Enterprise and "Epicor" for any other product
line.
ProductName The application product name. The available options include Express, Standard,
Enterprise and Epicor.
SecurityManager The current session user is a Security Manager.
Today The current System Date.
Tomorrow The next day after the System Date.
VersionString Displays the ICE framework assemblies version of the current product. For
example, 3.0.5.0.
Week The current week of the System Date.
WorkstationDescription The description of the Workstation ID specified in Workstation Maintenance.
WorkstationID The ID of the workstation specified in Workstation Maintenance.
Year The current year of the System Date.
Yesterday The previous day of the System Date.

Advanced Group By Clause Editor

Use the Advanced Group By Clause Editor to build advanced data summarizing expressions.
In BAQ Designer, you can use the following data grouping options:
• Simple Group By mechanism - You can group the query results by specific column(s) by selecting the Group
By check box on the Column Select sheet. This feature, however, has a few limitations - it is only available
for fields selected as Display columns and within the resulting Group By clause, these fields always appear in
the same order as in the Select statement.

86 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

• Advanced Summarizing Options - By accessing the Advanced Group By Clause Editor, you can create more
complex summarizing expressions, such as:
• Group BAQ results by fields different from those defined in the SELECT statement.
• Define custom order of columns in a GROUP BY clause.
• Use special GROUP BY operators such as ROLLUP, CUBE, and GROUPING SETS. These operators are
extensions of the GROUP BY clause. They can generate the same result set as when you use UNION ALL
to combine single grouping queries; however, using one of the GROUP BY operators is usually more
efficient.

Create Group By Expression

This example demonstrates how you can use the advanced Group By expression to view total value of sales orders
and quotes per country and customer.

1. Create a BAQ comprised of OrderHed, QuoteHed and Customer tables.

2. In this example, a filter on the Customer table is applied to only retrieve records from Mexico and Canada.

3. For the Display Columns, select Customer_Country and Customer_CustID columns. You also create
two calculated fields that summarize total amount of orders and quotes.
• For Orders, the following calculation is used:
sum( OrderHed.OrderAmt )

ICE 3.0 | 10.0.700 87


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

• For Quotes, the following calculation is used:


sum( QuoteHed.QuoteAmt )

4. Access the Advanced Group By Clause Editor by clicking on the button.


Similar to Calculated Field Editor, the window contains lists of available fields, functions, and operators. You
can add these items to an expression by either double-clicking them or dragging them onto editor window's
Expression Editor field.
For the complete list of predefined functions, operators and BAQ constants, see the previous topics within
this section.

5. Click Add Row to create new expression.

6. At the top of the Functions node, notice the Group By category displays.

88 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

The ROLLUP, CUBE, and GROUPING SETS operators found in this category represent advanced aggregation
extensions of the GROUP BY clause.

Function Description
ROLLUP
The ROLLUP operator is useful in generating reports that contain subtotals and totals. It
generates a result set that shows aggregates for a hierarchy of values in the selected columns.
The resulting SQL syntax may look similar to the following:
SELECT a, b, c, SUM ( <expression> )
FROM T
GROUP BY ROLLUP (a,b,c);
As the result, one row with a subtotal is generated for each unique combination of values
of (a, b, c) , (a, b) , and (a). A grand total row is also calculated.

CUBE
Generates simple GROUP BY aggregate rows, the ROLLUP super-aggregate rows, and
cross-tabulation rows. CUBE outputs a grouping for all permutations of expressions in the
<composite element list>.
The resulting SQL syntax may look similar to the following:
SELECT a, b, c, SUM (<expression>)
FROM T
GROUP BY CUBE (a,b,c);
As the result, one row is produced for each unique combination of values of (a, b, c) , (a,
b) , (a, c) , (b, c) , (a), (b) and (c) with a subtotal for each row and a grand total row.
GROUPING
Specifies multiple groupings of data in one query. Only the specified groups are aggregated
SETS
instead of the full set of aggregations that are generated by CUBE or ROLLUP. The results
are the equivalent of UNION ALL of the specified groups. GROUPING SETS can contain a
single element or a list of elements. GROUPING SETS can specify groupings equivalent to
those returned by ROLLUP or CUBE. The <grouping set item list> can contain ROLLUP or
CUBE.
The resulting SQL syntax may look similar to the following:
SELECT a, b, SUM (<expression>)
FROM T
GROUP BY GROUPING SETS ((a),(b))

For more information on the above operators, review the available Microsoft® documentation, for example:
• http://technet.microsoft.com/en-us/library/bb522495(v=sql.105).aspx
• http://technet.microsoft.com/en-us/library/ms177673.aspx
• http://blogs.msdn.com/b/craigfr/archive/2007/10/11/grouping-sets-in-sql-server-2008.aspx

For this example, expand Functions > Group By and double-click the ROLLUP function. This function
generates an output that presents subtotals and totals.

7. For group by expression fields, select both Customer.Country and Customer.CustID fields, separated by
a comma.
The Group By expression should now read:
ROLLUP( Customer.Country, Customer.CustID )

8. Click OK to exit the editor.

ICE 3.0 | 10.0.700 89


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

9. Now you can test the BAQ. Notice the total values are summarized by each customer (aggregate rows),
sub-totals rows for each country with the grand total value displaying at the bottom.

The resulting SQL syntax looks as follows:


select
[Customer].[Country] as [Customer_Country],
[Customer].[CustID] as [Customer_CustID],
(sum( OrderHed.OrderAmt )) as [Calculated_TotalOrder],
(sum( QuoteHed.QuoteAmt )) as [Calculated_TotalQuote]
from Erp.OrderHed as OrderHed
cross join Erp.QuoteHed as QuoteHed
inner join Erp.Customer as Customer on
Customer.Company = OrderHed.Company
And
Customer.CustNum = OrderHed.BTCustNum
and ( Customer.Country = 'Mexico' or Customer.Country = 'Canada' )

inner join Erp.Customer as Customer and


QuoteHed.Company = Customer.Company
And
QuoteHed.CustNum = Customer.CustNum
and ( Customer.Country = 'Mexico' or Customer.Country = 'Canada' )

group by ROLLUP( Customer.Country, Customer.CustID )

10. Notice how BAQ results change when GROUPPING SETS function is used to construct the GROUP BY clause.
GROUPING SETS( Customer.Country,Customer.CustID )

Data is now grouped by sets of customers and countries.

90 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

11. Notice how BAQ results change when CUBE function is used to construct the GROUP BY clause.
CUBE( Customer.Country,Customer.CustID )

CUBE outputs a grouping for all permutations of expressions in the composite element list.

Sort Order

The Sort Order sheet is where you define how the data results display when the query runs. You can sort your
data through any combination of columns. You can also select whether the data displays in ascending or
descending order.

You can only add sort fields for the main query or for the
SubQueries using the TOP clause. Otherwise, the BAQ will fail
on execution.

1. In the Available Columns section, highlight the column by which you want to sort data.
You can also use keyboard combinations to select multiple fields. You can click one field and then press
and hold the <Shift> key to select a range of fields. You can also press and hold the <Ctrl> key and select
a specific group of fields.

The data in this query is now sorted first by Company, then by Sales Order Number, and lastly by Sales Order
Line Number.

ICE 3.0 | 10.0.700 91


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

2. Click the Right Arrow button or drag and drop the column names to the right pane.
The column is added to the Sort By field.

3. If you need, use the Up Arrow and Down Arrow buttons to change the sorting order.

4. To control if data should be sorted in an ascending or descending order, double-click on the selected column.
The direction is reflected on the small triangle that displays next to the selected column.

5. To remove a column from the sort list, highlight it and click the Left Arrow button.

6. Once finished, click Save.

7. When the BAQ executes, the results are sorted.

SubQuery Options

Use the SubQuery Options sheet to define subquery parameters.


A subquery is a query that is nested inside a SELECT statement, or inside another subquery. A subquery can be
used anywhere an expression is allowed. Each Business Activity Query can contain one main subquery, where
Type=TopLevel and several subqueries of different types to indicate how they correlate with each other.

92 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Subqueries give different advantages for query design, including:


• Support of widely used query criteria as IN ({inner subquery}), EXISTS ({inner subquery})
• Using common table expressions (CTE), including CTE with recursion and UNION ALL for querying hierarchical
data
• Using CTE and inner subquery in the FROM clause and joins
• Using set operations, like UNION, UNION ALL, EXCEPT, INTERCEPT

The above set operators are the methods of combining


several result sets. You can create 1 TopLevel subquery and
combine its result with some other subqueries of this
subquery type, using these SQL standard keywords.

By default, a simple query contains only one subquery with the following attributes:

Field Value
Name SubQuery1
Type TopLevel
Results Row Set All

When you add new subqueries to the BAQ, all subqueries, excluding Inner subqueries, are ordered by the Seq
field. Each query text is generated and these texts are concatenated. No assumption of the subquery order is
made.

Define Main SubQuery

When you create the new BAQ, the main subquery named SubQuery1 is created by default.
To set up the main subquery:

1. Create a new query and specify its main parameters on the General sheet.

2. Navigate to the Query Builder > SubQuery Options sheet.

ICE 3.0 | 10.0.700 93


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

3. In the Name field, enter the name of the main subquery. In this example, the BAQ returns the list of quotes
from the QuoteHed table. To identify the subquery, you can enter this value in this field.

4. In the Type field, verify TopLevel displays.

Each BAQ can contain only one main TopLevel subquery.

5. In the Result Set Rows field, select how data displays in the subquery results set.
The below tables lists the available options:

Keyword Description
All Default value; the SELECT ALL command returns all data without restriction.
Distinct SELECT DISTINCT specifies that only unique rows can display in the result set.
Top SELECT TOP clause specifies the number of rows or percent of rows to return.
You can either a number or percent of rows the result set displays.
WITH TIES specifies that the query result set includes any additional rows that match
the values in the ORDER BY column or columns in the last row returned. This may cause
more rows to be returned. TOP...WITH TIES can be specified only in SELECT statements,
and only if an ORDER BY clause is specified.

DistinctTop SELECT DISTINCT TOP corresponds to using DISTINCT and TOP clauses simultaneously.
The query results set contains top unique rows.

6. When Top or DistinctTop keyword is selected in the Result Set Rows field, the Top Clause pane becomes
enabled. Also notice the Order By OFFSET - FETCH Clause pane is now disabled.

TOP as well as DISTINCT TOP cannot be combined with


OFFSET and FETCH in the same query expression.

7. In the Rows Number field, enter the number of rows or percent the query results set will return. You can,
for example, have the query return the list of latest 50 quotes for a review.

8. If you select In Percent, the top percent of rows specified in the Rows Number field will be returned in the
results set.

94 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

9. If you select With Ties, the query result set includes any additional rows that match the values in the ORDER
BY column or columns in the last row returned.

Only select this option in SELECT statements and only if


an ORDER BY clause is specified.

10. The Offset and Fetch fields provide you with an option to fetch only a window or page of results from the
result set. You can use the Offset field to enter the number of rows to skip, before starting to return rows
from the query expression.

11. The value you enter in the Fetch field specifies the number of rows to return, after processing the OFFSET
clause.

The OFFSET/FETCH rowcount expression can be any


arithmetic, constant, or parameter expression that will
return an integer value.

Please be aware of the following limitations:


• Using OFFSET/FETCH requires MS SQL Server 2012 or later.
• ORDER BY clause is mandatory to use OFFSET and FETCH clause.
• OFFSET clause is mandatory with FETCH. You can never use, ORDER BY … FETCH.
• OFFSET and FETCH cannot be combined with TOP/DISTINCT TOP keywords in the same query expression.

Example You can construct a BAQ against the table of


all employees. By entering 5 in the Offset field, the first
five rows from the sorted result set are skipped. By
entering 10 in the Fetch field, the BAQ returns next 10
rows from the employees table. The resulting query syntax
looks as follows:

select
[EmpBasic].[EmpID] as [EmpBasic_EmpID],
[EmpBasic].[FirstName] as [EmpBasic_FirstName],
[EmpBasic].[LastName] as [EmpBasic_LastName]
from Erp.EmpBasic as EmpBasic
order by EmpBasic.EmpID OFFSET 5 ROWS FETCH NEXT 10 ROWS ONLY

ICE 3.0 | 10.0.700 95


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Create SubQuery

When you construct a query, you can add various types of subqueries and indicate how they correlate with each
other.
To define a subquery:

1. Navigate to the Query Builder > SubQuery Options sheet.

2. On the Active SubQuery toolbar, click New SubQuery.

3. In the Name field, enter a name for the subquery.


This subquery retrieves the list of orders from the OrderHed table. To identify the subquery, you can enter
this value in this field.

4. In the Type field, select the type of correlation between subqueries. By default, the subquery is set to
InnerSubQuery type. In this example, you combine the current subquery's results with the TopLevel subquery
using the Union operator.
The below tables lists all available options you can use for the subquery:

Type Description
TopLevel Default value for simple query; each BAQ can contain one main TopLevel subquery.
Union The UNION command is used to select related information from two tables, much like
the JOIN command. However, when using the UNION command all selected columns
need to be of the same data type. With Union, only distinct values are selected.
UnionAll The UNION ALL command is equal to the UNION command, except that UNION ALL
selects all values.
The difference between Union and Union all is that Union all will not eliminate duplicate
rows, instead it just pulls all rows from all tables fitting your query specifics and combines
them into a table.

96 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Type Description
Intersect Use the INTERSECT command to return the results of two or more select queries. However,
it only returns the rows selected by all queries. If a record exists in one query and not in
the other, it will be omitted from the results.
Except Returns any distinct values from the query to the left of the EXCEPT operand that are
not also returned from the right query.
CTE A common table expression (CTE) can be thought of as a temporary result set that is
defined within the execution scope of a single SELECT (or may serve as a subquery, instead
of SELECT).
A common use of CTE is to query hierarchical data. Returning hierarchical data is a
common use of recursive queries, for example: displaying employees in an organizational
chart, or data in a bill of materials scenario in which a parent product has one or more
components and those components may, in turn, have sub-components or may be
components of other parents.

InnerSubQuery InnerSubQuery is usually added in the WHERE Clause of the sql statement as a nested
query inside another query. Most of the time, a subquery is used when you know how
to search for a value using a SELECT statement, but do not know the exact value.

When connecting subqueries using UNION, UNION ALL,


EXCEPT and INTERSEPT operators, it is necessary to define
the same number and type of display fields in both
subqueries. Field labels may be different. When this
condition is not met, the BAQ will fail on execution. For
more information, review the Select Columns - Set
Operator Type SubQueries topic discussed before.

5. In the Result Set Rows field, select how data displays in the subquery results set.
For more information on Type and Result Set Rows options, review the previous Define Main SubQuery
topic.

6. Navigate to the Query Builder > Phrase Build sheet.

ICE 3.0 | 10.0.700 97


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

7. Add table(s) you need to construct the subquery. Use the techniques defined in the Phrase Build topics to
create the BAQ.

Example You can, for example, create links between


tables and subqueries, use various operators, reference
subqueries when filtering data or creating calculated fields
and so on.

8. To switch between subqueries, use the Active SubQuery navigational toolbar.

9. When complete, click Save.

10. On the General sheet, in the Query Phrase section, view the resulting SQL statement.

11. In this example, notice the TopLevel subquery displays at the top of the SQL statement, followed by the
second subquery of Union type.

12. Navigate to the Analyze sheet and verify the syntax is OK and the BAQ returns expected data.

The Case Studies section at the end of the chapter


provides several step-by-step examples on how to create
BAQs with multiple SubQueries.

SubQuery List

Use the SubQuery List sheet to view and manage all subqueries you create within the BAQ.
In the grid, all subqueries you create are ordered by the sequence number. Except inner subqueries, the sequence
number defines how partial query texts are concatenated to build the final SQL statement. If subquery contains
reference to an inner subquery, the text of the inner subquery is generated on demand and inserted where
required.
On the subquery panel, you have the ability to create and remove subqueries, change their sequence value and
view how data displays in the results set.
To manage subqueries:

98 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

1. Navigate to the Query Builder > SubQuery List sheet.

The parameters of subqueries in the grid display in a


read-only mode. For more information on each of these
fields, review the SubQuery Options topic.

2. To create a new subquery, click the New SubQuery button. You must then define its main parameters on
the SubQuery Options list.

3. To remove the subquery from the BAQ, click Remove SubQuery.

4. To move the selected subquery up in the list, click the Up Arrow button.

5. To move the selected subquery down in the list, click the Down Arrow button.

6. You can use parenthesis to group SubQueries and create the following query constructions:
• Addition of Union SubQueries to InnerSubQueries, for example:
Select * from (select field from table union all select field2 from table2). -> top (inner union)
• Grouping of Set-Operator SubQueries, for example:
Select field from table Union (select field2 from table2 except select field3 from table 3) -> top (union
except)

Note when a group for inner SubQuery is created, the field mapping is shown using this first inner SubQuery.

Example

Top
Inner <- some separate inner SubQuery
Union <- fields are selected according to the Top field list
Top
(Inner <- groups with next Union
Union)<- Fields correspond to Inner SubQuery

7. Once finished, click Save to refresh the BAQ definition.

ICE 3.0 | 10.0.700 99


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Updatable Business Activity Query

Besides using BAQs to display custom views of data, you can also create updatable business activity queries.
These updatable queries have business object methods connected to them, so users can create and edit records
- updating the database through the query itself.
You create updatable BAQs in a similar way to display only BAQs by adding tables, filter criteria, display columns,
and so on. You have some extra steps, however, as you need to define which table contains the updatable fields
and also make sure the business object methods are correctly linked to the updatable fields.
Just like a read-only BAQ, you can link as many tables in relationships as you need. Multiple tables accessed by
each BAQ can be updatable, however, so you can construct updatable BAQs that contain as many updatable
fields as you need. The one limitation is that only one business object involved in each process can contain an
updatable BAQ, but because multiple updatable table combinations are possible , you should be able to create
an updatable BAQ that matches your needs.
You can place updatable BAQs on smart client dashboards. After you add these dashboards to the Main Menu,
they become custom data entry programs users can launch to both review current data and make any updates
they need. Optionally, you can also use updatable BAQs on mobile device dashboards. Once you create a mobile
dashboard that contains an updatable BAQ, users run this custom entry program on an iPhone, Blackberry, or
other supported mobile device. Users enter data through the mobile device, directly updating the database
wherever they may be. In order to build mobile device dashboards, you must purchase a mobile device dashboard
license from Epicor.

Before you can create updatable BAQs, you must have both
BAQ Advanced User and BPM Advanced User rights.
Because updatable BAQs require business process management
(BPM) methods to run, you need access to these rights as well.
You activate both advanced BAQ and BPM rights within User
Account Maintenance.
Furthermore, in order to use BPM Update Processing via
UpdateExt and Advanced BPM Processing (design,
import/export and copy), the BusinessProcessManagement
module must be licensed in your Epicor ERP installation. The
BPM license is not required for database updates through Epicor
Service Connect workflows.

User Rights

Although you can access most BAQ functionality, to create and modify updatable BAQs, you must have both
advanced BAQ and advanced BPM rights. Because the updatable business activity queries run through BPM
methods, you need to use these advanced features. You activate advanced BAQ and BPM rights on your account
within User Account Maintenance.
To assign updatable BAQ rights to a user account:
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

100 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

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

2. Navigate to the Options sheet.

3. Select the BPM Advanced User check box.

4. Select the BAQ Advanced User check box.

5. Click Save on the Standard toolbar.

This user account can now access the updatable BAQ features. The next time you log into the application through
this user account, you can use the Update sheets within the Business Activity Query Designer.

ICE 3.0 | 10.0.700 101


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

General Properties

Use the controls on the General Properties sheet to indicate how users can enter and edit records through the
updatable BAQ. You also indicate which fields are available for data entry.

Updatable Query Settings

You can now begin defining the main options for your updatable query.
To define the main updatable BAQ properties:

1. First, create a new BAQ. To activate the sheets under the Update tab, one the General sheet, select the
Updatable check box.
In this example, an updatable BAQ using the Customer table is used.

2. Define the main options for your updatable query. Select the Update > General Properties sheet.

3. Select the Allow New Record check box to indicate users can add new records through this updatable
BAQ.
In this example, the check box is selected, which indicates users can enter new customer records through
this BAQ. When this check box is clear, users will only be able to update existing records.

102 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

4. If you wish, enter a Label for AddNew value. This value defines what appears on the drop-down menu
next to the New button on the Standard toolbar.
The text you enter here displays as a node on this drop-down menu. Be sure it identifies the purpose of the
new record the users will create through this updatable BAQ.

5. Select the Allow Multiple Row Update check box to give users the ability to make changes to two or
more rows in a table at the same time.
If this check box is clear, users are required to save one changed row before they can work on another
row.

6. To make new actions available for use within an Updatable BAQ directive (using the BPM functionality), you
need to create action placeholders. You do this optional step by clicking the Define Custom Actions button.

7. The Define Custom Action window displays.

8. To create a new action, click the New button.

9. Enter an ActionID. This identifier defines the custom action within the updatable BAQ.

10. Enter an ActionLabel. This value defines how the action displays on buttons within the dashboard.

11. If you wish to remove a custom action, click the Delete button.

12. Continue to add the custom actions you need. When you finish, click OK.

13. You return to the Update > General Properties sheet.

14. You can also launch the Define Custom Action window from the Actions menu. To do this, from the Actions
menu, select Define Custom Action.

ICE 3.0 | 10.0.700 103


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Define Updatable Fields

Next, you use the Query Field List to indicate which Display Column fields the users can update. You can also
create or select default values that automatically populate a field.

1. To indicate all of the selected columns within the Query Field List grid are available for data entry, click
the Check All Fields As Updatable button.
The Updatable check box is automatically selected on each field (row) in the grid.

2. The Alias field displays the specific Alias for each displayed column within your updatable BAQ TopLevel
Subquery.

3. The Data Type field indicates the kind of data contained within the specific field. Available types:
• nvarchar - Alphanumeric letters and numbers
• int - Whole numbers only
• decimal - Numbers which also contain decimal places
• bit - Defines a True/False value; on the interface, logical fields appear as check boxes or radio buttons
• date - Date (month, day, year) values only
• datetime - A date value which also includes the time
• uniqueidentifier- A Globally Unique Identifier value

4. The Updatable check box indicates users can enter data within a specific field. When you select this check
box, users can then enter data within this specific field; this new data is then saved to the database.

5. Select the IsRequired check box to make the current field required. This indicates the field cannot be empty.
When users attempt to save a new or existing record within the query and this field is blank, they will not
able to save the record until they enter a value in this field.

104 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

6. You cannot update a field if its IsReadOnly property is selected within the table. This check box displays
for your information and cannot be modified. If this check box is selected, users cannot change the data
that appears in this column.

7. Use the InitialExpression field to enter a text value that displays in the field before users actually enter
data into it. Use this feature to place some instructional text in the field to help the user understand what
information is required for this field.

8. If you want to create a calculation to determine the initial expression, click the Column Initial Expression
button. This launches a window similar to the Calculated Field window; use the controls on this window to
create a formula that generates the initial expression you need for a specific field.

• This button becomes enabled when one of the BPM


Update methods is selected on the Update
Processing sheet.
• When you set up the interaction of BAQ with Epicor
Service Connect (ESC) this button is disabled.
• Be sure to use C# syntax when building an expression.

9. You can also define specific acceptable values that will be available in a specific field. To do this, click the
Advanced Column Configuration button.
This feature is discussed on the following topic.

Updatable Field Editor

Use this window to define the type of data the users will enter through this updatable BAQ field. You can define
text fields, date fields, number fields, drop-down list options, and radio button options through the controls on
this window.
Updatable BAQs utilize two field format definitions. The format you define on the Display Fields > Columns
Select sheet defines how a field value displays in a read-only mode, for example, in a grid.
You can define a second format in Updatable field editor. This way, you can define different formats for
example, x(10) for display and >>,>>9.99 for editing.
This window is similar to the Query Parameters window described in the previous Phrase Build - SubQuery
Criteria section.

To use an editor:

ICE 3.0 | 10.0.700 105


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

1. Use the tree view to select an updatable field for which you want to define values.

2. Select the Data Type for the parameter from the drop-down list. Available types:
• Nvarchar
• Integer
• Decimal
• Date
• DateTime
• Bit
• uniqueidentifier

3. In the Format field, the default format for this Data Type displays.
If you need, you can edit this value. Be sure the format follows the convention of the database.

4. If this field is required in order for the BAQ to pull in query results, select the Mandatory check box.

5. Use the Editor Type drop-down list to define the editor control the user will have for entering data within
the updatable field. Available options:

Option Description
Common Editor Activates the Editor Default field. Enter a custom text value you need for the
field.
This text appears by default; users can then enter a different value in this field.

Radio Button Set Activates the Values Editor sheet. Use this sheet to define the various radio
button options for this field. Users can then select a radio button option from
the values you define in this window.
DropDown List Activates the Data from drop-down list. Use this list to define the source of
the drop-down list options. The field then displays options contained on the
drop-down list.

106 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

6. If you select the Common Editor option from the Editor Type drop-down list, the Editor Default field
activates. Enter the default value you want within this field. When you use this updatable BAQ in a dashboard,
this value is used to perform field level validation either before changes to a field are saved to the database
or after updates to the field are changed and returned for display on the interface.

7. If you want this field to generate a Business Process Management (BPM) method, select the Raise Events
check box. When you complete your updatable BAQ on the Update Processing sheet, you can see these
new methods within the Updatable BAQ Method Directives window. On the finished Dashboard assembly,
this will be used to perform field level validation before proposed changes to the field are committed or to
perform additional updates after the field value has changed.

8. If you want the field to have access to a quick search for finding and selecting data entry values, click the
Quick Search button to locate the quick search you need. You create quick searches through Quick Search
Maintenance; these configurable search programs display input criteria to use for a search, display search
result fields, and returns the data from the specific field you define. For more information on quick searches,
review the Quick Search section within Chapter 4: Searches.

9. If you select the DropDown List option from the Editor Type drop-down list, the Data from field activates.
Use the options from this drop-down list to indicate the source from which the data on this list populates.
Available options:

Option Description
Custom Values
Causes the Values Editor to display controls for creating a new list of values. Use this
functionality to define the various list options this drop-down list will use.
Enter the following information:
• Value - Enter the actual value of the parameter that will be send to the query.
• Display Text - Enter the text displayed for the user for this value.
• Order - Defines the sequential order of items in the list.

BAQ The Values Editor displays controls for selecting a BAQ. Enter the following information:
• Query ID - search for and select the BAQ you need.
• Display Column - select the column which displays in the lookup list.
• Value Column - defines the name of the column you want to use for the field value.

User Codes Causes the Values Editor to display controls for selecting a specific User Code. User codes
are lists of custom values you define through User Defined Code Maintenance. When
you select a user code, the drop-down list populates with values contained within the
custom user code record. For more information about creating user codes, review the
User Defined Codes Maintenance help topics.

10. Continue creating values for all of the updatable fields you need. When you finish, click Save.

11. To exit this window, click Close.

Update Processing

In order for your updatable BAQ to work properly, use the controls on the Update Processing sheet to select and
configure a processing method used to update the target database.
You can select one of the following processing types:

ICE 3.0 | 10.0.700 107


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

1. Use the Service Connect Workflow method to set up the interaction of business activity query with Epicor
Service Connect (ESC). Database updates are performed using the ESC workflow created directly from
Business Activity Query Designer.

2. Use the Advanced BPM Update only method to create a BPM directive manually from scratch, or, to
customize the directive generated by BPM Update processing. Updatable BAQ directives initiate BPM actions
based on method calls launched from an updatable BAQ.

3. Use the BPM Update method to perform database updates using the special Business Object method
UpdateExt, that simulates the standard way, how application manipulates data within Business objects.
Each of these methods is discussed in the following topics.

Service Connect Workflow

The following topics discuss the controls on the Update Processing sheet to set up the interaction of business
activity query with Epicor Service Connect (ESC).
Epicor Service Connect settings are primarily defined on the Company Maintenance > General Settings sheet.
When a user clicks the New button, the BAQ Designer tries to connect to ESC using the default settings defined
on this sheet.
Navigate to Company Maintenance.
Menu Path: System Setup > Company/Site Maintenance > Company Maintenance

This program is not available in the Epicor Web Access.

108 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

1. Select the General Settings sheet.

2. In the Server field, enter the server where Epicor Service Connect is installed.

3. Enter the User name and Password of an Epicor Service Connect user account that has rights to the server.

4. Click the Test Connection button to verify the connection to the Epicor Service Connect server is established.

5. In the UBAQ Workflow Package field, select the default workflow package where workflows created
from Business Activity Query Designer are placed.

A Workflow Package is the Service Connect equivalent


of a physical folder. It is used to store document processes,
also referred to as workflows in logical groups. A list of
all existing packages displays in the Workflow Packages
node under the Connectivity node of the Epicor Service
Connect Administration Console tree.

At the new workflow creation, you can override this value by selecting a different workflow package than
default.

ICE 3.0 | 10.0.700 109


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Create Service Connect Workflow

Use the following steps to create new workflow using the ESC parameters defined on the Company Maintenance.

1. To create a new workflow for the uBAQ, click the New button.

2. The Enter Workflow window displays.

3. In the Select a Workflow package list, accept the default workflow package defined in Company
Maintenance or select a different package where you want to save the new workflow.

4. In the Enter new Workflow name field, type the name of the workflow to be created.
Good practise is that BAQ and workflow are named the same.

5. Click OK.

6. The parameters you selected now display in the field.

Configure Workflow Parameters

You can override ESC settings defined on Company Maintenance by calling an existing or creating a new workflow.
To configure parameters:

1. Next to the Service Connect Workflow field, click the Configure button.

110 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

2. The Select Workflow window displays.

3. From the drop-down list, select an available ESC Server you want to use for update processing.

4. The Server URL automatically displays the integration service that handles communication between Epicor
ERP and Epicor Service Connect.

5. If you want to use an existing workflow, in the Workflows tree view, search for and select a workflow you
want to use.

6. If you want to create a new workflow, click the Create New button and specify the workflow package and
workflow name.

7. In the SC Workflow Launch Credentials pane, specify the Username and Password to launch the selected
workflow. The credentials you enter on this form are shared by all BPM's Invoke Service Connect actions in
this company.

8. When you click the Advanced button, you are presented with the Workflow Context Parameter window.
The information on this window is shared between the BAQ Designer and BPM. The ESC server credentials
you enter allow calling of Epicor services from the Epicor Service Connect side by using imported .net
references.

9. Once complete, in the Select Workflow window, click OK.

Standard Template Workflow

The standard ESC template workflow and corresponding schemas are created directly from the Business Activity
Query Designer.

If you perform database updates using Service Connect on an


External Business Activity Query, at the beginning of the
workflow creation process, an updatable BAQ is inspected for
a DataSource Type attached to the query.
• If the Application Type field you define on External
Datasource Type Maintenance is set to Prophet 21,

ICE 3.0 | 10.0.700 111


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

iScala or Eclipse, the workflow is designed to perform


updates specifically against these external applications.
• If the Application Type field you define on External
Datasource Type Maintenance is set to Generic, the
generic workflow is in created Epicor Service Connect. You
can use this workflow to perform updates to any target
database for which you successfully established connection.

Example The following is an example of a standard workflow


called from BAQ.

The following is the list of events the generic Service Connect workflow handles:
• GetNew - This method generates a new record and adds it to the database table. If your updatable BAQ
allows users to enter new records, when users create new methods they activate this method. A new, blank
row is created within the updatable table, and the user populates the fields linked to this row with new data.
• Update - This method refreshes the information within the database with new information a user has entered
in the updatable BAQ. When you test your updatable BAQ by modifying existing data, this method runs when
you click the Update button. When the updatable BAQ is embedded within a dashboard, this method runs
when the user enters new data and clicks the Save button.
• CustomAction - Use this method to run custom actions you define on the uBAQ.
• FieldUpdate - This method occurs after the user's change to a field is committed. You can use this method
to perform additional processing against the changed row. For example, when you enter a part number, you
want the part description field to populate automatically.
• FieldValidate - This method occurs before the proposed change to a field is committed. You can use this
method to validate proposed changes. For example, you can prevent users from entering an incorrect value
in a certain field such as non-existent state.
You can customize the workflow so it meets your business process requirements. Use the available Epicor
Service Connect documentation to learn how to build workflows which can automate processes, connect
different business entities, applications, or users.

112 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

BPM Update Processing

Use this method to perform database updates using the special Business Object method UpdateExt. This update
method governs the whole data transaction process between the updatable BAQ and the related Business Object.
To use BPM update processing:

1. In the Processing Method pane, select the BPM Update radio-button.

2. The BPM Update Processing section activates.

3. Click the Business Object button.

4. The Select Business Object window displays. The business objects for the tables on the current BAQ display
by default in this window.

5. Select the business object you want from the Suggested business objects list.

The list of business objects is suggested based on tables,


participating in the query.

6. The Update Method indicates the method used to enter the changes made through the updatable BAQ
to your database. By default the UpdateExt method displays, which is the update method used on all
updatable BAQs.

7. If you need, you can select a different business object by clicking the Select Business Object button.

8. When you have selected the business object you want, click OK.

9. When you select a Business Object and a method, the Tables to update pane displays the hierarchical tree
of all tables, participating in the UpdateExt method.

ICE 3.0 | 10.0.700 113


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

After you select a BO, uBAQ automatically attempt to synchronize Column Mappings. If uBAQ display list
contains table fields corresponding to table fields from the UpdateExt tables list, mapping between these
fields is automatically created. Within the Tables to update tree, a checkbox displays next to each table for
which such mapping was found.
In the process of field mapping between BO and BAQ, you can select / deselect different tables based on
your needs. Only tables, checked in the tree -view will participate in Column Mapping and used in update.

10. The two sheets at the bottom display columns are mapped with the following distinction:
• The Input Column Mapping defines how data is pulled from the uBAQ table to the Business Object
table.
• The Output Column Mapping defines how data is pulled to the uBAQ from the Business Object, after
the UpdateExt method executes.
The Column Mapping sheets are discussed on the following topic.

11. When you finish, click Save.

Column Mapping

After you select a BO, uBAQ automatically attempt to synchronize Column Mappings. You can modify this
information to create custom mapping between BAQ and Business Object.
The following list outlines how BAQ Column Mapping works:
• If BO table field is used in either Input or Output Column Mapping, then input mapping for all its primary key
fields must be provided in order to uniquely identify table rows.
• BO UpdateExt tables are organized in the Tree-view. To update a child table, the primary key values of all
parent tables must be supplied in Input Column Mapping.
These required columns are automatically added when you click the Synchronize button, or when you
regenerate the BPM Directive by saving the BAQ.

114 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

• If BAQ cannot suggest mapping automatically, the right side of Input Column Mapping assignments shows
no mappings. A corresponding error message displays when BPM Directive is regenerated on BAQ save.

1. The Query To Object Column Mapping defines assignments of BAQ fields to the Business Object table
fields.

2. The MapTableName field displays the table name, used on the left side of a mapping assignment.
For Input Column Mapping, this field displays the Business Object table name.

3. The MapFieldName field displays the Business Object table field name.

4. The NetDataType field indicates .NET data type of the field such as Boolean, Integer or String.

5. When Required check box is selected, it indicates that users must enter data in this field before a new
record is saved. If they attempt to save the field without entering data in it, an error message displays. The
information in this field is supplied from Business Object, where the specific column is marked as required.

6. When IsKeyField check box is selected, it indicates this BO field is part of primary key and input value is
required for UpdateExt functionality.

7. The Expression displays the equation used to pull data from the updatable BAQ into the Business Object
table.

ICE 3.0 | 10.0.700 115


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

8. You can use the editor to manually create an expression you want to assign (or map) to the
MapTableName.MapTableField. Click the Expression Editor button to launch the Business Object Update
Expression window.

9. The Editor displays the expression used to pull data from the updatable BAQ into the Business Object table.
When you launch the Business Object Update Expression from the input mapping, the Add All Mandatory
Fields option becomes available on the Actions menu. This option adds all fields from TopLevel Display
Columns to the output mapping. You must then make sure all empty mapping expressions are filled.

Make sure the expression you create is written using the


.NET C# syntax. Bee aware that no SQL functions and
Operators are applicable on this form. This window is
nearly identical to the Calculated Field Editor. For more
information, review the Create a Calculated Field topic.

10. The Object To Query Column Mapping sheet defines how data is returned to the BAQ from the Business
Object.

11. For Output Column Mapping, the MapTableName field displays a ttResult variable, corresponding the
current row in BAQ execution results table.

116 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

12. The MapFieldName field displays the BAQ ttResult field name, containing selected field Alias.

13. You can use the NullableType checkbox to manually specify that result can contain a null value.

14. You can use the Expression Editor button to manually create an expression you want to assign (or map)
to the MapTableName.MapTableField. Note that BAQ columns within an expression should be referred as
ttResult.Alias columns.

15. When you launch the Business Object Update Expression from the output mapping, the Add All Result
Fields option becomes available on the Actions menu. This option inspects the BO and adds all fields marked
as required, to the input mapping. You must then make sure all empty mapping expressions are filled.

16. For both input and output column mappings, you can use the toolbar above the grid to add/remove from
mapping and sort MapFIeldName list in an alphabetical order. The Synchronize option inspects all tables
within the BO. If BO tablename and field name exists in the BAQ display field - a new mapping row is
automatically created.

Advanced BPM Processing

Business Objects contain the code that calls a database, sending current data to a custom dashboard for display,
or populating the database with new data. A business object (also called a BO) houses the methods used to
enter, view, and calculate data for a specific function within an application.
Each process a business object can run is called a method; by default each updatable BAQ contains the following
methods:
• GetNew - This method generates a new record and adds it to the database table. If your updatable BAQ
allows users to enter new records, when users create new methods they activate this method. A new, blank
row is created within the updatable table, and the user populates the fields linked to this row with new data.
• Update - This method refreshes the information within the database with new information a user has entered
in the updatable BAQ. When you test your updatable BAQ by modifying existing data, this method runs when
you click the Update button. When the updatable BAQ is embedded within a dashboard, this method runs
when the user enters new data and clicks the Save button.
• Get List - Retrieves the data specified by the query.
• CustomAction - Use this method to run custom actions you define on the uBAQ.

ICE 3.0 | 10.0.700 117


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

• FieldUpdate - This method occurs after the user's change to a field is committed. You can use this method
to perform additional processing against the changed row. For example, when you enter a part number, you
want the part description field to populate automatically.
• FieldValidate - This method occurs before the proposed change to a field is committed. You can use this
method to validate proposed changes. For example, you can prevent users from entering an incorrect value
in a certain field such as non-existent state.
Each of these methods can be monitored through Business Process Management (BPM) directives. BPM
customization allows using of mostly all BPM Method directive actions and conditions for processing query data.
When you create an updatable BAQ, the application writes a base processing directive for the update method.
The directive uses C# code to update the database according to the settings defined in the Business Activity
Query Designer. These directives can evaluate the data passed into or out of the database, interrupting the
processing when certain conditions you define are met. Various actions, again which you define, then automatically
run in response to the condition. You create these Updatable BAQ Method Directives from within the Business
Activity Query Designer, or, you can access the program directly from the main menu:
Menu Path: System Management > Business Process Management > Updatable BAQ Directives Maintenance

This program is not available in the Epicor Web Access.

To following are the ways of using the Advanced BPM processing functionality:

1. Business Activity Query Designer helps users with updating data via a selected business object. For these
purposes, the UpdateExt method is used. This update method governs the whole data transaction process
between the updatable BAQ and the related Business Object (BO). When you select the BPM Update option
on the Update Processing sheet, you activate the BPM Update Processing section to configure data updates.

2. You do this by selecting an appropriate Business Object and defining data Mappings between BO's dataset
and query display fields.

3. Click the BPM Directives Configuration to access the Updatable BAQ Method Directives.

118 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

4. Based on the information you specified in BPM Update Processing, the BAQ Designer generates the Base
Processing directive against uBAQ.Update method.

5. This directive is named #BASE# and contains a workflow item with custom C# code, which prepares data
and calls UpdateExt for selected BO.

6. Also, Base Processing directive for the GetNew method is automatically generated if the Allow New Record
option is selected on the Update > General Properties sheet. This directive is also named #BASE# name
and it contains C# code with field assignments for new row as defined in Initial Expression column defined
on the General Properties.

When you use BPM Update option to perform uBAQ


updates, do not edit #BASE# directives because any
changes will be discarded once the query is saved in BAQ
Designer.

ICE 3.0 | 10.0.700 119


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

7. However, the BAQ Designer gives you the ability to modify the directives for any methods. By using the
Advanced BPM Update only option, you can create a BPM directive manually from scratch, or, to customize
the directive generated by BPM Update processing.

8. If you do not specify BPM Update Processing and launch Updatable BAQ Method Directives, then no #BASE#
directives are generated automatically for the GetNew and Update methods. Use this option to customize
the method completely by yourself.

You should always create Base Processing directives


for all updatable query methods you want to call.
Otherwise the error message "There is no BPM
customization attached to Update method of test
updatable query in XYZ company" displays.
The exception to this rule, are GetList and GetNew
methods, which have the base processing functionality
embedded. For these methods, creation of
Pre-Processing and Post-Processing directives is
reasonable.

For more information on how to build a directive and which workflow elements are available for use with
uBAQ directives, review the Business Process Management chapter.

Analyze

Use the Analyze sheet to both analyze and test your query for any possible problems before you use it in the
live application.
Run the data controls on this sheet to verify that the data results you need populate on this grid. If you are not
seeing the results you want, you can return to the Query Builder sheets to modify the query and then test the
results again.
Additionally, the Analyze sheet contains the functionality you use to verify and updatable BAQ can pull in (get)
data, update records, and add new records. You can also use this sheet to test a custom Business Process
Management (BPM) method against the updatable BAQ. After you verify the updatable BAQ can perform all of
the functions successfully, you are ready to place it on smart client and mobile device dashboards. Users can then
enter and update the data they need through this query.

BAQ Designer allows testing update operation on records


belonging to current company only.

Analyze and Test the Query

After you create a query, verify its functionality on the Analyze sheet.
To verify the query:

120 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

1. Navigate to the Analyze sheet.

2. Click the Analyze button.


The Query Execution Messages pane displays the response from the server, indicating whether or not the
syntax is correct.
If the BAQ Designer detects any issue, the Analyze Message window pops up. It provides you with guidelines
on how to correct the error.

3. To set the maximum number of rows returned by the query, you can select a value in the Rows to Return
field.
From the drop-down list, you can either select one of the predefined values or you can enter a custom value:
• <empty>
• 10
• 50
• 100
Note the value entered in this field is not saved with the BAQ, it is used for testing purposes only.
If an empty value is selected then by default, the query returns maximum of 10000 records. This limitation
is only applied on retrieving BAQ results while testing their execution. If you need to turn this limit off, access
Execution Settings from the Actions menu and set the RemoveTestRowLimit parameter to True.

4. Click the Test button.


The data you are pulling in and displaying through your query displays in the Query Results grid. In this
example, the BAQ retrieves the list of customers from the Customer table.

5. If the BAQ runs too long, you can cancel its execution using the X button that displays to the right of the
Clear Grid button.

This feature is only available for BAQs executed in a MS


SQL database. The SQL Server account used by your Epicor
installation must be provided with ALTER ANY

ICE 3.0 | 10.0.700 121


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

CONNECTION and VIEW SERVER STATE permissions in


order to cancel query execution.

6. To remove the query results and Query Execution Messages, click the Clear Grid button.

Test the Updatable Query

Before you use verify the updatable BAQ functionality, define what fields users can update and set up a processing
method of your choice. You do both tasks using the sheets under the Update tab.

When you create an updatable Cross-company query, please


note BAQ Designer allows testing update operation on records
belonging to current company only. Also, a Cross-company
updatable BAQ cannot be used to create the mobile application
(dashboard).

1. To set the maximum number of rows returned by the query, you can select a value in the Rows to Return
field.
From the drop-down list, you can either select one of the predefined values or you can enter a custom value:
• <empty>
• 10
• 50
• 100
Note the value entered in this field is not saved with the BAQ, it is used for testing purposes only.

122 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

If an empty value is selected then by default, the query returns maximum of 10000 records. This limitation
is only applied on retrieving BAQ results while testing their execution. If you need to turn this limit off, access
Execution Settings from the Actions menu and set the RemoveTestRowLimit parameter to True.

2. Click the Get List button to test whether the updatable BAQ can pull in data from the database.

3. You are warned this test may launch BPM directives that update the database. Click Yes.

4. If the BAQ runs too long, you can cancel its execution using the X button that displays to the right of the
Clear Grid button.

• This feature is only available for BAQs executed in a


MS SQL database.
• The SQL Server account used by your Epicor installation
must be provided with ALTER ANY CONNECTION and
VIEW SERVER STATE permissions in order to cancel
query execution.

ICE 3.0 | 10.0.700 123


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

5. The Query Results grid populates with data. You now can test the BAQ to find out if you can update
existing records.

6. In the Query Results grid, double-click on a row.

7. The Fields window displays. This window contains all of the fields you indicated were updatable on the
Update > General Properties sheet. Enter a new value in one of the fields.
In this example, you modify the address of a supplier record.

8. If an updatable field was selected to raise BPM events within the Updatable field editor, two additional
buttons display next to this field. The V button performs the FieldValidate BAQ method directives; the U
button performs the FieldUpdate BAQ method directives described for the field.

9. Click OK to exit the Fields window.

124 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

10. The record you updated is now highlighted within the Query Results sheet.

11. If you want to save this change to the database, click the Update button.

12. The record is now updated. To verify the update to the database was successful, you can click the Get List
button again to retrieve the updated DB results. You can also open a specific program that should reflect
your changes, for example, Supplier Maintenance and verify your changes there.

13. If you want to add new records to the updatable BAQ, click the Get New button.

This option is only available when you select the Allow


New Record check box on the Update > General Properties
sheet.

ICE 3.0 | 10.0.700 125


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

14. A blank row displays on the Query Results list. Double-click the empty row.

15. The Fields window displays. Initially, all the fields are blank Enter the values you need to create a new record.
In this example, you create a new supplier record.

16. In the Fields window, click OK.

126 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

17. On the last row of the Query Results grid, the new record displays.

18. If you want to save this change to the database, click the Update button. The new supplier record is now
created. To verify the update to the database was successful, click the Get List button again to retrieve the
updated DB results.

If uBAQ supports Multiple Row Update set on the Update


> General Properties, then several rows can be edited
before clicking Update button. Otherwise - only one row
can be edited.

19. If you created custom actions for the updatable query and then used the Updatable BAQ Method Directives
program to set up conditions linked to this action, you can test this directive. To do this, first select the
custom action you want from the drop-down list and click the Run Custom button.

ICE 3.0 | 10.0.700 127


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

If the updatable BAQ directive is set up correctly, the Business Process Management (BPM) condition and
its subsequent actions run as expected.

Where Used

Use the Where Used sheets to review all the items that use the current query. The information on these sheets
helps you decide if you should re-design the current query, delete the query, or create a new query.
The information on these sheets helps you decide if you should modify the current query or create a new query.
Be careful if you decide to modify the query, for any changes impact other applications that use this query
If you attempt to delete a query that is in use, a warning message displays verifying whether you want to continue
deleting the query. Typically you should not delete any query in use unless the BAQ is obsolete or no longer
needed. After you delete the query, you should then remove or update the dashboard, BAQ report, or other
items that previously used it.
If several user dashboards use the current query, you should not change it, but rather create a new shared
query that contains the changes you need. Other users can then decide if they want to use your new query
in their dashboards, reports, and other items.

To access the information:

1. Select the Dashboard List sheet to review which dashboards use the current query.
Dashboards are flexible, powerful tools that provide easy access to critical information in a real-time
environment. In addition to the standard dashboards provided with the application, you can also create
custom dashboards. Custom dashboards can replace the need for workbenches, trackers, Shop Vision
reports, ad hoc reports, and business intelligence reports. For more information on how to create a dashboard,
review Chapter 5: Dashboards.

128 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

2. Select the Quick Search List sheet to review which quick searches use the current query.
The Quick Search functionality is a dynamic tool you use to create configurable searches you can then use
within your own user account or share publicly for other user accounts - improving the productivity of
searches. For examples of how to use this functionality, review Chapter 4: Searches

3. Select the Dynamic Report List sheet to review which BAQ reports use the current query.
You use the BAQ Report Designer to turn a Business Activity Query (BAQ) into a report. Through the BAQ
Report Designer, you select a query as the base for a report, and to define the option fields, filters, and sort
by options that display on the report interface. Once you have the report layout complete, you an add it to
the menu for users to access. For more information on this functionality, review Chapter 3: BAQ Report
Designer.

4. Select the Business Activity Query List sheet to see any references of the selected query to another queries.
You can link a business activity query as a parameter to another query. These parameters can filter data on
the query; you define what values from the linked BAQ will be used as parameter values. You add parameters
to a query through a criterion you set up within the Business Activity Designer. For more information on
using parameters, review the Specified parameter topic earlier in this chapter.

For a listing of all field descriptions used on the Where


Used sheets, refer to the Business Activity Query – Where
Used topics within application help.

BAQ Search

Use the BAQ Search sheet to make data from your query available to users searching for related data. Many
standard search forms throughout the application contain a BAQ sheet. This sheet provides users access to BAQs
you have identified through the BAQ Search sheet.

You must indicate the query as Shared (on the General sheet)
before users can access this BAQ search in search programs.
You can not use system queries on the BAQ Search sheet. If
you want to use a system query, create its copy first.

ICE 3.0 | 10.0.700 129


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

1. Select the BAQ Search sheet.

2. The Available “Like” Columns list contains all the fields you selected for your query on the Display Columns
sheet.

3. In this example, the Part_PartNum column is used.

4. First you highlight this column in the list of Available “Like” Columns and then click the Right Arrow button.

5. The column is moved to the BAQ Search "Like" Columns list.


The list contains the items you move over from the Available “Like” Columns area. Users searching for
information similar to the data contained in the items in this area are able to access your BAQ.

6. Click Save.
Since the Part Number field was selected as the Like column for searching, any place you can search for a
part has this BAQ listed and available for searching.

7. To test the BAQ Search, you can launch Part Maintenance.

130 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

8. Click the Part button.

9. On the Part Search window, navigate to the BAQ sheet.

10. The Search Results pane in the search window displays the query information. You can use the BAQ to
search for a specific part.

For examples of how to use this functionality, refer to the BAQ Searches section in Chapter 4: Searches.

Actions

The Business Activity Query Actions menu contains a number of tools you can use. This section describes each
of these tools.

Copy Query

The Epicor ERP application contains system queries that control how users enter and update data throughout
the database. These queries are a great starting point for creating your own modified queries. Although you
cannot change a system query, you can copy a system query, rename it, and modify this copied query as you
need.
You use the Copy Query option to duplicate an existing query.

1. Click the Query ID button to search for the query you are going to copy.

2. In the Query Search window, click the Search button and select the query that you are going to copy.

3. For this example, you select zContactTracker01.

4. Click OK.

ICE 3.0 | 10.0.700 131


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

5. Notice that the System. No Save. In Use icons display. The icon indicates the selected query is a system
query that cannot be edited. It also indicates this query is used by a program, report, or owned by another
author.

6. In this example, the system zContactTracker query is used on a a quick search. You can find the specific
dashboard and quick search that contains this BAQ on the Where Used sheets.

7. You want to use this query as a base for a new query. From the Actions menu, select Copy Query.

8. In the Query ID field, enter the new name for the copied query. Be sure to enter an identifier that is different
from the ID listed in the Copy From section.

9. Optionally, you can enter a new Description of the query.

10. Click OK to save the query with the new name.

11. The message displays, indicating the query was copied successfully. Click OK to confirm the message.

132 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

12. The new query now displays for you to modify.

You can now add additional tables, new display fields, calculated columns, make the BAQ updatable, and so on
to the copied query.

Export Query Definition

You use the Export BAQ command to save the query definition. Once you have selected the query you want to
export, you can then export it to a folder you specify during BAQ export. You typically use this option to create
a backup of your BAQ or if you want to use or analyze the query on another Epicor ERP installation. If needed,
you can import back into the application.

This process only exports the query definition, not the data.
The Business Activity Query Export Process program, discussed
later in this chapter, can export the query data.

1. On the General sheet, select the query you want to export.

2. Once you have a query in focus, from the Actions menu, select Export BAQ.

3. In the Description field, you can change the current description of the query.

ICE 3.0 | 10.0.700 133


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

4. Click the Export to File button to find and select the folder that will contain the exported BAQ. You need
to select the directory path and enter the filename.

5. Click the Export button.

6. The Export process messages field details the results of the export.

7. If the export is successful, the “Query export finished with success” message displays.

8. Click Close.

Import Query Definition

Once you have exported a version of a query, you can use the Import BAQ option from within the Business Activity
Query Designer program to pull the query definition back into the application.
To use the Import BAQ command to import a query:

1. From the Actions menu, select Import BAQ.

2. Click the Import File button to find and select the BAQ you wish to pull into the application.

3. Enter the New Query ID. In this example, you import the MyContactQuery–Rev2 query.

134 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

4. Select the Show in Designer check box to immediately load this query into the Business Activity Query
Designer program.

5. Click Import to import the query.

6. The Import process messages field details the results of the export.

7. If the import is successful, the “Query Import finished with success” message displays.

8. Click Close.

Change BAQ Author

When a query is created, only the author of the query can modify it. To give another user rights to modify a
query they did not create, use the Change Author option to assign a new author to the query. The Change
Author command is only available when you are the author of the query.
To give another user access to your query:

1. From the Actions menu, select Change Author.

2. The Change Author window displays.

3. The name of the current BAQ owner displays in the Author field.

4. Click the drop-down list to search for and select the User ID to which you need to make the new author of
the query.

ICE 3.0 | 10.0.700 135


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

5. The new author’s User ID displays within the Change Author window. In this example, you assign AARON
to become the new BAQ author.

6. Click OK to confirm your selection.

7. The new Author displays on the General sheet.

8. Notice the Other owner. No Save red icon indicates you no longer can save changes to this query.

ASP Page Generation

Once you have created a Business Activity Query, you can use the Generate ASP program to turn a query into
an .asp page. You can then display this page on your web site, where you can update it with current information
from your database.
Use this program to both choose which query fields you want to display and define the search options you use
with this data. You may also change the name of field columns. To finish generating the page, give the ASP file
a name and save it within your web deployment directory.
To use this program:

1. From the Actions menu, select Generate ASP.

136 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

2. The Generate ASP program displays the current query.

3. If you decide you want to create an .asp page for a different query, click the Query ID button to find and
select a different query.

4. The query’s fields display in the ASP Fields grid.

5. The FieldName contains the path and name of the generated ASP file. If the current query already has a
file, its path and filename appear in this field by default.

6. To display a field on the .asp page, select the ShowField check box. By default, all fields are selected for
display.

7. You can edit the text to display the label that you want in the FieldLabel column. This name defaults from
either the database or the query.

8. If you select the IsNumeric check box, numeric search options display. If the field’s IsNumeric check box is
clear, however, string search options display.
When the IsNumeric check box is selected, it indicates the values in this column contain numeric data. This
causes the application to remove numeric grouping separators (like the comma), so that the numeric values
display correctly on the .asp page. It also changes the FieldSearch options to only display Numeric Search
Option values.

9. To make fields available for searching, select each field’s SearchField check box. When selected, this field
displays as a search option on the .asp page. By default, all fields are enabled for searching.

10. The FieldSearch defines how users can search on the current field. For example, you can select Equals for
the Customer_State FieldSearch. This means that users have to enter an exact match (for example, NY) to
provide you with all customers located in New York.

For a listing of all Field Search options, refer to the


Business Activity Query – Generate ASP topic within
application help.

11. To create a new .asp filename and path, click the ASP Filename button.

ICE 3.0 | 10.0.700 137


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

12. The Save As window displays.

13. Notice the default location on your application server where files will be generated.

14. Enter a File name for your .asp page.

15. Click Save.

16. You return to the Generate ASP window. Notice the path and filename now appear in the ASP Filename
field.

17. Click the Generate ASP button.

18. When the confirmation dialog displays, click OK.

19. Click Close.

Complete the ASP Page

Once you click the Generate ASP button, an .asp file and an .xsl file are created within the WebDeployment
directory. You also need to run the Business Activity Query Export Process to export the query data (the .xml file)

138 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

to this folder as well. Now the .asp page can directly access data from your database. These files perform the
following functions:
• .asp – The file generated by the program. This file is referenced by your company’s website. The Generate
ASP program creates this file; you only need to create it once.
• .xsl – The file that sorts and displays data results on the .asp page. The Generate ASP program creates this
file; you only need to create it once.
By default, these files are generated in C:\EpicorData\WebDeployment folder on your application server.

This folder should be accessible via IIS.

• .xml – The data source file used by the .asp page. This file is created through the Business Activity Query
Export Process program. If this process program is scheduled within the system agent, this query’s data is
updated periodically on the website.
By default, the Business Activity Query Export Process generates this file in C:\EpicorData\Processes\UserID
folder on your application server.

You must also copy two other files - filterdata.xsl and exports.css - to the same web-deployment directory. These
files are standard style sheets provided by Epicor:
• exports.css – This file is a Cascading Style Sheet document. Developers use the Cascading Style Sheet to
control the style and layout of multiple Web pages all at once. As a Web developer, you can define a style
for each HTML element and apply it to as many Web pages as you want. To make a global change, change
the style and all elements in the Web are updated automatically.
• filterdata.xsl – This file is an XSL Style Sheet. This file is used by the ASP page to create the filters as defined
in the generate ASP program. You can use XSL to display information in your XML document.

In Epicor ERP installation, these files are found in the


Server\UD directory.

ICE 3.0 | 10.0.700 139


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

If you expose the page via IIS, are be able to see the query output via internet browser.

Run BPM Designer

To complete the updatable BAQ, use the Run BPM Designer command to set up how the BAQ interacts with the
business object's methods. Business Objects contain the code that calls a database, sending current data to a
custom dashboard for display, or populating the database with new data.

This Actions menu is only allowed if the query in focus is


Updatable.

1. Click on the Actions menu and select Run BPM Designer.

140 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

2. The Updatable BAQ Method Directives window displays.

3. All of the available updatable BAQ method directives display.

4. You can create three types of method directives.


• Pre-processing directives evaluate data before it is saved to the database. Use pre-processing directives
for validation and other tasks you want run before the data updates your database.
• Base Processing directives substitute the normal operation of the business object with custom code
you create. Epicor recommends you never create base processing directives; only create base processing
directives with your consultant or Directly through Epicor. If your base processing directive does not
work, you will potentially harm the operating functions of your application
• Post-processing directives evaluate data that is saved to the database, but is now being returned to
the interface for display. Use post-processing directives when you want to generate an event based on
the data recently recorded to the database.

5. When you finish creating your updatable BAQ method directives, exit the program.
For more information, review the Updatable Business Activity Query section discussed earlier in this
chapter.

Define Custom Action

Use the Define Custom Action command to create action placeholders available for use with the business activity
query (BAQ).

This Actions menu is only allowed if the query in focus is


Updatable.

1. Click on the Actions menu and select Define Custom Action.

ICE 3.0 | 10.0.700 141


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

2. The Define Custom Action window displays.

3. To create a new action, click the New button.

4. Enter an ActionID. This identifier defines the custom action within the updatable BAQ.

5. Enter an ActionLabel. This value defines how the action displays on buttons within the dashboard.

6. If you wish to remove a custom action, click the Delete button.

7. Continue to add the custom actions you need. When you finish, click OK.

The custom actions you add through this functionality are placeholders you can then leverage within the Updatable
BAQ Method Directives program. You use this program to create conditions that monitor these custom actions.
When a user enters data which matches the condition, the condition runs th e specific actions linked to it, like
validating data or displaying an informational message.
For more information, review the Updatable Business Activity Query section discussed earlier in this chapter.

Define Parameter

Use this option to create an alternative query parameters. You can then evaluate table or subquery columns
against these parameters when building query criteria. These parameters can be nearly any value you need.
You can also use parameters to display customized method arguments for use in Business Process Management
(BPM) directives.
The query text contains references to arguments using this format: @arg_name

Example

select * from dbo.PartCOPart as PartCOPart


where PartCOPart.CoRevisionNum = @CustomParameter
This argument reference is replaced by the argument value when the query activates.
You access these parameters on Table Criteria or SubQuery Critera, when you

142 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

1. From the Actions menu, select Define Parameter.

2. The Query Parameters window displays.

Example You can, for example, create a drop-down list


that is filled with data supplied by a query.

For more information on how to build a parameter and


use the controls on this window, review the Specified
parameter topic discussed earlier in this chapter.

Execution Settings

Use Execution Settings command to modify execution parameters of the selected BAQ.
You can for example, set up paging parameters to indicate how the BAQ should get a sub selection of data from
a record set, specify the longest time in which the query can run or supply SQL statements, clauses and keywords
to modify the resulting SQL syntax.
The below table displays possible execution values you can define.

Execution Setting Description


Timeout
The value in this field specifies the longest time (in seconds) in which a query can run.
Specifying 0 for this option turns off the query governor, and all queries are allowed to
run indefinitely.

ICE 3.0 | 10.0.700 143


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Execution Setting Description


PageSize
The value in this field specifies how many rows per page are retrieved in the result set.
The available values include:
• 0 - Paging is not used.
• Any positive number - Specifies number of rows per page.

PageNum
The values in this field specifies the page number user wants to get. The default value is
1.
Be aware that if you for example, set this value to 10, but the BAQ only returns 3 pages
of data, an empty result set displays.

PagingMethod
The value in this field specifies the method used to retrieve data from the datasource.
The available values include:
• Auto - This is the default paging method. When selected, the DynamicQuery tries to
automatically select the most appropriate paging method, supported by BAQ definition
and database engine.
• Simple - When a query executes, its results return through DbDataReader, but only
required page is loaded to the result table. This paging should work for any database,
so use it explicitly if Auto method does not work for some reason.

NeedTotal
This field specifies if total number of rows in the query is received (without paging). If this
flag is set to True, the ExecutionInfo table in the result dataset, returning from query
contains total number of rows.
The value in this field should be set to False whenever possible to reduce the server
load.

Where
Setting name of additional conditions in SQL notation which are applied against results
table. Only display fields and BAQ/SQL constants be referenced. You can use where
statements of any complexity including and/or concatenations. If ExecutionFilter table
contains any conditions then they will be applied before this ‘where’ condition.

Select
Setting name for SELECT. This is comma-delimited list of fields in SQL notation. Use this
setting to narrow set of fields returned by query. Note you can only reference BAQ's
display fields.

Having
Setting name for statement that appears in the HAVING clause in addition to query
settings.

OrderBy
Setting name for comma-delimited list of fields by which you want sort the query result.
Optional direction can be specified in SQL notation (ASC/DESC).

GroupBy
Setting name for comma-delimited list of fields by which you want to sort query results.

SQLServerDateFormat
This setting adds SET DATEFORMAT call at the beginning of the query. This setting should
only be used MS SQL Server.
The available options include:
• mdy (month-day-year) - default option

144 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Execution Setting Description


• dmy (day-month-year)
• ymd (year-month-day)

Transaction Isolation
This setting sets transaction isolation level which controls the locking and row versioning
behavior of Transact-SQL statements issued by a connection to SQL Server.
The available options include:
• ReadUncommited - Specifies that statements can read rows that have been modified
by other transactions but not yet committed.
• ReadCommited - Specifies that statements cannot read data that has been modified
but not committed by other transactions.
• RepeatableRead - Specifies that statements cannot read data that has been modified
but not yet committed by other transactions and that no other transactions can modify
data that has been read by the current transaction until the current transaction
completes.
• Serializable - Specifies that statements cannot read data that has been modified but
not yet committed by other transactions. No other transactions can modify data that
has been read by the current transaction until the current transaction completes. Other
transactions cannot insert new rows with key values that would fall in the range of
keys read by any statements in the current transaction until the current transaction
completes.
• Snapshot - Specifies that data read by any statement in a transaction will be the
transactionally consistent version of the data that existed at the start of the transaction.
• NotSet - no Transaction Isolation specified.

queryMaxResultSet
Specifies maximum number of rows that will be returned by the dynamic query.

queryTimeOut
By entering a value in this field, you define the database server command timeout before
terminating the attempt to execute a command and generating an error.

Persist in Query
All execution settings can be flagged as persistent or not.
If the check box is clear, any specified settings will apply to the current BAQ session only,
until the BAQ form is closed.
If the execution setting is flagged as persistent, it will be used each time the BAQ runs.
If a BAQ supplies some execution setting on execution, while the same persistent execution
setting exist, then the first one has higher priority.
There are two parameters that are always persistent - QueryMAxResultSet and
queryTimeout; these are stored in the database with the query. All other execution settings
can be persistent or not.

• Within the Epicor Administration


Console > Application Server
Settings, you can define limits that
apply to all BAQs executed by the
application.

ICE 3.0 | 10.0.700 145


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Execution Setting Description

• For external BAQs, limits can be


specified in the related external
datasource.
• User can only specify limits for one
particular query. These limits can
exceed application limits only if the
user, who edits and saves a BAQ, is
a Security Manager. Other users can
set only values that do not exceed
maximum values specified in
Application Server Settings or an
external datasource.

RemoveTestRowLimit
This setting controls if the BAQ Designer is allowed to return more than 10000 rows while
testing BAQs.
For performance reasons, this parameter should be set to it's default False value
whenever possible.

This parameter has no affect on another query limits you may specify; it only controls the
data retrieval limit while testing BAQs.

Get Query Execution Plan

Use the Get Query Execution Plan to retrieve and save the .sqlplan execution file. You later open this file in
the SQL Server Management Studio to examine the query execution.

Example You can use this feature to determine what is


causing the problem in the slow running query.

This feature is available for both internal and external MS SQL


queries. This command requires the VIEW SERVER STATE
permission for the IceContext connection.

1. From the Actions menu, select Get Query Execution Plan.

2. In the Save SQL Server Query Execution Plan window, you can specify the name and the location where
you want to save the .sqlplan file.

146 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

By default, the file is named using the following format: <QueryID>.sqlplan

3. Click Save.

4. To the informational message, click OK.

ICE 3.0 | 10.0.700 147


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

5. Once the file is saved, open it using the SQL Server Management Studio for further analysis.

For more information, refer to the available msdn


documentation.

Export Query Data

Run the Business Activity Query Export Process to export the query data from your database and store it in a
personal archive directory. This data can then be used on an ASP page, or imported to Microsoft® Excel® for
analysis and publishing.
Use the Business Activity Query Export Process program to export query data through either the .xml or .csv file
formats. You can export this data each time you launch this program. You can also set up the export so that it
automatically runs each time you launch your Startup Tasks.
Menu Path: System Management > Business Activity Queries > BAQ Export Process

This program is not available in the Epicor Web Access.

To use this program:

148 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

1. Click the Query ID button to search for and select the query to export.

2. From the Output Format drop-down list, select the export format you want to use. You can choose either
XML or CSV file formats.

3. Enter the Output Filename for the exported query. By default, this file is automatically saved on the server
within the EpicorData > Reports > <UserName> directory - where <UserName> is the name of the current
user logged into the application. The location of this data directory is specified in System Agent Maintenance.
You can override the default output location by exporting the file to a custom location you define. It is
allowed to use:
• Relative paths (root folder level only), for example, temp/filename.csv
• Network paths, for example \\server\share\folder\filename.xml
The correct file extension is attached during each export. If you select that the output will be an .xml file,
the .xml extension is automatically added to the file name.

4. For CSV output format, you can enter the Text Delimiter. For example, if you place a semi-colon (;) in this
field, this character separates the data in the exported file.

5. For CSV output format, if you want to display field labels in the export file, select the Output Labels check
box.

6. From the Schedule drop-down menu, select a schedule you want to use.

For more information on creating schedules, review the


System Agent Maintenance topics within the application
help.

Example
You can select the Startup Task Schedule from the
Schedule list and select the Recurring check box. This way
you export this query each time you run your startup tasks.

7. Click the Submit button to submit the schedule for processing.

ICE 3.0 | 10.0.700 149


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

BAQ Application Server Settings

Within the Epicor Administration Console, several application server settings are available for use with BAQ
functionality. You can restrict how business activity queries generate results. This can help you avoid performance
issues caused when BAQs process large amounts of data. You can also indicate if BAQ database calls should be
recorded in the server log.

1. You launch the Epicor Administration Console from your server machine. Depending on your operating
system, you launch this tool in different ways:
• If you are on Windows SQL Server 2008 R2, click Start > All Programs > Epicor Software > Epicor
Administrative Tools > Epicor Administration Console.
• If you are on Windows SQL Server 2012, press the <Windows> + F button to display the Charms bar;
from the Apps screen, select Epicor Administration Console.

2. From the tree view, expand the Server Management node and Epicor Server node.

3. Select the application server you need to monitor.

4. Now from either the Action menu or the Actions pane, select Application Server Settings.

5. For the BAQ Query Max Result Rows field, enter the highest number of rows that can be returned by a
business activity query.
By entering a value in this field, you restrict how many rows can be returned by each BAQ. This prevents
the query from pulling in an unlimited number of records, restricting situations where a runaway BAQ
consumes too many system resources to generate query results.
The default value is 0, indicating there is no limit. In this example, each BAQ can pull maximum of 2000
rows.

6. Now in the BAQ Query Timeout field, enter how many seconds can elapse before the application server
stops the query.
By entering a value in this field, you define how long each BAQ is allowed to run. When a query attempts
to generate results and reaches this time limit, the application server stops the query and sends the user a
time out message.

150 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

The default value is 0, indicating there is no limit. By entering 900, you allow queries to run 15 minutes
before they time out.

When you change the above application server settings,


you will cause the application server to restart. Be sure to
change these settings during a period of the day when
few users are logged into the Epicor application.

7. Within the Standard Logging information, select the BAQ Logging check box to record Business Activity
Query (BAQ) database calls.
Each time user activity activates a BAQ, the application server log records which query was called and how
long it took this BAQ to gather the data results.
By selecting this check box, you enable the following trace flag in the trace.config configuration file:
<add uri="trace://ice/fw/DynamicQuery" />
As a result, the server log records the following information:

Node Description
QueryID Displays a BAQ ID.
CompanyID A company, under which the BAQ is executed.
SQLExecTime Time spent on executing query's SQL statement on an SQL server.
DataFetchTime Time in milliseconds spent on reading result from an SQL Server and
preparing Result dataset.
PagingMethod If paging is used, displays the name of a paging method. (Simple, Partition,
Offset, Auto)
PageNumber If paging is used, displays the number of requested page.
PageSize If paging is used, displays the size of a page.
TotalTime Total time in milliseconds spent on query processing, including
preparation, execution, fetching data and finalization.
TotalRows Displays the number of rows in a result set.
RowLimitReached Presented if BAQ Query Max Result Rows setting is enabled in Application
Server Settings. If a query result set hits this limit; this node displays the
current limit setting value.

Example

<Op Utc="2013-08-15T08:48:28.9994569Z" act="Ice:BO:DynamicQuery/DynamicQuer


ySvcContract/Execute" dur="20.9593" cli="fe80::35a2:7247:6cab:d0e9%11:53737
" usr="manager" tid="17" pid="11176">
<BAQ QueryID="udfield" />
<BAQ Company="EPIC03" />
<BAQ SQLExecTime="12.2756" />
<BAQ DataFetchTime="3.0597" />
<BAQ PagingMethod="Simple" />
<BAQ PageNumber="1" />
<BAQ PageSize="2" />
<BAQ TotalTime="19.4385" />

ICE 3.0 | 10.0.700 151


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

<BAQ TotalRows="2" />


</Op>

You can evaluate the server log using the Performance


and Diagnostic Tool. For more information on how to test
the performance of your system, review the Performance
Diagnostic Guide.

8. Click Apply to confirm you changes.

BAQ Info Zones

A BAQ (Business Activity Query) info zone is an embedded query you can link to a specific field on a program
interface. When you activate a BAQ info 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.
After you create or modify the BAQ to use for the BAQ info zone, you link the BAQ to a specific field by either
using Extended Property Maintenance or embedding the BAQ info zone in a customization. When you launch
the program that contains the customized field, you will see a BAQ info 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. You define these personalization features in the Options window; you can access this window from the
Tools menu.

152 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Activate a BAQ Zone

To activate a BAQ zone:

1. If a field is linked to a BAQ zone, a zone indicator displays next to the field.

2. Hold your mouse over the zone indicator; a tooltip window displays.

3. This BAQ zone window populates with data. The BAQ zone uses both the query and the field value, if any,
to generate its data results. In this example, the Part Number field has a zone indicator that displays a
graphic file for the selected part (1032KNUT).

For more information about creating BAQ zones, review


the Epicor ICE User Experience and Customization Guide.
The Customization Utilities chapter contains a BAQ Zones
section that describes how to create and customize
program interfaces to display these zones.

BAQ Best Practices

This section contains a series of best practice methods to help you develop BAQs. If you follow these suggestions,
you will have more success creating both display-only and updatable BAQs
Fewer Tables, Better Performance

ICE 3.0 | 10.0.700 153


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Carefully consider how many tables you need to join in your business activity query. The functionality has few
restrictions, so, if you wish, you can create incredibly complex queries. The more tables you join on the query,
however, the slower performance the query has during runtime.
If you wish to see a lot of data at once, create a series of smaller BAQs and then display them together on the
same dashboard. If you need to create a very complex view of your data, however, consider building an executive
dashboard instead. Both the dashboard and executive dashboard features use BAQs as building blocks for
gathering and displaying data, but contain additional, more efficient functionality for publishing and subscribing
values between tables. Because of this, it is often better to have a series of smaller BAQs you can manipulate
through a dashboard, rather than one huge BAQ that requires a lot of processing time to pull in its data.
To learn more, review Chapter 5: Dashboards and Chapter 7: Executive Dashboards.
Start Small and Test Often
Begin your complex query project by starting small with just one or two tables. You can then analyze the results
to find out if you are pulling in the desired data at each step through the database. You can then add more
complexity by adding another table and testing the results. By adding and testing each table and subquery, you
verify the results as you build the complex BAQ. Always be sure to build a complex BAQ in sections and then
frequently check the results. If you do not, you may pull in undesirable data, and it will be difficult for you to
determine which table is causing the problem.
Too Much Data
If you are getting more rows in your results than you expect, you may need to filter the second, using a field on
the first table. For example, you want to create a BAQ that shows when a specific operation is scheduled to run.
Because the database contains operations scheduled as What-If operations and others scheduled as actual
operations, you may get duplicate results. If you filter the JobOperDtl (job operation detail) table by using the
ResourceID field on the ResourceTimeUsed table, only resources assigned to operations in the actual schedule
appear in your BAQ results.
Use Calculated Fields
If you have similar data placed in different columns because of different record types, use a calculated field to
total these amounts for display within a single column. For example, if you are creating a query to review labor
in your manufacturing center, each employee will log time as indirect labor and direct labor. To find out the total
amount of labor, use a calculated field that contains a formula for totalling the indirect and direct labor values.
Outer Joins – When to Use
The Outer Join table relationship is useful in situations where you want to see everything from the first table and
find out what records are not linked to these records in the second table. For example, you want to see which
customers have recently ordered products from your company. To do this, you build a query that outer joins the
Customer table with the OrderHed (sales order header) table. All the customer records appear alongside all of
the sales order records. You can then see in the BAQ the customers that currently do not have sales orders placed
with your company.
Sorting Performance
Sorting data by a selected column is a powerful feature, but be aware that some significant processing time may
be required to display the reordered results. This situation is especially true when you sort a large amount of
data. The query tool has to first return all of the records into memory before it can re-order their sequence through
the selected column. All of this processing occurs on the server, so the data calls need to move across the network
before they arrive at your client workstation. So if you sort on a large amount of data, be patient – the reordered
results are on their way.

154 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Case Studies

This section of the chapter explores some step-by-step case studies. Each case study explores a different aspect
of the business activity query (BAQ) functionality.

Labor Summary BAQ

This BAQ generates a summary of each shop employee’s total labor and burden hours. During this case study,
you join the Employee Basic (EmpBasic) table from Shop Employee Maintenance with the Labor Detail (LaborDtl)
table from Labor Entry. You then filter the results against a specific date and create calculated fields to generate
the total labor and burden hours.

Define the Query

To define the query:

1. Click the New button.

2. In the Query ID field, enter EMPHours.

3. In the Description field, enter Labor Summary.

4. Select the Shared check box to indicate other users within the current company can use this query.

5. Click the Query Builder > Phrase Build tab.

ICE 3.0 | 10.0.700 155


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

6. In the Filtering field, enter emp.

7. The Erp.EmpBasic table displays. Click and drag this table onto the grid.

8. Click the Connected Only Tables button. This limits the tables so that only tables linked to the EmpBasic
table display on this list.

9. The Erp.LaborDtl table displays; click and drag this table onto the grid. These two tables automatically link.

10. You want to filter the labor data based on a cutoff payroll date. Highlight the Erp.LaborDtl table.

11. The Table Criteria tab is automatically selected.

12. Click the New button. A row displays in the Criteria grid.

156 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

13. For the Field Name, select PayrollDate.

14. For the Compare Operator, select Greater Than or Equal To (>=).

15. From the Filter Value drop-down list, the select specified constant option.

16. Click the specified link to launch the Specify a Value window.

17. The Specify a Value window displays. In the Value field, enter the date you need.

18. Click OK.

19. Click Save on the Standard toolbar.

Select and Create Columns for Display

Select the columns on both tables that you want to view in your results.

1. Click the Display Fields > Column Select tab. Use this sheet to define what columns display on the query
results.

2. Click the Sort Columns Alphabetically button.

3. Expand the EmpBasic node and move Name into the Display Column(s) area.

4. Select the Group By check box to group BAQ results by each employee.

5. You next add two calculated fields to the query results. Click the Calculator button.

ICE 3.0 | 10.0.700 157


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

6. The Calculated field editor window displays.

7. Click New.

8. In the Field Name field, enter LaborHrs.

9. From the Data Type drop-down list, select the Decimal option. This indicates the field accepts decimal
places within its values.

10. You are creating a calculated field that totals each employee’s labor hours. In the Functions area, expand
the Aggregate node.

11. Select the Sum(x) option. Notice the function syntax displays in the Editor field. This function adds together
all values the query finds in a specific column. For this query, it will total the labor hour values linked to each
shop employee record.

12. In the Fields area, expand the LaborDtls field and double-click LaborHrs.

13. Click Save.

158 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

14. Repeat these steps to create another calculated field that totals burden values for each shop employee. Use
the Sum(x) function and select the BurdenHrs field.

15. Click Save.

16. Close the Calculated field editor.

17. Notice your calculated fields are included within the Display Column(s) section. If you wish, click inside the
Label column to modify the text that displays for each column.

ICE 3.0 | 10.0.700 159


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

18. You are ready to test the query. Click the Analyze tab.

19. Click the Test button.

Because you created calculated fields, the total labor and burden hours for each employee displays in the Query
Results.

Not Clocked Out BAQ

This BAQ displays all the employees who are currently clocked in, but not clocked out, on operations. During this
case study, you will join the Labor Head (LaborHed) table to the shop employee table (EmpBasic), and then filter
the results by the employees that still have an active labor transaction running within the database. You will also
sort the results by employee.

Define the Query

To define the query:

1. Click the New button on the Standard toolbar.

2. In the Query ID field, enter NoClockOut.

160 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

3. In the Description field, enter Employees Not Clocked Out.

4. Select the Shared check box to indicate other users within the current company can use this query.

5. Click the Query Builder > Phrase Build tab.

6. Search for and place the Erp.LaborHed and EmpBasic tables on the canvas.

7. These table have a relation defined in schema and they automatically link.

8. You want to filter the employee data based on the employees who are still clocked into the application.
Highlight the LaborHed table.

9. The Table Criteria tab automatically displays.

10. Click the New button. A row appears in the Criteria grid.

11. From the Field Name drop-down list, select the ActiveTrans option.

12. From the Compare Operator drop-down list, select the Equal To (=) option.

13. From the Filter Value drop-down list, select the specified constant option.

14. Click the specified link to launch the Specify a Value window.

15. The Specify a Value window displays. In the Value field, enter Yes. This indicates that only employees
who are currently clocked in display on this query.

16. Click OK.

ICE 3.0 | 10.0.700 161


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Select Columns for Display

Select the columns on both tables that you want to view in your results.

1. Click the Display Fields > Column Select tab.

2. Click the Sort Columns Alphabetically button.

3. Expand the EmpBasic table node.

4. Move the following columns from the Available Columns area to the Display Column(s) area:
• EmpBasic_Name
• EmpBasic_EmpID

5. Expand the LaborHed table node.

6. Move the following columns from the Available Columns area to the Display Column(s) area:
• LaborHed_ActualClockinDate
• LaborHed_ActualClockinTime
• LaborHed_ActLunchInTime
• LaborHed_ActLunchOutTime
• LaborHed_ActLunchInTime
• LaborHed_ActiveTrans

162 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

7. Click the Display Fields > Sort Order tab.

8. You want the results to sort by each employee’s name. Expand the EmpBasic node.

9. Move the EmpBasic.Name to the Sort By column.

10. Click Save.

11. You are ready to test the query. Click the Analyze tab.

12. Click the Test button.

All the employees who are currently clocked into the database display in the Query Results.

ICE 3.0 | 10.0.700 163


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Supplier Record Updatable BAQ

This case study demonstrates how to create a simple updatable query. It shows how to create or update supplier
records.

Define the Query


To define the query:

1. Click New to create a new query.

2. In the Query ID field, enter Supplier.

3. In the Description field, enter Supplier Update.

4. Select the Shared and Updatable check boxes.

5. Navigate to the Query Builder > Phrase Build sheet.

6. In the Filtering field, enter ven.

7. Select Erp.Vendor table and move it on the designer canvas.

164 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

8. Navigate to the Display Fields > Column Select sheet.

9. Expand the Vendor table to display the fields.

10. Move the following fields into the Display Column(s) section and change the field labels as follows:
• Vendor_Company
• Vendor_VendorID
• Vendor_Name
• Vendor_VendorNum
• Vendor_Address1
• Vendor_City
• Vendor_State
• Vendor_ZIP
• Vendor_Country

11. Click Save.

ICE 3.0 | 10.0.700 165


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Define Basic Processing Details

1. Navigate to the Update > General Properties sheet.

2. Verify the Allow New Record check box is selected.

3. Select the Allow Multiple Row Update check box.

4. Click the Check All Fields as Updatable icon (the white checked box icon).

5. Navigate to the Update > Update Processing sheet.

166 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

6. Click the BPM Update option.

7. Click the Business Object button.


The Select Business Object window displays.

8. In the Suggested business objects section, select the Erp.Vendor object and click OK.

9. In the Tables to update pane, ensure the Vendor table is becomes selected.

10. Click Save.

Update and Create Supplier Records

1. Click the Get List button to test whether the updatable BAQ can pull in data from the database.

2. You are warned this test may launch BPM directives that update the database. Click Yes.

ICE 3.0 | 10.0.700 167


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

3. The Query Results grid populates with data. You now can test the BAQ to find out if you can update
existing records.

4. In the Query Results grid, double-click on a row.

5. The Fields window displays. This window contains all of the fields you indicated were updatable on the
Update > General Properties sheet. In the Fields window, enter a new value in one of the fields.
In this example, you modify the address of a supplier record.

6. Click OK to exit the Fields window.

168 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

7. The record you updated is now highlighted within the Query Results sheet.

8. If you want to save this change to the database, click the Update button.

9. The record is now updated. To verify the update to the database was successful, click the Get List button
again to retrieve the updated DB results. You can also open a specific program that should reflect your
changes, for example, Supplier Maintenance and verify your changes there.

10. If you want to add new records to the updatable BAQ, click the Get New button.

This option is only available when you select the Allow


New Record check box on the Update > General Properties
sheet.

ICE 3.0 | 10.0.700 169


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

11. A blank row displays on the Query Results list. Double-click the empty row.

12. The Fields window displays. Initially, all the fields are blank Enter the values you need to create a new record.
In this example, you create a new supplier record.

13. In the Fields window, click OK.

170 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

14. On the last row of the Query Results grid, the new record displays.

15. If you want to save this change to the database, click the Update button.

16. The new supplier record is now created. To verify the update to the database was successful, click the Get
List button again to retrieve the updated DB results.

If uBAQ supports Multiple Row Update set on the Update


> General Properties, then several rows can be edited
before clicking Update button. Otherwise - only one row
can be edited.

ICE 3.0 | 10.0.700 171


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Using Inner SubQueries

In this case study, create a BAQ that counts open, closed and total amount of orders per customer. Create two
SubQueries that will count open and closed orders and group them together by customer. The information
obtained by the Inner SubQueries will be presented by the TopLevel SubQuery.

Create Open Orders SubQuery


The first SubQuery you create counts open orders by customer.

1. Click New to create a new query.

2. For the Query ID, enter OrderCount.

3. In the Description field, enter Order Count per Customer.

4. Select the Shared check box.

5. Navigate to the Query Builder > Phrase Build sheet.

6. In the filtering field, enter ord.

172 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

7. From the list, select the Erp.OrderHed table and drag it on the canvas in the center pane.

8. Verify the Table Criteria sheet at the bottom is in focus.

9. From the toolbar, click the Add Row to add new line.

10. In the Field column, select OpenOrder.

11. In the Operation column, verify the equal sign (=) defaults.

12. From the Filter Value field, select specified constant.

13. Click the word specified.


The Specify Value window displays.

14. In the Value field, enter True and click OK.


This limits the query selection to open orders.

Select Columns

1. Navigate to the Display Fields > Column Select sheet.

2. Expand the OrderHed table.

3. Double-click CustNum to add the OrderHed_CustNum field to the list of Display Column(s).

4. Select the Group By check box to indicate you want the group open orders by customer.

5. Click the Calculator icon.

ICE 3.0 | 10.0.700 173


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

6. The Calculated Field Editor window displays. For the Field Name, enter CountOpen and press Tab.

7. In the Data Type field, select int (interger).

8. In the Functions area, expand Aggregate.

9. From the Aggregate listing, double-click Count(x).


Selecting the function displays the function syntax in the Editor field. In this query, the field counts the
amount of open orders.

10. To indicate you want to count all open order records, inside the brackets, enter * (asterisk).

11. Verify the Editor pane displays the following:


count( * )

12. Click Save and exit the Calculated Field Editor.

13. Navigate to the Query Builder > SubQuery Options sheet.

14. For SubQuery 1 you just created, in the Type field, select InnerSubQuery.
This indicates this SubQuery will become a nested query inside the TopLevel BAQ you will create later.

15. Click Save.

174 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Create Closed Orders SubQuery


The Second SubQuery you create counts closed orders by customer.

1. In the Active SubQuery toolbar, click NewSubQuery.

2. On the Query Builder > SubQuery Options sheet, accept the following defaults:

Name Type
SubQuery2 InnerSubQuery

3. Navigate to the Query Builder > Phrase Build sheet.

4. Above the list of tables, in the filtering field, enter ord.

5. From the list, select the Erp.OrderHed table and drag it on the canvas in the center pane.

6. In the Specify Table Alias window, click OK.

The BAQ Designer must create the table alias for the
OrderHed table since it is already used in the previous
SubQuery.

7. Verify the Table Criteria sheet at the bottom is in focus.

8. From the toolbar, click the Add Row to add new line.

9. In the Field column, select OpenOrder.

10. In the Operation column, verify the equal sign (=) defaults.

11. From the Filter Value field, select specified constant.

ICE 3.0 | 10.0.700 175


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

12. Click the word specified.


The Specify Value window displays.

13. In the Value field, enter False and click OK.


This limits the query selection to closed orders.

Select Columns

1. Navigate to the Display Fields > Column Select sheet.

2. Expand the OrderHed1 table.

3. Add CustNum to add the to the list of Display Column(s).

4. Select the Group By check box to indicate you want the group closed orders by customer.

5. Click the Calculator icon.

6. For the Field Name, enter CountClosed and press Tab.

7. In the Data Type field, select int (interger).

8. In the Editor pane, manually add the calculation that counts all closed orders.
count( * )

9. Click Save and exit the Calculated Field Editor.

Create TopLevel SubQuery


Create the main SubQuery that displays the BAQ results using both inner SubQueries.

1. In the Active SubQuery toolbar, click NewSubQuery.

2. Navigate to the Query Builder > SubQuery Options sheet.

3. For SubQuery3, in the Type field, select TopLevel.

176 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

4. Navigate to the Query Builder > Phrase Build sheet.

5. Search for and add the Erp.Customer table on the canvas in the center pane.

6. Above the table listing, click the SubQueries button to displays the list of available SubQueries.

7. Drag both SubQuery1 and SubQuery2 to the center pane.

8. From the toolbar above the canvas, select the Add Connection icon (chain links).
The cursor turns to a cross-hair.

9. Click on the Erp.Customer table and drag a line to the SubQuery1 table, then release.

10. Verify the Table Relations sheet at the bottom is selected.


If not, select the sheet.

11. Click the Add Row button.

12. From the Customer field or any expression field, select CustNum.

13. From the SubQuery1 field or any expression field, select OrderHed_CustNum.

14. Repeat steps 8 - 13 to create connection between Erp.Customer and SubQuery2 tables.

15. Click Save.

ICE 3.0 | 10.0.700 177


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Select BAQ Display Columns

1. Navigate to the Display Fields > Column Select sheet.

2. Expand the Customer table and move the Name field to the list of Display Column(s).

3. Expand the SubQuery1 and move the Calculated_CountOpen field to the list of Display Column(s).

4. Expand the SubQuery2 and move the Calculated_CountClosed field to the list of Display Column(s).

5. Click the Calculator icon.

6. For the Field Name, enter Total and press Tab.

7. In the Data Type field, select int (interger).

178 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

8. In the Fields pane, expand Available Tables > SubQuery1.

9. Double-click Calculated_CountOpen to add the field to the Editor pane.

10. In the Editor pane, click + (plus).

11. In the Fields pane, expand Available Tables > SubQuery2.

12. Double-click Calculated_CountClosed to add the field to the Editor pane.


Verify the Editor pane displays the following calculation:
SubQuery1.Calculated_CountOpen + SubQuery2.Calculated_CountClosed

13. Click Save and exit the Calculated Field Editor.

Test the BAQ

1. Navigate to the Analyze sheet.

2. Click Test.

The BAQ displays open, closed and total amount of orders per customer.

Combine Results Sets Using Union

This case study demonstrates how to build a BAQ that displays total value breakdown of sales for a given day.
This BAQ will provide information on total values of:
• Quotes entered in the sales pipeline.
• Orders booked in the system.
• Invoices sent to customers.

ICE 3.0 | 10.0.700 179


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

You accomplish this task by creating a BAQ comprised of three SubQueries and combine their results into one
dataset.

Create TopLevel BAQ

1. In the Business Activity Query Designer, click New to create a new query.

2. In the Query ID field, enter SalesValue.

3. In the Description field, enter Total Value of Quotes, Orders, Invoices by Date.

4. Select the Shared check box.

5. Navigate to the Query Builder > Phrase Build sheet.

6. Place the following tables on the designer canvas:


• Erp.QuoteHed
• Erp.Customer

180 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

7. Navigate to the Display Fields > Column Select sheet.

8. Move the following columns to the Display Column(s) list.

Column Name
QuoteHed_Company
Customer_Name
QuoteHed_QuoteNum
QuoteHed_EntryDate

9. For each of the above columns, select the Group By check box.

10. Click the Calculator icon.

11. The Calculated Field Editor window displays. Click New and enter these field values:

Data Field Data Value


FieldName SubQueryName
Data Type nvarchar
Label Document Type

ICE 3.0 | 10.0.700 181


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Data Field Data Value


Editor pane Enter 'Quotes'

12. Click Save.

13. Click New again to create another calculated field.

14. Enter these field values:

Field Value
FieldName QuoteSum
Data Type decimal

182 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Field Value
Label Total Value

15. In the Functions area, expand Aggregate and double-click Sum(x).

16. In the Fields section, expand the Available tables > QuoteHed node and double-click QuoteAmt.
Verify the Editor displays the following calculation:
sum( QuoteHed.QuoteAmt )

17. Click Save and exit the Calculated Field Editor.

18. Move the Calculated_SubQueryName column up and make it the first column in the list.

19. Navigate to the Analyze sheet and click Test.


Verify the query returns list of quotes.

Create Order View SubQuery

1. Navigate to the Query Builder > SubQuery Options sheet.

ICE 3.0 | 10.0.700 183


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

You will first change the name of the TopLevel SubQuery in focus.

2. In the Name field, enter QuoteHed.

3. Click Save.

4. In the Active SubQuery toolbar, click NewSubQuery.

5. In the Name field, enter OrderHed.

6. In the Type field, select Union.

7. Navigate to the Query Builder > Phrase Build sheet. Place the following tables on the designer canvas:
• Erp.OrderHed
• Erp.Customer

Since the Customer table is already used in the BAQ definition, accept the proposed table alias.

Example

184 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

By default, the table name defaults to Customer1.

8. Navigate to the Display Fields > Column Select sheet. Move the following columns to the Display
Column(s) list.

Column Name
OrderHed_Company
Customer1_Name
OrderHed_OrderNum
OrderHed_OrderDate

9. For each of the above columns, select the Group By check box.

10. Click the Calculator icon.

11. The Calculated Field Editor window displays. Click New and enter these field values:

Data Field Data Value


FieldName SubQueryName1
Data Type nvarchar
Label Document Type

ICE 3.0 | 10.0.700 185


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Data Field Data Value


Editor pane Enter 'Orders'

12. Click Save.

13. Click New again to create another calculated field.

14. Enter these field values:

Field Value
FieldName OrderSum
Data Type decimal
Label Total Value

186 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

15. In the Functions area, expand Aggregate and double-click Sum(x).

16. In the Fields section, expand the Available tables > OrderHed node and double-click OrderAmt.
Verify the Editor displays the following calculation:
sum( OrderHed.OrderAmt )

17. Click Save and exit the Calculated Field Editor.

18. Move the Calculated_SubQueryName1 column up and make it the first column in the list.

Recall the number and the order of the columns is the


same as specified in the TopLevel SubQuery.

19. Click Save.

Create Invoice View SubQuery

1. Navigate to the Query Builder > SubQuery Options sheet.

2. In the Active SubQuery toolbar, click NewSubQuery.

ICE 3.0 | 10.0.700 187


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

3. In the Name field, enter InvcHed.

4. In the Type field, select Union.

5. Navigate to the Query Builder > Phrase Build sheet. Place the following tables on the designer canvas:
• Erp.InvcHead
• Erp.Customer
Accept the proposed Customer table alias.

6. Navigate to the Display Fields > Column Select sheet. Move the following columns to the Display
Column(s) list.

Column Name
InvcHead_Company
Customer2_Name
InvcHead_InvoiceNum
InvcHead_InvoiceDate

7. For each of the above columns, select the Group By check box.

8. Click the Calculator icon.

9. The Calculated Field Editor window displays. Click New and enter these field values:

Data Field Data Value


FieldName SubQueryName2
Data Type nvarchar
Label Document Type
Editor pane Enter 'Invoices'

10. Click Save.

188 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

11. Click New again to create another calculated field.

12. Enter these field values:

Field Value
FieldName InvoiceSum
Data Type decimal
Label Total Value

13. In the Functions area, expand Aggregate and double-click Sum(x).

14. In the Fields section, expand the Available tables > InvcHead node and double-click InvoiceAmt.
Verify the Editor displays the following calculation:
sum( InvcHead.InvoiceAmt )

15. Click Save and exit the Calculated Field Editor.

ICE 3.0 | 10.0.700 189


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

16. Move the Calculated_SubQueryName2 column up and make it the first column in the list.

17. Click Save.

Create Query Parameter


Create a Query Parameter to filter the data using an alternative parameter value you define. In this example, you
would like to filter results by date. When you launch the BAQ, the parameter value displays for input.

1. From the Actions menu, select Define Parameters.

The Query Parameters window displays.

2. In the Parameter Name field, enter Date.

3. In the Date Type field, select date.

190 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

4. Accept the default values and click Save.

5. Exit the Query Parameters window.


You now define which BAQ fields you want filter by the date parameter.

6. Navigate to the Query Builder > Phrase Build sheet.

7. With InvcHead SubQuery in focus, in the design canvas click on the Erp.InvcHead table.

8. At the bottom of the screen, verify the Table Criteria sheet displays.

9. From the toolbar, click the Add Row button.

10. In the Field column, select InvoiceDate.

11. In the Operation column, verify the equal sign (=) defaults.

12. From the Filter Value field, select specified parameter.

13. Click the word specified to launch the Select Parameter window.

14. Verify the Date parameter you created is highlighted and click Select.

15. Repeat steps 7 - 14 to apply the same filter on OrderHed and QuoteHed SubQueries. To switch between
SubQueries, use the Active SubQuery toolbar.
Use the below table for reference:

Table Field Operator Filter Value


Erp.OrderHed OrderDate = @Date parameter
Erp.QuoteHed EntryDate = @Date parameter

ICE 3.0 | 10.0.700 191


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

16. Once finished, click Save.


You can now test the BAQ execution.

Test the BAQ

1. Navigate to the Analyze sheet.

2. Click the Test to invoke the Parameters window.

3. Enter the Date for which you want to retrieve records.

4. Click OK.

5. The grid populates with records.

192 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

6. Right-click anywhere in the grid and select Show Group By and Show Summaries.

7. Drag the Document Type column to the pane above the grid.

8. In the Total Value header, click the Sigma icon (∑) .

9. In the Select Summaries window, select Sum.

10. Click OK.

11. You BAQ results are now broken down by Quotes, Orders and Invoices with their total values for a given
day.

ICE 3.0 | 10.0.700 193


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Intersect and Except SubQuery Type

You can use the UNION, EXCEPT and INTERSECT operators of SQL enable to combine more than one SELECT
statement to form a single result set. The UNION operator returns all rows. The INTERSECT operator returns all
rows that are in both result sets. The EXCEPT operator returns the rows that are only in the first result set but
not in the second.
In the previous case study - Combine Results Sets, you learned how to use UNION operator to combine results
of multiple SubQueries into a single result set. In this case study, learn how to intersect the results of two
SubQueries and use the except operator to retrieve the query result set where data exists in the first SubQuery
and not in the second one.

Create TopLevel BAQ

1. In the Business Activity Query Designer, click New to create a new query.

2. In the Query ID field, enter CustomerOrders.

3. In the Description field, enter Orders By Customer.

4. Select the Shared check box.

194 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

5. Navigate to the Query Builder > Phrase Build sheet.

6. Place the following tables on the designer canvas:


• Erp.OrderHed
• Erp.Customer

7. For the TopLevel SubQuery you want to filter see orders for customers coming from USA and Canada.

8. Highlight the Erp.Customer table.

9. The Table Criteria tab automatically displays.

10. Click the New button. A row appears in the Criteria grid.

11. Create the following criteria. To set the Filter Value, use the specified constant option.

And/Or ( Not Field Operation Filter Value )


Country = USA constant
Or Country = CANADA constant

ICE 3.0 | 10.0.700 195


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

12. Click the Display Fields > Column Select tab.

13. Move the following columns from the Available Columns area to the Display Column(s) area:
• Customer_CustID
• Customer_Country
• OrderHed_OrderNum

14. Click Save.

15. You are ready to test the query. Click the Analyze tab.

196 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

16. Click the Test button.

17. In this example, the BAQ returns 302 order records from customers based in USA or Canada.

Create Intersect SubQuery

1. Navigate to the Query Builder > SubQuery Options sheet.

2. In the Active SubQuery toolbar, click NewSubQuery.

3. In the Type field, select Intersect.

4. Navigate to the Query Builder > Phrase Build sheet.

ICE 3.0 | 10.0.700 197


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

5. Place the following tables on the designer canvas:


• Erp.OrderHed
• Erp.Customer

6. Accept the new field Aliases of tables already used in the TopLevel SubQuery.

7. For the second SubQuery you want to filter orders for customers coming from Germany and Canada.

8. Highlight the Erp.Customer table.

9. The Table Criteria tab automatically displays.

10. Click the New button. A row appears in the Criteria grid.

11. Create the following criteria. To set the Filter Value, use the specified constant option.

And/Or ( Not Field Operation Filter Value )


Country = GERMANY constant
Or Country = CANADA constant

12. Click the Display Fields > Column Select tab.

13. Move the following columns from the Available Columns area to the Display Column(s) area:
• Customer_CustID
• Customer_Country
• OrderHed_OrderNum

14. Click Save.

198 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

15. You are ready to test the query. Click the Analyze tab.

16. Click the Test button.

17. In this example, the BAQ returns 17 order records from customers based in Canada.

Use the INTERSECT operator to return only values that


match within both data sets, as shown in the following
illustration.

ICE 3.0 | 10.0.700 199


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

Use Except SubQuery Type

1. Navigate to the Query Builder > SubQuery Options sheet.

2. For SubQuery2, in the Type field, select Except.

3. Click Save.

4. Now test how BAQ results change. Click the Analyze tab.

5. Click Test.

200 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

6. In this example, the BAQ returns 285 order records from customers based in USA.

The SQL EXCEPT operation is used to combine two SELECT


statements and returns rows from the first SELECT
statement that are not returned by the second SELECT
statement. This means EXCEPT returns only rows, which
are not available in second SELECT statement.

Common Table Expression Query

A common can be thought of as a temporary result set that is defined within the execution scope of a single
SELECT (or may serve as a SubQuery, instead of SELECT). Returning hierarchical data is a common use of recursive
queries.

Example You can construct a query displaying employees in


an organizational CTE chart.

A Common Table Expression Query contains three SubQueries in this order:


• Anchor Common Table Expression - This SubQuery is the starting point that acts as a base to enable the
process of recursion in the CTE. It provides the base data for the rest of the process for fetching the data.
• UnionAll recursive SubQuery - This SubQuery references the Anchor Common Table Expression. After the
anchor query is executed, the result set is generated by the anchor query as an input for the recursive query
and is joined with the recursive query to generate new results. Then, a new result set is created and is again
joined with the recursive query and further results are generated. This process continues until all the records
are processed, which means, until further joins return no data.
• TopLevel SubQuery - pulls data from Common Table Expression and displays BAQ results.

Create CTE SubQuery


In this example, the query result will display the data in a bill of materials scenario in which a parent product has
one or more components and those components may, in turn, have sub-components or may be components of
other parents. The BAQ uses a part number as a query parameter.
First, you specify parameters of the anchor CTE query. Here's how:

ICE 3.0 | 10.0.700 201


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

1. In the Business Activity Query Designer, click New to create a new query.

2. In the Query ID field, enter IndentBOM.

3. In the Description field, enter BOM Listing.

4. Select the Shared check box.

5. Navigate to the Query Builder > SubQuery Options sheet.

6. For the Type, select CTE.

7. Navigate to the Query Builder > Phrase Build sheet.

8. From the list, select the Erp.PartMtl table and drag it on the canvas in the center pane.

9. Click Save.

Create Query Parameter


Create a Query Parameter to filter the data using an alternative parameter value you define. In this example, you
would like to filter results by part numbers. When you launch the BAQ, the parameter value displays for input.

202 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

1. From the Actions menu, select Define Parameters.


The Query Parameters window displays.

2. In the Parameter Name field, enter PartNum.

3. In the Data Type field, select nvarchar.

4. In the Format field, enter x(50).

5. Accept the default values and click Save.

6. Exit the Query Parameters window.

ICE 3.0 | 10.0.700 203


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

7. You now define which BAQ fields you want filter by the date parameter. Select the SubQuery Criteria
sheet.

8. In the Table field, select PartMtl.

9. In the Field column, select PartNum.

10. In the Operation column, verify the equal sign (=) defaults.

11. From the Filter Value field, select specified parameter.

12. Verify the PartNum parameter you created is highlighted and click Select.

13. Click Save.

204 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Select Columns

1. Navigate to the Display Fields > Column Select sheet.

2. Move the following columns from the Available Columns area to the Display Column(s) area:
• PartMtl_Company
• PartMtl_PartNum
• PartMtl_RevisionNum
• PartMtl_MtlSeq
• PartMtl_MtlPartNum
• PartMtl_QtyPer
• PartMtl_RelatedOperation
• PartMtl_PullAsAsm
• PartMtl_ViewAsAsm
• PartMtl_PlanAsAsm
Now you are ready to build the BOM Level hierarchy calculated field and Indentation calculated field.

3. Click the Calculator icon to display the Calculated Field Editor.

ICE 3.0 | 10.0.700 205


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

4. Click New.

5. For the Field Name, enter Hierarchy and press Tab.

6. In the Data Type field, select int.

7. In the Label field, enter BOM Level.

8. In the Editor, enter 0.

This is how you establish the start - anchor of the recursion


- parts with BOM Level 0 will be on this level.

9. Click New to create another calculated field.

10. For the Field Name, enter Ind1 and press Tab.

206 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

11. In the Data Type field, select nvarchar.

12. In the Editor, enter the following code that calculates the indentation level of subassembly parts.
cast ( substring('........',1 ,(Hierarchy + 1) ) + PartMtl.MtlPartNum
as nvarchar(25))

13. Click Save.


Now you are ready to configure the UnionAll recursive SubQuery.

Define UnionAll SubQuery

1. Navigate to the Query Builder > SubQuery Options sheet.

2. In the Active SubQuery toolbar, click NewSubQuery.

3. In the Name field, accept the default of SubQuery2.

4. In the Type field, select UnionAll.

ICE 3.0 | 10.0.700 207


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

5. Navigate to the Query Builder > Phrase Build sheet.

ForSubQuery2, you will again use the Part Material table but this time, you join it with CTE SubQuery1.

6. Place the Erp.PartMtl and SubQuery1 on the canvas.


Accept the new Aliases the BAQ creates.

7. To switch tables and subqueries, use the buttons above the list of tables.

8. Create a manual connection between the two tables using the Add Connection button.

9. Use the following fields to create the inner join between tables:

SubQuery1 field = PartMtl1 field


PartMtl_MtlPartNum = PartNum
PartMtl_Company = Company

10. Click Save.

208 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

Select Columns

1. Navigate to the Display Fields > Column Select sheet.

When using SubQueries of the Union, UnionAll, Intersect


or Except type, the number and the order of the columns
must be the same in all SubQueries.

2. Move the following columns from the Available Columns area to the Display Column(s) area:
• PartMtl1_Company
• PartMtl1_PartNum
• PartMtl1_RevisionNum
• PartMtl1_MtlSeq
• PartMtl1_MtlPartNum
• PartMtl1_QtyPer
• PartMtl1_RelatedOperation
• PartMtl1_PullAsAsm
• PartMtl1_ViewAsAsm
• PartMtl1_PlanAsAsm
Now you are ready to build the calculated field to increment the BOM Level hierarchy.

3. Click the Calculator icon to display the Calculated Field Editor.

ICE 3.0 | 10.0.700 209


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

4. Click New.

5. For the Field Name, enter Hierarchy2 and press Tab.

6. In the Data Type field, select int.

7. In the Label field, enter BOM Level.

8. In the Editor, enter Calculated_Hierarchy + 1.

This is how you increment the hierarchy. As the SubQuery


goes down through the assemblies, each subassembly is
placed on the respective BOM Level.

9. Click New to create another calculated field. The Indentation you create references the UnionAll SubQuery
Aliases, otherwise it is similar to the one created within the CTE SubQuery.

10. For the Field Name, enter Ind2 and press Tab.

210 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

11. In the Data Type field, select nvarchar.

12. In the Editor, enter the following code that calculates the indentation level of subassembly parts.
cast ( substring('........',1 ,(Hierarchy2 + 1) ) + PartMtl1.MtlPartNum
as nvarchar(25))

13. Click Save.


Now you are ready to configure the TopLevel SubQuery.

Create TopLevel SubQuery

1. Navigate to the Query Builder > SubQuery Options sheet.

2. In the Active SubQuery toolbar, click NewSubQuery.

3. In the Name field, accept the default of SubQuery3.

4. In the Type field, select TopLevel.

5. Navigate to the Query Builder > Phrase Build sheet.

In the TopLevel SubQuery3, you display data from the CTE SubQuery1.

6. From the list of SubQueries, select SubQuery1 and place it on the canvas. Accept the new Alias the BAQ
creates.

ICE 3.0 | 10.0.700 211


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

7. Navigate to the Display Fields > Column Select sheet.

8. Move all columns from the SubQuery11 to the Display Column(s) area

9. Click Save.
You are now ready to test the query.

Test the BAQ

1. Navigate to the Analyze sheet.

212 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Activity Queries | Chapter 1

2. Click the Test to invoke the Parameters window.

3. In this example, enter DCD-200-ML for PartNum.

4. Click OK.

5. The grid populates with data.

ICE 3.0 | 10.0.700 213


Chapter 1 | Business Activity Queries Epicor ICE 3.0 Tools User Guide

6. To display the hierarchy, group the BAQ results by the BOM Level and Indentation (Ind1) columns.

Now the BAQ results are broken down by levels. The BOM Level 0 displays the parent part - in this case
DCD-200-ML with its subassemblies showing on their respective levels within the Bill of Material.

214 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

Chapter 2: External Business Activity Queries

Use the External Query functionality to create a connection to external (non-Epicor) data sources. This feature is based
on accessing external data via ODBC connections. and provides the mechanism for retrieving, updating and displaying
information from an external database using the SQL language. Working with external data source looks similar to
ordinal query design and execution. The data you retrieve using the external query can be used in additional dashboard
renderings, like dashboard applications, mobile framework, Epicor Sharepoint Publisher and so on.
To use the functionality, you need an ODBC connection to an external server configured on the machine where the
application server is hosted. This connection must also be specified when you create the query. Through the External
BAQ Designer, you can browse and select tables from an external data source in the same way as when data is pulled
from the Epicor database.
The process of creating an external BAQ involves the following:
• Establish a connection to an external datasource using the ADO .NET DB provider available on the machine and
compose a connection string to access the external database management system.
• Set up security restrictions to schema and data coming from an external datasource.
• Modify external datasource metadata specified in the source database as required.
• Enable the external datasource you create in the company you work with.
• Build an external Business Activity Query and use it as a datasource for reports, dashboards, trackers and so on.
• Expose the data to users using the Epicor Everywhere™ Framework tools.
This chapter describes how to set up and configure connection to an external datasource. The process of building a
query is nearly identical to ordinal BAQ design. For more information on how to construct a query, see Chapter 01:
Business Activity Queries.

External Datasource Type Maintenance

Use External Datasource Type Maintenance to set up security restrictions to schema and data from an external
datasource.
On the Data Filtering, you can set up restrictions to limit the data displayed by the query. You can create a
single criterion that pulls in the data you need. You can also create a combined criteria by linking your criterion
with And or Or statements.

Example You can create a datasource type to only display


records for a specific company. Typically, you can use data
filtering to prevent users from accessing particular data.

On the Schema Filtering sheets, you can apply a filter on a schema level by selecting which tables and columns
you want to display in External Business Activity Query Designer.

Example To narrow down the datasource output you can set


up the datasource type to display tables for a specific schema
name or hide all columns starting with a specific string.
This way, you can prevent users from accessing sensitive data,
such as financial operations and so on.

ICE 3.0 | 10.0.700 215


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

Create New Datasource Type


Here's how you can create a new datasource type:
Navigate to External Datasource Type Maintenance.
Menu Path: System Management > External Business Activity Query > External Datasource Types

This program is not available in the Epicor Web Access.

1. Click New.

2. In the Datasource Type field, enter a unique identifier of a datasource type.

3. The Application Type field is used to control any specific logic or flow that is related to specific applications
associated with the datasources.
• Generic - Use this default option to create a datasource type for any type of target databases. Using
this type, the whole communication between the application and external data source is performed using
the .ADO.Net datasource.
• Prophet21 - Use this option when you integrate the Epicor ICE framework with Prophet 21(P21)
application.
• Eclipse - Use this option when you integrate the Epicor ICE framework with Epicor Eclipse application.
• iScala - Use this option when you integrate the Epicor ICE framework with Epicor iScala application.

The Epicor ICE (Internet Component Environment) is the


software framework for Epicor ERP software (both as
integrated with the Epicor ERP product and as the
standalone ICE Extend platform for other Epicor products).

4. In the Description field, enter a brief text to describe the purpose of the datasource type.

5. Click Save.

216 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

Create New Filter Group

The first step to filter data coming from an external datasource is to create a new security group.

1. Navigate to the Detail > Data Filtering sheet.

2. Click New Group.

3. In the FilterGroupName field, enter a unique name for the security group.

Example Company_ID

4. In the Description field, enter a brief description of the security group.

Add New Definition

The below steps discuss how to create a filter to limit the data the external datasource displays through BAQ.
To complete the data filtering:

1. On the Detail > Data Filtering sheet, in the lower pane, click the New Filter button.

ICE 3.0 | 10.0.700 217


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

A new row displays on the grid.

2. In the FilterName field, enter a name for the definition or accept the default value.

Example Filter1.

3. In the TableName field, enter a name of the table used in the criterion.
You can accept the default value of --any table --, which means that any table within the datasource should
be checked for some field. It is also possible to use wildcard characters to limit the list of tables used to filter
the data.

4. In the FieldName field, enter a name of the field the rule will valuate.

Example Company_id

5. In the DefaultConstant field, select a BAQ constant from the drop down list or manually enter the constant
value.

Example
• BAQ constants - CurrentCompany, CurrentUserID
• Manually entered constants - "Company1", "True"

6. When you need to apply a filter based on the values of more than one criterion, use the And Or field to
define the criteria string clause.

7. If you want this criterion to evaluate a Not criterion value, select the Neg check box.

Example a column NOT IsNull

218 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

8. If needed, use the LeftP and RightP fields to insert parenthesis to the clause.

9. If you want to change the sequence through which filters run, highlight a filter on the grid and click either
the Move Up or Move Down buttons.

10. When you finish building the criterion, click Save.

Apply Table Filter

The below steps discuss how to limit which tables display for selection when you design a new query using BAQ
Designer.
To apply a filter on the table level:

1. Navigate to the Schema Filtering > Table Filtering sheet.

2. Click New Table Filter.


A new row displays on the grid.

3. In the SchemaName field, enter a name of the database schema used in the criterion.
You can accept the default value of --any schema -- to display or hide tables for any schema within the
selected datasource. It is also possible to use wildcard characters to limit the list of schemas used in the filter.

Example dbo, ice%

4. In the TableName field, enter a value to limit which tables become available for selection creating a BAQ
using the datasource.
You can accept the default value of --any table --, to apply a filter on all tables within the selected database
schema. It is also possible to use wildcard characters to limit the list of tables used to filter the data.

Example You can decide to only display tables for a


specific schema, for example, dbo. Another example
would be to hide tables due to security restrictions, for
example to apply a filter on all tables starting with fin%,
gl%, ap% and so on.

ICE 3.0 | 10.0.700 219


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

5. When you need to apply a filter based on the values of more than one criterion, use the And Or field to
define the criteria string clause.

6. If you want this criterion to evaluate a Not criterion value, select the Neg check box.

7. If needed, use the LeftP and RightP fields to insert parenthesis to the clause.

8. If you want to change the sequence through which filters run, highlight a filter on the grid and click either
the Move Up or Move Down buttons.

Apply Column Filter


The below steps discuss how to limit which rows of the external table(s) display for selection when you design a
new query using BAQ Designer.

1. Navigate to the Schema Filtering > Column Filtering sheet.

2. Click New Column Filter.


A new row displays on the grid.

3. In the SchemaName field, enter a name of the database schema used in the criterion.
You can accept the default value of --any schema -- to display or hide selected tables and columns for any
schema within the selected datasource. It is also possible to use wildcard characters to limit the list of schemas
used in the filter.

Example dbo, ice%

4. In the TableName field, enter a value to limit which tables and respective fields become available for
selection.
You can accept the default value of --any table --, to apply a filter on schema or column level only. To limit
tables and respective fields from displaying in BAQ Designer, you can use SQL Server wildcard characters,
such as % or _ (underscore).

5. In the FieldName field, enter a value to limit which columns become available for selection in BAQ Designer.

220 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

To limit certain fields from displaying in BAQ Designer, you can use SQL Server wildcard characters, such as
% or _ (underscore).

Example You can hide a bank account number field for


all tables that exist in the external datasource.

6. When you need to apply a filter based on the values of more than one criterion, use the And Or field to
define the criteria string clause.

7. If you want this criterion to evaluate a Not criterion value, select the Neg check box.

8. If needed, use the LeftP and RightP fields to insert parenthesis to the clause.

9. If you want to change the sequence through which filters run, highlight a filter on the grid and click either
the Move Up or Move Down buttons.

External Datasource Maintenance

Use External Datasource Maintenance to build a connection string used to access an external database.
When you create a new datasource, first specify a datasource name, concise description and select an available
DataSource Type for your external datasource. Datasource types are created in External DataSource Type
Maintenance. You can use datasource type to describe security restrictions that should be applied to schema
and data from some external source.
To connect to an external datasource, you must compose a connection string. First, select one of the ADO.Net
providers available on the server. ADO.NET is the .NET technology; an object-oriented set of libraries for interacting
with data sources. There are several data providers you can use to communicate with different data sources.

Any custom ADO.Net provider can be installed on the server


and used to create a Business Activity Query (BAQ). Each .NET
Framework data provider that supports a factory-based class
registers configuration information is stored in the
DbProviderFactories section of the machine.config file on
the local computer.

Example The following displays the SQL client data provider


reference in the machine.config file:
<system.data>
<DbProviderFactories>
<add name="SqlClient Data Provider"
invariant="System.Data.SqlClient"
description=".Net Framework Data Provid
er for SqlServer"
type="System.Data.SqlClient.SqlClientFa
ctory, System.Data,
Version=2.0.0.0, Culture=neutral, Publi
cKeyToken=b77a5c561934e089"
/>
</DbProviderFactories>
</system.data>
The following table displays data provider examples you can
use to query an external database:

ICE 3.0 | 10.0.700 221


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

Description
.NET Framework data
provider

.NET Framework Data Provides data access for Microsoft


Provider for SQL Server SQL Server version 7.0 or later. Uses
the System.Data.SqlClient
namespace.
.NET Framework Data For data sources exposed by using
Provider for OLE DB OLE DB (Object Linking and
Embedding Database). It uses the
System.Data.OleDb namespace.
.NET Framework Data For data sources exposed by using
Provider for ODBC ODBC (Open Database
Connectivity). It uses the
System.Data.Odbc namespace.

Once you select an available .NET provider, use the Configure button to set up Connection Parameters. These
parameters vary based on the selected provider.

Example For SqlClient Data Provider, first select a datasource;


specify a server name and instance name. Then select a
database you want to connect to. If you want to connect to
an external datasource using the Windows security, select Use
Trusted Connection option. This means your current Windows
account credentials are used for authentication. If your
windows account does not have required permission to access
an SQL Server database, use the SQL Server credentials to log
in.

When setting up connection parameters, on the Advanced Properties sheet you can specify detailed properties
for Windows supported .NET providers, such as ODBC, OLE DB and SQL client. The list of driver properties vary
based on selected ADP. NET provider. For more information on specific driver properties, refer to the Microsoft®
Developer Network at http://msdn.microsoft.com/en-US/.
Apart from the default connection parameters offered by the selected .NET provider, the following artificial BAQ
keys are available for use when building a connection string.

These artificial keys were introduced to resolve problems with


zero dates and alias lengths and must be entered manually
within the string.

Key Description
SkipLoadErrors=true; Sets NULL for the value that cannot be loaded in the field (such as zero-date for
Oracle, as conversion of 0 to date is not supported by .Net)
AliasMaxLength=30; Sets the maximum possible length of field aliases.
UseFieldAlias=true; When used, field aliases will match field names. Standard way of building aliases
using tableid_fieldname format will be suppressed. If duplicate alias entries occur,
digits in ascending order will be placed at the end of aliases.

222 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

Key Description
SqlDialect=Oracle; When used, this parameter is primarily used by the ODBC provider to build SQL
query according to target relational database management system (RDBMS) syntax.
The available values include: Oracle, MySql and Mssql2000.

To verify the connection to your external datasource, use the Test Connection button. When you successfully
establish connection, you can use the datasource to build a Business Activity Query.

Create an External Datasource


Navigate to External Datasource Maintenance.
Menu Path: System Management > External Business Activity Query > External Datasources

This program is not available in the Epicor Web Access.

1. Click New.

2. In the Datasource field, enter a unique identifier that best describes the external datasource.

3. In the Description field, enter a description of the external datasource.

4. In the Datasource Type field, select a type you wish to use in your external datasource.
Datasource types are created in External DataSource Type Maintenance. You can use datasource type to
describe security restrictions that should be applied to schema and data from an external datasource.

5. In the ADO. Net provider field, select a provider available on the server.
A provider you select is used for connecting to a database, executing commands, and retrieving results.

For iScala integration this button is disabled, as this type


of integration uses the WCF Service. You set up
connection parameters with iScala exclusively on the
Distribution sheet.

6. Click the Configure button.

ICE 3.0 | 10.0.700 223


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

7. The Connection Parameters window displays. The fields on this window vary based on the selected ADO.
Net provider.

8. For example, for SQLOLEDB Data Provider, first enter a Data Source; specify a server name and instance
name.

9. Then enter a Database name you want to connect to.

10. If you want to connect to an external datasource using the Windows security, select Use Trusted Connection
option. This means application server credentials are used for authentication. If your windows account does
not have required permission to access an SQL Server database, use the SQL Server credentials to log in.

11. When setting up connection parameters, on the Advanced Properties sheet you can specify detailed
properties for Windows supported .NET providers, such as ODBC, OLE DB and SQL client. The list of driver
properties vary based on selected ADP. NET provider. For more information on specific driver properties,
refer to the Microsoft® Developer Network at http://msdn.microsoft.com/en-US/.

12. To verify the connection to your external datasource, use the Test Connection button and verify the
connection to an external datasource is successful.

224 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

13. The Authentication parameters you entered now display on the Connection Parameters window. You can
change the parameters on this window, if necessary.

14. A Connection string contains initialization information that is passed as a parameter from a data provider
to a data source. The syntax depends on the data provider, and the connection string is parsed during the
attempt to open a connection.

15. You can use the Test Connection button to verify the connection to an external datasource is successful.
Apart from the default connection parameters offered by the selected .NET provider, the following artificial
BAQ keys are available for use when building a connection string.
These artificial keys were introduced to resolve problems with zero dates and alias lengths. When used, they
must be entered manually within the connection string.

Key Description
SkipLoadErrors=true; Sets NULL for the value that cannot be loaded in the field (such as zero-date,
as conversion of 0 to date is not supported by .Net)
AliasMaxLength=30; Sets the maximum possible length of field aliases.
UseFieldAlias=true; When used, field aliases will match field names. Standard way of building
aliases using tableid_fieldname format will be suppressed. If duplicate alias
entries occur, digits in ascending order will be placed at the end of aliases.
SqlDialect=Oracle; When used, this parameter is primarily used by the ODBC provider to build
SQL query according to target relational database management system (RDBMS)
syntax. The available values include: Oracle, MySql and Mssql2000.

ICE 3.0 | 10.0.700 225


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

Use the Distribution sheet


Use the Distribution sheet to configure the token server settings required to establish connection between Epicor
ICE and external system's framework. On this sheet you can also restrict how external business activity queries
generate results.
To configure the external system:

1. Select the Distribution sheet.

2. The External System pane fields vary based on the selected Datasource Type.

3. In the iScala Server field, enter the full domain name of the iScala server (or the name for which https
binding of IIS hosting iScala WCF services is configured).
For Prophet 21 and Eclipse integration this field displays the Token server URL field. Enter the URL of the
server that validates calls from ICE framework against external application.

4. For Client ID, enter the user name to be used by BAQ engine to authenticate in external system.

5. In the Client secret field, enter the password configured in external system for the above user.

For more information on how to integrate Epicor ICE with


external systems, review the available ICE Extend
documentation found on EpicWeb.

6. You can set the maximum number of rows the external query is allowed to return. To do so, enter a value
in the Query Maximum Row Count field.

Example You limit the query to return maximum of 500


rows.

226 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

7. The Query Execution TimeOut (Sec) value specifies the longest time (in seconds) in which a query can
run, when executed by the datasource in focus. Specifying 0 for this option indicates all queries are allowed
to run indefinitely.

Example By entering 180 in the field you indicate the


database server may attempt to execute queries for
maximum of 3 minutes. After this period the process is
terminated and the user launching the query receives an
error message.

Query Limits apply to all external queries executed by the


selected datasource regardless of the Datasource Type it
uses.

Export Datasources

Use the Export Datasources functionality to make your external datasources available to users at another
location.
When you export a datasource as a .baqds file, users outside your network can then import this definition onto
their client machines and establish connection to an external datasource. You can also use this functionality to
archive your datasource definition.
To export datasources:

1. Search for and select datasource(s) you want to export.

2. From the Actions menu, click Export Datasources.

ICE 3.0 | 10.0.700 227


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

3. By default, all selected datasources, related datasource types and company settings are selected for export.

4. You can customize the exports list using the check boxes that display next each item.

5. Click Export to File.

6. Enter a File name and select a location of the exported *.baqds file.

7. Click Export.

8. View the Export process messages pane and verify the process is complete.

9. Click Close.
The exported datasource(s) definition is now available to other users.

Import Datasources

Use the Import Datasources functionality to import previously exported datasources and datasource types into
your environment.
To import external datasources:

1. From the Actions menu, select Import Datasources.

228 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

2. Click Import from File.

3. Search for and select the exported *.baqds file.

4. You can customize the list of imported items by selecting a check box next to each datasource, datasource
type and company settings you want to import.

5. Click Import.

6. View the Import process messages pane and verify the process is complete.

7. Click Close.
Verify the connection to an external is successful. If necessary, click Configure button to modify Database
Connection Parameters.

32 Bit vs 64 Bit ODBC

When you create and ODBC connection, it is important to understand which kind of Data Source Name (DSN)
you should use on the system. On an x64 system, you can create an ODBC connection (DSN) on the 32-bit side
of the system or on the 64-bit side of the system.
The Epicor ICE3 framework used by Epicor ERP and ICE Extend products takes the bitness into account when
user works with BAQ External Data Sources and executes external queries. BAQ distinguishes 32bit and 64bit
ODBC datasources to provide compatibility between bitness of IIS process and of underlying ODBC driver dll file.
Hence, if the application utilizing the Epicor ICE 3 framework is running in a 64bit mode, it doesn't see 32bit
DSNs, and vise versa.

1. To configure 32bit ODBC datasources, you can call ODBC Data Source Administrator tool using this command
line:
%windir%\SysWOW64\odbcad32.exe

ICE 3.0 | 10.0.700 229


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

2. In order for BAQ to see and consume 32 bit ODBC datasources, in Internet Information Services (IIS) Manager,
select ERP10/ICE3 application pool.

3. Click Advanced Settings.

4. For Enable 32-Bit Applications property, select True.

5. To configure 64bit ODBC datasources, call ODBC Data Source Administrator tool using this command line:
%windir%\system32\odbcad32.exe

230 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

6. In ERP10/ICE3 application pool, for Enable 32-Bit Applications property, select False.

External Datasource Metadata Maintenance

Use the External Datasource Metadata Maintenance to modify column properties of data coming from an
external datasource.
In External Business Activity Designer, column properties such as format, label or description display according
to the underlying metadata specified in the source database. When there is no metadata specified for a table,
External Business Activity Designer automatically determines all required column properties.
In External Datasource Metadata Maintenance, you can manually change properties of columns you want to
include in your Business Activity Query.
First, select a Datasource Type for which you want to modify metadata and select one of the datasources
attached to the Datasource Type. The datasource you select provides a list tables you can select to modify
metadata.

Example
You want to create an updatable Business Activity Query (BAQ)
that displays the list of customers. Because you typically contact
your customers via email, you want to make sure the email
address field for each customer is filled. In External Datasource
Metadata Maintenance, you select a Datasource Type and a
Sample Datasource that provides the data for the query. You
will then search for a customer table that holds the information
you need. On the Field Detail sheet, highlight the email address
field and select the Required check box. When you create an
updatable BAQ and use it on a dashboard, users will not be
able to change the existing customer information or create a
new customer record unless they enter a value in the email
address field.

ICE 3.0 | 10.0.700 231


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

Retrieve External Tables


Use the following steps to retrieve tables for which you want to modify column properties from an external
datasource.
Navigate to External Datasource Metadata Maintenance.
Menu Path: System Management > External Business Activity Query > External Datasource Metadata

This program is not available in the Epicor Web Access.

To retrieve external table:

1. In the Datasource Type field, search for an existing datasource type.

Datasource types are created in External DataSource


Type Maintenance. You can use datasource type to
describe security restrictions to schema and data of an
external datasource. Each external datasource that
provides the connection to an external database system
must be assigned to an existing datasource type.

2. In the Sample Datasource field, select an external datasource associated with the selected datasource type,
for which you want to create metadata.

External datasource provides connection to an external


database system. Each datasource must be assigned to
an existing datasource type.

3. Click Test Connection to verify the connection to an external system is established.

4. Click Tables.

232 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

5. In the External Tables window, search for a table or multiple tables for which you want to modify column
properties.

You can narrow down the list of tables you want to retrieve by entering a value in the Table Name
Starts with field and selecting a database schema.

6. In this example, select the DimCustomer table.

7. In the External Tables window, click OK.

8. The table you select display as a node in the Tree View on the left side of the form.

To create metadata, it is not necessary to select an external


table. If you accept a default value of -- any table in the
database -- then any metadata changes you make apply
to the whole database. You can, for example, create
metadata for the Company column by adding a custom
description. All database tables using the Company
column will use the column description you create.

ICE 3.0 | 10.0.700 233


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

Use Table List


Use the Table List sheet to review the list of external tables you retrieved from an external datasource.

1. Navigate to the Table List sheet.

2. The grid displays the Customer table you retrieved form an external datasource.

3. You can enter a value in the Description field to create custom table description.
In this example, enter List of Customers.
You cannot modify the rest of the fields; they display for your information only.

Modify Field Properties


Use the following steps to manually change properties of columns you want to include in your Business Activity
Query.

1. In the Tree View, expand the table and select a field you want to modify.

2. In this example, select the EmailAddress field.

3. The Fields > Field Detail sheet is automatically selected, presenting the existing properties of the selected
field.

4. In the Description field, you can explain the field's purpose and provide other helpful information.
In this example, enter Customer Email Address.

5. The Field Table defines the column's title when used on a query or a dashboard.
In this example, enter Email.

234 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

6. The Format displays the layout for the characters within the field. This value can be displayed in either
schema or alphanumeric format. You can change this value if necessary.

7. By selecting the Required check box you indicate the field cannot be empty. When users attempt to save
a new or existing record within the query and this field is blank, they will not able to save the record until
they enter a value in this field.

8. If you want to prevent users from changing the data in this field, select the Read Only check box.

9. To view the list of all fields of the selected external table, navigate to the Fields > Field List sheet.

10. View the metadata information you entered for the EmailAddress field.
You can use this sheet to modify properties of multiple fields at once, for example, to make certain fields
mandatory, change their label and so on.

11. Once complete, click Save.

Enable External DataSources

Before you can use the created datasource to build a Business Activity Query, you must make it available to users.
Use the BAQ External Datasources sheet within Company Maintenance to enable external datasources for the
selected company. On this sheet, you can also modify security settings applied to external datasources.
Navigate to Company Maintenance.
Menu Path: System Setup > Company/Site Maintenance > Company Maintenance

This program is not available in the Epicor Web Access.

1. Select the BAQ External Datasources sheet.

ICE 3.0 | 10.0.700 235


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

2. In the Datasources grid, all external datasources created in the External Datasource Maintenance
program display.

3. Select the Enabled check box for each datasource you want to make available within the current company.

Only the datasources you enable become available for


selection in External BAQ Designer.

4. If you want to skip security checking for the selected datasource, in the Datasources grid, select the Skip
Filter check box. Once selected, any Filter Groups and Filter Definition for the selected datasource become
ignored.

5. If you wish to skip security checking for a specific group defined for the selected datasource, in the Filter
Groups grid, select the Skip Filter check box.

Example
In the External Datasource Type Maintenance, you
can create multiple filter groups. The selected external
datasource retrieves the required data based on
datasource type settings. For example, you can filter the
external data by a specific company and parts you want
to display in a dashboard. In the future, a request may
occur to display the information in the dashboard for all
companies. In such case, you can use the Skip Filter check
box to ignore the filtering for the selected group.

6. If the selected filter group uses a BAQ constant to filter the data, you can use the Filter Definitions grid
to override this constant.

236 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide External Business Activity Queries | Chapter 2

7. The current value of the selected constant displays in the ConstantValue field.
In this example, the current company value is EPIC06.

8. If you want to override the default BAQ constant by applying a custom value, clear the Use Default check
box and enter a custom constant in the FilterValue field, for example, EPIC03.

9. Once complete, click Save.

Design External Business Activity Query

External Business Activity Query provides the mechanism for retrieving, updating and displaying information from
an external database using the SQL language. It serves as an interface you use to create custom SQL text. The
query text is then sent to the database server using the selected .NET provider, where it is executed. The information
you retrieve serves as a data source for reports, dashboards or searches.
Navigate to External Business Activity Query.
Menu Path: System Management > External Business Activity Query > External Business Activity Query

This program is not available in the Epicor Web Access.

1. Click New.

2. In the Query ID field, enter a unique identifier for your query.

3. In the Description field, enter a concise explanation for the query.

4. If you want to make this query is available to all users, select the Shared check box.

5. If you want to update the external database using this query, select the Updatable check box.

Global and Cross-Company functionality is supported


in External BAQs.

6. In the External Datasource name field, select an external datasource available for the current company.

7. Click Test Connection to verify your connection to an external database is established.

8. You continue design the query in the same way as in Business Activity Query Designer.

ICE 3.0 | 10.0.700 237


Chapter 2 | External Business Activity Queries Epicor ICE 3.0 Tools User Guide

The External BAQ Designer UI is almost identical as Business Activity Query Designer that is designed to work
with MS SQL Server 2008 and higher. All criteria filters, function lists in calculated fields, expressions,
supported SubQueries and SubQuery types are not modified in External BAQ UI.
A user designing an external query should only use those External BAQ Designer features which are supported
by the foreign Database Management System it uses.

Example

For more information on how to construct a business activity query, see Chapter 01: Business Activity
Queries.

238 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

Chapter 3: BAQ Report Designer

Use the BAQ Report Designer to turn a Business Activity Query (BAQ) into a SQL Server Reporting Services (SSRS) report.

This chapter focuses on using BAQ Report Designer to create and


work with SSRS reports. See the application online help for
information about program features supporting Crystal reports.

You create a personalized BAQ through the Business Activity Query Designer. You then use the BAQ Report Designer
to select the BAQ as the base for a report, and to define the option fields, filters, and sort by options that appear on
the report interface. To design and format the report, you use Microsoft SQL Server Report Builder. Once you have the
report layout complete, you can add it to the menu for users to access.
To effectively use the BAQ Report Designer, you should have a solid knowledge of both business activity queries (BAQs)
and SSRS reports. This chapter focuses on designing the report interface in the application and provides an example
of working with the Microsoft SQL Server Report Builder.
The reports you create through this tool are flat reports, which means they only pull data from the table(s) defined on
the selected BAQ. If you need to pull data from multiple queries (and so multiple tables), use a Dashboard report to
expand the amount of data to include. Dashboard reports are discussed in the Dashboards chapter.

About the BAQ and BAQ Report Datasets

A BAQ report is based on a selected existing BAQ and will include four standard datasets.
Before you create a report, you must first define the BAQ you are going to use. You can use an available BAQ
or create a new BAQ in the Business Activity Query Designer. The BAQ you use must contain the Company
column. The Company field is necessary to join the standard tables in the datasets (using the Company ID), and,
most importantly, the BAQReportParameters table. Once you have identified the BAQ for your report, you then
use the BAQ Report Designer to create a new BAQ report.
Each BAQ report contains four tables that are displayed as the report's datasets in Report Builder:
• Company – This table defines your Company ID and Company Name values, ensuring the BAQ is synchronized
with your company's data.
• RptLabels – This table is used by the Epicor application for the standard text labels which display on the
reports. This table contains all the language versions of the current report. These report labels generate the
field labels, so each field on the report can be displayed in a different language by matching the Label Name
for each item.
• BAQReportParameter – The information written to this table originates from the parameter information
entered on the report user interface (UI). This information is used for two purposes: to display the parameters
on the report, and, when designing the report, to control sorting, summary, grouping, and so on.
• BAQReportResult table – This table contains the specific data pulled from the database that matches the
query parameters.

ICE 3.0 | 10.0.700 239


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

Review a Standard BAQ Report Interface

There are several standard BAQ reports, delivered with the application, that were created using the BAQ Report
Designer program.
Use the following steps to review the form (application interface) of the standard BAQ report Rebate Contract
Transactions. Being familiar with the BAQ report interface will help you when creating a new BAQ report later
in this chapter.

1. Navigate to the Rebate Contract Transaction Report form.


Menu Path: Financial Management > Rebates, Promotions and Royalties > Reports > Rebate Contract
Transactions

2. On the Selection sheet, the Report Options section displays fields for entering report parameters. In this
example, options include Start Invoice Date, End Invoice Date, Start Transaction Date, and End
Transaction Date. These options were defined when the BAQ report was created.

3. The Filter Summary section displays four filters - Part, Product Group, Customer, and Rebate. The
available filters also were defined when the BAQ reports was created.

240 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

4. To access the Filters, select the Filter sheet.

5. On the Filter sheet, click the Part button to search for and select a part or group of parts.

6. The selected parts display in the Part List.

7. Return to the Selection sheet.

8. The Filter Summary section displays Some Selected in the text box next to the filtered field.

If you have not selected any records for filtering, the


application assumes all records are selected.

ICE 3.0 | 10.0.700 241


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

9. Use the Sort By field to choose how you want the information in the report sorted when it prints. In this
example, the report is sorted by Customer and then by Invoice Date. The available sorting criteria also were
defined when the BAQ reports was created.

10. By default, all reports contain the remaining fields for Report Style, Schedule, Archive Period, and User
Description.

11. Click the Print Preview button on the standard toolbar to display the report on your screen. PDF is the
default display for the Standard - SSRS report style.

Review BAQ Report Options for SSRS Reports

Before creating reports, review the BAQ Report Designer's BAQ Report Options for SSRS Reports.

1. Navigate to BAQ Report Designer.


Menu Path: System Management > Business Activity Queries > BAQ Report Designer

This program is not available in the Epicor Web Access.

2. From the Actions menu, select BAQ Report Options.

242 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

3. In the BAQ Report Options dialog box, you are concerned only with the settings in the SSRS Report
Options group. The Crystal Report Options group is retained for compatibility with previous application
releases.

4. SSRS Web Service URL defines an alternate directory path to the SSRS Report Builder application. By
default, the URL that launches the Report Builder is automatically pulled from the Epicor server configuration,
so typically you can leave this field blank.
However, if the path defined for the server is a "localhost" URL and you are on a different computer, you
will need to enter the complete URL path in this field (for example: http://<MachineName>/Reports). You
can get the web service URL from the SSRS Configuration Manager located on the server. After you enter
this path, selecting Actions > Design SSRS Report will open your BAQ report in Report Builder.

5. BAQ Report Template indicates the default template used to generate new base BAQ report (.rdl) files.
This file name displays for your information; you cannot edit this field .

6. Click Apply if any changes were made and then close the dialog box.

Create a BAQ Report

This example demonstrates how to create a BAQ report based on an existing BAQ, design the report layout in
SSRS Report Builder, save the report (.rdl) on the SSRS Report Server, and add the report to the application menu.
Advanced users will be able to design both BAQs and SSRS reports that address complex data reporting
requirements.

You must have access to the SSRS Reporting Services


Configuration Manager, Report Manager, and Report Builder
for your SQL Server report server. Your access to these tools
must include sufficient user role assignments to create folders
and save report files on the report server.
Your administrator can set user role assignments in the Report
Manager Folder Settings page. It is recommended that your
user account have all roles selected. This includes Browser,
Content Manager, My Reports, Publisher, and Report Builder.
Ensure that security for the root Reports folder is inherited from
Parent Security or is otherwise appropriately defined to allow
user access.

ICE 3.0 | 10.0.700 243


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

Add the New BAQ Report

In BAQ Report Designer, add and save a new report.

1. Navigate to BAQ Report Designer.


Menu Path: System Management > Business Activity Queries > BAQ Report Designer

This program is not available in the Epicor Web Access.

2. Click the Down Arrow next to the New button on the Standard toolbar; select New Report Definition.

3. Working on the Detail sheet, in the Report ID field, enter an ID for the new report. In this example, enter
CustOV.
The Report ID cannot contain any spaces. Once you enter and save a Report ID, you cannot change this
identifier. You can, however, make a copy of the report to create a new identifier.

244 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

4. Enter a Description for the report. In this example, enter BAQ Report - Customer List.

5. Click the BAQ ID button to search for and select the BAQ to use in this report. In this example, choose
zES_Customers.
If you know the name of the BAQ, you can enter it directly in the BAQ ID field.

6. The text entered in the Form Title field displays as the title of the report. In this example, enter Customers
Overview.

7. For SSRS Report, note that CustOV.rdl has been added automatically based on the value in Report ID.

8. Click Save.

9. A new combination of report data definition and report style has been created automatically for your new
BAQ Report. To review, navigate to Report Maintenance. You can leave the BAQ Report Designer open.
Menu Path: System Management > Reporting > Report Style

This program is not available in the Epicor Web Access.

10. Click ReportID and then locate and retrieve CustOV.

ICE 3.0 | 10.0.700 245


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

11. Click the Styles tab.

12. Note the following:


• Description and Report Type both indicate an SSRS report.
• Data Definition identifies the report data definition that has been created automatically for your new
report.
• Report Location is the report's location on the SSRS report server relative to the report server settings
in your Epicor ERP application server configuration.

13. Close Report Maintenance and remain in BAQ Report Designer.

246 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

Add Option Fields to the New Report

Use the BAQ Report Designer's Option Fields sheet to set up record selection criteria that users can enter as
parameters when running the report. In this example, you add fields for the state where customer is located and
for customer name.

1. In BAQ Report Designer, click the Down Arrow next to the New button; select New Option Field.

2. The Option Fields sheet displays with a line for the new option.

3. In the fields for the new option, Option Field indicates the BAQ Report column on which the option will
be based. All the columns contained within the selected BAQ appear on this list. Select Customer_State.

4. For Field Label, leave the default State/Prov.


Field Label is the text that displays next to the option field on the report form.

5. For Compare Operator, leave the default Equal to (=).

6. For Data Type, leave the default nvarchar. This value is based on the data definition of the field selected
in the option field.

ICE 3.0 | 10.0.700 247


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

7. Click the New button to add a line for another option.

8. In the line for the new option, select Customer_Name for Option Field.

9. Change the value in Field Label to Customer Name.

10. For Compare Operator, leave the default Equal to (=).

11. The Data Type field again defaults to nvarchar.

12. In the Order column, enter 1 for the Customer.Name option and enter 2 for the Customer.State option.
This sets the order in which the options fields are displayed on the report form.

13. Click Save and remain in BAQ Report Designer.

Perform an Initial Test of the New BAQ Report

In BAQ Report Designer, use the Test Report Form action to perform an initial test of the new report.
This verifies the report form and print preview functionality for the new report and enables you to obtain, from
the System Monitor, the report's TableGuid identifier that will be needed for testing the report while you are
working on the report design in Report Builder.

248 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

1. With the new report CustOV displayed on the BAQ Report Designer Details sheet, choose Actions > Test
Report Form to display the report's form.

2. On the report form, verify that the option fields that have been added to the form are present.

3. Choose Print Preview to display the report.

4. The report displays with a header layout based on the template for new SSRS reports. Note that the BAQ
that is the basis for the report is shown as is the report title that was entered when creating the report.

ICE 3.0 | 10.0.700 249


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

In the application, PDF is the default print preview format for SSRS reports, Later in the chapter, SSRS Report
Builder will be used to add data fields to this starting point.

5. Close the report and report form, launch the application's System Monitor. Navigate to the Reports sheet
and locate the line for your report.

6. The TableGuid identifier is in the FileName column. You may need to scroll to the far right end of the grid
to locate the column.
The value will be similar to this example. Record , for later use, the actual value you are seeing. You will not
need the REPORT DATABASE: portion.

7. Close or minimize the System Monitor and remain in the BAQ Report Designer.

250 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

Design the BAQ Report Layout in Report Builder

Use SSRS Report Builder to design the new report's data layout.

1. With the new report CustOV displayed on the BAQ Report Designer Details sheet, choose Actions > Design
SSRS Report.

You may be prompted for valid credentials for accessing


the SSRS report server before Report Builder can run.

2. Report Builder opens and displays the report layout for editing and design. For a new report, the report
header layout stored in the template file BAQReport.rdl is applied automatically.

ICE 3.0 | 10.0.700 251


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

3. In Report Builder, select the Insert tab and then select Table > Table Wizard to run the New Table or
Matrix wizard.

4. On the wizard's Choose a dataset screen, choose the dataset that will be the source of the fields that you
add to the report design. For this example, choose BAQReportResult, which is a one of the standard
datasets associated with a BAQ and BAQ report. Click Next.

5. Starting in the Available Fields list on the Arrange Fields screen, move fields into the report layout. For
this example, move the following fields and then click Next.
• Move Customer_Name, SalesRep_Name, Customer_City, Customer_State, and Customer_Country
to Row Groups.

252 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

• Move Customer_CustID and Customer CreditHold to Values.

6. On the Choose the Layout screen, enable or disable options for showing totals and grouped data. For this
example, clear all options and click Next.

ICE 3.0 | 10.0.700 253


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

7. On the Choose a Style screen, choose a style that controls fonts and color. For this example, accept the
default and click Finish to close the wizard.

8. The report layout now includes the selected data fields and choices for layout and style.

9. Click the Report Builder button and then click Save.

254 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

Optionally, you can click the Report Builder button again and choose Open to review the report's folder
location on the SSRS report server.

10. To test your design in Report Builder, verify that you are on the Home tab and click Run.

11. At the top of the report page, enter the TableGuid identifier obtained from the application System Monitor
earlier in the chapter and click View Report.
The report runs in HTML format, as it would if it was run from SQL Server Report Manager.

12. When done, click Design to return to the Home tab.

ICE 3.0 | 10.0.700 255


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

13. In Report Builder, you can continue to make adjustments to the report design. As you work, be sure to save
and retest the report as described in steps 9-12. When you are satisfied with the report, click the Report
Builder button and choose Exit Report Builder.

14. Back in BAQ Report Designer, test the report to verify it in the application. Click Actions > Test Report
Form to open the report's form.

15. Click Print Preview to display the report with your design work. Leave the Report Options fields blank
for this test.

256 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

16. The report, including all customers, displays in PDF format.

17. Close the report and test the report options added to the form earlier in the chapter. In the State/Prov
field, enter MN and click Print Preview.

ICE 3.0 | 10.0.700 257


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

18. The report displays with the list limited to customers located in Minnesota. Close the report and report form
when done, but remain in the application.

Add the BAQ Report to the Epicor ERP Application

Add the BAQ report to the menu system in the Epicor ERP application.
For this example, the BAQ report is added to the application menu structure under Sales Management. You can
use locations and values that match the report you are working with.

1. Open the Menu Maintenance program.

258 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

Menu Path: System Setup > Security Maintenance > Menu Maintenance

This program is not available in the Epicor Web Access.

2. On the Menu Maintenance tree, navigate to: Main Menu > Sales Management > Order Management
> Reports. Verify Reports is highlighted.

3. click the Down Arrow next to the New button; select New Menu.

4. On the Detail sheet for the new menu item, enter a value in the Menu ID field. UDXXX01 is entered for
this example.

It is an important standard practice to use a UD prefix


when adding a menu ID. UD stands for User Defined. It

ICE 3.0 | 10.0.700 259


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

is further recommended that you use UDXXX as shown


in this example and replace XXX with your initials.

5. In the Name field, enter Customers Overview to match the report title.

6. Enter a value in the Order Sequence field. For this example, 997 is entered which will place the new menu
item at or near the end of the current list of menu items.

7. Click the Program Type drop-down menu and select BAQ Report.

8. Click Report and then search for and choose the BAQ report. In this example, choose CustOV.

9. Click Save and click OK if you get a security update message.

10. After giving the application about 10 minutes for a scheduled update (or after logging out and back in to
force the update), open the Customers Overview report form.

260 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

Menu Path: Sales Management > Order Management > Reports > Customers Overview

11. To display the report, click Print Preview.

12. The report displays in PDF format, as it has earlier in the chapter during report development and testing.

Customize a BAQ Report

The Epicor ERP application customization functionality enables you to add fields to form, including user-defined
fields. Within the customization itself, you can create form and row rules which run whenever users enter data
or perform other actions which activate these rules. These rules in turn launch custom events which you define
on the customization.

ICE 3.0 | 10.0.700 261


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

If you have customization rights, you have full access to all the customization tools available in the Epicor
application. Leverage this functionality to make the BAQ report an efficient and valuable reporting tool for any
business flow within your organization.
The following procedure provides an overview of the workflow for enabling and working with customization
tools.

1. Turn on Developer Mode. From the application Home Page, go to the Settings Page, select General
Options and then select Developer Mode.

2. Navigate to and open the BAQ report. In this example, navigate to Sales Management > Order
Management > Reports > Customers Overview to open the BAQ report created earlier in the chapter.
With Developer Mode enabled, the Select Customization window displays. All existing customizations for
the BAQ report display. For this example, there are no existing customizations.

3. To create a customization from the original report form, select the Base Only check box and click OK.

262 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

4. The BAQ report form displays. To customize this form, click the Tools menu and select Customization.

5. The Customization Tools Dialog displays on top of the report form window. Notice also that a grid now
overlays on top of the report form.

6. You can now add fields, create rules, and modify the code for the report program. You access all of this
functionality within the various tabs and the Tools menu on the Customization Tools Dialog.

ICE 3.0 | 10.0.700 263


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

To learn about the customization tools, review the Epicor ICE User Experience and Customization Guide.
Multiple chapters within this book describe all of the customization tools in detail.

7. After you finish customizing the form, click Save on the Customization Tools Dialog.

8. In the Customization Save Dialog enter a unique Name for the customization. For this example, enter
Customers List Custom01.

9. Enter a Description that helps identify the purpose for the customized BAQ report. For this example, enter
Customization Demo.

10. Click Save. Optionally enter comments when prompted and click OK. Exit Customization Tools Dialog.

264 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide BAQ Report Designer | Chapter 3

11. Turn off Developer Mode. From the application Home Page, go to the Settings Page, select General
Options and then clear Developer Mode.

12. You now can add the customization to the application menu. Open Menu Maintenance
Menu Path: System Setup > System Maintenance > Menu Maintenance

This program is not available in the Epicor Web Access.

In the Menu Maintenance tree, select the BAQ report for which you have created a customization. In this
example, navigate to and select Customers Overview.

13. On the Detail sheet, select the customization from the Customization drop-down list.

14. Click Save on the Standard toolbar.

ICE 3.0 | 10.0.700 265


Chapter 3 | BAQ Report Designer Epicor ICE 3.0 Tools User Guide

Your customized form now is applied when the report is selected from the application menu. Users within the
current company will now use this custom version of the BAQ report.

266 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

Chapter 4: Searches

Search programs are available throughout the application. The standard searching tools enable you to easily locate
and organize records using filters and specific criteria. In addition to the standard searches, you can also create your
own specific searches to quickly and precisely locate the information you need, where and when you need it.
Tools are available to modify search programs. Quick Searches are customized search programs you can create from
Business Activity Queries (BAQs) that pull in unique search results. BAQ Searches leverage BAQs to locate search results.
Advanced Searches are set up within a smart client dashboard; they contain specific fields that you can use for defining
the search results. Use Data Tag Searches to find records grouped together through a specific data tag definition
assigned to each record. Create Named Searches that use the default options you want when the search program is
launched. The Enterprise Search is a separate search application you can use to retrieve structured content - like sales
orders, jobs, AR invoices - from your Epicor database.
This chapter explores how you can create and use these search programs, so your users can more efficiently locate the
information they need throughout the application.

Default Search Interface

You launch search programs by clicking the search buttons found on the sheets within the application. Typically,
these buttons are labeled with the primary record queried through the search program. You can also launch
some search programs by clicking a button on the Standard toolbar.

1. In this example, the Sales Order button for the Sales Order Entry > Summary sheet displays.

2. You can also search for sales orders by clicking the Binoculars button on the Standard toolbar.

When you click the search button, the record’s search program appears. In this example, clicking the Sales Order
button displays the Sales Order Search program.

ICE 3.0 | 10.0.700 267


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Default Features

Default features on each search window:

1. The Basic tab displays all the default options within the search program. These items are the primary fields
you can use to limit the search results.

2. Use the Quick Search tab to find and select a quick search program.

3. The BAQ tab contains a list of available Business Activity Queries you can use to generate the search results.

4. The Advanced tab contains a list of available Advanced Search options created through the Dashboard
program.

5. The Data Tags tab contains a free-form field where you can enter one or more data tags applied to the
records for which you are searching.

6. Use the Named Search drop-down list to select a named search option. When you select a named search,
either the Basic tab’s search options populate with pre-defined values, or a BAQ Search or Quick Search
program displays. Click the Named Search button to create Named Searches.

Named Searches, Quick Searches, BAQ Searches,


Advanced Searches, and Data Tag Searches are explored
later in this chapter.

7. To begin your search, click the Search button.

268 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

8. The records display in the Search Results grid.

9. To pull in multiple records within the current program, highlight two or more records on the grid and then
click OK.

10. To pull in the first 100 records, click the Select 1 - 100 button.

11. To display the next set of records in the grid, click the Next 100 button.

12. Click the New Search button to clear the results and start a new search.

13. To save the current search settings but remove the current search results, click the Clear Results button.

14. You can also limit how many rows are returned within the search results. To do this, click the Options
button.

15. The Search Options window displays.

16. If you want all the available rows to display within the Search Results, select the Return All Rows check
box.

17. To limit how many rows display within the Search Results, enter a value within the Maximum Rows
Returned field. In this example, this search program only displays the first 100 records in the Search Results
grid.

18. When you finish defining the search options, click OK.

ICE 3.0 | 10.0.700 269


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Hot Key Searches

To open the search program on any field where a search is available, press <Ctrl> + S on your keyboard. If data
is available in the field, the search program displays with this specific data in the Starting At field and then returns
search results based on that value. If the field is blank, the search form will display, but the search results do not
return automatically.
To perform a hot key search:

1. Place your cursor in a field that has a search program and enter the data you want to use to retrieve search
results; press <Ctrl> + S on your keyboard.

270 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

2. The search program displays.

3. The data entered into the field appears in the Starting At field.

4. The search is run and the results display in the Search Results grid.

These features are available within each search program. The rest of this chapter explains how you can modify
and personalize these search programs.

Quick Searches

The Quick Search functionality is a dynamic tool you use to create configurable searches you can then use within
your own user account or share publicly for other user accounts - improving the productivity of searches.
A quick search can be the default search program that displays when a search is launched either from the Standard
toolbar’s Search button or from a specific field’s search button. It can also be the primary search that displays
with other key programs near the top of a context menu. All quick searches appear on the Quick Searches tab
within basic search programs that query similar data. Quick searches can also be used with the Named Search
feature, so you can launch a quick search immediately.

ICE 3.0 | 10.0.700 271


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Create a Quick Search

The Quick Search functionality is a dynamic tool you use to create configurable searches you can then use within
your own user account or share publicly for other user accounts - improving the productivity of searches.

Activate Quick Search Functionality

You indicate which users can create quick searches through User Account Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

To give a specific user Quick Search rights:

1. Select a specific user on the Detail sheet.

2. Click the Options tab.

3. Within the Tools Options group box, select the Can Maintain Quick Search check box.

4. Select the Can Maintain Enterprise Quick Search check box to indicate this user can create quick searches
using the Enterprise Search feature. This functionality is explored later in this chapter.

5. Click Save on the Standard toolbar.

This user can now create and update quick searches throughout the application.

272 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

Create a Quick Search – Detail Sheet

You create quick searches through Quick Search Maintenance. To launch this program, right-click any field used
for searches and select Quick Search Entry from the context menu. In this example, you create a quick search for
Serial Tracked Parts.

1. First, right-click within the Part field; a context menu displays.

2. Select Quick Search Entry.

ICE 3.0 | 10.0.700 273


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

3. The Quick Search Maintenance program displays.

4. To create a new search, click the New button on the Standard toolbar.

5. Enter a Quick Search ID for the quick search. This identifier displays on the Quick Search tab found within
search programs that query similar data. In this example, you enter SerialTracked.

6. Enter a Description for the quick search. This defines the concise explanation for the quick search; it also
displays on Quick Search tabs.

7. Now click the BAQ button to find and select the Business Activity Query used as the base query for the
quick search. You can use the system BAQs for the search. You can also use any custom BAQs you create.

8. If you want to create a new BAQ or edit an existing BAQ, select Business Activity Query from the Actions
menu.

To learn how to create Business Activity Queries, refer to


the Business Activity Queries chapter. To learn how to use
a Business Activity Query as a search option, refer to the
BAQ Search section later in this chapter.

9. Select the BAQ column used to return the search results from the Return Column list. All the columns from
the selected BAQ display on the list. In this example, you select the Part.PartNum option.

10. The Context Key (Like) field indicates whether this quick search is linked to any other search input fields
that share the same LIKE property. If you are creating a quick search against an input field that does not
share a LIKE property with another field, the Context Key (Like) field is blank.

274 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

11. The Called From field defines the program from which this quick search pulls its data. In this example, the
quick search pulls its data from the Erp.UI.PartEntry program (form).

12. The Created by field displays the name of the user that created the quick search.

13. If you want this quick search available for all users within the company, select the Shared check box.

14. The All Occurrences check box defines where this quick search is used. When selected, the check box
indicates this quick search is available for all searches that share its Context Key (Like) property. When clear
however, the check box indicates this quick search is only available from the primary program that launches,
or calls, this quick search.
For example, you create a quick search that has Part.PartNum as its Context Key (Like) value. If you do
not select the All Occurrences check box, this quick search is only available from within Part Maintenance.
If you select this check box, however, this quick search is available when users search for parts within Sales
Order Entry, Opportunity/Quote Entry, Job Entry, and anywhere else users search for a part number value.

15. Select the Base Default check box to indicate this quick search is the primary search program for the current
search input field. When users click the Search button on the Standard toolbar or a search button next to
a field, this quick search program displays instead of the original search program.

16. Select the Context Default check box to indicate this quick search appears with the main options at the
top of the search input field’s context menu.

17. You can also use the Suppress Base check box to indicate whether the base search form is available to users.
When selected, the Base Search button does not appear on the quick search window. Users are then
prevented from displaying the original search form. To override this setting, users can press the <Shift> key
while clicking the search button; the base search form will launch instead. Suppress Base checkbox is
enabled when the Base Default is checked.

18. Select the Validation Only check box to utilize the quick search as a data entry validation tool. The
Validation Only Quick Search is used to verify, while you enter data, the new value entered into the
Context Key (Like) Data Column. When this change is sent to the database, the new value is compared
against the results of the Validation Only Quick Search. If the new value is found within the quick search
results, the data is entered into the database. If the new value is not found in the quick search results,
however, then a Quick Search Validation Exception message displays and you are not able to enter this value
into the data. For more information about creating quick search criteria, read the next Create a Quick Search
– Criteria section.

This functionality only works when the quick search criteria


do not use any Prompt Type values. If one of the criteria
values is Prompt Type, the Validation Only check box is
not available.

For example, you want to create a customization that only displays Cash Sales for customers from a specific
American state – Minnesota. A system Business Activity Query (BAQ) is available called zCustomer01 that
searches for these records. You decide to use a Validation Only quick search against this BAQ to validate
the customer data can only be pulled from Minnesota records. You create a quick search that has one
criterion: Customer. State Equals Constant “MN”. The Validation Only Quick Search then makes sure that
all the entered Cash Sales customer records have Minnesota addresses.

19. When you finish defining the main attributes of the quick search, click Save.

ICE 3.0 | 10.0.700 275


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Create a Quick Search – Criteria

When you finish defining the main details of your quick search, you next need to indicate what search input
fields display on the quick search form. To do this, you set up criteria for each field.

1. Navigate to the Criteria > Detail sheet.

2. For this example, the first criterion you create is a check box; use this check box to find serial tracked parts.
To do this, click the Down Arrow next to the New button.

3. Select New Quick Search Criteria.

4. Select the Criteria Column you need. This column from the Business Activity Query is used for the search
input field. All the columns from the BAQ selected on the Detail sheet display on this list. In this example,
you select the Part.TrackSerialNum column.

5. Enter a Caption for the search field. The text you enter here displays on the quick search form. In this
example, you enter Serial Tracked.

6. The Condition value defines how the search input field evaluates the value the user enters. The search
results that display resolve against the condition you select from this list. For this example, you select the =
(Equal To) value. Available options:
• = (Equal To) – This condition returns a search result if it is the same as the search value. This condition
also ignores trailing blanks, so “abc” is equal to “abc “. Typically you use this condition instead of the
MATCHES condition, as this condition has better performance.
• < > (Not Equal To) – This condition returns a search result if the first expression is not equal to the second
expression.
• > (Greater Than) – This condition returns a search result if the first expression is greater than the second
expression.
• < (Less Than) – This condition returns a search result if the first expression is less than the second expression
• >= (Greater Than or Equal To) – This condition returns a search result if the first expression is greater
than or equal to the second expression. This condition has better performance than the BEGINS condition.

276 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

• <= (Less Than or Equal To) – This condition returns a search result if the first expression is less than or
equal to the second expression.
• BEGINS (Starts with the entered value) – This condition is useful in a WHERE phrase that specifies which
records should be retrieved from within a block of records. This condition is different from the MATCHES
condition, which requires all records be reviewed by the search query.
• MATCHES (Is the same as the entered value) – A character expression you use to search on character
strings. This can include a constant, field name, variable name, or expression whose value is a character.
Note that the character expression cannot have any trailing blanks on the end of it; for example, “abc”
does not match “abc ”.
When the Condition Value is active, users can enter asterisks (*) as wild card search values; this indicates
that any group of characters works for the search results – including a null group of characters. A period (
. ) can also be used to indicate that any single character can be used in that position. If you want these
characters to be literal values instead of wildcard values, enter a tilde ( ~ ) value. For example, “~*a~.b” is
a match for “*a.b”. Enter a double tilde ( ~ ~ ) to make the match pattern a literal quoted string in a
procedure file.

The application uses sort code values to prioritize how it


gathers search results. All uppercase letters sort before
all lowercase letters, so the lowercase records are greater
than the uppercase. For example, a is greater than Z, but
it is less than b.

7. Use the Criteria Type drop-down list to define the input field type that displays on the quick search.
Depending on the criteria type, a different field displays on the quick search form. For this example, you
select the Prompt type. Available options:
• Prompt - Users directly enter search input values through this field. These values are then calculated
against the Condition value to generate the search results. If you use a Prompt Type on a quick search,
it cannot be used as a data entry validation tool. The Validation Only check box is not available on the
Detail sheet.
• Constant - Users define a fixed value for the current criterion through this field. The quick search then
uses this fixed value to gather the search results. For example, you create a criterion that uses a constant
value of Customer.State = “MN”. This criterion causes the quick search to only find and select customer
records that have Minnesota addresses.
• Value List - This type is a field that displays a drop-down list. When you select this type, you must then
create the values that display on this list using Quick Search Value Items; these items are explored later
in this section.
• Radio Set – Use this type to create a set of radio buttons for the quick search. When you select this
type, you define the radio buttons using Quick Search Value Items; these items are explored later in this
section.

8. The Criteria Value list defines the return value used to filter the search results. An optional value, this list
is active when you select the Constant option from the Criteria Type list. All the columns found on the BAQ
that were selected on the Detail sheet display; select the value you need.

9. If you want this search input field to ignore null records, select the Filter On Null check box. If you want
null records to display, however, clear this check box; only records that have a blank field value display within
the quick search results. For example, if the criterion searches by Customer.State and you clear this check
box, only customer records that have blank State fields appear in the search results.

10. When you finish creating a search input field, click Save on the Standard toolbar.

ICE 3.0 | 10.0.700 277


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

11. The next search input field you create is a series of radio buttons that you use to filter the quick search
results on Manufactured, Purchased, and Sales Kit part types. To create these radio buttons, once again,
click the Down Arrow next to the New button and select New Quick Search Criteria.

12. For this Criteria Column, you select the Part.TypeCode value.

13. Enter the Caption you want to display. In this example, you enter Part Type.

14. You want the search results to display the part records that match each radio button’s values. From the
Condition drop-down list, you select the = (Equal To) value.

15. For the Criteria Type, you select the Radio Set option.

16. You next must define the radio buttons that display on the search form. To do this, click the Down Arrow
next to the New button and select New Quick Search Value Item.

17. The Value Items grid displays. Enter the Display Member you want to appear next to the radio button. In
this example, you enter manufactured.

18. Now enter the Value Member used against the records to filter the search results. In this example,
manufactured parts use a value member of M, so you enter this value in this field.

To find out the value members used by the database,


launch the Data Dictionary. To learn how to use this
program, review Chapter 4: Business Activity Queries

19. To create a new row, press the <Tab> button on your keyboard; add all the radio buttons you need. In this
example, two other part types are available, Purchased (P is their value member) and Sales Kit (K is their
value member).

20. When you finish, click Save.

278 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

21. You have one more search input field to create; a field that limits the results directly by part number. Once
again, click the Down Arrow next to the New button and select New Quick Search Criteria.

22. Because this search input field filters the results based on part number, you select Part.PartNum for the
field’s Criteria Column.

23. Enter a Caption for this field. For this search input field, you enter Part Begins With for the caption.

24. Select a Condition for this search field. In this example, you select BEGINS.

25. Now select a Criteria Type. Because users directly enter values in this field, you select the Prompt type.

26. Click Save.

You have now finished creating the search input fields that display on this quick search form.

ICE 3.0 | 10.0.700 279


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Test a Quick Search

Always test your quick search to make sure it is working properly. To do this, use a command from the Actions
menu.

1. Click the Actions menu.

2. Select Test Quick Search.

3. Your quick search program displays. Use the search input fields to verify the quick search works correctly.

280 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

Display a Quick Search

Users have a number of ways to launch your quick search. You can launch quick searches from within a related
search program, from a context menu, or directly through a search button. This section explores these various
launch methods.

Quick Search Tab

All quick searches that query data related to a standard search program appear on a search’s Quick Search tab.
If multiple quick search options are available, users can then select the quick search they want to display.

1. Launch the search program by clicking its specific search button. In this example, you click the Part
Maintenance button.

2. The search program displays. In this example, it is the Part Search program.

ICE 3.0 | 10.0.700 281


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

3. Click the Quick Search tab.

4. All the quick searches associated with the current search program display within the Quick Search grid.

5. Highlight the quick search you want to use. In this example, you select the SerialTracked quick search.

6. Click the Search button.

7. The quick search program displays.

Context Menu Options

Quick searches can also display in two locations on a field’s context menu. They can launch from the default list
that displays at the top of a context menu; they can also display on a Quick Searches sub-menu.
To place a quick search on the default list:

1. Return to Quick Search Maintenance.

2. Click the Quick Search ID button to find and select the quick search you wish to modify.

3. Select the quick search’s Context Default check box.

4. Click Save on the Standard toolbar.

282 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

5. Now return to the main program. In this example, you return to Part Maintenance.

6. Right-click within the field linked to the quick search program. In this example, you right-click within the
Part field.

7. The Context Menu displays.

8. The quick search appears within the list of the default Open With programs. Select this command and the
quick search displays. All the default Open With programs appear in alphabetical order.

ICE 3.0 | 10.0.700 283


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Default Search Program

You can also set up the quick search to become the default search program. This causes your quick search to
display instead of the original search program.

1. Return to Quick Search Maintenance.

2. Click the Quick Search ID button. Find and select the quick search you wish to modify.

3. Select the quick search's Base Default check box.

4. Click Save on the Standard toolbar.

5. Return to the main program. In this example, you return to Part Maintenance.

284 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

6. Click the Part button.

7. The quick search displays. In this example, the Serial Tracked Parts search program displays.

You can also use a keyboard shortcut to display a quick


search selected as the Base Default for a field. To do this,
place your cursor inside the field, then press <Ctrl> + S
on your keyboard. The default search program displays.

Business Activity Query Searches

Business Activity Queries (BAQ) are used throughout the application to search for related data. You create BAQ
Searches in the Business Activity Query program by selecting “Like” columns. When fields in your query are
selected as “Like” Columns and this same field is used for searching in various programs, the BAQ becomes an
option within the search program.
You can indicate that data from your query is available to all users searching for related data on the BAQ Search
sheet. You select fields from the Available “Like” Columns list and move them into the BAQ “Like” Columns list.
Available features:
• The Available “Like” Columns list contains all the fields selected for your query on the Display sheet.
• The BAQ “Like” Columns lists the items you move over from the Available “Like” Columns area. Users
searching for information similar to the data contained in the BAQ “Like” items can access your BAQ Search.
Many standard search programs throughout the application contain a BAQ sheet; this sheet makes your query
available when users search for related data.

You cannot use system queries (those that begin with the letter
z) for BAQ Searches because you cannot modify them.
However, you can copy a system query and then select “Like”
columns to be used on the BAQ Search sheet. Refer to the
Modify an Existing Query section in the Business Activity Queries
chapter, to learn how to copy and modify an existing BAQ.

ICE 3.0 | 10.0.700 285


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Enable BAQ Search Fields

In the previous chapter, you created a new query called EPIC03-SalesInfo that displays sales order information.
You decide you want users to access this query from the Customer Maintenance and Sales Order Entry programs
so they can look up data related to customer and sales order numbers.
Menu Path: System Management > Business Activity Queries > Business Activity Query

This program is not available in the Epicor Web Access.

To enable fields in a query for use in BAQ Searches:

1. In the Query ID field, enter the query. In this example, you enter EPIC03-SalesInfo.

2. Verify the Shared check box is selected. The query must be shared in order for your users to access this
BAQ from a search form.

3. Click the BAQ Search tab.

4. Select the “like” columns used for the BAQ search. In this example, you select the Customer.CustID field in
the Available “Like” Columns list.

286 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

5. Click the Right Blue Arrow button.

6. The selected field moves to the BAQ Search “Like” Columns list.

7. In this example, you also select the OrderHed.OrderNum field and move it to the BAQ Search “Like”
Columns.

8. Click the Save button on the Standard toolbar to save the query.

Use a BAQ Search

Once the BAQ Search information is saved, you can now leverage this BAQ in searches that use the Customer
ID and the Sales Order Number fields. For example, this query is now available when you search for sales orders
in Sales Order Entry and when you search for Customer IDs within Customer Maintenance. During this example,
you launch the BAQ Search within 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

ICE 3.0 | 10.0.700 287


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

1. Click the Sales Order button to launch the Sales Order Search form.

2. Select the BAQ sheet.

3. Select CustomerOrders.

4. Click the Search button.

5. The Search Results grid displays your query data.

288 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

Advanced Searches

An Advanced Search is a dashboard you access to search for related data from a standard search window.
The Advanced Search functionality is designed around the concept of “Like” fields. Similar to the “Like” fields
used in a BAQ Search, the Advanced Search also uses “Like” fields; however, the data displays as a Dashboard
and opens in a separate window. You can then use the dashboard to search for specific data, select a record,
and pull the record back to the original program from which you were searching.
Advanced Searches are available wherever you can launch a search window. You launch these programs either
from a search button or from a context menu.

This section of the guide reviews how to access and use an


Advanced Search. Refer to the Dashboards chapter for
directions on how to create an Advanced Search.

Access and Use an Advanced Search

Advanced Searches are accessed through the search button in many programs or through a field’s context menu.
In this example, the Sales Order Entry program is used to demonstrate how you can access an advanced search.
Menu Path: Sales Management > Order Management > General Operations > Order Entry
The CRM menu path is: Customer Relationship Management > Order Management > General Operations >
Order Entry

1. Click the Sales Order button.

2. Select the Advanced sheet in the Sales Order Search window.

3. Notice a dashboard has been set up as an Advanced Search.

4. Select FulfillmentWBSearch and click the Search button.

5. The Fulfillment Workbench Search dashboard opens in a new window on your workstation.

6. You can now use the dashboard to search for specific records using the criteria available on the window.
In this example, you want to search for sales orders for the Distribution Product Group. You select Distribution
from this list.

7. Click the Search button to retrieve the records that match the criteria.

8. The results display in the Open Sales Order Release Search grid.

9. Once you find the record for which you are searching, select it in the grid.

10. Click OK.

11. The record selected in the dashboard displays in Sales Order Entry and you can now modify the sales order
as you need.

12. You can also right-click a field to access a Search (and any defined advanced searches) from the context
menu.

ICE 3.0 | 10.0.700 289


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Named Searches

Use a Named Search to create a series of pre-set search options. In the Sales Order Search program, for example,
you can create a Named Search that only pulls in open orders created for Bill To customers. You could also create
a Named Search that automatically launches a BAQ Search or a Quick Search.
You leverage named searches in several ways. You can launch these searches manually from the Named Search
drop-down list within each search program. A specific Named Search option can be the default for the search
program; each time you launch the search, the Named Search options display. You can also set up Named
Searches to automatically populate data within either the search program or its parent program.

Create a Named Search

To create a named search:

1. Launch the Sales Order Search program.

2. Click the Named Search button.

290 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

3. The Named Search Options window displays.

4. Navigate to the Detail > Defaults sheet.

5. Click the New button on the Standard toolbar.

6. Enter a Named Search ID for your new named search. In this example, you want to create a search that
pulls open sales orders and sorts them by their Purchase Order Numbers. Enter OPEN in this field.

7. Enter the Description of the named search. In this example, you enter Open Sales Orders.

8. The Application field displays the program for which you are creating the named search. In this example,
the Erp.UI.SalesOrderEntry.dll file displays.

9. The Search Form field displays the name of the search program being modified. In this example, Sales Order
Search displays.

10. Select the Search Type for this named search. Available options:
• Basic Search – Use this search type to modify the default values on the search program’s Basic tab.
When you select this option, the search form’s Basic tab is shown.
• BAQ Search – Use this search type to select a Business Activity Query to populate the named search.
To learn how to create these search programs, review the BAQ Searches section found previously in this
chapter.
• Quick Search – Use this search type to select a Quick Search that populates the named search. To learn
how to create these search programs, review the Quick Searches section found previously in this chapter.

ICE 3.0 | 10.0.700 291


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

11. If you select either the BAQ Search or Quick Search type option, the Search Using drop-down list displays.
This list displays all the BAQs or Quick Searches available for this search program. Select the search option
you want from the list.

12. For this example, however, you are defining options for the Basic Search type.

13. When you select this Search Type, the Basic tab from the current search program displays.

14. Enter the default values you want for this named search. In this example, you want the results sorted by
purchase order, so from the Sort By field, you select PO Number. You also want only open orders created
for sold to customers to display; these business entities are the customers that purchased the goods. Bill To
customers are the business entities who pay for the goods.

15. Click Save.

Each search program has different options on its Basic


tab. These Basic tab options only display for you as an
example.

292 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

Named Search Details

You now can select several options for the named search. These options affect how the named search runs when
it activates. To define these options:

1. Click the Detail > Options tab.

2. If you want this named search to be the default for the current search program, select the Default check
box.

3. When the Default check box is selected, the Auto Execute check box becomes available. Selecting this
check box causes the search program to automatically run when the main program launches. The search
query also populates the Search Results grid.

4. When the Auto Execute check box is selected, the Unpin Criteria Sheet check box becomes available.
Selecting this check box causes the main search sheet to automatically hide; only the populated Search
Results grid displays.

5. When the Return All Rows check box is selected, the Search Results grid displays all the data that matches
the options within the named search.

6. If you clear the Return All Rows check box, however, the Maximum Rows Returned field becomes available.
Enter the highest number of rows you want to display within the Search Results grid. In this example, this
named search displays a maximum of 1,000 records (rows).

7. Select the Single Value Auto Select check box to indicate that if the search program only locates one
record, this record automatically populates within the maintenance or entry program.

8. When you finish defining your options, click Save on the Standard toolbar.

9. Close the Named Search Options window.

ICE 3.0 | 10.0.700 293


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

10. You can now see this search program in action. Click the Sales Order button.

11. The Sales Order Search window appears, using the named search options you selected. Notice in this
example, the search program automatically populates the Search Results grid with open orders, sorting
them by PO Number.

12. It also hides the Search program’s main sheet; these options are now a tab at the top of this window.

Each time you launch this search program, it displays using these options.

Named Searches – Auto Populate Data

You can also personalize each program to automatically load in all the records selected through a named search.
You can then immediately populate a maintenance or entry program with the data you want.
To personalize a program to do this. In this example, you use Sales Order Entry:

1. From the Tools menu, select Options.

294 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

2. The Options window displays.

3. Notice the As the Form Opens group box. The options in this group box define some actions that run each
time you launch the program.

4. Select the Auto Populate Data radio button. This indicates you use a named search to automatically
populate the current program with records.

5. The drop-down list below the Auto Populate Data radio button becomes active. All the named searches you
have created for this program display on this list. In this example, you select the OPEN named search.

6. Click OK.

7. Now close and reopen the Sales Order Entry program you just personalized.

ICE 3.0 | 10.0.700 295


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

8. Now each time you launch this program, all the open sales orders automatically populate within the program.
You can use the Navigation toolbar to find and select the order you need.

Named Searches – Auto Load Search

You can define a similar default action using the Auto Load Search option. You also set up this value within the
Options window.

1. From the Tools menu, select Options.

2. The Options window displays.

3. Select the Auto Load Search radio button. This indicates you want the search program to automatically
display each time you launch the program.

4. The drop-down list below the Auto Load Search radio button becomes active. All the named searches you
have created for this program display on this list. In this example, you select the OPEN named search.

5. Click OK.

296 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

6. Close and reopen the Sales Order Entry program you just personalized.

7. Now each time you launch this program, the Sales Order Search program automatically displays.

8. Notice that, by default, the named search’s options display within the Basic tab.

Override Search Options

You can always restore the original search program. To do this, press the <Shift> button on your keyboard and
then launch the search program. The original search program appears – displaying its Basic tab. You can then
select any Named Search, BAQ Search, Quick Search, or Advanced Search created for this search program.

Data Tag Searches

Use Data Tag Searches to find and select records grouped together by private or shared tags. The tags are
unstructured text values that provide a way to associate otherwise unrelated records so that you or other users
can search for them. For example, you may have a group of customers you want to review on a regular basis.
You can create a private data tag for your important customers called “XXXImportant” (where “XXX” is your
initials) and use the Data Tag search from Customer Maintenance to retrieve all the records at the same time.
Or, you might want to group a number of sales orders for review by someone else. You can apply a public data
tag called OrderReview which a sales manager can use from Sales Order Entry.

ICE 3.0 | 10.0.700 297


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Private data tags are associated with your user account. Other users cannot retrieve records using your private
tags and likewise they cannot see or edit them. Public data tags can be viewed and used in Data Tag searches
by all users. You can add as many data tags as needed to a record, each separated by a space. Because the tags
are space delimited, however, you cannot include a space as part of a data tag.

Add Data Tags to a Record

You can add data tags to any record throughout all the programs in the application. In this example, the Customer
Maintenance program is used to demonstrate how you can add data tags to a record.
Menu Path: Sales Management > Order Management > Setup > Customer
The CRM menu path is: Customer Relationship Management > Order Management > Setup > Customer

1. Click the Customer search button and retrieve one or more records.

2. Right-click the main field; from the context menu, select Tag Record.

3. The DataTags window displays.

298 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

4. To add a private data tag—one for your use only—enter the data tag value into the My Tags field. If other
tags are already in the field, add a space and then the new tag.

5. To add a shared data tag—one that can be used by others—enter the data tag value into the Shared
Tags field.

6. Click OK.

7. You return to the Customer Maintenance window. You do not need to save the record for the tag to be
in effect.

ICE 3.0 | 10.0.700 299


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Add Data Tags to Records in a Grid

To tag records in a grid:

1. To add a tag to some, but not all, of the records in a grid, select one or more records. You can use the
Ctrl key with your left mouse button to specifically select more than one row.

2. Right-click one of the selected rows and select Tag Selected.

3. Optionally, you can select Tag All.

4. The DataTags window displays.

5. Enter one or more data tags, either private or shared, as you need.

300 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

6. Click OK.

Perform a Data Tag Search

Once data tags are added to records, you can perform a Data Tag search.

1. Click the Customer button.

2. The Customer Search displays.

3. Click the Data Tags tab.

4. In the Data Tags field, enter one or more tags. To search using multiple tags, separate each one with a
space or a line return:
• Space - The search assumes the “AND” condition between the tags. The search results will only display
records that contain all of the data tags.

ICE 3.0 | 10.0.700 301


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

• Line return - The search assumes the “OR” condition between the tags. The results will display records
that contain at least one of the listed tags.

5. Click Search.

6. The Search Results grid displays all records where either a private tag or a shared tag matches the search
criteria.

Data Tags and BPM Directives

Business Process Management method directives and data directives can leverage data tags to create custom
application functionality. You can define a condition statement that checks for the presence of a data tag on a
record. This condition statement can then be used as part of a directive that sends you an e-mail when a record
you tagged is modified. Also, actions can be used to add one or more data tags to a new record or remove data
tags from an existing record.
Adding a data tag to a record means that a previously untagged record would now display in your Data Tag
search results after it has been updated. For more information about BPM conditions and actions you can use
with the data tagging feature, review the Conditions and Actions – The Complete List section in Chapter 11:
Business Process Management.

Data Tag Maintenance

Use Data Tag Maintenance to view and manage the list of data tags used throughout the application. With this
program, you can search for, view, and optionally purge data tags.
To use Data Tag Maintenance:
Menu Path: System Management > Purge/Cleanup Routines > Data Tag Maintenance

302 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

1. Click the Code button.

2. The Search Form displays. You can enter values into one or more of the Basic Search criteria fields to limit
the number of results.

3. Enter a TableName to limit the search for data tags created against a specific table. You must know the
table name. The search will not return partial matches.

4. Enter the name of a Tag if you want to search for a specific data tag. You must know the tag name. The
search will not return partial matches.

5. Select a Type to search for only private or public tags. You can select either All, Shared, or Not Shared.

6. Select the name of a User to search for data tags created by that specific user.

7. Use the Date After or Date Before fields to search for data tags entered after or before a specific date.

8. Click the Search button.

ICE 3.0 | 10.0.700 303


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

9. The Search Results display.

10. Select the search results that you want to review and possibly purge.

11. Click OK.

12. You return to the Data Tag Maintenance window.

13. Click the List tab to see all the tags you selected in a grid.

14. If you want to purge some, but not all of the data tags, click the Selected check box next to each tag that
you want to delete.

15. From the Actions menu, select Purge Selected.

16. Optionally, you can select Purge All to purge all the tags in the grid.

304 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

Enterprise Search

Enterprise Search is a search application you use to retrieve indexed content from within your Epicor application.
You can search on any record within the Epicor database – like a part, customer, purchase order, AR invoice,
and so on. You can also search for text found in any record within the Epicor database. All the records within
the Epicor database that use this record in which this text is found display within the search results.
Other search programs within the Epicor application are limited to querying records for a specific record type;
for example, you need to launch Job Search in order to find and select job records. Through Enterprise Search,
however, you can find all the places within your Epicor database that reference a specific search item, and then
use links within the search results to display the search item you want within the application program you need.
Data is indexed using a series of delivered Business Activity Queries (BAQs) that provide a starting point for the
primary data available when you first install the application. You can, however, extend this functionality by adding
user-defined BAQs into the indexing service.
Only users with certain rights can access Enterprise Search. These rights are assigned in User Maintenance. Once
these rights are assigned, you launch Enterprise Search through two methods – from the Main Menu within the
Smart Client or from a URL you can set up as an icon on your desktop. Both methods are described in this section.
Included at the end of this section is a list of Enterprise Search Options you use to quickly return the best possible
search results.

For instructions on how to install Enterprise Search, review the


Epicor ERP Installation Guide.

User Account Maintenance

You give specific users access rights to Enterprise Search within User Account Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

To assign Enterprise Search user rights:

ICE 3.0 | 10.0.700 305


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

1. Use the Detail sheet to find and select a specific user.

2. Navigate to the Options sheet.

3. Within the Access Options section, select the Allow Enterprise Search check box.

4. Within the Enterprise Search section, select the Use Default URL check box to use the Enterprise Search
index defined for the company as the user’s search index. Search indexes are defined in the Enterprise Search
Administration Console.

5. If an alternate search index URL is defined in the Enterprise Search Administration Console and you want
this user to access this index, enter this URL in the Search URL field.

6. Click Save on the Standard toolbar.

306 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

Smart Client Enterprise Search

You can launch Enterprise Search from the Home Page or Menu application within the smart client application.
The search results then display within an Enterprise Search pane. Use this pane to navigate to a specific program
that contains the data you wish to view.

1. Click Search (magnifying glass icon) in the upper right corner of the application Home Page or Menu
application to display the Search application.

ICE 3.0 | 10.0.700 307


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

2. In the Search Panel, Enterprise Search is selected by default in the search resources. Use the Search field
to enter a value. Enter 516FW.

3. Click the magnifying glass icon.

4. The results display on the Enterprise Search pane in list format.

5. The primary records that contain references to the search value display as links.

308 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

6. Related information categories display within the group box. You can click these links to view additional
search results.

7. To display the search value within a specific program, select a link. In this example, you want to display a
specific part transaction through the Part Transaction record, so you select Part Transaction link.

8. The results of the tag you selected display. Select the first link.

ICE 3.0 | 10.0.700 309


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

9. The specific program launches; the record that contains the selected search value displays. In this example,
Part Maintenance displays.

10. You may need to navigate through the record to locate the search value.

Web Client Enterprise Search

You can also launch Enterprise Search externally and then launch a specific Epicor Web Access program from it.
Epicor Web Access is an alternate interface that displays your Epicor application through a web format. For
instructions on how to install Epicor Web Access, review the Epicor 9 Installation Guide.
To externally launch Enterprise Search:

1. Click the Enterprise Search application icon found on the desktop.

310 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

2. The application displays within your web browser.

3. Enter a value you want to search in the Search field.

4. Click the Magnifying Glass button.

5. The primary records that contain references to the search value display as links.

6. Related information categories display within the group box. You can click these links to view additional
search results. For example, if you want to see all the invoices, click Invoices.

ICE 3.0 | 10.0.700 311


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

7. The search results are further refined to show a specific type of record that includes the search value.

8. To display the search value within a specific program, select a link. In this example, you want to display a
specific quote transaction through the Opportunity/Quote Tracker, so you select this link.
Enter your credentials in the Epicor Web Access login window. The search value displays within the specific
Epicor program.

In order to launch Epicor Web Access, your user account


must be modified so that it has Epicor Web Access rights.
You select these rights within User Maintenance.

9. You can also navigate to a specific program from a context menu. To do this, right-click a link that displays
within the search results.

10. A series of programs display on this context menu. Select the program you want from the list.

Enterprise Search Filter Options

To use Enterprise Search, you enter the record or text in the Search field and click Go. This basic way of searching
for data returns links to all records that contain the search text. If you want to refine the search results, you can
use Enterprise Search filter options. These advanced search options help you return more specific search results.
The filter options include:
• Basic Search - Enter search text to retrieve any records that include the word or words. For example:
• The search text consignment returns records that contain the word “consignment”.

312 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

• The search text consignment returns records that contain the word “consignment”.

• Phrase Search - Enter the search text surrounded by quotes to retrieve any records that contain the exact
phrase. For example, the search text “consumer goods” returns records only if they appear together. This
search text would not return records that contain “consumer packaged goods”.
• Wildcard Search - Enter a wildcard character within your search text to retrieve a range of results. The
following wildcards are available:
• * (asterisk) - Represents one or more characters. For example, the search text con* returns records that
contain words beginning with “con” such as “container”, “containerization”, “contact”, or “contract”.
• ? (question mark) - Represents a single character. For example, the search text ?ab returns records that
contain words “lab” or “tab”, but not “grab”.

• OR Search - Enter OR between words in your search text to retrieve any records that contain the words on
either side of “OR”. For example, the search text stock OR non-stock returns records that contain either
word – “stock” or “non-stock”.
• Explicit Without Search - Enter a hyphen (-) before a word in your search text to retrieve records that do
not contain a specific word. For example, the search text lead time –demand returns records that contain
the words “lead” and “time”, but not the word “demand”.
• Tag Search - Tags are added to indexed data. Enter a tag name to retrieve any records that include the tags.
For example, the tags for Sales Order are Order and SO. The search text order critical or SO critical returns
sales order records that contain the word “critical”.
Application administrators can obtain the list of tags from the Enterprise Search Administration Console.
These tags are specific to Enterprise Search and are not the public and private data tags you add to records
within programs throughout the application. For more information on public and private data tags you add
to records, review the previous Data Tag Searches section in this chapter.

• Date Search - Enter a date in your search text, in any of the following formats, to retrieve records that contain
the specified date.
• 2016-01-01T00:00:00 (date:time)
• 01/12/2016 (mm/dd/yyyy or dd/mm/yyyy)
• 1/12/2016 (m/dd/yyyy or d/mm/yyyy)
• 1/12/16 (m/dd/yy or d/mm/yy)

Predictive Search

The Predictive Search feature reduces the time spent on searching for a particular record.
The Predictive Search feature reduces the time spent on searching for a particular record.
User with security rights maintain Predictive Searches using the Predictive Search Maintenance program. To access
the program, right-click on a field and from the context menu, select Predictive Search Entry.
To create a predictive search, you first select a Business Activity Query (BAQ) that defines the search data. Then
you configure the fields you want to display on the tooltip window. You can limit the BAQ to only display the
top number of rows you define. You can also indicate if the predictive search is available for all DB field occurrences
within the Epicor application.

ICE 3.0 | 10.0.700 313


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

When you configure a key field with the predictive search, as you start typing in the field, the suggested results
display in a floating tooltip window. The search results change dynamically as you type, which makes the searching
easier and more efficient.

Activate Predictive Search Functionality

You indicate which users can create and edit Predictive Searches through User Account Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

To give a specific user Predictive Search rights:

1. In the User ID field, enter Manager and press Tab.

314 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

2. Navigate to the Options sheet.

3. Within the Tools Options group box, select the Can Maintain Predictive Search check box.

4. Click Save on the Standard toolbar.

5. Exit User Account Security Maintenance.

When the user right-clicks on a field, the Predictive Search Entry becomes available on the context menu. This
user can now create and edit predictive searches throughout the application.

Define Source BAQ

Business Activity Query provides the datasource for your search results. You can use either the system BAQs for
the search or you can create custom BAQs to supply the data you need.
Menu Path: System Management > External Business Activity Query > External Business Activity Query

This program is not available in the Epicor Web Access.

ICE 3.0 | 10.0.700 315


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

1. Click New.

2. In the Query ID field, enter XXX_CustomerList, where XXX are your initials.

3. In the Description field, enter Customer List Predictive Search.

4. Select the Shared check box.

5. Navigate to the Query Builder > Phrase Builder sheet.

6. Above the list of tables, in the filtering field, enter Cust.

7. From the list, select the Erp.Customer table and drag it on the canvas in the center pane.

316 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

8. Navigate to the Display Fields > Column Select sheet.

9. Expand the Customer table.

10. Add Cust.ID and Name fields to the list of Display Column(s).

11. Navigate to the Analyze sheet.

12. Click Test and verify the BAQ retrieves the list of customers.

13. Click Save.

ICE 3.0 | 10.0.700 317


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

14. Exit Business Activity Query Designer.

Create Predictive Search

You create predictive searches through Predictive Search Maintenance. To launch this program, right-click any
field used for searches and select Predictive Search Entry from the context menu.
In this example, you create a predictive search for Customer field found in Sales Order Entry.

1. In the Sold-To pane, place your cursor in the Customer field and right-click mouse to invoke the Context
menu.

2. From the Context menu, select Predictive Search Entry.


The Predictive Search Maintenance program displays.

318 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Searches | Chapter 4

3. To create a new search, click the New button on the Standard toolbar.

4. In the Predictive Search field, enter XXX_CustomerList (where XXX are your initials).

5. In the Description field, enter Customer List.

6. Click BAQ, search for and select XXX_CustomerList BAQ you created

7. In the Return Column, select Customer_CustID. This field defines the column that will bind in the Customer
field when a user selects an option in the predictive search tooltip window.

8. In the Return Column, select Customer_Name. This column is used to filter the BAQ records. When you
activate a predictive search and start typing in the field, BAQ results will be filtered by customer names.

9. View the options available in the top-right corner that include:


• Shared - When selected, the predictive search becomes available for all users within the company.
• All Occurrences - When selected, the predictive search becomes available in all occurrences of the
column within other forms (programs) across the Epicor application.
• Top X Rows - Used to limit the number of returned rows from the BAQ.
For the purposes of this workshop, do not select any of these options.

10. Click Save.

11. Exit Predictive Search Entry.

ICE 3.0 | 10.0.700 319


Chapter 4 | Searches Epicor ICE 3.0 Tools User Guide

Test Predictive Search

Once you restart the program from which you created the Predictive Search, you can test the functionality.

1. In Sales Order Entry, click New.

2. Click New.

3. Start typing in the Customer field and notice the suggested results display in a floating tooltip window. As
you type. the Predictive Search results are filtered by Customer Name.
When you select a value, the Customer ID is placed in the Customer column. This is the value the fields
expects.
Within the application's sysconfig file, the following properties control the behaviour of Predictive Searches.
System administrators may modify these values to fine-tune the Predictive Search performance.

Property Description Default Value


<PredictiveSearchKeyPressDelay> When a user starts typing in a field, this value 1500 µs (1,5 sec)
controls the time delay of the underlying BAQ
execution.
<PredictiveSearchPopupFadeDelay> On predictive search execution, this value 10000 µs (10 sec)
controls the time the floating tooltip window
becomes available until it fades away.

320 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Chapter 5: Dashboards

Dashboards are flexible, powerful tools that provide easy access to critical information in a real-time environment. In
addition to the standard dashboards included with the application, you can also create custom dashboards. Custom
dashboards can replace the need for workbenches, trackers, ShopVision reports, ad hoc reports, and even simple
business intelligence reports.
You can think of a dashboard as your personalized information and command center. Much like your car’s dashboard
gives you current information and controls to run the car, the dashboard displays the current information and processes
you need to more efficiently perform your tasks. The data you choose to display can be refreshed automatically or
manually, so you are able to act on changes as they immediately occur.
Dashboards display data through business activity queries (BAQs). Several display options are available to present data.
For example, you can present data on a grid, chart, or guage. You can add a Tracker View (to display an advanced
search) where you define the fields by which users can search data. You can also add a URL link to display web pages
or web parts on the dashboard.
The Dashboards chapter begins with a brief review of standard system dashboards. Next, it explores how you can
create your own dashboard, adding queries and multiple views to display the information you need. You then learn
how to enable a dashboard for use as an advanced search. The chapter next describes Publish and Subscribe functionality.
The unique framework of the dashboard can publish data from one query and then subscribe to the data by another
query. Users can see related information between the two queries when a record is selected in the dashboard.
The chapter continues with steps on how you build and deploy a dashboard to your Favorites Bar and the Main Menu.
To do this, you use the Application Builder process to compile the dashboard into a user interface and then deploy it
to the server.
The chapter concludes with a section on creating updatable dashboards where users can view and modify the data
presented through the query. When configured with updatable BAQs, the dashboard becomes a data entry program,
giving you the ability to construct dashboard applications that streamline your business process.

Standard System Dashboards

Many standard system dashboards install with the application. Use the dashboard framework to modify the way
information is presented. Additional features include:
• Modify dashboard assemblies to create new dashboards to place on the Main Menu
• Dashboard components synchronize with system entry programs (Publish and Subscribe)
• Right-click and print enabled
• Copy and paste enabled
• Display information in graphs, charts, and gauges
• Conditional formatting based on user-defined rules
• Leverage EPM Performance Canvas and gems for import and export dashboard definitions

ICE 3.0 | 10.0.700 321


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

Standard dashboards are located in the General Operations folder of each module on the menu. Since dashboards
provide information that pertains to multiple modules, many are available in multiple locations within the Main
Menu.

You can only make updates to existing dashboards if you first


copy the dashboard and save it with a new name. Custom
dashboards are not overwritten by any software upgrades.
Modifying an existing dashboard is discussed later in this
chapter.

Dashboards are identified on the menu by a magnifying glass and book icon.

Navigate in a Dashboard

One example of a standard system dashboard is the Part On Hand Status dashboard.
Menu Path: Executive Analysis > Status Dashboards > Part On Hand Status

1. After you launch the dashboard, click the Search button on the Dashboard Browse to find and select the
parts to view in the dashboard.

2. When you select the part record from the Search Results grid, related information about this part displays
in the dashboard. Only one part record displays at a time. Use the Navigation toolbar to select another

322 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

record to view in the tracker. In this example, part DSS-1012 is selected. The part number displays on the
title bar and the part’s on hand information displays in the On Hand Locations grid.

3. To view Warehouse and Inspection information for the selected part, click the respective sheets.

4. You can right-click a part number record in the Search Results grid and select Open With… The Context
Menu displays related information for the part selected. Options on the context menu launch in a new
window for the selected program.

ICE 3.0 | 10.0.700 323


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

5. In this example, select Time Phase.

6. Notice the part information for DSS-1012 defaults into the window. When you launch a secondary program
(in this case Time Phase) from a dashboard, it uses publish and subscribe functionality to display the selected
record’s information in the new program.

7. To view Time Phase information for a different part, you can select a new part in the dashboard and it
refreshes the Time Phase window with the new part’s information. In this example, you click part DSS-1010
in the Part On Hand Status. The Time Phase Inquiry window refreshes with part DSS-1010’s information.

Conduct an Advanced Search

Many dashboards also include an Advanced Search where you can select specific records using the fields provided
on the search sheet. Only the records that match your search criteria display. To use the advanced search features
in the Opportunity/Quote Status dashboard:
Menu Path: Executive Analysis > Status Dashboards > Opportunity / Quote Status

324 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

1. Navigate to the Advanced Search sheet. In the Cust. ID field, enter Addison.

2. Click the Refresh button on the Standard toolbar.

3. The Search Results list only displays quotes that belong to the customer Addison.

4. Click the Clear button to start a new search.

Authorization

In order to create new dashboards, users must be granted Dashboard Developer permission in User Account
Maintenance. Any user with security rights can access a dashboard once placed on the menu; however, creating
a new one from scratch (or updating an existing one) requires a security privilege that is typically granted only
to certain people in your organization.

User Account Maintenance is typically available only to system


administrators

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

This program is not available in the Epicor Web Access.

ICE 3.0 | 10.0.700 325


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

Assign Dashboard Developer Privileges

To let a specific user design dashboards:

1. Click the User ID button to find and select the user you need. You can also enter the User ID directly.

2. Navigate to the Options sheet.

3. Select the Dashboard Developer check box.

326 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

4. Click Save on the Standard toolbar.

Dashboard Creation

You use the Dashboard program to create and modify dashboards in the application.
Before creating a dashboard, it is important to first spend some time thinking about what information would be
helpful to employees at your organization. What is the appropriate format for this information? Is it more graphical
in nature? Should users be able to search the data displayed in the dashboard? Can existing queries (Business
Activity Queries) be used on the dashboard, or do you need to create new queries? Once you identify what you
need to display, you can begin to create your dashboard. In the examples that follow, you create a dashboard
that displays customer orders, shipments, and invoices.
Menu Path: Executive Analysis > Business Activity Management > General Operations > Dashboard

This program is not available in the Epicor Web Access.

Launch the Dashboard and Switch to Developer Mode

To verify the Developer mode is enabled when the dashboard program launches:

1. From the Tools menu, select Developer.

2. Once you are in Developer mode, the New button displays on the Standard toolbar.

You can toggle developer mode off and on by selecting


the Developer command from the Tools menu. Users who

ICE 3.0 | 10.0.700 327


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

do not have Dashboard Developer rights do not have this


option available to them.

3. The Tree View displays in the program's window.

4. From the New menu, select New Dashboard.

328 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

5. In the Definition ID field, enter a unique identifier for the dashboard. In this example, enter CustSvcDbd.

6. Enter a Description for the dashboard. In this example, the description is Customer Service Dashboard.

7. By default, the Refresh button is automatically added to the dashboard interface; this button updates data
for a single selected record. When you select the Enable Refresh All check box, the Refresh All button is
added to the Standard toolbar in the dashboard. When users click the Refresh All button, the query
updates all the data displayed on the dashboard.

8. Select the Include Tree on Dashboard Assembly check box to display a Tree View in the finished
dashboard assembly for navigation between data records in the primary query. Once the Application Builder
deployment process is run, the Tree View displays. The Application Builder Process is discussed later in this
chapter.

9. When you select the Target Mobile Device check box, you indicate the dashboard can display in a mobile
device. When you generate the dashboard, you also create a mobile device version of the dashboard.
Dashboards for Mobile Devices are discussed in Chapter 8: Dashboard Utilities.

You are now ready to design your dashboard. Remember to save changes frequently while you develop the new
dashboard.

Add a Query to the Dashboard

To begin designing a dashboard, you first add a query to it. Queries are created in the Business Activity Query
Designer program and are used to retrieve and display information from a table (or multiple tables) in the database.
You can add multiple queries to the same dashboard that display related information.
In order to demonstrate all the dashboard functionality, you must copy a standard query to make additional fields
available for use in the chapter examples. To learn how to do this, read the Modify an Existing Query section in
Chapter 4: Business Activity Queries.

ICE 3.0 | 10.0.700 329


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

Add the Query

The first query that you add to the dashboard, EPIC03-CustTrackerOrders01, displays customer order information.

1. From the New menu, select New Query.

2. In the Dashboard Query Properties window, click the Query ID button to find and select the query.

3. In the Query Search window, click the Search button and select EPIC03-CustTrackerOrders01.
Queries that begin with the letter “z” are standard queries written by Epicor included with the application.
System queries are also identified by the Delivered check box.

330 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

EPIC03-CustTrackerOrders01 is a copy of the standard query zCustTrackerOrders01 with the


Customer_CustURL field added to the query. The Customer_CustURL field is used for exercises later in
the chapter.

4. Click OK.

5. When the Dashboard Query Properties window displays, click OK again.

ICE 3.0 | 10.0.700 331


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

6. Click the Refresh button on the Standard toolbar to execute the query and retrieve the data.

7. In the Tree View, two icons display when the query is added to the dashboard. The Query icon displays
on top and references the EPIC03-CustTrackerOrders01 query you added.
You use the Tree View to help design the dashboard and ultimately navigate through it. As you add multiple
views to the dashboard, this becomes the primary tool to understanding the information that displays.

8. The Grid icon for EPIC03-CustTrackerOrders01 displays under the Query icon in the Tree View. The
default view for every query added to the dashboard is called a Grid View.

9. Use the Available Views panel in the Tree View to select published, available views you want to add to
your dashboard.

332 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

10. If you want to hide the Available Views panel, from the View menu, select Published Views. The Published
Views and Available Views functionality is discussed later in this chapter.

Modify Query Properties

The Dashboard Query Properties window contains important information about the query you have just added
to the dashboard. You control many characteristics of the query and ultimately how the data displays on the
dashboard using these properties. You can access these settings at any point while developing the dashboard.
Once a query is added to the dashboard, all related views, like grids or charts, are based on the parameters
established in the Dashboard Query Properties window. For example, any filters applied at the query level are
applied to all grid and chart views that use this query to display information.
You can apply filters to any specific view. Depending on what the user wants to display, it may be better to apply
filters at the View level as opposed to the Query level. This feature is useful to display groups of information,
such as sales broken down by territory or customer groups.

ICE 3.0 | 10.0.700 333


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

Modify Query Properties - General Properties

When a new query is added to a dashboard, the Dashboard Query Properties window displays automatically.
Once the query is added, you can access the Properties window manually by right-clicking on the Query icon in
the Tree View and selecting Properties from the context menu.

1. In the Tree View, right-click the Query icon.

The context menu displays.

2. Select Properties.
The Dashboard Query Properties window displays.

3. The Caption field displays the default description of the query added. In this example, the caption is Order
Query for Customer Tracker; however, you can override this value. The text in the Caption field displays in
the query’s sheet and grid caption bars.

4. Select the Auto Refresh on Load check box. This refreshes the data in the dashboard automatically when
you launch the dashboard. This eliminates the need to click the Refresh button manually on the
Standard toolbar when the dashboard is initially run. Use caution when enabling this check box, as queries
that retrieve many records take more time to load to the dashboard when you initially open it.

334 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Modify Query Properties - Publish to Title Bar

Use the Publish sheet to select which columns from the query to publish from the dashboard query. Information
published from one query can be used to display on the title bar, as well as for subscription by another query. In
this example, you publish the customer name to the title bar. As you select different sales order records in the
grid, the order’s customer name displays on the title bar. You learn more about publish and subscribe later in
this chapter.

1. Navigate to the Publish sheet.

2. The columns that display in the Publish Columns list include all the fields built into the query when it was
created. Select the Customer_Name, Customer_CustID, and Customer_CustURL fields in the Publish
Columns list.

The Customer.CustURL column is used later in the Add


a URL Link section of this chapter.

3. Select the Publish to Title check box. You can publish specific data to the title bar of the dashboard. In
this example, the customer name is selected to display in the title bar of the dashboard.

4. From the drop-down list, select Customer_Name. This field contains all the columns you selected in the
Publish Columns list. The column selected in this field is what displays on the title bar.

5. In the Title caption field, enter Customer:. This value displays as a prefix placed before the published
customer name.

6. Click OK.

ICE 3.0 | 10.0.700 335


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

7. Notice the title bar now displays the customer name of the selected record.

8. A new icon displays in the Tree View when you publish information from the query. The Satellite icon, with
an arrow pointing out, indicates the query is publishing information.

Modify Query Properties – Apply Filters to a Query

Use the Filter sheet to apply filters to the data retrieved when the query is published from the dashboard. These
dashboard filters run in addition to any filters that already exist in the query. In this example, you add a filter to
the EPIC03-CustTrackerOrders01 query to only display open sales orders.

1. In the Tree View, right-click the Query icon and select Properties.

336 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

2. The Dashboard Query Properties window displays. Navigate to the Filter sheet.

3. From the ColumnName list, select the field you want to filter. This field contains a list of all the columns
included in the query. In this example, select OrderHed_OpenOrder.

4. From the Condition list, select the appropriate condition you use to define filter criteria. This list contains
all Boolean operators such as: equal to (=), not equal to (<>), greater than (>), less than (<), greater than or
equal to (>=), and less than or equal to (<=). You can also select BEGINS, which enables you to define the
criteria based on the value that begins in the field. In this example, you select equal to (=).

5. In the Value field, enter True. The Value field contains a list of available values from which you can choose,
or you can define your own value by entering it in the field. Available options:
• The values of columns published from the query (for example, customer name)
• The values of all columns included in the query BAQ Special Constants (for example, Today, Tomorrow,
Yesterday, Year, Day, and so on)
• Use these values to compare a field to the value of another field, to a constant such as the current day
of the week, the fiscal year, and so on.

6. Click OK.

7. Now only Open orders display in the Grid View.

ICE 3.0 | 10.0.700 337


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

The Grid View

When a query is added to a dashboard, the default view for displaying the data is a Grid View. You typically will
have multiple grids displaying different information from a single query on a dashboard. For example, you can
add another Grid View that displays open orders for a specific customer or for a specific territory. You accomplish
this by applying a new filter on the grid view that defines these criteria. Each query and view added to the
dashboard has its own properties window where you can define additional parameters.

The Grid Properties Window

Use the Dashboard Grid Properties window to define the columns that display, activate group by and summary
options, enter filters, and set up rules for displaying information.
You access the Dashboard Grid Properties window by right-clicking the Grid icon in the Tree View of the
dashboard.

Modify Grid Properties – Change Display Columns and Enable Group By and Summarization
in a Grid

When a grid is added to the dashboard, all columns included in the query appear by default. You can modify
the columns that display and also enable the Group By and Show Summaries options in the properties window.

1. Right-click the Grid icon in the Tree View of the dashboard and select Properties.

The Dashboard Grid Properties window displays.

338 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

2. In the Caption field, enter Open Orders. This value displays in the header of the Grid and also in the Tree
View of the dashboard.

3. Click the Clear All button to clear the selection of all the Display Columns.

4. Select the Visible check box for each column you want to display in the grid. In this example, the following
fields are selected:
• OrderHed_OrderNum
• OrderDtl_OrderLine
• OrderHed_PONum
• OrderDtl_PartNum
• OrderDtl_LineDesc
• OrderDtl_SellingQuantity
• OrderDtl_DocUnitPrice
• Customer_Name
• Customer_TerritoryID
• OrderDtl_ProdCode
• OrderDtl_NeedByDate

5. Use the Up and Down Arrow buttons to change the order the columns display within the Grid view. As
you click these buttons, the order of the columns changes on the grid.

6. In the Grid Caption field, enter Open Sales Orders.

You do not have to enter text in the Grid Caption field.


If you leave this blank, the text in the Caption is used in
the Grid header. You can, however, enter different text
in this field than the Caption. This causes the Caption text
to display in the Tree View and the tabs; the Grid Caption
text displays as the Grid header.

ICE 3.0 | 10.0.700 339


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

7. Select the Show Group By check box. The Group By functionality then displays as the default view in the
grid. If this feature is not turned on in the Properties window, it can still be toggled on or off by the end
user in the dashboard during runtime. For this example, select this check box.

8. Select the Show Summaries check box to define additional summarization options. Available options:
• Average
• Count
• Maximum
• Minimum
• Sum
You can use one or more of the above options to summarize data on a single grid view.

When the Show Summaries check box is enabled, a Sigma


symbol appears in all the column headings that contain
numeric data. When you click the icon in the column
heading, the Select Summaries window displays where
you can choose from the list of summarization options.
This functionality is demonstrated in the next example
when you modify the grid display.

9. Click OK.

10. Now only the columns you selected display in the grid. The Caption displays Open Orders in the Tree View
and the Grid Caption displays Open Sales Orders.

340 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Modify Grid Properties - Change the Grid Display

Now that you have updated the Grid Display properties, you can modify the grid information by utilizing the
Group By and Summarization options. In this example, you apply a sum to the Doc Unit Price field and group
the grid by Customer. You also move columns within the grid.

1. Click the Sigma icon in the Order header.

2. Select the Sum check box.

3. Click OK.

4. Scroll to the bottom of the grid to view the Sum of the Order column.

ICE 3.0 | 10.0.700 341


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

5. Drag the Name column header up to the blue header bar to group the data by customer.

6. Release the column when the black arrows appear.

7. You can expand the groups to reveal the order detail by clicking the + icon next to each customer.

342 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

8. To save the groupings as the default layout for the grid, from the Tools menu, select Layouts > Save
Layouts As Default.

9. To turn the Show Group By functionality on and off, right-click anywhere in the grid and select Show
Group By. In this example, group by is turned on.

ICE 3.0 | 10.0.700 343


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

10. When Show Group By is turned off, the check mark does not display next to the option.

11. You can also move columns within the grid. Click a column header and drag it to its new position in the
grid. Release the column when the black arrows appear. In this example, you move the customer Name
column to the first column in the grid.

12. Click Save on the Standard toolbar to save the changes to the dashboard.

Modify Grid Properties - Apply a Filter to a Grid

Just like a filter can be applied at the query level, the same functionality is available at the grid level. Many of the
standard dashboards use filters at the query level. Query filters run against data on the server. When all the query
data is sent to the client, you can create additional client side filters that further restrict the data results that
display in the grid. In this example, you apply a filter to the grid that causes the grid to only display sales orders
with a Document Unit Price greater than zero.

344 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

1. In the Tree View, right-click the Open Orders grid icon and select Properties.

2. When the Dashboard Grid Properties window displays, navigate to the Filter sheet.

3. From the ColumnName list, select OrderDtl_DocUnitPrice.

4. From the Condition list, select > (greater than).

5. In the Value field, enter 0 (zero).

6. Click OK.

Add a New Grid View to the Dashboard

You can add multiple grid views of the same query information to a dashboard. By using grid filters, the data
can be organized to display multiple views for the same source information.
Now that you have applied a filter to the Open Orders grid, you add another grid view to the dashboard to display
the zero dollar orders. You then apply a filter to this grid which only displays open orders with a Document Unit
Price equal to zero.
To add a new grid view to the dashboard:

ICE 3.0 | 10.0.700 345


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

1. In the , right-click the Query icon and select New Grid View.

The Dashboard Query Properties window displays.

2. In the Caption field, enter Zero Dollar Orders.

3. Navigate to the Filter sheet.

346 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

4. From the ColumnName list, select OrderDtl_DocUnitPrice.

5. From the Condition list, select = (equal to).

6. In the Value field, enter 0 (zero).

7. Click OK.

8. By default, the new grid is docked on the bottom section of the dashboard.

9. You can move the grid and create a tab to display each of the grids associated with the query. Click the
Zero Dollar Orders grid header and drag it up next to the Open Sales Orders grid. Release the grid when
the outline displays a notch.

ICE 3.0 | 10.0.700 347


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

10. Both grid views now display side-by-side as two separate sheets with tabs on the dashboard.

11. Notice the Tree View now displays two Grid View icons under the Query icon.

12. Click Save on the Standard toolbar.

Modify Grid Properties - Add a Rule to Highlight Cells

You can define rules and conditions that control how certain data displays within the grid. As the conditions for
the data change, the view indicates this change based on the rule action that you define. In this example, you
apply a rule to highlight orders that do not have a customer purchase order number.

1. In the Tree View, right-click the Open Orders grid icon and select Properties.

348 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

2. When the Dashboard Grid Properties window displays, navigate to the View Rules sheet.

3. Click the New View Rule button; the View Rule defines the criteria for the rule. This activates the Select
Field, Rule Condition, and Rule Value fields for entry.

4. From the Select Field list, select the field for which you base the rule. In this example, you select
OrderHed_PONum.

5. Select the Rule Condition. Available options: Contains, Equals, Greater Than, Less Than, Not Equal, and
Starts With. In this example, you select Equals.

6. Leave the Rule Value blank (or null). The Rule Value list contains every column in the query, and also
constant values from which you can select.

7. Click the White Arrow button.

8. The rule now displays in the available rules list.

9. When you click the New View Rule in the available rules list, the Edit View Rule button becomes available.
You can then use this button to edit rules that were created.

10. The Rule Action defines how the selected field displays within the Grid view. Click the New Rule Action
button to activate the Select Field and Setting Styles fields for entry.

ICE 3.0 | 10.0.700 349


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

11. From the Select Field list, select OrderHed_PONum.

12. From the Setting Styles list, select Error. The Error style turns a cell red; however, other styles are available
from which you can choose. Available options:
• OK – This style turns a cell green
• Warning – This style turns a cell yellow
• Highlight – This style turns a cell blue
• Invisible – This style turns a cell black

13. Click the White Arrow button.

14. The action now displays in the available actions list.

15. Click OK.

16. Sales orders that do not have a purchase order number now display red in the Open Sales Orders grid.

You can apply the same rule and action to the Zero Dollar
Orders grid by following the same steps as above in the
Zero Dollar Orders Grid Properties window.

350 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Modify Grid Properties - Add an Image Column to a Grid Based on a Rule

Use the Image Columns sheet to create an image column within a grid view. This column can display an application
image you select. You can also create row rules which indicate the conditions for displaying various images within
this column.
You can immediately use this functionality to display any image included within the application. You can also
display your own images through the Resource Editor program. This separate utility is available for download
from EPICweb. Use this utility to find, select, and add your own images to the application. You can then use
these images on your dashboard.
First, create a new image column and name it accordingly. Then select the default image and decide where in
the grid you want the image to display.
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.
In this example, you add an image column that normally displays a blank cell. You then select a row rule so this
column displays the exclamation icon whenever an order release unit price is greater than $1,000.

The Image Columns functionality is also available as part of


the customization toolset. Use this functionality to add an
image column to any grid in the application. To learn how to
add an image column to a grid, review the Epicor ICE User
Experience and Customization Guide. The Image Column
Wizard is described in the Advanced Customization chapter.

To add an image column to a grid in the dashboard:

1. Right-click the Open Orders grid icon in the Tree View of the dashboard and select Properties.

ICE 3.0 | 10.0.700 351


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

2. When the Dashboard Grid Properties window displays, navigate to the Image Columns sheet.

3. Enter a Column Name for the new column. Be sure to enter a name you can easily find when creating row
rules. By default, all image columns are placed at the bottom of the column list. In this example, enter
PriceCheck.

4. Enter a Caption for the new column. This value is the text that displays at the top of this column. For this
example, enter Price Check.

5. From the Image Name list, select the default image you want to display. This item 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, select the (None) image. When the None
image is selected, no image displays as the default.

6. Use the Visible Index value to define where inside the grid you will place your new image column. The
lower the number, the closer to the left of the grid the image column appears. For example, if you enter
one (1), this indicates the column is the first left-side column in the grid. In this example, enter the default
value of 1.

7. Click OK to save the new image column.


The new Price Check column displays within the Grid.

8. Open the Dashboard Grid Properties window again and navigate to the View Rules sheet. You will
create a View Rule to display the exclamation image when the order line release price is greater than the
numeric value 1,000.

9. Click the New View Rule button to create a new rule.

10. From the Select Field list, select the field you want to base the rule on. In this example, select
OrderDtl_DocUnitPrice.

352 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

11. From the Rule Condition list, select GreaterThan.

12. Enter or select the Rule Value for this rule. This defines the value against which the Rule Condition is
evaluated. In this example, enter 1,000.

13. To add your rule, click the White Arrow.

14. The new rule displays within the Row Rules list.

15. Click the New Rule Action button.

16. From the Select Field list, select the field this action affects. You need to select the new image column, so
you select the Price Check column you just created.

17. 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 Exclamation image.

18. Click the White Arrow button.

19. The image column rule now displays within the Rule Actions list.

20. Click OK.

ICE 3.0 | 10.0.700 353


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

21. Now when you view the dashboard grid, any order release that has a Document Unit Price greater than
1,000 will have the Exclamation icon displayed next to it.

The Chart View

The Chart View creates charts and graphs from the data within the selected query. You can have multiple charts
on a single dashboard that display different information in a graphical format. In this example, you create a Chart
that displays Open Orders by Territory.

The Chart Properties Window

Use the Dashboard Chart View Properties window to define the columns used in the chart, select different chart
types, customize chart colors, and other options.

Add a Chart View to the Dashboard

1. In the Tree View, right-click the Query icon and select New Chart View. The Dashboard Chart View
Properties window displays.

354 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

2. In the Caption field, enter Chart - Open Orders by Territory. This value displays in the tab of the chart
view that is added.

3. From the Chart By list, select the field you want to use. This field is the horizontal axis, also referred to
as the X axis, and contains all the columns in the query from which you can select. In this example, select
Territory to display open orders by territory.

4. From the Chart On list, select the field you are charting. This defines the vertical axis, also referred to as
the Y axis, and contains only columns in the query defined as numbers. In this example, select Doc Unit
Price to display the open order amounts.

5. Fields can also be selected from the Group By (or Z axis) list. Use the Group By feature to group all the
records in a grid by a specific column.

You can select more than one field to chart. When you
do this, runtime users can switch between the fields to
see the information charted with different values.

6. Navigate to the Colors sheet.

7. From the Color Model list, select the colors of the chart. Available options:

• LinearRange - You can select a starting and an ending color with this option. The chart then displays
in regular gradations between these two colors. To change the Start Color or End Color, select the color
from each list.
• LinearRandom - Use this option to select a starting and an ending color. The chart then displays in
random gradations between these two colors. To change the Start Color or End Color, select the color
from each list.
• PureRandom - With this option, the application assigns colors automatically. This value is the default
color model applied to all charts.

ICE 3.0 | 10.0.700 355


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

• Wireframe - This option creates a wireframe chart. Only the lines of the chart display; no fill colors are
used.

8. Click OK.

9. The Chart displays as a Column Chart.

10. Notice the new Chart icon now displays in the Tree View of the dashboard under the Query and Grid
icons.

356 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Chart Settings

Once a chart is added to the dashboard, you can change the default settings of the chart. Hold the mouse over
the Settings tab to access and modify the chart settings.

Modify Chart Settings

To add a legend to the chart and change the column chart to a 3D column chart:

1. Hover your mouse over Settings. The Settings window slides open.

2. Select the Legend check box if you want a legend displayed with the chart. When you select this option,
you select where to display the legend (top, bottom, left, right) from a drop-down list. In this example, place
the legend display on the right side.

ICE 3.0 | 10.0.700 357


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

3. Click the Refresh button.

4. The chart now displays the legend on the right.

5. Hover your mouse over Settings and, from the Chart Type list, select CylinderStackBarChart3D.

6. Click the Refresh button.

358 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

7. The 3D Cylinder Stack Bar Chart displays in the dashboard.

8. Click Save on the Standard toolbar.

The Tracker View

You can add a Tracker View to a dashboard. Typically used to create an Advanced Search, you can enter search
criteria based on the specified query and retrieve the search results back to the dashboard. Users leverage this
tool to find the exact information they need without searching through all the records in the dashboard.
Several steps are involved in creating an advanced search. You first have to add the Tracker View and define the
fields to be available for searching. The second step involves customizing the tracker view. This process utilizes
a subset of the customization tools available in the application.

For a detailed exploration of all the customization tools available


in the application, use the Epicor ICE User Experience and
Customization Guide. Review the Basic Customization, the
Advanced Customization, and the Customization Utilities
chapters.

ICE 3.0 | 10.0.700 359


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

The Tracker Properties Window

The Dashboard Tracker Properties window is where you identify the columns that you want to use for searching.
Options are also available to embed a grid view, display group by and summary data, add filters, and define rules
for how the information displays.

Add a Tracker View for an Advanced Search

In this example, you add a Tracker View to a dashboard for an advanced search. You then select the columns
available on the search form.

1. Right-click the Query icon in the Tree View and select New Tracker View.

The Dashboard Tracker View Properties window displays.

2. In the Caption field, enter Advanced Search. This value displays in the header of the Tracker View and
also in the Tree View of the dashboard.

The Filter and View Rules sheets are exactly the same as
the other view property windows. These options are not
necessary when creating an advanced search.

360 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

3. Click the Clear All button to clear the selection of all the Display Columns.

4. Select the columns you want to use for searching in the Visible list. In this example, select the following
fields:
• OrderHed_OrderNum
• Customer_Name
• Customer_State
• Customer_TerritoryID

5. Select the Prompt check box for each of the fields you wish to use for searching. The fields change from
read only to enabled for user input.

6. The Condition field determines how the data entered in each field is used for searching. In this example,
select StartsWith in the Condition field for the Customer_Name column. When selected, this option
indicates users can find Customers using a partial Customer Name.

7. If you want to create a new query grid view to display within the tracker view, select the Embed Grid View
check box. In this example, you do not select it.

8. Click OK.

9. The Advanced Search sheet now displays in the dashboard.

10. Notice the new Tracker icon for the Advanced Search displays in the Tree View.

11. To use the Advanced Search, first click the Clear button on the Standard toolbar.

12. To find customers that belong to a specific territory, select a Territory from the drop-down list. In this
example, select United States – Mid West.

13. Click the Refresh button to execute the search.

ICE 3.0 | 10.0.700 361


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

Add an Advanced Search with Range

Once you add an Advanced Search to the dashboard, you can add additional search criteria functionality such
as a starting at and ending at range. In this example, you add a second field for Order Number so that users can
search for a range of sales order numbers within the dashboard.

1. In the Tree View, right-click the Advanced Search icon and select Customize Tracker View.

2. When the Customization Tools Dialog displays, from the Tools menu, select ToolBox.

362 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

3. The Toolbox displays. Use this tool to add elements to the current form. Notice that each element you can
place on your form has its own button.

For a complete explanation of each element in the


Toolbox, review the Basic Customization chapter within
the Epicor ICE User Experience and Customization Guide.

4. Click the EpiNumericEditor element on the Toolbox to add a new Order number field to the sheet.

5. Click an empty area of the form. The new field displays.

ICE 3.0 | 10.0.700 363


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

6. In the Properties grid for the new Numeric Editor control, change the IsTrackerQueryControl property
to True. The field now acts as a control for the search window.

7. You next need to bind this new field to a field within your dashboard query. In this example, use this field
to find Order Numbers. To do this, select OrderHed_OrderNum in the QueryColumn field.

8. Enable the new numeric field for entry of data. To do this, change the DashboardPrompt property to True.

364 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Once you have the two Order Number fields for the range on the form, you next have to assign conditions
to each field.

9. Change the DashboardCondition to LessThanOrEqualTo.

10. The original Order Number field on the form also needs to be assigned a condition. To do this, select the
Order field on the Advanced Search sheet.

11. Select GreaterThanOrEqualTo in the DashboardCondition property.

ICE 3.0 | 10.0.700 365


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

12. It is also helpful to change the label text for the Order field to indicate this item is now a range search. To
do this, select the Order label element on the Advanced Search sheet.

13. Enter Order Range: as the Text property.

366 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

14. The TabIndex field controls the order in which the user is prompted through the Advanced Search fields.
In this example, change the TabIndex to 28 so that you are prompted from the first Order Range field to
the second as you press the Tab key.

15. Click Save and close the Customization Tools Dialog window.

16. To use the Order Range search, enter a sales order number in each of the range fields. In this example,
enter 5100 and 5115.

17. Click the Refresh button on the Standard toolbar.

ICE 3.0 | 10.0.700 367


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

18. The Open Sales Orders sheet now displays only open sales orders that are greater than or equal to 5100
and less than or equal to 5115.

The Gauge View

Gauge views are visual tools that measure the levels of a specific view you select from your dashboard query.
Gauges can communicate various aspects of your data. As users click various records within the main query on
your dashboard, the gauge updates to reflect the level of the data on each record.

The Gauge Properties Window

Use the Gauge Properties Window to select the gauge style you want to display on your dashboard. You then
indicate the value to measure and define the starting and ending values that measure the value on the gauge.
You can also create filter expressions to limit the data that displays on the gauge.

Add a Gauge View to the Dashboard

1. In the Tree View, right-click the Query icon and select New Gauge View.

The Dashboard Gauge Properties window displays.

368 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

2. Enter a Caption for the gauge. This value displays on both the Tree View and the tab that contains the
gauge. In this example, enter Gauge - Selling Quantity.

3. Click the Gauge Type button to find and select the gauge you want to display on the dashboard. After
you select the gauge type and return to the Dashboard Gauge Properties window, the name of the selected
gauge displays next to the Gauge Type button. Its type also displays in the Gauge Properties grid.

4. In the StartValueBinding field, enter a value to use as the beginning gauge value. When the gauge evaluates
where to place its marker, the StartValueBinding value is evaluated against the EndValueBinding value. In
this example, enter 0 in this field.

5. In the EndValueBinding field, enter a numeric value to use as the final value on the gauge. In this example,
enter 100 in this field.

6. To complete the gauge, from the MarkerBinding list, select the data column to use to define the marker
on the gauge. As data changes within the query, this marker moves to a different location on the gauge.
In this example, select OrderDtl_SellingQty.

7. Click OK.

8. You can now display the gauge on your dashboard and evaluate how well the visual indicator evaluates the
selected data column. In this example, the current sales order detail line selected has an Order Quantity
of 30.00.

ICE 3.0 | 10.0.700 369


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

9. Select a sales order detail line that has an Order Quantity of 300.00. The gauge updates to display this
new quantity level.

The URL/XSLT View

Use the URL/XSLT View to display a website using a URL address or an XSLT style sheet that displays data on your
dashboard. When you select this option, you can either enter a web address or select an existing XSLT file on
your network.
When you enter a web address, the application passes the URL to Microsoft® Internet Explorer®, so you can use
the typical Internet options for the Web pages. You can also set up this feature to update the URL based on a
Web site address included in the selected query. So as you select a different record in a query, the URL also
updates with the Web address listed with this record.
When you enter a filename that ends in .xslt in the Web Address field, additional fields become available for you
to further define the Style Sheet details.

URL/XSLT Properties

The URL/XSLT Properties window contains all the fields you need to set up a link to a Web address or to display
your data using an XSLT Style Sheet. In the first example, you add a URL View and link the URL to the Customer
Website field. As you select sales orders for different customers in the query, the URL sheet automatically displays
each customer’s website.
The second example shows you how to add an XSLT Stylesheet View that displays a summary of all activity for
the customer record you select.

370 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Add a URL Link to Display the Customer Website

To link a URL to the customer’s website, the query must contain the Customer Website field. In this example,
you are using a query that already contains this field.

1. From the New menu, select New URL/XSLT View.

The Dashboard URL/XSLT Properties window displays.

2. Enter a Caption for the URL. The text entered here displays in the title bar of the URL on the dashboard.
By default, the Caption contains Epicor’s Web address. In this example, enter Customer Website.

3. If you want to display a specific website, enter a URL/XSLT Address. In this example, leave this field blank
so you can link to different websites based on the record selected in the dashboard.

4. In the Publisher field, select EPIC03-CustTrackerOrders01 - Order Query for Customer Tracker:
Customer_CustURL. The Publisher field contains all the columns that you selected to publish from the
query. As you choose orders for different customer records, the URL/XSLT view uses the customer website
published from the query to update the website.

5. Click OK.

ICE 3.0 | 10.0.700 371


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

6. Notice the URL/XSLT icon now displays in the Tree View of the dashboard.

7. Now when you select a sales order from the Open Sales Orders grid, the customer website displays on
the dashboard.

8. You can move this sheet to create separate sheet on the dashboard. To do this, drag the Customer Website
panel up so that the gray outline forms a notch at the top.

9. When you release the mouse, the Customer Website sheet displays as its own sheet.

The Process Link

You use a Process Link on the dashboard to create a direct link to a system program commonly used; for example,
Sales Order Entry, Job Entry, Customer Entry, W2 Processing, and so on. Once the process is linked to the
dashboard, it can be launched from the Actions menu on the dashboard.

A user must have security access to any function (program) to


be able to launch it from the dashboard.

372 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Process Link Properties

Use the Dashboard Process Link Properties window to define the linked programs and then test its deployment.

Add a Process Link for Customer Entry

To add a Process Link to the Customer Entry program:

1. From the New menu, select New Process Link.

The Dashboard Process Link Properties window displays.

2. Click the Process ID button to find and select the program you want to link to the dashboard.

3. Click the Search button in the Menu Process Search window.

ICE 3.0 | 10.0.700 373


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

4. Select the entry program the primary users of the dashboard can access. In this example, select the Customer
menu process (ID ARMT1010).

5. Click OK.

6. To test the process link, click the Test button to launch the Menu Process ID.

7. In the Dashboard Process Link Properties window, click OK.

8. Notice the Customer program icon now displays in the Tree View.

It also displays in the Actions menu. When you deploy this dashboard to the menu, users access the Process
Link for the Customers program from the Actions menu of the dashboard.

374 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Publish and Subscribe Functionality

Use the unique dashboard framework to publish data from one query and subscribe to another query. This feature
displays related information when a record is selected in the dashboard and also in the title bar.
In order to use Publish and Subscribe functionality, you must first have multiple queries on the dashboard that
display related information. In this example, you add a second query to display sales order line item shipment
information. Once this new query is added to the dashboard, you are able to use Publish and Subscribe. As you
select a sales order from the Open Sales Order or Zero Dollar Orders grids, the related shipment information
displays for that order.

Add a Secondary Query to Display Line Item Shipment Information

The second query you add to the dashboard, zCustomerShipments, displays line item shipment information.
To add a second query to the dashboard:

1. From the New menu, select New Query.

The Dashboard Query Properties window displays.

2. Click the Query ID button to find and select the zCustomerShipments query.

3. Select the Auto Refresh on Load check box.

4. Click OK.

ICE 3.0 | 10.0.700 375


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

5. Click the Refresh button on the Standard toolbar to execute the new query and retrieve the data.

6. To change the title of the grid view, in the Tree View, right-click the zCustomerShipments grid icon and
select Properties.
The Dashboard Grid Properties window displays.

7. In the Caption field, enter Shipment Details.

8. Click the Clear All button.

9. Select the Visible check box for each field you want to display from the list. In this example, select the
following fields:
• ShipHead_ShipDate
• ShipDtl_PackNum
• ShipDtl_PackLine
• Calculated_QtyShip
• ShipDtl_OrderNum
• ShipDtl_OrderLine

376 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

10. Click OK.

Publish

Information published out from one query can be used to display on the title bar, as well as for subscription by
another query. In a previous example, you published the Customer Name to the title bar of the dashboard. In
this example, you publish the Order Number and Order Line from the EPIC03 – CustTrackerOrder01 query. Since
shipment information is stored at the line item level, you need to both publish the order number and order line.

Publish Fields from a Query

To publish fields from a query:

1. In the Tree View, right-click the EPIC03CustTrackerOrderso1 query icon and select Properties.

The Dashboard Query Properties window displays.

2. Navigate to the Publish sheet.

ICE 3.0 | 10.0.700 377


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

3. From the Publish Columns list, select OrderHed_OrderNum and OrderDtl_OrderLine.

4. Click OK.

Subscribe

To have a view subscribe to published data, you use a Filter in the Dashboard Grid Properties window. Similar to
a filter which limits the data that displays, you can apply a filter that only displays data in a particular field when
it is equal to the value of the data published. In this example, a filter is applied to the Shipment Details grid. The
filter uses both the Order Number and the Order Line published from the EPIC03-CustTrackerOrders01 query.
This limits the shipment detail to display only the line item selected in the Open Sales Orders and Zero Dollar
Orders grid views.

Apply a Filter that Subscribes to the Published Order and Line Number

To apply a filter that subscribes to published data:

1. In the Tree View, right-click the Shipment Detail grid icon and select Properties.

The Dashboard Grid Properties window displays.

2. Navigate to the Filter sheet.

3. From the ColumnName list, select the field you want to filter on. In this example, select ShipDtl_OrderNum.

378 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

4. From the Condition list, select = (equals).

5. From the Value list, select EPIC03CustTrackerOrders01 - Open Orders: OrderHed_OrderNum. This
entry filters the data based on the order number published from the query.

Notice the Value list contains a value for each of the


published data fields.

6. Press the Enter key to add a second filter to the grid properties.

7. From the ColumnName list, select the second field you want to filter on. In this example, select
ShipDtl_OrderLine.

8. From the Condition list, select = (equals).

9. From the Value list, select CustTrackerOrders01- Order Query for Customer Tracker:
OrderDtl_OrderLine. This second entry filters the data based on the order line.

10. Click OK.

11. Notice the Shipment Details grid icon now displays a satellite icon with an arrow pointing down in the
Tree View of the dashboard. This indicates this grid view is subscribing to published information.

12. The EPIC03CustTrackerOrders01 query icon also displays a satellite icon in the Tree View, except this
icon shows an arrow pointing up. This indicates that information is being published out of this query.

The Dashboard Browse

Use a Dashboard Browse to add a standard search button on the dashboard along with the Navigation toolbar.
The standard search button (indicated by a binoculars icon) enables users to start a search for records within a
dashboard. Users leverage the Navigation toolbar to scroll through selected records, or select a specific record
from a drop-down list of search results.

ICE 3.0 | 10.0.700 379


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

The Dashboard Browse is added to the query level of a dashboard using a special filter on the query. You must
also determine for which field you are using the search. For example, you can use the Part Number field in the
Part master file.

Add a Dashboard Browse to the Dashboard

Similar to an Advanced Search (tracker view), use the Dashboard Browse to select specific records to display in
the dashboard. In this example, you add a Dashboard Browse to the EPIC03CustTrackerOrders01 query.

1. In the Tree View, right-click the EPIC03-CustTrackerOrders01 icon and select Properties.

The Dashboard Query Properties window displays.

2. Navigate to the Filter sheet.

3. From the ColumnName list, select the field you want to search by. In this example, you want to enable the
search by sales order number so you select OrderHed_OrderNum.

4. From the Condition list, select = (equals).

380 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

5. From the Value list, select Dashboard Browse. This option displays at the bottom of the list of values.
The Dashboard Browse Properties window displays.

6. The value in the Browse Label field displays in the navigation tools area in the toolbar. In this example,
Order: is the default label that displays; however, you can change this if you want.

7. Select the column that you want to display in the Display Column field. The values in the column selected
display in the drop-down list of the navigation tools area. In this example, OrderNum is the default value
that causes the order numbers to display for browsing.

8. Select the columns you want to display in the drop-down list of the Navigation toolbar from the Drop
Down Columns list. In this example, select OrderNum and CustomerName.

9. Click the White Arrow button to move them into the selected columns list.

10. Select the Primary Browse check box. By selecting this option, the Dashboard Browse is placed on the
toolbar of the dashboard as the primary search mechanism.

A Dashboard can contain more than one Dashboard


Browse. Each query that is added to the Dashboard can
have its own; however, one is indicated as the Primary
Browse. A Primary Dashboard Browse displays next to the
Standard toolbar at the very top of the window above
the contents pane of the Dashboard. A Dashboard Browse
that is not marked as Primary displays within the Contents
pane of the Dashboard at the same level as the query.

ICE 3.0 | 10.0.700 381


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

11. Select the Manage Widths check box. Click the drop-down list to select the display option you want to
use to manage the width of the dashboard browse. By default, it automatically formats to the width of the
data.

12. Click OK.

13. Click OK in the Dashboard Query Properties window.

14. Notice the Dashboard Browse displays on the toolbar of the dashboard, so you can find and select specific
orders using the standard Sales Order Search window.

382 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

15. Click the Binoculars button on the Dashboard Browse to launch the Sales Order Search.

16. From the Search window, select the records to display in the dashboard browse.

17. Click OK.


Now you can navigate through each sales order record using the standard Navigation Tools in the Dashboard
Browse. As you select each record, it displays on the dashboard.

Dashboard User Notes and Tech Notes

The Dashboard User Notes and Tech Notes are areas where you can store specific documentation or notes about
the current dashboard. While you are in Developer Mode, you can update both User Notes and Tech Notes. Users

ICE 3.0 | 10.0.700 383


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

who do not have Dashboard Designer privileges can only maintain the User Notes, but can still view the Tech
Notes.

Update Dashboard User Notes and Tech Notes

1. To open the Dashboard Notes window, click the Notes icon on the Standard toolbar.

2. Enter User Notes. User notes are visible only to the specific user who entered them.

3. Enter technical notes in the Tech Notes field. All users can view the notes you enter here.

4. Click OK to save and exit the window.

384 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Dashboard Properties

Just like each view on the dashboard contains unique properties, the dashboard itself has its own properties
where you can define the additional characteristics about the dashboard.
Located on the General sheet of the dashboard, you can use the Title Bar Subscribers to publish more than one
field to the title bar of the dashboard. This feature is available when yu have multiple queries publishing
information, and you want to indicate the various queries that are used on the dashboard.
You can also make the dashboard available as an Advanced Search so that users can access this dashboard from
a standard search window. The Advanced Search functionality is designed around the concept of “Like” fields.
Similar to the “Like” fields used in a BAQ Search, the Advanced Search also uses “Like” fields; however, the data
displays as a dashboard and opens in a separate window on your workstation. You can then use the dashboard
to search for specific data, select a record, and retrieve the record back to the original program from which you
were searching.

Advanced Searches are available to use wherever you can


launch a search window. This can be launched either from a
search button or through a context menu search option. Read
the Advanced Search section in Chapter 5: Searches to learn
how to access an Advanced Search.

Modify the Dashboard Title Bar

In this example, you will use the Customer Service Dashboard to publish additional columns from the Customer
Shipments query for display on the Title Bar of the dashboard.

1. In the Tree View, right-click the zCustomerShipments query icon and select Properties.

The Dashboard Query Properties window displays.

ICE 3.0 | 10.0.700 385


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

2. Navigate to the Publish sheet.

3. From the Publish Columns list, select ShipDtl_PartNum.

4. Select the Publish to Title check box.

5. Select ShipDtl_PartNum from the drop-down list.

6. In the Title caption field, enter Shipped Part:.

7. Click OK.
Now as you select an order that has shipment detail, the part number for the line item shipment displays
on the title bar.

8. Notice the Titlebar Subscribers area on the General sheet now displays the newly added ShipDtl_PartNum.

386 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

Enable the Dashboard as Advanced Search

To enable the Customer Service dashboard as an Advanced Search in the Part program:

1. Navigate to the General sheet of the dashboard.

2. When you select the Include Tree on Dashboard Assembly check box, the application displays a tree
view on the dashboard for your users to navigate. The nodes of the Tree View display the primary query
data published from the dashboard.

3. Navigate to the Adv Search sheet.

4. Select the Advanced Search check box.

5. From the Available “Like” columns list, select OrderHed.OrderNum. The key fields of your dashboard
display in this list; use them to search throughout several programs in the application.

6. Click the White Arrow button to move it to the Advanced Search “Like” columns list. When fields in
your query are selected as “Like” Columns and the same field is used for searching in various system
programs, the dashboard displays as a search option in the programs search form.

7. From the Available “Like” columns list, select Part.PartNum and click the White Arrow to move it to
the Advanced Search "Like" column list.

8. Click Save on the Standard toolbar.

The dashboard is now available as an advanced search option anywhere that you can search for sales orders
and/or parts.

To review how to access and use an advanced search, read the


Advanced Search section in the Searches chapter.

ICE 3.0 | 10.0.700 387


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

Dashboard Modification

Now that you have learned how to create your own dashboard, you can easily modify an existing dashboard. It
is strongly recommended that you first make a copy of the dashboard you want to update, and then save it with
a new name. You can modify a dashboard delivered by Epicor or modify custom dashboards using this same
method. The example below demonstrates how you copy a standard delivered dashboard and save it with a new
name so you can modify it.

Copy a Dashboard

In this example, you open the standard Job Status dashboard and save it with a new name so that you can modify
it.

1. Click the Definition ID button in the Dashboard window.

2. The Dashboard Search Form window displays. Click the Search button and select JobStatus from the
search results.

388 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

3. Click OK.
The System Dashboard Warning message displays.

4. Click OK.

ICE 3.0 | 10.0.700 389


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

5. From the File menu, select Copy Dashboard.

6. In the Definition ID, enter a unique identifier for the dashboard. In this example, enter MyJobStatusDbd.

7. Click OK.
You can now modify the dashboard however you want. You can add new queries or columns, apply filters,
or modify the advanced search.

Multi Threaded Save

Use the Multi Threaded Save functionality when you want multiple rows to update through a series of threads.
This functionality improves performance when you have a large amount of data to update. If you activated multi
threading or you wish to save the records through this process, you need to display the Multi Threaded Save
window.
In this example, use the Customer Contact Update dashboard created in the Updatable Dashboards section.
To access this functionality on the updatable dashboard:

390 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

1. Click the Down Arrow next to the Save button and select the Multi Threaded Save option.

As you import data from an .xlsx spreadsheet, you can


also select the Multi Threaded Save check box. When
you click Save on the dashboard, the Multi Threaded
Save window displays.

2. The Multi Threaded Save window contains parameters you define. To help you decide what values to
enter in these parameters, review the Records to Update value. This value indicates how many records
you will save through this process.

3. If you want to update records using multiple threads, select the Submit in batches check box. You can
now define how many batches, or threads, you wish to use to save the data.

You can also indicate you wish to update the entire


collection of rows at once. To do this, clear the Submit in
Batches check box.

ICE 3.0 | 10.0.700 391


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

4. In the Submission batch size field, enter the number of records you will save in one thread. When you
save the data, these records all process at the same time.

5. In the Submission threads field, enter the number of threads you will use to process the data. You can
enter up to 10 threads.

6. Click Start.

7. The Processing Statistics section now displays the progress of the Multi Threaded Save. As records are
saved to the database, the values in the Records Processed and Percent Complete fields increase. These
fields also report any errors that occurred as well as the process performance times.

Use these values to determine the optimal performance for multi threading. If you update large amounts
of data, modify the Submission batch size and Submission threads values each time you run this process to
discover the combination that gives you the best performance.

8. Click Close.

9. Click Cancel in the Deploy Dashboard window.

Reusing Views

You can use the Publish Views functionality to publish views from one dashboard and make them available for
reuse on another dashboard. The view then displays in the Available Views panel on any dashboard, and you or
other users can select this view for display on a different dashboard. This feature gives you a convenient way to
display any view for reuse on another dashboard.
In the following example, you will publish the Customer List view from the Customer Contact Update dashboard
created previously in this chapter within the Updatable Dashboards section. You will then open the Opportunity
Quote Status dashboard and add this view to it.

392 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

1. In the Tree View, right-click the Customer List grid and select Publish View.

You can also publish a view from within the Dashboard View Properties window of any view by selecting
the Publish View check box.

2. In the Published View Properties window, view the Dashboard Caption field that displays the source
of the view.

3. In the Published Caption field, enter a name that will display in the list of Published Views.

4. In the Group field, enter or select a name of the group you would like to link to a published view.

5. Enter a Description for the published view.

6. Click OK.

ICE 3.0 | 10.0.700 393


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

7. To display the Available View panel, from the View menu, select Published Views.

8. The Available Views panel displays the list of all published views at the bottom of the Tree View.

9. If you want to un-publish a view, right-click the view in the Tree View and select Un-Publish View. In this
example, leave the view published.

10. Click Save.

11. To clear the dashboard, click the Close All button on the Standard toolbar.

12. To the confirmation message, click OK.

The current Dashboard clears.

394 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

13. You return to the Dashboard program. You can now reuse this view on another dashboard. In this example,
reuse it on the Opportunity/Quote Status dashboard.

In the Definition ID field, enter Opportunity/QuoteSts to open the Opportunity Quote Status
Dashboard. This record is a copy of the standard system Quote Status dashboard.

14. Click Refresh to run the query and populate the dashboard data.

15. Notice the Available Views panel displays the previously published Customers List view.

16. To add the published view to the current dashboard, select the view from the Available Views panel and
click Load Published View.

ICE 3.0 | 10.0.700 395


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

17. Now synchronize the information between views. Do this by publishing the Customer Number from the
zQuoteStatus query and subscribe to the value using the Customer List view.

In the Tree View, right-click the zQuoteStatus query icon and select Properties.

18. In the Dashboard Query Properties window, navigate to the Publish sheet.

19. Select the check box next to the QuoteHed_CustNum.

20. Click OK.

396 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboards | Chapter 5

21. Change the Customer List view to subscribe to the value of the Customer Number published from the
zQuoteStatus query.

In the Tree View, right-click the zCustomer01 query icon and select Properties.

22. Navigate to the Filter sheet.

23. From the ColumnName list, select Customer_CustNum.

24. From the Condition list, select = (equal).

25. From the Value list, select zQuoteStatus-OpportunityStatus: QuoteHed_CustNum.

26. Click OK.

ICE 3.0 | 10.0.700 397


Chapter 5 | Dashboards Epicor ICE 3.0 Tools User Guide

27. The dashboard now displays the Customer List grid view. This view subscribes to the value of the customer
number on the selected quote. You are now re-purposing this view for display within a different dashboard.

398 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

Chapter 6: Dashboard Utilities

The application contains several tools you can use to create, globally modify, deploy, and manage dashboards. The
Dashboard Utilities chapter explores each available tool. If you need to heavily customize a dashboard, you should
leverage these important utilities. You use these utilities to manage both smart client dashboards and mobile device
dashboards.
The utilities are organized into the following categories in this chapter:
• Export and Import Dashboards
• Build and Deploy a Dashboard to the Main Menu
• Create and Deploy Mobile Device Dashboards
• Dashboard URL Query Phrase Subscribers
• Epicor SharePoint Publisher

Export and Import Dashboards

You can export dashboards from your Epicor application. These dashboards are then stored as an archive on your
personal directory. You can then import them back into any database when you need.

Export
Two export options are available:
• Export Dashboard Definition – This option exports the dashboard to a specified location as a .dbd file. This
file includes all the views, properties, and layouts that you defined in the dashboard.
• Export Dashboard and BAQs – This option exports the dashboard definition and all the queries used on
the dashboard. This option is useful when you have created your own queries and you do not want to copy
the queries separately to another database or company.
In this example, export a copy of the Customer Service dashboard (created in the previous chapter) along with
the business activity queries used to display its data.

ICE 3.0 | 10.0.700 399


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

1. From the File menu, select Export Dashboard and BAQs.

The Export Dashboard Definition window displays.

2. Notice the Export Dashboard Definition window defaults to the Export folder on your local machine.

3. In the File name field, enter CustomerServiceDB.

4. The file type defaults to Dashboard Definitions (*.dbd).

5. Click Save.

400 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

Import
When you export a dashboard, you can import it into the application with the Import Dashboard Definition
option.
To import the Customer Service dashboard into the application:

1. From the File menu, select Import Dashboard Definition.

The Import Dashboard Definition window displays.

2. Notice the Import Dashboard Definition window defaults to the Export folder on the local machine.

ICE 3.0 | 10.0.700 401


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

3. Select CustomerServiceDB.dbd from the Export folder.

4. Click Open.
The Rename Dashboard Definition window displays.

5. In the Definition ID field, enter CstrSrvcDsbd.

6. Click OK.

The Import BAQ Options window displays only if you are


importing a dashboard definition (.dbd) file that contains
queries.

The Import BAQ Options window displays.

7. To replace an existing query with the imported query, select the Replace existing check box for a selected
query.

You cannot replace standard system queries (identified


by the letter z). Rather, you must import the query as new.

8. If you do not want to replace an existing query with the imported query, clear the Replace existing check
box and enter an ID in the New BAQ ID field. Be sure the BAQ ID conforms to the custom query naming
conventions as described in the Business Activity Queries chapter.

9. Click OK.

402 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

10. After the import is complete, click Save.

Now you can modify the dashboard as you need.

Build and Deploy a Dashboard to the Main Menu

After you finish designing a dashboard, you need to both build and deploy it to your users. You use the Application
Builder process to compile the dashboard definition into a UI finished assembly and then deploy it to the server.
When the dashboard definition is compiled, you deploy it to the Main Menu and the Favorites Bar where users
can access it. You can then customize and personalize the dashboard as described within the Epicor ICE User
Experience and Customization Guide.

Test and Deploy the Dashboard as a UI Application


You can view the dashboard as a finished assembly by testing the UI application. Once you test it, you can deploy
it to the menu for other users.

ICE 3.0 | 10.0.700 403


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

1. From the Tools menu, select Deploy Dashboard.

The Deploy Dashboard window displays.

2. Click the Test Application button.

The dashboard assembly displays in a new window

404 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

3. View the compiled assembly you will deploy to end users. Typically, you test the dashboard functionality
and then close the test dashboard.

4. The results of the Test Application now display in the Deploy Dashboard window.

5. Select the Deploy Smart Client Application check box if you want the dashboard to display as a program
on the Main Menu within smart client installations.

6. Select the Add Menu Tab check box if you want the dashboard to display as a separate tab on the Main
Menu.

7. To add the dashboard as an option to the Favorites menu, select the Add Favorite Item check box.

8. If you want this dashboard available from Epicor Web Access, select the Generate Web Form check box.

For more information about developing Web Access


forms, read the Customization Utilities chapter in the
Epicor ICE User Experience and Customization Guide.

ICE 3.0 | 10.0.700 405


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

9. To generate the dashboard for use on a mobile device, select the Generate Mobile Application and
Available for Mobile Menu check boxes. These check boxes are only available if the dashboard is designed
as a Mobile Device Dashboard.

To learn more about Mobile Dashboards, read the Mobile


Device Dashboards section later in this chapter.

10. Click Deploy.

11. Notice the Application Builder message displays the location where the .dll file is deployed on the server.

12. Click OK and close the dashboard.

Access New Dashboard

Once you deployed the dashboard, other users may use it.
Here's how other users can access the dashboard you created:

406 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

1. When you use the ERP application using the Classic Style click the Favorites bar on the Main Menu.

2. It contains a Favorites Group called Dashboard Assemblies. Since you deployed the dashboard as the
Favorite item, notice the Customer Service Dashboard now displays as an icon you can select and launch
from within this group.

3. Also, in the Classic Style, the Menu Tab on the Main Menu now contains the Customer Service Dashboard.
The dashboard displays when you select the tab.

4. When you use the ERP application using the Modern Shell style, the dashboard displays as a tile within the
Dashboard Assemblies Favorites group on the Home page.

ICE 3.0 | 10.0.700 407


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

5. In the Classic Style, you can quickly add the dashboard to the menu using the drag and drop functionality.
You first select the folder on the Main Menu where you want the dashboard to deploy. In this example, you
navigate to: Sales Management > Order Management > General Operations

6. To add the dashboard assembly to the menu, from the Options menu, select Developer Mode.

In order to use the Developer Mode option, you must


have Customize Privileges. This is assigned in User Account
Maintenance.

408 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

7. Right-click the Customer Service Dashboard on the Favorites Bar and drag it to the selected menu
location.

8. Click OK to confirm you want to copy the item to the Main Menu.

9. Now the dashboard is available to all users who have security access to the selected menu.

The dashboard is automatically assigned a unique menu


ID when it is added to the menu.The menu ID is an eight

ICE 3.0 | 10.0.700 409


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

digit code, for example, UDDBXXXX (where XXXX is a


numeric value automatically assigned). You can view this
information in Menu Maintenance.

Create and Deploy Mobile Device Dashboards

The Epicor Mobile Access module supports access to mobile dashboards. Mobile dashboards are generated as
web applications that run on a number of mobile browsers including the BlackBerry® and iPhone™ devices. By
utilizing updatable business activity queries (BAQs) and the Mobile Dashboard functionality, you can create custom
data entry mobile web pages that users can access and update data directly from their phones and other mobile
devices.

Assign User Privileges


You must activate a security privilege in order to have access to the mobile device functionality. You assign this
user privilege in User Account Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

1. Enter the User ID.

410 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

2. On the Options sheet, select the Allow Mobile Access check box.

Recall you must be also granted the Dashboard Developer


permission to create a new dashboard from scratch or
update an existing one.

3. Click Save on the Standard toolbar.

Create a Mobile Device Dashboard


You can target any dashboard you create to be available for use on a mobile device. If you have a dashboard
you use within the application, make a copy of this dashboard and then indicate this copy will be used on the
mobile device. In that way, you can make changes to the mobile dashboard that will not impact the standard
application. Be aware that some smart client dashboard features are not supported on a mobile device, such as
Tracker Customizations, Report Links, Report Views, and Process Links.
In this example, you will make a copy of the Customer Contact Update dashboard created in the previous chapter,
and then generate it for use on a mobile device.
Menu Path: Executive Analysis > Business Activity Management > General Operations > Dashboard

This program is not available in the Epicor Web Access.

To create a mobile device dashboard:

ICE 3.0 | 10.0.700 411


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

1. Click the Definition ID button to find and select the dashboard you want to target for use on a mobile
device. In this example, select ABC_CustContUpdate.

2. From the Tools menu, select Generate Mobile Dashboard.

The Generate Mobile Dashboard window displays.

3. Select the Show in Designer check box.

4. Click OK.

412 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

5. A warning message alerts you that certain features of the dashboard are not supported on mobile devices.
Click OK.

6. A new dashboard definition is created for the mobile version of the dashboard. In this example, the new
Definition ID is ABC_CustContUpdate_m.

7. Notice the Target Mobile Device check box is now selected. This indicates the dashboard will display on
a mobile device interface.

8. Use the Mobile Navigation sheet to define how to navigate between the views on the mobile device
dashboard.

9. Use the Mobile sheet to test how the dashboard data displays on the mobile device.

Both the Mobile Navigation and Mobile sheets are discussed in the next sections.

Define Mobile Navigation


Use the Mobile Navigation sheet to define Flows and Jumps; these interface functions set up how users navigate
a dashboard’s interface on the mobile device.
Flows control the order in which different views display on a mobile device, and which view is available depends
on the navigation buttons selected on the mobile device. Jumps control what forms users can directly access.
The Jumps display in a drop-down list on a mobile device, so users can select options on this list to quickly navigate
and display these views.

ICE 3.0 | 10.0.700 413


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

1. Navigate to the Mobile Navigation > Flow sheet.

2. Flows are automatically defined when the mobile dashboard generates, but you can change the order to
create the flow you want. In this example, the Customer List grid displays first when the dashboard opens
on a mobile device. The Customer Contacts grid is the next view that displays; it contains the contacts linked
to the selected customer.

3. Navigate to the Mobile Navigation > Jumps sheet to define which view users can immediately display, or
jump to, from each view. These views display as available options in a drop-down list from your mobile
device. For example, from the Customer List view, users can quickly display the Customer Contacts list for
that customer, and also the Advanced Search view. Jumps are helpful when a dashboard has many views
and you need to set up several ways for users to navigate around the mobile device dashboard.

4. As you select different Jump names, you can define the Jump to Page for each view. In this example, select
Grid: Customer Contacts. The Available Jump Pages display.

414 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

5. Select the Available Jump Page you want.

6. Click the Right White Arrow to add the option to the Jump To Page list.

7. In this example, the Advanced Search view is now available from the Customer Contacts grid view.

8. Navigate to the Mobile sheet to see how the dashboard displays on a mobile device.

9. Click Refresh to populate the data.

10. The Customer List displays in the mobile device format.

11. Select a customer from the list. In this example, select Ace Molding.

12. Click the Right Blue Arrow to see the next view defined on the Flow sheet.

ICE 3.0 | 10.0.700 415


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

13. In this example, you now see the Contact List for the Ace Molding customer as this customer was selected
in the previous Customer List view.

14. Click Save on the Standard toolbar.

Deploy Mobile Dashboard Device


Once you have defined the dashboard, use the Deploy Dashboard feature to make it available on both the mobile
device and the mobile device menu. The mobile menu is updated by this process, so you can maintain the forms
you deploy using Menu Maintenance within your Epicor application.

1. From the Tools menu, select Deploy Dashboard.

416 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

2. In the Deploy Dashboard window, select the Generate Mobile Application check box. This check box
indicates you want to create a mobile device application from the current dashboard.

3. Select the Available for Mobile Menu check box. This check box indicates you want users to navigate to
this mobile device dashboard from the mobile device menu.

4. Click Deploy.

5. When the process finishes generating the mobile device dashboard, click OK and close the dashboard.

Mobile Menu Maintenance


You can access and maintain the forms you deploy to the mobile menu from Menu Maintenance. Launch this
program from within your smart client installation.
Menu Path: System Setup > Security Maintenance > Menu Maintenance

This program is not available in the Epicor Web Access.

ICE 3.0 | 10.0.700 417


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

1. Notice the Mobile Menu in the tree view displays the Customer Contact Update mobile dashboard you
just deployed.

2. The deployment process created all the required fields for the new mobile menu option.

3. Use the Security sheet to define security and user access to the mobile dashboard.

Launch Mobile Dashboard


The images in this section display Epicor Mobile Access on an iPad® simulator. Other devices are supported by
this functionality, including those devices running on Android® and Blackberry® platforms. For a complete list
of supported devices, refer to the Application Help or contact your Epicor Customer Account Manager.
To launch a mobile dashboard on a mobile device:

418 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

1. Open the Epicor Mobile Access application on your mobile device and enter your User ID and Password.

2. Click Login.

3. The Main Menu displays the Mobile Menu and System options.

ICE 3.0 | 10.0.700 419


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

Configure Epicor Mobile Access


The System menu controls the behavior of dashboard pages, display parameters, a company and site for which
you want to display data and modify EMA appearance using themes.
To configure the main parameters of a mobile dashboard:

1. From the System menu, select Configuration.

420 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

2. The Records in Page field controls the number of records that display on a page.

When the mobile dashboard runs, you will use the navigation buttons to display another set of records.

3. The Client Pages field controls how many pages should be cached on the client (browser).
For example, if you set up a grid to display 5 records, you can specify a number of pages to be cached; for
example, 3. This means 5 records will be displayed and two more pages - total of 10 records will be cached
on the local client.

4. The Editing in grid check box controls if editing is allowed directly in a grid.
You can use this check box to disable automatic keyboard pop-ups, each time you touch a mobile grid.

5. To display mobile dashboards not yet made available for users by placing the dashboard on the Mobile
Menu, select the Non published menu check box.
When you are working on a mobile dashboard in a smart client, you have an option not to place it on the
Mobile Menu and make it available for EMA users until you finish designing the dashboard. To do this, on
the Deploy Dashboard screen, leave the Available for Mobile Menu check box clear. To view and test
this dashboard in Epicor Mobile Access, select the Non published menu check box.

6. To display a red mark next to all required fields, select the Display Required Indicator check box. This
indicator displays either on a column header within a grid or next to a field label within a dashboard tracker.

7. If you wish to display icons next to Main Menu items, select the Menu Icons check box.

8. In mobile dashboards, you have an option to override a default width of a screen by entering a value in the
Default Width Override field. If you leave this field blank, the default value defined for a detected mobile
device is used.

9. To override a default width of entry controls used in a mobile dashboard, enter a value in the Control Width
Override field.
If you leave this field blank, the default width of controls defined for a detected mobile device is used.

ICE 3.0 | 10.0.700 421


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

10. From the Theme list, you can select one of the available themes for the detected mobile device or style you
select.
You can add new themes or alter existing ones using the Theming menu option.

11. The Style field populates automatically based on a detected mobile device and defines mobile dashboard
parameters such as screen width or set of available themes.

Select Company
On the System menu, you have an option to select a company for which you want to display the mobile
dashboards.
To select a company:

1. Click the Companies menu option.

422 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

2. From the list, select a company you want to use.

3. Click Done to confirm your selection.

4. The Mobile Menu option now displays the mobile dashboards available for the selected company and site.

ICE 3.0 | 10.0.700 423


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

Change Language
Within your Epicor application, you can add or update languages used to display text in windows, menus or
messages. In Epicor Mobile Access, you can access the same set of languages you define in the source Epicor
application.
To change the language in your EMA environment:

1. From the System menu, select Languages.

424 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

2. From the list of available languages, select a language.

3. Click Done.

4. The menu controls now display in the selected language.

For more information, review the Language Maintenance topics within the Epicor ICE 3 User Experience
and Customization Guide.

ICE 3.0 | 10.0.700 425


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

Change Appearance
Epicor Mobile Access comes with the list of predefined themes you can use on your mobiles. Themes are a way
to customize predefined appearance according to your taste and preferences.
To create a new theme or change the existing one:

1. From the System menu, select Theming.

426 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

2. Select a predefined Style that controls the appearance of Epicor Mobile Access on your mobile device.

3. If you want to modify an existing theme, from the list, select an available Theme.

4. To create a new theme from scratch, select Add New.

ICE 3.0 | 10.0.700 427


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

5. Now select the View Mode you want to use to modify a theme.

6. The Normal View Mode option displays all mobile dashboard elements along with the color assigned to
them.
For example, to change the background color of the body element, first select a Style and a Theme you
would like to use on a mobile device. From the Colors list, select an available color you would like to apply
to the element, for example, Red. Within the element grid, locate the body element and next to the
background-color field, click the left arrow button to apply the selected color.

428 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

7. The Group By Colors option displays the list of colors currently used on mobile dashboard elements for
the selected style and theme.

For example, you can change the color of all elements that currently display in red. From the Colors list,
select the color you would like to use instead of red, for example, GreenYellow. Within the list of colors,
locate the Red color and click the left arrow button to apply the GreenYellow color you selected.

8. The Text option displays the selected theme in a CSS style sheet format.

ICE 3.0 | 10.0.700 429


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

9. When you complete creating or modifying a theme, click Done.


The theme is now available for use on mobile dashboards.

Clear Browser Cache


Use this option to refresh the EMA menu and clear the cached dashboard data on the browser.
To clear the cache:

1. From the System menu, select Clear Cache.

The cached information is now removed from the browser and the EMA menu is refreshed.

Test a Mobile Dashboard on a Mobile Device


To test a mobile dashboard on a mobile device:

430 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

1. From the Main Menu, select Mobile Menu.

2. Select the Customer Contact Update dashboard.

ICE 3.0 | 10.0.700 431


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

3. Click Refresh to retrieve the data for the Customer List on the dashboard. The Flows and Jumps defined
in the Dashboard program control the order in which the forms are loaded.

4. Select a customer. In this example, select Ace Molding Company.

5. Click View.

432 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

6. The details for customer Ace Molding display. Since the customer query on this dashboard is not an updatable
query, these fields are not updatable.

7. To return to the Customer List, click Cancel.

8. From the drop-down list, select EPIC06-UpdCustContacts: Summary.

You can then view Ace Molding’s associated contacts.

ICE 3.0 | 10.0.700 433


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

9. Click Refresh to retrieve the related contacts.

10. Two contacts display for this customer.

11. To update and edit the contacts for this customer, click Edit.

12. To enter a new contact for customer Ace Molding, click the New button.

The entry form displays in your mobile device.

434 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

13. Enter the new contact information.

14. Click Save.

15. The EPIC06-UpdCustContacts: Summary view now displays the new contact record you entered.

16. Log Off of the mobile application.

ICE 3.0 | 10.0.700 435


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

Dashboard URL Query Phrase Subscribers

You can set up a dashboard with a URL view that uses a phrase subscriber with a replacement value, or token.
This token pulls a value from a publisher and substitutes it within the query phrase for the subscriber. As records
are selected within a query view on a dashboard, this token updates with a value linked to the selected record.
The subscribing phrase then updates the URL view with the specific item linked to this record.

Create New Dashboard

First, you create a new dashboard. To supply the part information, use the delivered zPartTracker01 query.
To create a new dashboard:

1. Click the Down Arrow next to the New button and select New Dashboard.

2. Enter a Definition ID. In this example, enter URLSubscriber.

3. Enter a Description for the new dashboard.

436 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

4. To define the query for the dashboard, click the Down Arrow next to the New button; select New Query.

5. The Dashboard Query Properties window displays.

6. In the Query ID field, enter zPartTracker01.

7. Navigate to the Publish sheet.

8. To publish all the part records, select the Part_PartNum check box.

9. Click OK.
You return to the dashboard.

Create URL View

For this example, you will create a URL query phrase that links a part record to a specific image file. This image
file then displays within the dashboard. In order for this token to work correctly, you must have a series of graphic
files saved on your workstation or in another location your Epicor application can access.
To add the URL view:

ICE 3.0 | 10.0.700 437


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

1. From the New menu, select New URL/XSLT View.

2. The Dashboard URL/XSLT Properties window displays.

3. Enter a Caption for the URL view. In this example, enter My Part Image.

4. Now enter the URL/XSLT Address you need. Since your images are stored on your hard drive, you can click
the Ellipsis button to find and select the location. You can also enter the path directly. In this example,
you enter: C:\DL\zone\[MyPart].png
Notice you create a token in this address path. The [MyPart].png indicates this is a value you will update
from your publishing query. In this case, you want to update this value with the Part Number value, as all
of your graphic files within your image library use the Part Number value to identify each graphic file.

5. Define the query phrase subscriber. For this example, you need to create a subscriber that captures the Part
Number value from the publishing query and updates the subscribing token value. Navigate to the Query
Phrase Subscribers grid.

6. Click New.

438 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

7. Click the Publisher list and select the published field you defined on the query view. For this example, select
the Part_PartNum field.

8. Enter the Token this publisher will update. In this example, enter [MyPart].

9. Click OK.
You can now see this query phrase subscriber in action.

10. Navigate to the Dashboard sheet.

11. Select a part record from the query view.

12. Notice the part image displays within the URL view.

ICE 3.0 | 10.0.700 439


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

13. Select another part on the query view.

14. Notice a new part image displays within the URL pane.

Epicor SharePoint Publisher

Use the Epicor SharePoint Publisher functionality to display dashboards in the Microsoft® SharePoint® environment.
You leverage web dashboards to create SharePoint web parts that directly link to business activity queries (BAQs).
Web parts are integrated sets of controls for creating web sites you can use to directly modify, within a web
browser, the content, appearance, and behavior of web pages. All dashboard web parts directly access the Epicor
application server, so no web services or other intermediate layers are required to run web dashboards.
SharePoint web parts contain nearly the same functionality as Epicor dashboards. The data initially pulled into
the dashboard can be refreshed as needed. The Grid views contain both Order By and Group By functionality.
Web dashboards support publish and subscribe between views, so data within a grid view can update data with
a linked chart view. Web dashboards also link to the Performance Canvas for embedded Epicor EPM functionality.

® ®
To use ESP, Microsoft SharePoint 2007, 2010, or 2013
(preferred) must be installed and operational in your
environment. To create a link between the Epicor application
and Microsoft SharePoint, Epicor SharePoint Publisher must be
installed on the server.

The following sections describe how to create and modify a web dashboard on a Microsoft SharePoint 2013 site.

Create a New Web Part Page


To create a web part page:

440 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

1. Navigate to the Microsoft SharePoint website; for example: http://<server name>/default.aspx.

2. Click Site Contents.

3. Click Site Pages.

ICE 3.0 | 10.0.700 441


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

4. From the Files menu, select New Document and then Web Part Page.

5. Enter the Name of your dashboard.

6. In the Choose a Layout Template box, select an appropriate template for the new web page. In this
example, add five web parts using the Header, Footer, 3 columns template.

7. Select the Document Library where you want to save the Web Part Page.

442 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

8. Click the Create button.


The Web Part Page displays in Edit Mode.

Modify a Web Page


This section includes several features available for modifying a web page.
To modify a web page:

1. Based on the template you select, navigate to a section of the dashboard you want to modify and click Add
a Web Part.

ICE 3.0 | 10.0.700 443


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

2. From the Categories list, select Miscellaneous.

3. From the Web Parts list, select a view type. You can select the following dashboard web parts to display
on a web page:
• Epicor Publisher Chart View – Chart Views display query results through graphs and charts. Use this
graphical tool to quickly display and understand large quantities of data directly on a web dashboard.
• Epicor Publisher Gauge View - Gauge graphic acts as a visual indicator that updates, when selected
data changes within the query it monitors.
• Epicor Publisher Grid View – A grid view is the default view for every query you add to a dashboard.
Use this view to utilize a single-click dashboard deployment. This process is discussed later in this chapter.
• Epicor Publisher Top Navigator (Dashboard Browse) - While creating a dashboard in a smart client,
use the Dashboard Browse functionality to add a standard search button and a Navigation toolbar to
the current dashboard. You may use the same option on a web dashboard by selecting this web part.
• Epicor Publisher Tracker View – In dashboards, Tracker Views are primarily used to create an Advanced
Search. In a smart client, you have the possibility to customize the interface of a Tracker View. Epicor
SharePoint Publisher supports displaying of customized Tracker Views, so any modification you create
in a smart client will also display in a SharePoint environment.
• Epicor Publisher URL/XSLT View – Use this web part to display a website or an XSLT Style sheet on a
web dashboard.

4. From the Add part to drop-down list, select a section where the selected web part is placed.

5. After you select the view you want, click Add.

444 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

In this example, Sharepoint Publisher Grid View is selected.

6. The No dashboard selected, please setup webpart message displays.

You are now ready to set up the web part.

7. The Sharepoint Publisher Grid View window displays at the top of the web part page. The following
example shows you how to set up a grid view. These same steps apply to all other dashboard view types.

All Web Parts share a common set of properties that


control their appearance, layout, and advanced
characteristics. For more information on SharePoint
settings, review your SharePoint documentation.

8. In the ICE 3 Server field, verify and, if needed, update your application server address and port number.
If you do not know this information, contact your System Administrator.

9. If you want, select the Enable «Single Sign-On» check box. Single Sign-On (SSO) functionality simplifies
logging in to the web dashboard. When this property is active, a user only needs to log in to the application
once; this user can then access all the available functions without having to log into each one of them.

10. Optionally, select the Require credentials check box to ask a user for credentials once a new session is
opened.

11. In the EPICOR Login / Password fields, enter the appropriate credentials. These values are used to launch
the Epicor application. If the Single Sign-On feature is enabled, these fields do not display.

ICE 3.0 | 10.0.700 445


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

12. Click Apply.

13. Select a Current company.

In this example, select Epicor Education.

14. From the Dashboard to display drop-down list, select a dashboard. In this example, select
ABC_CustContUpdate.

15. Click Apply.

446 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

16. The available dashboard views display below the selected query. Select the check box next to the view you
want to display on your web dashboard.

17. When you finish setting up a web part, click OK.

Arrange Views Within the SharePoint Page


In the above example, five dashboard views were added to the header section of the new Sharepoint page. Use
the single click dashboard deployment to load all available views at once and use the drag and drop functionality
to move the views into the appropriate sections within the page.
To arrange views within a web page:

ICE 3.0 | 10.0.700 447


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

1. Select the dashboard view you want to move.

In this example, move the Customer Contacts view from the Header section to the Left Column section
of the SharePoint page.

448 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

2. Use the drag and drop functionality to move the view to a different section.

The Customer Contacts view now displays in the Left Column section.

Adjust the ESP Dashboard


To modify specific web part settings:

ICE 3.0 | 10.0.700 449


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

1. In the web part box, from the drop-down list in the top right corner, select Edit Web Part.

The Web Part Setup window displays.

2. If you want to use the paging functionality, expand the Grid settings node. In many situations, the paging
feature improves performance. This functionality stores result sets, or pages, in a temporary directory on
the server. You define how many records are included in each page. After the cached pages are stored in

450 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

this directory, the data request process can then move through each page instead of processing all of this
information at once.

3. To activate this functionality, select the Use paged render of grid check box. Enter how many Records
per page you want to store on the server. This value defines how many records are saved together in one
page (result set).

When you group records in a grid, the paging feature is


not available for use.

4. You can also control if data displays in a grid on startup using the Fill grid with data on initial
render option. When you add a grid that contains a lot of data, disable this option and use the filter to only
display data you need.

5. You can also manipulate the appearance of the grid by using several Grid Skins.

ICE 3.0 | 10.0.700 451


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

6. If you want to group related records through a specific column, click More Settings and select the field
you want to use within the Group results by field.

Web dashboards also display summarized data, but you


can only activate these properties within the smart client.
The summarized data will then display within the web
dashboard. Any changes made in the smart client
automatically update and display within the web (or web
client) dashboard.

7. When you finish setting up a web part, click OK.


Repeat these steps to continue adding other web parts to your web page template.

8. In the top left corner, click Stop Editing to switch to a standard view.

Web Dasher
Use the Web Dasher utility to manipulate SharePoint web parts. Leverage this tool to re-target web parts to a
different server or port or to change user credentials and so on. This tool is included as part of the Epicor SharePoint
Publisher installation.

452 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Dashboard Utilities | Chapter 6

1. From the Start menu, select All Programs > Epicor Software > Epicor Administrative Tools.

The Web Dasher window displays.

2. In the Sharepoint field, enter your Microsoft SharePoint website address. For example:
http://<yourservername>:<your port number>

3. To establish a connection to the server, click the Connect button.

ICE 3.0 | 10.0.700 453


Chapter 6 | Dashboard Utilities Epicor ICE 3.0 Tools User Guide

4. Notice the Tree View displays all available pages within the Epicor Publisher web parts. Use the Tree View
to select pages or web parts you want to modify.

5. If you need to change the application server name, select the check box next to the App Server field.

While you change these settings, select the check box


next to the field. If you make a change but do not select
the appropriate check box, the settings you changed for
this field will not be applied.

6. Select the Binding you need.

7. If you want to change the Company assigned to the web part, enter a different company in this field.

8. To always require credentials when accessing a page or specific web part, select the Require
credentials check box.

9. You can also modify the Login / Password required to launch this web part.

10. If you need to change the Epicor Web Access (EWA) address, enter a new value in the EWA field.

11. When you finish, click the Change settings button.

454 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

Chapter 7: Executive Dashboards

Use the Executive Dashboard functionality to display real-time, complex views of data. You can use this toolset to create
virtual tables that combine, or aggregate, information for quick retrieval and display. For example, this functionality is
ideal for viewing sales first by month (a monthly bucket) and then by customer. You could create a Business Activity
Query (BAQ) that gathers every order detail record for each customer; this creates a single sum of the calculated revenue
– like 50. Through an executive dashboard, however, you can immediately display both the customer information and
the revenue by month. This information is retrieved significantly faster as through the standard BAQ functionality.
You do this by creating executive queries. You use these records to create virtual cube tables that consolidate the
information. Each cube table uses a dimension pair to both pull and then combine the data. You then display the
results in a dashboard. Using another example, you need to look at revenue from a project that includes both field
service sales and product sales. By using cube tables, you can populate an executive dashboard’s data by running both
queries, one after the other, to first consolidate and then view the final revenue numbers.
When you measure this data through executive queries, you can get a global representation of nearly every aspect of
your organization’s current business flow. This chapter walks you through how to create an executive dashboard and
then release it to your users. Note this chapter builds on previous tools explored in the Business Activity Queries,
Dashboards, and Dashboard Utilities chapters, and in the Automatic Data Processing chapter in the Implementation
User Guide. You may want to review these chapters before you begin.

ShopVision Module

If your company uses the ShopVision module, you already have several executive dashboards available for review.
Use this module to display strategic data required for critical short-term and long-term decision making. The data
displays in a dynamic graphic tool that allows you to sort, group, and view data in a variety of graphic formats
such as a pie chart, bar chart, or line chart. Use the ShopVision dashboards as examples for building your own
executive dashboards.
The following is the list of available ShopVision dashboards along with suggested refresh intervals:

Dashboard Description Suggested


Refresh
Cash Flow Displays the weekly cash flow of a selected book. You can this Once a day
tracker to analyze where cash is moving; it divides the cash data
into different buckets like Open AR, Available Cash, Open Orders,
and so on.
Customer Shipping Displays aggregated shipping data through a series of dashboard Once a day
Performance views. Data is represented using color-coded graphs, charts, and
tables, and can be filtered by parameters such as customer, part,
site, and shipping method.
Site Performance Displays high-level summaries of data to enable executives to Once a day
monitor sites by different parameters, analyze performance, and
identify trends over various periods
Sales Order Backlog Monitors open orders by different parameters, such as customer Every four hours
Analysis and site, analyze performance, and identify trends over various
periods.

ICE 3.0 | 10.0.700 455


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

Dashboard Description Suggested


Refresh
Supplier Performance Displays high-level summaries of data to enable executives to Once a day
monitor supplier performance by different parameters such as
customer and site, analyze performance, and identify trends over
various periods.

How Executive Dashboards Work

Like most of the custom query tools within the application, the core data processing tool for an executive
dashboard is the Business Activity Query (BAQ). These queries can both pull specific data to view and run custom
calculations on the data before it displays. To learn how to create BAQs, review Chapter 4: Business Activity
Queries.
You create executive dashboards by using BAQs that populate the Ice.SysCube tables with data defined through
an additional query linked to the BAQ – the executive query. These executive queries read the aggregated (or
combined) data through multiple Field Maps that measure the data through two selected dimensions. You use
the Dimension IDs on each field map to display data on the dashboard.
Executive queries must be assigned to process sets you either schedule or manually run; the process set is a series
of tasks that execute when it is launched. If you automatically schedule the process set, you use the Schedule
Process Set program to link the process set to an automatic schedule. You create the automatic schedules your
application uses through System Agent Maintenance.
When the executive query runs, the executive dashboard updates its data to display current information.

For more information about refreshing data through a regular


schedule, review Chapter 1: Automatic Data Processing.

This flow chart shows you the process that occurs within the application:

1. The Business Activity Query (BAQ) first pulls the data from the database (DB).

2. The data is then processed through the Executive Query (EQuery). The query aggregates (combines) the
dimension data defined within its field mapping.

3. These dimension results are then saved to the database into the following tables:
• cube (Ice.SysCube)
• definition (Ice.SysCubeDef)
• dimension (Ice.SysCubeDim)

456 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

4. The dimension results are then queried using another BAQ. The results of the dimension data BAQ can be
used to filter against the current data. This data contains the values pulled when the last scheduled query
was run against the database. Note that if you do not run regular, frequently scheduled queries against this
database, however, it could result in out of date data results.

5. This second set of BAQs that pulls the results from the Ice.SysCube tables is used within the executive
dashboard. The final executive query data then populates the panels for display within the executive
dashboard.

Executive Dashboard Setup

Before you begin creating your own executive dashboards, you must first set up a schedule and a process set.
Then you create multiple Business Activity Queries. A minimum of five BAQs are required to both populate data
within the executive queries and then display this data on your executive dashboard. This section describes how
you create all of these base components.

Schedules
Recurring schedules are created through System Agent Maintenance. This program defines the system agent,
which is a file that controls all automatic transactions that occur throughout your Epicor application. Within the
system agent, you create schedules that occur during specific intervals – hours, days, weeks, or months.
You later link executive queries to an automatic schedule. The system agent monitors the system clock, activating
automatic schedules based on the current state of the clock. When the system agent activates a schedule, the
executive queries run.
In the example used in this chapter, the Daily Task Schedule is selected, indicating this executive query is run
once every work day. It may be set up as follows:

For more information on the system agent and its scheduling


functionality, review Automatic Data Processing in the
Implementation User Guide.

ICE 3.0 | 10.0.700 457


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

Process Set Maintenance


Use Process Set Maintenance to create process sets. Each process set launches automatic tasks – like executive
queries. You can also organize the order in which you want these automatic tasks to run within each process
set.
After you create a process set, you add other programs to this process set as an automatic task. You can use the
Executive Query program, for example, to add a selected executive query to a specific process set. Later, you can
launch Process Set Maintenance again to see all the tasks – in this case, executive queries – that automatically
run through this process set. You modify the sequence through which each task launches within the process set.
When you are satisfied with the assigned tasks and the order in which they launch, attach the process set to a
schedule through Schedule Process Set. This program is described later in this chapter.

Note that in order to create the executive dashboard described


in this chapter, you need to create a new process set; in this
example, name this process set Sales Order Backlog Status. For
more information on creating process sets, review Automatic
Data Processing in the Implementation User Guide.

The Business Activity Query (BAQ)


Use the Business Activity Query program to both update existing BAQs and create custom BAQs. These queries
are the building blocks for your custom executive dashboard. Primarily, you define what data displays through
each BAQ on your executive dashboard. By using the Query Builder feature within each BAQ, you create an SQL
query statement that is run to gather the data needed on your executive query.
The multiple BAQs you create define how the data is aggregated on your executive dashboard, so spend some
time refining what they display and calculate. It is also possible to link multiple tables and subqueries through
joins between them, so nearly unlimited BAQ combinations are available. Moreover, by using the External BAQ
functionality, you can retrieve data from external data sources and display results on the executive dashboards.

Leveraging this functionality does require some fundamental


knowledge of database concepts such as table relationships,
records, and field types. This knowledge helps you create
queries that have good performance and display the results
you want. To learn how to fully create and refine a BAQ, refer
to Chapters: Business Activity Queries and External Business
Activity.

458 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

You need to create a minimum of five BAQs to populate data within an executive dashboard. The following is a
brief description of each BAQ you need and what it does:

1. BAQ Against Data Details – Defines the base BAQ used to pull the data from the database. This chapter
uses the SalesOrderBacklog query as an example for a base business activity query.

2. BAQ Against Data Dimensions – You run this BAQ to define the dimensions used against the data, like
Country, Salesperson, and so on. You set up this BAQ within the Create Dimension BAQ and Executive
Query section later in this chapter.

3. Dimension BAQ – This BAQ pulls the dimension data from the first executive query. You set up this BAQ
within the Dimension BAQ section later in this chapter.

4. Dimension Details BAQ – This BAQ defines the dimension options that users can select from the executive
dashboard. You learn how to create this BAQ within the Dimension Details BAQ section later in this
chapter.

5. Data BAQ – This BAQ pulls the data from the first executive query. It locates the Ice.SysCube data that then
displays on the executive dashboard. You review an example of this BAQ within the Data BAQ section later
in this chapter.

Executive Dashboard Creation

The primary task you must do before you create an executive dashboard is plan ahead. First, define what data
you want to aggregate and display. Then as you begin creating your executive dashboard, start from the basic
components and work your way forward up to the final executive dashboard display. This reduces development
time and helps you precisely display the data you want.

Create an Executive Dashboard - Overview


To create an executive dashboard, you follow these primary steps:

1. Create one BAQ to be the source for the main executive query. This defines the cube table data that displays
in the executive dashboard.

2. Define the executive query and the dimension pairs you need by using this source BAQ. Add this executive
query to a process set.

3. Create a second BAQ that gathers the dimension fields and data that is combined with data from the first
executive query.

4. Next, create a second executive query that aggregates the dimensions from this second BAQ; this gives you
a unique list of the dimension data. Add this second executive query to the process set.

5. Run this process set immediately to populate both executive query Ice.SysCube tables with data. You need
this data to complete the development process. Be sure to define the automatic schedule during which you
want this process set to run.

6. Create the BAQs you need to display the executive query information on the dashboard. You create at least
three BAQs – one for the main Ice.SysCube data, another for the dimension IDs (field names), and a third
for the dimension details.

7. Create a new dashboard definition.

ICE 3.0 | 10.0.700 459


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

8. Add the queries, grid views, and chart views that display these BAQs on the new dashboard.

9. Deploy the dashboard onto the Main Menu.

Your executive dashboard is now ready to use. The rest of this chapter gives you details about all of the above
steps.
During this example, you use the SalesOrderBacklog BAQ as the base query for the custom executive dashboard.
This BAQ displays order backlog data. It displays details of open orders, for example, customer name, territory
region, due dates and product group information.

Executive Query
You use executive queries to create a cube of data gathered for display on the dashboard. This cube data is
contained within the Ice.SysCube tables. You first find and select the BAQ on which you add the executive queries.
You then define the specific fields that you want for the data; these fields populate the Ice.SysCube tables.
Each executive query has one or multiple field maps. Each field map contains one or two dimensions it uses to
evaluate the data. These dimensions can be any column within the selected BAQ; for example Product Group
and Order Date. You can also select calculated fields from the BAQ to generate unique lists.
You must also define each query’s Delete Action method. The query uses this method to refresh its data when
the process set activates it. Lastly, you indicate how this data is to be summarized. It can be summarized by BAQ
or Date; you can also choose not to summarize the data at all.
An executive query defines a set of field map records processed using the BAQs as a source and the Ice.SysCube
tables as the target. If you click Submit from the Executive Query program, the executive query tables listed in
the next section update once. It is suggested you save the executive query to a process set that updates the cubes
according to a schedule.

While you build an executive query, you can save its definition.
You can then retrieve the record to create additional mappings
or perform other modifications.

What It Adds
When a process set runs the executive query, three items are added to the database:
• Ice.SysCube table – This table contains the primary data record created by the executive query. It stores the
dimension pair and all the fields (defined through field mapping sets) aggregated by the executive query.
• Ice.SysDef table – This table contains all the Ice.SysCubeID values. It also contains the dates on which these
identifiers were created.
• Ice.SysDim table – This table contains the unique list of the BAQ data dimension fields mapped within the
executive query. Both the Dimension One and Dimension Two data field values are stored within this table;
because of this, you must use a filter to select the appropriate dimension list. These items are the values that
display within the Dimension ID panel within the executive dashboard. This contains the unique list of the
Mapped fields like Country, Product Group, Customer, and so on. The data contained within these fields, like
Mexico, France, Machined, Fabricated, ABC Inc., are not contained in this table.

Limitations
Some limits to executive queries:
• You can use any field from the selected BAQ as a dimension on each field map. Only two dimensions, however,
can be stored and analyzed within each field map.
• Dates must always be mapped to Dimension 2. Dimension 2 has special logic you use to both populate and
aggregate dates.

460 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

• The executive query only aggregates data as a summary and it does this by totaling numeric values. It populates
character field maps only if the data in that character column is the same for all the records in that dimension
pair. It cannot calculate averages or counts. Counts can only be done by using a business activity query that
contains a calculated numeric field equal to “1”.
• Only one BAQ column can be mapped to a specific data value field. You cannot merge field columns through
an executive query.
• Only the current company’s data can be displayed through the executive query.
• Likewise, these executive query processes cannot be synchronized between multiple companies. These processes
are scheduled internally within the current company.

Create the Base Cube Query


Menu Path: Executive Analysis > Business Activity Management > General Operations > Executive Query
To formulate the Executive Query against the source BAQ:

1. Click the New button on the Standard toolbar.

2. Enter the Cube ID. This value is the identifier for the executive query, so enter a value that identifies the
query’s purpose. As you will create references to this cube later in this chapter, for an easier naming you
can name the cube as Cube1. This value is used to identify this query’s task within a process set. You learn
more about how to add this query to a process set in the Schedule Process Set section later in this chapter.

3. Now click the BAQ ID… button to find and select the Business Activity Query onto which you will add this
query. In this example, you select a copy of the delivered zSVSalesOrderBacklog query used to retrieve sales
order backlog information.

4. The Delete Action indicates the action that runs each time data for the current cube record is refreshed.
Available options:
• Delete Entire Cube – All the data within the executive query for this specific CubeID is both deleted
and refreshed. This option is the default; it clears out all values in the query’s field map sets. This option
then displays completely new data when its information is refreshed. This delete action is typically used
when the executive query is not specific to the current date but is used to evaluate all the data within
the database.

ICE 3.0 | 10.0.700 461


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

If you run multiple executive queries in a process set for the same CubeID, then you should only use this
option on the first query. Any queries that are run after this query add information to the Ice.SysCube
table used by the executive dashboard.
• Delete Dimension Pair – This option only removes and restores the dimension pairs referenced within
this executive query’s field map records. Any dimension pair not in this executive query is left alone,
leaving the dimension pairs and their data intact in the Ice.SysCube tables contained within this CubeID.
Use this option when two BAQs are needed to populate the Ice.SysCube tables for a single CubeID used
as the source data for an executive dashboard. The executive dashboard pulls all the data from both
queries because the separate BAQs populate a single CubeID using different dimension pairs.
• Delete Nothing – This option does not remove any data. Instead, it adds new data to the existing data.
• Delete Pair By Summarization – This option removes and restores any dimension pair data generated
through the executive query. This option is useful if you select either the Summarize by BAQ or the
Summarize by Date check boxes. These check boxes are described later in this section.
For example, if you accidentally process this executive query twice on a specific Run Date, this delete
option can remove the data records for all the dimension pairs that were run earlier before starting the
second process run. This prevents data from being duplicated, as the executive query was run a second
time during the same date.

5. Select the Summarize by BAQ check box to indicate this executive query combines, or aggregates, the
data it pulls by using the specific BAQ. Select this check box when you want the data to be summarized
within the BAQ before it displays on your executive dashboard.

The Summarize by BAQ and Summarize by Date check


boxes can be selected with any of the Delete Actions
described previously in this section. These options give
you a lot of flexibility for the results in the Ice.SysCube
table. Also, if the Summarize by BAQ or the Summarize
by Date check boxes are not selected, the Delete Pair By
Summarization option works in the same way as the
Delete Dimension Pair option.

6. Select the Summarize by Date check box to indicate this executive query combines, or aggregates, the
data it pulls from the BAQ using a specific date. Select this check box when you want the summarized data
to be calculated by dates. Selecting this check box causes the Run Date field to become active; use this
field to define the specific date or calendar date on which this data is summarized.

7. If you select the Summarize by Date option, you next must define the Run Date for the executive query.
You can enter or select (using the drop-down calendar) a specific date. You can also select the Dynamic
check box. This changes the options for the Run Date drop-down list to regular calendar dates like Tomorrow,
Next Tuesday, First of Month, and so on.

8. Use the Schedule drop-down list to define when you want this query to refresh its data. The default value
is Now, indicating that the executive query runs immediately. In this example, the Daily Task Schedule is
selected, indicating this executive query is run once every work day. This schedule was created in the System
Agent; to learn how to do this, read the previous Schedules section.

You do not need to select a schedule within the Executive


Query program. Instead, you typically first add this
executive query to a process set and then schedule the
process set. All the queries assigned to this process set
are then run using the same recurring schedule. To learn

462 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

how to do this, read the Schedule Process Set section later


in this chapter.

9. When you select a schedule other than Now, the Recurring check box becomes available. Select this check
box to indicate that this executive query is run repeatedly – using the recurring time defined by the selected
schedule.

10. Now enter a User Description for the executive query. This description displays in the System Monitor
(the system tool that regulates tasks) when this query task is run by the schedule. It helps you verify the
query task was launched by the application. In this example, you will use the cube to analyze sales order
backlog data.
To learn how the System Monitor interacts with executive queries, review the Executive Dashboard in Action
section later in this chapter.

Field Mapping
You next display the Field Mapping sheet to define the Dimension Pair used to measure the executive query’s
data. The data is aggregated against the one or two dimension values you select; the results then display on your
executive dashboard.
You can select any field within the BAQ for the dimension pair values. If you need, you can also leave the second
dimension value blank. This creates a field map that only pulls in data which matches the first dimension value.
Note that executive queries can only summarize (aggregate) data; they cannot create averages. Because of this,
these query results represent a sum of the values between the selected dimension pair. Be sure to select items
that logically aggregate together, like a character column against a date or numerical column.
When the data displays on the dashboard, however, you can display averages by using the grid functionality. For
more information, review the Epicor ICE User Experience and Customization Guide; the Personalization chapter
contains the Enable Show Summaries section.
To define the field mapping for an executive query:

1. After you finish defining the executive query, click the Mapping > Mapping Detail sheet.

ICE 3.0 | 10.0.700 463


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

2. The Mapping Set field displays the dimension set number for this executive query. You cannot edit this
value; it only displays for your information. If multiple field map sets have been created for the executive
query, the specific mapping set number appears in this field.

3. The Dimension 1 value is the first definition used to measure the BAQ data. A required value, click the
drop-down list to select the BAQ column you want. All the fields within the current BAQ display on this list;
you can even select a calculated field. In this example, the CustID (Customer ID) column is selected.

You cannot select a Date field (Order Date, Need By Date,


and so on) for the Dimension 1 value. A date value cannot
be used as the first value against which the other data is
evaluated. It can be used, however, for the Dimension 2
value.

4. The Dim 1 Text automatically defaults in. You can override this value to indicate what displays on the
executive dashboard as a Dimension Value.

5. Enter the Dim 2 value you will use. An optional value, select the column you want from the drop-down
list. This dimension can be a Date field. You can also select a calculated field here. In this example, the
OrderRel_NeedbyDate field is selected.

6. Similarly to Dimension 1 Text, you could enter a custom value you want to display on the dashboard.

7. Now you can define the fields you want to display through this field map. You can first select the fields that
display Decimal values. All the fields from the selected BAQ appear on this list, so typically you select fields
that display decimal values, or the results may not be what you want. You can display up to 10 decimal
values.

8. Next, select the optional Integer fields (numeric fields that do not use decimals) you want to display in the
executive query. All the fields from the selected BAQ appear on this list, so typically you select fields that
display integer values, or the results may not be what you want. You can display up to five integer values.

9. Lastly, select the optional Character fields (alphanumeric values) you want to display within the executive
query. All the fields from the selected BAQ appear on this list, so typically you select fields that display
character values, or the results may not be what you want. You can display up to 10 character values.
Character fields do not aggregate, but if you use a field that contains the same information on all records
for the dimension pair, it can be useful for the executive query to pull in these results, too.

10. To save the current mapping, click Save.

11. You can continue to add more field maps to the query. To create another mapping, click New.

464 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

12. To create multiple mappings at once using a shortcut method, click the Mapping > Mapping List sheet.

13. Use the Field Mapping Sets grid to quickly create the other field maps you need. Highlight the row on the
grid.

14. Right-click the row to display the context menu; select Copy Selection.

15. Then right-click the grid again. A context menu appears; select Paste Insert.

16. A new, identical row displays – which represents a field map. Change the dimensions and display fields you
need in the fields on this grid. Notice that this example has only two Dimension 2 values – NeedByDate and
NeedByDateWeek. The Dimension 1 values are changed, however, to display the different dimensions you
want to use for your cube of data. You could continue entering more Dimension 1 values such as Sales
Territory Region or Product Group code.
If you need, you can also return to the Mapping > Mapping Detail sheet to select the fields you want
displayed through this field map.

17. Continue to add the field maps that you need for the executive query. The tree view on the left displays the
list of all cube mappings. Remember to always save the current mapping record before you click New to
create a new one.

Save to Process Set


To finish the executive query, save it to a process set.

ICE 3.0 | 10.0.700 465


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

1. Click the Save to Process Set button on the Standard toolbar.

2. The Save to Process Set window displays.

3. From the Process Set drop-down list, select the process set you want. In this example, you select the Sales
Order Backlog Status process set. (You created this new record during the previous Process Set section.)

4. Click OK.

Typically, you save the Executive Query to a process set


which then refreshes the cube based on a schedule
attached to the process. You can, however, click the
Submit button to send the process for execution by
System Task Agent.

5. To verify the process set now contains your query, navigate to Process Set Maintenance.
Menu Path: System Management > Process Sets > Process Set Maintenance

This program is not available in the Epicor Web Access.

6. Click the Process Set ID button to find and select the process set you created previously in this chapter.

466 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

7. The executive query now displays within the Process Set Tasks grid. It has become a task that this process
set runs based on a schedule it uses.

8. Notice the Move Up and Move Down buttons. If the process set had multiple tasks, you could change
the order in which the tasks are run by selecting a task and then clicking one of these buttons.

Your executive query is now added to the process set.

Executive Query Examples


This section contains examples of how an executive query aggregates data. These examples detail the different
results that occur when you select the Summarize by BAQ check box, when you select the Summarize by Date
check box, and when you do not select either check box.

Example One
You have two BAQs pulling sales order data from the same tables. These BAQs look similar, but they use conditions
that cause different data results to display. One business activity query pulls in sales orders with today’s date,
while the other business activity query only pulls in open sales orders. This first example also assumes that no
data was present in the CubeID table when the executive query was run.
This table shows you the field maps selected for both BAQs and the data being returned by them:

Field Mapping Dimension Dimension Character 1 Decimal Decimal Run Date ExportID (BAQ
Set 2 1 2 ID)
The BAQ SalesPerson State “QueryType” Order Order The The application
dataor This is a Quantity Value application will populate the
calculated calculated will populate Run Date value.
fields: field. the Run Date
value.
BAQ 1 - John Doe Colorado Backlog 100 5,000 06/01/20XX The identifier (ID)
Salesperson for BAQ 1.
Backlog
BAQ 2 - Daily John Doe Colorado Daily Sales 12 750 06/01/20XX The identifier (ID)
Sales for BAQ 2.

If neither the Summarize by BAQ nor the Summarize by Date check boxes are selected, the following results
display:

Data Results: John Doe Colorado "Blank" 112 5,750 "Blank" "Blank"

Notice the data from both BAQs is aggregated (pulled together) because the dimension pairs are identical. This
happens on all matching dimension pairs between the two business activity queries. If this dimension pair existed
in the Ice.SysCube table, the result would still be a single record that contains this aggregated data.
Now if the Summarize by BAQ check box is selected, the following results display:

Data Results: John Doe Colorado Backlog 100 5,000 06/01/20XX The identifier (ID) for
BAQ 1.
Data Results: John Dow Colorado Daily Sales 12 750 06/01/20XX The identifier (ID) for
BAQ 2.

In this situation, the data from both queries become separate records because the BAQ identifiers were different.
If additional data were within each BAQ, the data from each separated BAQ would first aggregate together. The
results of each BAQs’ aggregated data, however, would display separately.

ICE 3.0 | 10.0.700 467


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

Next, if the Summarize by Date check box is selected, the following results display:

Data Results: John Doe Colorado "Blank" 112 5,750 "Blank" "Blank"

In this situation, notice the data from both BAQs is aggregated together. Because the dimension pairs were the
same and they both used the same Run Date, they aggregate. This would happen on all the matching dimension
pairs created between the two BAQs.

The Summarize by Date option also works differently if the


Run Date is set dynamically to Today or First of Month. If this
executive query is set to Today and it is run on different dates
(06/01/20XX and 06/02/20XX), separate results for the data
display. If the Run Date is set dynamically to the First of Month,
however, the results of both BAQs’ run dates (06/01/20XX and
06/02/20XX) aggregate together into a single record.

If existing data were within the Ice.SysCube table from a previous query run, the records display separately because
both query runs use separate Run Date values.

Example Two
You have one BAQ pulling either Open Order or Backlog data for your salespeople. This BAQ was run previously
on 06/01/20XX, so the Ice.SysCube table currently holds data. It is now 06/02/20XX, and you are running this
BAQ again.
This table shows you the field maps selected for the single BAQ and the data returned when it is run:

Field Mapping Dimension Dimension Character 1 Decimal Decimal Run Date ExportID (BAQ ID)
Set 2 1 2
The BAQ SalesPerson State “QueryType” Order Order The If the Summarize by
dataor This is a Quantity Value application BAQ check box is
calculated calculated will populate selected, the Export
fields: field. the Run Date ID value will be
value. populated.
BAQ 1 - John Doe Colorado Backlog 100 5,000 06/01/20XX The identifier (ID) for
Salesperson BAQ 1.
Backlog
BAQ 2 - Daily John Doe Colorado Daily Sales 150 5,250 06/01/20XX The identifier (ID) for
Sales BAQ 1.

If neither the Summarize by BAQ or the Summarize by Date check boxes are selected, the following results display:

Data Results: John Doe Colorado Backlog 205 10,250 "Blank" "Blank"

Notice the data from both query runs is aggregated together because the dimension pairs are the same. This
would happen on all matching dimension pairs run through the executive query; this aggregated data then
populates the Ice.SysCube table.
Now if the Summarize by BAQ check box is selected, the following results display:

Data Results: John Doe Colorado Backlog 100 10,250 "Blank" The identifier (ID) for
BAQ 1.

In this situation, the data from both query runs is aggregated because the dimension pairs are the same and the
business activity query is the same one that was used to populate the data on the previous day.

468 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

Next, if the Summarize by Date check box is selected, the following results display:

Data Results: John Doe Colorado Backlog 100 5,000 06/01/20XX "Blank"
Data Results: John Dow Colorado Backlog 105 5,250 06/01/20XX "Blank"

In this situation, the data from both query runs display as separate records because the Run Date values are
different. If the Run Date values for both query runs were the same, however, the Delete Action determines if
the previous record remains to be aggregated with the new data, or if the previous data is deleted.

Create a Dimension BAQ


Now that your base BAQ and executive query are created, you can next build your second BAQ from it. This
second BAQ pulls dimension data from the base executive query for display on your dashboard. After you have
created this second BAQ, you must create an executive query for it that pulls this dimension data as well.
The purpose for this BAQ and its executive query is to provide a unique list of the Dimension Details. When the
Ice.SysCube table is populated by the first executive query, the Ice.SysCubeDim table that generates only has a
list of the dimension fields like Country, Product Group, and Salesperson. To get the unique list of dimension
details such as France, USA, Machined Parts, John Doe, and so on, you must aggregate the dimension fields
against the dimension data. The Dimension BAQ is required to do this process.
Navigate to Business Activity Query.
Menu Path: System Management > Business Activity Queries > Business Activity Query

This program is not available in the Epicor Web Access.

Here’s what you do:

1. Click the New button on the Standard toolbar.

2. Enter a Query ID for the query. In this example, enter OrderBLogDimension.

3. Enter a Description for this BAQ. In this example, you enter Order Backlog Dimension One.

4. Select the Shared check box. This makes the BAQ available to all users within your company.

ICE 3.0 | 10.0.700 469


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

5. Click the Query Builder > Phrase Build sheet to define the query phrase for the BAQ.

6. Within the list of tables on the left, locate the Ice.SysCube table.

7. Drag the table onto the Query Designer window.

8. With the Ice.SysCube table selected, click the Table Criteria sheet in the lower left side of the BAQ Designer
Window.

9. Click the Add Row button to create a new criterion.

10. Select CubeID from the Field listing.

470 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

11. Tab to the Filter Value and from the filter listing, select specified constant. Once the type of filter has
been declared, you define the required constant. Click the specified link.

12. The Specify a Value window displays. Enter the name of the first executive query you created – in this
example, Cube1.

13. Click OK to accept the entry.


When you finish building your phrase, it should state the following:
select *
from Ice.SysCube as SysCube
where (SysCube.CubeID = 'Cube1')

14. Click the Display Fields > Column Select sheet.

ICE 3.0 | 10.0.700 471


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

15. Select the columns you want displayed on the dashboard. Your selection may look similar to the following.

16. Now click the Analyze sheet.

17. Verify your Syntax is OK by clicking the Analyze button.

18. Click Save.

Build the Executive Query Against Data Dimensions


You now must create the executive query that references this new BAQ.
Menu Path: Executive Analysis > Business Activity Management > General Operations > Executive Query

472 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

Here’s what you do:

1. Enter the Cube ID you need for this executive query. In this example, enter Cube2.

2. Click the BAQ ID button to find and select the Data Dimensions BAQ you created. In this example, you
select OrderBLogDimension.

3. Select the Delete Action. In this example you select the Delete Entire Cube option.

4. Navigate to the Mapping > Mapping Detail sheet.

5. You need only one field Mapping Set for this executive query. Your mapping may look similar to the
following.

6. Save the Cube definition.

ICE 3.0 | 10.0.700 473


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

7. Now click the Save to Process Set button.

8. From the Process Set drop-down list, select the process set that needs to contain this query. In this example,
you select Sales Order Backlog Status.

9. Click OK.

10. To verify the tasks you want are contained within the process set, navigate: Process Set Maintenance:
Executive Analysis > Business Activity Management > Setup > Process Set

11. In Process Set Maintenance, click the Process Set ID button to find and select the process set. In this
example, you select the OrderBackLog set.

12. Notice that both executive queries now display. The process set runs the base cube query first – followed
by the dimension query you just created.

Schedule a Process Set


To finish activating these executive queries, you next must schedule the process set that contains them. When
the schedule activates the process set, the executive queries run, refreshing with current data from the database.
Navigate to Schedule Process Set.
Menu Path: System Management > Process Sets > Schedule Process Set

474 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

To schedule your process set:

1. From the Process Set drop-down list, select the Sales Order Backlog Status.

2. Now from the Schedule drop-down list, select the Daily Task Schedule. This indicates that the process set
runs its tasks once during each work day.

3. Select the Recurring check box; this indicates that this process set runs each time the system agent activates
this schedule.

4. When you finish, click Submit on the Standard toolbar.


For more information on scheduling process sets, review Automatic Data Processing in the Implementation
User Guide.

Create BAQs for Executive Dashboard Display


The BAQs and the executive queries you created both select and define the data you want on your executive
dashboard. Now you must create the BAQs that directly display the data on the executive dashboard. To do this,
create these three BAQs:
• Dimension BAQ – This BAQ defines the dimension options users can select from the executive dashboard.
This BAQ pulls data from the second executive query.
• Dimension Details BAQ – This BAQ pulls in the various detail records available with each selected dimension.
Users also select a detail option to display the data they need. This BAQ also pulls data from the second
executive query.
• Data BAQ – This BAQ is used to pull the data from the first executive query.

Dimension BAQ
To create the Dimension BAQ:

ICE 3.0 | 10.0.700 475


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

1. Launch the Business Activity Query Designer program.

2. Click the New button on the Standard toolbar.

3. Enter a Query ID that you can use to quickly find this BAQ.

4. Select the Shared check box.

5. Click the Query Builder > Phrase Build sheet (not pictured) to construct the query you need.

6. You could create a BAQ pulls all columns from the Ice.SysCubeDim table. The resulting BAQ phrase would
look similar to the following:
select *
from Ice.SysCubeDim as SysCubeDim
where (SysCubeDim.DimNum = 1)

You could define more filtering within this BAQ, but then
you would need to create several filters that do the same
function. Instead, you can define a filter within the
Dashboard Query Properties window that filters the Dim1
query in one location. For example, you could enter:
Ice.SysCubeDim.CubeID =<CubeName>. You could also
use the Query Builder > Display Fields > Column
Select sheet to select specific columns you want to
display.

7. Click Save.

Dimension Details BAQ


The Dimension Details BAQ pulls in the various detail records that are available with each selected dimension.
To create the Dimension Details BAQ:

476 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

1. Click the New button on the Standard toolbar.

2. Enter a Query ID that you can use to quickly find this BAQ.

3. Select the Shared check box.

4. Click the Query Builder > Phrase Build sheet (not pictured).

5. Build the criterion to pull data from the second executive query to create a unique list of dimension data.
The resulting SQL phrase looks similar to the following:
select *
from Ice.SysCube as SysCube
where (SysCube.CubeID = 'Cube2')

6. Typically, you would use the Query Builder > Phrase Build > Display Fields sheet (not pictured) to select
the fields you want to see on the dashboard.

7. Click Save.

Data BAQ
The Data BAQ pulls the data from the first Executive Query. It locates the SysCube data and displays it on the
Executive Dashboard.
To create the Data BAQ:

ICE 3.0 | 10.0.700 477


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

1. Click the New button on the Standard toolbar.

2. Enter a Query ID that you can use to quickly find this BAQ.

3. Select the Shared check box.

4. When building the query, make sure to create the criterion that pulls data from the first Executive Query
you created and select columns you want to see through this BAQ. You can also define additional criteria
such as filtering data by date and so on.

5. Click Save.

Create and Deploy a Dashboard


Now that all the BAQs are in place, you are ready to add them to a dashboard. Because these queries are linked
to executive queries, you can select them to create an executive dashboard. If you need additional details about
how to create a dashboard, review the Dashboards chapter.

In order to create new dashboards, a user must be granted


Dashboard Developer permission in User Account
Maintenance.

Navigate to the Dashboard.


Menu Path: Executive Analysis > Business Activity Management > General Operations > Dashboard

This program is not available in the Epicor Web Access.

To create an executive dashboard:

478 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Executive Dashboards | Chapter 7

1. Create a new Dashboard Definition.

2. Add the Dimension BAQ query to the dashboard. Its grid view appears; in this example, it displays as the
Dimension ID grid.

3. Add the Dimension Details BAQ to the dashboard. Its grid view appears; in this example, it displays as
the Order Backlog Dim Detail: Summary grid.

4. Add the Data BAQ to this dashboard. Its grid view appears; in this example, it displays as the Order Backlog
Data: Summary grid.

5. You then add the chart views and any other views that you want to present. In this example, you add a
Chart View for the data BAQ (OrderBLogData).
To complete the executive dashboard, you must deploy it to the Main Menu and make it available to users.

For more information about how to add a new dashboard


to the Main Menu, review the Deploy Dashboard to the
Menu section within the Dashboards chapter.

Verify the Process Set


Use the System Monitor to verify the application activates the process set and populates the executive dashboard
with current data. This program interacts with the system agent by running the schedules created within System
Agent Maintenance.
To verify the process set was run, navigate to the System Monitor.
Menu Path: System Setup > System Maintenance > System Monitor

This program is not available in the Epicor Web Access.

ICE 3.0 | 10.0.700 479


Chapter 7 | Executive Dashboards Epicor ICE 3.0 Tools User Guide

The History Tasks sheet displays all the reports, processes, and executive queries recently run on your system.
In this example, the recently processed executive queries display.

To display the System Monitor, you can also click this program's icon on the system tray on the Windows
toolbar. If you need more information about the System Monitor, review Automatic Data Processing in the
Implementation User Guide.

Now that the executive dashboard is complete and its data is being actively refreshed by the application, your
users can launch it to display current data. In the example in this chapter, the sales order backlog information is
provided by the dashboard. This data is updated once every work day, so this executive dashboard always displays
current, accurate data.

480 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Chapter 8: Business Process Management

The Business Process Management (BPM) module is a set of tools you use to modify and extend application functionality
without touching the source code. At the core of BPM is the directive. A directive defines a custom behaviour specified
in the BPM workflow that can be applied to an operation. Three types of directives are available:
• Method Directives - applied to business object methods.
• Data Directives - applied to database table transactions.
• Updatable BAQ Directives - applied to business activity query methods that can update the database.
Use the BPM tools to add or change application processes when a business object method executes, when a transaction
changes are applied to a table, or when information is retrieved or posted by a business activity query. You do this by
creating directives that can evaluate the data being processed, and perform actions based on this data.
This chapter first explores the base elements of BPM and then explains how you set up the BPM module. The chapter
next describes all the tools in detail – including the BPM Workflow elements you can use to define conditions and
actions available for directives. The chapter concludes with a series of case studies you can use as a guide for your own
BPM directives. Subsequent chapters explain custom BPM processing and BPM utilities.

BPM Base Elements

Business Process Management uses the following base elements:


• Method Directives - Method directives initiate BPM actions based on specified application method calls
within a business object. A business object contains the code that runs a business process. BPM actions may
be conditionally triggered before, after, or, in place of a regular method that runs within a business object.
• Data Directives - Data directives initiate BPM actions based on updates to a specified table. A data directive
can be run during the data transaction, which can affect the information stored within the database, or it
can be run after the data transaction is saved to the table.
• Updatable BAQ Directives - Updatable BAQ directives initiate BPM actions based on method calls launched
from an updatable BAQ. An updatable BAQ is a customizable query tool that displays on smart client dashboards
and mobile device dashboards through which users can update and add data; like a business object, BAQ
methods are required so the database can be updated. An updatable BAQ directive can be run before, after,
or in place of the BAQ method call.
• Holds - Use BPM holds to define an external hold type linked to a business object which in turn may be set
manually, or through a BPM action. BPM directives may then be created on other business objects and methods
to evaluate whether a hold exists and then modify the business process as you need. BPM holds extend the
regular status holds built into the application. You can then define and evaluate your own hold conditions
based on your business workflows.
• Data Form Designer - Use the BPM Data Form Designer to create forms launched by BPM method directives.
BPM data forms capture data or present button actions that you can use to control the BPM processing flow.
This feature can be used to launch a form - for example, only for a specific customer - to capture the specific
data required for a transaction.

ICE 3.0 | 10.0.700 481


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

User Maintenance
Two levels of BPM functionality are available – a base level and an advanced level. All users who have menu
access to BPM can use the base level of BPM functionality to create holds and directives containing pre-built
actions. Users with access to the advanced BPM functions can use the entire BPM toolset. These users can also
create method directives that run in place of the base methods; however users should work with Epicor or a
partner organization before replacing a base method.
You give specific user rights to the advanced BPM features through User Account Maintenance. These rights are
assigned on the Options sheet.
Navigate to User Account Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

To give a specific user advanced BPM user rights:

1. Select a specific user on the Detail sheet.

2. Click the Options tab.

3. In the Tools Options section, select the BPM Advanced User check box.

4. Click Save on the Standard toolbar.

This user can now use the advanced BPM functions that include the following:
• Create programming actions using the Programming Interface Generator Form
• Create and edit Base Processing directives

482 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

• Create and edit In-Transaction Data directives


• Modify pre-processing and post-processing updatable BAQ method directives with a limited number of actions.
To utilize the whole uBAQ Method Directives toolset, a user must be provided with BAQ Advanced Users
rights.
• Use the whole set of BPM Workflow Actions including:
• Auto Print
• Change Log
• Call Service Connect Workflow
• Execute Custom Code
• Invoke External Method
• Notify Me
• Set By Query

• Use the whole set of BPM Workflow Conditions including:


• The custom code condition is valid

Directive Scope

The directive's scope defines in what conditions the directive may fire and affects the ability of users to view,
create or modify the directive.
The below tables displays how each directive scope is treated based on the license used in your Epicor ERP
installation.

ICE 3.0 | 10.0.700 483


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Directive Non-Multi-Tenant license Multi-Tenant license


scope
Company
• Visible to any BPM user in the owning • Visible to any BPM user in the owning company.
Specific
company. • Creation allowed to any BPM user.
• Creation allowed to any BPM user. • Modification allowed to any BPM user in the
• Modification allowed to any BPM user owning company.
in the owning company.

Company
Independent • Visible to any BPM user. • Visible to any BPM user in the tenancy the
• Creation allowed to any BPM user. directive's owning company belongs to.

• Change of the existing directive's scope • Creation allowed to any BPM user.
(Company Specific -> Company • Change of the existing directive's scope
Independent and vice versa) available to (Company Specific -> Company Independent and
any BPM user logged in to the owning vice versa) available to any BPM user logged in
company. to the owning company.
• Read & Write access available to any • Read & Write access available to any BPM user
BPM user logged in to the owning logged in to the owning company.
company. • Read-only access for any BPM users logged in to
• Read-only access for any BPM users another company than owning, but belonging
logged in to another company than to the same tenancy as the directives's owning
owning. company.

Tenant
Independent • If present in the regular installation • Only visible to users with Global Security Manager
database, they are treated the same way rights logged in to any of the companies on the
as Company Independent directives. site.
• Read & Write access available to a Global Security
Manager logged in to the owning company.
• Read-only access for a Global Security Manager
logged in to another company than owning.

Modification of a directive is denied if a user with base BPM


privileges attempts to modify a directive with elements available
to Advanced BPM users only.

Holds

A Hold is a flag you place on a record; it indicates the record should not be processed until it is reviewed and
approved. A hold by itself does not perform any actions. You define the actions by creating directives which
define how the application handles a record that has a hold placed on it. A hold can be attached to a record in
two ways:
• Manually – You can manually attach a hold onto a field by using the BPM Holds program. You do this by
launching the BPM Holds program from the field’s context menu. This adds the hold to the record. To use
this functionality, holds must be first defined within Hold Type Maintenance; this program is explored in the
next section.

484 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

• Programmatically – A hold can also be attached to a record using a directive action. It can be attached
before, during, or after the business process is run. Typically you use holds to interrupt the processing of the
business object. This hold can then cause custom actions you define for the directive to run. You use Method
Directive Maintenance or Data Directive Maintenance to create these directives. These programs are explained
later in this chapter.

Hold Type Maintenance


Use Hold Type Maintenance to create, maintain, and delete hold types. Use this program to define all the holds
you may use within the application. After you have set up the holds you need in this program, you can then
activate them either through the BPM Holds program or through directive actions.
You can also use this program to review where the holds are currently used, as well as the history of each hold
type.

A hold type is basically a status you assign to a record; it does


not prevent a record from being processed. For hold types to
actually prevent specific records from being processed, you
need to create a method directive for it. The Case Studies
section at the end of this chapter explains how to leverage this
functionality.

Hold Type Maintenance – How to Use


Navigate to Hold Type Maintenance.
Menu Path: System Management > Business Process Management > Hold Type Maintenance

This program is not available in the Epicor Web Access.

To create a new hold type:

1. Click the New button on the Standard toolbar.

2. Enter the Hold Type for the hold. This value is a short name that, along with the business object, identifies
the hold type. In this example, Sales Order is entered as the Hold Type name.

ICE 3.0 | 10.0.700 485


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

3. Click the Business object button to find and select the business object on which you want to attach the
hold. In this example, you select the SalesOrder business object.

4. The System Code field displays the part of the system the Business Object belongs to. Epicor Business
Objects either belong to the application system (ERP) or the tools system (ICE).

5. Enter a Description for the hold that further identifies its purpose. An optional value, use this field to add
more details to help identify the hold.

6. The History Length field defines how many records appear on the Hold Usage History sheet. When the
records reach this number, the oldest records are automatically deleted.

7. Click Save. This hold type is now available for use.

8. The Hold Usage sheet displays where the current hold has been selected on specific records; use this sheet
to manage the records currently on hold. If you need, you can select an item on this grid and click the Delete
button to remove a hold on a record.

9. The Hold Usage History sheet displays a record for each time the selected hold was used – when it was
attached to a record, who attached the hold, when it was removed, and so on. If you need, you can select
a record on this grid and click the Delete button; this removes the history record. The maximum number of
records that can appear on the Hold Usage History sheet is defined by the hold type’s History Length value.

BPM Holds
Use the BPM Holds program to attach a hold directly to a record. You can also delete a previously attached hold.

BPM Holds – How to Use


To place a hold on a sales order:

1. 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. Click the Sales Order button to find and select an order.

3. Right-click on a field that is used to define a business object and select BPM Holds.

486 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

For this example, you right-click within Sales Order field.

Not all context menus have a BPM Holds option. The field
must be a primary value for a business object. In this
example, the Sales Order field is the main field used by
the SalesOrder business object, so a hold can be placed
on this field.

4. The BPM Holds program displays. In the Tree View, select the hold type you want to use. In this example,
you select the Sales Order hold.

ICE 3.0 | 10.0.700 487


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

5. Click New on the Standard toolbar.

6. The hold is now created for this record; several fields automatically populate with information. The Business
Object field displays the name of the business object used for this hold. In this example, the SalesOrder
business object displays.

7. The Hold Type field displays the hold that you created in Hold Type Maintenance. In this example, the Sales
Order hold record displays.

8. The Description field displays the optional explanation that may have been entered for the hold type.

9. The Created On field displays the date and time on which this BPM hold was attached to the record.

10. The Created by field displays the identifier of the user who attached the hold.

11. Use the Comment field to enter any additional information you want about the hold. The only field within
the BPM Holds program you can edit, this field contains the reason you placed the hold on the record.

12. When you finish, click Save.

Review BPM Holds


You can review all the records for which this hold is assigned. Placing a hold on a record does not prevent the
record from being processed. Instead, the hold is really a note you add to the record. You can then track these
selected records within Hold Type Maintenance. You must then launch the record’s entry or maintenance program
to make the changes you need.

To use hold types to actually prevent specific records from


being processed, you need to create a method directive for it.
The Case Studies section at the end of this chapter explains
how to leverage this functionality.

To review your BPM holds:

1. Navigate to Hold Type Maintenance.


Menu Path: System Management > Business Process Management > Hold Type Maintenance

This program is not available in the Epicor Web Access.

2. Use the Detail sheet to find and select a specific hold type. In this example, you select the Sales Order hold
type.

488 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

3. Click the Hold Usage tab.

4. The Hold Type Usage grid displays all the records on which this hold type is currently selected.

Use this information to make any changes that you need to the selected records. However, you must do this
manually on each record listed on this grid.
For more information on how to attach the BPM Hold to a record using a directive action, review the Case
Studies section at the end of this chapter.

Directives

A directive defines a set of BPM workflow conditions and actions associated with a method call or a data
transaction. Directives are triggered by a business object method, a method used by an updatable BAQ, or by
changes to data in a database table.

Method Directives
Data transactions in the application are controlled by business objects. A business object represents a type of
data managed by the application, such as a customer, part, or a sales order. The objects contain methods that
perform a specific task. For example, the Customer.Update method validates and posts customer records to the
database.
BPM tools can extend these methods before or after the main execution, or completely replace the method. You
do this by creating method directives that evaluate the data being processed, and, if the directives' conditions
are met, perform one or more actions based on this data - like displaying messages, preventing data entry,
launching other business processes, and so on.
BPM method directives work by performing calls to the application server logic. You can then validate, manipulate,
or execute actions based on the data passed through the application. Because they are server side customization,
you can change business logic without modifying the source code. For this reason, most future upgrades to the
source code will not affect existing BPM directives.
When a business object method is called, all enabled directives associated with the method activate. The BPM
workflow you create for the directive does it's job by executing workflow items in the order you specify.
While the method is active, these directives run at three different processing points:
• Pre-Processing – These directives execute before the base method runs. After these actions finish, the business
object then runs the base method.
• Base Processing – These directives run in place of the base method. The base method does not execute.
• Post-Processing – These directives run after the base method finishes its process.

Only Advanced BPM users can create base processing directives,


so your user account must be defined as a BPM Advanced User.
However, Epicor strongly recommends you do not create base
processing directives. If you change a base method incorrectly,
you can harm the normal function of the application. Work
with a Epicor consultant before you create a base processing
method directive.

For example, you can create a method directive for the Customer.Update method that sends an e-mail to a Sales
Manager when a customer’s credit limit is changed. This same directive can also attach a hold to the customer

ICE 3.0 | 10.0.700 489


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

record and display a message indicating the customer record has been placed on hold. Both of these actions are
run during post-processing, after the base method finishes its process.
You create method directives within Method Directives Maintenance.
Menu Path: System Management > Business Process Management > Method Directives Maintenance

This program is not available in the Epicor Web Access.

Data Directives
A data directive is similar to a method directive, but instead of being launched by a business object method, a
data directive is linked to a database table and is triggered by a database event, such as add, delete, or update.
By applying the directive to a specific table, data directives are used to control data that may be affected by
several business objects.
You can apply most of the conditions and actions from method directives to data directives as well, except in
cases where the condition or action depends on information available in the business object that is not available
in the data itself. Two types of data directives are available:
• In-Transaction - Affects data before it is saved to the database. This directive type can only process one row
at a time; it cannot process multiple dirty rows - rows that contain data not yet saved to the database. Multiple
dirty rows are explained later in this chapter.
• Standard - Does not affect data in the database. A Standard directive executes after a data transaction is
saved to the database. This directive type processes multiple dirty rows modified in the database at once. It
runs after base methods and method directives.
You create data directives within Data Directives Maintenance.
Menu Path: System Management > Business Process Management > Data Directives Maintenance

This program is not available in the Epicor Web Access.

Updatable BAQ Method Directives


Updatable BAQ method directives are similar to the method directives described earlier, except they apply to
methods used specifically by updatable BAQs, custom queries you can create for data entry. Updatable BAQ
methods are used to run processes on Updatable Dashboards. This chapter details the conditions and actions
available for Updatable BAQ method directives. For more information about creating and implementing these
methods, review the Updatable Dashboards chapter.
Updatable BAQ directives initiate BPM actions based on method calls launched from an updatable BAQ. An
updatable BAQ is a customized query tool that displays on smart client dashboards and mobile device dashboards
through which users can update and add data; like a business object, BAQ methods are required so the database
can be updated. An updatable BAQ directive can be run before, after, or in place of the BAQ method call.
Updatable BAQ method directives are similar to the method directives, except that they apply to methods used
specifically by updatable BAQs. Each updatable BAQ has the following methods:
• GetList - Retrieves the data specified by the query.
• GetNew - Creates an empty row where a new record can be entered and submitted to the database.
• Update - Performs database updates for changed and added rows.
• RunCustomAction - Runs a custom action. You define the ID of the custom action in the Business Activity
Query Designer program and define the action using one or more directives.
• FieldUpdate - This method occurs after the user's change to a field is committed. If you want this field to
generate a Business Process Management (BPM) method, select the Raise Events check box in Updatable Field

490 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Editor. You can use this method to perform additional processing against the changed row. For example,
when you enter a part number, you want the part description field to populate automatically.
• Field Validate - This method occurs before the proposed change to a field is committed. If you want this
field to generate a Business Process Management (BPM) method, select the Raise Events check box in Updatable
Field Editor. You can use this method to validate proposed changes. For example, you can prevent users from
entering an incorrect value in a certain field such as non-existent state.

You must be a BPM Advanced User to modify pre-processing


and post-processing updatable BAQ method directives with a
limited number of actions. To utilize the whole uBAQ Method
Directives toolset including modifications of base processing
directives, a user must be provided with BAQ Advanced User
rights.

How it Works

BPM customization allows using of mostly all BPM Method directive actions and conditions for processing query
data. When you create an updatable BAQ, the application writes a base processing directive for the update
method. The directive uses C# code to update the database according to the settings defined in the Business
Activity Query Designer.

1. Business Activity Query Designer helps users with updating data via a selected business object. For these
purposes, the UpdateExt method is used. This update method governs the whole data transaction process
between the updatable BAQ and the related Business Object (BO). When you select the BPM Update option
on Update Processing sheet, you activate the BPM Update Processing section to configure data updates.

2. You do this by selecting an appropriate Business Object and defining data Mappings between BO's dataset
and query display fields.

3. Click the BPM Directives Configuration to access the Updatable BAQ Method Directives.

ICE 3.0 | 10.0.700 491


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

4. Based on the information you specified in BPM Update Processing, the BAQ Designer generates the Base
Processing directive named #BASE# against uBAQ.Update method.

5. This directive is named #BASE# and contains a workflow item with custom C# code, which prepares data
and calls UpdateExt for selected BO.

6. Also, Base Processing directive for the GetNew method is automatically generated if the Allow New Record
option is selected on the Update > General Properties sheet. This directive is also named #BASE# name
and it contains C# code with field assignments for new row as defined in Initial Expression column defined
on the General Properties.

When you use BPM Update option to perform uBAQ


updates, do not edit #BASE# directives because any
changes will be discarded once the query is saved in BAQ
Designer.

492 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

7. However, the BAQ Designer gives you the ability to modify the directives for any methods. By using the
Advanced BPM Update only option, you can create a BPM directive manually from scratch, or, to customize
the directive generated by BPM Update processing.

8. If you do not specify BPM Update processing and launch Updatable BAQ Method Directives, then no #BASE#
directives are generated automatically for the GetNew and Update methods. Use this option to customize
the method completely by yourself.
You should always create Base Processing directives for all updatable query methods you want to call.
Otherwise the error message "There is no BPM customization attached to Update method of test updatable
query in XYZ company" displays.
The exception to this rule, are GetList and GetNew methods, which have the base processing functionality
embedded. For these methods, creation of Pre-Processing and Post-Processing directives is reasonable.
You can access Updatable BAQ Method Directives Maintenance either from BAQ Designer or using the
menu option:
Menu Path: System Management > Business Process Management > Updatable BAQ Directives Maintenance

This program is not available in the Epicor Web Access.

Custom Actions

You may create custom actions for updatable BAQs in the Business Activity Designer program by defining the
action ID and label. The custom actions can then be added to the Actions menu of a dashboard that uses the
query. In the Updatable BAQ Method Directives program, you create a pre-processing, base processing, or
post-processing directive for the RunCustomAction method.
Use "the specified argument is equal to the specified expression" condition statement to identify which
action to run. The first "specified" variable can be set to "actionID." The second "specified" variable can be set
to the ID of the action called by the user as it was specified in the BAQ. Then create directive actions to perform
custom operations.

How BPM Works


The key features of Business Process Management include the following:
• Designed to explicitly understand and manage business processes within the Epicor application.
• Embedded directly in the application.
• BPM workflow utilizes interconnected workflow items, representing the flow of BPM execution.
• Each BPM workflow item is represented by an icon in the diagram.
• Contains advanced BPM features like .NET scripting and calls to Epicor Service Connect.
• Maintains full audit tracking of all interactions.
• BPM reacts to Events, interprets Conditions assigned to events and takes Actions based on conditions.

ICE 3.0 | 10.0.700 493


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Standard Execution Flow


This topic outlines the standard communication model between client and server, without a BPM intervention.

The standard client-server data exchange process includes the following:


• A user performs an action in a program.
• The program calls a business object method to carry out the action.
• The Epicor program's code performs its function and related database transactions run.
• Data is returned to the program according to the actions run by the Epicor program.

Using Business Process Management


BPM directives work by intercepting calls to the application server logic. They are embedded into server logic and
get invoked by method calls. You can validate, manipulate, or create workflows based on the data passed through
the application. Because BPM methods are server side customizations, you can change business logic without
modifying the source code.

494 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

The key elements of using BPM directives within the application include the following:
• A user performs an action in a program.
• The program calls a business object method to carry out the action.
• Before the business object executes its program code, Pre-Processing directives are executed.

If at least one non-empty Base Processing directive is in


effect, the Base Processing directive will run instead of the
Epicor program code.

Epicor strongly recommends you do not create Base


Processing directives. If you change a base method
incorrectly, you can harm the normal function of the
application. This option is mainly included for partners,
consultants, and power users who need to directly modify
the method for major business modifications. Work with
an Epicor consultant before you create a base processing
method directive.

• After the Pre-Processing directive, the Epicor program code performs its function, or Base directives are
executed.
• When data transaction is about to be applied to the database, In-Transaction directives are executed.
• After the Epicor program code or Base directive is run, Post-Processing directives are executed.
• Standard data directives are executed with accumulated transaction database changes passed to them.
• Data is returned to the program according to the actions run by the directives and Epicor program.

Create a New Directive


This example shows how to create a Method Directive, but the process is the same for all directive types. For
examples of how to create each type of directive, see the Case Studies section later in this chapter.

Locate the Object of the Directive


Since directives are created for business object methods, tables, or updatable BAQ methods, the first step is to
locate the object on which the directive will act. To locate the object:
Navigate to the Method Directives program.
Menu Path: System Management > Business Process Management > Method Directives Maintenance

This program is not available in the Epicor Web Access.

ICE 3.0 | 10.0.700 495


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

1. Click the Method Code button.

• To create a data directive using Data Directives


Maintenance, click the Table button or enter the
table name directly.
• To create an uBAQ method directive using Updatable
BAQ Directives Maintenance, click the BAQ ID
button or enter the uBAQ ID directly.

2. The Method Search program displays. Use this program to locate a specific method within a business
object.

3. Select the Search by Business Object option. This indicates that you want the search to look specifically
for business objects.

496 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

4. Notice you can search for Business Objects belonging to the Product (ERP) or System (ICE) part of the
system.

5. In this example, you want to create a method directive for the CurrExRate.Update method that belongs to
the application part of the system. To do this, leave the Product option selected in the Where Method
Name Starts At field, enter "U".

6. Now select the Business Object for which you want to search. In this example, you select the CurrExRate
business object.

7. Notice you can also select Search by Directives. This option is used to find and select existing method
directives.

8. When you select the Search by Directives option, the Directive Group drop-down list becomes active. You
can assign directives to groups and then search for a specific group here. To learn how to use Directive
Groups, read the Business Process Management Utilities chapter.

9. You can also Search Outdated Directives. Select this option to locate any method directives that have
become incompatible with the current application version. To learn more about this, review the Directive
Compatibility section later in this chapter.

10. Click Search.

11. The Search Results grid displays all the methods for the CurrExRate business object that start with “U”. In
this example, you highlight the Update option.

12. Click OK.

13. The Detail sheet now displays the primary information on the selected method.

14. The Method Code field displays the business object method that you selected. You add and edit directives
to this method. In this example, you selected the CurrExRate.Update method.

15. If you need, enter a Method Description.

16. The Transaction Scope list defines how the application handles errors. Available options:
• Business Method and Directives – The application reverses, or rolls back, all changes made by actions
run before the error exception occurred.

ICE 3.0 | 10.0.700 497


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

• Business Method – The application does not roll back any changes made by the directive’s actions.

17. The Supports multiple dirty rows check box indicates whether the selected method sends multiple updated
rows to the database for processing. When a method can gather data from multiple rows at the same time
before they are saved to the database, the method is referred as being able to support multiple “dirty”
rows. You then can perform additional actions against the selected method. These additional actions are
described in the Support for Multiple Dirty Rows section later in this chapter.

18. Click the Advanced button to create custom actions for this method directive; this launches the Method
Arguments window. This window displays the arguments contained in the current method; use this program
to review what you need to know before you build your custom external method. You also use this program
to launch the Create Programming Interface Form; you use this window to generate a class within a
method that has a signature which matches the signature of the business object for which you are creating
the external method. To learn how to use these tools, read the Custom Business Process Management
chapter.

To use this functionality, your user account must be


defined as a BPM Advanced User. Read the previous BPM
Setup section to learn how to give users these advanced
rights.

19. When you finish defining the primary items on the method directive, click Save on the Standard toolbar.

Create the Directive


You are now ready to add directives to this object. You can create as many directives as you need for each
method, table, or updatable BAQ method.
This example shows you how to create a directive that runs before the CurrExRate.Update method processes;
this type is called a Pre-Processing Directive. To create the directive:

1. Click the Down Arrow next to the New button; select New Pre-Processing.

498 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

2. The Pre-Processing > Detail sheet becomes active.

3. Enter the Directive Name you use to identify the pre-processing directive. You can enter a descriptive name
that has special characters and spaces.

4. If you need, select the Group inside which the current directive belongs. You can select an existing group
or enter a new group. An optional value, groups help you organize directives for both search and export
functionality.

You can export directives for use on other systems. You


can do this only if the directives belong to a group. To
learn how to export directives, read the Export Directives
section in Business Process Management Utilities chapter.

5. The Order field indicates the sequence in which this method’s directives activate. The program automatically
enters a value in this field in increments of 10. Because of this, the first directive you add is 10, the second
20, and so on. If you need, however, you can edit this value.

6. The Owner Company field displays the company for which this directive is created.

7. The Enabled check box indicates this directive is active and the application automatically compiles the code
to run the directive. You must select this check box to use the current directive.

8. The Scope field to defines the directive's range of usage and also determines the ability of users to view,
create or modify the directive.
• You can select one of the following options:
• Company Specific - The directive only works in its owning company's scope.
• Company Independent - The directive works in all companies on a regular installation. If Multi-Tenant
license is used (SaaS solutions), this directive works in all companies belonging to the tenant ID of its
owning company.

ICE 3.0 | 10.0.700 499


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

• Tenant Independent - This option only displays if Multi-Tenant license is used and it is only available
to a user having Global Security Manager rights. A Tenant Independent directive works in all companies
of the installation.

For more information, review the Directive Scope topic within this chapter.

9. The Compatible check box indicates whether this directive works with the current version of the business
method. If the application validates the method and discovers this directive is no longer compatible with
the business method, this check box is clear. To learn more about how the application checks your method
directives for compatibility, read the Directive Compatibility section later in this chapter.

10. Click the Design button to access the BPM Workflow Designer. Use the Designer to construct your BPM
workflow using a graphical design surface.
The BPM Workflow Designer functionality is discussed in the following section.

11. When you build a workflow using the BPM Workflow Designer, its snapshot displays within the Behavior
pane. This feature may help you quickly identify the purpose of the workflow and determine if modifications
are necessary.

12. When you finish creating your pre-processing directive, click Save on the Standard toolbar.

BPM Workflow Designer

Use the BPM Workflow Designer to construct your BPM workflow using a graphical design surface.
To access Designer, click the Design button when you build a directive through following programs:
• Method Directives
• Data Directives
• Updatable BAQ Method Directives

General Principles

This topic discusses general principles of creating a BPM workflow by using the workflow elements.
To construct a BPM Workflow:

1. The available items display in the left pane of the Designer. Workflow elements are grouped by categories
and except the Flow Chart category, they all represent Actions the workflow will take.

2. For each workflow item representing Actions, you can select the Terminate on Error option to halt the
workflow execution when it encounters an error. The Raise Exception action has this option selected by
default.

500 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

3. The Condition block found in the Flow Chart category represents a set of conditions the BPM workflow
may evaluate prior to executing the following workflow item.

4. To use a BPM item in the workflow, drag it and drop it in the BPM Designer surface.

5. Connect the workflow elements in the logical order they should be executed. When you hover your cursor
over each element, the small black triangles surrounding the item represent the available connectors. To
connect elements, click your mouse, select any of the connector symbols, drag the line and point it to another
item's connector.

6. The initial point of the BPM workflow is the Start element.

7. The following workflow elements may utilize multiple inbound connectors but only one outbound connector.
The exception is the Condition block that allows usage of two outbound connectors True & False.

8. When you delete any workflow item (block), its links will be automatically deleted with it.

9. To set up the behaviour of a workflow item representing Action, click on it and supply required parameters
in the pane below the designer surface.

10. For the Condition block, build criteria using pre-built condition statements. You can enter more than one
condition statement within a single block and use the And/Or logical Operators to define the relationship
between the current statement and the preceding statement.

11. Once you build your BPM workflow, use the Validate function to control if all element parameters are set
up in the way BPM expects. This function also checks that the directive references existing objects (assemblies,
users, BAQ constants, DB tables and fields, etc) correspond to selected BO method signature. This control
is particularly useful for directives imported from previous Epicor ERP releases.

The Validate function does not check syntax in expressions


or custom code.

ICE 3.0 | 10.0.700 501


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

12. Once you finish, click Save and Exit to return to the respective Directive Maintenance program from which
you called the Designer.

Customize Element Block

This topic explains how you can enter custom names and memos within workflow elements.
Here's how you can rename and create the memo:

1. When you place a workflow item in the BPM Designer surface, the Designer assigns its name automatically,
for example, Condition 0, Raise Exception 0.

2. When you use more than one element of the same category within the workflow, the Designer increments
the number of a newly added item, for example, Condition 1, Raise Exception 1.

3. You can, however enter the custom name of each item. To do so, double-click the element name heading
and type in the name you want to use. In this example, you rename Condition 1 to Part Class Test.

4. You can also create a memo, where you can put additional info of what does a particular element do.
Typically, you can use this feature when you build a complex workflow and you to explain the purpose of
an element to other person reviewing the workflow. To do so, click the + icon in the top left corner of the
element block.

502 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

5. You can use the down arrow to invoke the Color pallette where you can pick the desired color for the memo.

6. Next, you enter the custom text to describe the purpose of the item.

7. When you place the cursor over the element, the memo you created displays.

Availability of Workflow Elements


The list of available workflow elements you can use to build the BPM workflow is influenced by the following
factors:
• Directive Type used to invoke BPM Workflow Designer - Method Directives, Data Directives and Updatable
BAQ method Directives.

ICE 3.0 | 10.0.700 503


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

• BPM Advanced User rights - enables Auto Print, Change Log, Call Service Connect Workflow, Execute Custom
Code, Invoke External Method, Notify Me, Set By Query and Custom Code Condition.
• Presence of Table parameters within the selected method - Field Changed Condition, Field Condition, Row
With Status Condition, Notify Me, Data Tag Condition, Attach/Remove Data Tag Actions, Set By Query Action
and Set Field Action.
• Presence of Simple parameters within the selected method - Argument Condition, Word In Argument Condition
and Set Argument Action.
• Workflow items not available in uBAQ Method Directives - Holds and Tags and Method Query Field Changed
Condition.
• Valid Business Object Instance - cases when Business Object's primary key cannot be obtained from parameters
- Attach and Remove Hold Actions and Hold Condition.
• Presence of the Change Log table - Change Log Action.

Callers

Use the items found within the Callers group to invoke BPM Data Form, call Epicor Service Connect workflow,
perform Custom Code Cction and Invoke External Method.

Call BPM Data Form

Use this action to launch a custom program created to collect data specifically for use during the BPM directive
action.

You create data forms using the BPM Data Form Designer. When the directive executes this workflow action,
the specified BPM data form invokes.
You can define when to invoke the BPM data form: always, or only if the mandatory data is missing. You can
also define if to apply customization to the called BPM data form.
You can use this action with the following Directives Types:

Method Data Updatable BAQ


All None All

Use the below statement to configure parameters of this action:


Call the named BPM Data Form using no customization always

named Click this link to open the Select BPM Data Form program. Use this program to specify
which BPM data form should launch when this action executes. Click Run Designer to
launch the BPM Data Form Designer program where you can create data forms.
no customization Click this link to open the Select BPM Data Form Customization program. Use this
program to select a customization to apply to the BPM data form when it is called.
always
Click this link to toggle between the following:
• Always – The BPM data form is called each time the action executes.
• Only when mandatory data missing – The BPM data form is called to acquire data
required to complete the data transaction, but was missing from the data set.

504 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Call SC Workflow

Use this action to enter the login credentials for the server where Epicor Service Connect is installed. After
successfully entering the credentials, the system opens the Select Workflow program, where you select a workflow
to be used as part of the directive action.

You can also create a workflow skeleton directly from the BPM Workflow Designer program. Workflow skeleton
consists of the Start and Finish elements. The Start element is assigned the request schema, produced by the
parent business object and its method, and the Finish element is assigned the response scheme, produced by
the parent business object and its method. You can save this workflow skeleton to any of the existing workflow
packages. Later on you can edit this workflow by means of Workflow Designer.
This way of workflow skeleton creation is useful, as it allows getting the request and response schemes from the
business object and its method.
You can use this action with the following Directives Types:

Method Data Updatable BAQ


All Standard All

Use the below statement to configure parameters of this action:


Call the specified Epicor Service Connect Workflow asynchronously with rule

specified
Click this link to launch the Logon to Service Connect program. Use this program to enter the
login credentials for the server where Epicor Service Connect is installed.
After you successfully enter the login credentials, the Select Workflow program displays. Use
this program to select or create a workflow used for this action. The credentials for ESC are
those entered below the workflow selection tree. The credentials, specified for each ESC server
on this form, are shared by all Call SC Workflow BPM actions in this company.
While you are in the Select Workflow program, you can click the Advanced button to launch
the Workflow Context Parameters program. Use this program to specify iScala manager
credentials called from Epicor Service Connect.
To learn more about Epicor Service Connect, review the available Epicor Service Connect
documentation.

asynchronously
Click this link to toggle between asynchronous and synchronous execution.
• Synchronously - The call is made immediately when the action executes.
• Asynchronously - Asynchronous execution means the call is executed immediately, but the
action does not wait until the ESC workflow is finished and the results are processed.

with rule Click this link to launch the Execution Rule program. If the data transaction supports multiple
dirty rows (rows that contain unsaved data), you can use this program to select how the action
performs. Read the Support for Multiple Dirty Rows section in this chapter for details about each
option in this program. This variable is not visible if the method data transaction does not support
multiple dirty row updates.

ICE 3.0 | 10.0.700 505


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Execute Custom Code

Use this workflow item to launch the custom code action from the BPM workflow.

You can use this action with the following Directives Types:

Method Data Updatable BAQ


All All All

Use the below statement to configure parameters of this action:


Synchronously execute custom code.... with rule

Synchronously Click this link to toggle between asynchronous and synchronous execution:
• Synchronously - The call is made immediately when the action executes.
• Asynchronously - The call is queued and executed according to the schedule defined in
the BPM Async Process program.

code Click this link to launch the Enter Custom Code program. The following sheets are available
within on this window:
• Code - Use this sheet to enter a code snippet written in C# language you want BPM to
execute
• Usings - Use this sheet to specify additional C# usings for the BPM customization.
• References - Use this sheet to add additional references to assemblies from Server\Assemblies
or \Server\Customization\Externals folders of your Epicor ERP installation.

with rule Click this link to launch the Execution Rule program. If the data transaction supports multiple
dirty rows (rows that contain unsaved data), you can use this program to select how the action
performs. Read the Support for Multiple Dirty Rows section in this chapter for details about
each option in this program. This variable is not visible if the method data transaction does not
support multiple dirty row updates.

To see this workflow item in action, see the Execute Custom Code Directive topics within the Custom Business
Process Management chapter.

Invoke External Method

Use this workflow item to create a reference to a custom external method you created using the Create
Programming Interface Form and Microsoft® Visual Studio®.

You can use this action with the following Directives Types:

506 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Method Data Updatable BAQ


All All All

Use the below statement to configure parameters of this action:


Synchronously invoke specified method from external assembly with rule

Synchronously Click this link to toggle between asynchronous and synchronous execution:
• Synchronously - The method is called immediately when the action executes.
• Asynchronously - The method is queued and executed according to the schedule
defined in the BPM Async Process program.

specified method Click this link to display the Add Reference window. Select the assembly's method you
want to invoke.
external Click this link to display the Add Reference window. This window shows all custom external
methods you have created and deployed to the Server\Customization\External folder (or
an alternative folder you specified in web.config)
Select the custom external method from the list.

with rule Click this link to launch the Execution Rule program. If the data transaction supports
multiple dirty rows (rows that contain unsaved data), you can use this program to select
how the action performs. Read the Support for Multiple Dirty Rows section in this chapter
for details about each option in this program. This variable is not visible if the method data
transaction does not support multiple dirty row updates.

The Custom Business Process Management chapter explains this functionality into details. Review the chapter
to understand on arguments contained in the current method and how to use the Create Programming
Interface Form to generate the code shell. The chapter continues with discussion on how to define custom
action logic and deploy the external method using the Microsoft Visual Studio. The complete the functionality,
the chapter explains how to attach the method using the Invoke External Method workflow element.

Flow Chart

The Flow Chart category holds the conditional block workflow element.
Use this element to set up BPM workflow conditions you want to evaluate before an appropriate action is executed
by the workflow.

Condition

This section contains the list of pre-built condition statements you can select.

The conditions define when the subsequent elements will execute. Each condition statement contains one or
more links. Click each link in the statement to open a program where you can configure details of the statement.
After you configure each link and return to the Conditions program, the link text is replaced with the details you
selected.
If you enter more than one condition statement, you can use a logical Operator AND/OR to define the relationship
between the current statement and the preceding statement. You can also group statements by adding parentheses
in the Prefix and Postfix fields. The system evaluates the condition statements in the order they appear and

ICE 3.0 | 10.0.700 507


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

according to how they are grouped. To change the order of the statements, click the up or down arrow buttons
in the toolbar. Condition statements that appear higher in the grid supersede those that appear lower.
Within the workflow, the Condition element may have multiple inbound connections and two outbound
connections (exit points). You can evaluate the BPM condition to either True or False. This gives you a flexibility
in designing the processing flow through directives.
The following topics discuss the available conditions and information on how to use them.

List of Conditions

This section explores all the pre-built conditions available within the BPM functionality.

Some condition statements are available only for certain types


of directives.

As you create specify parameters of BPM workflow actions or conditional blocks, you will notice that most tables
begin with a “tt” prefix in their names. The “tt” prefix is an abbreviation for Temporary Tables; this value is used
within code. When you see a “tt” table name, you are working with tableset tables in Method Directives,
LinqRowSets in Data Directives and dataset rows in uBAQ Method Directives.
When you modify a column in a “tt” table through a pre-process or in-transaction directive, you are modifying
the data before it is committed to the database tables.
The following is the list of conditions:
• the specified public data tag exists on the changed row of the specified table
Use this condition to identify when a data tag has been placed on a record. You can apply data tags to records
throughout the application. A common use of data tags may be to group related records for searches or so
that BPM directives can run when the records are modified.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All All None

Variables Description
The specified (data Click this link to launch the Specify a Value program. Use this program to enter a
tag) free-form text value that matches the data tag for which you want to run the directive.
You can select the Null Value option to check for no tag assigned.
public Click this link to toggle between three values: public, current user and public or
current user. Select public to limit the directive to records that have a public data tag
of the specified name. Select current user to limit the directive to records where the
user trying to modify the record has added a private data tag. Use the public or current
user option if you want a directive to run for a given data tag regardless of whether it
is public or private, instead of limiting the directive to one or the other.
exists
Click this link to toggle between two values: exists and doesn’t exist. Select exists to
limit the directive to records that have the specified data tag. Select doesn’t exist to limit
the directive to records that do not have the specified data tag.

the changed row


Click this link to specify which row set is affected when the rule activates. You can
toggle between six values: the added row, the deleted row, the changed row, the
unchanged row, the updated row and all rows.

508 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Variables Description
specified (table)
Click this link to launch the Select Table program. Use this program to specify a table
that is part of the condition statement. For a data directive, be sure you select the current
table; this table contains the data you want to monitor.

• number of rows in the designed query is not less than 1


Use this condition to create a query and evaluate the number of rows it returns. If this comparison evaluates
to True, the BPM workflow continues the path using the True exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All All All

Variables Description
designed Click this link to launch the Compose Query program similar to Business Activity Query
Designer. The query you create evaluates the number of rows returned by the query
against the comparison value you select later in this statement. In addition to standard
tables, the query phrases can run against temporary tables (tt tables) to analyze values
passed in tablesets or linq row sets.
is not less than Click this link to toggle between six values: is equal to, is not equal to, is less than,
is not less than, is more than or is not more than. Select a comparison option that
is used against the number of rows returned by the selected query.
1 Click this link to launch the Specify a Value program. Use this program to enter a numeric
value that evaluates against the number of rows returned by the query.

• the specified field has been changed from any to another


Use this condition to monitor a specific field contained within the current transaction. If the field’s value
changes to another value that you define, the comparison evaluates to True and the BPM workflow continues
the path using the True exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All
Pre-Processing Pre-Processing
Base Processing Base Processing

Variables Description
specified Click this link to launch the Select Table Field(s) program. Use this program to specify
a field that is part of the BPM condition statement. You can choose a field from any
temporary table (tt table) included in the current method parameters. The application
compares the field value to a value (any to another) you specify.
any Click this link to launch the Specify a Value program. Use this program to enter a value
that is evaluated. You can also select the Null Value or Any value you want to include in
the comparison.

ICE 3.0 | 10.0.700 509


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Variables Description
another Click this link to launch the Specify a Value program. Use this program to enter a value
that is evaluated. You can also select the Null value or Any value you want to include in
the comparison.

• the specified call context field is equal to the specified expression


Use this condition to monitor the value of a context variable in the current data transaction, such as the
CurrentCompany or CurrentUserId. The application compares this argument against an expression that you
specify. If this comparison evaluates to True, the BPM workflow continues the path using the True exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All All All

Variables Description
specified call Click this link to launch the Select Table Field(s) program. Use this program to specify
context a call context field from one of two available Call Context tables. These tables are
available for each business method, and you leverage them for custom data storage on
both the client and server. The application compares the field value to a value that you
specify.
is equal to Click this link to toggle between eight values: is equal to, is not equal to, is less
than, is not less than, is more than,is not more than, begins with, ends with,
contains or matches. Select a comparison option that is used against the call context
variable.
specified Click this link to launch the Specify an Expression program. Use this program to
compose an expression that evaluates against the comparison. The expression can
contain literal values, data from the current transaction, and functions that can perform
calculations and data type conversions.

• the specified field of the changed row is equal to the specified expression
This condition statement monitors a specific field within the data transaction. BPM then compares this field
value to the comparison option and a final value that you specify. If this comparison evaluates to True, the
BPM workflow continues the path using the True exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All
Pre-Processing Pre-Processing
Base Processing Base Processing

Variables Description
specified (field) Click this link to launch the Select Table program. Use this program to specify a field
that is part of the statement. For method directives, you can then select a field from
any temporary table (tt table) included in the current method’s parameters. For data
directives, you can select a field from the temporary table associated with the directive.

510 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Variables Description
the changed row
Click this link to specify which row set is affected when the rule activates. You can
toggle between six values: the added row, the deleted row, the changed row, the
unchanged row, the updated row and all rows.

is equal to Click this link to toggle between eight values: is equal to, is not equal to, is less
than, is not less than, is more than,is not more than, begins with, ends with,
contains or matches. Select a comparison option used to compare the selected field
against the value defined in the expression later in this statement.
specified Click this link to launch the Specify an Expression program. Use this program to
(expression) compose an expression that evaluates against the comparison. The expression can
contain literal values, data from the current transaction, and functions that can perform
calculations and data type conversions.

• the custom code... condition is valid


Use this condition to evaluate a code snippet written in C# language.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All All All

Variables Description
code Click this link to launch the Enter Custom Code editor. The code written in editor
should return boolean value, for example, return true;
valid Click this link to select how the condition evaluates the result of the custom code. If
valid is specified, the result of the custom code is compared with true. When you select
invalid, the result is compared with false.

• the hold of the specified type is attached to the business object


Use this condition to indicate the system should verify whether a hold type is attached to the current or related
business object. If the hold type is present on the selected business object when the method runs, the condition
evaluates to True and the BPM workflow continues the path using the True exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All None None

Variables Description
specified type is attached to the Click this link to launch the Select Business Object program. You can
business object browse all the business objects related to the current method using a
Tree View. This interface displays all the objects that link to, or are linked
from, the current object.

You also specify the hold type this condition needs to verify with this business object. Hold Types must be
created specifically for the selected business object before you can select one through this program.
• the method is called by specified user

ICE 3.0 | 10.0.700 511


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Use this condition to determine whether a specific user did or did not launch the current transaction. This
condition statement can be useful for testing directives so that they are activated only by a specific user
account. If this comparison evaluates to True, the BPM workflow continues the path using the True exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All All All

Variables Description
is called Click this link to toggle between is called or is not called options. Select the option
you need; these options determine whether the user did or did not initiate the data
transaction.
specified user Click this link to launch the User Account Search window. All the user records in
the current database display. Use this window to select a user that is used for this
condition statement.

• the user who called the method belongs to specified group


Use this condition to determine if the current user is or is not a member of a specific security group. The
application compares the groups of the user who initiated the transaction with the security group you specify
in the condition. If this comparison evaluates to True, the BPM workflow continues the path using the True
exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All All All

Variables Description
belongs Click this link to switch between belongs or does not belong options. Select the
option you need; these options determine whether the user is or is not a member
of the security group you specify later in this condition statement.
specified group Click this link to launch the Security Group Search window. Use this window to
specify a security group evaluated against the selected user.

• there is at least one updated row in the specified table


This condition compares the value of a field included in the row set to a table you specify. If this comparison
evaluates to True, the BPM workflow continues the path using the True exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All
Pre-Processing Pre-Processing
Base Processing Base Processing

Variables Description
updated Click this link to specify which row set is affected when this rule activates. You can
select the added row, the deleted row, the updated row or unchanged row.

512 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Variables Description
specified Click this link to launch the Select Table program. Use this program to specify a
table that is monitored by this condition statement. Use this program to choose any
table linked to the current data transaction.

• time is in the specified time frame


Use this condition to check if the directive execution time matches the indicated timeframe. If this comparison
evaluates to True, the BPM workflow continues the path using the True exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All All All

Variable Description
specified Click this link to launch the Specify a Time Frame program. Use this program
to define a time frame that is part of this condition statement.

• This directive has been enabled from the specified directive


Use this condition to select a pre-processing or base processing directive that enabled the current
post-processing directive.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


Post-Processing None Post-Processing

specified Click this link to launch the Select a Primary Directive Upon window. Use this program
to select a pre-processing directive or a base-processing directive that is used for this
condition statement.

• the specified argument is equal to the specified expression


Use this condition to evaluate a BPM parameter, temp-table, or call content. For an updatable BAQ method
directive, the condition can test which BAQ custom action is being run so that BPM directive actions can be
executed.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All None All

Variables Description
specified (argument) Click this link to launch the Select an Argument program. Use this program to
select which parameter you would like to evaluate against the other variables in the
condition statement.
is equal to Click this link to toggle between eight values: is equal to, is not equal to, is less
than, is not less than, is more than,is not more than, begins with, ends with,
contains or matches. Select a comparison option used to compare the selected
field against the value defined in the expression later in this statement.

ICE 3.0 | 10.0.700 513


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Variables Description
specified (expression) Click this link to launch the Specify an Expression program. Use this program to
compose an expression that evaluates against the comparison. The expression can
contain literal values, data from the current transaction, and functions that can
perform calculations and data type conversions.

• the specified argument contains the specific text


Use this condition to evaluate if the specific argument includes the specific word expression. If this comparison
evaluates to TRUE, the directive’s actions are run.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


All None All

Variables Description
specified (argument) Click this link to launch the Select an Argument program. Use this program to
select which parameter you would like to evaluate against the other variables in
the condition statement.
contains Click this link to toggle between six values: equals to, not equals to, begins
with, ends with, contains or matches. Select a comparison option that is used
against the argument variable.
specified (expression) Click this link to launch the Enter Word program. Use this program to enter a
word expression that evaluates against the argument.

• Method changed the specific field of the designed query from any to another value
Use this condition to monitor a specific query field contained within the current transaction. If the current
method changes the query field's value to another value that you define, the comparison evaluates to True
and the BPM workflow continues the path using the True exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


Post-Processing None None

Variables Description
specific Click this link to launch the Select Table Field(s) program. Use this program to specify
a query field that is part of the BPM condition statement.
designed Click this link to launch the Compose Query program similar to BAQ Designer where
you design a query. The query field you select is then evaluated for changes against the
comparison values you select later in this statement.
any Click this link to toggle between six values: is equal to, is not equal to, is less than,
is not less than, is more than or is not more than. Select a comparison option that
is used against the number of rows returned by the selected query.
another Click this link to launch the Specify a Value program. Use this program to enter a value
that evaluates against the query field.

• Value of the specific field of the designed query changed from any to another

514 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Use this condition to monitor a specific query field contained within the current transaction. If the field’s value
changes to another value that you define, the comparison evaluates to True and the BPM workflow continues
the path using the True exit point.
You can use this condition with the following Directives Types:

Method Data Updatable BAQ


None All None

Variables Description
specific Click this link to launch the Select Table Field(s) program. Use this program to specify
a query field that is part of the BPM condition statement.
designed Click this link to launch the Compose Query program similar to BAQ Designer where
you design a query. The query field you select is then evaluated for changes against
the comparison values you select later in this statement.
any Click this link to launch the Specify a Value program. Use this program to enter a
value that evaluates against the query field.
another Click this link to launch the Specify a Value program. Use this program to enter a
value that evaluates against the query field.

Labels

Use the items found within the Labels group to attach and remove Data Tags and BPM Holds.
The tags are unstructured text values that provide a way to group otherwise unrelated records so that you or
other users can search for them. Business Process Management method directives and data directives can leverage
data tags to create custom application functionality.

Example You can use a condition statement to check for the


presence of a data tag on a record. This condition statement
could be used as part of a directive that sends you an e-mail
when a record you tagged has been modified. Also, actions
can be used to add one or more tags to a record being
processed or remove tags from a record. Adding a tag to a
record means that a previously untagged record would appear
in your Data Tag search results after it has been updated.

Use BPM Holds to define an external hold event linked to a business object which in turn may be set through a
BPM action. BPM directives may then be created on other business objects and methods to evaluate whether a
hold exists and then modify the business process as you need. BPM Holds extend the regular status holds built
into the application. You can then define and evaluate your own hold conditions based on your business workflows.

Attach Data Tag

Use this action to attach a data tag to a record. You can apply data tags to records throughout the application.

A common use of data tags may be to group related records for searches or so that BPM directives can run when
the records are modified.

ICE 3.0 | 10.0.700 515


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

You can use this action with the following Directives Types:

Method Data Updatable BAQ


All All None

Use the below statement to configure parameters of this action:


Attach the specified public data tag to the changed row of the specified table with rule

specified (data tag) Click this link to launch the Specify a Value program. Use this program to enter a
free-form text value that matches the data tag you want to apply to the current record.
If the data tag has not been previously defined, it will be created.
public Click this link to toggle between two values: public and current user. Select public to
attach a public data tag to the current record. Select current user to attach a private data
tag for the current user to the current record.
the changed row
Click this link to specify which row set is affected when the rule activates. You can toggle
between six values: the added row, the deleted row, the changed row, the unchanged
row, the updated row and all rows.

specified (table) Click this link to launch the Select Table program. Use this program to specify the table
that is changed through this action.
with rule Click this link to launch the Execution Rule program. If the data transaction supports
multiple dirty rows (rows that contain unsaved data), you can use this program to select
how the action performs. Read the Support for Multiple Dirty Rows section in this chapter
for details about each option in this program. This variable is not visible if the transaction
does not support multiple dirty row updates.

Remove Data Tag

Use this action to remove a data tag from a record. You can apply data tags to records throughout the application.

A common use of data tags may be to group related records for searches or so that BPM directives can run when
the records are modified.
You can use this action with the following Directives Types:

Method Data Updatable BAQ


All All None

Use the below statement to configure parameters of this action:


Remove the specified public data tag to the changed row of the specified table with rule

specified (data tag) Click this link to launch the Specify a Value program. Use this program to enter a
free-form text value that matches the data tag you want to remove from the record.
public Click this link to toggle between two values: public and current user. Select public to
remove a public data tag from the current record. Select current user to remove a private
data tag from the current record for the user that initiated the transaction.

516 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

the changed row


Click this link to specify which row set is affected when the rule activates. You can toggle
between six values: the added row, the deleted row, the changed row, the unchanged
row, the updated row and all rows.

specified (table) Click this link to launch the Select Table program. Use this program to specify the table
that is changed through this action.
with rule Click this link to launch the Execution Rule program. If the data transaction supports
multiple dirty rows (rows that contain unsaved data), you can use this program to select
how the action performs. Read the Support for Multiple Dirty Rows section in this chapter
for details about each option in this program. This variable is not visible if the transaction
does not support multiple dirty row updates.

Attach Hold

Use this action to place a BPM hold on a specific record.

Use BPM holds to define an external hold event linked to a business object which in turn may be set through a
BPM action. BPM directives may then be created on other business objects and methods to evaluate whether a
hold exists and then modify the business process as you need. BPM holds extend the regular status holds built
into the application. You can then define and evaluate your own hold conditions based on your business workflows.
You can use this action with the following Directives Types:

Method Data Updatable BAQ


All None None

Use the below statement to configure parameters of this action:


Attach hold of the specified type with rule

specified
Click this link to launch the Hold Attachment program. Use this program to specify which hold
should be attached to a record when the application executes this action. You can select from
any of the hold types defined for the business object. You can also add an optional comment.
After a hold has been placed on a record, any subsequent directives can check for the presence
of this hold and perform various actions when a user attempts to execute a method that affects
the record.
Hold types are created and maintained in Hold Type Maintenance. To learn about this program,
read the previous Hold Type Maintenance section.

with rule Click this link to launch the Execution Rule program. If the data transaction supports multiple
dirty rows (rows that contain unsaved data), you can use this program to select how the action
performs. Read the Support for Multiple Dirty Rows section in this chapter for details about each
option in this program. This variable is not visible if the method data transaction does not support
multiple dirty row updates.

ICE 3.0 | 10.0.700 517


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Remove Holds

Use this action to remove a hold from a specific record.

You can use this action with the following Directives Types:

Method Data Updatable BAQ


All None None

Use the below statement to configure parameters of this action:


Remove holds of the specified type with rule

specified
Click this link to launch the Hold Removal program. Use this program to specify a hold type
that is removed from a record when the application launches this action.
You can select from any of the hold types defined for the business object. Hold types are created
and maintained in Hold Type Maintenance. To learn about this program, read the previous
Hold Type Maintenance section.

with rule Click this link to launch the Execution Rule program. If the data transaction supports multiple
dirty rows (rows that contain unsaved data), you can use this program to select how the action
performs. Read the Support for Multiple Dirty Rows section in this chapter for details about each
option in this program. This variable is not visible if the method data transaction does not support
multiple dirty row updates.

Other

Use the workflow items found within the Other group to perform various BPM actions.
The BPM workflow can execute the following actions:
• Automatically preview or print a report.
• Write table changes to the applicable program change log.
• Enable launching any post-processing directives linked to the directive in focus.
• Post a data notification message to the Epicor Social Enterprise message stream.
• Display an exception message.
• Send an e-mail notification to a user or a group of users.
• Display an informational message.

Auto Print

Use this action to automatically preview or print a report when the BPM data directive executes.

518 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

To configure this action, select a report, select a printer and print options, and configure the mapping of input
values for report parameters. Typical triggers for an Auto Print action would be the output from an execute
custom code action or the state of a condition action.
You can use this action with the following Directives Types:

Method Data Updatable BAQ


None Standard None

A BPM data directive with Auto Print action is the replacement for the combination of Business Activity Manager
Auto-Print event and Report Data Maintenance Auto Print rules used in previous Epicor ERP releases.

Use the below statement to configure parameters of this action:


Automatically print specified report with specified options

specified (report) Click this link to open the Auto Print Report Search dialog box and choose the
report that will be generated by the Auto Print action.
specified (options) Click this link to open the Set Up Auto Print dialog box, where you select a printer
and print options, and configure the mapping of input values for report parameters.

Change Log

Use this action to write table changes to the applicable program change log when the BPM data directive executes.

To configure this action, select the data directive tables field that will be monitored for change.
Changes in your application data are written to the program change log only when there is an enabled change
log data directive for the affected table and fields. You must create a data directive with a change log action for
each table that you want to monitor in the program change log.

The Change Log action is available in the BPM Workflow


Designer only when the table selected for the data directive
has an assigned ChgLogID in the table's zData.

You can use this action with the following Directives Types:

Method Data Updatable BAQ


None In-Transaction None

Use the below statement to configure parameters of this action:


Log changes to the selected fields of specified table

specified Click to display the Select Table Field(s) dialog box. Use this dialog box to select the table
fields that will be monitored for change. The Name field is inactive, the Table field displays the
data directive table name, and the filter options for Added Records and Updated Records are
pre-selected and cannot be changed.

ICE 3.0 | 10.0.700 519


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Enable Post Directive

Use this action to enable any post-processing directives linked to this directive.

Use this action when you want an action to perform after the record is successfully validated and updated from
the “tt” (temporary) tables to the actual, or physical, tables.
You do not select any variables for this action. Instead, you link a post-processing directive to this pre- or base
processing directive by using the “this directive has been enabled from the specified directive” condition statement.
You select the directive that contains this action statement through the specified variable.
Use this action to test for conditions in a pre-processing or base processing directive and then launch a
post-processing directive based on these conditions.
You can use this action with the following Directives Types:

Method Data Updatable BAQ


None
Pre-Processing Pre-Processing
Base Processing Base Processing

Notify Me

Use this action to post a data notification message to the Epicor Social Enterprise message stream when the BPM
method directive or data directive executes.

To configure this action, you must set the notification profile (application table) that is applied as the context for
alert messages and you must define a message template that includes the message title and message content
that Epicor Social Enterprise will apply when posting data notification messages.
Examples of triggers for a Notify Me action are the state of a Condition action or the output from an Execute
Custom Code action.
You can use this action with the following Directives Types:

Method Data Updatable BAQ


All All None

Use the below statement to configure parameters of this action:


Generate a notification using the profile and key tag for the <TableName> table based on the designed template

<TableName> <TableName> is by default based on the directive table. Click to display the Specify
Notification Profile and Key Tag dialog box. Use this dialog box to choose the notification
profile, company, and key values that will be applied as the context for notification messages.
There are two general approaches. In most cases, leave the profile selection at the notification
profile associated with the directive table and choose a company and key value to be applied

520 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

when the action triggers. Alternatively, choose a different notification profile, company, and
key value.
designed Click to display the Design Notification Message Template dialog box. Use this dialog box
to create a template for the message title and content in data notification messages that are
posted in Epicor Social Enterprise.

Raise Exception

Use this action to display an exception message when this directive’s condition(s) is met.

When this action activates, it stops all processing until the user reviews and clicks OK on the exception message
window. BPM exception messages are transmitted to alternate clients - Epicor Mobile Access, Epicor Web Access,
Web Services and Service Connect.
You can use this action with the following Directives Types:

Method Data Updatable BAQ


In-Transaction
Pre-Processing Pre-Processing
Post-Processing Post-Processing

Use the below statement to configure parameters of this action:


Raise exception based on the designed template with rule

designed
Click this link to launch the Design Exception Template program. Use this program to build an
exception message generated when the application executes the directive action.
Within the message, you can include Call Context data and values queried from related tables and
fields. You do this by designing a Simple Query that pulls in these values from fields. You use the
Select Table Field(s) window to define these variables; launch this window by right-clicking in
the Text field and selecting either the Field Query or the Table Query option from the context
menu. You can select one of the following Severity modes when setting up a message:
Information, Warning, Error and Update Conflict.

with rule Click this link to launch the Execution Rule program. If the data transaction supports multiple
dirty rows (rows that contain unsaved data), you can use this program to select how the action
performs. Read the Support for Multiple Dirty Rows section in this chapter for details about each
option in this program. This variable is not visible if the method data transaction does not support
multiple dirty row updates.

Send E-mail

Use this action to send an e-mail notification when the BPM executes.

You can select to send an e-mail synchronously or asynchronously. Use the Design E-mail template program to
define e-mail parameters such as subject, recipients and the body of an e-mail.

ICE 3.0 | 10.0.700 521


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

You can use this action with the following Directives Types:

Method Data Updatable BAQ


All Standard All

Use the below statement to configure parameters of this action:


Send e-mail asynchronously based on the designed template with rule

asynchronously
Click this link to set this variable to send an email either synchronously or asynchronously. This
indicates how the application handles email generated by this action. Available options:
• Synchronously - The email is sent when the action executes.
• Asynchronously - Asynchronous execution means the action doesn't wait for sending to
complete; it's started immediately when the directive executes.

designed
Click this link to launch the Design Email Template program. Use this program to build an
email message that generates when BPM executes this action.
You can also insert BPM Call Context data, field and table variables into these email messages.
You do this by designing a query that pulls in these values from fields. You use the Select
Table Field(s) window to leverage this functionality. Launch this program by right-clicking
the Text field and selecting either the Field Query or the Table Query options.

with rule
Click this link to launch the Execution Rule program. If the data transaction supports multiple
dirty rows (rows that contain unsaved data), you can use this program to select how the action
performs. Read the Support for Multiple Dirty Rows section in this chapter for details about
each option in this program. This variable is not visible if the method data transaction does
not support multiple dirty row updates.

To define the email settings for the current company, use


Company Maintenance. On the Emails and Forms sheet, you
specify the SMTP Server and Port that distributes email
throughout your company. You also indicate the authentication
method used to connect to the SMTP Server. These settings
are used by Send-Email action and Global Alerts to distribute
email notifications.
When you build the email template, entering the From address
is not mandatory. If you leave this field blank, the BPM directive
first takes the current user's Email address defined in User
Account Security Maintenance. If the user's email address is
not specified, the one specified in Company Maintenance is
used.

Show Message

Use this action to display an informational message that you create.

522 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

After users read the message and click OK, the method continues processing. BPM informational messages are
transmitted to alternate clients - Epicor Mobile Access, Epicor Web Access, Web Services and Service Connect.
You can use this action with the following Directives Types:

Method Data Updatable BAQ


All In Transaction All

Use the below statement to configure parameters of this action:


Show informational message based on the designed template

designed Click this link to launch the Design Informational Message Template program. Use this program
to enter a message that contains information you want users to see. Based on the condition(s) you
define for the current directive, the information message displays. You can select one of the
following Severity modes when setting up an informational message: Information, Warning, Error
and Update Conflict.
You can also insert BPM Call Context data, field and table variables into these informational
messages. You do this by designing a query that pulls in these values from fields. You use the
Select Table Field(s) window to leverage this functionality. Launch this program by right-clicking
the Text field and selecting either the Field Query or the Table Query options.
You can also select if the BPM message displays as an individual message or as a grid item.
with rule Click this link to launch the Execution Rule program. If the data transaction supports multiple
dirty rows (rows that contain unsaved data), you can use this program to select how the action
performs. Read the Support for Multiple Dirty Rows section in this chapter for details about each
option in this program. This variable is not visible if the method data transaction does not support
multiple dirty row updates.

Setters

Use the items found within the Setters group to change values of selected fields.

Set BPM Data Field

Use this action to set the value of a field in a BPM data table.

This table is used with the custom data storage functionality available through CallContext tables. You can check
the field value in a condition of a further directive or pass this value on to the client application.
You can use this action with the following Directives Types:

Method Data Updatable BAQ


All All All

Use the below statement to configure parameters of this action:


Set the specified field of BPM Data to the specified expression

specified (call context) Click this link to launch the Select Table Field(s) program. Use this program to specify
a call context field that is part of the BPM action.

ICE 3.0 | 10.0.700 523


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

specified Click this link to launch the Specify an Expression program. Use this program to
compose an expression used as the call context variable value. The expression can
contain literal values, data from the current transaction, and functions that can perform
calculations and data type conversions.

Set By Query

Run this action to use a query to change the value of a selected field.

You can use this action with the following Directives Types:

Method Data Updatable BAQ


All In-Transaction All

Use the below statement to configure parameters of this action:


Set the specified field of all rows identified by the designed query to the specific expression with rule

specified Click this link to launch the Select Table Field(s) program. Use this program to specify a
standard or custom field that is changed through this action. Use this program to choose a
field from any temporarytable (tt table) included in the current method’s parameters.
designed Click this link to launch the Compose Query program. Use this program to build a Business
Activity Query (BAQ) used with this action. In addition to standard tables, the query phrases
can be run against temporary tables to analyze values passed in tablesets or linq row sets.
specific Click this link to launch the Specify an Expression program. Use this program to compose
an expression that is evaluated against the comparison. The expression can contain literal values,
data from the current transaction, and functions that can perform calculations and data type
conversions.
with rule Click this link to launch the Execution Rule program. If the data transaction supports multiple
dirty rows (rows that contain unsaved data), you can use this program to select how the action
performs. Read the Support for Multiple Dirty Rows section in this chapter for details about
each option in this program. This variable is not visible if the method data transaction does not
support multiple dirty row updates.

Set Field

Use this action to change a selected field to a different value, using a row set action that you define.

You can use this action with the following Directives Types:

Method Data Updatable BAQ


All In Transaction All

Use the below statement to configure parameters of this action:

524 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Set the specified field of the changed row to the specific expression with rule

specified Click this link to launch the Select Table Field(s) program. Use this program to specify a
standard or custom field that is changed through this action. Use this program to select a
field from any temporary table (tt table) included in the current method’s parameters.
the changed
Click this link to specify which row set is affected when the rule activates. You can toggle
row
between six values: the added row, the deleted row, the changed row, the unchanged
row, the updated row and all rows.

specific Click this link to launch the Specify an Expression program. Use this program to compose
an expression that is evaluated against the comparison. The expression can contain literal
values, data from the current transaction, and functions that can perform calculations and
data type conversions.
with rule Click this link to launch the Execution Rule program. If the data transaction supports multiple
dirty rows (rows that contain unsaved data), you can use this program to select how the
action performs. Read the Support for Multiple Dirty Rows section in this chapter for details
about each option in this program. This variable is not visible if the method data transaction
does not support multiple dirty row updates.

Support for Multiple Dirty Rows


A dirty row is a row of data that is modified but not yet saved to the database. For example, when the user
modifies a row, like a currency exchange rate, then moves to another row (another exchange rate), modifies it,
and then saves the two rows together, these two rows are called multiple “dirty” rows.
Some methods only allow changed rows to process one at a time, and so do not support multiple dirty rows.
However, some methods can send multiple dirty rows together as a set to the server for update.
When multiple rows are sent to the server at the same time, you can specify a directive to take action on the
batch of rows in a specific way. These actions are available for both method directives, if the method is marked
as supporting Multiple Dirty Rows, and standard data directives:
• Once passing all matching rows - The action executes once as it moves through the data within the set of
dirty rows, but it only gets the rows that match the selection criteria.
• Once passing all existing rows - The action executes one time as it moves through the data within the set
of dirty rows, and it checks all rows within the dirty row set.
• For each matching - The action executes for as many times as the number of rows that match the selection
criteria in the dirty row set. Each row processes individually.
• For each existing - The action executes for as many times as the number of rows within the dirty row set
(the overall number of dirty rows). Each row processes individually.

Dependent Directives

You can establish relationships between directives created for the same business object method. These relationships
are dependent; if one directive executes successfully, the application runs the other directive. This first directive
is called the Primary Directive, and it becomes the condition for the second, or Dependent, directive. Dependent
directive processing applies only to method directives, and not to data directives.
Using dependent directives helps prevent errors. Leverage this function when you do not want to update a record
or send a confirmation email until you are sure the transaction completed successfully. If an action is run before
the transaction, there may be an error in the data – but the action runs anyway. For example, a confirmation

ICE 3.0 | 10.0.700 525


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

email may be sent indicating the transaction was successful, when actually it was not. If the condition for the
email, however, is on a dependent directive, you know for certain the transaction was successful before the email
was sent.
To do this, you first create the primary directive and then the dependent directive. Both directives are created for
the same method.

Primary Directive
The primary directive must either be a pre-processing or a base processing directive. Typically, you first define
the condition for the directive and then use the Enable Post Directive item within the workflow.
This indicates that the result of the primary directive – success or failure – is passed to another directive belonging
to the same method.

Dependent Directive
This directive must be a post-processing directive. To create the dependent directive, place the Condition block
in the block the workflow and select the "This directive has been enabled from the specified directive" statement.
Click the “specified” link to select the pre-processing or base processing method.
This condition statement indicates the application runs the dependent post-processing directive based on the
condition(s) specified in the primary directive.

Case Studies

This section of the chapter explores some step-by-step case studies. Each case study explores a different aspect
of the functionality you can leverage within the BPM module.

Make a Field Mandatory

Many customers want to ensure when they create new parts, they have a part class or product group named. In
this example, the naming depends on whether the part type is purchased or manufactured. This example
demonstrates the Business Process Management (BPM) features to make a field mandatory based on a condition.
Key concepts are:
• Use built-in BPM functionality.
• Use conditional actions.

Add a Method Code


In this task, create a new method directive based on the Part Business Object Update method.
Navigate to Method Directives.
Menu Path: System Management > Business Process Management > Method Directives Maintenance

This program is not available in the Epicor Web Access.

526 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

1. On the Detail sheet, click the Method Code button.

2. The Method Search window displays.

3. In the Search by Business Object section, verify Product is selected.


By selecting this option, the Business Objects belonging to the application part of the system become
available for selection.

4. In the Business Object field, select Part.

5. In the Where Method Name Starts At field, enter U.

6. Click Search.

7. In the Search Results grid, select the Update method.

8. Click OK.
The Business Object returns on the form.

ICE 3.0 | 10.0.700 527


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

9. In the Method Description field, enter Set Part Class or Product Group Mandatory.

10. Click Save.

Add a Pre-Processing Directive

1. From the New menu, select New Pre-Processing.

2. In the Directive Name field, enter Mandatory Part Class and Group.

3. In the Group field, enter MyGroup.


This field signifies the group to which the current directive belongs. You can select an existing value or enter
a value to create a new group. This field is optional but can help organize directives for searches and is used
when exporting directives.

4. Click Save.

5. Click Design to launch the BPM Workflow Designer.


The available workflow items display on the left portion of the screen. In the following tasks, you will use
the items to build a BPM workflow.

528 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Add First Condition

1. In the workflow items toolbar, click the Condition icon and drag it to the workflow pane of the Designer,
below the Start item.

2. Hover your mouse over the Start item.


The small black triangles surrounding the item represent the available connectors.

3. Click your mouse, select any of the Start connector symbols, drag the line and point it to any of the Condition
element entry points.
The connection between the two elements is now established.
You will now build the first condition that checks if the Part Type is set to Purchased and Part Class is empty.

4. In the workflow, click the Condition item.

5. In the Condition pane at the bottom, click the Add Line icon.

6. In the Condition field, invoke the list and select The specified field of the changed row is equal to the
specified expression.

ICE 3.0 | 10.0.700 529


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

7. Click the first specified.

8. In the Table field, verify ttPart displays.

The “tt” prefix indicates this table is a temporary table -


an intermediate table used to validate data before it is
saved to your physical database.

9. In the Fields search box, enter type.

10. From the list of available fields, select the TypeCode check box.

11. Click OK.

12. At the end of the Condition field, click specified.

530 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

13. In the Editor text box, enter "P" (this expression stands for Purchased parts, remember to include the
quotation marks).

14. In the Specify an expression window, click OK.

Extend First Condition

1. In the Condition pane, click the Add Line icon.

2. In the second line, in the Operator field, verify And displays.

3. In the Condition field, from the list, select the specified field of the changed row is equal to the
specified expression.

4. Click the first specified.

5. In the Table field, verify ttPart displays.

6. Select the ClassID field name check box.

7. Click OK.

8. At the end of the Condition field, click specified.

ICE 3.0 | 10.0.700 531


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

9. In the Editor text box, enter "" (quotation marks represent a blank).

10. In the Specify an Expression window, click OK.

11. The Condition pane should now read:

Operator Prefix Condition Postfix


None The ttPart.TypeCode field of the changed row is equal to
the "P" expression
And The ttPart.ClassID field of the changed row is equal to the
"" expression

This states that when the Type field in Part Maintenance of the changed row is P (for Purchased) and the
Class field of the changed row is blank, execute the following action(s). You will define these actions in the
following workshops.

532 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

12. Click Validate and verify BPM reports no errors.

Add First Action


Complete this step to display an error message which halts user actions. This action will display when the condition
evaluates to True, which means, when in a purchased part, the Part Class field is left blank.

1. In the workflow items tollbar, click the Raise Exception icon and drag it to the workflow pane of the
Designer, below the Condition item.

2. Click the Condition element.

3. On the left side of the Condition element, verify True displays.

4. Select the True exit point, drag the line and point it to any of the Raise Exception element entry points.

5. Click the Raise Exception element.

6. In the Actions pane, verify raise exception based on the designed template displays.

7. Select designed to launch the Design Exception Template window.

8. In the Name field, enter Mandatory Part Class.

9. For the Severity level, select Warning.

10. In the text box, enter Purchased parts must have a Part Class - BPM.

11. In the Design Exception Template window, click OK.

12. The Actions pane should now read:

ICE 3.0 | 10.0.700 533


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Action Name Action Terminate on error


Raise Exception 0 Raise exception based on the Mandatory Part selected
Class template

You are now ready to extend the workflow by adding a second condition to make the Group field mandatory
for manufactured or kit parts.

Add Another Condition


Recall the first Condition evaluates to True when purchased part has no part class selected. When this condition
is not met, for example, when the Update Method is triggered with manufacturing or sales kit part in focus, the
BPM Condition sends the information to the False exit point and routes the BPM using another workflow branch.
You will now add another Condition that will be called when first condition evaluates to False. This condition
checks if manufacturing or kit parts have the part group selected. If not, the BPM will raise another exception.

534 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

1. In the workflow items tollbar, click the Condition icon and drag it to the workflow pane of the Designer,
to the right of the first Condition.

2. Create a connection between the False exit point of the first Condition and any entry point of the second
Condition.

3. In the workflow, click the newly added Condition item.

4. In the Condition pane at the bottom, click the Add Line icon.

5. In the Condition field, invoke the list and select The specified field of the changed row is equal to the
specified expression.

6. Click the first specified.

7. In the Table field, verify ttPart displays.

8. In the Fields search box, enter type.

9. From the list of available fields, select the TypeCode check box.

10. Click OK.

ICE 3.0 | 10.0.700 535


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

11. At the end of the Condition field, click specified.

12. In the Editor text box, enter "M" for (Manufactured, including the quotations).

13. In the Specify an expression window, click OK.

Check for Sales Kit Part

1. In the Conditions window, click the Add Line icon.

536 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

2. In the Operator field, select Or.

3. In the Condition field, invoke the list and select The specified field of the changed row is equal to the
specified expression.

4. Click the first specified.

5. In the Table field, verify ttPart displays.

6. In the Fields search box, enter type.

7. From the list of available fields, select the TypeCode check box.

8. Click OK.

9. At the end of the Condition field, click specified.

10. In the Editor text box, enter "K" for Sales Kit, including the quotations.

11. In the Specify an expression window, click OK.


You now extend the condition by adding another line.

ICE 3.0 | 10.0.700 537


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Extend Second Condition

1. In the Condition pane, click the Add Line icon.

2. In the third condition line, in the Operator field, verify And displays.

3. In the Condition field, from the list, select the specified field of the changed row is equal to the
specified expression.

4. Click the first specified.

5. In the Table field, verify ttPart displays.

6. In the Fields search box, enter prod.

7. Select the ProdCode field name check box.

8. Click OK.

538 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

9. At the end of the Condition field, click specified.

10. In the Editor text box, enter "" (recall quotation marks represent a blank).

11. In the Specify an Expression window, click OK.

12. The Condition pane should now read:

Operator Prefix Condition Postfix


None The ttPart.TypeCode field of the changed row is equal to the
"M" expression
Or The ttPart.TypeCode field of the changed row is equal to the
"K" expression
And The ttPart.ProdCode field of the changed row is equal to the ""
expression

ICE 3.0 | 10.0.700 539


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

This states when the Type field in Part Maintenance is M (for manufactured) or K (for sales kit) and the
Group field blank, then execute the following workflow action.

13. Click Validate and verify BPM reports no errors.

Add Second Action


This action will display when the second condition evaluates to True, which means, when in a manufactured or
kit part, the Part Group field is left blank.

540 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

1. In the workflow items tollbar, click the Raise Exception icon and drag it to the workflow pane of the
Designer, below the second Condition item.

2. Click the Condition 1 element.

3. Select the True exit point, drag the line and point it to any of the Raise Exception 1 element entry points.

4. Click the Raise Exception 1 element.

5. In the Actions pane, verify raise exception based on the designed template displays.

6. Select designed to launch the Design Exception Template window.

7. In the Name field, enter Mandatory Group.

8. For the Severity level, select Warning.

9. In the text box, enter Group is mandatory for manufactured or kit parts - BPM.

10. In the Design Exception Template window, click OK.

11. The Actions pane should now read:

ICE 3.0 | 10.0.700 541


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Action Name Action Terminate on error


Raise Exception 0 Raise exception based on the Mandatory selected
Group template

12. Click Validate and verify the BPM reports no errors.

13. Click Save and Exit.

542 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

14. On the Pre-Processing > Detail sheet, select the Enabled check box.

15. Click Save.

Test the BPM for the Part Class


Navigate to Part Maintenance.
Menu Path: Sales Management > Order Management > Setup > Part
The CRM menu path is: Customer Relationship Management > Order Management > Setup > Part

1. In the Part field, enter a new part. In this example, enter MyNewPart.

2. In the Add New Confirmation dialog box, click Yes.

ICE 3.0 | 10.0.700 543


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

3. In the Description field, enter Purchased Part.

4. Leave the Type field as Purchased.

5. Click Save.
The first BPM condition is met and the exception message is fired.

6. To the error message from the BPM that says you must specify a Part Class, click OK.

7. In the Class field, select Hardware.

8. Click Save.
The part saves with no errors.

9. Remain in Part Maintenance.

544 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Test the BPM for the Part Group

1. To test the second branch of the BPM workflow, click New to enter a new part.

2. In the Part field, enter MyMfgPart.

3. In the Description field, enter Manufactured Part.

4. In the Type field, select Manufactured and click Save.


The second BPM condition is now met and activates the exception.

5. To the error message from the BPM that says you must specify a Group field, click OK.
To test the second part of the condition, select Sales Kit for the part Type and verify the same exception
displays.

6. To the error message, click OK.

ICE 3.0 | 10.0.700 545


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

7. In the Group field, select Configured Parts.

8. Click Save.
The part now saves with no errors.

Create and Use a Hold Type

BPM Holds can prohibit data transaction processing for specified reasons. In this example, a simple condition
checks if the State field has been entered for a Customer record. If not, a Customer Review BPM hold is attached
to the record. You then prevent creation or update of sales orders for customers on a Customer Review hold.
In this example, place or remove the hold during the Post Update process for a customer. You do not want to
accidentally place a record on hold before it passes through validation and update. It is not possible to use
condition tests that rely on the RowMod identifier (Add, Update, or Delete) during the Post Update Process. Use
a Pre-Processing directive to test for conditions to place or remove holds, but use a Post-Processing directive to
perform the actions.

Create the Hold Type


Navigate to Hold Type Maintenance.
Menu Path: System Management > Business Process Management > Hold Type Maintenance

This program is not available in the Epicor Web Access.

546 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

1. Click New.

2. In the Hold Type field, enter Customer Review.

3. Click the Business object button.

4. In the Starting At field, enter Cus and click Search.

5. Select Customer and click OK.

6. In the Description field, enter Customer Review.

7. Click Save.

ICE 3.0 | 10.0.700 547


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

8. Exit Hold Type Maintenance.

Add a Method Code


Navigate to Method Directives.
Menu Path: System Management > Business Process Management > Method Directives Maintenance

This program is not available in the Epicor Web Access.

1. On the Detail sheet, click the Method Code button.

2. The Method Search window displays.

3. In the Search by Business Object section, verify Product is selected.


Recall by selecting this option, the Business Objects belonging to the application part of the system become
available for selection.

4. In the Business Object field, select Customer.

5. In the Where Method Name Starts At field, enter U.

6. Click Search.

7. Select the Update method and click OK.


The Business Object returns on the form.

548 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

8. In the Method Description field, enter Customer Review.

9. Click Save.

Add a Pre-Processing Directive

1. From the New menu, select New Pre-Processing.

2. In the Directive Name field, enter Condition Test to Set Hold.

3. Click Design to launch the BPM Workflow Designer.

ICE 3.0 | 10.0.700 549


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

4. In the workflow items tollbar, click the Condition icon and drag it to the workflow pane of the Designer,
below the Start item.

5. Click your mouse, select any of the Start connector symbols, drag the line and point it to any of the Condition
element entry points.
The connection between the two elements is now established.

6. In the workflow, click the Condition item.

7. In the Condition pane at the bottom, click the Add Line icon.

8. In the Condition field, invoke the list and select The specified field of the changed row is equal to the
specified expression.

9. Click the first specified.

10. In the Table field, verify ttCustomer displays.

11. In the Fields search box, enter Sta.

12. From the list of available fields, select the State check box.

550 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

13. Click OK.

14. At the end of the Condition field, click specified.

15. In the Editor text box, enter "".


This indicates that directive should execute when the Customer.Update method initiates and the State field
is blank.

16. In the Specify an expression window, click OK.

ICE 3.0 | 10.0.700 551


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Add an Action

1. In the workflow items tollbar, click the Enable Post Directive icon and drag it to the workflow pane of
the Designer, below the Condition item.

2. Click the Condition's True exit outbound connector (found on the left) and connect it to any of the Enable
Post Directive entry points.

3. Click Validate and verify the BPM reports no errors.

4. Click Save and Exit to return to Method Directives.

552 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

5. Select the Enabled check box.

6. Click Save.

Add a Pre-Processing Directive

1. From the New menu, select New Pre-Processing.

2. In the Directive Name field, enter Condition Test to Remove Hold.

3. Click Design to launch the BPM Workflow Designer.

ICE 3.0 | 10.0.700 553


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

4. In the workflow items tollbar, click the Condition icon and drag it to the workflow pane of the Designer,
below the Start item.

5. Click your mouse, select any of the Start connector symbols, drag the line and point it to any of the
Condition element entry points.

6. In the workflow, click the Condition item.

7. In the Condition pane at the bottom, click the Add Line icon.

8. In the Condition field, invoke the list and select The specified field of the changed row is equal to the
specified expression.

9. Click the first specified.

10. In the Table field, verify ttCustomer displays.

11. In the Fields search box, enter Sta.

12. From the list of available fields, select the State check box.

13. Click OK.

554 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

14. In the Condition field, click the drop-down next to is equal to.

15. From the list, select is not equal to.

16. At the end of the Condition field, click specified.

17. In the Editor text box, enter "".

ICE 3.0 | 10.0.700 555


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

This indicates that directive should execute when the Customer.Update method initiates and the Customer
State field is NOT blank.

18. In the Specify an expression window, click OK.

Add an Action

1. In the workflow items tollbar, click the Enable Post Directive icon and drag it to the workflow pane of
the Designer, below the Condition item.

2. Click the Condition's True exit outbound connector (found on the left) and connect it to any of the Enable
Post Directive entry points.

3. Click Validate and verify the BPM reports no errors.

4. Click Save and Exit to return to Method Directives.

556 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

5. Select the Enabled check box.

6. Click Save.

Add a Post-Processing Directive

1. From the New menu, select New Post-Processing.

2. In the Directive Name field, enter Take Customer Off Hold.

3. Click Design to launch the BPM Workflow Designer.

ICE 3.0 | 10.0.700 557


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

4. In the workflow items tollbar, click the Condition icon and drag it to the workflow pane of the Designer,
below the Start item.

5. Click your mouse, select any of the Start connector symbols, drag the line and point it to any of the
Condition element entry points.

6. In the workflow, click the Condition item.

7. In the Condition pane at the bottom, click the Add Line icon.

8. In the Condition field, invoke the list and select this directive has been enabled from the specified
directive.

9. In the Condition text, click specified.

10. In the Stage field, verify Pre (Pre-Processing directive) is selected.

11. In the Directive field, select Condition Test to Remove Hold and click OK.
This way, you specify which pre-processing directive enables the post-processing directive you are currently
configuring.

558 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Add an Action

1. In the workflow items tollbar, click the Remove Holds icon and drag it to the workflow pane of the Designer,
below the Condition item.

2. Click the Condition's True exit outbound connector (found on the left) and connect it to any of the Remove
Holds entry points.

3. Click the Remove Holds item.

4. Verify the Action displays Remove holds of the specified type.

5. In the Action text, click specified.

6. In the Hold Type field, select Customer Review and click OK.
Recall you created this hold type at the beginning of this workshop.

7. Click Validate and verify the BPM reports no errors.

8. Click Save and Exit to return to Method Directives.

ICE 3.0 | 10.0.700 559


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

9. Select the Enabled check box.

10. Click Save.

Add a Post-Processing Directive


Add a Post-Processing Directive to set the hold.

1. From the New menu, select New Post-Processing.

2. In the Directive Name field, enter Place Customer on Hold.

3. Click Design to launch the BPM Workflow Designer.

560 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

4. In the workflow items tollbar, click the Condition icon and drag it to the workflow pane of the Designer,
below the Start item.

5. Click your mouse, select any of the Start connector symbols, drag the line and point it to any of the
Condition element entry points.

6. In the workflow, click the Condition item.

7. In the Condition pane at the bottom, click the Add Line icon.

8. In the Condition field, invoke the list and select this directive has been enabled from the specified
directive.

9. In the Condition text, click specified.

10. In the Stage field, verify Pre (Pre-Processing directive) is selected.

11. In the Directive field, select Condition Test to Set Hold and click OK.
This indicates the directive should execute after the Condition Test to Set Hold directive executes.

ICE 3.0 | 10.0.700 561


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

Add an Action

1. In the workflow items tollbar, click the Attach Hold icon and drag it to the workflow pane of the Designer,
below the Condition item.

2. Click the Condition's True exit outbound connector (found on the left) and connect it to any of the Attach
Hold entry points.

3. Click the Attach Hold item.

4. Verify the Action displays Attach hold of the specified type.

5. In the Action text, click specified.

6. In the Hold Type field, select Customer Review.

7. In the Comment field, enter BPM Hold - Customer.Update and click OK.

8. Click Validate and verify the BPM reports no errors.

9. Click Save and Exit to return to Method Directives.

562 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

10. Select the Enabled check box.

11. Click Save.

Add a Method Code


Now you will create another method directive for the Sales Order business object. The directive will raise an
exception when a customer used on a sales order does not have the State field specified in Customer Maintenance.

1. Click the Method Code button.

2. In the Search by Business Object section, verify Product is selected.

3. In the Business Object field, select SalesOrder.

ICE 3.0 | 10.0.700 563


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

4. Click Search.

5. Select ChangeCustomer and click OK.

6. The method defaults to Erp.SalesOrder.ChangeCustomer.

7. Enter a brief Description, in this example enter Check customer record.

8. Click Save.

Add a Pre-Processing Directive

1. From the New menu, select New Pre-Processing.

564 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

2. In the Directive Name field, enter Customer Sales Order.

3. Click Design to launch the BPM Workflow Designer.

4. In the workflow items tollbar, click the Condition icon and drag it to the workflow pane of the Designer,
below the Start item.

5. Click your mouse, select any of the Start connector symbols, drag the line and point it to any of the Condition
element entry points.

6. In the workflow, click the Condition item.

7. In the Condition pane at the bottom, click the Add Line icon.

8. In the Condition field, invoke the list and select the hold of the specified type is attached to the
business object.

9. Click specified type is attached to the business object.

ICE 3.0 | 10.0.700 565


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

10. The Select Business Object window displays.

11. Expand the following nodes: Erp.SalesOrder > Objects, linked with the object "Erp.Sales Order" >
via OrderHed.

12. Select the first Erp.Customer object.

13. In the Hold Type field, verify XXX Customer Review (where XXX are your initials) and is attached
populates.

14. In the Select Business Object window, click OK.


This indicates the directive should execute when the ChangeCustomer method is called and the customer
on the order is on Customer Review hold.

Add an Action
Define an action to display an exception message.

566 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

1. In the workflow items tollbar, click the Raise Exception icon and drag it to the workflow pane of the
Designer, below the Condition item.

2. Click the Condition element.

3. On the left side of the Condition element, verify True displays.

4. Select the True exit point, drag the line and point it to any of the Raise Exception element entry points.

5. Click the Raise Exception element.

6. In the Actions pane, verify raise exception based on the designed template displays.

7. Select designed to launch the Design Exception Template window.

8. In the Name field, enter Customer Hold.

9. In the text box, enter This customer is on hold because a required field has not been entered - BPM.
This action executes when the Customer.Update method initiates and specified conditions are met.

10. In the Design Exception Template window, click OK.

11. Click Validate and verify BPM reports no errors.

12. Click Save and Exit to return to Method Directives.

ICE 3.0 | 10.0.700 567


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

13. Click the Enabled check box.

14. Save the directive.

Test the BPM


Menu Path: Sales Management > Order Management > General Operations > Order Entry
The CRM menu path is: Customer Relationship Management > Order Management > General Operations >
Order Entry

1. To test the BPM, enter a sales order for a customer with no State defined in master record. When you add
a customer to an order, the application displays an exception. In this example, customer Addison is used.

2. Navigate to Sales Order Entry.

568 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Menu Path: Sales Management > Order Management > General Operations > Order Entry
The CRM menu path is: Customer Relationship Management > Order Management > General Operations
> Order Entry

3. Click New.

4. In the Customer field, enter Addison.

5. The BPM throws the exception.

6. To the message, click OK.

In this example, you could continue entering the order. In the real environment, to prevent the order from being
completed, you can create a pre-processing directive for the SalesOrder.Update method to check for the hold
and raise the same exception.

Use Auto Print Action

You can use BPM to automatically preview or print a report when the BPM data directive executes. In this example,
apply the standard data directive on the OrderHed table to preview the Sales Order Acknowledgement report
when user enables a check box.
To configure the Auto-Print action, select a report, select a printer and print options, and configure the mapping
of input values for report parameters. The Auto Print action is typically triggered by the execute custom code
action or after a certain condition is met.

Locate the OrderHed Table


Navigate to Data Directives.
Menu Path: System Management > Business Process Management > Data Directives Maintenance

This program is not available in the Epicor Web Access.

ICE 3.0 | 10.0.700 569


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

1. Click the Table button.

2. The Table Search window displays.

3. Verify Search by Table option is selected.

4. In the Table Name Starting At field, enter Order.

5. Click Search.

6. Select OrderHed and click OK.

Add Standard Directive

1. Click New and select New Standard Directive.

570 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

2. In the Directive Name field, enter Auto Print.

3. Click Design to launch the BPM Workflow Designer.

4. Click the Condition icon and drag it to the workflow pane of the Designer, below the Start item.

5. Create a connection between the Start and Condition elements.

6. In the workflow, click the Condition item.

7. In the Condition pane at the bottom, click the Add Line icon.

8. In the Condition field, invoke the list and select The specified field has been changed from any to
another.

9. Click the specified link.

10. In the Table field, verify ttOrderHed displays.

11. From the list of available fields, select the AutoPrintReady check box and click OK.

ICE 3.0 | 10.0.700 571


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

12. Click the another link.

13. Clear the Any Value check box.

14. In the Value field, select true and click OK.


This condition will trigger the subsequent action when a user selects the Auto-Print Ready check box found
on Sales Order's Summary sheet.

572 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Add an Action

1. In the workflow items tollbar, click the Auto Print icon and drag it to the workflow pane of the Designer,
below the Condition item.

2. Click the Condition's True exit outbound connector connect it to any of the Auto Print entry points.

3. Click the Auto Print workflow element.

4. In the Actions pane, verify Automatically print specified report with specified options displays.

5. Click the first specified link.

6. In the search dialog box, the Basic tab presents fields for entering search criteria specific to reports.

7. In the Report Type, select the available type of report you want to use. In this example, select SQL Server
Reporting (SSRS) type.

8. In the Report Table Level field, select 'OrderHed' is the Primary table option.
This means only the reports where OrderHed is defined as the primary table will become available for
selection.

9. Click Search.

ICE 3.0 | 10.0.700 573


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

10. From the list, select OrderAck (Sales Order Acknowledgement) and click OK.

11. Click the specified link.

12. In the Run Schedule field, verify Immediate displays.


This means the action will execute right after the condition is satisfied.

13. In the Print Action field, you can select if you want to automatically send the report to the printer or if you
want to preview it first. In this example, select Auto Preview.

574 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

Define Report Parameters

Now you must specify the Report Parameters. On this sheet, you can add or edit the actions associated with
the listed parameters so that values can be passed to the report in the context of the Auto Print action.

1. Select the Report Parameters sheet.

2. In the OrderNum parameter, click the arrow on the right-hand side and select The specified table and
field value.

3. Click the specified link to launch the Select Table Field(s) window.

4. Verify the ttOrderHed table is selected by default.

5. From the list of fields, select OrderNum field.

6. Click OK.

7. Verify the OrderNum parameter is set to The ttOrderHed.OrderNum table and field value.

8. In the Set up Auto Print window, click OK.

9. Click Save and Exit to return to the Data Directives window.

ICE 3.0 | 10.0.700 575


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

10. Select the Enabled check box to activate the directive.

11. Click Save.

Test the BPM


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

576 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management | Chapter 8

1. Click New > New Order.

2. Enter a Customer, in this example, you create a new order for the customer Dalton.

3. Click New > New Line.

4. On the Lines Detail sheet at the bottom, enter the the order details. In this example, enter the following
information:

Field Value
Part DSS-1010
Order Quantity 10

5. Select the Auto-Print Ready check box.

6. Click Save.

ICE 3.0 | 10.0.700 577


Chapter 8 | Business Process Management Epicor ICE 3.0 Tools User Guide

7. The Sales Order Acknowledgement report automatically displays for the order in focus.

578 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

Chapter 9: Custom Business Process Management

While the Business Process Management (BPM) module contains actions that address typical business needs, you may
have additional requirements specific to your organization or industry. To handle these unique situations, you can
customize BPM method, data, and updatable BAQ directives.
You can customize BPM through the Execute Custom Code action. When you select this action, you can enter C# code
through a code window, validate your code, and then enable the directive. When conditions on the directive are met,
your custom code runs, insuring data entry matches company requirements, displaying warning and information dialog
boxes, populating default data, and so on.
If you need users to enter custom data as part of a BPM requirement, use the BPM Data Form Designer. Through this
program you can create a custom data form that includes text fields, radio button options, drop-down lists, and buttons.
You can also secure this data form by requiring users to enter a password. This data form is then launched through
an action on a directive. When the directive activates, the data form displays and users enter the data you need.
To complete the customization tools, you can create custom external methods and Service Connect workflows. The
BPM functionality generates a code shell for your custom VB.NET or C# method, and then you can access this shell
® ®
within Microsoft Visual Studio to create your external method. Once your external method is compiled, you can
select it on a directive action. Through this same functionality you can also create a Service Connect workflow that
links the data generated through the directive to Service Connect. This data is then available to other Epicor or third
party applications.

Execute Custom Code Directive

You use the Execute Custom Code action to create a custom method, data, or updatable BAQ directive. Leverage
this feature to build a custom action that runs when the condition(s) on a directive activate; you create these
actions using the C# programming language.
During this example, you will create a data directive that monitors Part Maintenance. When a user enters a new
Part ID that has the "HDW" prefix, the Product Group field automatically populates with the Hardware option.

Create the Data Directive

You create this directive using Data Directives Maintenance.


Menu Path: System Management > Business Process Management > Data Directives Maintenance

This program is not available in the Epicor Web Access.

ICE 3.0 | 10.0.700 579


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

1. You need this data directive to monitor the Part ID field. For the Table, find and select the Part table.

2. Click the Down Arrow next to the New button; select New In-Transaction Directive.

3. For the Directive Name, enter Set Part Defaults.

4. Select the Group you need for this data directive.

5. Click the Design button.

580 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

6. The BPM Workflow Designer displays.

7. From the Callers group, click and drag the Execute Custom Code item to the design area.

8. Click on the Start item to display its connection points.

9. Click and drag a connection line from the Start item to the Execute Custom Code item.

10. In the Actions pane, the Synchronously execute custom code... line displays. Click the code... link.

11. The Enter Custom Code window displays.

12. Enter the following C# code:


var ttPart_Row = ttPart.FirstOrDefault(r => r.Added());
if (ttPart_Row !=null)
{
string prodCodeHardware = "HDW";
if (ttPart_Row.ProdCode==String.Empty)
{
if (ttPart_Row.PartNum.StartsWith(prodCodeHardware, StringComparison.
OrdinalIgnoreCase))
{

ICE 3.0 | 10.0.700 581


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

ttPart_Row.ProdCode=prodCodeHardware;
}
}
}

13. Click OK.

Test the Data Directive

1. The action statement now displays a reference to your custom code.

2. Click Validate to verify your custom code runs without errors.

3. Click the Save and Exit button.

582 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

4. Now on the Data Directives Maintenance window, select the Enabled check box.

5. Click Save.

6. Navigate to Part Maintenance.


Menu Path: Material Management > Purchase Management > Setup > Part

7. Click the New button.

ICE 3.0 | 10.0.700 583


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

8. For the Part ID, enter HDW-test.

9. Now in the Description, enter Hardware Group Test.

10. Click Save.

11. The Group drop-down list updates to display the Hardware product group.

BPM Data Form Designer

Use the BPM Data Form Designer program to create custom data forms you can then launch through method
and updatable BAQ directives. You launch these custom forms by adding the Call BPM Data Form item to a BPM
workflow.
You can create simple forms which contain text and two buttons (for example, Abort and Continue) to complex
forms which include entry fields that update your database. BPM data forms capture data or button actions to
control a specific BPM processing directive. Use this functionality to either conditionally display a form or capture
the data required against a specific transaction.
When a custom BPM Data form displays, the directive pauses until the user enters the required data or clicks the
appropriate button. While the user enters data on the form, the method call is stays active on the server. When
the user completes the requirements on the BPM custom form, the call is sent to the server again, but this time
it skips all the actions it previously ran.

584 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

Create a BPM Data Form


Menu Path: System Management > Business Process Management > BPM Data Form Designer

This program is not available in the Epicor Web Access.

To create a new BPM data form:

1. Click the New button.

2. Enter a unique ID for the form.

3. Add a Form Title; this text becomes the title which displays on the BPM form. You can add links to field
content within CallContext tables. Before the BPM custom form displays, this data is pulled from the field
content and is shown as text within the BPM form.

4. Optionally add Form Text that details the purpose of the form and any instructions required to use it. You
can add links to content of fields in CallContext tables. Before the BPM custom form displays, this data is
pulled from the field content and is shown as text within the BPM form.

5. Click Save.

Add Fields
Use the Fields sheet to add controls to the form.

1. Click the Fields tab.

ICE 3.0 | 10.0.700 585


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

2. Click the Down Arrow next to the New button; select New Field. A new row is created on the Fields
sheet; use this row to enter details about the new field.

3. Select which BPM data table Field is used to store information entered into the form. Each field can use
one of the twenty user-definable fields. These fields are available for the following data types: character,
number, date, check box, and shortchar.

4. The Field Label is the text that displays before the field.

5. The Field Format controls the number and format of the characters entered into the field. You can edit
this value for character, number, and shortchar fields.

6. Optionally, select the Mandatory check box to require users to complete the field before they can exit the
BPM data custom form.

7. Use the Default field to specify a value that displays in the field automatically when the form launches. If
needed, the user can change this value.

8. The Order field indicates where the field displays on the form. Higher numbered fields appear after lower
numbered fields. The application automatically increments this field by 10 for each field you add in the order
that you add them.

Define Control Values

Different field types, such as radio buttons, require you define which field value options are available. Enter these
options in the Field Values grid.

1. Click the Down Arrow next to the New button; select New Radio Button Set.

586 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

2. A new row displays on the Form Fields grid; notice this row displays the Radio Buttons icon.

3. When you select the Radio Buttons row, the Field Values pane displays. To add a field value, click the New
button in this pane.

4. Enter the Value you wish to define. In this example you enter a Ms. value.

5. Now define the Label you want to appear on the form during Run Mode. This text displays on the form
next to the radio button option.

6. The Seq value indicates the order in which the radio button options appear on the form. In this example,
the Ms. radio button option will display above the Mr. radio button option.

7. Continue to add the radio button options you need. When you finish, click Save.

Create Password

You can also control access to the custom BPM form by adding a password field. Before the directive can continue,
users must enter the password value on the custom data form. This password can be a phrase or a user logon.
This password value is stored within the action.

1. Click the Down Arrow next to the New button; select New Password Field.

ICE 3.0 | 10.0.700 587


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

2. A new row displays on the Form Fields grid; for its Field Label, this row automatically displays a Password:
value.

3. Enter how many Retry Attempts you will allow the user to do. If the user fails the last attempt, the BPM
Data Form closes.

4. If you want a dialog box to display when the user fails to log on, select the Raise An Exception On Failure
check box.

5. Indicate whether you want this password to use a System login password or a User Defined password.
The System login is a password from a network account, while a User Defined password is unique for this
form.

6. Enter the password you will use in the New Password field.

7. Verify this password by entering it again in the Confirm Password field.

8. Click Save.

Create or Remove Buttons

Every form automatically includes an OK button. You can remove this button or add additional buttons to meet
your requirements. The form must have at least one button.

1. Click on the Buttons tab. Notice the OK button displays on the Form Buttons grid by default.

588 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

2. If you wish to add a button, click the Down Arrow next to the New button and select New Button.

3. The Seq field defines where the button displays on the data form. If you add multiple buttons, use this field
to change the button's location.

4. Now in the Label field, enter the text you want to display on the button.

5. Continue to add and modify the form buttons as you need. When you finish, click Save.

Test the Form

You can test the data form within the BPM Data Form Designer.

1. To test how your BPM data form displays in Run Mode, click the Actions menu and select Test BPM Data
Form.

2. Your custom BPM form displays.

3. Enter values in the fields you created on the field.

4. When you finish, click OK.

If you can enter data without error, the BPM data form is working correctly. You can now use it on a directive.

If different directives launch from different buttons on the BPM


custom data form, test the ButtonValue field within the
BPMData table. This value matches the Button sequence ID
value from the Buttons tab. A “-1” value indicates that the
BPM custom form was closed either by pressing the

ICE 3.0 | 10.0.700 589


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

<Alt>+<F4> keys or by clicking the Windows Close button


(usually found in the upper right on most windows).

Data Form Directive

Now that you have created a data form, you can use it on a method or updatable BAQ directive. When the
directive activates, the data form displays and users enter the data you designed.
During the following example, you will create a post-processing directive for the Customer.Update method that
causes the data form to display. After a user makes a change to a customer record and clicks Save, the BPM form
displays. The user enters contact information for a manager in this data form. After the user clicks OK, an email
is sent to a manager; this email details which customer record was updated.

Create BPM Data Form Action


Once the form is complete, you can call it from a method directive. After users enter the data, this custom data
is available for use within other directive actions or custom code. The custom data is stored in the
ttCallContextBpmData temporary table until it is used by other actions.
To use the form in a directive:

1. In Method Directives Maintenance, create a new directive. In this example, the method is
Customer.Update and the directive type is post-processing.

2. Enter a Directive Name. For this example, you enter Alert Manager.

3. Click the Design... button.

590 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

4. The BPM Workflow Designer displays.

5. From the Callers group, click and drag the Call BPM Data Form item to the design area.

6. Click on the Start item to display its connection points.

7. Click and drag a connection line from the Start item to the Call BPM Data Form item.

8. In the Actions pane, the Call the named BPM Data Form using no customization always line displays.
Click the named link.

9. The Select BPM Data Form window displays.

10. Select the ManagerAlert option.

11. Click OK.

ICE 3.0 | 10.0.700 591


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

12. The name of the selected data form displays in the action line.

13. Click Save and Exit.

By configuring this action, you specify the data form you created displays when the specified conditions are met.
However notice in this example, no conditions are defined, which means this method directive will activate each
time a user updates a customer record.

Create Send E-Mail Action


You can now use the data from the BPM data form in other actions within the same directive. To use data from
the data form, you add another action to your directive.

1. Click and drag the Send E-mail item onto the design area.

592 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

2. Click on the Call BPM Data Form item to display its connection points.

3. Connect the Call BPM Data Form item to the Send E-mail item.

4. In the Actions pane, the send e-mail asynchronously based on the designed template line displays.
Click the designed link.

Design E-mail Template

1. The Design E-mail Template window displays.

2. In the Name field, enter an appropriate name for the email template.

3. In the From field, enter the e-mail address for the email that handles your global alert email.

You can find this address within Company Maintenance.


Launch this program and navigate to the Email and
Reporting tab; the Email Address field contains the value
you need to place in the From field on the email template.

4. In the To field, right-click and select the Call Context > callContextBpmData context menu. You use this
context menu to link data from the data form to your email.

5. For this example, you want to link the To field to the Character01 field on the data form. This field contains
the email address for the manager who will receive the email message.

ICE 3.0 | 10.0.700 593


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

6. Enter the Subject that you want to display in the email.

7. You can now add more fields from the data form in the Text field. As you did previously, right-click the
field and select Call Context > callContextBpmData and select the fields you use on the data form. In
this example, you select Character03 (Honorific) and Character02 (Last Name) from the data form.

8. You want the message to display the name of the customer that the user updated. To do this, right-click
the Text field; from the context menu, select the Field Query... option.

9. Enter a Name for your field query. In this example, you enter CustomerName.

10. Click on the Table drop-down list and select the temporary table that contains the field you want to populate
on the email; for this field query, you select the ttCustomer table.

11. You only want this field to populate when a customer record is updated. Select the Updated records check
box.

12. To filter customer records the user has not updated, select the Unchanged records check box. This query
will now only find customer records changed by the current run of the Customer.Update method.

13. Select the specific field you want to populate on the email message. Since you want to populate the email
text with the customer's name, you select the check box next to the Name field.

14. Click OK.

594 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

15. You return to the Design E-mail Template window. You next need to populate the e-mail with the identifier
for the user who changed the customer record. To begin, you enter the "was updated by" text.

16. Now right-click and select the Call Context > callContext client sub-menu.

17. Select the CurrentUserID option.

18. Your Text field now contains the query options and static text you need. When this method is active, the
query fields populate with values from the selected records, and the email message will contain these values.

19. Click OK.

ICE 3.0 | 10.0.700 595


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

Test the BPM Form

1. The name of the e-mail template now displays in the second action.

2. Click the Save and Exit button.

3. To activate the method directive, select the Enabled check box.

4. Now test the directive by navigating to Customer Maintenance.


Menu Path: Sales Management > Order Management > Setup > Customer

596 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

The CRM menu path is: Customer Relationship Management > Order Management > Setup > Customer

5. Click the Customer... button to find and select a customer record.

6. Change a value in a field and click Save.

7. This causes the data directive to activate. The first action displays the Manager Alert data form.

8. Enter the information you need to contact the manager.

9. Click OK.

10. The next action now runs. An email notification is sent to the manager you entered on the data form.

ICE 3.0 | 10.0.700 597


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

External Methods and Workflows

You can create custom external methods using the C# or Visual Basic .NET programming languages. through
this feature, you can implement complex external methods that extend or replace the functionality os server-side
application business logic.
You can create external methods for method, data, and updatable BAQ directives. These custom BPM external
methods are public, typically static methods that accept the same parameters as the method you are extending.
Because of this, custom external methods are directly integrated with the Epicor application. This functionality
is only available if your user account has BPM Advanced User permissions.
You begin by creating a custom action within the BPM module. You do this by generating a class within a method
that has a suitable signature. You then open the generated class within a .NET environment where you enter the
code for the custom external method. Lastly, you deploy the custom external method to the application. You
can then use the custom external method with either a method directive or an updatable BAQ directive.
Through this feature set, you can also create Service Connect workflows for method, data, and updatable BAQ
directives. By creating these workflows, you can set up directives that move data out of the Epicor application.
This integrates the data generated by this directive with the Service Connect application. Once this data is available
in Service Connect, you can then link it to another Epicor application or a third-party application for display and
use.
This section describes how you use the BPM tools to create and enter custom code. However specific details
about the C# or Visual Basic .NET languages are beyond the scope of this user guide. If you have any questions
about your custom code, refer to the various reference guides and training manuals available for the programming
languages.

Advanced BPM User Rights

You can create external methods and Service Connect workflows if you have advanced BPM user rights. You or
your system administrator assigns these rights to your account through User Account Security Maintenance.
To assign these rights to your account:

1. Navigate to User Account Security Maintenance.

598 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

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

This program is not available in the Epicor Web Access.

2. Use the Detail sheet to find and select the user account.

3. Click on the Options tab.

4. Select the BPM Advanced User check box.

5. Click Save.

The next time you log into the Epicor application, you can click the Advanced... buttons in both Method Directives
Maintenance and Updatable BAQ Directives Maintenance. You can also select this option from the Actions menu
in both programs. You can also now click the Create Programming Interface... button in Method Directives
Maintenance, Data Directives Maintenance, and Updatable BAQ Directives Maintenance.

Method Arguments

The Method Arguments window displays the arguments contained in the current method or updatable BAQ;
use this program to review what you need to know before you build your external method. You can also use
this program to launch the Programming Interface Generator Form; you use this window to generate a class
within a method that has a signature which matches the signature of the business object for which you are
creating the external method.
You launch the Method Arguments window from either Method Directives Maintenance or Updatable BAQ
Directives Maintenance. You display this window through the same steps in both programs. Here’s how you
launch this window within Method Directives Maintenance.

ICE 3.0 | 10.0.700 599


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

1. Click the Method Code button to find and select the method that you need.

2. Click the Advanced... button.

To access this feature, you can also click the Actions menu
and select the Advanced option.

3. The Method Arguments window displays. The signature for the current method displays within the grid.
Use this grid to examine the building blocks for the current method; this information is useful as you program
your action. Notice you cannot edit any of these fields.

4. The Order field displays the sequence of the method arguments. This indicates which argument runs before
the next argument, displaying the logic sequence of the selected method.

5. The Direction field indicates how the data flows through the argument. In this example, the direction is
INPUT, OUTPUT, and RETVAL.
• INPUT - Indicates the arguments that pass data into the database.
• OUTPUT - Indicates the arguments that push the data back to the client for display.
• RETVAL - Defines the argument that determines the return value.

6. The BpmArgumentName field displays the name of the argument.

7. The Type field displays the .NET classification for each argument. This example displays the System.String,
System.Int32, System.Boolean, and Erp.Tablesets.ABCCodeListTableset types.

8. Click the Create Programming Interfaces... button to launch the Programming Interface Generator
Form. You use this window to create a template for a custom external method. The next section describes
how to use this functionality.

9. To close this program, click OK.

600 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

Programming Interface Generator Form

Use the Programming Interface Generator Form to create a custom external method for the selected business
object method, data table, or updatable BAQ.
If you are creating an external method for an updatable BAQ or method directive, you launch the Programming
Interface Generator Form from the Method Arguments window (as described previously). If you are creating an
external method for a data directive, you launch this window in Data Directives Maintenance by selecting a table
and then clicking the Create Programming Interface... button.
After you select the business object method, database table, or updatable BAQ, you use this window to extend
the directive's functionality with the following action component types:
• .Net Assembly [C#] – Select this option to create a template C# class with a single empty function. This
function matches the signature of the method you are customizing. You then write the custom code in this
function statement, build the C# assembly, and deploy it to the server. You can then select this custom external
method on a directive.
• .Net Assembly [VB.NET] – Select this option to create a template VB.NET class with a single empty function.
This function matches the signature of the method you are customizing. You then write the custom code in
this function statement, build the VB.NET assembly, and deploy it to the server. You can then select this
custom external method on a directive.
• Epicor Service Connect Workflows – Use this option to create the schemas required for an Epicor Service
Connect workflow. Through this Epicor application, you create integrated platforms for secure data workflows
between the Epicor application and third party applications.

.NET Assembly [C#]

When you use the Programming Interface Generator Form to generate a .NET assembly for C#, you generate
the .cs code shell that integrates with the selected business object method.

1. After you click the Create Programming Interfaces... button, the Programming Interface Generator
Form displays.

2. Select the .Net Assembly [C#] radio button.

3. The C# code shell for the custom action generates. It displays on the .NET Action Template - C# sheet.

ICE 3.0 | 10.0.700 601


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

4. Click Save.

5. The .Net destination folder window displays.

6. Navigate to the folder where you create your external assembles.

7. Click Save.

Your .cs file is now saved to this file location.


You can now use this file to create your custom external method. To do this, launch Visual Studio and create a
C# project. You then include this file in this project and then build it as a class library (.dll file). You then place
this .dll file in an External Storage folder; this folder is specified in the web.config file within the
customizationSettings section. Typically its directory path is the Server\Customization\External location.

602 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

.NET Assembly [VB.NET]

When you use the Programming Interface Generator Form to generate a .NET assembly for VB.NET, you generate
the .vb code shell that integrates with the selected business object method.

1. After you click the Create Programming Interfaces... button, the Programming Interface Generator
Form displays.

2. Select the .Net Assembly [VB.NET] radio button.

3. The VB.NET code shell for the custom action generates. It displays on the .NET Action Template - VB.NET
sheet.

4. Click Save.

5. The .Net destination folder window displays.

6. Navigate to the folder where you create your external assembles.

ICE 3.0 | 10.0.700 603


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

7. Click Save.

Your .vb file is now saved to this file location.


You can now use this file to create your custom external method. To do this, launch Visual Studio and create a
VB.NET project. You then include this file in this project and then build it as a class library (.dll file). You then
place this .dll file in an External Storage folder; this folder is specified in the web.config file within the
customizationSettings section. Typically its directory path is the Server\Customization\External location.

Service Connect Workflow


When you use the wizard to create a Service Connect workflow, you generate the workflow schemas that connect
the current method with Service Connect. Here’s how:

1. After you click the Create Programming Interfaces... button, the Programming Interface Generator
Form displays.

2. Select the Epicor Service Connect Workflows radio button. The workflow schemas now generate.

3. The Method Schema sheet displays the elements required to link the custom action to the Service Connect
workfow.

4. The Input Schema sheet displays the path and filename used to generate the input schemas required for
the Service Connect workflow.

604 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

5. The Output Schema sheet displays the path and filename used to generate the output schemas required
for the Service Connect workflow.

6. To complete the workflow, click Save.

7. The Browse For Folder window displays. Use this window to find and select the folder where you wish to
save these .xsd files.

8. If you are on the same machine as Epicor Service Connect, save the schemas to the
SCS\Schemas\UserSchemas folder where Service Connect is installed. Saving the schemas to that location
makes them available for use in Service Connect workflows. You can then import them into Service Connect.
The In Schema is named MD_<BOName>_<MethodName>_Request.xsd and the Out Schema is named
MD_<BOName>_<MethodName>_Response.xsd.

9. Click OK.

The schemas are now saved within this location. Review your Epicor Service Connect documentation and the
Epicor Service Connect User Guide to learn how to design your workflow using these schemas.

External Method Logic

You open the external method template within your programming environment to create your custom action.
You do this differently, depending on whether you are developing a C# or a VB.NET external method.
Most transactions start with a GetNew or GetByID method to either populate default values into the dataset or
retrieve existing data from the database. The client keeps a copy of the original row and sends this row back
through an Update method along with the updated row. The server then compares the original copy of the row
to the current row on the actual, or physical, database to make sure it did not change from another source before
it updates the row. In these cases, only the changed row has an A (Add), U (Update), or D (Delete) value in the
table’s RowMod column.
When you write .NET code, be sure you identify the correct row within the tableset. You must do this because
the Update method creates two copies of the row within the inbound dataset. If the copy of the returned row

ICE 3.0 | 10.0.700 605


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

to the client does not match the actual database, you receive an error and future updates also fail. This feature
is part of the Optimistic Record Locking Mechanism; it applies to both conditions and actions.

Programming Action Signatures


When you attach an external method to a business object or updatable BAQ, it must have a signature which
matches the signature of the business object method or BAQ. If it does not, the external method does not display
on the methods list when you select an Invoke External Method action on a method or updatable BAQ directive.
These external methods always take simple parameters by reference and complex parameters by value.
This section displays examples of how a Method Signature needs to be mapped to a C# External Method Action
Signature. When you display the Method Arguments window, you see the external method signature for the
selected method:

Using this example, the blank external method for this example appears like this:
namespace BpmCustomCode
{
public class MyABCCode
{
public void GetList(
ref System.String whereClause,
ref System.Int32 pageSize,
ref System.Int32 absolutePage,
ref System.Boolean morePages,
Erp.Tablesets.ABCCodeListTableset result)
{
}
}
}

.NET Process [C#]

To enter the programming logic for a custom C# .NET external method:

606 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

® ®
1. Launch Microsoft Visual Studio .

2. Create an empty Class Library C# project.

3. Add your .cs file to the project. For example, AbcCode.GetList.cs.

4. Now add the references to the assembles from the Server\Assemblies and Server\Bin folders. This resolves
all the types used in the custom action, including the contract of the selected method.

5. Write the custom business logic in the body of the method. For example, if you are creating a post-processing
directive for AbcCode.GetList() to filter out all records where AbcCode starts with an "A" value, you write
the following code:
namespace BpmCustomCode
{
public class MyABCCode
{
public void GetList(

ICE 3.0 | 10.0.700 607


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

ref System.String whereClause,


ref System.Int32 pageSize,
ref System.Int32 absolutePage,
ref System.Boolean morePages,
Erp.Tablesets.ABCCodeListTableset result)
{
result.ABCCodeList.RemoveAll(r => r.ABCCode.StartsWith("A"));
}
}
}

6. Build the project and deploy the custom method to the External Storage folder.

You can now select this custom action on a BPM directive.

.NET Process [VB.NET]

To enter the programming logic for a custom VB.NET external method:


® ®
1. Launch Microsoft Visual Studio .

2. Create an empty Class Library Visual Basic project.

3. Add your .vb file to the project. For example, AbcCodeAction.vb.

4. Now add the references to the assembles from the Server\Assemblies and Server\Bin folders. This resolves
all the types used in the custom action, including the contract of the selected method.

5. Write the custom business logic in the body of the method. For example, if you are creating a post-processing
directive for AbcCode.GetList() to filter out all records where AbcCode starts with an "A" value, you write
the following code:
Option Strict On
Option Explicit On

Namespace Bpm.Custom

Public Class MyABCCode


Public Sub GetList(
ByRef whereClause As System.String,
ByRef pageSize As System.Int32,
ByRef absolutePage As System.Int32,
ByRef morePages As System.Boolean,
ByVal result As Erp.Tablesets.ABCCodeListTableset)

result.ABCCodeList.RemoveAll(Function(r) r.ABCCode.StartsWith("
A"))

End Sub
End Class

End Namespace

6. Build the project and deploy the custom method to the External Storage folder.

You can now select this custom action on a BPM directive.

608 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

Deploy the External Method

When you finish developing your custom external method, you need to deploy it to the server. This section
describes how you deploy your compiled .NET C# or VB.NET assemblies.
As described previously, you place your external method .dll file in an External Storage folder. This folder is
specified in the web.config file within the customizationSettings section. Typically its directory path is the
Server\Customization\External location.
Now that these external method .dll files are in the External Storage folder, you can deploy these methods to
Business Process Management. You do not need to restart Internet Information Services (IIS). When you select
the Invoke External Method action on a directive, the external method and its compiled assembly display as
options on the action.

If you replace an existing external method with a new version


and your assembly is loaded into memory, you will need to
restart the server. The external method will then update to the
latest version.

Attach the External Method

To use your external method within a directive, you must create an action that references it.

Build the Method


To attach a .NET external method, you first create the directive:

1. In this example, you create a pre-processing directive for the Erp.ABCCode.GetList business object method.

2. Click the Design... button.

ICE 3.0 | 10.0.700 609


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

3. The BPM Workflow Designer window displays.

4. From the Callers group, click and drag the Invoke External Method item to the workflow design area.

5. Now click the Start item. The Start item's connection points display.

6. Click and drag a connection from the Start item to the Invoke External Method item. When select the Invoke
External Method item, the Actions pane displays the Synchronously invoke specified Method from
external assembly action.

7. If you need, select the Synchronously option and change it to Asynchronously. This indicates this external
method can run asynchronously from the condition statement call which initiated the action. This can occur
when the condition statement call does not modify any of its parameters or when it does not require that
the transaction be suspended while it runs.

When an action runs asynchronously, BPM saves all the


information that defines the action – like the URL and the
parameter values – within a queue. The application then
executes the method without waiting for the action to
begin and complete. .NET actions can be queued on the
.NET server by the BPMServer. For more information, read
the Asynchronous Action Overview and the Monitoring
Asynchronous Actions topics within the application help.

8. Next select the external method you have created. Click the specified method link.

610 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

9. The Add Reference window displays, showing the custom external methods you have created. Select the
custom external method from the list.

10. Click OK.

11. Your custom external method now displays in the action statement.

12. To complete the action, you link it to the external assembly you created in Visual Studio. Click the external
link.

ICE 3.0 | 10.0.700 611


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

13. The Add Reference window displays, displays the custom assembles you have built. Select the custom
assembly from the list.

14. Click OK.

15. The action statement is now connected to both the custom external method and the custom assembly.

16. Click the Save and Exit button.

Be sure you enable the directive, and then close Method Directives Maintenance. You are now ready to test your
custom external method.

612 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

Test the Method

Your custom external method filters any ABC codes that start with the "A" character. To verify this custom
external method works, launch a program that uses ABC codes.

1. For this test, you launch Warehouse Maintenance and find and select a warehouse.

2. From the New menu, select New ABC Code.

3. The Cycle Count/Physical Inv>ABC Codes>ABC Code Detail sheet activates.

4. To find and select a code, click the ABC Code... button.

5. The ABC Code Search window displays.

6. Click the Search button.

7. Notice in the Search Results, the "A" ABC code does not display as an option. Through your external
method, users can no longer select this filtered ABC code.

ICE 3.0 | 10.0.700 613


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

Custom Code Performance


This section describes how to join results from multiple tables into a single query. Using the Inner Join technique
can dramatically improve the performance and scalability of your custom external methods. Most performance
problems are caused when too many database queries are sent by the Epicor application. For example, a simple
GetList() request can create hundreds of database queries, but it only returns 30 small records in its results.
Poor performance makes for even poorer scalability. Your Epicor application should support 25-35 concurrent
users per application server and have less than 50,000 SQL Server requests per second. Even taking five seconds
to run a method can reduce efficiency. During that time, at least one CPU core is fully consumed, which impacts
response times for other users. Minor performance and SQL Server efficiency improvements provide significant
scalability benefits — improving use of the application across your entire organization.
Most of the excessive SQL query traffic comes from requesting individual rows and then evaluating a lot of data
as the query moves through the database tier. Usually this happens when using FIND FIRST, CAN FIND, and
FindTbl.i statements within FOR EACH code blocks. Those nested statements must be consolidated with the outer
FOR EACH statement. JOINING tables can radically reduce the number of SQL Server requests. You do this by
using the FOR-EACH…,EACH…, EACH… pattern; these statements execute an inner table join.

Include Field Lists


You should include field lists with your inner joins. Using field lists is a good practice that can increase database
efficiency. Many tables have several columns that can be included in queries, but usually most queries only need
one or two values. Including all of these columns in a query creates additional, unnecessary disk and network
I/O traffic, and this extra traffic combines with other overhead all the way through the database. This slows down
the entire database.
A good example is the use of text columns. Text columns are stored off-page in SQL Server, meaning they require
extra disk I/O to read. But text columns are rarely needed in the application logic, so pulling them into every query
is an inefficient use of server resources.
Field lists are also critical for effectively using inner table joins. Without them, every row returned will have every
column from every table in the aggregate statement. For example, joining OrderHed and OrderDtl without a field
list will return rows with 680 columns.

Consolidate Queries with Table Joins


One major cause of poor performance are nested queries; this occurs when a FindTbl.i statement is run within
the FOR EACH loop. If a record does not exist, the query then skips through the code. The following code is an
example of a nested query:
FOR EACH partwhse NO-LOCK
WHERE PartWhse.Company = Part.Company AND
PartWhse.PartNum = part.PartNum :

/* Make sure the warehouse is in the current Site */


{lib/findtbl.i &amp;QFind = first
&amp;QLock = no-lock
&amp;QTableName = Warehse
&amp;QWhere = “Warehse.company = PartWhse.Company AND
Warehse.Warehousecode = PartWhse.WarehouseCode AND
Warehse.Site = cur-Site” }

IF NOT AVAIL Warehse THEN NEXT partwhse-loop.


This code is inefficient because each run through the code generates a new database query. If 2000 PartWhse
records are in the database, this code will send 2001 queries to the database. Instead, you should join the

614 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

PartWhse and Warehse tables. You can then run the same code using just one database query — a major
improvement over 2001 queries. The following code is an example of a more efficient query:
partwhse-loop:
FOR EACH partwhse
fields(Company WarehouseCode partnum)
WHERE PartWhse.Company = Part.Company AND
PartWhse.PartNum = part.PartNum NO-LOCK,
EACH Warehse
fields()
where Warehse.Company = partwhse.Company
and Warehse.WarehouseCode = partwhse.WarehouseCode
and Warehse.Site = cur-Site
BY PartWhse.Company PartWhse.PartNum PartWhse.WarehouseCode

no-lock:
This code pattern is an inner table JOIN, indicated by the nested EACH statement. The database will evaluate the
PartWhse and Warehse rows together and return only records that contain both warehouse and part warehouse
data.

Collect the Right Rows


You can also use inner joins to gather the right rows instead of querying multiple rows and then eliminating the
rows you do not want. This creates a targeted, efficient query. The following code example is a search routine
that could be drastically improved by collecting the right rows. This code example creates search results by looking
for qualifying order releases, jobs, and other related database items.
for each OrderRel no-lock where […]
if lookup(“Reserved”:U,ipDemandType,LIST-DELIM) &gt; 0 then do:
if not can-find (first PartAlloc where […])
then next.
end.
buffer-copy OrderRel to ttOrderAllocList.
end.
While this code executes a nested query that could be consolidated with the outer query, the code is still inefficient.
If the nested query is not successful, you move onto the next row. Because of this, the code is pulling in all of
the records and then eliminating any rows that do not match the query parameters. You should instead consolidate
these queries using a JOIN, as the code will then automatically filter out rows based on the WHERE clause.
for each OrderRel no-lock where […],
each PartAlloc (SysRowId) no-lock where […]
buffer-copy OrderRel to ttOrderAllocList.
end.

Match Joined Rows


Mathing joined rows is useful for filtering out rows in queries, but it also means you cannot use a join to get
optionally related tables. For example, Customer records can optionally have a GroupCode value, which is the
key used to access the CustGrup table.
In the example query below, only rows with a GroupCode value are returned. Customer rows that have a blank
(or NULL) value are not returned. Make sure you want this behavior in your query.
FOR EACH Customer FIELDS(Company CustID GroupCode),
EACH CustGrup FIELDS(GroupDesc) WHERE
CustGrup.Company = Customer.Company AND
CustGrup.GroupCode = Customer.GroupCode
BY Customer.Company Customer.CustNum:
DISPLAY Customer.Company Customer.CustID Customer.GroupCode CustGru
p.GroupDesc.
END.

ICE 3.0 | 10.0.700 615


Chapter 9 | Custom Business Process Management Epicor ICE 3.0 Tools User Guide

Always Use FIELD Lists


Always use FIELD lists for joined tables. If you do not use FIELD lists, the results will contain all columns from all
tables. Pulling in excessive data through inner joins reduces performance by almost as much as not leveraging
inner joins. If you do not need any columns from a joined table (this happens frequently), specify an empty field
list: FIELDS()
You can also use EXCEPT to filter out unwanted columns - like the _UD columns in an external user defined table.

Select One Row


Only use a table JOIN if the joined columns will select one row (or zero if you are filtering data). If you JOIN to a
table that uses a column list which does not represent a unique row, the database produces all of the joined
rows together using a copy of the main table.
This situation, called a Cartesian product, is inefficient and can cause issues. The following code is an example
of an inefficient query:
for each OrderHed where OrderHed.Company = CUR-COMP no-lock,
each OrderDtl no-lock:
end.
Several things are wrong with this example (no field list, no sort, and so on). But the main problem is that without
the selection criteria, this routine will return all order headers multiplied by all order detail records. As a general
rule, you should match a table’s foreign key to the joined table’s primary key.
The following example illustrates how you match the foreign key to the primary key (to clearly illustrate this
concept, this code does not contain the FIELDS lists):
for each OrderDtl where OrderDtl.Company = CUR-COMP no-lock,
each OrderHed where OrderDtl.Company = OrderHed.Company
and OrderDtl.OrderNum = OrderHed.OrderNum
no-lock:
end.

Join Multiple Tables


You can join as many tables and include non-key columns to filter the data as you need. For example, the
Fulfillment Workbench search selects order releases (OrderRel records) that also have complex related-data
requirements. The requirements:

1. The matching PartDtl record must have the RequirementFlag value = “Y”.

2. The OrderDtl record must not have a Kitting value of “P”.

3. The output temp table needs the CustID and name of the order’s customer.

All of these requirements can be consolidated into a single query using a JOIN operation:
for each OrderRel FIELDS(Company OrderNum OrderLine OrderRelNum ReqDate PartNum

WarehouseCode SelectForPicking ShipToNum Sy


sRowID)

NO-LOCK where
OrderRel.Company = CUR-COMP and . . .[omitted the rest of
the where clause],
EACH PartDtl FIELDS() NO-LOCK WHERE
PartDtl.Company = OrderRel.Company and
PartDtl.OrderNum = OrderRel.OrderNum and
PartDtl.OrderLine = OrderRel.OrderLine and

616 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Custom Business Process Management | Chapter 9

PartDtl.OrderRelNum = OrderRel.OrderRelNum and


PartDtl.RequirementFlag = YES,

EACH OrderDtl FIELDS() NO-LOCK WHERE


OrderDtl.Company = orderrel.Company and
OrderDtl.OrderNum = orderrel.OrderNum AND
OrderDtl.OrderLine = orderrel.OrderLine AND
OrderDtl.KitFlag &lt;&gt; “P”:U,

EACH OrderHed FIELDS() NO-LOCK WHERE


OrderHed.Company = orderrel.Company and
OrderHed.OrderNum = orderrel.OrderNum,

EACH Customer FIELDS(CustID Name) NO-LOCK WHERE


Customer.Company = OrderHed.Company and
Customer.CustNum = OrderHed.CustNum

ORDER BY OrderRel.Company BY OrderRel.OrderNum


BY OrderRel.OrderLine BY OrderRel.OrderRelNum:
When this query was first created for the Epicor application, it sent thousands of queries to the database server.
However, now through leveraging these inner joins, this code has drastically reduced that count to just one query.
This technique is much more efficient than nesting the PartDtl, OrderDtl, OrderHed, and Customer queries within
the FOR EACH as separate queries.
Also note the use of the empty field list option (“FIELDS()”) on the PartDtl, OrderDtl, and OrderHed tables. This
tells the database not to bother returning any columns except those required to complete the join operation.

Consider a Sort Order


Consider including a sort order in the query. When tables are joined, SQL Server will collect rows in the most
efficient way - leveraging all the indexes together. In this situation, the code will not determine the sort order. If
the order of the returned rows matters, like in cases where a temp table is produced that returns to the client,
make sure to specify a sort order.
Generally, you can do this by just using the columns and other items from the primary index of the outer-most
table (the one in the FOR EACH statement).

Use the EACH Statement


Joining tables is only more efficient when secondary tables are joined using the EACH statement. Progress allows
joins using a FIRST statement, but this will not run efficiently on SQL. So be aware of this situation if you use a
FIRST statement in a join.

Use Correct Locking


Remember to use the correct locking hints throughout the query code. If you want a NO-LOCK query, you need
to specify NO-LOCK on each table in the query.

ICE 3.0 | 10.0.700 617


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

Chapter 10: Global Alerts

Global alerts are messages you activate to help specific users track data activity.
You can activate two types of global alerts:
• Standard Global Alerts - Pre-defined alerts that you activate in Global Alert Maintenance. For a selected alert,
you can choose options for enabling the alert, sending email messages, and adding memos to the record that
triggered the alert. Enabling memos helps build a database history for the record.
An active standard global alert writes alerts to the AlertQue table in the application database. To enable email alert
messages, you must set up and activate a supporting Business Process Management (BPM) data directive that
monitors the AlertQue table and sends alert email messages whenever a row is added to the table. Since all standard
global alerts write to AlertQue, this BPM data directive will send email messages for all active standard global alerts
that have the send alert option enabled in Global Alert Maintenance.
• Custom Global Alerts - Alerts that you set up through Business Process Management (BPM) data directives. You
determine, in the data directive, which table/column you want to monitor, the table condition that will trigger an
alert, the custom message sent in the email, and who receives the custom global alert.
Email alert messages for both standard and custom global alerts can be configured to include a shortcut.sysconfig file
that the message recipient can use to launch the Epicor application and display the record that triggered the alert.
By using both standard and custom global alerts, you can set up a complete automatic communication system. Individuals
throughout your organization will then be better able to respond and resolve customer, supplier, and internal issues.

Global Alerts Setup


Before you can activate standard global alerts that send email alert messages, the Epicor application must be
configured to send email messages and you must create a Business Process Management (BPM) data directive
to send email messages when alerts are triggered. To do this, you set up the following:
• Configure the current company to handle email processing. You set this up in Company Maintenance.
• You next create a shortcut file that will be attached to each standard global alert and can be used to open
the application. You create the template for this file in Alert Attachment Maintenance.
• To complete the setup, you create a BPM data directive for standard global alerts that automatically processes
the global alerts email. You create and activate this directive in Data Directive Maintenance.

Company Maintenance - Email Settings

Use Company Maintenance to define the email settings for the current company. The global alerts data directive
uses these settings to send standard global alerts throughout the current company. A custom global alert data
directive also will use these settings for sending email alerts.
On the Emails and Forms sheet, you enter the SMTP Server that distributes email throughout your company.
A SMTP Server must be defined for each company in your organization. Much like a post office receives and
delivers mail to various locations, a SMTP Server receives
®
your company's
®
email and distributes it throughout your
company's email application, for example, Microsoft Office Outlook . When the Global Alerts data directive is

618 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

activated by a global alert, the email is automatically sent to the SMTP Server you define in this program. While
a SMTP Server is required, an Exchange Server is not needed to distribute alert messages.

The default settings for some virus protection programs block


Port 25 to prevent mass mailing worms from sending mail.
You may need to unblock the rule or add _proapsv.exe to the
excluded processes. If necessary, contact your system
administrator for help.

To define the email settings:

1. Navigate to Company Maintenance.


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

This program is not available in the Epicor Web Access.

2. Click the Email and Reporting sheet.

3. In the Email Link group box, the Port field specifies the email link port number for email messages that
distribute within the current company. Be sure to enter an unused port number within this field. The port
number should be high enough to ensure it is not used anywhere else. For example, 7778 is a valid entry
in this field.
This port is used when sending a global alert with a shortcut link (shortcut.sysconfig). When the alert is sent,
the application listens on this port to retrieve the correct data in the program linked to the shortcut.sysconfig
file.

4. In the Email Address field, specify the default From email address used to send global alert email. Some
examples of a From email address are administrator@epicor.com and administrator@salesdemo.mfgdemo.com.
If necessary, you change this address on a specific alert.

5. Now for the Email Label field, specify the default From email label displayed on global alert email. For
example, Epicor Auto Mail.
Just like the Email Address value, you change this label on a specific alert.

ICE 3.0 | 10.0.700 619


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

6. In the SMTP Server field, enter the server that processes your company's email. For example, enter
smtp.epicor.net.

7. In the Port field, enter the port number for your company's SMTP server. For example: 25

8. Click Save and then close Company Maintenance.

Alert Attachments - Shortcut Link

Each standard or custom alert can have a shortcut link (shortcut.sysconfig) file attached to it. When an alert is
triggered, this file is generated based on a template that is set up in the Alert Attachment Maintenance program.
Users that receive these global alerts can use the shortcut.sysconfig file to open the Epicor application to the
program and record that caused the alert.
When the global alert generates, the shortcut.sysconfig is included as an attachment on the email. Users can
then copy the .sysconfig file into their client installation, and then launch the Epicor application through this file.
Two methods are available for associating client installations so they launch with these shortcut link files.
• Permanent Link -- Locate the Epicor.exe file used to launch the application on the client, and associate the
shortcut.sysconfig file with this .exe file. When users receive a global alert, they save the shortcut.sysconfig
file to their client/config folders.
• Temporary Link -- Users can access the Epicor desktop icon's properties and update the Target field with
a run time argument that points to the shortcut.sysconfig file. To restore the default .sysconfig file, users
access the desktop icon's properties again and remove the run time argument.
The standard global alert examples in this guide use a base shortcut.sysconfig file that references the AlertQue
table. In the custom global alert example later in this guide the shortcut.sysconfig file template is refined to
reference the table monitored by custom alert.
Do the following to create the shortcut.sysconfig file template for standard global alerts:

1. Navigate to Alert Attachment Maintenance.


Menu Path: System Management > Business Process Management > Alert Attachments

2. In the Table field, enter AlertQue and press Tab.


If you are asked if you want to create a new record, click Yes.
The AlertQue table is added to the Tree View.

3. Click Save and then close Alert Attachment Maintenance.

620 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

A template for creating shortcut.sysconfig files now is available to the application. When the standard global
alerts are created and triggered in later examples, the data directive will generate a shortcut.sysconfig file that
can be used to open the application program. The file will be attached to the alert email.

Alert Data Directive for Standard Global Alerts

To enable standard global alerts to send email alert messages, you need to create a Business Process Management
(BPM) data directive that monitors the AlertQue application table in the application database.
A BPM data directive is a set of conditions and actions associated with a specific database table. Data directives
typically track data changes before they are applied to the database.
The example in this section demonstrates how to create a data directive that monitors the AlertQue table for
global standard alerts and sends messages out to the recipients defined in a standard global alert's configuration.
The standard global alerts discussed in the Standard Global Alerts section will use this data directive.
The Custom Global Alerts section later in this chapter explains how to create a custom global alert by setting up
a data directive that monitors a specific database table and sets the conditions for triggering alerts based on
changes in the monitored table.

Create Data Directive

Create a new BPM data directive.

1. Navigate to Data Directive Maintenance.


Menu Path: System Management > Business Process Management > Data Directives Maintenance

This program is not available in the Epicor Web Access.

2. In the Table field, type alertque and press Tab.


AlertQue is added to tree. This is the same table you selected for association with the shortcut link in the
previous task.

3. Navigate to the Standard Directives > Detail sheet.

ICE 3.0 | 10.0.700 621


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

4. Click the Down Arrow next to the New button; select New Standard Directive.

5. For the Directive Name, enter Global Alerts and press Tab.

6. Click the Design... button.

The BPM Workflow Designer displays.

Define the Condition

Define the condition you will use to trigger global alerts.

1. Working in the BPM Workflow Designer, click the Condition icon in the left pane and drag it to the Design
area.

2. Click the new Condition node to give it focus.


The Condition tab displays at the bottom of the Design area.

622 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

3. In the Condition tab, click the New button.

A new condition row displays on the Condition tab.

4. On the right side of the new condition row, click the Down Arrow and select the There is at least one
updated row in the specified table option.

5. Click the updated drop-down arrow; change this option to added.

6. Click the specified link.


The Select Table window displays.

7. Find and select the ttAlertQue table.

8. Click OK.

The condition now states There is at least one added row in the ttAlertQue table.

ICE 3.0 | 10.0.700 623


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

Define the Send E-Mail Action

Define the action that occurs when a row is added to the AlertQue table.
This action will generate an email message using variables you design on the e-mail template.

1. Continuing in the BPM Workflow Designer, click the Send E-mail icon in the left pane and drag it onto the
Design area.

2. Click the new Send Email node to give it focus.


The Action tab displays at the bottom of the Design area with the Send e-mail asynchronously based
on the designed template with rule action selected.

3. Click the designed link.


The Design E-mail Template dialog box displays.

4. For the Name, enter Global Alert Email.

624 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

5. Now you design the variable fields you want the message template to use. Right-click the From field; from
the context menu, select the Field Query... option.
The Select Table Field(s) window displays with ttAlertQue already selected in the Table field.

6. In the Name field, enter From.

7. For the Filters options select Added records.

8. Now for the Fields, locate and select the EmailFrom in the fields list.

9. Click OK.
Back in Design E-mail Template, the From field now displays a <From/> variable. This variable will populate
with values from the standard global alert.

10. Right click in each of the remain fields on this form, select the Field Query... option, and repeat steps 6-9.
Add the following variables to the template:

Template Field Field Query Name Filter Table Field


To To Added records EMailAddr
CC CC Added records EMailCC
Subject Subject Added records Subject
Body Body Added records AlertText

Before you add the variable to the Body field, be sure to clear the default text.

ICE 3.0 | 10.0.700 625


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

When you finish, each field on the Design E-mail Template dialog box is populated with a variable.

11. Select the Include shortcut link check box.


This option causes the alert attachment (shortcut.sysconfig) file to be automatically included on all global
alert e-mail messages.

12. Click OK.


You return to the BPM Workflow Designer window. The designed link in the action statement is replace
with the new Global Alert Email template name.

Connect the Directive Sequence and Enable the Directive

Connect the items in your data directive so they execute in the order you need them to run. Enable to the directive
to initiate alert monitoring.

1. Click the Start icon and drag on one of the arrows to draw a line to the Condition icon.

626 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

2. Now on the Condition icon, click the Arrow next to the True (+) icon and drag a connecting line to the
Send E-mail icon.

3. Click the Save and Exit button.


You return to the Data Directives window.

Be sure to select Save and Exit. The Exit button will close
the designer without saving your work.

4. To activate the data directive, click the Enabled check box.

5. Click Save and then close Data Directive Maintenance.

The Global Alerts data directive is now running. Standard global alerts that you activate in Global Alerts
Maintenance will have this data directive available to send alert emails.

Standard Global Alerts

Standard global alerts are pre-built alerts that can be activated and delivered to end users through email and
through a memo added to the record that activated the alert.
The examples in this section demonstrate how to activate standard global alerts in the Global Alert Maintenance
program and how to make supporting configuration adjustments in other application programs. The Business
Process Management (BPM) data directive that is required for email support to standard global alerts was
demonstrated in the previous section.

ICE 3.0 | 10.0.700 627


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

Standard Global Alert for Specific Recipient

Set up a global alert to send an email to a specific recipient.


The scenario for this example is that a customer's order will ship late. You want to be notified as soon as the
order ships, and you also want to alert the salesperson associated with this order.

Activate the Global Alert

To begin, enable the alert in Global Alert Maintenance.

1. Navigate to Global Alert Maintenance.


Menu Path: Sales Management > Order Management > Setup > Global Alert
The CRM menu path is: Customer Relationship Management > Order Management > Setup > Global
Alert

2. In the ID field, search for and select the 1120 Order has been shipped global alert.

3. In the Options group box, select the following check boxes:


• Active
• Create Memo
• Send Alert

4. Notice this global alert has a value in the Specific Recipient field. The Salesperson value displays, which
indicates the salesperson defined on the sales order will automatically receive this alert message.

5. In the To field, enter your email address.

6. In the Text field, enter Alert: A sales order has been shipped.

7. Click Save and then close Global Alert Maintenance.

628 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

Set Up the Work Force

You next need to indicate the salesperson (the specific recipient) will receive alert messages. You activate this
feature in the salesperson's work force record.

1. Navigate to Work Force Maintenance.


Menu Path: Sales Management > Order Management > Setup > Work Force
The CRM menu path is: Customer Relationship Management > Order Management > Setup > Work
Force

2. Click the Work Force ID button to find a workforce record. You also can enter the ID directly.
The corresponding work force record displays.

3. Select the Send Alert check box.


After you save this record, this salesperson will automatically receive messages from standard global alerts
on their sales orders, such as the 1120 global alert in this example.

4. Verify the Email address for this salesperson is correct.


When setting up alerts, you should always verify email addresses as you enter them or as they appear in
retrieved records. An incorrect email address will cause the recipient to not receive email alerts.

5. Click Save and then close Work Force Maintenance.

ICE 3.0 | 10.0.700 629


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

Set Up a Test Sales Order

Now set up a sales order that can be used for testing. Indicate you want an alert message sent when this order
is shipped.

1. 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. Click the Sales Order button to find the sales order that has been delayed. You also can enter the sales
order ID directly.

3. From the Actions menu, select Order > Reopen Order.

630 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

4. Navigate to the Header > Detail sheet.

5. Click Refresh.

6. Select the Alert On Shipment check box.


When selected, this check box indicates that a global alert is sent once this order is completely shipped.

7. Click Save and then close Sales Order Entry.

Trigger the Alert

In Customer Shipment Entry, indicate the sales order is shipped.

1. Navigate to Customer Shipment Entry.

ICE 3.0 | 10.0.700 631


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

Menu Path: Material Management > Shipping / Receiving > General Operations > Customer Shipment
Entry

2. Click the down arrow next to the New button; select New Pack.

3. Navigate to the Lines > Customer Shipment Entry > Detail sheet.

4. Click the down arrow next to the New button; select New Line.

5. In the fields, enter information indicating that the order selected in the previous exercise has shipped. For
example:

632 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

Field Data
Order Number 5356
Line 1
Rel 1
Our Ship Qty 3000
Warehouse Shipping Area

6. Verify that the Shipped Complete check box is selected.

7. Click Save.
If warning messages display, click Yes.

8. Navigate to the Header > Detail sheet.

9. Select the Shipped check box.

10. Click Save and then close Customer Shipment Entry.

You and the designated salesperson receive alert email messages in your email clients.

Alert for Alert Group

Set up a global alert that sends emails to the people in an alert group.
The scenario for this example is that an alert group called Quality Assurance is set up. When the alert is triggered,
everyone in the group receives the global alert.

Alert Groups

Use alert groups to communicate job record events to recipients based on production roles. You can activate
alert groups that send alert messages to individuals who perform similar tasks in a manufacturing process.
You structure alert groups so they represent categories that relate to job production roles. Examples of these
categories include engineering, quality assurance, and shop supervision.
You create alert groups in Alert Group Maintenance. When you create an alert group, you then assign it global
alerts that apply to a production role. You can also assign shop warnings to alert groups; shop warnings are

ICE 3.0 | 10.0.700 633


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

production specific messages. For example, if you want to create a alert group for Quality Assurance, you would
only select the global alerts and shop warnings that apply to quality assurance tasks.
You next use Person Maintenance to assign recipients to an alert group. The Person Maintenance lists people
whose roles are compatible with the alert groups you have created. Use this program to add people to specific
alert groups.
You then create production teams that include the people you defined through Person Maintenance. Each
production team contains a list of people that perform a related role in your manufacturing cycle. However you
can add people to a production team who are not assigned to an alert group. This feature provides flexibility, as
not every person assigned to a production team will receive global alerts, but can still perform other tasks related
to the production team.
When you create jobs, you link a production team to a specific job. As various changes are made to the job
record, they may trigger a global alert. If an alert is triggered, each person who is a member of this team assigned
to an alert group receives the global alert message.

Activate the Global Alert

To begin, activate the global alert that informs you an order release status has changed.

1. Navigate to Global Alert Maintenance.


Menu Path: Production Management > Job Management > Setup > Global Alert

2. In the ID field, search for and select the 1170 Job released status has been changed global alert.

3. In the Options pane, select the following check boxes:


• Active
• Create Memo
• Send Alert

4. In the Text field, enter Alert: A job released status has changed.

5. Click Save and then close Global Alert Maintenance.

634 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

Set Up an Alert Group

Now create an alert group for Quality Assurance.

1. Navigate to Alert Group Maintenance.


Menu Path: Production Management > Job Management > Setup > Alert Group

2. Click New on the Standard toolbar.

3. Enter a value in the Group field.

4. Enter a value in the Description field.

5. From the Available Global Alerts list, select Job released status has been changed and click the Single
Right Arrow button.
The global alert now displays in the Selected Global Alerts list.

6. Click Save and then close Alert Group Maintenance.

Set Up a Person

You next add your name to the alert group.

1. Navigate to Person Maintenance.

ICE 3.0 | 10.0.700 635


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

Menu Path: Production Management > Job Management > Setup > Person

2. Click New on the Standard toolbar.

3. In the Person field, enter XXX (where XXX are your initials).

4. In the Name field, enter your name.

5. In the E-mail field, enter your email address.

6. In the Alert Groups pane, in the Available list, select the new alert group and click the Single Right
Arrow button.
The alert group displays in the Selected list.

7. Click Save and then close Person Maintenance.

Assign the Person to a Production Team

You now assign your name to a Production Team that will be associated with the job record that you use to test
the alert.

1. Navigate to Production Team Maintenance.

636 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

Menu Path: Production Management > Job Management > Setup > Production Team

2. In the Team field, search for and select a team.

3. In the Person List pane, from the Available (Active) list, select the record with your name, and click the
Single Right Arrow button.
Your name now displays in the Selected list.

4. Click Save and then close Production Team Maintenance.

Trigger the Alert

Change the release status of a job with a first article requirement to trigger the alert to be sent to everyone listed
in the group alert.

1. Navigate to Job Entry.


Menu Path: Production Management > Job Management > General Operations > Job Entry

ICE 3.0 | 10.0.700 637


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

2. Click the Job button to find a job record. You also can enter the job record ID directly.

3. In the Prod Team field, select your production team.

4. Clear the Released check box.

5. Click Save to trigger the alert message and then close Job Entry.

You receive an alert email message in your email client.

Custom Global Alerts

The standard global alerts available in Global Alerts Maintenance may not contain an alert you need. You can
create custom global alerts using Business Process Management (BPM) data directives.
The custom global alert in this example notifies you when a job's scheduling priority is changed from NORMAL
to HIGH.

Refine the Shortcut Link File

When standard global alerts were set up in the earlier examples, a shortcut link (shortcut.sysconfig) file was
created that opens the Epicor application to the Home Page. You can further refine this file so when a user
launches the Epicor application, it opens the specific program and record that triggered the global alert.
Do the following to refine the shortcut link file template so that the data directive will be able to populate the
generated shortcut.sysconfig file with values that identify the table on which your custom global alert is based.

1. Navigate to Alert Attachment Maintenance.


Menu Path: System Management > Business Process Management > Alert Attachments

2. Click New on the Standard toolbar.

3. Click the Table button to find a table. You also can enter the table name directly. For example, use the
table on which you will base the data directive in this example.
The other fields now display default information.

638 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

4. Click the Template tab.

5. Locate and review the <Shortcut> element near the bottom of the window.
This element and its child elements have been generated and populated with default values based on the
table you selected in the previous step. The template is saved and used by the data directive to generate a
shortcut.sysconfig file at runtime. It is important to know that this template only needs to be created once
for a company. There is only one template, which is saved by the system, and any data directive that is set
up to generate a custom global alert will use that template and substitute values at runtime for the table
named in the directive and the Epicor ERP installation.

6. Click Save and then close Alert Attachment Maintenance.

When the custom global alert created later in this example is sent, the data directive will generate a
shortcut.sysconfig file that can be used as a shortcut to the application program and record impacted by the
change. The file will be attached to the alert email.

Create the Data Directive

To begin, you create a new data directive that monitors the JobHead table.

1. Navigate to Data Directive Maintenance.


Menu Path: System Management > Business Process Management > Data Directives Maintenance

This program is not available in the Epicor Web Access.

2. In the Table field, type JobHead and press Tab.

ICE 3.0 | 10.0.700 639


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

3. Navigate to the Standard Directives > Detail sheet.

4. Click the Down Arrow next to the New button; select New Standard Directive.

5. For the Directive Name, enter Global Alert - High Priority.

6. Click the Design... button.

The BPM Workflow Designer displays.

640 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

Define the Alert Condition

You now add a condition that monitors the SchedCode column on the JobHead table.

1. Working in the BPM Workflow Designer, click the Condition icon in the left pane and drag it to the Design
area.

2. Click the Condition Node to give it focus.


The Condition tab displays at the bottom of the Design area.

3. Click the New button on the Condition tab.


A new condition row displays on the Condition tab.

4. On the right side of the Condition column, click the Down Arrow and select the The specified field has
been changed from any to another option.

ICE 3.0 | 10.0.700 641


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

5. Click the specified link.

The Select Table Field(s) window displays. Notice this window is automatically linked to the ttJobHead
table. This is the temporary table used to store data in the JobHead table before this data is saved to the
database.

6. Find and select the SchedCode field.

7. Click OK.

8. Now select the any link.

The Specify a Value window displays.

9. Clear the Any value check box.


This activates the Value field.

10. Enter "NORMAL" in the Value field.

11. Click OK.

642 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

12. Next select the another link.

The Specify a Value window displays.

13. Clear the Any value check box.

14. Enter "HIGH" in the Value field.

15. Click OK.

The condition should now display The ttJobHead.SchedCode field has been changed from NORMAL to
HIGH.

Define the Send E-mail Alert Action

Now create the action that will generate an email message for the custom global alert.
This action will generate an email message based on the e-mail template that you define and save in the Send
E-mail action.

1. Continuing in the BPM Workflow Designer, click the Send E-mail icon in the left pane and drag it onto the
Design area.

ICE 3.0 | 10.0.700 643


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

2. Click the new Send Email node to give it focus.


The Send e-mail asynchronously based on the designed template with rule action displays.

3. Click the designed link.


The Design E-mail Template displays.

4. For Name, enter Job Status Alert - Priority.

5. Next in the From field, enter the address you will use for sending out this email message. For example:
administrator@salesdemo.mfgdemo.com

6. Now for the To field, enter the user(s) who will receive this custom global alert. For example:
test@salesdemo.mfgdemo.com
You can enter multiple email addresses in this field. To do this, add a semi-colon after each address.

7. In the Subject field, enter the value that will display in the Subject field of the alert email. In this example,
enter Job Priority Changed to HIGH.

8. For the Body of the email, delete the informational text and enter "The scheduling priority for Job has
changed from NORMAL to HIGH."

9. Right-click the space after "Job" and select the Field Query... option.
The Select Table Field(s) window displays. Notice the ttJobHead table displays in this window.

644 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

10. In the Name field, enter JobNumber.

11. Select the Updated records check box.

12. Scroll down the grid to find and select the JobNum field.

13. Click OK.


The text for the email message now displays: "The scheduling priority for Job <JobNumber/> has
changed from NORMAL to HIGH."

14. Select the Include shortcut link check box.


This option causes the shortcut link (shortcut.sysconfig) file to be automatically included on email generated
through this custom global alert. When users launch the Epicor application using this file, the application
automatically opens and displays the record that caused the alert.

15. Click OK.


You return to the BPM Workflow Designer window.

ICE 3.0 | 10.0.700 645


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

Connect the Directive Sequence and Enable the Directive

To complete the data directive, you define the sequence through which you want the data directive to run.

1. Click the Start icon and drag on one of the arrows to draw a line to the Condition icon.

2. Now on the Condition icon, click the Arrow next to the True (+) icon and drag a connecting line to the
Send E-mail icon.

3. Click the Save and Exit button.


You return to the Data Directives window.

Be sure to select Save and Exit. The Exit button will close
the designer without saving your work.

646 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

4. To activate the data directive, click the Enabled check box.

5. Click Save and then close Data Directive Maintenance.

The Global Alert - High Priority data directive now is running and you are ready to test the custom global alert.

Test the Custom Alert

To activate the custom global alert, you change a job's status from NORMAL to HIGH and save the job record.
Your active data directive will generate the email alert message with shortcut attachment, based on the condition
change in the JobHead table.

1. Navigate to Job Entry.


Menu Path: Production Management > Job Management > General Operations > Job Entry

2. Click the Job button to find a job record. You also can enter the job ID directly.

ICE 3.0 | 10.0.700 647


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

3. Now in the Scheduling Priority drop-down list, change the priority level from NORMAL to HIGH.

4. Click Save.
Saving the change triggers the email action in your data directive, sending an email to all designated recipients.

5. Open and review the alert email in your email client.


Notice the subject line, job number displayed in the message, and the shortcut link that is included as an
attachment.

Test the Shortcut Link

Now test the shortcut link to verify that when you launch the Epicor application, it automatically launches Job
Entry and displays the job that changed.

1. In your email client, open the custom global alert message, right-click the shortcut.sysconfig attachment,
and select Save As.

2. In the Save Attachment window, navigate to the config folder in your client installation. For example,
navigate to the C:\Epicor\ERP10\ERP10.0.100\Client\Config folder.

3. Click Save.

648 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Global Alerts | Chapter 10

4. On your desktop, right-click the shortcut icon for your Epicor application and select Properties to display
the shortcut properties window.

5. In the Target field, after the Epicor.exe value , enter the /CONFIG=shortcut.sysconfig run time argument.
Put this shortcut CONFIG argument to the right of an existing CONFIG argument to override the existing
argument. When you are done with the shortcut, you can delete the shortcut argument and go back to
using the existing one.

6. Click OK.

7. Close your Epicor application if it is open, and then double-click the shortcut icon to restart the application.
The application launches, followed by the application program named in the shortcut link (Job Tracker
opens in this example). The job that triggered the alert displays in this program.

ICE 3.0 | 10.0.700 649


Chapter 10 | Global Alerts Epicor ICE 3.0 Tools User Guide

650 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

Chapter 11: Updatable Dashboards

Through this updatable dashboard feature set, you create customized views of the data that users can then update
through a dashboard. Updatable dashboards are useful when you need to update a subset of data on multiple records
at the same time for items such as customer contacts, MRP parameters, discount percentages, and so on. When you
use an updatable dashboard for these targeted data entry tasks, you avoid opening these records individually through
the base entry forms.
To use this functionality, the first item you create is an updatable BAQ. You set up this BAQ in the same way as described
in the Business Activity Query chapter by linking tables, creating subqueries, adding filters, and calculated fields. You
then activate the updatable functionality and link this query to an UpdateExt business object method. Users can then
update the database through this BAQ.
You can place updatable BAQs on smart client dashboards, Epicor web access dashboards, and SharePoint dashboard
web parts. After you add these dashboards to the Menu, they become custom data entry programs users can launch
to both review current data and make any updates they need. Optionally, you can also use updatable BAQs on mobile
device dashboards. Once you create a mobile dashboard that contains an updatable BAQ, users run this custom entry
program on an iPhone or other supported mobile device. Users enter data through the mobile device, directly updating
the database wherever they may be. In order to build mobile device dashboards, you must purchase a mobile device
dashboard license from Epicor.
To complete this functionality, you can monitor the data users enter by creating updatable BAQ Business Process
Management (BPM) directives. As users enter data through an updatable BAQ, you can set up Updatable BAQ methods
that validate whether the data entered is correct, send email alerts, or cause other processes to run.

User Account Security Maintenance

Although you can access most BAQ functionality, to create and modify updatable BAQs you must have both
Advanced BAQ and Advanced BPM rights. Because the updatable business activity queries run through BPM
methods, you need to use these advanced features. You activate advanced BAQ and BPM rights on your account
within User Account Maintenance.
Menu Path: System Setup > Security Maintenance > User Account Security Maintenance

This program is not available in the Epicor Web Access.

ICE 3.0 | 10.0.700 651


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

Assign Updatable BAQ Rights

To assign updatable BAQ rights to a user account:

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

2. Navigate to the Options sheet.

3. Select the BPM Advanced User check box.

4. Select the BAQ Advanced User check box.

5. Click Save.

This user account can now access the updatable BAQ features. The next time you log into the application through
this user account, you can use the Update sheets within the Business Activity Query Designer.

Updatable Business Activity Queries

You create updatable BAQs in a similar way to display-only BAQs by adding tables, filter criteria, display columns,
and so on. However you have some extra steps, as you need to define which table contains the updatable fields
and you need to make sure the business object methods are correctly linked to the updatable fields.
Just like a display-only BAQ, you can link multiple tables in parent-child relationships. Multiple tables accessed
by each BAQ can be updatable, so you can construct updatable BAQs that modify multiple tables at the same
time. The one limitation is each updatable BAQ can only use one business object. However because multiple

652 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

updatable table combinations are possible, you can create an updatable BAQ that matches your business
requirement.
The following sections explain how to create a simple updatable BAQ. The following Customer Contact Updatable
BAQ section then describes a more complex updatable BAQ.

Define an Updatable BAQ

During this example, you will create an updatable BAQ using the Customer table.
Navigate to the Business Activity Query Designer.
Menu Path: System Management > Business Activity Queries > Business Activity Query

This program is not available in the Epicor Web Access.

You first indicate that a BAQ is updatable through the General sheet.

1. Click the New button.

2. In the Query ID field, enter a value. For this example, you enter CustomerQuery.
After you click out of this field, it becomes read only and you can no longer modify this ID value.

3. In the Description field, enter a concise explanation for the query. For this example, you enter Customer
Query.

4. Select the Shared check box. This check box indicates this query is available to all users. After the query is
saved, all users within your company are able to add this query to their dashboards (if they have Dashboard
Developer privileges).

5. Select the Updatable check box. This activates the sheets under the Update tab. Use these sheets to indicate
the fields you will activate for data entry on each selected BAQ table.

6. Do not select the Global check box. Updatable BAQs cannot be used through the Multi-Site functionality,
as the business object methods required to update and add new records through the BAQ are database
specific.

7. Click Save.

ICE 3.0 | 10.0.700 653


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

Set Up the Updatable Query

Just like display-only BAQs, you next define the tables, relationships, filter criteria, and display columns your
updatable BAQ will use. In order to continue the Customer table example, this section briefly describes the set
up you need to do in order to complete the query functions.
To define the query table:

1. Navigate to the Query Builder > Phrase Build sheet.

2. Use the Filtering field to locate the table you want. For this example, you enter “Custo” to find the
Erp.Customer table.

3. Double-click the Customer table option.

4. The table displays on the designer area. If you were creating a more complex BAQ, you would repeat these
steps to add more tables.

5. Likewise, you would use the Table List, Table Relations, Table Criteria, SubQuery Criteria, and Function
Call Parameters sheets to further define the data you want to pull from the database through your query.
For information on these sheets, review the Business Activity Queries chapter.

654 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

6. Navigate to the Display Fields > Column Select sheet.

7. In the Available Columns list, select the fields you want to display on the updatable BAQ.
For this BAQ, you select the following columns:
• Customer_CustID
• Customer_Name
• Customer_Address1
• Customer_Address2
• Customer_Address3
• Customer_City
• Customer_State
• Customer_Zip
• Customer_Country
• Customer_TerritoryID
• Customer_CustURL

8. Click the Right Arrow button.

9. The fields move into the Display Column(s) list. You will later indicate which of these fields are updatable.

10. Click Save.

ICE 3.0 | 10.0.700 655


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

General Properties

You can now begin defining the main options for your updatable query. Use the controls on the Update > General
Properties sheet to indicate how users can enter and edit records through the updatable BAQ. You also indicate
which fields are available for data entry.

Primary Updatable Properties

To define the main updatable BAQ properties:

1. Navigate to the Update > General Properties sheet.

2. Select the Allow New Record check box to indicate users can add new records through this updatable
BAQ. In this example, the check box is selected, which indicates users can enter new customer records
through this BAQ. When this check box is clear, users will only be able to update existing records.

3. If you wish, enter a Label for AddNew value. This value defines what displays in the drop-down menu
next to the New button on the Standard toolbar when the updatable query is added to the dashboard.
The text you enter here displays as a node on this drop-down menu. Be sure it identifies the purpose of the
new record the users will create through this updatable BAQ.

4. Select the Allow Multiple Row Update check box to give users the ability to make changes to two or
more rows in a table before the data is saved. If this check box is clear, the row data updates automatically
when the user changes to the next row.

5. To make Actions menu options available for use within an Updatable BAQ directive using the BPM
functionality, you need to create action placeholders. You later create updatable BAQ directives using the
BPM functionality for the RunCustomActions method that references the Actions menu options you create.
Click the Define Custom Actions button.

You can also launch the this window from the Actions
menu by clicking Actions > Define Custom Action.

656 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

6. The Define Custom Action window displays.

7. To create a new action, click the New button.

8. Enter an ActionID. This identifier defines the custom action within the updatable BAQ.

9. Enter an ActionLabel. This value defines how the option displays on the Actions menu within the dashboard.

10. If you wish to remove a custom action, click the Delete button.

11. Continue to add the custom actions you need. When you finish, click OK.

The custom actions you add through this functionality are placeholders you can then leverage within the Updatable
BAQ Method Directives program. You use this program to create conditions that monitor these custom actions.
When a user enters data which matches the condition, the condition runs the specific actions linked to it, like
validating data or displaying an informational message.

Define Updatable Fields

Next, you use the Update > General Properties sheet to indicate which Display Column fields the users can update.
You can also create or select default values that automatically populate a field.

1. To indicate all of the selected columns are available for data entry, click the Check All Fields as Updatable
button.

2. The Updatable check box is automatically selected on each field. Users can then enter data within this
specific field; this new data is then saved to the database. To prevent users from entering data in a specific
field, click its Updatable check box.

ICE 3.0 | 10.0.700 657


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

3. The Alias field displays the specific <Table Name>_<Field Name> for each displayed column within your
updatable BAQ.

4. The DataType field indicates the kind of data contained within the specific field. Available types:
• nvarchar – Alphanumeric letters and numbers
• int – Whole numbers only
• decimal – Numbers which also contain decimal places
• date – Date (month, day, year) values only
• datetime – A date value that also includes the time
• bit – Defines a True/False value; on the interface, logical fields appear as check boxes or radio buttons
• uniqueidentifier – Contains an identifier value for a record.

5. To make a field required, select its Is Required check box. This indicates the field cannot be empty. When
users attempt to save a new or existing record within the query and this field is blank, they are not able to
save the record until they enter a value in this field.

6. You cannot update a field if its IsReadOnly property is selected within the table. This check box displays
for your information and cannot be modified. If this check box is selected, users cannot change the data
that appears in this column.

7. Use the Initial Expression field to enter a text value that displays in the field before users actually enter
data into it. Use this feature to place some instructional text in the field to help the user understand what
information is required for this field. For this example, you select the Customer_CustURL field and place
"Enter Customer Website" in this column.

8. If you want to create a calculation to determine the initial expression, click the Column Initial
Expression button. This launches a window similar to the Calculated Field window; use the controls on
this window to create a formula that generates the initial expression you need for a specific field.

658 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

Updatable Field Editor

You can also define specific acceptable values that will be available in a specific field.

1. To do this, click the Advanced Column Editor Configuration... button.

2. The Updatable Field Editor window displays.

3. Use the tree view to select an updatable field for which you want to define values. In this example, you
select the Customer_State field.

4. Select the Data Type you want for the field.

ICE 3.0 | 10.0.700 659


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

5. The default Format for this Data Type appears. If you need, you can edit this value. Be sure the format
follows the convention of the database. You can review sample format values within the Data Dictionary.

6. If this field is required in order for the BAQ to pull in query results, select the Mandatory check box.

7. Use the Editor Type drop-down list to define the editor control the user will have for entering data within
the updatable field. Available options:
• Common Editor – Activates the Default Value field. Enter a custom text value you need for the field.
This text appears by default; users can then enter a different value in this field.
• Radio Button Set – Causes the Values Editor to appear. Use this sheet to define the various radio
button options this field will use. Users can then select a radio button option from the values you define
in this window.
• DropDown List – Activates the Data from drop-down list. Use this list to define the source of the
drop-down list options. The field then displays options contained on the drop-down list.

8. If you select the Common Editor option from the Editor Type drop-down list, the Editor Default field
activates. Enter the default value you want within this field. When you use this updatable BAQ in a dashboard,
this value is used to perform field level validation either before changes to a field are saved to the database
or after updates to the field are changed and returned for display on the interface.

9. If you want this field to generate a Business Process Management (BPM) method, select the Raise
Events check box. When you complete your updatable BAQ on the Update Processing sheet, you can see
these new methods within the Updatable BAQ Method Directives window. On the finished Dashboard
assembly, this will be used to perform field level validation before proposed changes to the field are committed
or to perform additional updates after the field value has changed.

10. If you want the field to have access to a quick search for finding and selecting data entry values, click the
Quick Search button to locate the quick search you need. You create quick searches through Quick Search
Maintenance; these configurable search programs display input criteria to use for a search, display search
result fields, and returns the data from the specific field you define. For more information on quick searches,
review the Quick Search section within the Searches chapter.

11. If you select the DropDown List option from the Editor Type drop-down list, the Data from field activates.
Use the options from this drop-down list to indicate the source from which the data on this list populates.
Available options:
• Custom Values – Causes the Values Editor to display controls for creating a new list of values. Use this
functionality to define the various list options this drop-down list will use. You add these values using
the Values Editor pane.
• BAQ – Causes the Values Editor to display controls for selecting a BAQ. Click the Query ID button to
find and select the BAQ you need. Next define the Display Column and the Value Column you will
use from the selected BAQ. The Value Column defines the name of the column you wish to use for the
drop-down list; the Display Column indicates the value that displays when users click this list.
• User Codes – Causes the Values Editor to display controls for selecting a specific User Code. User codes
are lists of custom values you define through User Defined Code Maintenance. When you select a
user code, the drop-down list populates with values contained within the custom user code record. For
more information about creating user codes, review the Epicor ICE User Experience and Customization
Guide. The Customization Utilities describes how you create user codes.

12. If you select DropDown List as the Editor Type, you add these values on the Values Editor pane. Click New.

13. Enter a value in the grid. Continue to click New and add the values you need.

660 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

14. To remove a value, highlight it on the grid and click the Delete button.

15. Continue creating values for all of the updatable fields you need. When you finish, click Save.

16. To exit this window, click Close.

Update Processing

To complete the updatable BAQ, you next set up how the BAQ interacts with a business object's methods.
Business objects contain the code that calls a database, sending current data to a custom dashboard for display,
or populating the database with new data.
A business object (also called a BO) houses the methods used to enter, view, and calculate data for a specific
function within an application. Each process a business object can run is called a method; by default each updatable
BAQ contains at least the following methods:
• GetList – This method pulls in the existing records from the database table for which the business object
interacts. These records then display within the query results.
• GetNew – This method generates a new record and adds it to the database table. If users will enter new
records with your updatable BAQ, they activate this method. A new, blank row is created within the updatable
table, and the user populates the fields linked to this row with data.
• Update – This method save the information to the database with the information a user has entered in the
updatable BAQ. When you test your updatable BAQ by modifying existing data, this method runs when you
click the Update button. When the updatable BAQ is embedded within a dashboard, this method runs when
the user enters new data and clicks the Save button.
Depending on what other update options you selected on the Update > General Properties sheet, additional
methods may be available for your updatable BAQ.
In order for your updatable BAQ to work properly, these methods must be set up to interact with the fields you
designate as updatable. You use the controls on the Update Processing sheet to set up this database interaction.

Advanced BPM Processing

Each of these methods can be monitored through Business Process Management (BPM) directives. These directives
can evaluate the data passed into or out of the database, interrupting the processing when certain conditions
you define are met. Various actions, again which you define, then automatically run in response to the condition.
You create these Updatable BAQ method directives from within the Business Activity Query Designer.
To use the Advanced BPM processing functionality:

ICE 3.0 | 10.0.700 661


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

1. Navigate to the Update > Update Processing sheet.

2. Select the Advanced BPM Update only check box to indicate you want to control the updatable BAQ
through one or more method directives.

3. Click the BPM Directives Configuration... button.

You can also launch the Updatable BAQ Method Directives


window from the Actions menu. To do this, from the
Actions menu, select Customize method.

4. The Updatable BAQ Method Directives window appears.

5. All of the available Updatable BAQ Method Directives display. Notice in addition to the default directives
(GetList, GetNew, Update), the RunCustomAction method or FieldValidate and FieldUpdate methods you
selected for fields that raise events also display.

6. You can create three types of method directives. Pre-processing directives evaluate data before it is saved
to the database. Use pre-processing directives for validation and other tasks you want to run before the
data updates your database.

662 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

7. Base Processing directives substitute the normal operation of the business object with custom code you
create. Epicor recommends you never create base processing directives; only create base processing directives
with your consultant or directly through Epicor. If your base processing directive does not work, you will
potentially harm the operating functions of your application.

8. Post-processing directives evaluate data saved to the database, but is now in the process of being returned
to the interface for display. Use post-processing directives when you want to generate an event based on
the data recently recorded to the database.

9. When you finish creating your updatable BAQ method directives, click Close.

You will create Updatable BAQ method directives later in this chapter.

Update Processing

You mainly use the controls on the Update Processing sheet to set up the methods for the updatable BAQ. The
options you select on this sheet generate the expressions required for users to enter data within the updatable
fields.
To generate the expressions on your current BAQ:

1. Select the BPM Update radio button option.

2. The BPM Update Processing section activates; click the Business Object button.

3. The Select Business Object window displays. The business objects for the tables on the current BAQ display
by default in this window.

4. From the Suggested business objects list, select the business object you want. For this example, you select
the ERP.Customer option.

5. The Update Method indicates the method used to enter the changes made through the updatable BAQ
to your database. By default, the UpdateExt method displays, which is the update method used to confirm
data is successfully updated through the query.

ICE 3.0 | 10.0.700 663


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

6. If you need, you can select a different business object by clicking the Select Business Object button.

7. When you have selected the business object you want, click OK.

8. Notice the Tables to update list. This list displays the temporary tables (tt tables) that fill with data before
this information is saved to your database. By default, the main temporary table is selected; if you need,
however, you can select a different table.

9. The Query to Object Column Mapping grid displays how the updatable fields link, or map, to the selected
temporary table. This temporary table uses a ttResult prefix and it contains the data entered through the
updatable BAQ in active memory until the data is saved to the database.

10. The MapTableName and MapFieldName displays the name of the table and the field connected to the
temporary table.

11. The NetDataType field indicates the kind of data stored within this field, like SystemString, System.Int32,
and so on.

12. The Expression field displays the equation used to pull data from the updatable BAQ into the temporary
table. When the data is saved, the data is moved from the temporary table and recorded within your database.

664 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

13. Now click the Object to Query Column Mapping tab to see the second part of the updatable query
transaction. This grid displays which temporary table columns are mapped to which database table columns.

14. If you wish to create these expressions manually, click the Expression Editor... button.

ICE 3.0 | 10.0.700 665


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

15. The Business Object Update Expression window displays. Notice this window is nearly identical to the
Calculated Field Editor window described in the Business Activity Query chapter.

16. The dataset fields display within the tree view. Select the field that has the expression you want to update.

17. Use the Functions pane to change the expression using a function, operator, or BAQ constant. For more
information on these options, review the previous Calculated Fields tables.

18. When you finish, click the Close button.

666 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

19. After you finish making your changes, Save the query.

The BPM directives update with your changes. Your updatable BAQ is now ready to test.

By default, the UpdateExt method ignores zero values and


changes them to NULL values. If you need specific fields set to
zero, you can create a BPM method that checks for zero values
and then populates these values in desired database fields. For
more information, review the UpdateExt Method – Set Fields
to Zero topic in the application help.

Analyze

The Analyze sheet contains the functionality you use to verify the updatable BAQ can pull (get) data, update
records, and add new records. You can also use this sheet to test a custom Business Process Management (BPM)
method against the updatable BAQ.
After you verify the updatable BAQ can perform functions successfully, you are ready to place it on smart client
and mobile device dashboards. Users can then enter and update the data they need through this query. You will
learn how to place an updatable BAQ on a dashboard later in this chapter.

Update Existing Record

Do the following to verify you can update existing records through this updatable BAQ.

ICE 3.0 | 10.0.700 667


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

1. Click the Analyze tab.

2. You first need to test whether this updatable BAQ can pull in data from its table. Click the Get List button.

3. You are warned this operation may update data in the database. Click Yes.

4. The Query Results grid populates with data. In this example, customer records display in this grid. If you
created a BAQ method directive to run when the Get List method executes, this directive’s actions would
run as well.

5. You can now test the BAQ to find out if you can update existing records. Double-click a row within the
Query Results grid.

668 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

6. The Fields window displays. Notice this window contains all of the fields you indicated were updatable on
the General Properties sheet.

7. Enter a new value in one of the fields. In this example, you enter a website address in the Customer_CustURL
field.

8. This field was selected to raise BPM events within the Updatable field editor. Because of this, two additional
buttons are next to this field. Click the V button to perform the FieldValidate BAQ method directives described
for this Column.

9. The Updatable query operation window displays, indicating whether the Field Validate BAQ directive
returned a True result. Click OK.

10. Click the U button to perform the FieldUpdate BAQ method directives described for this Column.

11. Click OK to exit the Fields window.

12. The record you updated is now highlighted within the Query Results sheet.

ICE 3.0 | 10.0.700 669


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

13. To save this change to the database, click the Update button.

14. Once again, you are warned this operation may update the database; click Yes to close this window.

15. The data displays within the grid. In this example, the customer’s website displays in the Website column.

Add New Record

Now test to see if you can add new records to this updatable BAQ.

1. Click the Get New button.

670 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

2. Once again, you are warned this operation may update the database; click Yes to close this window.

3. A blank row displays on the Query Results list. Double-click this row.

4. The Fields window displays again, but this time all of the fields are blank.

5. Enter the values you need to create a new record. For this example, you enter the main items needed on a
customer record.

6. Click OK.

ICE 3.0 | 10.0.700 671


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

7. Your new record appears on the last row of the Query Results grid.

8. The last function you can test is a BAQ method directive linked to a custom action. If you created custom
actions for the updatable query and then used the Updatable BAQ Method Directives program to set up
conditions linked to this action, you can test this directive. To do this, first select the custom action you want
from the drop-down list.

9. Click the Run Custom button. If the updatable BAQ directive is set up correctly, the Business Process
Management (BPM) condition and its subsequent actions run as expected. You will review creating updatable
BAQ directives later in this chapter.

Customer Contact Updatable BAQ

Users can enter new customer contacts directly into the database through this updatable BAQ. These contacts
are then linked to a selected customer record. During this case study, you will link the related customer, contact,
role, and ship to location tables together. You will then indicate that only fields within the Customer Contact
table are updatable by users.

672 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

Define the Query

To define the query:

1. Click the New button.

2. In the Query ID field, enter UpdateCustContacts.

3. In the Description field, enter Customer Contacts.

4. Select the Shared check box to indicate other users within the current company can use this query.

5. Click the Updatable check box to indicate that users can enter data through this BAQ.

Add the Tables

Now add the tables you need for this updatable BAQ.

ICE 3.0 | 10.0.700 673


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

1. Navigate to the Query Builder > Phrase Build tab.

2. In the Filtering field, enter Cust.

3. Double-click the Erp.CustCnt table.

4. The Erp.CustCnt table displays on the design area.

5. Now double-click the Erp.Customer table.

674 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

6. The Erp.Customer table displays on the design area. Because these tables share a logical link, a connection
line displays between these tables.

7. Clear the value in the Filtering field and enter Role.

8. Double-click the Erp.RoleCd table.

9. The Erp.RoleCd table displays on the design area.

Because th RoleCd table is not logically linked to the other tables, you must manually link this table to another
table.

Link the Role Code Table

Do the following to link the Role Code table to the updatable BAQ.

ICE 3.0 | 10.0.700 675


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

1. Click the Add Connection button.

2. Click the RoleCd table and drag the link to the CustCnt table.

3. Complete the link by clicking the Table Relations tab.

4. Click the New button above the Table Relations sheet.

5. From the RoleCd Field or any expression drop-down list, select the Company option.

6. From the CustCnt Field or any expression drop-down list, select the Company option.

7. You want to display all of the customer contacts who are not assigned to a role code. Because of this, you
click the Job Type drop-down list and select the Full Join option.
Now all of the contact records display in your query, regardless of whether they are linked to a role code.

676 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

8. To complete the link, you need to have the role identifiers linked between the two tables. Click the
New button again.

9. From the RoleCd Field or any expression drop-down list, select the RoleCode option.

10. From the CustCnt Field or any expression drop-down list, select the RoleCode option.

11. Click Save.

Add the Ship To Table


You next add the Ship To table to this updatable BAQ.

ICE 3.0 | 10.0.700 677


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

1. Now find and double-click the Erp.ShipTo table.

2. The Erp.ShipTo table displays on the design area.

3. By default, the ShipTo table is a child table linked to the Customer table. You need to change this link so
that the CustCnt table becomes the parent table to the ShipTo table. Highlight the link between the Customer
and the Ship To tables.

678 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

4. Click the Delete button.

5. A Delete Confirmation dialog box displays. Click Yes.

6. Click the Add Connection button.

7. Click the ShipTo table and drag the link to the CustCnt table.

ICE 3.0 | 10.0.700 679


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

8. Once again, to complete the link, you need to set up the relationship between the two tables. For this
relationship, however, you want an Inner Join so that only contacts linked to Ship To locations display in
the query results. Click the Table Relations tab.

9. Three columns need to be linked between the Erp.CustCnt and Erp.ShipTo tables. Click the New button as
before.

10. From the ShipTo field or any expression and CustCnt field or any expression drop-down lists, select
the Company option.

11. Repeat these steps to add two more connections. Select the following values for each row:

ShipTo field or any expression CustCnt field or any expression


CustNum CustNum
ShipToNum ShipToNum

12. Click Save.

680 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

Select Columns for Display

Select the columns on both tables that you want to view in your results.

1. Click the Display > Column Select tab.

2. Click the Sort columns alphabetically button.

3. Expand the CustCnt table node.

4. Move the following columns from the Available Columns area to the Display Column(s) area:
• CustCnt_CustNum
• CustCnt_NoContact
• CustCnt_LastName
• CustCnt_MiddleName
• CustCnt_Name
• CustCnt_ConNum
• CustCnt_ContactTitle
• CustCnt_EMailAddress
• CustCnt_PhoneNum
• CustCnt_FaxNum
• CustCnt_CellPhoneNum
• CustCnt_PagerNum
• CustCnt_HomeNum
• CustCnt_AltNum

ICE 3.0 | 10.0.700 681


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

• CustCnt_Address1
• CustCnt_City
• CustCnt_State
• CustCnt_Country
• CustCnt_Company
• CustCnt_ShipToNum

5. Expand the ShipTo table node.

6. Move the following columns from the Available Columns list to the Display Column(s) list.
• ShipTo_Name
• ShipTo_Zip
• ShipTo_Company

682 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

7. Expand the RoleCd node.

8. Now move the following columns from the Available Columns list to the Display Column(s) list.
• RoleCd_RoleDescription
• RoleCd_Company

ICE 3.0 | 10.0.700 683


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

9. Expand the Customer node.

10. Move these columns to the Display Column(s) list.


• CustID
• Company

11. Click Save.

Indicate the Sort Order

Because these fields will pull in a lot of data, you need to organize it through some sorting selections.

684 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

1. Click the Display Fields > Sort Order tab.

2. You will sort everything by columns within the CustCnt table. In the Tree View, expand the CustCnt node.

3. Now move the following columns from the Available Columns list to the Sort By list:
• CustCnt.Company
• CustCnt.LastName
• CustCnt.FirstName

4. Click Save.

ICE 3.0 | 10.0.700 685


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

Define the Updatable Fields

You next must indicate which fields can be updated through the BAQ. You can update as many of the selected
display columns and tables as you need.

1. Navigate to the Update > General Properties sheet. All of the fields you previously selected for display
on the Display > Column Select sheet appear on the grid on this sheet.

2. To indicate users can enter new records through this BAQ, select the Allow New Record check box.

3. Enter the text you want to add for new records within the Label for AddNew field. This indicates that each
new record added through this BAQ will have a label attached to it. You then use this label to identify which
updatable BAQ was used to enter this record in the database. For this example, you enter Add Contact.

4. To give users the ability to modify multiple records before saving them, select the Allow Multiple Row
Update check box.

5. If you want users to update a specific field, select its Updatable check box. In this example, you select all
of the fields within the Customer Connect (CustCnt) table.

6. When you finish, click Save.

Activate Database Processing

To complete the updatable BAQ, you next set it up so the application can process the data users will enter through
the BAQ. You do this through either an advanced business process management (BPM) directive or directly

686 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

through the existing BPM directives defined on the business object. For this example, you use the existing BPM
methods.

1. Navigate to the Update > Update Processing sheet.

2. Select the BPM Update radio button option.

3. Click the Business Object... button.

4. The Select Business Object window displays.

5. From the Suggested business objects list, select ERP.CustCnt.

6. Notice the value in the Update Method field. This field indicates the method used to enter data within the
updatable BAQ; typically this will be the UpdateExt method.

7. Click OK.

ICE 3.0 | 10.0.700 687


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

8. Notice the Tables to update list displays the CustCnt table.

9. The Query to Object Column Mapping and the Object to Query Column Mapping sheets now populate
with the database processing information from the selected business object. In this example, the
Expression field displays the ttResult.CustCnt table columns; these values indicate when users enter values
within the updatable BAQ, these values first go to the ttResult.CustCnt temporary table before they save
within the database.

10. When you finish making the changes you need on this sheet, click Save.

The updatable BAQ updates, incorporating the BPM directives you have selected. You should now be able to
enter data through this query, so next you need to test it.

688 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

Test the Updatable BAQ

You are now ready to test the updatable BAQ to make sure it works.

1. Navigate to the Analyze sheet.

2. Click the Get List button.

3. You are warned the BPM process will update the database; click Yes.

ICE 3.0 | 10.0.700 689


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

4. The Query Results grid displays the data pulled in through your query.

5. You next need to see if you can edit an existing record. Double-click a row on the grid.

6. The Fields window displays.

7. Either edit an existing value or enter a new value through this window. In this example, you enter a new
cell phone number for Lonnie Smith.

8. Click OK.

690 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

9. You return to the Analyze sheet. The new number appears in the Cell Phone column for Lonnie Smith. This
value is saved to the temporary table (ttCustCnt) you defined on the Update > Update Processing sheet.

10. To save this change to the database, click the Update button.

11. You are warned the BPM process will update the database; click Yes.

12. The data is now saved to the actual CustCnt table within the database. To test entering a new record, click
the Get New button.

ICE 3.0 | 10.0.700 691


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

13. You are warned again the BPM process will update the database; click Yes.

14. A new row displays within the Query Results grid. Double-click the row.

15. In the Fields window, enter the information you need for the new contact record.

16. Click OK.

692 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

17. The new record displays on the Query Results grid.

18. As before, this data change is currently stored within the temporary table (ttCustCnt). To add this record to
the database, click the Update button.

19. You are warned the BPM process will update the database; click Yes.

The data is saved to the actual CustCnt table within the database.
Now that this updatable BAQ works correctly, you can use it on both smart client dashboards and mobile device
dashboards.

Regenerate Updatable BAQs

Database and software dataset schema changes can occur each time a service pack or a new version is installed
on your Epicor application. These changes can cause your updatable business activity queries to become out of
sync with the base environment. Your updatable BAQs will then not run.
To correct this issue, use Updatable Query Maintenance to regenerate your updatable BAQs. When you use this
maintenance tool, they become synchronized with the current version of the database and software and will run
as expected. As part of your upgrade process, always be sure to leverage this tool after each release or version
is installed on your Epicor application.
Menu Path: System Management > Upgrade/Mass Regeneration > Updatable BAQ Maintenance

ICE 3.0 | 10.0.700 693


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

1. Click the Query ID button to find and select the updatable BAQs you want to regenerate.

2. The updatable queries you select display within the Tree View. Select the updatable BAQ you want to
review.

3. The fields on the Detail sheet display the primary information about the selected BAQ. These fields only
display for your information; you cannot change these values.

4. To regenerate the current updatable BAQ, from the Actions menu, select Regenerate Selected.

5. To regenerate all of the updatable BAQs displayed in the Tree View, from the Actions menu, select
Regenerate All.

The updatable BAQs are now synchronized with the current level of the application.

694 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

Updatable Dashboards

The Updatable Dashboard is an extension to the standard dashboard feature. You can use this feature to create
updatable applications for use on a client installation or on a mobile device. When you configure a dashboard
to contain updatable BAQs, the dashboard becomes similar to a data entry program, so users can review, enter,
and update application data.
During this example, you will create a new dashboard using the updatable BAQ you created. This dashboard will
display customers and related contacts. On this dashboard, users first select a customer record, then create and
update contacts for the selected customer record.
You create new dashboards on the Dashboard program:
Menu Path: Executive Analysis > Business Activity Management > General Operations > Dashboard

This program is not available in the Epicor Web Access.

Create a Dashboard

Now that you have created your updatable Customer Contact query, you can place it on a dashboard.

1. Click the Down Arrow next to the New button; select New Dashboard.

ICE 3.0 | 10.0.700 695


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

2. In the Definition ID, enter a unique identifier for the dashboard. In this example, you enter
CustContactUpdate.

3. Enter a Description for the dashboard. In this example, the description is Customer Contact Update.

Add Customer Query

The first query you add to the dashboard, zCustomer01, is a standard system query that displays customer
information.
To add a query to the dashboard:

696 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

1. Click the Down Arrow next to the New button; select New Query.

2. The Dashboard Query Properties window displays.

3. Click the Query ID button in to find and select the query.

4. Find and select the zCustomer01 query. This standard query displays primary customer information.

5. Select the Auto Refresh on Load check box. Now each time this dashboard launches, data will populate
this query.

ICE 3.0 | 10.0.700 697


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

6. Select the Publish sheet.

7. Now in the Publish Column list, select the following columns:


• Customer_Company
• Customer_Name
• Customer_CustNum

8. In the Titlebar Subscriber section, select the Publish to Title check box.

9. Click the drop-down list and select Customer_Name.

10. In the Title caption field, enter Customer:.

11. The Call Context Subscriber section contains fields you can use with Business Process Management (BPM)
functionality. Use these fields to publish values from the dashboard to a Business Process Management
(BPM) Updatable BAQ Directive.

12. Click OK.

698 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

Modify Customer Grid Properties

1. Click the Refresh button to verify the query can retrieve customer information.

2. This information displays in the zCustomer01: Summary grid.

3. In the Tree View, right-click the zCustomer01 icon and select Properties.

4. The Dashboard Grid Properties window displays.

5. In the Caption field, enter Customer List.

6. Likewise in the Grid Caption field, enter Customer List.

7. Click OK.

ICE 3.0 | 10.0.700 699


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

8. The new grid caption displays in the Tree View.

9. This caption also displays in the Grid Header.

Add Updatable Contact Query

1. Click the Down Arrow next to the New button; select New Query.

700 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

2. The Dashboard Query Properties window displays.

3. Click the Query ID button to find and select the UpdateCustContacts query.

4. Select the Filter sheet.

5. In the ColumnName field, select CustCnt_Company.

6. In the Condition field, select the = (equal) value.

7. In the Value field, select zCustomer01-CustomerTrackerQuery: Customer_Company. By selecting this


value, the Contact query subscribes to the Customer Company published from the zCustomer01 query.

ICE 3.0 | 10.0.700 701


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

8. Click Enter to add another filter for Customer_CustNum.

9. Click OK.

10. Select a customer is selected from the Customer List grid.

11. The related contacts for that customer display in the Customer Contacts grid.

12. Click Save to record your changes to the dashboard.

702 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

Modify Contact Grid Properties

1. In the Tree View, right-click the UpdateCustContacts grid icon and select Properties.

2. The Dashboard Grid Properties window displays.

3. In the Caption field, enter Customer Contacts.

4. Select the Updatable check box.

5. The Prompt check boxes display for each field; select the fields you want to be able to update in the
dashboard. In this example, select the Prompt check box for the following fields:
• CustCnt_NoContact
• CustCnt_LastName
• CustCnt_FirstName
• CustCnt_Name
• CustCnt_ContactTitle

ICE 3.0 | 10.0.700 703


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

• CustCnt_EmailAddress
• CustCnt_PhoneNum
• CustCnt_FaxNum
• CustCnt_Company
• CustCnt_ConNum

6. You can use the Arrow buttons to the right of the grid to reorder the columns in the Grid view.

7. Select the Updatability sheet. This sheet is only available when the grid view is selected as updatable.

8. The Multi Dirty Row and Allow Add New check boxes are settings you defined within the Business Activity
Query Designer when you created the UpdateCustContacts query. These fields control whether you can
add or update multiple rows of data at one time.

9. Select the Force Update All Rows on Save check box when you want all unsaved or dirty, rows to update
the database at the same time. When users click Save, any modified or new records all move to the database
simultaneously. If this check box is clear, each dirty row is processed individually.

In some situations, selecting this check box can improve


performance, while in other situations it can slow
performance. If you are not sure whether you should
activate this feature, test the dashboard to discover if you
can process large amounts of data at the same time.
Performance times will vary based on the number of rows
and columns in the grid.

10. Select the Static Values on Add New check box to indicate how you want the updatable dashboard to
populate when users add a new record. If you select this check box, the updatable dashboard will pull in
field values for display; the next time the user creates a new record, these static values remain in the fields.
If this check box is clear, the current values are removed and the fields are refreshed with new values.

11. Use the Action Buttons sheet to define custom Actions which are available in the dashboard from the
Actions menu. Actions are defined in the Business Activity Query Designer and can be used along with BPM
Method Directives to run a specific method. You will review Updatable BAQ Directives later in this chapter.

704 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

12. The Add New Subscribers sheet is used to define data that auto-populates when adding new records
through the dashboard. Use the fields on this sheet to define specific criteria that default into new rows
when you select Add New.

13. To add a new subscriber, click the New button.

14. When the user adds a contact, you want the subscriber to populate the contact's city from the city defined
on the customer record. For the Add New Subscriber column, you select CustCnt_City. You then indicate
you want to publish from the Customer Tracker Query, pulling the value from the Customer_City column.

15. Click OK.

Add Tracker View for Contact Query

Tracker Views can be used to create an advanced search function and to facilitate entry and updates to customer
contacts.

1. In the Tree View, right-click the UpdateCustContacts query icon and select New Tracker View.

ICE 3.0 | 10.0.700 705


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

2. The Dashboard Tracker View Properties window displays.

3. In the Caption field, enter Contact Details.

4. Select the Updatable check box.

5. Click the Clear All button to clear the Visible flag on all the fields.

6. Define which fields you want to display in the Tracker view. Select the Visible and Prompt check boxes for
the following fields:
• CustCnt_LastName
• CustCnt.Name
• CustCnt.EmailAddress
• CustCnt.PhoneNum
• CustCnt.FaxNum
• CustCnt.Company
• CustCnt.ConNum

7. Click OK.

706 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

8. The new Contact Details panel displays on the dashboard. Drag the sheet up and reposition it to the left
of the Customer Contacts grid.

9. Click Save.

Test Updatable Dashboard

To test an updatable dashboard:

1. From the Tools menu, select Deploy Dashboard.

ICE 3.0 | 10.0.700 707


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

2. The Deploy Dashboard window displays.

3. Click the Test Application button.

4. A new window displays the dashboard for testing. Click the Refresh button to retrieve the customers and
contacts.

5. Click a row in the Customer Contacts grid to update a contact record. You can update contact information
directly in the grid or in the Contact Details view. In this example, you enter an Email Address for customer
Clarke Construction, contact Richard Clarke.

6. Click Save.

708 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

7. Test adding a new contact record in the dashboard. Click the New button to add a new record.

8. A new blank row is added to the Customer Contacts grid. Enter new contact information. In this example,
you enter a new contact record for Michael Rogan.

You can also enter contact information in the Contact


Details tracker view.

9. Click Save.

10. To verify the record is added, click Refresh and review the contacts for Clarke Construction.

11. Close the test dashboard.

ICE 3.0 | 10.0.700 709


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

12. Click Cancel in the Deploy Dashboard window to return to the Dashboard Designer.

13. You can also verify the new contact record in Customer Maintenance.

Updatable BAQ Method Directives


Updatable BAQ method directives are similar to method directives, but they apply to methods used specifically
by updatable BAQs. Each updatable BAQ has the following methods:
• GetList – Retrieves the data specified by the query.
• GetNew – Creates an empty row where a new record can be entered and submitted to the database.
• RunCustomAction – Runs a custom BPM action you define through both the BAQ and BPM functionality.
You first define the ID of the custom action in the Business Activity Query Designer and then define the action
using one or more directives within Updatable BAQ Directives Maintenance.
• Update – Performs database updates, refreshing the data to include changed and added rows.
When you create an updatable BAQ, the application writes a base processing directive for the update method.
The directive uses C# code to update the database according to the settings defined in the Business Activity

710 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

Query Designer. You can edit this code to customize the update process, or you can add pre-processing, base
processing, and post-processing directives to the methods associated with the BAQ.

The same security settings for method directives apply to


updatable BAQ directives. You must be a BPM Advanced User
to create or modify base processing directives.

You launch the Updatable BAQ Method Directives program in multiple ways - click the BPM Directives
Configuration button on the Update > General Properties sheet within the Business Activity Query Designer, or
select this program from the Menu.
Menu Path: System Management > Business Process Management > Updatable BAQ Directives Maintenance

This program is not available in the Epicor Web Access.

Custom Actions
You may create custom actions for updatable BAQs in the Business Activity Designer by defining the action ID
and label. The custom actions can then be added to the Actions menu of a dashboard that uses the query.
In Updatable BAQ Method Directives Maintenance, you create a pre-processing, base processing, or post-processing
directive for the RunCustomAction method. Use the “the specified argument is equal to the specified expression”
condition statement to identify which action to run. The first “specified” variable can be set to “actionID.” The
second “specified” variable can be set to the ID of the action called by the user as it was specified in the BAQ.
Then create directive actions to perform custom operations.

Default Data to Updatable BAQ Records


You now will create an updatable BAQ directive that monitors the Customer Contact Update dashboard you
created. In this example, you want the directive to populate the contact’s address information with the customer’s
address information when the user creates a new contact within the Customer Contact Update dashboard.

Publish Dashboard Data


The first part of the process publishes the customer address information from the Customer Contact Update
dashboard. With the dashboard in Developer mode, follow these steps to publish data to use it in a BPM directive:

ICE 3.0 | 10.0.700 711


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

1. In the Dashboard Tree View, select the zCustomer01:Customer Tracker Query query.

2. From the Edit menu, select Properties.

3. The Dashboard Query Properties program displays.

4. Select the Publish sheet.

5. In the Publish Columns list, select the check boxes next to the following column names:
• Customer_Address1
• Customer_City
• Customer_State
• Customer_Country
• Customer_Zip

6. In the Call Context Subscriber grid, click New.

712 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

7. From the Publish Column, select Customer.Address1.

8. In the BPMDataColumn, select Character01.

9. Add the remaining address columns to the Call Context Subscriber grid using the following information:
• Customer_City = Character02
• Customer_State = Character03
• Customer_Country = Character04
• Customer_Zip = Character05

10. Click OK.

Get the Updatable BAQ Methods


You get the updatable BAQ methods by launching Updatable BAQ Method Directives Maintenance.
Menu Path: System Management > Business Process Management > Updatable BAQ Directives Maintenance

This program is not available in the Epicor Web Access.

To locate the methods used by the updatable BAQ:

ICE 3.0 | 10.0.700 713


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

1. Click the BAQ ID button to find and select a BAQ ID. You can also enter the BAQ ID directly. For this example,
you find and select the UpdateCustContacts updatable query.

2. The Tree View displays the updatable BAQ methods.

3. The Detail sheet displays the primary information on the selected BAQ method.

You can review the C# code used by the BAQ to update the database by selecting the Update method in the
Tree View, navigating to the Base Processing tab, clicking the Design button, and reviewing the Default
Implementation action. Select the // <autogenerated> link and review the code in the Enter Custom Code window.

New Post-Processing Directive


You are now ready to add a directive to the updatable BAQ. In this example, the directive will default a new
contact’s address information when the user creates a new contact using the Update Customer Contact dashboard.
The directive uses the information published from the dashboard to set the values in newly added contact records.
To create a new directive:

1. In the Tree View of the Updatable BAQ Method Directives program, select the UpdateCust
Contacts.GetNew directive.

2. Click the Down Arrow next to the New button; select New Post-Processing.

714 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

3. Enter the Directive Name that you use to identify the directive. In this example, enter Auto Populate Contact
Address.

4. Click the Design button.

Select BAQ Directive Action

Because you want this directive to run each time the GetNew method is called, it will not use any condition
statements. Instead you will just define an action for this directive.

1. The BPM Workflow Designer window displays.

2. From the Setters group, click and drag the Set Field item to the designer area.

ICE 3.0 | 10.0.700 715


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

3. Click on the Start item to display its connection points.

4. Click and drag a connection line from the Start item to the Set Field item.

5. Select the Set Field item.

Notice the Action pane now displays the "Set the specified field of the changed row to the specified expression
with rule" statement.

Define BAQ Directive Action

You next define what occurs when this action is run.

1. Within the action statement, click the “specified” link.

2. The Select Table Field(s) window displays.

3. Click the Table drop-down list to select ttResults.

4. In the Fields grid, select the check box next to CustCnt_Address1.

5. Click OK.

716 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

6. Click the changed row drop-down list and select the added row option.

7. Now click the specified link.

8. The Specify an expression dialog box displays.

ICE 3.0 | 10.0.700 717


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

9. In the Available variables tree view, expand the CallContextBpmData node.

10. Double-click Character01.

11. The Editor field displays ttCallContext BpmData.Character01.

12. Click OK.

The Action now states “set the Results.CustCnt_Address1 field of the added row to the ttCallContextBpmData…
expression with rule”. Now the action will set the Address field of a new row to the value published from the
dashboard to the Character01 field, which is the customer’s street address.

More Set Field Actions

1. Continue to add new Set Field actions to populate the remaining fields published from the dashboard.

2. Click Save and Exit.

718 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

3. You return to the Updatable BAQ Method Directives window.

4. The actions you created display in the Behavior field.

5. Select the Enabled check box.

6. Click Save.

Test the Directive


Launch Customer Contact Update in the Dashboard program.
Menu Path: Executive Analysis > Business Activity Management > General Operations > Dashboard

This program is not available in the Epicor Web Access.

To test the directive:

ICE 3.0 | 10.0.700 719


Chapter 11 | Updatable Dashboards Epicor ICE 3.0 Tools User Guide

1. From the Tools menu, select Deploy Dashboard.

2. The Deploy Dashboard window displays.

3. Click the Test Application button.

720 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Updatable Dashboards | Chapter 11

4. The Customer Contact Update dashboard displays.

5. Click the Refresh button to retrieve the customer data.

6. In the Customer Tracker Query grid, select a customer record.

7. In the Customer Contacts grid, click a row.

8. Click New.

9. A new row is added to the Customer Contacts grid. The address information from the customer record is
added to the contact’s fields.

ICE 3.0 | 10.0.700 721


Chapter 12 | Business Process Management Utilities Epicor ICE 3.0 Tools User Guide

Chapter 12: Business Process Management Utilities

Various utilities are available in the Business Process Management (BPM) module to help you:
• Set up a schedule to run directives.
• Export directives so they can be used in another Epicor installation.
• Import directives from another Epicor installation.
• Update a group of directives to apply new settings or to keep directives up-to-date when a new version of Epicor
is installed.
This chapter explains how to use the BPM Async Process program to set up a schedule for asynchronous BPM processes.
It also explains how to use the Directive Import and Export programs, which are useful for moving groups of directives
between Epicor ERP installations. You also learn how to use the Directive Update program to apply settings to a group
of directives or to ensure directives remain compatible with new versions of the Epicor ERP application. The chapter
concludes with discussion on what tools you can use to troubleshoot the BPM functionality.

Action Processing

When you have defined the BPM directives your application will run, you are ready to set up the action process
schedule. This regular schedule causes the BPM functionality to run periodically, updating the BPM task queue
and processing asynchronous actions.
You do this by setting up the BPM Async Process task to run on a selected schedule. To do this, you can either
use one of the predefined schedules, or create the custom schedule you want to use. You then set up the process
to run using this schedule.

System Agent
You create recurring schedules through System Agent Maintenance. Use this program to create the different
schedules you need for running your asynchronous directives. When you have created the schedules you need,
you are ready to launch the BPM Async Process program; the next section explains how to run this program.

722 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management Utilities | Chapter 12

To learn about creating new schedules within the System


Agent, review the System Agent Maintenance topics within
the Application help.

BPM Action Process


Use the BPM Action Process to set up a task that deletes outdated BPM Data Form states, processes all
asynchronous Execute Custom Code actions and invokes asynchronous External Method actions in the queue.

Other asynchronous actions such as Send E-mail or Call ESC


Workflow are launched asynchronously when the directive
executes; they are not put in the queue and don't require this
task to launch them.

You can set up this task to run on a recurring schedule. This automatically processes all calls made by your
asynchronous actions.
Navigate to BPM Async Process.
Menu Path: System Management > Business Process Management > Action Process

This program is not available in the Epicor Web Access.

You can define how often you want this process to run. Here’s how:

1. If you want this process to constantly run, select the Continuous Processing check box to indicate that
this process should run on a continuous basis using the delay minutes set in the Continuous Processing
Delay field.

2. To complete setting up continuous processing, you next must enter the Continuous Processing Delay
value. The BPM Process runs following the time value you enter. For example, you can enter a delay of two
minutes – which means this process runs continuously every two minutes.

3. The Log Filename displays the directory path and log file that records the asynchronous processing actions.
You can enter this path directly or click the Log Filename button to find and select it.

4. However, if you want this process to run following a schedule, select a Schedule option from the list. Epicor
recommends that you select an Interval schedule type, as this schedule then runs every few minutes.

5. Select the Recurring check box to indicate this process runs on a regular basis. The BPM process launches
each time the system clock passes the interval defined within the selected schedule.

ICE 3.0 | 10.0.700 723


Chapter 12 | Business Process Management Utilities Epicor ICE 3.0 Tools User Guide

6. You can enter a value in the Action Failure Limit field to indicate how many times the BPM Async Process
attempts to process an asynchronous action. When the number of attempts exceeds the specified value,
the action is ignored.

Example
If you've set a limit of 3, and the action has failed 3 times,
it won't be processed again.

7. Click the Submit button.

Your BPM asynchronous directives are now regularly processed by the application.

BPM Async Processing Log


If you are running any asynchronous actions, you can use the BPM Async Processing Log to review each
asynchronous action. The log location is specified during BPM Action Process setup. It lists the following information
about each action:
• Startup timestamp
• Error message (if an issue occurs)
• Completion timestamp

Directive Management

To complete the BPM functionality, the module comes with programs that help manage your directives. You can
export your directives out to another Epicor installation, where they can then be imported. You can also update
the directives to make them compatible with the current version of the application.

Groups
This functionality suggests you use Groups. Each group contains related directives. By placing related directives
together, you can easily export, import, and update the directives as you need.
You create and select groups within the Method Directives, Data Directives, or Updatable BAQ Method Directives
programs. The Detail sheets in these programs all have a Group field. Use this field to create new groups or to
select existing groups. In either case, you define the group which the directive is placed inside for use in later
processes. For more information, read the Method Directives section in Chapter 08: Business Process Management.

724 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management Utilities | Chapter 12

Directive Export
Use the Directive Export program to export all the directives that belong to a selected group, a single Business
Object, or a Table. These directives are then exported to a single file at a location you define, so you can move
your method directives to another installation of the application.
BPM Users can only export those directives they have Read & Write access to. Note the following security restrictions
are applied when exporting directives:
• Exports of Base and In-Transaction directives are only available to a BPM Advanced User.
• Exports of Tenant Independent directives are only available to a Global Security Manager.
• Users can only export directives from their owning companies - companies they were created in.
To export a group of BPM directives:
Navigate to Directive Export.
Menu Path: System Management > Business Process Management > Directive Export

This program is not available in the Epicor Web Access.

To use this program to export a group of method directives:

1. If you want to export all Method Directives created for a particular Business Object, select the Method
Directives by Business Object Option.

2. By selecting the Product option, all Business Objects belonging to the application part of the system (ERP)
become available for selection.

3. By selecting the System option, all Business Objects belonging to the framework part of the system (ICE)
become available for selection.

4. To export all data directives created for a particular database table, select Data Directives by Table Name
option.

5. From the Table Name drop-down list, select a table for which you want to export directives.

6. To export all directives associated with specific group, select the Directives by Group option.

7. From the Directive Group drop-down list, select a group for which you want to export directives.

ICE 3.0 | 10.0.700 725


Chapter 12 | Business Process Management Utilities Epicor ICE 3.0 Tools User Guide

8. Enter the File Name for the exported file. This filename is the target path for the exported directive or set
of directives. You can enter the directory path and filename directly in this field, or click the Export to File
button to find and select it.
The default filename is export.bpm, but you can change this name if you need.

9. Click the Export button

10. Click OK to the message that directives have been successfully exported.

Directive Import
Use the Directive Import program to import a group of exported method directives into your application.
Here’s how you use this program to import a group of method directives:
Navigate to Directive Import.
Menu Path: System Management > Business Process Management > Directive Import

This program is not available in the Epicor Web Access.

1. Click the File Name button to find and select the .bpm file you want to import.

2. Optionally, select the Destination Group inside which you want to add the directives.

3. Select the Replace Existing Group check box if you want the import program to delete the directives in
the existing group and replace them with the imported directives. If this check box is clear, the program
leaves the existing directives alone and then adds the imported directives into the group.

Each Directive Name is used as a description value and


not as an identifier. If you clear the Replace Existing Group

726 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management Utilities | Chapter 12

check box during the import process, you may have


multiple directives with the same Directive Name.

4. Click the Import button

5. Click OK to the confirmation that your method directives have been successfully imported into your
application.

Import User Rights


The following security restrictions are applied when importing directives:
• BPM Users can only import those directives they have Read & Write access to.
• When the import file contains both allowed and disallowed directives, or the import results in overwriting or
deletion of existing directives that a user cannot modify, the import process is denied.
• Imports of Tenant Independent directives are only available to a Global Security Manager.

Import Compatibility
The import program also checks the compatibility of each imported directive. The following describes how this
program checks the compatibility of each directive:
• If the directives have the same version number as the current application, the directives are imported; if they
are enabled and fail to compile, they are marked as Out of Date.
• If the directives are from a previous version of Epicor ERP 10, the import process validates all methods for
compatibility. If any incompatible directives are found or enabled directives fail to compile, an error message
displays. The incompatible directives are still imported; however, their status is set to Out of Date.
• If the directives are from a newer version of the application, the imported directives are rejected and the
application displays an error message.

Directive Update

Use the Directive Update program to perform mass updates of BPM directives.
Using the Directive Update Setup sheet, you can update the properties and recompile the directives within a
selected group. You can run this program to apply some primary options to all the group directives; for example,
you can use this program to enable all the directives in the group.

ICE 3.0 | 10.0.700 727


Chapter 12 | Business Process Management Utilities Epicor ICE 3.0 Tools User Guide

On the Directive Recompile Setup sheet, you can recompile the group of directives, optionally refreshing
signatures of the methods or tables they are attached to, in order to make them compatible with the current
version of the application.
Using the SC Credentials Setup sheet, you can perform mass update of ESC server credentials stored in directives.
Typically, you need to update ESC credentials when running cross-company directives utilizing ESC Workflow
actions in a non-owning company.

Update a Directive Group


Navigate to Directive Update.
Menu Path: System Management > Business Process Management > Directive Update

This program is not available in the Epicor Web Access.

Based on the license used in your Epicor ERP installation, this sheet is available to the following users:

Non Multi-Tenant license Multi-Tenant license


Available to BPM Users. Available to Global Security Managers with BPM rights.

Here is how you update a directive group:

1. Select the Group of directives you want to update.

2. Select or enter the New Group inside which the updated directives are placed. You can select an existing
group from the list – including the original group. You can also enter a new group name in this field.

3. Select the Enabled check box to activate all the directives within the group.
To disable all directives in a group, clear the Enabled check box. To leave this property unchanged for all
directives, leave the checkbox in its initial state.

4. Use this field to change the scope of directives in a group.


The following options are available:
• <Unchanged> - Default option; leaves this property unchanged for all directives in a group.

728 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management Utilities | Chapter 12

• Company Specific - By selecting this option you set the directives to only work in their owning company's
scope.

This option is available to any BPM user. However, a


user must be provided with Advanced BPM rights if
any of the affected directives contains elements
available to advanced users only.

• Company Independent - By selecting this option you set the directives to work in all companies on a
regular installation.
If Multi-Tenant license is used, these directives work in all companies belonging to the tenant ID of their
owning company. This gives you the ability to utilize tenant specific, company independent directives.

This option is available to any BPM user logged into


the company owning the directives. However, a user
must be provided with Advanced BPM rights if any of
the affected directives contains elements available to
advanced users only.

• Tenant Independent - By selecting this option you set the directives to work in all companies of the
installation. This option only displays if Multi-Tenant license is used and it is only available to a user having
Global Security Manager rights.
If Multi-Tenant license is not installed, Company Independent and Tenant Independent directives work
the same way at runtime - in all companies.

5. Either click the Start Update button, or click the Actions menu and select Start Update. Your options are
applied to all the directives within the selected group.

Recompile a Directive Group


If you upgrade your Epicor ERP application, method directives created within the previous version most likely
become incompatible.
Although you can fix each directive individually within the respective Directives program, you can instead recompile
and fix most of the directives using the Directive Update program. If this functionality is unable to recompile a
method directive, however, it also displays a results log which indicates what is causing the recompile error.
Based on the license used in your Epicor ERP installation, this sheet is available to the following users:

ICE 3.0 | 10.0.700 729


Chapter 12 | Business Process Management Utilities Epicor ICE 3.0 Tools User Guide

Non Multi-Tenant license Multi-Tenant license


Available to BPM Users. Available to Global Security Managers with BPM rights.

To fix directives:

1. Click the Directive Recompile Setup sheet.

2. Indicate which directives you want to recompile. Available options:


• Outdated directives only – Runs the compile against directives marked as outdated.
• Up-to-date directives only – Runs the compile against directives marked as compatible.
• Both outdated and up-to-date directives – Runs the compile against all the directives.

3. If you select the Refresh Signatures checkbox then method and trigger signatures of selected directives
will be regenerated during the recompile process.

4. Either click the Start Recompile button, or click the Actions menu and select Start Recompile. The
recompile process runs against the selected directives.

730 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management Utilities | Chapter 12

5. The Directives updates/recompile results window displays.

6. If any directives could not recompile, each recompile error displays on a separate row within the grid, detailing
the compile error. Notice in this example, however, that the directive compiled successfully and is now
compatible within the current version of the Epicor ERP application.

7. To exit the results window, click Close.

Update ESC Credentials

Use this sheet to perform mass update of ESC server credentials stored in directives. Each Call SC Workflow
action used in BPM directives stores the ESC server, login and password data. You can select whether to update
any directive or only those belonging to a specified group.

If you run a cross-company directive in a company that does


not own the directive, the credentials entered during the design
in the owning company are used. However, if the non-owning
company utilizes another ESC server, use this sheet to supply
the new credentials.

Based on the license used in your Epicor ERP installation, this sheet is available to the following users:

Non Multi-Tenant license Multi-Tenant license


Available to Advanced BPM Users. Available to Global Security Managers with Advanced BPM
rights.

Troubleshooting Actions
Tools are available to help you further troubleshoot your actions. This section describes how these tools can help
you correct issues that may occur when using the BPM functionality.

BPM Tracing
This section explores how you can use both Client and Server side logging mechanism to analyze execution of
your BPM directives.

ICE 3.0 | 10.0.700 731


Chapter 12 | Business Process Management Utilities Epicor ICE 3.0 Tools User Guide

Client 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 BPM directives. 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 that is 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 have the option to display this log either as a text (.txt) file or as an .xml
file.

A pre-built .xml style sheet is included with this functionality.


It is recommended that you use the .xml file format, as it
organizes these calls in a readable format.

Depending on what client interface you use, the following are the ways of accessing the Tracing Options window:

1. When you run the application using the Classic Menu - from the Main Menu, click Options > Tracing
Options.

2. When you run the application using the Modern Shell, on the Home Page, click the Settings tile. From the
General Options, select Tracing Options.

732 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management Utilities | Chapter 12

3. Use the Tracing Options Form window to define how the Tracing Log captures the BL calls.

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

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

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

7. Select the Include Server Trace option when you want to track the client's interaction with the server. This
creates a <serverTrace> node within trace packets (<tracePacket>) in the client tracing log. Use the database
activity gathered in this section to review how the client installation may be affecting the performance of
the server.

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

9. When a method call has a <returnType> other than void, selecting the Write Response Data check box
causes the dataset returned from the server to display on the tracing log. Numerous method calls occur
where the data is passed down, modified, not written to the database, and then returned to the client.
Selecting this check box places these hidden calls on the trace log. Examples of these methods include Credit
Checking, Part Verification and Pricing, and GetNewXXX (where XXX is the name of a record).

10. The Current Log File displays the directory path and filename of the tracing log.

11. Click the View button to display the log within a .txt format.

12. 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, abccode lookup.

ICE 3.0 | 10.0.700 733


Chapter 12 | Business Process Management Utilities Epicor ICE 3.0 Tools User Guide

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

14. Click the Create XML button to save the tracing log in 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.

15. To remove all entries from the tracing log, click the Clear Log button.

16. To add all these current settings to the tracing log, click the Apply button.

17. To exit the Tracing Options Form window, click OK.

BPM Server Logging

The server trace log is an important tool for managing both application and performance issues. You can configure
the trace log to record the BPM specific transaction data you need to review.
To enable the BPM tracing functionality:

1. You activate BPM Logging within the AppServer.config configuration file.

2. The name of this file as well as the log file location can be manually configured in the web.config file located
in the server folder of your Epicor ERP installation.

Example C:\inetpub\wwwroot\ERP100600\Server

3. To activate BPM Logging, enable the following trace flag in the trace.config configuration file:
<add uri="trace://ice/fw/BPM" />
The above trace URI tracks the complete BPM information that includes the following:
• Business Object customizations made through Method Directives
• Data Triggers created using Data Directives
• uBAQ customizations - method directives of Updatable BAQs with BPM update

4. For a detailed analysis, the trace URI can be manually configured to narrow down the information being
tracked:
• trace://ice/fw/BPM/BO - to track BO customizations only
• trace://ice/fw/BPM/DB - to track data triggers only
• trace://ice/fw/BPM/DQ - to track uBAQ customizations only

5. As a result, the server log records the following information:

Example

Op Utc="2013-10-30T13:40:45.2677063Z" act="Ice:BO:Tip/TipSvcContract/Update
" dur="1006.1712" cli="fe80::d147:d8f4:e54e:5149%10:42111" usr="manager" ma
chine="MOS-TLS-DEV-AAA" pid="10788" tid="5">
<BpmCustomization Source="BO" BpMethodCode="ICE.Tip.Update" Type="BO Cust
omization" ExecutionInterruptedOnDirective="6300f64f-ccd6-4617-9105-a978473
6eb54" Duration="530.9098">
<BpmDirective Type="PreProcessing" ID="6300f64f-ccd6-4617-9105-a9784736

734 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management Utilities | Chapter 12

eb54" Name="MyBPMDataForm" IsCompanyIndependent="false" Duration="7.9992" /


>
</BpmCustomization>
</Op>
For each BPM call, the BpmCustomization node is created with following attributes:

Node Description
Source Displays the source of the BPM information. Possible values:
• BO - Method Directives
• DB - Data Triggers
• DQ - uBAQ Method Directives

BpMethodCode The method invoked by the BPM.


Type Displays the Type of the BPM call. Possible values:
• In Transaction Trigger
• Standard Trigger
• BO Customization
• uBAQ Update Processing

ExecutionInterruptedOnDirective Applies to BPM Data Form execution only. When the BPM Form invokes,
the service call exits and returns control back to the client. The client then
calls the service again. Therefore, in case of BPM Data Forms two different
operations are tracked.
This value displays the directive's GUID from which the service call was
interrupted.

ExecutionResumedFromDirective
For the second BPM Data Form operation, this value displays the directive's
GUID from which the service call was resumed.

Duration Time spent on executing a BPM call.

Within the BpmCustomization node, the BpmDirective node holds the following attributes:

Node Description
Type Type of the Directive. Possible values:
• PreProcessing, BaseProcessing, PostProcessing for Method Directives
and uBAQ Method Directives
• Standard, In Transaction - for Data Directives

ID Displays the directive's GUID.


Name Name of the directive.
IsCompanyIndependent Displays if the directive is active for all companies in the application.
PreparationStepDuration The duration of the directive's preparation step. If there was no preparation
for this directive, this attribute is absent.
Duration The directive's execution time.

ICE 3.0 | 10.0.700 735


Chapter 12 | Business Process Management Utilities Epicor ICE 3.0 Tools User Guide

• A single service call may trigger a lot of BPM customizations, even the customizations of different BOs
and tables. They all will be listed under the Op node of this operation.
• The execution of one directive may lead to other customizations being executed, and in case of
synchronous execution (in-transaction triggers, sync invocations of other BO methods), the duration
of the "child" directives will also be counted into the duration of "parent" directive.
• Default BO method execution duration (in case it's not overridden by a BaseProcessing directive) is
not counted as part of BO Customization duration.
• Since tracing engine allows the user to switch on some tracing functionality for a particular BO calls,
or specific method invocations, it applies to BPM tracing as well.

Debugging Using Visual Studio

If you have Microsoft® Visual Studio™ 2010 or higher, you can debug execution of custom code directives.
Here's how you can debug your BPM custom code:

1. Create new project of type Class Library (Visual C#).

2. The first step involves location of the BPM Sources folder. By default, Sources are found in the BPM folder
of the Server directory.

A different sources folder can be specified using the


intermediateFolder attribute in the server web.config file.
Make sure that the folder specified in the
intermediateFolder attribute exists at the time IIS AppPool
used by the Epicor 10 application starts. Also, verify the
account used by that AppPool has read and write access
to that folder. Otherwise, the setting is ignored and
sources are saved in the system's TEMP folder.

736 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management Utilities | Chapter 12

3. The folder contains all BPM revisions.

4. Make sure you work with files from the latest one and copy them into the VS project's folder.

5. If your project is located in the location different from Server deployment folder, in Visual Studio you must
set the relative paths manually to point to the location of Server\Bin and Server\Assemblies folders.

ICE 3.0 | 10.0.700 737


Chapter 12 | Business Process Management Utilities Epicor ICE 3.0 Tools User Guide

6. Make sure the Assembly name is properly specified.

7. Make sure all references are properly resolved, your BPM working files and respective BO contracts are
added.

8. Now you are ready to build the project.

738 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management Utilities | Chapter 12

9. Set the breakpoint in the custom code.

10. For debugging Options, make sure the Enable Just My Code and Require source files to exactly match
the original version options are clear.

ICE 3.0 | 10.0.700 739


Chapter 12 | Business Process Management Utilities Epicor ICE 3.0 Tools User Guide

11. Attach the debugger to the w3wp process the application pool is running under.

12. When the BPM is fired, you can verify each step in Visual Studio.

Disable BPM

You can use the customizationSettings section found in the web.config located in the server folder of your
Epicor ERP installation to control the application's customization engine.

Example

<customizationSettings disabled="false" intermediateFolder="C:\Inetpub\wwwroot\


EpicorERP10\Server\BPM">
<customizationStorage provider="FileSystem" settings="C:\Inetpub\wwwroot\Ep
icorERP10\Server\Customization" />
<externalsStorage provider="FileSystem" settings="C:\Inetpub\wwwroot\Epicor
ERP10\Server\Customization\Externals" />
<types>
<add name="BPM.BO" folder="BO" cacheName="Epicor_Ice_BPM_BO" />
<add name="Posting" folder="PE" cacheName="Epicor_Ice_PE" />
<add name="ElectronicInterface" folder="EI" cacheName="Epicor_Erp_EI" />
<add name="Expressions" folder="ECF" cacheName="Epicor_Erp_Expressions" /
>
<add name="ProductConfigurator" folder="PC" cacheName="Epicor_Ice_PC" />
<add name="BPM.DT" folder="DT" cacheName="Epicor_Ice_BPM_BO" />
<add name="BPM.Ubaq" folder="Ubaq" cacheName="Epicor_Ice_BPM_BO" />

740 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Business Process Management Utilities | Chapter 12

</types>
</customizationSettings>
When you set customizationSettings disabled = "true", you turn the customization engine off. This means
Method Directives, Data Directives and uBAQ Method Directives processed via BPM are not executed. However,
you can still edit, add and remove BPMs but these changes are saved to the database only and no binaries are
being recompiled or deleted.
When customization engine is turned back on (customizationSettings disabled = "false"), old binaries are
applied. To get the binaries up to date:
• Recompile all Method and Data Directives using the Directive Update program.
Menu Path: System Management > Business Process Management > Directive Update

This program is not available in the Epicor Web Access.

• Recompile and refresh BPM binaries related to selected updatable queries using the Updatable Query
Maintenance program.
Menu Path: System Management > Upgrade/Mass Regeneration > Updatable BAQ Maintenance

If an incorrectly configured BPM directive prevents the system from operating or the user from logging in,
removing incorrect directives with disabled BPM is not enough. The user should remove affected binaries from
the Server > Customization folder, for example, from C:\inetpub\wwwroot\EpicorERP10\Server\Customization
and then remove or disable incorrect directives.

The customizationSettings disabled = "true" setting also turns


off other customization engine clients besides BPM that are
defined in the web.config, such as Posting or Product
Configurator.

ICE 3.0 | 10.0.700 741


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

Chapter 13: Epicor Social Enterprise

Epicor Social Enterprise is an information network designed to support information exchange across your business
enterprise. Epicor Social Enterprise is intended to be deployed in conjunction with Epicor ERP and is fully integrated
into the Epicor ERP application client.
With Epicor ERP and Epicor Social Enterprise running together, users have access to the following resources for
communication and data monitoring:
• Exchanging messages with other users. These typically are people within the organization, although people from
the outside can be invited to join.
• Choosing other users to follow, automatically receiving their stream of message activity.
• Joining and starting user groups that bring together people who have common interests.
• Setting up and following notifications that post messages when a change occurs in Epicor ERP business data.
• Searching for information in the Epicor Social Enterprise message stream and Epicor ERP business data.
When you access any of the Epicor Social Enterprise features in the Epicor ERP client, you are automatically connected
to Epicor Social Enterprise using your Epicor ERP account. If you do not have an Epicor Social Enterprise user account,
a new account and user profile are created for you. The information in the new user profile is based on your Epicor
ERP user record and can be edited.

Accessing Epicor Social Enterprise

This section describes how to open Epicor Social Enterprise from Epicor ERP and introduces the Epicor Social
Enterprise Home page.

Open Epicor Social Enterprise from Epicor ERP Home Page

The Epicor Social button on the Epicor ERP application Home Page toolbar provides easy access to Epicor Social
Enterprise.

The Epicor Social button on the application Home Page toolbar


functions only when the Epicor ERP application configuration
includes a valid connection to an Epicor Social Enterprise site.
Contact your administrator if Epicor Social Enterprise cannot
be opened from the toolbar.

742 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

1. Open the Epicor ERP application in New Menu mode and click the Epicor Social button on the Home Page
toolbar.

2. The Epicor Social Enterprise form opens. This form is a fully functional view of Epicor Social Enterprise
equivalent to opening Epicor Social Enterprise in a browser.
Logging into Epicor Social Enterprise is automatic when starting from Epicor ERP. Either the Epicor ERP user's
credentials are applied to an existing, matching Epicor Social Enterprise user account or they are used to
automatically create an Epicor Social Enterprise user account.
In this example, the Epicor ERP user bhoward (Brian Howard) has accessed Epicor Social Enterprise for the
first time. The My Stream column of message activity is empty since Brian is a new user.

3. Click the Arrow at the top of the form to display the Open Forms Bar.

4. You can leave the Epicor Social Enterprise form open and use the Open Forms Bar to navigate back to the
application Home Page (or to any other open form in your application session).

ICE 3.0 | 10.0.700 743


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

5. On the application Home Page, you can redisplay a running Epicor Social Enterprise form by clicking the
Arrow and selecting the form on the Open Forms Bar, or by clicking the Epicor Social toolbar button.

6. From an open application program, you can redisplay a running Epicor Social Enterprise form by locating
the form using the Navigation Buttons at the top of the program window.

Epicor Social Enterprise Home Page and Toolbar

On the Epicor Social Enterprise Home page, message activity is displayed in columns. The toolbar on the right
side of the Home page header provides access to important view and setup actions.

1. The default display is your My Stream column, which contains your message activity with other users and
data notification messages informing you of changes in your Epicor ERP data.

744 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

The column is likely to be empty when you first become an Epicor Social Enterprise user. Once you begin
communicating with other users, My Stream will begin to accumulate and display all message activity
relevant to you.

2. In the My Stream column header, click Toggle Conversation View to switch between displaying messages
with or without associated conversation threads displayed.

3. In addition to the default My Stream column, you can add columns to your Home page as needed to
display filtered message activity such as for a user, a group, a subject, or an ERP data notification you are
following.
For this example, a message from PLane was chosen in the My Stream column, the User ID was clicked to
open a thumbnail profile, and Messages was clicked to display a new column of message activity that
includes that user.

4. Click Post Message on the toolbar to begin composing and posting a public message.

5. Click Search on the toolbar to initiate a search in the Epicor Social Enterprise message stream, one of your
registered notification sources (Epicor ERP application data sources), or Twitter.

6. Click Reload All Columns on the toolbar to regenerate all currently displayed columns.

7. Click Help on the toolbar to open the Epicor Social Enterprise online help system.

ICE 3.0 | 10.0.700 745


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

8. Click Menu on the toolbar to display all available actions.

9. Click Admin on the toolbar to access procedures and supporting information for Epicor Social Enterprise
administrators. Admin appears on the toolbar only when access level is set to administrator in your user
profile properties.

10. Click Toggle My Stream on the toolbar to shown and hide your My Stream column. This can be useful,
for example, when your work is focused on columns of filtered message activity and you do not need to
have My Stream open.

11. Click Private Messages on the toolbar to open a column that displays the private message postings between
you and other users. Private Messages is highlighted when you have unread private messages.

12. Click Pending Actions on the toolbar to display your User Profile page with items that require your
attention highlighted. Pending actions can be unread private messages, unanswered group invitations, and
registered notification sources that require user credential updates. Pending Actions appears on the toolbar
only when there are items that you need to address.

13. Click Notification Center on the toolbar to display the Notification Center page, where you can set up
notifications that post data notification messages to you when changes occur in your Epicor ERP application
data.

14. Click Users on the toolbar to display the Users page, which is a searchable directory of all users in Epicor
Social Enterprise.

15. Click Groups on the toolbar to display the Groups page, which is a searchable directory of all user groups
in Epicor Social Enterprise.

16. Click Log Out on the toolbar to terminate your current Epicor Social Enterprise session. Log Out does not
appear on the toolbar when you are running Epicor Social Enterprise from within Epicor ERP.

746 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

User Profile Page

Your User Profile page displays information about your Epicor Social Enterprise account and your account
activities, and provides options for editing your user profile.

1. Click your User ID in the left side of the Epicor Social Enterprise Home page header to display your User
Profile page.

2. The page header displays your image, name, user ID, primary email address, and bio.

3. Select the Contact tab to see your current settings for contact information including Email Addresses,
Addresses, Phone Numbers, and Websites. Choose a bar for a category and expand to view its contents.

4. Select the Messages tab to see your public message postings.

5. Select the Followers tab to see Epicor Social Enterprise users following you.

6. Select the Following tab to see Epicor Social Enterprise users you are following.

7. Select the Groups tab to see a your group memberships.

8. Select the Private Messages tab to see private message postings between you and other users.

9. Select the Notification Sources tab to see the notification sources (Epicor ERP application data sources)
that you have registered to access from your Epicor Social Enterprise account.
When an Epicor Social Enterprise user account and user profile are auto-generated for an Epicor ERP user,
the user profile includes a registered notification source based on the active notification source for the user's
Epicor ERP system. Any additional registrations would be created manually by the user.

ICE 3.0 | 10.0.700 747


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

10. Select the Notifications tab to see the notifications that you have set up for following changes in your ERP
data. More information about this is provided in Following Changes in your ERP Data later in this chapter.

11. Select the Email Options tab to see the current status of options for working with messages via email.

12. Click Edit Profile to edit your user profile details, contact information, and email options.

13. Click Change Password to change your Epicor Social Enterprise password.

14. Click Back at the top of the User Profile page to return to the Home page.

Add Epicor Social Tile to Epicor ERP Home Page

You can optionally add an Epicor Social tile to the application Home Page.
The Epicor Social tile displays your My Stream column, enabling you to monitor your message activity, post
new messages, and perform basic actions on the displayed messages such as Repost, Reply, and Share. From the
tile, you can open the Epicor Social Enterprise form, which is a fully functional view of Epicor Social Enterprise.

1. Open the Epicor ERP application in New Menu mode and then right-click anywhere in the blank area of the
application Home Page to display the Application bar at the bottom of the page.

2. In the Application bar, click the Add Tile button to open the Add a new tile wizard.

748 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

3. On the wizard's first screen, under Which tile group will this tile belong to?, accept the (No Title)
default or optionally select a group. For example, you could select Create a new tile group and name the
group Social.

4. Optionally, in the top right corner, select a color for the new tile.

5. Click the Next button (right arrow) at the bottom of the wizard screen.

6. On the wizard's second screen, choose Epicor Social under What type of tile do you want to add?.

7. Click Next.

ICE 3.0 | 10.0.700 749


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

8. On the wizard's third screen, either adjust or accept the default value of 15 seconds for How often do you
want to refresh (seconds)?. This sets the rate at which the Epicor Social tile is updated to incorporate any
changes to the displayed Epicor Social Enterprise My Stream column.

9. Click Next.

10. On the wizard's fourth screen, either enter a value or accept the 3x3 default Width and Height under
What is the default size of your tile?. A tile size of 1x1 is 125x125 pixels.

11. Optionally select the checkbox for Do you want to be able to expand your tile?.

12. Click the Save button to confirm your selections and close the wizard.

750 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

13. An Epicor Social tile is placed on the ERP application Home Page.
Logging into Epicor Social Enterprise is automatic when starting from Epicor ERP. Either the Epicor ERP user's
credentials are applied to an existing, matching Epicor Social Enterprise user account or they are used to
automatically create an Epicor Social Enterprise user account.
In this example, the Epicor Social tile was added by the Epicor ERP user bhoward (Brian Howard), who was
accessing Epicor Social Enterprise for the first time. The My Stream column of message activity is empty
since Brian is a new user.

14. Click either the top or bottom of the Epicor Social tile to open the Epicor Social Enterprise form.

15. This is the same Epicor Social Enterprise form that opened when, earlier in this section, you used the Epicor
Social button on the application Home Page toolbar. The form is a fully functional view of Epicor Social
Enterprise equivalent to opening Epicor Social Enterprise in a browser.

ICE 3.0 | 10.0.700 751


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

Open Epicor Social Enterprise in Epicor Classic Mode

With the Epicor ERP application client open in Classic Menu mode, you can display and work with a fully functional
view of Epicor Social Enterprise. The view is opened from the Main menu interface and displays as the Social
sheet.

1. With the application open in Classic Menu mode and the Main menu interface displayed, choose View >
Social.

2. In the Contents pane, the Social sheet opens and displays the Epicor Social Enterprise Home page. This is
a fully functional view of Epicor Social Enterprise equivalent to opening Epicor Social Enterprise in a browser.
Logging into Epicor Social Enterprise is automatic when starting from Epicor ERP. Either the Epicor ERP user's
credentials are applied to an existing, matching Epicor Social Enterprise user account or they are used to
automatically create an Epicor Social Enterprise user account.

Working in the Public Message Stream

Communicate with other Epicor Social Enterprise users through actions such as posting and receiving messages,
choosing to follow another user's message stream, and joining groups.
The examples in this section use the public message stream and public groups. In later sections you will learn
about private messages, private groups, and data notification messages that alert you to changes in your Epicor
ERP application data.
Each message that you receive from another user has actions such as:
• Repost - Re-send with opportunity to change recipients or edit the message.
• Reply - To sender.
• Recommend - To indicate your support.
• Replies - View the associated message thread.

752 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

• Attachments - Access any files that are attached to a message.


• Share - Forward message via email.
Your own previously posted messages have an Edit action available when you are logged into Epicor Social
Enterprise. An edited message, including an Edited status icon, replaces the original at is current location in the
message stream of both you and your recipients.
Data notification messages and messages to which you have attached an ERP resource reference include an Open
With action for opening your Epicor ERP application in the context of the monitored data.

Locate and Follow Another User

When you choose to follow a user, their currently available postings are added to your message activity and you
will begin receiving their new postings.

1. From the Epicor Social Enterprise Home page toolbar, choose Users to display the Users page. This page
is a searchable directory of all users in your Epicor Social Enterprise deployment.

2. Begin typing in the Search users field at the top of the Users page. As you type, the list is filtered to display
only the user or users that contain the current search text.
The search acts on the following:
• The values displayed in each user listing for User ID and User Name. For an account auto-created for an
Epicor ERP user, the User ID typically is their email account name.
• The user's bio and contact information from their user profile. This information is included in the search
but is not displayed in the directory listing.

3. In the user's listing, choose Follow. The Follow action changes to Unfollow and the listing now is shaded
to provide a quick indication that you are following this user.

ICE 3.0 | 10.0.700 753


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

4. You can click the User ID in the listing header to open the user's User Profile page. Each user in the system
has a user profile page that includes:
• A header that displays their image, name, user ID, primary email address, and bio.
• Tabs that display the user's contact information, message activity, users they are following, users following
them (including you), and group memberships.

5. At the top of the Users page, click Back to return to the Home page.

6. Message activity for the user you have selected to follow now will be included in your My Stream column.

Post a Message to Your Followers

Posting a public message to your followers adds it to the Epicor Social Enterprise message stream and makes it
immediately visible in the My Stream columns of other users who have chosen to follow you.

1. From the Epicor Social Enterprise Home page toolbar, choose Post Message to open the dialog box for
composing messages.

754 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

2. In Share an update with, choose My Followers.

3. In the text field, compose your message.


To mention another Epicor Social Enterprise user in the message (insert @mention), type @ to begin displaying
a selection list of users. Continue typing to search the list and press Enter once the list has filtered down
to the user who you want to mention. The search works on both user ID and user name.
Hashtags (# symbol) can be used to mark keywords in your messages, similar to hashtags in Twitter.
Hashtagged words display as live links in messages. In a message, the reader can click on a hashtagged
word to display a new column of messages that contain the tagged word.

4. Optionally, click Attach ERP Resource to initiate a series of steps for searching a selected notification source
(ERP database) and choosing a record that will be referenced in the message. The message recipient will be
able to choose an Epicor application program in which to view and work with the record. For more information
about using this important feature, see the topic Include an ERP Resource in a Message.

5. Optionally, click Insert Link and configure an active link to external content.

6. Optionally, click Browse and select a file to include as an attachment to the message.

7. Click Post Message to complete the action.

8. The message displays in the My Stream columns of you and all users who have chosen to follow you.

ICE 3.0 | 10.0.700 755


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

Reply to a Message

Reply to a public message from another user.

1. From the Epicor Social Enterprise Home page, choose a message in your My Stream column and click
Reply. The post message resources open inline, directly below the message you are replying to.

2. In the text field, compose your message.

3. Click Post Message to complete the action.

4. The message displays in the My Stream columns of you, the user you are replying to, and all users who
have chosen to follow you.

756 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

Locate and Join a Public Group

Groups bring together users who have common objectives and interests. All public groups are open for you to
join.
Once a member, you will begin seeing messages from the group in your message activity. Message postings to
a public group are available in the Epicor Social Enterprise message stream and can be located by any user who
searches the message stream for the group ID or name.

1. From the Epicor Social Enterprise Home page toolbar, choose Groups to display the Groups page.

2. The Groups page is a searchable directory of all Epicor Social Enterprise groups, both public and private.
Locate the group in the list or begin typing in the Search groups field at the top of the Groups page.
When you choose to search, the search acts on the following:
• The values displayed in each group listing for Group ID, Group Name, and Key Terms (optional search
terms set in the group's properties).
• The group description from the group's Group Detail page. This information is included in the search
but is not displayed in the directory listing.

3. In the group's listing, choose Join.

ICE 3.0 | 10.0.700 757


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

4. The Join action changes to Leave and you are now a group member. The listing now is shaded to provide
a quick indication that you are a group member.

5. You can click the Group ID in the listing header to open the group's Group Detail page.

6. Each group in the system has a detail page that includes:


• A header that displays the group's image, name, group ID, and key terms (when the group owner has
included terms in the group properties).
• Tabs that display message activity, pending actions such as unanswered invitations, and the group's
membership (including you now that you have joined).

7. Click Back at the top of the detail page to return to the Groups page.

8. When you return to the Home page, the existing message activity for the group now is included in your
My Stream column.

758 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

Post a Message to a Public Group

Posting a message to a public group adds the message to the Epicor Social Enterprise message stream and makes
it visible in the My Stream columns of the group's members and all of your followers, whether or not they are
in the group.

1. From the Epicor Social Enterprise Home page toolbar, choose Post Message.

2. Under Share an update with, click the field to display a list of all groups in which you are a member, and
then choose a group.

Starting from the message posting dialog box requires that you select a group in which you are a member.
You do not, however, always have to be a group member to post a message to a public group. Any user
can click and use the Post Message action that displays in a Groups page listing, and a group's Group
Detail page, or the group thumbnail profile that opens from a group message.

3. Compose a message to the group.


As with public messages, @mention and #hashtag are supported in the message field, and the options are
there for including a file attachment, link to external content, or a reference to an ERP data resource.

4. Click Post Message to complete the action.

ICE 3.0 | 10.0.700 759


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

5. The message displays in the My Stream columns of you, all group members, and all users who have chosen
to follow you.

6. In your new message to the group, click on the GroupID to open the group thumbnail profile.

7. In the thumbnail profile, click Messages.

8. A new column displaying all message activity for the group is added to the Home page. The group in this
example is new and there are only a few messages, but as a group grows, this is a good way to view and
track group activity.

760 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

Mentioning a User

Mentioning (@mention) another Epicor Social Enterprise User in a message brings that user to the attention of
message recipients and posts a message to the mentioned user, making that user aware that a conversation that
may be of interest to them is in progress.
You can insert an @mention when composing a public or private message. The mentioned user will receive a
message only if they are authorized to see the message. The mentioned user will received public messages and
messages to public groups, but will not receive private messages between other users or messages to private
groups in which they are not a group member.

1. To insert an @mention, type @ to begin displaying a selection list of users. Choose a user from the list or
continue typing to search the list and press Enter once the list has filtered down to the user who you want
to mention. The search works on both user ID and user name.

2. The @mention appears in the posted message.

ICE 3.0 | 10.0.700 761


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

3. The message appears in the message stream of the mentioned user.

If enabled in the mentioned user's User Profile, @mention email alerts will be posted to the user's primary
email account. As with message postings, alerts will be received only if the user is authorized to see the
message that contains the mention. Email alerts are not sent for mentions in data notification messages.
For more information, see the topic Receive Mention Email Alerts in the section Interacting with the
Message Stream via Email.

4. Click the @mention to view the mentioned user's thumbnail profile.


This is the thumbnail profile that is common throughout Epicor Social Enterprise message columns and lists.
Actions include View Profile, Messages (opens message column for the mentioned user), Follow/Unfollow,
and Send Private Message (to initiate a private message exchange with the mentioned user).

Using Hashtags

Hashtags (# symbol) can be used to mark keywords in your messages, setting an associated context for the
message and its topic. Hashtagged words display as live links in messages. To follow widespread conversations

762 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

on a topic, the reader can click on a hashtagged word to display a new column of message stream activity that
includes the tagged word.

1. When composing a message, create a hashtag by typing a # and then the word or phrase (no spaces), or
inserting a # in front of an existing word.

2. The hashtagged word is a live link (hyperlink) in the posted message.

3. Clicking on #Word opens a search results column of message stream activity that includes the #Word,
bringing together all communication on the topic associated with the hashtag.
This example is simple and for demonstration purposes only. The search results column could be very large
and bring together otherwise disconnected postings in a large Epicor Social Enterprise community that is in
the habit of using #hashtags.

ICE 3.0 | 10.0.700 763


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

Post Message from Epicor ERP in Context of Current Record

From your current ERP application program, you can post a message to the Epicor Social Enterprise message
stream in the context of the program and currently displayed record.

1. With an application program open and a record displayed, right-click a record field in one of the program
sheets to open the context menu, and choose Social > Post Message to display the Post Epicor Social
Message dialog box .
In some programs, you can select the record in the program tree view and get to the Social context menu.
The Social functionality typically is enabled on application key fields.

2. In Share an update with, choose My Followers or choose a Group Name. The list includes public and
private groups in which you are a member.

3. In the message body field, compose your message.

764 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

4. Optionally, click Insert Link and configure an active link to external content.

5. Optionally, click Choose Files and select a file to include as an attachment to the message.

6. Optionally, you can click Remove ERP Resource to remove the application record context that was added
automatically when you initiated the message action. You may encounter a situation where there is a business
reason for this.

7. Click Post Message to complete the action.

8. As a convenient way to verify that the message posted to the Epicor Social Enterprise message stream,
choose Actions > Activity Stream.

9. The Activity Stream sheet opens and displays Epicor Social Enterprise message and notification activity for
the current record, including the message you just posted.

ICE 3.0 | 10.0.700 765


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

The Activity Stream action is available in most programs. On the Activity Stream sheet, you can work in the
context of the displayed message stream, posting new messages and performing actions such as Repost,
Reply, and Share.

10. Close the Activity Stream sheet and use the Navigation buttons at the top of the program to display the
Epicor Social Enterprise form.

11. Verify that the message displays in your My Stream column.

766 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

12. From Epicor Social Enterprise, you or another message recipient can click the Open With action to display
a menu of applicable ERP programs in the context of the subject record. Choosing a program from the menu
will open the program with the record displayed.

Include an ERP Resource Reference in a Message

When composing a message, an important option is the Attach ERP Resource action, which enables you to
attach a reference to an ERP notification source record (Epicor ERP data record).

1. From the Epicor Social Enterprise Home page toolbar, choose Post Message.

2. In the dialog box, make a choice under Share an update with.

3. Compose a message.

4. Click Attach ERP Resource.


This initiates a series of steps for searching a selected notification source and choosing a record that will be
attached, or referenced, in your message.

At this point, the sequence in this example skips a Select


Source step for choosing a registered notification source
when multiple sources are detected. Only one active
registered notification source is available in the
demonstration installation and a single source always is
applied automatically.

5. In the Search for ERP Resource field, type a word or phrase to identify what you are looking for and click
Search to initiate a search of your notification source.

ICE 3.0 | 10.0.700 767


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

For this example, a supplier ID known to be in the notification source database is used.

6. Once the notification source search is done, under Select Resource to Attach, expand Select Option and
choose the record that will be associated with the message.

768 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

7. To provide the recipient with the application data context for the posting, the message will include an
identifier for the selected record.

8. Click Post Message to complete the action.

9. Recipients can click Open With and choose an Epicor ERP application program in which to view and work
with the record.

Recommend a Message

Recommending a message shows your support and brings the message to the attention of other users.

1. From the Epicor Social Enterprise Home page, choose the message in your My Stream column and click
Recommend.

ICE 3.0 | 10.0.700 769


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

2. The link changes to Recommended.


If it was not already present, a Recommendations link is added along with an indicator of the number of
users who are recommending the message.

3. Click Recommendations to see a list of recommenders.

4. The list is searchable and the user listings (other than your own listing) include a few actions for further
communication.
You can later withdraw your recommendation by clicking Recommended. The link returns to Recommend
and you are removed from the list of recommenders.

Searching in Messages and ERP Data

Use Search on the Home page toolbar to search the Epicor Social Enterprise message stream, a notification
source (Epicor ERP database), or Twitter. Search results are displayed as a separate column on the Home page.
This section describes how to focus on messages and notification source records that match search criteria.

Search in the Message Stream

Search the Epicor Social Enterprise message stream and display a separate column of messages that match search
terms.

1. From the Epicor Social Enterprise Home page toolbar, click Search to display the Search dialog box.

770 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

2. In Search Terms, type a word or phrase.

3. In Search Target, select Messages.

4. Click Search.

5. A separate column of search results displays on your Home page.


For this example, the My Stream column is hidden, leaving the search results column as the only column
displayed. The column header identifies the criteria on which the current message display is based and
includes a toolbar of actions for working with the search results. All normal message functionality is retained
in the displayed messages.

6. Click Toggle Conversation View in the column toolbar to switch between displaying messages with or
without associated conversation threads displayed.

7. Click X Messages in all. Click to show/hide summary settings. in the column toolbar to display the
number of messages falling within one of several predetermined time ranges (for example in the last hour
or in the last 24 hours). Click the arrow to choose a different range.

8. Click Show/hide Search in the column toolbar to display the currently applied search term (the column's
display criteria) in an editable field. Edit the value in this field and press enter to run a new search against
the Epicor Social Enterprise message stream and update the column to display matching messages.

ICE 3.0 | 10.0.700 771


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

9. Click Refresh Column in the column toolbar to update the column to include any messages matching the
search term that have been posted since the column was last generated or refreshed.

10. Click Remove Column in the column toolbar to delete the column from your Home page.

Search the Data in a Notification Source

Search a registered notification source (Epicor ERP database) and display a column of ERP data records that match
search terms.

1. From the Epicor Social Enterprise Home page toolbar, click Search to display the Search dialog box.

2. In Search Terms, type a word or phrase.


For this example, a customer name known to be in the database is used.

3. In Search Target, select the notification source that you want to search.

4. Click Search.

5. A separate column of search results displays on your Home page.

772 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

For this example, the My Stream column is hidden, leaving the search results column as the only column
displayed. The column header displays the notification source that was searched for the displayed results.

6. In a displayed data record, the title provides a thumbnail description of the record.

7. Click Details in a data record to display all of the data in the record.

8. Click Post Message in a data record to create and post a message about the record. This is an in-column
implementation of the functionality for posting public messages. The message will include the descriptive
title from the search results, your message and attachments, and the Open With action for opening the
Epicor ERP application in the context of the subject record.

9. Click View Related Messages in a data record to open a column that displays all data notification messages
based the record, as well as any user conversations that are keyed to the record.

10. Click Open With in a data record and then choose the Epicor ERP program in which you want to view and
work with the record. This will open the Epicor ERP application in that context.

11. Click Show/hide Search in the column toolbar to display the currently applied search term in an editable
field. Edit the value in this field and press enter to run a new search against the notification source.

12. Click Refresh Column in the column toolbar to update the column to include any records matching the
search term that have been added since the column was last generated or refreshed.

13. Click Remove Column in the column toolbar to delete the column from your Home page.

ICE 3.0 | 10.0.700 773


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

Following Changes in Epicor ERP Data

This section describes how to set up and follow notifications in Epicor Social Enterprise. A notification monitors
a selected Epicor ERP database and triggers the posting of data notification messages when changes that match
the criteria in a notification rule.
Data notification messages are displayed automatically in your My Stream column. Actions such as Repost and
Share are available in the message. The Open With action opens your Epicor ERP application in the context of
the affected data record.
To create and begin following a notification, you choose a combination of the following resources:
• Notification Source - A notification source is the Epicor ERP database that will be monitored for data change
activity.
• ERP Data Record or Notification Profile - A data record is a specific record in your ERP database. A
notification profile identifies a table in your ERP database.
• Notification Rule - A notification rule evaluates against the selected data record or notification profile,
specifies what change in your ERP data will trigger a notification, and specifies the content of the resulting
data notification message.
Epicor Social Enterprise ships with default sets of notification rules and notification profiles for working with data
monitoring in the ERP application. You also can create custom rules. Your Epicor Social Enterprise administrator
can create custom notification profiles.

You cannot create, edit, or delete notification rules or


notification profiles in Epicor Social Enterprise standard edition.
An Epicor Social Enterprise premium edition license is required
to enable the create, edit, and delete functionality.

Notification Center Page

The Notification Center page is your resource for setting up notifications.

1. Choose Notification Center on the Home page toolbar.

2. At the top of the Notification Center page, use the Notification Source Selection List to choose which
of your registered notification sources (Epicor ERP databases) will be monitored.

774 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

A registered notification source is included in the user account and user profile automatically created for
you when you initially access Epicor Social Enterprise from Epicor ERP. That registration is based on the
notification source that was created by the administrator to support connection to your Epicor ERP database.

3. Use the Data (Left) Column for selecting either a specific database record to monitor or a notification
profile that enables monitoring of all records in a specified database table.
In this example, the selection at the topic of the column was set to Notification Profile, the search field
was left blank so that the generated list includes all available notification profiles, and a profile was selected
from the list.

4. Use the Rule (Right) Column for selecting and working with a notification rule that defines the data change
that will trigger a notification.
In this example, credit has been used as a search term for filtering the list of rules available for the notification
profile selected in the previous step. A rule is chosen by selecting the rule and then clicking the rule's Follow
action. In this example, a rule has not yet been selected.

5. Just above the Rule (Right) Column, you can use the options on the actions menu for viewing current
notifications, and for creating notification profiles and notification rules.

ICE 3.0 | 10.0.700 775


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

Follow Notifications on a Data Record

Create a notification that monitors change in a specified Epicor ERP database record.

1. From the Epicor Social Enterprise Home page toolbar, choose Notification Center to display the
Notification Center page.

2. Under Notification Source, choose the registered notification source that connects to your ERP database.

3. In the data (left) column, ensure that Data Records is selected. Clicking in the field switches between data
record and notification profile.

4. In the search field, type a term that identifies what in the database you want to monitor and then press
Enter to generate a list.

5. In the list, choose a data record.

776 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

6. In the rule (right) column, enter a term that identifies the type of event or change that you want to monitor
and then press Enter to generate a list. Alternatively leave the search field blank to return all notification
rules relating to your selected data record.

7. Optionally, you can click View in a rule listing to open the Notification Rule Properties dialog box to see
how the rule is set up.

8. Notice that each rule listing includes an Other Followers action with a count of current follower.
This can be a useful feature when working in an Epicor Social Enterprise and Epicor ERP application
deployment. Clicking Other Followers displays a list of Epicor Social Enterprise users currently following
the selected notification. Each user listing includes actions for communicating with that user.

9. Select the rule that matches your data monitoring requirements and click Follow.

10. To verify your notification configuration, you can open the actions menu above the rule (right) column and
choose View My Notifications.
This will open your User Profile page with the Notifications tab selected to display a list of the notifications
you currently are following.

Your notification is complete. You will receive a data notification message in your My Stream column whenever
a change to the selected Epicor ERP data record occurs that matches the criteria in the notification rule.

Follow Notifications on a Notification Profile

Create a notification that identifies the notification source database, a notification profile (ERP database table),
and a rule for triggering notifications. Selecting a notification profile enables notification for all database records
that match the profile.

1. From the Epicor Social Enterprise Home page toolbar, choose Notification Center to display the
Notification Center page.

ICE 3.0 | 10.0.700 777


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

2. Under Notification Source, choose the registered notification source that connects to your ERP database.

3. In the data (left) column, ensure that Notification Profiles is selected. Clicking in the field switches between
data record and notification profile.

4. In the search field, type a term that identifies what in the database you want to monitor and then press
Enter to generate a list. Alternatively leave the search field empty to return a list of all available notification
profiles.

5. In the list, choose a notification profile.

6. In the rule (right) column, enter a term that identifies the type of event or change that you want to monitor
and then press Enter to generate a list. Alternatively leave the search field empty to return all notification
rules relating to your selected notification profile.

7. Select the rule that matches your data monitoring requirements and click Follow.
As seen in the previous example, you can click View to open the Notification Rule Properties dialog box
to see how the rule is set up. Also notice that the Other Followers action is available to display a list of
other Epicor Social Enterprise users currently following the selected notification.

8. To verify your notification configuration, you can open the actions menu above the rule (right) column and
choose View My Notifications.
This will open your User Profile page with the Notifications tab selected to display a list of the notifications
you currently are following.

Your notification is complete. You will receive a data notification message in your My Stream column the next
time a change to the selected notification profile (Epicor ERP data table) occurs that matches the criteria in the
notification rule.

778 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

Set up in Epicor ERP to Follow Notifications for a Selected Record

In your current ERP application program, you can select a data record and begin following notifications for that
record. Data notification messages will be posted to your Epicor Social Enterprise message stream.

1. With an application program open and a record displayed, right-click a record field in one of the program
sheets to open the context menu, and choose Social > Follow.
In some programs, you can select the record in the program tree view and get to the Social context menu.
The Social functionality typically is enabled on application key fields.

2. An Epicor Social Enterprise window opens and displays the Epicor Social Enterprise Notification Center
page with focus on the notification rules column. The rules column displays existing rules applicable to the
selected data record.

ICE 3.0 | 10.0.700 779


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

You have already chosen your notification source and data record by beginning in the context of a selected
data record. The notification source selection list and data column are therefore not needed and are not
displayed in this implementation of the Notification Center page.

3. In the rule column, locate a notification rule that matches your data monitoring requirement and click
Follow.

4. You are now following a notification based on the selected rule, in the context of the selected record. You
can verify this without leaving the current window. Click Home at the top right to display your Epicor Social
Enterprise Home page and begin navigating your account on the Epicor Social Enterprise site.

5. Click your User ID at the top of the Home page to open your User Profile page.

780 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

6. Click the Notifications tab and verify that the notification that you enabled is listed.

You will receive a data notification message in your My Stream column whenever a change occurs that matches
the criteria in the notification rule.

Working in Private Messages and Private Groups

Use private messages and private groups to take communication with other Epicor Social Enterprise users out of
the public message stream. This section describes how to exchange private messages with another user, and
how to join and communicate with a private group.

Post a Private Message to Another User

Private message postings are viewable only by the sender and recipient and will not be seen by their followers.
Your private message activity can be viewed in a separate column on your Home page or in a separate tab on
your User Profile page.

1. From the Epicor Social Enterprise Home page toolbar, choose Users to display the Users page.
You also can, in a message, click the user's Image or User ID to display their thumbnail profile, and then
click Send Private Message.

ICE 3.0 | 10.0.700 781


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

2. On the Users page, locate the recipient's listing and click Send Private Message to open the Send a
private message dialog box displays with recipient's User ID in the To field. .

3. Compose your message.


As with public messages, @mention and #hashtag are supported in the message field, and the options are
there for including a file attachment or link to external content.

4. Optionally, click the Send copy of message via email option to post the message both to the recipient's
private message activity and to the primary email address associated with their user account. This option
overrides the recipient's current email options in their user profile.

5. Click Send Private Message to complete the action.

6. The recipient can choose Private Messages on the Home page toolbar to display a column of their private
message activity, including the message you just sent.

782 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

Notice that the Private Messages icon is highlighted, indicating that the recipient has private message activity
waiting for them to view.

Locate and Join a Private Group

A private group is limited to users who have been accepted for membership by the group owner. You can request
to join any private group. Once a member, you will begin seeing messages from the group in your message
activity. Only group members can view message postings to a private group.

Private groups are not available in Epicor Social Enterprise


standard edition. An Epicor Social Enterprise premium edition
license is required to enable private groups.

1. From the Epicor Social Enterprise Home page toolbar, choose Groups to display the Groups page.

ICE 3.0 | 10.0.700 783


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

2. On the Groups page, locate the group's listing and click Request to Join.

3. The link changes to Cancel Request and your request now appears as a pending action in the group owner's
account.
If the group owner later rejects your request, the link will return to Request to Join.

4. When the group owner accepts your request, the Cancel Request link changes to Leave and you now are
group member.
Once you are a group member, the listing's Group ID becomes an active link to the Group Detail page,
where you can see information about the group's identity, message activity, and membership.

5. Once you are a group member, the listing's Group ID becomes an active link to the Group Detail page,
where you can see information about the group's identity, message activity, and membership.

6. Message postings to the group now are included in your My Stream column.

784 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

Post a Message to a Private Group

A message posted to a private group is visible only to the group's members. You must be a group member to
post a message to a private group.

1. For this example, a member of the Manager Forum private group clicks the Group ID in a message to the
group and chooses Post Message in the group thumbnail profile.

2. A message to the group is composed.


As with messages to public groups, @mention and #hashtag are supported in the message field, and the
options are there for including a file attachment, link to external content, or a reference to an ERP data
resource.

3. Click Post Message to complete the action.


The message displays in the My Stream columns of all group members.

ICE 3.0 | 10.0.700 785


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

4. In the new message, the group member clicks Group ID, and choose Messages in the group thumbnail
profile.

5. A column of current message activity for the group opens. Keep in mind that access to the group's messages
is limited to group members

Interacting with the Message Stream via Email

This section describes the options for using email to monitor the message stream and post messages.

To post via email, there must be a POP3 mail server connection


configured for the Epicor Social Enterprise site. To receive email,
there must be an SMTP mail server connection configured for
the Epicor Social Enterprise site. These connections are the
responsibility of the Epicor Social Enterprise administrator.

786 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

Post a Message to Your Followers from Your Email

The Post public messages email option in your profile properties enables you to post a public message to your
followers from the primary email account associated with your user profile.

1. On the Epicor Social Enterprise Home page, click your User ID at the top of the page to open your User
Profile page.

2. To check the current configuration of your email options, click the Email Options tab.

3. To adjust your email options, click Edit Profile to open the Edit Profile dialog box.

ICE 3.0 | 10.0.700 787


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

4. In the Email field, verify the primary email address associated with your account.

5. Under Email Options, ensure that Post public messages is selected.

6. It also is recommended that you select the Receive verification of email postings option, which serves
as both a confirmation and alert whenever an email posting occurs that is attributed to your account.

7. Click Save Changes at the bottom of the page.

8. You now can use the primary email account associated with your user profile to compose and send an email
to the Epicor Social Enterprise email address for incoming emails (POP3 address, obtain from your Epicor
Social Enterprise administrator).

788 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

9. The email is posted as a public message from you to your followers. Check your My Stream column to
verify the posting.
When you have Receive verification of email postings enabled in you user profile, you also will receive
an email verification of the posting.

Post a Message to a Group from Your Email

The Post public messages email option in your profile properties enables you to post a message to a group
from the primary email account associated with your user profile.

1. Your user account Email Options that are required for posting to groups were adjusted in the previous
example where you set up to post to your followers. To verify these settings, on the Epicor Social Enterprise
Home page, click your User ID at the top of the page to open your User Profile page.

ICE 3.0 | 10.0.700 789


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

2. To check the current configuration of your email options, click the Email Options tab.

3. Using the primary email account associated with your user profile, enter the group's Group Name or Group
ID on the subject line and compose the message. Keep in mind the following:
• The subject line can contain only one Group Name or Group ID and no additional text. If there is any
text on the subject line other than the Group Name or Group ID, Epicor Social Enterprise will not be able
to find the group.
• To ensure delivery to the target group, the Group Name or Group ID must be correct. It is important that
you verify the value you have entered before sending the email.

4. Send the email to the Epicor Social Enterprise email address for incoming emails (POP3 address, obtain from
your Epicor Social Enterprise administrator).

5. Epicor Social Enterprise receives the email and posts a message as follows:
• When a Group Name or Group ID is located that matches the value on the email subject line, the message
is posted as a message from you to the group.
• When no match is found, the message is posted as a message from you to your followers.

790 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

Check your My Stream column to verify the posting. When you have Receive verification of email
postings enabled in you user profile, you also will receive an email verification of the posting.

Receive a My Stream Daily Email Digest

Enable the Receive My Stream daily digest email option in your profile properties to have a daily digest of
your My Stream activity sent to the primary email account associated with your user profile.

1. On the Epicor Social Enterprise Home page, click your User ID at the top of the page to open your User
Profile page.

2. To check the current configuration of your email options, click the Email Options tab.

3. To adjust your email options, click Edit Profile to open the Edit Profile dialog box.

ICE 3.0 | 10.0.700 791


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

4. In the Email field, verify the primary email address associated with your account.

5. Under Email Options, select Receive My Stream daily digest and then click Save Changes at the bottom
of the page.

Digests will be sent every 24 hours, shortly after midnight, using the time on the Epicor Social Enterprise server.

Receive Private Message Email Alerts

Enable the Receive private message alerts email option in your user profile properties to have your private
messages sent to the primary email account associated with your user profile.

1. On the Epicor Social Enterprise Home page, click your User ID at the top of the page to open your User
Profile page.

792 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

2. To check the current configuration of your email options, click the Email Options tab.

3. To adjust your email options, click Edit Profile to open the Edit Profile dialog box.

4. In the Email field, verify the primary email address associated with your account.

5. Under Email Options, select Receive private message alerts and then click Save Changes at the bottom
of the page.

Email alerts that you have private message activity will be posted to your primary email account.

ICE 3.0 | 10.0.700 793


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

Receive Mention Email Alerts

Enable the Receive Mention Alerts email option in your user profile properties to receive email alerts when you
are mentioned (@YourUserID) in message postings. Alerts are sent to the primary email account associated with
your user profile.

1. On the Epicor Social Enterprise Home page, click your User ID at the top of the page to open your User
Profile page.

2. To check the current configuration of your email options, click the Email Options tab.

3. To adjust your email options, click Edit Profile to open the Edit Profile dialog box.

794 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

4. In the Email field, verify the primary email address associated with your account.

5. Under Email Options, select Receive Mention Alerts and then click Save Changes at the bottom of the
page.

Alerts will be posted to your primary email account. You will receive an alert only if you are authorized to see
the message that contains the mention. You can expect to receive alerts for mentions in public messages and
messages to public groups, but not for private messages between other users or messages to private groups in
which you are not a group member. You will not receive alerts for mentions in data notification messages.

Using BPM Directives to Post Data Notifications

This section describes how Business Process Management (BPM) method directives and data directives can be
designed to include automated posting of data notification messages to Epicor Social Enterprise.
In the BPM directive workflow, a Notify Me action sends message request to Epicor Social Enterprise when
triggered by other workflow actions. At a high level, setting up includes the following:
• In Epicor Social Enterprise, a notification profIle must exist for the Epicor ERP application database table on
which the directive will be based.
• In the Epicor ERP application, there must be an active connection to the Epicor Social Enterprise website.
• In the Epicor ERP application, the Method Directive or Data Directive Maintenance program and the BPM
Workflow Designer are used to create a directive that includes the Notify Me action and the action(s) that
will trigger it.
• In the Epicor ERP application, the first time the directive triggers a notification, Epicor Social Enterprise receives
the request and attempts to match it to an existing notification profile and rule. When a matching rule is
found, it is updated if necessary. When no matching rule is found, a new rule is created. This ensures that a
notification profile and rule are available for users to select when creating and following notifications.
• In Epicor Social Enterprise, users must set up and begin following a notification based on the notification
profile and rule. Data notification messages will be posted to the Epicor Social Enterprise message stream
whenever the directive's Notify Me action is triggered. Users will see those messages in their My Stream
column if they have set up and are following a notification.

ICE 3.0 | 10.0.700 795


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

• Users can set up to follow notifications and monitor their My Stream activity either by logging directly into
the Epicor Social Enterprise website or by accessing Epicor Social Enterprise from within the Epicor ERP
application client.

Create a Standard Data Directive with a Notify Me Action

Create a BPM standard data directive workflow that includes a Notify Me action. Configure the Notify Me action
to send data notification messages to Epicor Social Enterprise when triggered by other actions in the data directive.
This procedure describes the work required to set up and begin following data notifications generated by a BPM
standard data directive. While the procedure is based on simple examples, it is assumed that you have a plan for
what data changes you want to monitor and the type of workflow action(s) that will trigger the Notify Me action.

The setup procedure for a BPM method directive is much like


the procedure described here for a data directive. For example,
you can create a method directive for the Customer.Update
method that sends an e-mail to a sales manager when a
customer's credit limit is changed. When working with a
method directive, the Notify Me action can only be used if the
method includes at least one table parameter (either input or
output).

Verify the Notification Profile

In Epicor Social Enterprise, ensure that a notification profile exists for the Epicor ERP application database table
on which the data directive will be based.

The Notify Me action in your BPM directive will not work if


your Epicor Social Enterprise website does not already include
a notification profile for the application database table that
you intend to monitor.

1. On the Epicor Social Enterprise Home page toolbar, choose Menu > Notification Center to display the
Notification Center page.

796 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

2. For Notification Source, ensure that the selected notification source corresponds to your Epicor ERP
application and database.

3. In the data (left) column, select Notification Profiles.

4. Use the search field to locate the notification profile name corresponding to the application database table.
The Customer notification profile is used for this example.

5. If needed, create a notification profile. To begin, click the actions menu icon at the top of the rule (right)
column.

6. From the menu, choose Create New Notification Profile.

ICE 3.0 | 10.0.700 797


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

A detailed procedure is provided in the Epicor Social Enterprise online help. To create a notification profile,
you must be an Epicor Social Enterprise administrator.

Create the Data Directive

Create a new BPM standard data directive.

1. Navigate to Data Directive Maintenance.


Menu Path: System Management > Business Process Management > Data Directives Maintenance

This program is not available in the Epicor Web Access.

2. Use the Table field to find and select the table for the data directive.
This example is based on the Customer table.

798 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

3. Navigate to the Standard Directives > Detail sheet.

4. Click the Down Arrow next to the New button; select New Standard Directive.

5. Enter a Directive Name and press Tab.

6. Click Design to open the BPM Workflow Designer.

ICE 3.0 | 10.0.700 799


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

Configure the Notify Me Action

Configure the Notify Me action that will post data notification messages to the Epicor Social Enterprise message
stream when the data directive executes.

1. Working in the BPM Workflow Designer, select the Notify Me icon in the left pane and drag it to the Design
area.

2. Select the Notify Me action to display its Action statement at the bottom of the design area.

3. Click <TableName> (Customer in this example; it is the data directive table name by default) in the Action
statement to open the Specify Notification Profile and Key Tag dialog box.
This dialog box is used to choose the notification profile, company, and key values that will be applied as
the context for notification messages. There are two general approaches:
• Use the default profile selection, which is the notification profile associated with the directive table, and
then choose a company and key value to be applied when the action triggers.
• Alternatively, choose a different notification profile, company, and key value. This allows some flexibility
in determining the notification profile that is applied as the context for an alert message.

4. For Profile in this example, use the default choice, which is the Customer notification profile associated
with the directive table. You could choose any of the notification profiles that currently exist on your Epicor

800 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

Social Enterprise website. KeyTag displays the key tags for the selected notification profile. This field is
read-only. Keytag values are set in the next step.

5. For Company, and Key Values in this example, define the values that will be applied in the key tag of the
selected notification profile.
In both fields, enter a value that will be applied or right-click and choose from the following actions for
setting up value substitution from the directive table:
• Call Context - Choose to set up substitution of the value in a selected BPM Call Context field.
For this example, in Company, choose callContextClient.CurrentCompany to apply the current company.
• Field Query - Choose to open the Select Table Field(s) dialog box and set up substitution of the value
from a selected field in the directive table. Selection is limited to one field.
For this example, in Key Values, choose Field Query and set up a query that use the field name that you
see in the read-only KeyTag field.
• Table Query - You also could choose to open the Select Table Field(s) dialog box and set up substitution
of values from multiple fields in the directive table. The default behavior of a table query is to insert a
comma-delimited list of the selected table field names followed by a comma-delimited list of the
corresponding table values.
Table Query is not used in this example.

6. Click OK to save your adjustments.

7. Click designed in the Action statement to open the Define Notification Message Template dialog box.

ICE 3.0 | 10.0.700 801


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

8. Use Name and Description to identify the template and its purpose.

9. Use Title and Content for the message title and message content.
In both fields, enter the text that will appear in messages or right-click and choose from the following actions
for setting up value substitution:
• Call Context - Choose to set up substitution of the value in a selected BPM Call Context field.
• Field Query - Choose to open the Select Table Field(s) dialog box and set up substitution of the value
from a selected field in the directive table. Selection is limited to one field.
For this example, a field query is used to insert the name of the customer record that has changed.
• Table Query - Choose to open the Select Table Field(s) dialog box and set up substitution of values
from multiple fields in the directive table. In the message, the default behavior of a table query is to
insert a comma-delimited list of the selected table field names followed by a comma-delimited list of the
corresponding table values.

10. Click OK to save the message template.


When a data notification message is posted in Epicor Social Enterprise, the message title and content defined
in this dialog box will be combined with a message ID of Data and an image that is associated with data
notification messages. The image is not set in this dialog box. It is either the Epicor Social Enterprise default
for data notification messages or an image that has been selected in the configuration of the notification
rule in Epicor Social Enterprise.

11. The Action Statement configuration is complete and includes the new message template name.

802 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

Connect the Directive Actions and Enable the Directive

To complete the data directive, connect the Notify Me action to the triggering action.

1. If not already done, create and connect the data directive action(s) that will trigger the Notify Me action.
The BPM Workflow Designer provides a lot of flexibility in defining the trigger conditions. Possibilities range
from a condition monitor to custom code. In this simple example, a Condition action has been configured
that monitors the true/false state of a selected field in the data directive table (a field corresponding to a
check box option in the application for example) and triggers the Notify Me action when it is TRUE that the
field changes from TRUE to FALSE.

2. In the Design area, connect the Notify Me action to the trigger action.
For the Condition action example in the previous step, select the TRUE connection on the Condition action
and drag it to a connection on the Notify Me action.

3. Click Save and Exit to close the BPM Workflow Designer and return to Data Directives Maintenance.

ICE 3.0 | 10.0.700 803


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

4. To activate the data directive, click the Enabled checkbox.

5. Click Save and then close Data Directive Maintenance.

Test the Data Notification

Generate an initial data notification message by causing the data directive to trigger the Notify Me action.

1. In the application program that is using the data directive table, retrieve a record, change the property that
will toggle the field value, and save the record.
For this example, a change is made to a Customer record.

804 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Epicor Social Enterprise | Chapter 13

2. Save the record and exit the application program.


The first time the data directive triggers a notification, Epicor Social Enterprise receives the request and
attempts to match it to an existing notification profile and rule. The matching notification profile must exist.
If a matching rule is found, it is updated if necessary. If no matching rule is found, a new rule (rule base on
external condition) is created.

If a matching notification profile cannot be found on your


Epicor Social Enterprise site, the Notify Me action will not
work. There must be an existing notification profile
corresponding to the data directive table.

3. In Epicor Social Enterprise, navigate to the Notification Center page.

4. For Notification Source, ensure that the selected notification source corresponds to your Epicor ERP
application and database.

5. In the data (left) column, select Notification Profiles and then use the search field to perform a search on
the profile name corresponding to the monitored application database table.
For this example, Search for Customer, which is the profile name that you verified earlier in this example.

6. In the list, select the notification profile.

7. In the rule (right) column, either use the search field to perform a search on the rule name (the message
template name from the data directive) or leave the search field blank and press Enter to generate a list of
all notification rules relating to the selected notification profile.
In this example, the new rule Customer Change was generated and added to the list.

8. Select the rule and click Follow.


Notification setup is complete.

9. Go to your Home page and verify that the initial data notification message is present in your My Stream
column.

ICE 3.0 | 10.0.700 805


Chapter 13 | Epicor Social Enterprise Epicor ICE 3.0 Tools User Guide

The message was already present in the Epicor Social Enterprise message stream. It now is visible in your
My Stream column because you enabled the notification following.

A new data notification message will be posted to the Epicor Social Enterprise message stream whenever a data
change occurs that causes the BPM data directive to trigger the Notify Me action. Other users who have set up
to follow notifications based on the notification profile and rule also will see the message in their My Stream
column.

806 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Index

Index
.net process, c# 606 baq report designer, SSRS baq report options 242
.net process, vb.net 608 baq report, about BAQ and report datasets 239
baq report, customize 262
32bit vs 64bit odbc 229 baq report, standard interface 240
baq search 129
baq special constant 51
A baq specified expression 47
base cube query (create) 461
access and use an advanced search 289 bpm action process 723
access new dashboard 406 bpm async processing log 724
action processing 722 bpm base elements 481
activate a baq zone 153 bpm data form directive 590
activate predictive search functionality 314 bpm data form directive, bpm data form action 590
activate quick search functionality 272 bpm data form directive, design email template 593
add a method code 548, 563 bpm data form directive, sent email action 592
add a post-processing directive 557, 560 bpm data form directive, test form 596
add a query to the dashboard 329 bpm data forms 584, 585, 586, 587, 588, 589
add an action 559, 562, 573 bpm holds 486
add another condition 534 bpm holds – how to use 486
add data tags to a record 298 bpm server logging 734
add data tags to records in a grid 300 bpm tracing 731
add first action 533 bpm update processing 113
add function call parameter values 55 bpm workflow designer 500
add new definition 217 browser cache, cache 430
add second condition 541 build and deploy a dashboard to the main menu 403
advanced bpm processing 117, 661 business activity query (baq) 458
advanced group by clause editor 86 business activity query searches 285
advanced search with range, add 362
advanced search, conduct 324
advanced searches 289 C
aggregate data using pivot 57
analyze 120 .net assembly 601, 603
analyze and test query 120 calculated field 76, 77, 82, 84
apply table filter 219 baq constants 84
asp page generation 136 example one 76
assign user privileges 410 functions 77
attach data tag 515 operators 82
attach hold 517 call bpm data form 504
authorization 325 call SC Workflow 505
auto print 518 callers 504
availability of workflow elements 503 case studies 155, 526
change log 519
chart settings 357
B chart settings, modify 357
chart view, add to dashboard 354
baq application server settings 150 client tracing log 732
baq best practices 153 code performance 614
baq info zones 152 code performance, collect rows 615
baq report designer 239 code performance, correct locking 617
baq report designer, create new report, add report 244 code performance, each statement 617
baq report designer, create new report, add to application menu code performance, field lists 614, 616
258 code performance, join multiple tables 616
baq report designer, create new report, design in Report Builder code performance, joined rows 615
251 code performance, select one row 616
baq report designer, create new report, initial test 248 code performance, sort order 617
baq report designer, create new report, option fields 247 code performance, table joins 614
baq report designer, create report 243 column mapping 114

ICE 3.0 | 10.0.700 807


Index Epicor ICE 3.0 Tools User Guide

column select 65 dashboard browse, add to dashboard 380


combine results sets using union 179 dashboard creation 327
common table expression query 201 dashboard developer privileges, assign 326
company and site, change 422 dashboard modification 388
complete the asp page 139 dashboard title bar, modify 385
condition 507 dashboard URL query phrase subscribers 436
configure workflow parameters 110 dashboard user notes and tech notes 384
context menu options 282 dashboard user notes, tech notes, update 384
copy query 131 dashboard, copy 388
create a calculated field 72 dashboard, navigate 322
create a named search 290 dashboard, test, deploy as UI application 403
create a new directive 495 data baq 477
create a quick search 272 data dictionary viewer 19
create a quick search – criteria 276 data dictionary viewer – field view 20
create a quick search – detail sheet 273 data dictionary viewer – table view 19
create an executive dashboard - overview 459 data dimensions (build baq against) 472
create and deploy mobile device dashboards 410 data directive, custom global alert, action sequence 646
create closed orders subquery 175 data directive, standard global alert, action 624
create cte subquery 201 data directive, standard global alert, action sequence 626
create group by expression 87 data directive, standard global alert, condition 622
create intersect subquery 197 data directive, standard global alert, create 621
create invoice view subquery 187 data directives 490
create new dashboard 436 data tag maintenance 302
create new datasource type 216 data tag searches 298
create new filter group 217 data tags and bpm directives 302
create open orders subquery 172 database viewing tools 19
create order view subquery 183 debugging using visual studio 736
create predictive search 318 default search interface 267
create query parameter 190, 203 define basic processing details 166
create service connect workflow 110 define business activity query attributes 26
create subquery 96 define custom action 141
create the directive 498 define main subquery 93
create toplevel BAQ 180, 194 define paramater 142
create toplevel subquery 176, 211 define report parameters 575
create URL view 437 define source baq 315
current date + specified number of days 52 define the query (labor summary) 155
custom actions 493 define the query (not clocked out) 160
custom code directive 579 define updatable fields 104
custom code directive, create directive 579 dependent directive 526
custom code directive, test directive 582 dependent directives 525
custom global alert, alert action 643 design external business activity query 237
custom global alert, alert condition 641 developer mode, switch 327
custom global alert, create data directive 639 dimension baq 475
custom global alert, refine shortcut link file 638 dimension baq and executive query (create) 469
custom global alert, test alert 647 dimension details baq 476
custom global alert, test shortcut link 648 directive export 725
customer contact baq, activate processing 687 directive import 726
customer contact baq, add ship to table 677 directive management 724
customer contact baq, add tables 673 directive scope 483
customer contact baq, define updatable fields 686 directive update 727
customer contact baq, link role code table 675 directives 489
customer contact baq, query 673 disable bpm 740
customer contact baq, select columns 681 display a quick search 281
customer contact baq, sort order 684 display fields 65
customer contact baq, test 689
customer contact updatable baq 673
customize element block 502
E
enable baq search fields 286
D enable external datasources 235
enable post directive 520
dashboard (create and deploy) 478 enternal method logic 605
dashboard as advanced search, enable 387 enterprise search 305

808 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Index

enterprise search filter options 312 export 399


Epicor Mobile Access, set up, configure 420 export and import dashboards 399
epicor sharepoint publisher 440 export datasources 227
Epicor Social Enterprise, about 742 export query data 148
Epicor Social Enterprise, accessing 742 export query definition 133
Epicor Social Enterprise, accessing, Epicor ERP classic mode 752 extend first condition 531
Epicor Social Enterprise, accessing, Epicor ERP home page toolbar extend second condition 538
742 external business activity queries 215
Epicor Social Enterprise, accessing, Epicor Social tile 748 external datasource maintenance 215
Epicor Social Enterprise, BPM directives, Overview 795 external datasource metadata maintenance 231
Epicor Social Enterprise, data directive example 796 external method, attach 609
Epicor Social Enterprise, data directive, connect actions 803 external method, build method 609
Epicor Social Enterprise, data directive, create directive 798 external method, deploy 609
Epicor Social Enterprise, data directive, notification profile 796 external method, test method 613
Epicor Social Enterprise, data directive, notify me action 800 external methods 598
Epicor Social Enterprise, data directive, test 804
Epicor Social Enterprise, email message 786
Epicor Social Enterprise, email message, daily digest 791
F
Epicor Social Enterprise, email message, mention alerts 794 field help 21
Epicor Social Enterprise, email message, post to followers 787 field mapping 463
Epicor Social Enterprise, email message, post to group 789 filter, apply, subscribe, published order, line number 378
Epicor Social Enterprise, email message, private 792 flow chart 507
Epicor Social Enterprise, home page and toolbar 744
Epicor Social Enterprise, message, @mention 761
Epicor Social Enterprise, message, #hashtag 763 G
Epicor Social Enterprise, message, ERP resource reference in 767
Epicor Social Enterprise, message, follow user 753 gauge view, add to dashboard 368
Epicor Social Enterprise, message, post from Epicor ERP 764 general principles 500
Epicor Social Enterprise, message, public stream 752 general properties 102
Epicor Social Enterprise, message, recommend 769 general query properties, modify 334
Epicor Social Enterprise, message, reply 756 global alert 618
Epicor Social Enterprise, message, to followers 754 global alert data directive 621
Epicor Social Enterprise, notification, following ERP data changes global alert groups 633
774 global alert setup 618
Epicor Social Enterprise, notification, notification center page global alert setup, email 618
774 global alert setup, shortcut link, base 620
Epicor Social Enterprise, notification, on data record 776 global alert, setting up standard 627
Epicor Social Enterprise, notification, on notification profile 777 global alerts, setting up custom 638
Epicor Social Enterprise, notification, on selected Epicor ERP record grant rights to modify a query 135
779 grid properties - add image column to grid based on rule, modify
Epicor Social Enterprise, private group 783 351
Epicor Social Enterprise, private group, post message 785 grid properties - add rule to highlight cells, modify 348
Epicor Social Enterprise, private message 781 grid properties - change grid display, modify 341
Epicor Social Enterprise, private messages and groups 781 grid properties, modify - filter, apply to grid 345
Epicor Social Enterprise, public group, join 757 grid properties, modify, display columns, change, group by,
Epicor Social Enterprise, public group, post message 759 summarization in grid, enable 338
Epicor Social Enterprise, search 770 groups 724
Epicor Social Enterprise, search, message stream 770
Epicor Social Enterprise, search, notification source data 772 H
Epicor Social Enterprise, user profile page 747
ESP dashboard, adjust 449 hold type maintenance 485
example two 468 hold type maintenance – how to use 485
execute custom code 506 holds 484
execution settings 143 hot key searches 270
executive dashboard creation 459 how bpm works 493
executive dashboard display (create baqs) 475 how executive dashboards work 456
executive dashboard example 455 how it works 491
executive dashboard setup 457
executive query 460
executive query (limitations) 460
I
executive query (what it adds) 460 import 401
executive query examples 467 import compatibility 727

ICE 3.0 | 10.0.700 809


Index Epicor ICE 3.0 Tools User Guide

import datasources 228 process set (save to) 465


import query definition 134 process set (schedule) 474
import user rights 727 process set (verify) 479
intersect and except subquery type 194 process set maintenance 458
Invoke external method 506 programming action signatures 606
programming interface generator form 601
publish 377
L publish and subscribe functionality 375
labels 515
labor summary baq 155 Q
language, change 424
locate orderhed table 569 query fields, publish 377
locate the object of the directive 495 query properties - publish to title bar, modify 335
query properties – apply filters to query, modify 336
query, add 330
M quick search tab 281
method arguments 599 quick searches 271
method directives 489
mobile dashboard device, deploy 416 R
mobile dashboard, launch 418
mobile dashboard, test on mobile device 430 raise exception 521
mobile device dashboard, create 411 recompile a directive group 729
mobile menu maintenance 417 remove data tag 516
mobile navigation, define 413 remove holds 518
modify field properties 234 retrieve external tables 232
modify query properties 333 review bpm holds 488
multi threaded save 390 run bpm designer 140

N S
named search details 293 schedules 457
named searches 290 secondary query, add to display line item shipment information
named searches – auto load search 296 375
named searches – auto populate data 294 select and create columns for display 157
new business activity query 26 select baq display columns 178
new grid view, add to dashboard 345 select columns 173, 176, 205, 209
new web part page, create 440 select columns for display (not clocked out) 162
not clocked out baq 160 select columns set operator type subqueries 68
notify me 520 select display columns - toplevel cte innersubqueries 65
select value(s) of field from specified subquery 53
send e-mail 521
O service connect workflow 108, 598, 604
operation specific filters 54 set bpm data field 523
other 518 set by query 524
override search options 297 set field 524
setters 523
show message 522
P smart client enterprise search 307
sort order 91
perform a data tag search 301 specified constant 46
phrase build - add table 28 specified parameter 47
phrase build - function call parameters 55 standard execution flow 494
phrase build - pivot subquery for clause 57 standard global alert, alert group 633
phrase build – additional controls 29 standard global alert, alert group, activate 634
phrase build – filter values 45 standard global alert, alert group, add person to group 635
phrase build – subquery criteria 42 standard global alert, alert group, assign person to team 636
phrase build – table criteria 37 standard global alert, alert group, create group 635
phrase build – table list 36 standard global alert, alert group, test 637
phrase builder – table relations 31 standard global alert, specific recipient 628
primary directive 526 standard global alert, specific recipient, activate 628
process link properties 373 standard global alert, specific recipient, sales order 630
process link, add for customer entry 373

810 ICE 3.0 | 10.0.700


Epicor ICE 3.0 Tools User Guide Index

standard global alert, specific recipient, test 631 updatable baq rights 652
standard global alert, specific recipient, work force 629 updatable baq, analyze 667, 670
standard system dashboards 321 updatable baq, fields 657
standard template workflow 111 updatable baq, properties 656
subquery list 98 updatable baq, update processing 661, 663
subquery options 92 updatable baqs, regenerate 693
subscribe 378 updatable business activity query 100
supplier record updatable baq 164 updatable dashboards 695
support for multiple dirty rows 525 updatable dashboards, contact grid properties 703
system queries 24 updatable dashboards, create 695
updatable dashboards, customer grid properties 699
updatable dashboards, customer query 696
T updatable dashboards, test 707
table relations - manually connect tables 34 updatable dashboards, tracker view 705
table relations - predefined dictionary relations 32 updatable dashboards, updatable contact query 700
test a quick search 280 updatable field editor 105
test predictive search 320 updatable query settings 102
test the baq 179, 212 updatable query, set up 654
test the bpm 568, 576 update a directive group 728
test updatable query 122 update and create supplier records 167
the chart properties window 354 Update ESC Credentials 731
the chart view 354 update processing 107
the dashboard browse 380 URL link, add to display customer website 371
the gauge properties window 368 url/xslt properties 370
the gauge view 368 use a baq search 287
the general sheet 26 use auto print action 569
the grid properties window 338 use except subquery type 200
the grid view 338 use table list 234
the process link 372 user account maintenance 305
the query builder 28 user account permissions 651
the tracker properties window 360 user maintenance 482
the tracker view 359 user rights 100
the url/xslt view 370 user rights, advanced bpm 598
theme, modify 426 using business process management 494
tracker view, add for advanced search 360 using inner subqueries 172
troubleshooting actions 731
V
U view system queries 24
updatable baq 652, 653 views, arrange within SharePoint page 447
updatable baq method directives 490, 710 views, reusing 392
updatable baq method directives, actions 711
updatable baq method directives, default data 711 W
updatable baq method directives, define action 716
updatable baq method directives, get methods 713 web client enterprise search 310
updatable baq method directives, post-processing directive 714 web dasher 452
updatable baq method directives, publish data 711 web page, modify 443
updatable baq method directives, select action 715 where-used 128
updatable baq method directives, test) 719

ICE 3.0 | 10.0.700 811


Index Epicor ICE 3.0 Tools User Guide

812 ICE 3.0 | 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.

Вам также может понравиться