Workflow Alert Checks Maintenance

Document path Reference Contents > Preferences > Workflow Alert Checks Maintenance

Workflow Alert Checks

The program has a system of automated data checks that can alert users regularly to particular circumstances. This may be simply a review of shortages without orders or it may be a reminder of overdue credit memos. Each user has an individual set of these checks and each can be timed to regularly run automatically.

Workflow alert checks are a periodic review of data. See Workflow Trigger Alert Maintenance for a system of immediate alerts to specific events.

Each check runs a predefined data collection method in the program. The presentation of the check results can be customised with a list of columns and their attributes. You can have both data fields and calculated columns derived at runtime from data fields. You can further customise the check by entering a limiting condition. So, for example, you could restrict a check on parts set for engineering change only to those modified in the last 3 days.

Available system checks are listed in the maintenance window. To add one, drag the list line and drop it onto the Operational Check list. A default set of columns is provided which you can edit in the column list below.

With this maintenance window you can maintain your own Workflow Alert Checks from the File -- Preferences menu, or you can maintain another user's alerts from the Privileges window.

Field

Description

Checking Methods

Lists the available checking methods. Drag those you want to add to the Operational Checks list.

Operational Checks

Lists the operational checks. Drag from the Checking Methods list to add. Click to select and modify details. Use Delete key to remove.

System Code

The system code for the check type.

Description

The description of the Operational Check.

Condition

Enter an optional limiting logical condition (non-zero result) as a Studio calculation that will limit the restrict the results.

