03/00/2021 - v3.5.20.x
Updated Fields and Field Expressions
The purpose of these Fields and Field Expressions is to improve tracking metrics. Below is an example of the Packages Dashboard after the Fields and Field Expressions below have been applied.
{STRATUS.*.TrackingStatusLogBy}
This field returns the list of user names who made each tracking status change. See an example in the TrackingStatusChange() field expression example below.
DateOffset()
The DateOffset() function calculates a new date-time based on the year, day, and hour offset. The DateTime argument is the time to offset from. See the Date Offset in the screen-shot above.
Generic Syntax: DateOffset(DateTime, YearOffset, DayOffset, HourOffset) returns new DateTime
Example: DateOffset(Now(),0,-7,0)
DayName()
The DayName() function returns the name of the day for the given date.
IndexOf() and LastIndexOf()
The IndexOf() and LastIndexOf() functions provide a way to manipulate strings within field expressions. See the Tracking to Packaged most recent change column in the screen-shot above.
IndexOf(String1,String2) - Returns the first character index of a search string within another string value or -1 if not found.
LastIndexOf(String1,String2) - Returns the last character index of a search string within another string value or -1 if not found.
Example
To display the date-time for the most recent tracking status change for a package in the Packages Dashboard, create a Field that contains the following Field Expression and then reference the field in a report:
If(LastIndexOf(';',{STRATUS.Package.TrackingStatusLogDT}) > -1, Right({STRATUS.Package.TrackingStatusLogDT}, AsNumber(Len({STRATUS.Package.TrackingStatusLogDT})) - LastIndexOf(';',{STRATUS.Package.TrackingStatusLogDT}) - 1), {STRATUS.Package.TrackingStatusLogDT})
TrackingStatusChange()
The TrackingStatusChange() function can provide report data that answers questions like “How may many feet of pipe cut are cut or spools welded per day, per week, per month?
This function returns a 0 or 1. As a result, it can be determined whether the tracking status has been applied, given the optional filters. By returning a 0 or 1, it can be multiplied by whatever the desired metric unit is from the part (Ex. Diameter). By building an integer Field with ‘Is Total’ checked and using an integer field in a package report, totals per package can be summarized.
The following is a list of generic function arguments that provide the following:
Generic Syntax: TrackingStatusChange({STRATUS.*.TrackingStatusLog}, TrackingStatus, {STRATUS.*.TrackingStatusLogDT}, StartDT, EndDT, {STRATUS.*.TrackingStatusLogBy}, UserName)
Example
Below is an example of a Packages Dashboard report that uses the field expression that will display the total weld inches completed last week (in the last 7 days) by a specific weld station operator (Kelly Demo.
TrackingStatusChange({STRATUS.Part.TrackingStatusLog},'Fabricated',{STRATUS.Part.TrackingStatusLogDT},DateOffset(Now(),0,-7,0),'',{STRATUS.Part.TrackingStatusLogBy},'Kelly Demo')*{Diameter}
Use Cases
There are 4 possible use cases, depending on optional arguments. See the corresponding Use Cases in the screen-shot above.
Return 1 if TrackingStatus has ever been applied
Generic Syntax: TrackingStatusChange({STRATUS.*.TrackingStatusLog}, TrackingStatus)
Example: TrackingStatusChange({STRATUS.Package.TrackingStatusLog},'Packaged')
Return 1 if TrackingStatus has been applied between StartDT and EndDT. Note: It is acceptable to provide only one of the date arguments, leaving out that date time-bound check.
Generic Syntax: TrackingStatusChange({STRATUS.*.TrackingStatusLog}, TrackingStatus, {STRATUS.*.TrackingStatusLogDT}, StartDT, EndDT)
Example: TrackingStatusChange({STRATUS.Package.TrackingStatusLog},'Packaged',{STRATUS.Package.TrackingStatusLogDT},'09/01/2020','09/30/2020')
Return 1 if TrackingStatus has ever been applied by a particular station or user name.
Generic Syntax: UserNameTrackingStatusChange({STRATUS.*.TrackingStatusLog}, TrackingStatus, '', '', '', {STRATUS.*.TrackingStatusLogBy}, UserName)
Example: TrackingStatusChange({STRATUS.Package.TrackingStatusLog}, 'Packaged', '', '', '', '', {STRATUS.Package.TrackingStatusLogBy}, 'Kelly Demo')
Returns 1 if TrackingStatus has been applied between StartDT and EndDT by UserName
Generic Syntax: TrackingStatusChange({STRATUS.*.TrackingStatusLog}, TrackingStatus, {STRATUS.*.TrackingStatusLogDT}, StartDT, EndDT, {STRATUS.*.TrackingStatusLogBy}, UserName)
Example: TrackingStatusChange({STRATUS.Package.TrackingStatusLog}, 'Packaged', {STRATUS.Package.TrackingStatusLogDT}, '09/01/20','09/30/20', {STRATUS.Package.TrackingStatusLogBy}, 'Kelly Demo')
Remove TimeZoneId from Expression Functions
When running reports based on the following Field Expression functions, the user's timezone will be used. As a result, the TimeZoneId field will not be needed and will be ignored if currently used.
HoursInTracking()
TrackingStatusChange()