Alert Intelligence Xi 660
Alert Intelligence Xi 660
Table of Contents
Table of Contents ..................................................................................................................................................... 1
Appendix ................................................................................................................................................................. 62
Reference Guide for Screen Fields and Buttons .................................................................................................. 62
EVENT ADMINISTRATION SETUP SCREEN ........................................................................................... 62
- DATA GRID FIELDS .................................................................................................................................. 62
EVENT MAINTENANCE SCREEN ............................................................................................................. 63
- DATA GRID FIELDS .................................................................................................................................. 63
- MODE BUTTONS ....................................................................................................................................... 64
EVENT MESSAGE BOX MAINTENANCE SCREEN ................................................................................ 65
- DATA GRID FIELDS .................................................................................................................................. 65
MANUAL EVENT LAUNCH SCREEN ....................................................................................................... 66
- DATA GRID FIELDS .................................................................................................................................. 66
EVENT AND RECIPIENT LOG SCREEN ................................................................................................... 68
- DATA GRID FIELDS .................................................................................................................................. 68
- MODE BUTTONS ....................................................................................................................................... 69
PURGE EVENT LOG SCREEN .................................................................................................................... 69
- FORM FIELDS ............................................................................................................................................. 69
EVENT DETAILS SCREEN .......................................................................................................................... 69
- FIELDS AND BUTTONS ............................................................................................................................ 69
EVENT EMAIL MAINTENANCE SCREEN ................................................................................................ 75
- FIELDS AND BUTTONS ............................................................................................................................ 75
EVENT FILTER MAINTENANCE SCREEN ............................................................................................... 76
- FIELDS AND BUTTONS ............................................................................................................................ 76
MANUAL JOINS SCREEN ........................................................................................................................... 78
- DATA GRID FIELDS .................................................................................................................................. 78
- MODE BUTTONS ....................................................................................................................................... 78
MY EVENT SUBSCRIPTIONS SCREEN ..................................................................................................... 79
- FIELDS AND BUTTONS ............................................................................................................................ 79
Course Overview
Objective
The attendee will be able to:
• understand the purpose and uses of AI and be able to explain the concept of AI to other
people their organisation;
• create, maintain, test, troubleshoot and activate AI events within PRONTO-Xi;
• understand the security features available within AI;
• setup and initiate scheduled events;
• understand and manage user and external subscriptions to events;
• read, analyse and purge (as necessary) the event log.
Prerequisites
The attendee should have completed the following training sessions.
• PRONTO-Xi Overview;
• Overview Training for System Administrators;
• PRONTO-Xi /System Administration.
It is helpful if the attendee has:
• a general understanding of general database concepts, that is, tables, records, fields,
insert/update/delete actions, and so on;
• some experience with how PRONTO-Xi works at the database level. Some familiarity with
the ‘Proman’ tool is beneficial;
• some experience with writing SQL queries/reports.
Audience
This course is intended for System Administrators who have the knowledge and understanding to
interpret business requirements for AI, and who will be responsible for creating suitable events as
required.
Assumptions
In this course, it is assumed that the attendee:
• has PRONTO-Xi version 660.0 or greater installed;
• has access to the administrative functions of the Alert Intelligence module;
• is familiar with the general navigation and functionality available within PRONTO-Xi.
Course Duration
This course will take a full day to complete.
Conventions
The following symbols are used in this guide.
Symbol Purpose
Indicates a sequence of steps to be followed.
Indicates that there is an alternative function(s) that can be used to obtain the
same result.
The images shown in this training guide are for illustrative purposes only and may not reflect the
settings relevant to your company’s dataset.
Alert Intelligence
PRONTO-Xi Alert Intelligence is a technology for capturing defined business events and then
triggering one or more predetermined actions in response to such events.
✭ Should an activation error be displayed on selecting any of the Alert Intelligence functions,
please contact your local Pronto Support Centre to obtain an activation key
An event can be defined as a specific change, or lack of change, in data in the PRONTO-Xi
database. Events can be captured by the following:
• Monitoring transactions on the PRONTO-Xi database, for example the entry of a purchase
order above a defined monetary value.
• Monitoring the passage of time, for example an invoice or delivery becoming overdue.
• Manually triggered from a custom program.
Relevant persons can be notified of captured events by a variety of methods, including:
• Displaying a message box.
• Sending an email, SMS or fax.
• Launching a workflow package or external application.
• Creating a log entry.
A range of pre-packaged event templates that can be used as-is or tailored to specific
requirements are provided. Full details of these are provided in the Appendix.
The recipients of a notification can be specified explicitly or selected dynamically, for example
via the details stored against a sales representative, customer or supplier. In addition, the content
of the notification can be tailored to the particular recipient and, in the case of emails, can
provide drill-backs to the relevant screen in PRONTO-Xi.
The Alert Intelligence module leverages the data triggers feature of the PRONTO-4GL
programming language to execute automatically generated code after a database record is
inserted, updated or deleted. For further information about data triggers refer to the Dictionary
Maintenance manual.
Additional features of the Alert Intelligence module include the ability to:
• Release events for self-service subscription by PRONTO-Xi users.
• Manually check for and process time-based (overdue type) events.
• Manually launch events using sample or actual data.
• View and customise the automatically generated database trigger code via an
[Advanced Edit] mode.
• Enhance the content of emails to include HTML mark-up or the results of an SQL query.
Implementation Prerequisites
Since the Alert Intelligence module creates custom database trigger code, the following System
Administration prerequisites apply. If you are not confident to perform any of the functions
described below, please work through them in consultation with your local Pronto Support
centre:
• a custom dictionary must exist;
For instructions on how to create a custom dictionary, refer to the ‘Dictionary Maintenance’
section of the Programming and System Utilities manual. This will involve the setting of the
‘PROUSRDICT’ environment variable.
• the CUS environment variable must be set, for example ‘/home/pronto/cus’ on UNIX, or
‘C:\program files\pronto\cus’ on Windows (local install or at main windows server), or
something like ‘\\psdsql01\pronto\cus’; This setup should be performed in consultation
with Pronto’s Technical Services Department.
• the path specified by the PROPATH environment variable must include $CUS.
To use the SMS alert feature of the Alert Intelligence module, the following additional setup
must be performed:
• SMS email encryption control.
Set up the SMS email server and contact your local Pronto Support Centre to obtain a public
and private key. These keys must then be entered into the Event Administration Setup (AI
M003) function.
Administration Prerequisites
To maintain the Alert Intelligence module, the administrator of this module needs to:
• have the required system permissions to access the functions within this module. At the
time of writing the reserved roles ‘P_S7’ and ‘P_AI_MAINT’ contained all necessary
functions to maintain Alert Intelligence.
• be familiar with general database concepts, that is, tables, records, fields,
insert/update/delete actions, and so on.
• have some experience with how PRONTO-Xi works at the database level, that is, the
contents of fields in key database tables, how often and when records are updated in the life
cycle of purchase orders, sales orders, and so on.
Defining filters for events is similar to writing SELECT statements in SQL reports so SQL query
writing experience is also beneficial.
To use the more advanced features of the Alert Intelligence module, it is useful for the
administrator to have experience in the following:
• writing SQL queries.
• writing and compiling programs in the PRONTO-4GL programming language.
Note: Editing the data trigger code is an advanced feature and assumes programming knowledge.
Think of a trigger as a tool constantly ‘watching’ a database table. When a PRONTO-Xi program
or a user comes along and is about to modify that table in some way, the trigger ‘asks’ “Is there
anything I should do here?” and then does whatever we’ve defined it to do. For example, if there
is an AFTER UPDATE trigger set, the trigger will then ‘call’ a program to run if it detects a
record was updated in a table. The called program may initiate a pop-up message box, send an
email or write an entry to a log file.
Alert Intelligence provides an easy to use Graphical User Interface (GUI) that builds in the
background:
• both the trigger
• and the code to run when that trigger is activated
For more information on Triggers, refer to the ‘Custom/User Data Triggers‘ page in the
‘Programming and System Utilities’ reference manuals.
Function/Role Purpose
P_AI_MAINT Use this role to configure a user as an “Event Manager” who has access
to the following AI functions:
Note: Having assigned this role to a user, the ‘not granted’ conditions
apply to the AI S001 and AI S002 security functions described below,
that is, the user initially has no access to database tables, and can only
access their own events.
AI S001 When not granted, the user can only view and maintain events owned by
them. The creator of an event is always the owner unless ownership has
subsequently been reassigned as described above.
• change the owner of an event using the [Owner] mode on the Event
Maintenance screen.
AI S002 When granted, every dictionary table is visible and selectable at all table
selection fields throughout the Alert Intelligence module.
(Access all When not granted, the user can only see and select those dictionary tables
Dictionary Tables) that have been granted within the Event Table Security (AI M007)
function.
AI M007 Use this function to define which dictionary tables a PRONTO-Xi user
can see and select when creating or maintaining events.
(Event Table Note: A user granted the AI S002 (Access All Dictionary Tables)
Security) function will have access to all dictionary tables regardless of any entries
relating to them that have been created in this function.
Example 1:
Requirement: There are two Event Manager users and each should only see their own events.
Solution: Assign each user the ‘P_AI_MAINT’ role, and configure their access to the dictionary
tables in the AI M007 function.
Example 2:
Requirement: There are two Event Manager users. Event Manager A (full-access user) is allowed
to define events based on any data within the company, and can maintain all existing events
regardless of who created them. Event Manager B (restricted-access user), however, is not
allowed to set up notifications relating to payroll data and can only maintain his/her own events.
Solution: In the user access control settings of Event Manager A, assign the ‘P_AI_MAINT’ role
and grant the AI S001 and AI S002 functions. No further setup is required. In the user access
control settings of Event Manager B, assign only the ‘P_AI_MAINT’ role and then create the
following entries in the Event Table Security (AI M007) function:
<user-id> * G
<user-id> pay* D
MENU PATH
Administration
System Administration
User and Company Maintenance
User Access Control (SYS M195)
2. Using the [Find] mode, confirm you have either the ‘S7’ (or S8 or S9) role. You may or may
not also have the ‘P_AI_MAINT’ role.
As long as you have the S7, S8 or S9 role, you can fully maintain all functions within AI.
MENU PATH
Alert Intelligence
Event Table Security (AI M007)
MENU PATH
Alert Intelligence
Event Administration Setup (AI M003)
Screen Fields
Please refer to the Appendix for a detailed description of the fields on this screen.
MENU PATH
Alert Intelligence
Event Maintenance (AI M001)
Note: The Owner column is located at the far right of the data grid and you may have to drag
the scroll bar across to see it.
2. Press F2 (Lookup Help) to select a different user and then click [OK].
The change is now reflected in the data grid. This person is the new owner and depending on
security settings may now be able to edit and maintain this event.
Step 3 of 5 Select Notification Method and Initiation Triggers. (After Insert, After
Update, After Delete, Scheduled Call etc)
Step 4 of 5 One of the following two pages is displayed depending on whether the ‘pre-
packaged event template’ or ‘design your own event’ option is selected in Step
1 of the wizard.
• Complete/Modify Filters
• Define Filters
Step 5 of 5 One of the following pages is displayed depending on which notification
method is selected in Step 3 of the wizard.
• Create Email Notification
• Create Message Box
• Create Short Message Service (SMS) Text
• Create FAX Cover Page Content
• Setup External Process (Workflow Package or Program)
• Create Event Log Text
Let’s have a look through one of the pre-packaged event templates to get a feel for what an event
looks like, and how they are set up. Each event in its most basic form needs to know 5 things
(this can vary for special applications of events):
• What database table am I monitoring?
• What action type am I monitoring for: Inserts, Updates or Deletes (or a combination of)?
• How do I ‘Alert’ you if the event has occurred?
• Under what conditions (filters) should I alert you?
• If an email/SMS, whom should I alert?
We are going to work through an example using a Pre-Packaged Event Template. We are going
to create a Message Box Alert. Actually creating the text displayed in the message box comes in
Step 5 of the wizard.
Exercise:
1. Select the [Entry Wizard] mode.
2. Select the Pre-Packaged Event Template option and then click [Next].
3. Highlight the Event entitled “Inventory Levels – Below Minimum”, then click [Next].
4. In the Notification Method options, select Display Message Box and then click [Next].
Notice the trigger type is ‘After Update’. This event is therefore monitoring for update
actions on the ‘stock-warehouse-detail’ database table.
The ‘stock-warehouse-detail’ object is where the Stock Balances, Min/Max stock levels and
Average Cost (to name a few fields) for each warehouse is kept
5. Review the Complete/Modify Filters page and edit the Event Description to include your
name:
Note: The ‘n’ and ‘o’ prefix are referring to monitoring the ‘n’ew and ‘o’ld values of the
fields in question.
Let’s examine the filters and the notation of these filters.
An ‘After Update’ trigger implies that we want to know when something has been updated or
changed. In this case we want to know if the stock balance has fallen below the present
‘Minimum Stock’ level defined in the stock-warehouse-detail object – this is stored under the
[Warehouse] mode in ‘Inventory Maintenance’
Here is an example record. The Minimum Stock Level is set to 5, and the quantity on hand is 8.
We want this event to ‘trigger’ if a stock movement causes the stock level to fall below 5.
You will see in the following style of notation in the Create/Modify Filters area:
Exercise: If you were to edit the Stock Warehouse record and increase the Min Stock level
to 10 (so the QOH is now LESS THAN the Min Stock Level) – would this event be
triggered?
This page of the Event Entry Wizard, which is accessed via the [Entry Wizard] mode of the Event
Maintenance function, is used to configure the message box that is displayed in the PRONTO-Xi
client of the user whose action launched the event.
So continuing on with the example:
1. Next you need to define what the message box will display. As well as text you can
optionally add fields from the stock-warehouse-detail table and/or fields from linked tables
(where a link exists)
a. Enter your own Message Box Title.
b. In the Text Area, we are going to create a message that tells us the:
i. Item code
ii. First line of description
iii. Stock level before and after the update
iv. Min stock level
v. Warehouse where the stock movement occurred
c. We will add the database fields using the field picker
2. Type in the first line: ‘Please review Item: ‘ and then using the [Field Picker] button append
the stock code field to the Message Box. It should now look like this:
3. Select the [Field Picker] tool and click [Other Table] to display the first line of the stock
description.
To display fields from other tables, you need to be able to join to the ‘Other table’. In some
cases auto joins may be formed between two tables; in other cases you will need to specify
the fields used to join the tables.
Note: Table joins, and ‘auto joins’ are further explained in the ‘Manual Table Joins’ section
later in this manual. Feel free to ask your trainer what an auto join means.
4. In the Table Picker dialog, select the [Find] mode, click the entry for the stock-master table
(which is where the stock description lines are stored) then click [Select].
5. In the list of fields for the stock-master table, highlight the stk-description field and select
the [Append Field] mode to append it after the ‘stock-code’ field.
Exercise:
1. Add a second line and third line showing the Quantity on Hand before and after the stock
movement and the warehouse it occurred in.
2. Click the [Preview] button to check the format of the message.
If you have prepared the message correctly, it should look (something) like this when you
later actually trigger it:
Add a second line and third line, describing and showing the Quantity on Hand before and
after the stock movement and the warehouse it occurred in. Preview your message box, and if
prepared correctly, it should look (something) like this when you later actually trigger it:
3. When you are satisfied with the message box, click [Create] in the Event Entry Wizard.
You are returned to the Event Details screen.
4. In the Event Status options, ensure that Testing is selected.
The status of all newly created events should default to ‘Testing’.
5. Click [OK] to return to the Event Maintenance data grid screen.
Next you will test the event using the manual launch feature.
To ensure the event is only triggered at the appropriate times, you should always test your
event thoroughly before setting it to active!
MENU PATH
Alert Intelligence
Event Maintenance (AI M001)
• ‘Launch’ Mode Button
Exercise Part 1:
1. Select the [Launch] mode to test the event you created.
2. Use the ‘Sample Test Data’ option and set up some test data to represent the New Stock
Level falling below the Old Stock Level, AD falling below the Min Stock level you
nominate.
Once you have set up your test data and click [OK], the following dialog box is displayed:
Note: This dialog box will appear anytime you edit an event and exit the Event Maintenance
screen, or when you click the [Generate] mode.
When you see this window, PRONTO-Xi is auto-generating the 4GL trigger code associated with
the event notifications that have been defined.
Once the test is complete, PRONTO-Xi prompts you to view the Event Log.
3. Click the [Event Log] button and check to see that an entry has been written to the event log,
which indicates that the event was successfully triggered.
4. Check the date/time stamps to verify the latest entry in the log.
Tip: A secondary way to test run an event is to select the ‘Event Log Only’ notification method
and set the status to Active. Now, every time the event is triggered an entry is created in the event
log and you can check that the event is functioning as desired. If all is okay after some testing,
you can set the Notification Method back to Email/Message Box etc.
Please review this section of the Training Manual as necessary to test Scheduled or External Call
Events, or to test your event against the Actual Table Data.
2. With the guidance of the trainer: Select the Inventory Console [INV.E005] screen and
review the current Minimum Stock level for the AI-TEST-ITEM (Warehouse Tab >
Warehouse Balances > Details).
3. Next have the trainer demonstrate how to adjust the stock level below the minimum stock
level using the ‘Adjust Item Levels’ function [INV.T011] and then perform your own stock
adjustment, sending the AI-TEST-ITEM below the Min Stock Level to test the operation of
your AI event. Did the Message Box work?
Next we will look at the Event Log and the details stored within it.
We will come back to revisit Event Maintenance again to explore the many other options available
when creating and maintaining events.
MENU PATH
Alert Intelligence
Event Log (AI E001)
Exercise: Find in the Event Log the Inventory Level Below Min Stock event you created and
triggered. Use the mode buttons to review the information stored against each mode button.
Tips:
• Remember as the Event Log fills up you can use Column Sorts and Filters to ‘Search’
through the log to find specific entries as required.
• You can always set an event with a notification method of ‘Event Log Only’. No email,
message box or SMS will be created, although if you have created the text for these
notification methods, it will still be saved if you ever decide to change the notification
method again. This way, the event can simply write to the Event Log (any event triggered
will ALWAYS write to the log), and you can periodically review it as necessary.
Recipient Log
Use this function to review recipient details for all events that have launched.
MENU PATH
Alert Intelligence
Recipient Log (AI E002)
MENU PATH
Alert Intelligence
Purge Event Log (AI M006)
On completion, the number of records that were deleted is confirmed in a message box. Note that
the record count may be higher than excepted as each line of notification text is considered a
record.
Note: In determining which event log entries to purge, this function takes into consideration the
following AI related security settings:
• whether the user has access to all events or only their own;
• whether the user has access to all dictionary tables or only those granted by the system
administrator.
Note: The following Event Log purge would result in ALL log entries for ALL events being
deleted prior to 31-DEC-07, but only for the DEM company.
MENU PATH
Alert Intelligence
Event Maintenance (AI M001)
This screen, which is accessed via the [Detail] mode of the Event Maintenance function, is used
to configure the details of an event, including the notification description, method, event status,
and the recipients of the event.
Note: The fields and buttons that are available in this screen depend on the selected Notification
Method.
Please refer to the Appendix for a detailed description of the fields and options on this screen.
MENU PATH
Alert Intelligence
Event Maintenance (AI M001)
[Detail] Mode Button
o [Define Text] Button
To prepare for this next exercise, select the Event Maintenance function, highlight the
‘Inventory Levels – Below Minimum’ event and click the [Detail] mode.
Exercise Part 1:
You will now change the existing event from a message box notification to an email
notification, and have a look at some of the recipient setup options.
1. As shown on the previous page – change the Notification Method to ‘Email Notification’ and
leave the ‘Method’ option set to ‘Direct’.
Tip: ‘Batch’ method: The batch queue to use to send batched emails is specified in the Event
Administration Setup function. Batching the sending of emails (if this is the notification
method) is a great idea, otherwise the user that (perhaps unknowingly) initiated the event,
will have their screen ‘freeze’ (actually it’s pausing) while the server sends the email.
2. Click the [Define Text] button as highlighted in the screenshot on the previous page.
A quick review of the fields on this screen are given below:
The message preview should look something like the following. The underlined text denotes
the drill back available on certain fields included in the email, in this case the item code and
warehouse code.
Note the bold text here from the <b></b> html tags
• Exercise Part 2:
• You will now assign a dynamic email address based on the warehouse. This approach is
meaningful when there are different warehouse managers who would manage the event of
an item falling below minimum stock.
1. On the Event Detail screen, click the [Dynamic] button.
The following screen is displayed:
2. Enter the two lines as shown above and have some discussion as to other possibilities with
the ‘Dynamic’ allocation of email addresses.
3. Press <Esc> to exit the recipient list and click [OK] on the Event Detail screen.
4. Go and manually trigger the event.
5. Check the [Event Log] button and find the latest entry for your event in your company.
6. Click the [View Text] mode to see if your email text was created as you entered it.
7. Next click [View Rendered Text] to see the HTML output of the email notification.
Feel free to ask your trainer about Code Based, User and External type recipient lists.
• Discussion Exercise:
For reference, if we were to have an event related to a sales order (‘sales-order’ database
table), we could use a ‘C’ (Customer) type data lookup and pass the customer code on the
sales order to Alert Intelligence. Alert Intelligence would then lookup the customer’s email
address at the time the event was triggered and send an email to the customer.
The email address used in this case would be the address stored in the Email Address field
accessed via the [Delivery] mode in the Customer Maintenance (AR.M001) function, as
shown on the following page.
The customer’s email address is stored here (see below). This would be used in the case
where a ‘C’ type Dynamic address was setup:
• Optional Exercise:
• If you have the ability to send emails on the test system (your trainer will advise) – feel free
to save the changes to the event and trigger it to test the generation of the email.
Exercise:
As a group, select one of the pre-packaged event templates to work with. Try to pick a template
that has some meaning for you.
This exercise is designed to let you try creating event by yourself (as much as possible), to give
you the confidence to do the same when you return to your work place!
The aim is to create a meaningful message box notification for the event that you choose to
create. After creating the event, testing it and setting it to Active, you will trigger it in your test
system to see it actually working. Please follow these steps when creating your next event:
1. Use the Entry Wizard to select a pre-packaged event template.
2. Select the Display Message Box notification method.
3. Leave the Event Initiated method settings at their default.
4. Review with the trainer the filter conditions for the event you’ve chosen. Do they make
sense?
5. Create a meaningful message box including some fields using the ‘Field Picker’ – perhaps
even try joining another table to display some additional information.
6. Test your event using the ‘Launch’ feature.
7. Set the event to a status of ‘Active’.
8. With the help of your trainer, decide on a way to trigger the event in your test
system/database.
9. Check the event log to see your triggered event..
MENU PATH
Alert Intelligence
Event Maintenance (AI M001)
[Detail] Mode
o [Define Filters] button
Order of evaluation
If multiple filters are specified, they are evaluated top down. As soon as a filter fails, no further
filters will be evaluated. It is therefore important to place critical filters higher up than less
critical ones. For example, a filter that tests for the value ‘zero’ in order to prevent a divide-by-
zero error in a calculated field should always be placed at the top of the list.
Calculated fields
Since the Alert Intelligence module generates and then compiles native PRONTO-4GL code, it
is possible to use not only the standard algebraic operators + (addition), - (subtraction), /
(division) and * (multiplication) but also any of the numerous expressions or functions supported
by the PRONTO-4GL programming language when defining a calculated field.
For a full list of supported operators and functions see the ‘Expressions and Operators’ and
‘Function Calls’ sections of the 4GL Reference Manual. This manual can be accessed by
clicking either the [Syntax Help] or [Function Help] button when defining the calculated field.
The calculated field is displayed as calc.fieldname, where fieldname is a name you have selected.
Note that the ‘o.’ and ‘n.’ prefixes can only be used for the fields referenced in the calculation,
not the calculated field itself.
If the calculation expression contains a syntax error, an error warning is displayed when the code
for the event is generated.
If any of the filters fail, the program will stop and no further filters will be checked, hence
the event will not be launched.
For examples of calculated fields, see the description of the ‘Sales Order Line under Minimum
GP’, ‘Inventory Average Cost Change’ or ‘Project - Actuals as a Percentage of Budget’ event
templates in the ‘About Pre-Packaged Events’ section.
Alternatively, feel free to setup a Pre-Packaged Event such as the ‘Sales Order - Under Minimum
GP%’ Event. Once you have created it you can go to the ‘Define Filters’ screen and do an F2
Lookup on the calc.<fieldname> field and see how the GP% has been calculated. Here is a
screenshot of the GP% calculation:
n.so-order-status EQUAL TO 17
will not only launch the event when the sales order status changes to 17, but also every time
a sales order with status = 17 is updated, for whatever reason!
The correct approach is to create two filters!
n.so-order-status EQUAL TO 17
AND
o.so-order-status NOT EQUAL TO 17
• When using a calculated field that includes a division operation as a filter, always add a
prior filter to test for a zero value in the denominator.
• When using a calculated field as a filter, for example to test for a certain threshold value,
always test that something that influences the calculation has changed.
• PRONTO-Xi includes a number of audit functions that you can take advantage of to capture
more complex events. Rather than writing filters to detect the relevant data changes in the
original database tables, you can write a single filter to test for the insertion of a specify
type of log entry in the audit table. A notification can then be constructed from the data
values written to the audit log record. For an example of this, see the ‘Sales Order - Audit
Trail - Price Override’ event in the Appendix section.
Exercise:
Let’s modify our original Minimum Stock event to once again be a message box. What we are
going to do this time is create a calculated field to check if the stock level has fallen below a
percentage of the Maximum stock level. The maximum stock level is set at 24, so we are going to
set the event to check if the stock has fallen below 25% of the Max Stock level (an implied limit
of 6).
1. In the Event Maintenance data grid, locate the event you created and select the [Detail]
mode.
4. Select the [Calculation] mode to access the Create or Modify a Calculated Field dialog.
5. Enter the following formula using the Field Picker tool to find the ‘max-stock’ field:
6. Click [OK].
We now have to reverse the logic of our test, because we want to know when the New Qty
on Hand is LESS than this calculated amount. This is the same as saying we want to know
when the Calculated % of Max Stock is GREATER than the New Qty on Hand:
7. Click [OK] here, then also click [OK] on the Detail page of the event.
When you exit the Event Maintenance data grid, the Event Code Generation window is
displayed.
8. As you did earlier, perform a stock movement so that the resultant Quantity on Hand of the
AI-TEST-ITEM is less than 6.
Did your event trigger?
So we are now ready to get creative and setup an event that is not in the Pre-Packaged templates.
There are endless possibilities for events you could setup, and the example given here is only a
suggestion. After this worked example, if you can think of another example you would like to
work through with your trainer, this may be possible (time and complexity permitting!).
MENU PATH
Alert Intelligence
Event Maintenance (AI M001)
[Entry Wizard] – ‘Design Your Own Event’
Before creating an AI event, you need to do some planning and investigation to find out:
• What company(s) the event is needed to be active in;
• What Data Table do we need to monitor to trigger the event?
• Are we monitoring for an INSERT, UPDATE or DELETE ?
• Under what conditions do we want to trigger the event?
• Who do we want to notify?
• How do we want to notify them?
• What text do we want to include in the notification?
• Is this event a Scheduled Call type event? (covered later in the training manual)
It might even be a good idea to create an internal ‘AI Request’ form for your company so you can
get the users requesting the events to give you as much detail as possible. This will allow you to
create their suggested event more quickly and accurately.
Exercise:
Let’s create an event that notifies us when a Customer’s Account Balance exceeds their Credit
Limit Amount. This will be a somewhat simplistic check, as it will not check if the customer has
exceeded their aging credit limit rules. It will purely check if the Current Balance Amount + the
Future Balance Amount is greater than the Credit Limit Amount. All of this data is stored in the
table called ‘deb-master’. This exercise will (briefly) cover how to find the field names we need
to create the filters for the event.
3. Select the [Find] mode, highlight the table deb-master and click [Next].
Here is a suggestion for your filter setup. Have some brief discussion about the setup of these
filters. Do they look okay to you?
Once your filters are created you can then create some meaningful text in your message box.
Here is a suggested sample output. Setup your message box text as you wish:
Note: We suggest raising a Manual Invoice for a value above the Credit Limit in AR
Transactions to trigger this event. Your trainer will demonstrate how to do this once you are
ready to actually trigger your event to launch.
Work through any problems triggering your event with your trainer. Don’t forget to visit
Customer Maintenance [AR.M001] again to check the displayed Balances and Credit Limit to
verify your event triggered correctly!
Greater Than
Note: Only events that are based on the same table can be linked.
In the screen shot above Event 6 (also for the sales-order table) will be launched if Event 15 is
launched.
Tip: To send both plain text and HMTL format notifications, define a 'parent' event for one of
these formats, a 'child' event for the other format, and then enter the ID of the child event in the
Linked Event ID field in the parent event details.
Note:
When linking an event, the first event launches based on its filter criteria and initiation method.
The filters of the second (linked) event are not checked, as linked events are not typically
launched as an individual event.
The time-based events detected by a scheduled call can be processed either manually or
automatically:
1) Manual processing
1. Select the Preview Scheduled Events (AI E005) function.
2. Highlight the relevant scheduled call event and then click [Preview Event].
The master table associated with the event is now scanned to identify all records that meet
the filter criteria of the event.
3. To launch the event for all records in the data grid, click [Process All].
4. To launch the event for selected records, use the [Mark Item] mode first to select the
relevant records and then click [Process Marked].
2) Automatic processing
Scheduled call events can be automatically processed by adding them to a report sequence as
follows:
1. Select the Submit Individual Scheduled Event (AI M008) function
2. Highlight the scheduled event to be processed and click [Submit Event].
3. Highlight the report sequence to which the scheduled event should be added, click
[Select] and confirm the action.
4. To verify that the scheduled event task has been created, select the Maintain Report
Sequences (SYS M175) function and scroll down to the report sequence selected above. The
First Rpt/Program field shows ‘usr-events’ and the full details of the task can be viewed by
clicking [Maintain].
Note: There is also a Submit Scheduled Events (AI M004) function that can be used to submit all
scheduled events associated with a table to a selected report sequence. Access to this function
must be granted by the system administrator. Use this function with caution!! It will submit ALL
‘Scheduled Call’ events associated with a table.
Automatic processing works by using the Batch Queue function in PRONTO-Xi. Just like you
can submit PRONTO-Xi Reports to sequences to run daily, weekly, monthly etc; you can also
submit events to be included in these sequence ‘runs’. If the filter criteria are tested and are true,
the scheduled event will be launched, and the notification method you have selected will do the
rest.
Exercise: Follow the trainer on the screen as they submit an existing Individual Event to a
sequence on the server.
1. Select the Submit Individual Scheduled Event (AI M008) function.
Note that only ‘Scheduled Call’ type Initiation Method events will be displayed here
2. Highlight one of the events and select the [Submit Event] mode.
In this example we could select the ‘NIGHT’ sequence to have this event checked and
launched once every night.
To ensure the event is only triggered at the appropriate times, you should always test
your scheduled event using the Preview feature before setting it to active!
For further information on these three screens refer to the online reference manual.
Event Subscriptions
There is an ability to view the users notified for email and SMS notification methods other than
using the [Detail] mode in the Event Maintenance function. When a user is ‘Subscribed’ to an
event, it means they are listed as one of the Recipients for that event. Any enquiries on User or
External Subscriptions as described below, are viewing the same recipient list as stored in the
[Detail] mode of the Event Maintenance function:
If the appropriate user security has been set up, each user can view their user and external
subscriptions to email/SMS events using either of the following functions:
MENU PATH
Alert Intelligence
My Event Subscriptions (AI M002)
Exercise: View these three menu options, and have a try of Unsubscribing and Subscribing to
some events in your company (if there are some email and SMS events active for your company).
Notes:
• Only email and SMS alerts can be subscribed to.
• When you are subscribed to an event you will receive a notification email. You can choose
to unsubscribe yourself from the event by following the hyperlink in the email to ‘My Event
Subscriptions’ and managing your subscriptions there.
Example Email
3. Next select the [Available Events] button to view other events you are not yet subscribed to.
Other published events are available for you to subscribe to. Events will only be unavailable
if the Event Administrator/creator has applied security restrictions.
4. To subscribe to additional events, tick the relevant event(s) then click the [Subscribe] button.
Icons
Here is a brief explanation of the three clickable icons in the ‘My Event Subscription’ screen:
• The first icon on the right will display notes about the event, providing the administrator has
created them.
• The second icon, the drill down tool, is used to display the full details of the event in the
Event Details screen. This will be security dependant and will be greyed out if the user is
denied access.
• The third icon lets you know the method of notification. In this example, email.
More information on Event Subscriptions can be found in the PRONTO-Xi Online Help
Manuals.
Manual Joins
This function is further to the ‘Other Table’ option in the field selection area in Defining Filters.
It may be that you wish to setup some other table joins, or edit the ones you have already setup.
This function can be used to manually join tables so fields from more than one table can be used
in the filter definition or notification text of an event.
Note: A manual join can only be made if at least one field in the two tables contains related
information. An Auto-join may be formed if a key field in two tables has the same name in each
table. For example, the stock-master table and the stock-warehouse-detail tables both have a field
titled ‘stock-code’ so these two tables will auto-join.
MENU PATH
Alert Intelligence
Manual Joins (AI M005)
Once the table join exists, an event notification can be created that utilises the information from
both tables.
The Manual Joins screen is shown below.
[Correct] Mode
The above example shows a manual join that exists between the tables:
o sales-order AND
o sales-order-archive
The common field they are joining on is the ‘so-order-no’ field.
It is highly recommended that an SMS notification event first be run as an email notification
event for testing purposes. Sending emails is free, sending an SMS is not!
As mentioned in the Event Administration Setup section, activating the SMS service in
PRONTO-Xi requires consultation with your Local Pronto Software Support Centre.
Appendix
Reference Guide for Screen Fields and Buttons
Event Administration Setup Screen
Field Description
Identifier A number that uniquely identifies the event. As events are created, they are
assigned numbers in sequential order.
Company Displays the company that the event has been created for, or blank if the event
is configured to launch for all companies.
The company to associate with the event can be changed in this screen.
Status Displays the current status of the event. The status can be changed in this
field, or by selecting the [Detail] mode and changing the status in the Event
Detail area.
The following statuses are available:
A Active – An event must be active for it to work! Don’t forget to
‘Activate’ your event after testing it!
I Inactive
T Testing – in testing mode your event will not do anything other than
write to the Event Log file. If your event isn’t working when you
expect it to, always check that you have set it to Active before
investigating further.
Description of Displays the event description. The description can be changed in this field, or
Event by selecting the [Detail] mode and changing the Description field.
Method Indicates the notification method configured for the event.
The following notification methods are available:
E Email Notification
D Message Box
S Short Message Service (SMS)
F Fax Cover Page
W Start Workflow Package
P Launch Program/Task
L Event Log Only
Master Table Displays the database table that the event is based on.
Insert Indicates whether or not the event is configured to launch after an ‘insert’ action
occurs in the selected database table. That is, a new database record is created.
Update Indicates whether or not the event is configured to launch after an ‘update’
action occurs in the selected database table. That is, an existing database record
is updated.
Delete Indicates whether or not the event is configured to launch after a ‘delete’ action
occurs in the selected database table. That is, a database record is deleted.
Scheduled Indicates whether or not the event is configured to launch based on a scheduled
- Mode Buttons
The [Find], [Correct] and [Remove] modes are available for use on records in this data screen.
The following modes are also available. Important points are highlighted in bold.
Mode Description
Entry Wizard Accesses the Event Entry Wizard allowing an event to be created from either a
pre-packaged event template, or a user-defined event.
This is a great feature to get started with , and has many useful Pre-
Packaged Events for you to customise.
Duplicate Duplicates the highlighted event. Enter the required identifier, company, status
and description for the new event.
Detail Use this mode to configure the highlighted event. This training course will
review this screen in depth.
This is the primary mode button you will use to modify existing events.
Launch Manually launches the highlighted event. This allows the event to be tested
before being set to the ‘Active’ status in the Event Details screen.
Note: This is a highly recommended step, as it is easy when learning AI to
‘spam’ yourself if your event filters are not setup correctly.
Advanced Edit Displays the PRONTO-4GL data trigger code so that it can viewed or edited
directly. A Terminal Mode window opens in which the code for the event can be
edited. The environment variable ‘EDIT’ must be set for this feature to work.
Note: Editing the data trigger code is an advanced feature and assumes
programming knowledge. It is beyond the scope of this course.
Generate Generates and compiles the PRONTO-4GL data trigger code for all existing
events. This code generation must be performed after adding a new event or
modifying an existing one.
If you have modified an event and exit this data grid, PRONTO-Xi will
automatically ‘Generate’ the data trigger code for you – this mode button
makes it possible for you to force a generation of the data trigger code.
• Today()
• Login-id()
• Time()
• Program()
• Company-name()
• Filter-value(1) - Filter-value(5)
For further information refer to the
‘Understanding Event Filters’ section.
Hyperlink Specify (if required) a link to a document, website or directory to be included
in the message box.
Text to Display Enter the ‘clickable’ text to be shown for the hyperlink in the message box.
Icons Specify the appropriate icon to be included in the message box. For example,
if the message is informational only, then one of the two blue icons with the
“i” (Information) symbol would be appropriate.
Specify the required icon to use.
No icon Specifies that no icon is shown in the message box.
User Icon To use a different icon in the message box instead of the
Path default icons available, select this option and enter the path
to the icon.
Tip: Press F2 (Lookup Help) to open the Choose File dialog
box and navigate to the required file. The *.gif and *.jpg
image file formats can be used.
Preview Displays a preview of the message box.
Note: Access to certain dictionary tables, for example payroll-related tables, may
have been restricted by the PRONTO-Xi system administrator.
Sample Data for Field Filters
Test Field / Note: These fields are only available if the Sample Test Data launch method is
Filter Value selected.
1-10
Field Enter the name of the field to test. Press F2 (Lookup Help)
to access a Field Picker data grid and select from the available
list.
The [Select] mode is available on this screen. The
following mode is also available:
New/Old Use this mode to toggle between the new (n.)
and old (o.) values for the fields in the
current table.
Test Value Enter a test value to test against the data in the
corresponding field.
Column Description
Day The day that the event launched.
Launch Date/Time The date and time that the event launched.
Identifier The number of the event.
Description of Event The name of the event.
Company The name of the company in which the event was launched.
Triggered by User The user ID of the person who performed the action that triggered the
event.
Triggered by The program that triggered the event.
Program
Log Text The email, message box, SMS, fax or log text that was entered for the
event via the Event Details screen.
- Mode Buttons
The [Find] mode is available for use on rows in this data grid. The following modes are also
available:
Mode Description
View Recipient Review the list of people who received the notification. The Email/SMS/Fax Log for
Event screen shows the company, recipient and recipient description/name.
The [Next-scr], [Prev-scr], [Next] and [Prev] modes are available for use on
rows in this data grid.
View Filters Review the filters used in the event. The Event Log Filters screen shows the
company, database table, field name, operator (comparison type), value and
relationship.
The [Next-scr], [Prev-scr], [Next] and [Prev] modes are available for use on
rows in this data grid.
View Text Review the text used for the event. The Text Log for Event screen shows the text
details in code format. Use the [View Text] mode to view this information in
rendered format (as would appear to the recipients for this event).
Detail Display full details of the highlighted event.
on Table
Notification Select the type of notification to be given when the event is launched.
Method Note: Only one notification method can be selected per event record. To
associate multiple notification types with an event, create an event for each
notification method and then link the events to one another using the Linked
Event ID field.
Email Select this option to send an email to selected recipients when
Notification the event is launched.
After selecting this option, specify whether the email should
be sent immediately (Direct), or via a Batch Queue (Batch) in
the Method options.
Tip: The Batch Queue to use to send batched emails is
specified in the ‘Event Administration Setup’ function.
Batching the sending of emails (if this is the notification
method) is a great idea, otherwise the user that (perhaps
unknowingly) initiated the event, will have to wait while the
server sends the email.
Message Box Select this option to display a message box on the screen of
the user whose action caused the event to be launched.
If the event will be launched via an external call, specify the
value to be returned to the calling program when the user
acknowledges the message box by selecting from the
following Exit Status options:
OK Returns the value ‘0’ to the calling program.
Fail Returns the value ‘1’ to the calling program.
Tip: Select this option if this event will be
associated in the Screen Customiser with an after-
accept trigger on a field and the user is required to
re-enter the value when the message box is
displayed.
Fax Cover Select this option to send a one-page fax to selected recipients
Page when the event is launched.
Short Message Select this option to send an SMS to selected recipients when
Service (SMS) the event is launched. The notification is first sent as an email
to the SMS server and then forwarded as an SMS to the
relevant mobile phones.
After selecting this option, specify whether the SMS should
be sent immediately (Direct), or via a Batch Queue (Batch) in
the Method options.
Tip: The Batch Queue to use to send batched emails (for
SMS) can be specified in the ‘Event Administration Setup’
function.
Start Select this option to start a workflow defined in the
Workflow Workflow module when the event is launched.
Package For full details refer to the Workflow manual.
Launch Select this option to launch an external program, or create a
Program/ Task task in the Task Intelligence module, when the event is
launched.
Note: When this option is selected, ensure that the workflow
Specify the recipient contact details (email address, mobile phone number or fax
number) based on the dynamic email type.
The following dynamic recipient selection options are available:
F Field Value
Selects the recipient of the notification based on the results of a logical
operation performed on a selected field (or calculated field).
For example, the following two rules could be entered to define the
recipient based on the territory field on the sales order:
• n.so-territory-code EQUAL TO “MEL”
email address = [email protected]
• n.so-territory-code NOT EQUAL TO “MEL”
email address = [email protected]
C Customer
Obtains the recipient details by looking up a customer account via a
specified field (or calculated field), for example, the ‘so-cust-code’ field
in the ‘sales-order’ table.
S Supplier
Obtains the recipient details by looking up a supplier account via a
specified field (or calculated field), for example, the ‘cre-accountcode’
field in the ‘purchase-order’ table.
M CRM
Obtains the recipient details by looking up a CRM account in the
Customer Relationship Management module via a specified field (or
calculated field).
V Engineer
Obtains the recipient details by looking up an engineer account in the
Service module via a specified field (or calculated field).
E Rep
Obtains the recipient details by looking up a representative account via a
specified field (or calculated field), for example, the ‘so-rep-code’ field
in the ‘sales-order’ table.
T Task
Obtains the recipient details by looking up the PRONTO-Xi user
account specified in the ‘tm-allocated-to’ field in the ‘task-master’ table.
P Employee
Obtains the recipient details by looking up an employee account in the
Human Resource Management module via a specified field (or
calculated field).
Z Custom
Use this option to select the recipient by passing the value of a specified
field (or calculated field) to the public exportable procedure ‘clib801-
determine-dynamic-custom-address’.
Contact your local Pronto Support Centre for assistance or to obtain a
Software Development Kit for customising PRONTO-Xi.
Code Based Use this option to specify the recipients of the notification by entering specific
account, role or representative codes. The contact details (email address, mobile
phone number or fax number) are obtained via the relevant master record of the
specified account.
The following code-based recipient selection options are available:
C Customer
Use this option to send the notification to a selected customer by
entering their customer account code.
S Supplier
Use this option to send the notification to a selected supplier by entering
their supplier account code.
M CRM Account
Use this option to send the notification to a selected contact stored in the
Customer Relationship Management module by entering their account
code.
R Security Role
Use this option to send the notification to all PRONTO-Xi users who
have been granted a selected security role.
E Representative Code
Use this option to send the notification to a selected representative by
entering their representative code. The contact details are obtained via
the login ID stored against that representative. If an address is specified
in the Email Address column for that login ID in the User Access
Control (SYS M195) function, then that email address is used.
P Use this option to send the notification to a selected employee by
entering their employee number, as maintained in the Human Resource
Management module.
User Specify the PRONTO-Xi user ID of the intended recipient.
External Specify the contact details (email address, mobile phone number or fax number)
of a recipient who is external to the PRONTO-Xi system.
Define workflow or external program/task call
Workflow/ Specify the workflow package, external program or task to call for this event.
Program/ Task This topic is outside the scope of this course. Calling Workflows or External
Programs is an advanced feature of PRONTO-Xi. Please contact your local
Pronto Support Centre for assistance or to obtain a Software Development Kit
for customising PRONTO-Xi..
Calling tasks is covered in the Task Intelligence Training Manual.
format.
Drill-back functionality is not available for plain text
emails.
Tip: To send both plain text and HMTL format notifications,
define a ‘parent’ event for one of these formats, a ‘child’
event for the other format, and then enter the ID of the child
event in the Linked Event ID field in the parent event details.
NOT IN Use this option to test whether the value in Field1 does not
match one of the multiple, comma-separated values
specified in Field2.
Value / Field / Enter the value to be used for comparison. Press F2 (Lookup Help) to access the
Function following options:
Field Help Select this option to access the ‘Field Picker’ table. The following
modes are available:
Select Use this mode to select the highlighted field.
New/Old Use this mode to toggle between the new (n.)
and old (o.) values for the fields in the current
table.
Function Select this option to access the following functions:
Help
Today() Substitutes for the current date when the filter
criterion is tested.
Login-id() Substitutes for the login ID of the current
PRONTO-Xi users when the filter criterion is
tested.
Time() Substitutes for the current time when the filter
criterion is tested.
Program() Substitutes for the name of the currently
running PRONTO-Xi program when the filter
criterion is tested.
- Mode Buttons
The [Find], and [Remove] modes are available for use on rows in this data grid. The following
modes are also available.
Mode Description
Entry Displays a Manual Joins dialog box for entering the information in the data grid
columns described above.
Correct Displays a Manual Joins dialog box for correcting the information in the currently
highlighted row.
Note: Table entries with a sequence number in the range 1 to 99 can not be
edited.
This will be a brief run through as using Proman is covered in more depth in the System
Administration training manual.
How do we even know which table to start looking at? Let’s go to Customer Maintenance
[AR.M001] to get this information. [Find] the customer “AI-TESTCUS”, and once the details are
displayed on the screen, press [F9].
You will see a variety of information presented here. What we are interested in is the information
stored next to the ‘PRIMARY’ title. This denotes the database table name we need to look into to
find the field names for:
• Current Balance
• Future Balance
• Credit Limit
• To launch Proman, whilst in a PRONTO-Xi session, Press [F3] then [F2] and then either:
a) Click on the ‘Proman’ option if ones exists OR
[Browse] mode
• Once you have found the ‘deb-master’ table and it is highlighted, click the [Browse] button
again to view the data in the table – it should look something like this:
• Use [Find] again to find our test customer ‘AI-TESTCUS’ and then click the [Screen]
mode. The first screen view you will see should look like this. Click the [Title] mode to get
the true field names displayed (see next screenshot):
We can now see the three field names we will use in our filters:
balance
future-bal
dr-credit-limit-amount
Product Brief
Inventory Supercession
Full details of these events are available in the PRONTO-Xi Online Help Manuals