Configuration
Grid Name
Each Grid in Infor EAM is defined by its Grid Name, which is a string that uniquely identifies a Grid. Internally, this Grid Name maps to a numeric Grid ID. In the table below, we can see some examples of this internal mapping.
Grid Name | Grid ID |
---|---|
WSJOBS | 93 |
For a detailed list of the Grid Names available for the Grid Requests, please visit this site.
Comments from Sara
Can we complete this, or redirect the users to a place to know? (in case this is relevant, I remember from the meeting it might not be that relevant)
Dataspy ID
In Infor EAM, the Dataspy allows applying a pre-filter and pre-sort to the underlying view of the entities. It also permits controlling which fields of the Grid are displayed as columns in the resulting table, so that the same grid may display different colums, depending on the selected dataspy.
Tip
When searching for a particular value for a Field, it is adviced to use Filters to limit the results of the search.
For example, for the Work Orders' Grid, we have a dataspy named 'All Work Orders with MEC', which shows all work orders, including MEC Work Orders, and another dataspy called 'All Work Orders', which does not include these MEC work orders.
Note
Please note that there is no Dataspy Name, unlike the Grid Name. Generally, it is not mandatory to specify the Dataspy ID in the Request, as the default Dataspy for a Grid will be used whenever it is not specified.
However, if the ID must be used, Dataspies provided by Infor EAM tend to have relatively stable IDs when compared with User Created ones, so the former should be preferred.
User Functions
For some Grids, an User Function must be passed. The User Function to be passed depends on the specifics of each Grid. It is generally possible to retrieve this information from Infor EAM.
If you have any issues in using this configuration, please do not hesitate to contact cmms.support@cern.ch and make your query.
Comments from Sara
Which are the available user functions? Shouldn't we mention this here, or at least point to a place where the reader can see the possible user functions instead of the support?
Parameters
When performing a Grid Request that requires knowledge of the code or type of an Entity, we must use Parameters to specify the mandatory information.
Example
When we are retrieving all Activities associated with a Work Order, the parameter with the code param.jobnumber
is set to the Code of the Work Order.
If you wish to find the code to use for the parameter for a certain Grid, do not hesitate to contact cmms.support@cern.ch.
Filters
Individual
Filters allow specifying conditions to apply to the Query, such as only showing Work Orders that are in status R
, or searching for an employee whose name starts with P
, or even equipment that has a class set.
To do this, each filter has three required pieces of information:
- which column it applies to;
- the operator to apply;
- a value to compare with.
For instance, some of the available Filters can be seen on the Table below:
User Intention | Column Name | Operator | Value |
---|---|---|---|
Work Orders in 'R' | workorderstatuscode | = | R |
Employee Name starting with 'P' * | description | BEGINS | P |
Equiment with a Class | class | NOT EMPTY | "" |
* Please note that the Employee Name is the Full Name of the Employee and may not necessarily begin with the First Name.
Note
The Column that the Filter is applied to is the Internal Name of the Column, and not the Display Name of the Column that is shown to the user.
The table below shows all Operators that are available, starting with the name of the Operator in the first column, as exposed to the users by Infor EAM Extended, and the Literal Operator string that must be passed to the Grid Request programatically.
EAM Extended Operator | Literal Operator |
---|---|
Equals | = |
Not Equals | != |
Contains | CONTAINS |
Does Not Contain | NOTCONTAINS |
Empty | IS EMPTY |
Not Empty | NOT EMPTY |
Starts With | BEGINS |
Ends With | ENDS |
Less Than | < |
Greater Than | > |
Less Than or Equals | <= |
Greater Than or Equals | >= |
Selected | = (with a value of -1) |
Not Selected | = (with a value of 0) |
Note
Not all Operators work for all columns. For instance, it is not sensible for a description to be less than a number.
Additionally, some of the strings that have to be passed programatically include spaces, such as IS EMPTY
.
Warning
For using dates with the =
, <
, >
, <=
, and >=
operators, the value must obey the format DD-MMM-YYYY, such as 09-MAR-2021.
Namely, the Day must start with a 0 if it only has one digit, and the Month is the uppercased first three letters of the English name of the month that the date specifies (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC).
Combination
It is possible to use more than one Filter and combine them using the two additional properties of Filters: Joiners and Parenthesis.
Joiners
There are only two different kinds of Joiners: AND
and OR
. They allow us to specify how the Filters are connected and are used in the exact same manner as in Boolean Logic.
For instance, if we have two filters 'Work Order code starts with 28' and 'Work Order is in status R', connecting them using the AND
operator would mean that all returned rows obey to both filters, so that their codes all begin with 28 and they are all in status R.
If we used the OR
Operator instead, it would mean that the returned rows would obey either one of the Filters, or both of the Filters.
Note
The AND
Operator has precedence over the OR
Operator. For instance, for some Filters X
, Y
and Z
, the expression X AND Y OR Z
is equivalent to (X AND Y) OR Z
.
Parenthesis
The Parenthesis allow to specify whether a parenthesis (in the context of Boolean Logics) is present to the left (Left Parenthesis
) or the right (Right Parenthesis
) of the filter.
These Parenthesis parameters should then be assigned a Boolean by the user.
In the Table below, a possible example of how to combine Filters is displayed with all the parameters that need to be specified.
Filter | Joiner | Left Parenthesis | Right Parenthesis |
---|---|---|---|
F1 | AND |
true |
false |
F2 | OR |
false |
true |
F3 | AND |
false |
false |
F4 | AND |
true |
true |
From the Table, the following expression is obtained: (F1 AND F2) OR F3 AND (F4)
.
The fact that the Parenthesis can only be applied to the left or the right of a Filter limits the possibilities that can be expressed with Grid Requests, since it is not possible to use double parenthesis, or a parenthesis after another.
Note
The last Joiner in the expression is simply ignored, but it still must be set to a value: AND
or OR
.
Sorting
When performing a Grid Request, it is possible to use the Sorting option to sort the rows that will be returned depending on the value of a column, and whether the sort is performed in descending or ascending order.
The column name is specified by its internal name and not the name that is shown to the user. The direction is a simple string: ASC
for ascending, and DESC
for descending.
Row Count & Cursor Position
We can specify an upper limit to the number of rows returned from a Grid Request, denominated in Infor EAM as Row Count. The Cursor Position can be understood as the first row that the grid request will return.
Used together, the Row Count and Cursor Position features allow for implementing pagination with Grid Requests, which is especially useful for Queries that will return a large quantity of results.
For instance, when a Grid Request is first performed to obtain the rows in a grid in Infor EAM, the Cursor Position will be 1. After the user scrolls down until more rows are fetched, the Cursor Position will be 51 for the subsequent Request, ignoring the rows that were already returned.
Curiosity
In this case, the second Cursor Position is 51 because the default row count in Infor EAM is 50.