Note NOTE: Some checks are usefully limited. For example, you could restrict a check on parts set for engineering change only to those modified in the last 3 days by adding the condition PTMMODM>dadd(kDay,-3,#D)

Frequency Days

The Frequency Days added to the Frequency Time determines when the check is next run. For example, if you want the check to run every 7 days at the start of the day, enter 7 and set the frequency time to 08:00.

Note NOTE: If both days and time are zero, the check will never automatically run. However, you can still run it from this window.

Frequency Time

The Frequency Days added to the Frequency Time determines when the check is next run. If the days is set to 0 the time alone will control frequency. For example, 04:00 will set the check to run at the start of the day and then every 4 hours thereafter.

Parameters

Some Check Methods can accept parameters. A comma separated list of values should be entered.

Report Class

If you have a custom report class for this check, enter it's name. Otherwise leave blank to use the standard.

Warning WARNING: Care should be taken if you are planning to customise the standard report class rAlertReport. The program automatically re-designs the report for the data columns defined. This is done with reference to object names. If you add objects or rename them, the program will not adjust these objects correctly. Consequentially the results may be unpredictable.

Portrait

The report is produced in portrait orientation.

Landscape

The report is produced in landscape orientation.

Total Text

Optional total line custom text. If no entry is made and there is at least one column totalled default text (String s4369) is used. You can imbed a single square bracket notation calculation within the text which will be evaluated into the text.

Last Run

The occasion on which this Operational Check was last run. If you amend this date and time you can set the point at which the periodic sequence starts.

List and Report Columns

Lists the record columns that make up the Operation Check Results. Drag and drop to change order, use Del key to remove lines.

Tip TIP: To edit cells in the list, select the line and click in the cell and hover the mouse over the cell. I.E. click once and pause with no mouse movement. The cell will then expand into an editable box in which you can enter different data. On leaving the box with any action like a tab or click elsewhere, the data is verified and the list returns to normal with the new data shown in the cell.

The following restrictions apply to the columns:

  1. The Field name column is case-sensitive and can be either a field name from one of the valid file classes (listed below) or from a global file (such as MCDFILE), or a made up field name for a calculated field.
  2. The Heading can be any text.
  3. The Width is a a proportional number. The system will take the sum of all column widths and apportion the actual column width pro-rata to your width entry for any column.
  4. The Sort column should be left at 0 for unsorted columns. For sorted columns you should enter them in order up to a maximum of 9.
  5. The Subtotal column should be set to a special string value (default is 0) for each sorted field column where you wish to have a subtotal printed on reports when the value changes. The maximum number of sorts with subtotal is 6. The string is made up of 4 values delimited by a / character. 0/0/0/0 would cause a subtotal whenever the field changed. The 4 values are:
    • Subtotal Interval
    • New Page Interval
    • Subtotal Interval Start
    • New Page Interval Start
    This enables you to fine control when subtotals breaks occur and when a new page is forced to start after the subtotal. The values you enter depend on the data type of the field on which you are subtotalling:
    Character: The value you enter is the number of characters in from the left of the field value that you want to see change before triggering a subtotal. 0 means any character change. E.G. 3/0/0/0 for the customer code field would see CAL001 and CAL002 being within the same subtotalled group because they have the same first 3 characters.
    Number: The value you enter is a number, like 1000 or 10, and in this case all attributes are valid so 1000/2000/10000/20000 would cause the first subtotal to be at 2000 and then every 1000 thereafter, with page breaks after 20000 and 10000 after that.
    Date and Date Time: The value in Subtotal Interval and New Page Interval are as follows:
    • 0 = Any change
    • 1 = Every Second
    • 2 = Every Minute
    • 3 = Every Quarter Hour
    • 4 = Every Half Hour
    • 5 = Every Hour
    • 6 = Every Half Day
    • 7 = Every Day
    • 8 = Every 7 Days
    • 9 = Every 14 Days
    • 10 = Every Week
    • 11 = Every 2 Weeks
    • 12 = Every Month
    • 13 = Every Quarter
    • 14 = Every Half Year
    • 15 = Every Year
    • 16 = Every Century
    • 17 = Every Fiscal* Month
    • 18 = Every Fiscal* Quarter
    • 19 = Every Fiscal* Half Year
    • 20 = Every Fiscal* Year
    The Start attributes are not used for dates and times. * Fiscal periods are based on the Financial Year End you have set in the Company Details Maintenance window.
  6. The Totalled column indicates to the system that the column should be totalled. There are 5 types of total:
    • 1 = Total Value
    • 2 = Average Value
    • 3 = Count of Records
    • 4 = Minimum Value
    • 5 = Maximum Value
  7. The Subtotal Text column is an optional column that can contain your own text for the subtotal line. You can imbed a [No] which will be set to the subtotal level number, a [Heading] which will be set to the column heading text and a final single square bracket notation to show the subtotal value (use [Value] for the standard subtotal value). For example, to display just the month and year in a monthly subtotal you could enter "Monthly subtotal for [dat(Value,'m y')]". If no entry is made and there is a subtotal default text (String s4368) is used which is "Subtotal [No] for: [Heading] = [Value]".
  8. The Calculation column contains the calculation if it is a calculated field. To define the calculation field type, you need to select the line and click on Calculation.

Warning WARNING: If you use a total type other than Total Value, the standard text may mislead those who read it.

Button

Action

Add Column

Click to add a new column to the list of columns.

Calculated

Click to modify or add a calculated column.

Copy Set

Click to copy the set of Operational Checks from another user. You will have the option to append them if you already have some.

Test List

Click to test to the review window the operational check with current data. The Workflow Alert Result window will open.

Test Report

Click to test the operational check with current data and send it directly to a report.

Export

Click to export the Operational Checks for transfer to another datafile or for backup purposes.

Import

Click to import the Operational Checks exported previously.

Revert

To revert any changes to the previously saved version.

Save

To save the changes you have made to the data file.

Customising Columns

Each Alert Method searches the database and provides a pre-selected set of data that can then be additionally restricted with a custom condition. The standard search rules are listed below. When adding columns or a condition, you should only use data fields from files that the method explicitly controls. The following is a list for each method:

Method

Files

Standard search rules

CusDoNotUse

CUSFILE

CUSBAR = kTrue

JbiOutOrder

CUSFILE, JBIFILE, JOBFILE, MCMFILE, WKCFILE

JBIWKC > '' & (JBIPTNO='') & (JBICOMP < dat(1)) & (JBIBAL > 0.000) then WKCOUT = kTrue then JOBRELF = kTrue & (JOBDATC < dat(1)) and finally that no record for POLPTNO = con('JB-', JOBCODE, '-', jst(JBILINE, '-3N0P0')) exists.

LedgApPayLate

SUPFILE, TRAFILE, TRCFILE

TRADUEF <> 0.00 & (TRADUED < #D) & (TRALEDG = 'P')

LedgArPayLate

CUSFILE, TRAFILE, TRCFILE

TRADUEF <> 0.00 & (TRADUED < #D) & (TRALEDG = 'R')

MrpOverdue

MRPFILE, PTMFILE

len(MRPPTNO) > 0 & not(MRPIMPL) & (MRPOQTY > 0.000) > (MRPACDT < #D)

PolLate

POHFILE, POLFILE, PTMFILE, SUPFILE

POLDATE < #D then not(POHRELF)

PrdOutOfDate

PRDFILE, PTMFILE

PRDDATE < #D

PtmEngChange

PTMFILE

PTMENGC = kTrue

PtmLocLow

PTMFILE, STOFILE, SUPFILE (part prefered supplier)

STOQUAR <> kTrue & (STOPHYQ < PTMMINS | (STOPHYQ < PTMROLE)) then SUPCODE = PTMSUPC

PtmLowMargin

PTMFILE

If MCDMARG = kTrue
PTMSELL < rnd((PTMCMC + PTMCLC + PTMCOC + PTMCOVC + PTMCROC)*100/(100 - min(PTMARGN, 99)),2)

Else if MCDMARG = kFalse
PTMSELL < rnd((PTMCMC + PTMCLC + PTMCOC + PTMCOVC + PTMCROC)*(1 + (PTMARGN/100)),2)

PuhUninvoiced

PTMFILE, PUHFILE, SUPFILE

PUHPRUP <> kTrue

ShortUnordered

CUSFILE, JOBFILE, POHFILE, POLFILE, PTMFILE, SOHFILE, SUPFILE, WOSFILE, WKOFILE

Complex inter-relationships between orders and shortage items.

Shortages

CUSFILE, JOBFILE, POHFILE, POLFILE, PTMFILE, SOHFILE, SUPFILE, WOSFILE, WKOFILE

None.

SntLate

CUSFILE, PTMFILE, SNOFILE, SNTFILE

SNTRET = '' & (SNTDUED > dat(1)) & (SNTDUED < #D)

SoQuoteExpired

CUSFILE, PTMFILE, SOHFILE, SOLFILE

not(SOHRELF) & (SOHQVAD > dat(1))

SolLate

CUSFILE, PTMFILE, SOHFILE, SOLFILE

SOLDATE < #D then SOHRELF = kTrue

SupDoNotUse

SUPFILE

SUPBAR = kTrue

TrcLate

CUSFILE, GLAFILE, TRAFILE, TRCFILE, SUPFILE

TRCCLEA <> kTrue & (TRCNEXT < #D)

WkoLateCompletion

PTMFILE, WKOFILE

WKOCDAT < #D

WkoLateKitting

PTMFILE, WKOFILE

WKOISDT < dat(1) & not(WKOBACK)

WooOutOrder

MCMFILE, PTMFILE, WKCFILE, WKOFILE, WOOFILE

From scanning the WOOFILE: WKCOUT = kTrue then WKOBAL > 0.000 and finally that no record for either of POLPTNO or PUHPTNO = con('WO-', WOOWONO, '-', jst(WOOOPNO, '-3N0P0'))

Warning WARNING: oCustom1 custom functions in columns can be used, however they should never change the state of the Current Record Buffer for files used by the method.

See also: -

Compiled in Program Version 3.10. Help data last modified 8 NOV 2009 03:32. Class wAlertReportMaint last modified 6 NOV 2009 04:26:54.

Document path Reference Contents > Preferences > Workflow Alert Checks Maintenance