NextGen FSM
2026 Wave Two 2026 Wave Three 2026 Wave One
2026 Wave Two 2026 Wave Three 2026 Wave One

FSM Platform - Gisware integration parameters

In the FSM Platform - Gisware integration, the most important VRP parameters to set up are:

Parameter

Value - Note

Solver

The <solver> node allows you to define the processing procedure (composition of the sub-phases of greedy assignment, local optimization, random moves, etc.…) and the work parameters that must be applied by the optimization engine to solve the problem. The parameters listed at the <solver> level are used in the pre-assignment phase.

Matrix

cache Matrix to consider by the optimization engine to solve the problem.

F (full stereo) → information on Travel and Distance between two points;

f (full mono) → information on Travel between two points;

S (smart stereo) → compressed information on Travel and Distance between two points;

S (smart mono) → compressed information on Travel between two points;

Vehicle

  • speeds: attribute consisting of a list of eight integer values, separated by commas and representing the different travel speed data in km/h, based on the road type. Speed data shall be classified as follows: unknown, highway, beltway, state road, county road, urban road, ship route, generic (unknown, highway, beltway, state, county, urban, ship and generic routes).

  • prohibitions: attribute consisting of a list of eight boolean values separated by commas which determine whether to consider or not the one-way obligations based on the different road types.

  • profiles: attribute consisting of a list of eight integer numbers separated by commas; each value corresponds to a given road type based on its ranking in the list, as detailed for the speeds attribute. Each n valuei represents the nth speed profile to be used for the ith road type. With a value equal to zero, the speed profile is not used and gets replaced by the corresponding value available in speeds.

  • parkables: attribute consisting of an eight-rule-values list. each value corresponds to a given road type based on its ranking in the list, as detailed for the speeds attribute. Each boolean determines whether any projections (both of incoming and outgoing vehicles) can be made for the road type considered.

  • autonomy: integer attribute specifying the vehicle autonomy; it is evaluated during Dijkstra's algorithm for the computation of minimum path between two given points. When optimizing the schedule, the autonomy value shall be expressed in seconds; if the distance is considered, it shall be expressed in meters.

AI Configuration

Property supported by Next-Gen FSM Platform 10 –> GISWARE 13

Property used for AgendaAffinity/ML-precision intraday scheduling feature

Before the actual call to Gisware, Next-Gen FSM Platform will generate the presigned URLs pointing to the .gz / tar.gz file for the Model, Orders List, cluster mapping:

  • AI model (_modelUrl)

  • orders List (_workordersUrl)

  • cluster mapping (_clusterMapping)

Next-Gen FSM Platform calls Giswsare and sends the presigned URLs through which Gisware will be able to access the model (through the EdgeAI) and invoke the predictions on the agendas it has composed.

<AIConfiguration>
<preSignedURL type="AI_MODEL" url="https://overit-Next-Gen FSM Platformai-test.s3.eu-west-1.amazonaws.com/models/agenda_affinity_1.0/181_devtest2_1.tar.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20211217T165039Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Credential=AKIATIIP4UQQL3VBLBSG%2F20211217%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Signature=ae09ec1563c31e633d1cd6a6fd913cb9b5a16d91776089249354d01328e7f18c"/>
<preSignedURL type="WO_DATA" url="https://overit-Next-Gen FSM Platformai-test.s3.eu-west-1.amazonaws.com/data/agenda_affinity_1.0/181_devtest2_1/orders.csv.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20211217T165039Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Credential=AKIATIIP4UQQL3VBLBSG%2F20211217%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Signature=4bd6b582d3a07aa7892e3c51265e603a9d6bc78b3bc1fbec2a38585aa0bfb00d"/>
<preSignedURL type="CLUSTER_MAPPING" url="https://overit-Next-Gen FSM Platformai-test.s3.eu-west-1.amazonaws.com/data/agenda_affinity_1.0/181_devtest2_1/cluster_mapping.csv.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20211217T165039Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Credential=AKIATIIP4UQQL3VBLBSG%2F20211217%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Signature=bf69278664bab32f8d1e77b4433d132f541683a0b21b7da5048ffe28840245c1"/>
</AIConfiguration>


team

ObjectID related ARSHID of the Table ARESOURCESHIFT - ID of the foreman

It identifies single team or predefined/static crews.

  • preAssignMode: attribute to be used if pre-assigning activities in terms of <days>. It can acquire the following values:

    • aog – all or greedy: default value for identifying the standard pre-assignment mode. Activities are pre-assigned to the team on the specified working day only if massive assignment is allowed (provided that all constraints are complied with). Should even a single activity not be allowed to pre-assignment, nor will the others. Therefore the greedy algorithm shall then manage the overall activities, including the ones previously intended for pre-assignment and such activities may be assigned to different teams / days.

    • aon – all or nothing: Activities are pre-assigned to the team on the specified working day only if massive assignment is allowed (provided that all constraints are complied with). Should even a single activity not be allowed to pre-assignment, the greedy algorithm will be invoked and the available slots in the day considered will not get all reserved, intentionally: activities pending pre-assignment will not be assigned. Therefore, such activities may be assigned to different teams / days. This mode allows the user to manually force/restrict the required assignment of such activities.

  • preAssignFix: attribute intended to specify the number of pre-assigned activities to be blocked and not considered as an input for any further greedy and tsp steps or random actions. Used in case of runtime scheduling during the day, which implies that given activities may have already been carried out and should not be dealt with by the algorithm. Please note that issues may generate if combining this attribute with the pre-assignment of activities related to specific time-slots. 

(

  • aog – all or greedy: è il valore di default ed identifica la modalità standard di preassegnazione. Le attività vengono preassegnate al team nella determinata giornata lavorativa solamente nel caso in cui sia possibile (rispettando tutti i vincoli) assegnarle tutte. Se anche una sola delle attività non è preassegnabile, allora non ne viene preassegnata nessuna e si procede con l’algoritmo greedy su tutte le attività, comprese quelle che sarebbero state da preassegnare. Tali attività possono quindi essere assegnate ad altri team / days.

  • aon – all or nothing: le attività vengono preassegnate al team nella determinata giornata lavorativa solamente nel caso in cui sia possibile (rispettando tutti i vincoli) assegnarle tutte. Se anche una sola delle attività non è preassegnabile, allora si procede con il greedy ma la giornata in questione viene forzatamente non riempita e le attività che erano da preassegnare non vengono assegnate a nessun altro. Questa modalità permette in un secondo momento di forzare / comprimere manualmente l’assegnazione desiderata delle suddette attività.

)

The working schedule is defined by the following elements, being <days> children:

  1. slot: <slot start="hh.mm" end="hh.mm" /> representing the start/end schedule of the working day considering any allowed overtime.

  2. lunch: <lunch start="hh.mm" end="hh.mm" /> representing the start/end of lunch time.

  3. overtime: <overtime start="hh.mm" /> representing the start time of allowed overtime.


TeamType: attribute used for the management of preassigned activities. It's used for in connection with the ActivityType.

Change LOG GC 10: Property meaning changed by Next-Gen FSM Platform 10 - GISWARE 13

The Tag Team used for single resources (NOT IN TEAM) and for predefined Crews.

The team will contain as child nodes the list of workers that make it up. Gisware will send the unordered collection of the "names" of these workers to the AI module. It is not necessary for the worker to exist externally (as a single <worker> node), but if so, the Gisware will engage the worker making him unavailable for the team building phase.

<team name="T1">

<worker name="001§WORKER1" />

<worker name="002§WORKER2" />

</team>

worker

Workers are a VRP entity that represents a member of a (potential) team not yet instantiated as a "team". (Property 'Not a team' in the Scheduling Model to be defined as 'false')

Up to Gisware 11, the VRP can instantiate workers:

  • either as single teams

  • or formations (instantiating a formation that actually becomes a team only when the workers are "hooked" to it);

Starting from Gisware 12 (included), VRP can instantiate workers:

  • either as single teams

  • or formations (instantiating a formation that actually becomes a team only when the workers are "hooked" to it);

  • or by aggregating them into teams with cardinality greater than one using lineups (instantiate a historical team)

We therefore distinguish the three cases:

  • worker instantiated as a single team

  • instantiation of a formation and the subsequent addition of workers to it

  • instantiation of a historical team (via lineup) and the subsequent addition of the indicated workers


Change LOG GC 9.2: Property meaning changed by Next-Gen FSM Platform 9.2 - GISWARE 12

The meaning of the “<worker>” node has changed.

To use it with the old meaning it is necessary to activate the "workersAsLineup = true" attribute in the "<problem>" node.

<worker name="W35423">
<days from="14/11/2022" skills="S1,S2,S3,S4,S21°3,^SX,^U181,^Z_T,^I_T,^P,^TURNO,^W35423" to="14/11/2022">
<location ll="25.798097,-80.213067" type="start"/>
<location ll="25.798097,-80.213067" type="end"/>
<location ll="25.798097,-80.213067" type="pivot"/>
<slot end="17.00" start="08.00"/>
<lunch end="13.00" start="12.00"/>
</days>

</worker>


Change LOG GC 10: Property meaning changed by Next-Gen FSM Platform 10 - GISWARE 13

The "name" definition has changed. The worker comes into play as a child of the <team> or <lineup> nodes, or through the instantiation of a new team from a <formation>.


<worker name="1282§W8192">
<days from="03/01/2022" skills="S1,S2,S3,S4,S5,S22,^SX,^U1282,^Z_T,^I_T,^P,^TURNO,^1282§W8192" to="07/01/2022">
<location ll="25.75247523,-80.21300004" type="start"/>
<location ll="25.75247523,-80.21300004" type="end"/>
<location ll="25.75247523,-80.21300004" type="pivot"/>
<slot end="17.00" start="08.00"/>
<lunch end="13.00" start="12.00"/>
</days>
<days from="10/01/2022" skills="S1,S2,S3,S4,S5,S22,^SX,^U1282,^Z_T,^I_T,^P,^TURNO,^1282§W8192" to="10/01/2022">
<location ll="25.75247523,-80.21300004" type="start"/>
<location ll="25.75247523,-80.21300004" type="end"/>
<location ll="25.75247523,-80.21300004" type="pivot"/>
<slot end="17.00" start="08.00"/>
<lunch end="13.00" start="12.00"/>
</days>
</worker>

Formation

Potential team that can be instantiated

<formation collectDivision="^SX-^SX-^SX,#3" collectSkills="S1,S2,S4,^SX#3" locate="f" maxNumber="1" name="F44100" reduce="t" skills="^I_T,^Z_T">
<constraint type="accept" worker="W39177"/>
<constraint type="accept" worker="W37978"/>
<constraint type="accept" worker="W35788"/>
<constraint type="accept" worker="W36518"/>
<constraint type="accept" worker="W35423"/>
<constraint type="accept" worker="W36153"/>
<constraint type="accept" worker="W35058"/>
<constraint type="accept" worker="W37248"/>
<constraint type="accept" worker="W36883"/>
<constraint type="accept" worker="W39116"/>
<constraint type="accept" worker="W37613"/>
<constraint type="accept" worker="W38343"/>
<days dislocation="max" from="14/11/2022" to="14/11/2022">
<location ll="25.763104,-80.197847" type="start"/>
<location ll="25.763104,-80.197847" type="end"/>
<location ll="25.763104,-80.197847" type="pivot"/>
<slot end="17.00" start="08.00"/>
<lunch end="13.00" start="12.00"/>
</days>
</formation>


Change Log Next-Gen FSM Platform 10 - Gisware 13:

worker definition has changed.

<formation collectDivision="^SX-^SX" collectSkills="^SX#2" locate="f" maxNumber="1" name="F30100" reduce="n" skills="^I_T,^Z_T">
<constraint type="accept" worker="463§W7946"/>
<constraint type="accept" worker="1063§W7366"/>
<days dislocation="max" from="20/12/2021" to="24/12/2021">
<location ll="46.0948035,13.2298188" type="start"/>
<location ll="46.0948035,13.2298188" type="end"/>
<location ll="46.0948035,13.2298188" type="pivot"/>
<slot end="17.00" start="08.00"/>
<lunch end="13.00" start="12.00"/>
</days>
<days dislocation="max" from="27/12/2021" to="27/12/2021">
<location ll="46.0948035,13.2298188" type="start"/>
<location ll="46.0948035,13.2298188" type="end"/>
<location ll="46.0948035,13.2298188" type="pivot"/>
<slot end="17.00" start="08.00"/>
<lunch end="13.00" start="12.00"/>
</days>
</formation>

reduce

This is the attribute to be used to reduce the availability of the Formation based on the availability of technicians

It allows you to schedule Formations in the case of workers with reduced working hours. It is possible to indicate the following values:

n: Formation for the working day is not created;

s (skills reduction): the skills of the worker in question are removed from the entire TeamDay. Therefore, considering a subset of the skills, the working day for this Formation is scheduled as if the worker is not assigned to the activities.

t (time reduction): team work time is reduced so that the worker with reduced working hours can contribute equally to the day's work activity. In this the whole team would end the work shift early; which can be inconvenient for large teams.

locate

It indicates which address to consider: the one related the formation or the one related the worker. Admitted values: f, w

dislocation

It is used to tell the system how to manage the calculation of the distance between two points that have at least one entrance or exit made up of multiple locations. The allowed values are:

max: chooses the combination of points with the greatest one from the calculated distances;

min: it chooses the combination of points with the smallest one from the calculated distances.

MaxNumber

maximum number of formations that can be instantiated of that type. The default is 1.

activity

ObjectID related Property AWOOID of the Table AWOOPERATION


Change LOG GC 10: Property changed by Next-Gen FSM Platform 10 - GISWARE 13

name=”001§TEXT”

where:

  • “001” object ID AWOOID

  • “§” separator

  • “TEXT” free text not used by AI module

<activity name="001§ACTIVITY_1" /> 2<activity name="§UNAVAILABILITY" />

Therefore, AI module receives '001§ACTIVITY_1'and has to be considered only the first part 001 

lunchworking

Parameter used to include lunch break into the scheduled work order or not. Configuration to be done for the single Activity.

formative

Boolean attribute. It gives the possibility to allow (true) or not (false) that the activity is included, with due priority, in the formation of dynamic teams. The default is true.

minDurationEnd - minDurationStart

Minimum duration related the first day and last day for multi-days work orders

policy

Parameter used to identify multi-days activity; Value: heavy

days

Parameter used to define beginning and end of the scheduling period

timeConstraintsWeight

Property supported by Next-Gen FSM Platform 10 - MST → GISWARE 13

Default value is '1'.

It contributes to reduce the feasibility of activities belonging to an MST by using the following math expression:

Feasibility value / (1 + number of related dependencies * weight)

In other words, the feasibility of a stage belonging to an MST is divided by the number of successors it has. This divider is multiplied by this weight. So if timeConstraintsWeight is equal to 0, the feasibility is not divided by this divisor. It is possible to control the reduction of feasibility by setting the weight between 0 and 1 (or greater if needed), where:

  • value 0: the feasibility is not divided and therefore to be part of a MST does not affect more than an appointment; 

  • while value 1: the feasibility is reduced by dividing it by the number of successors of that activity, therefore belonging to a multistage has more influence than an appointment

  • can be greater than 1, if needed


timeConstraints

Property supported by Next-Gen FSM Platform 10 - MST → GISWARE 13

<timeConstraint activity1="7189" activity2="7190" offsetMax="MAXm" offsetMin="180m" requiredAssignment="true-false" type="end-start"/>

Type: type of time dependency: start-start; end-start; sameDay

RequiredAssignment="true-false" → true means that the first activity has to be scheduled. False means that the second one is optional.

Offset min (EarlyStart) → "MIN", "-MIN" (value 'MAXM' means for ever; value 'MINm' means 'from ever'; value 0 only for same day dependency)

Offset max (LateStart) → "MAX", "-MAX" (value 0 only for same day dependency)

workersAsLineup

Property supported by Next-Gen FSM Platform 9.2 - GISWARE 12

Values: True/False.

Attribute of the 'Problem' section that indicates whether to adopt the new scheduling mode with the Team suggestion or the "old" mode. By enabling this feature, workers are considered eligible for Lineup compositions.

The meaning of the “<worker>” node has changed. To use it with the old meaning it is necessary to activate the "workersAsLineup = true" attribute in the "<problem>" node.

affinityFoster

Property supported by Next-Gen FSM Platform 9.2 - GISWARE 12

Attribute of the 'Solver' section and of the setparams phase that indicates the affinity's weight to be used during the selection of the team

lineup

Property supported by Next-Gen FSM Platform 9.2 - GISWARE 12

Entity that represents the team historically used or created in the system. The FSM transfers the activities on which to perform automatic scheduling to the VRP. The historical DISTINCT teams associated with these activities are then taken from the affinity table, and for each historical DISTINCT team the lineups are populated accordingly,


Property supported by Next-Gen FSM Platform 10 - GISWARE 13

The lineup will contain as child nodes the list of workers that make it up. Gisware will send the not sorted collection of the "names" of these workers to the AI module. It is not necessary for the worker to exist externally (as a single <worker> node), but if so, the Gisware will occupy the worker making it unavailable for the team building phase.


<lineup name ="nameLineup"> 2 <worker name="001§W" /> 3</lineup>

<lineup locate="w" name="L-1063§W7366,1064§W7511" reduce="t">
<worker name="1063§W7366"/>
<worker name="1064§W7511"/>
<days from="20/12/2021" to="27/12/2021">
<slot end="24.00" start="00.00"/>
</days>
</lineup>

affinity

Property supported by Next-Gen FSM Platform 9.2 - GISWARE 12

The affinities (= ASSIGNED_PREDICTED) between team / lineup and activity are then reported.

For each "team" (intended as a default team that is passed to the VRP) there will therefore be the representation as <team ...>, where the affinities with the activities to which it is associated will be specified, based on the predictions returned by the AI module.

The same procedure is applied to each "lineup", which will however be represented as <lineup ...>, but with similar content.

In case a "team" is also a "lineup", we simply report its affinities as <team ...>.


<affinity> <team name="team1"> <activity name="ACT1" value="1" /> <activity name="ACT2" value="0.5" /> <activity name="ACT3" value="0.7" /> </team> <lineup name="lineup1"> <activity name="ACT1" value="0.1" /> <activity name="ACT7" value="1" /> </lineup> </affinity>

PreAssignFix

Default Value 'n'. Parameter used in the management of the team and its pre-assigned activities. In the 'Update and Re-actualize' call, it indicates the number of activities that cannot be unscheduled.to the technician

preAssignMode

Values: aon / aog. Attribute to be used if pre-assigning activities in terms of <days>.

respectTimeConstraints 

Property supported by Next-Gen FSM Platform 10 - MST → GISWARE 13

Type od dependency: weak | strong. 

Strong - pre-assigned activities involved in time dependencies (that are pre-assigned to a team in the given working day) are not removed only if it is possible - always according all the other constraints (skills, availability, ...). If only one related time dependency is not satisfied, the preassigned activity involved in the dependency is removed. It is the default value of the attribute.

Weak -  pre-assigned activities involved in time dependencies (that are pre-assigned to a team in the given working day) are NEVER removed even if related time dependencies are not satisfied. As a result, the activity B, with a violated time dependency with activity A, will not be scheduled while A will remain pre-assigned.


<team name="ROSSI" preAssignMode="aon">

<days dislocation="max" from="01/12/2022" skills="S1,S4,^SX,^Z_T,^I_T,^P,^T1" to="01/12/2022">

<location ll="25.763104,-80.197847" type="start"/>

<location ll="25.763104,-80.197847" type="end"/>

<location ll="25.763104,-80.197847" type="pivot"/>

<slot end="17.00" start="08.00"/>

<activity name="B1" respectTimeConstraints="weak">

</days>

</team>

DefaultActivityEndSlot

Property supported by Next-Gen FSM Platform 10 - GISWARE 13

<problem> attributes called DefaultActivityEndSlot and DefaultTeamEndSlot in order to decide the values of end's time's slot when it is not explicit. The default values of these attributes are DefaultActivityEndSlot='48.00' and DefaultTeamEndSlot='24.00' in order to maintain the same response that is returned before this update. Both the attributes can be defined with the same value using the attribute called DefaultEndSlot. These parameters give the option to reduce the end of default slots to 24 hours for requests whitout night shifts. If the default end slot is not reduced, it is possible to receive an error response caused by the new management of overlapped slots introduced with this major release. For example the activity has an input like this:

image2022-4-13_11-26-32.png

the input without new problem attributes creates a time slot for 27/03/2022 day that starts from 00.00 and ends to 48.00. So the part of this time slot that starts from 24.00 and ends to 48.00 is overlapped to 28/03/2022 day and overwrites the appointment defined in explicit time slot inside the definition of 28/03/2022 day.

DefaultTeamEndSlot

Property supported by Next-Gen FSM Platform 10 - GISWARE 13

rifer to DefaultActivityEndSlot attribute

SegmentationPriority

Default Value - 1

SegmentationBase

Default Value - 1.7

strongGreedy

Parameter for launching a greedy with integrated tsp. This modality provides for the assignment of activities which would exceed the day considered if relying on the greedy algorithm; the tsp organizes them as to schedule the overall activities over the day. Possible values are:

  • any: the strongGreedy is applied when adding an activity;

  • app: the strongGreedy is only applied when adding an appointment-based activity;

  • none: the strongGreedy is never applied.
    The default value is none.

feasibilityWeight

Parameter for increasing/decreasing the feasibility weight of an activity when calculating its criticality. The default value is 1.
The feasibility of an activity decreases according to the number of days required to its performance, its duration,  any existing appointment, any required skills and to its cardinality.
Feasibility heavy weight (favorite less feasible/double) --> the VRP assigns an activity which has to comply with a limited performance slot, several skills, appointments, multi day modalities, high cardinality. Inversely proportional to the impact (approximately inversely proportional to the impact).

priorityWeight

Parameter for increasing/decreasing the priority weight of an activity when calculating its criticality (as to integrate the activity feasibility). The default value is 0.
High Priority Impact --> selecting high priority activities

impactWeight

Parameter for increasing/decreasing the impact weight of an activity when calculating its criticality (as to integrate the activity feasibility). The default value is 1. Heavy impact weight --> the VRP assigns the closest activities (minimize displacements - cut down on overall mileage). Set low criticality value for low impact activities. 

relativeimpactWeight

Parameter used to increase or decrease the impact weight of an activity in relation to its duration in the calculation of its criticality (it integrates the feasibility of the activity). The default is 0.

Impact pivot

If increased it gathers activities in a given central/reference point, which is the pivot.
Weight given to the distance from the Pivot. The user may decide whether to operate in the Pivot or not. Break between departure and arrival. ( if the PIVOT is heavy, i.e.: 8, the random Target shall be "p" )

isolationWeight

Parameter for increasing/decreasing the isolation weight of an activity when calculating its criticality (as to integrate the activity feasibility). The default value is 0.
Heavy isolationweight --> the VRP promotes isolated activities (increased overall mileage), not included in a mass center. Low criticality value referred to isolated activities.

(fidelityWeight) → deprecated

FidelityFoster

Available factor for minimizing the impact of a team over the greedy phase, based on the established best practices of the group the activity to be assigned belongs to. To be used with the fidelityGroup attribute referring to <activity>. The default value is 1. The higher its value, the higher the chance to assign a preferred team

lunchAdvance

Coefficient - usually a value included between 0 and 1, except for given specific needs - to determine the lunch-break advance margin. If the value is 0, the lunch-break may not be anticipated; if the value is 1, the lunch break may be anticipated by a time equal to its duration. The default value is 0.5, which determines a lunch-break anticipation margin equal to half its duration.

lunchDelay

Coefficient - usually a value included between 0 and 1, except for given specific needs - to determine the lunch-break delay margin. If the value is 0, the lunch-break may not be delayed; if the value is 1, the lunch break may be delayed by a time equal to its duration. The default value is 1.

impactDay

When calculating the impact generated by the assignment of an activity to a team on a given day, this value is only added if the team has no further activities to perform over the day considered. The goal is to penalize the opening of new days.

impactWastedSkills

This parameter impacts on the approach used for selecting the most suitable team for performing an activity.The value is an integer number to be expressed in minutes. The parameter's default value is zero, which implies that no weight penalizes the level of skills.

If the parameter is valued, then the following strategy is used to weigh skills:

  • Waste: the penalty for each wasted skill ranges from 1 (I am wasting, thus not using, a level 1 skill) to 0 (I have no waste) passing through intermediate values for different levels of waste. This value must then be multiplied by the impactWastedSkill.

  • Second-best skill: the penalty is greater for numerically higher levels. Basically, the penalty for each skill starts from 0 (use of a level 1 skill) and rises as the level increases. This value must then be multiplied by the impactWastedSkill.

 Default value: 0

Skill Level Management--> high impactWastedSkills parameter  --> selection of resources with higer skill level (= lower number) and with few wasted skill

skillAdherence

The default value is 1. Used when calculating the formation score; in further detail, it acts as a score factor. The score measures the formation's ability to perform the activity being considered from time to time; the higher the score, the better the formation. The score gets penalized by skillAdherence, which is due to the abundance or uselessness of the formation skills (wasteCost).

skillDeficiency

It defines the weight in terms of inability of a team/worker in complying with the skills required for a given activity as calculated by the waste value. Deficiency example: the activity requires the "S1" skill but the team only provides the "S1°2" one (second level S1).

The default value is 1. The value referred to this parameter and to its skillExcess equivalent should be included between 0 and 1.

If the problem involves a possible large number of deficiencies and few possible wasted skills, then it is best to use a small value of skillDeficiency (like 0.2) to have a good balance between the deficiency value and the excess value.

Instead, to increase or decrease the weight of wasteCost, you can use skillAdherence or impactWastedSkills depending on the phase where you want to apply the change. 

skillExcess

It defines the weight in terms of excessive ability of a team/worker in complying with the skills required for a given activity as calculated by the waste value. Overskilled/excess example: the activity requires the "S1" skill but the team also provides the "S2,S3,S4,S5" ones. 

The default value is 1. The value referred to this parameter and to its skillDeficiency equivalent should be included between 0 and 1.

If the problem involves a possible large number of wasted skill and few possible defiencies, then it is best to use a small value of skillExcess (like 0.2 or 0.1) to have a good balance between the deficiency value and the excess value.

Instead, to increase or decrease the weight of wasteCost, you can use skillAdherence or impactWastedSkills depending on the phase where you want to apply the change.

exclusionGroup

This attributes specifies the name of the mutual exclusion group the activity belongs to. Therefore, upon assigning an activity belonging to the exclusionGroup, all further activities belonging to such group are removed from the list and not subject to any scheduling. Parameter used to manage 'preferred' Team scheduling

fidelityGroup

The related value requires the name of a group for inserting the set of activities to be scheduled to the same team. Thus, whenever an activity belonging to a fidelityGroup gets scheduled, the team it is associated with gets included among the fidelity ones related to this group; each time the assignment of an activity belonging to the same group is required, all fidelity teams (with at least one group activity assigned), become preferred teams reducing their impact through the fidelityWeight factor, specified among the parameters. For further details, please go to the Parameters section for the <setparams> settings. When using fidelity teams we recommend to set the fixedTeam value as a constraint of the <activity> belonging to a fidelityGroup, as to provide for the random exchange of activities over the days referring to a same given team, not allowing any exchanges with different teams, though. As a matter of fact, this management mode is not impacted by the weight of this attribute and the exchange among fidelity teams is not supported.

randomTarget1, randomTarget2

Used in case of random actions and determining what required actions are useful to improve the resulting scheduling. They may acquire the following values (low-case letters refer to the overall scheduling, while upper-case ones refer to forthcoming days to the detriment of future ones):

  • h, H: homeTime improvement.

  • d, D: improvement in terms of delta, to be considered as the gap between the excellent schedule and the actual closing one.

  • m, M: moveTime improvement

  • e, E: effort improvement.

  • w, W: wait time improvement

  • c, C: the values determining the improvement of overall team costs may be specified too, though a linear combination. To view the used values, please refer to the <phase> node's children parameters, ending with Cost.

  • s, S: these values may be specified, as well. This target shall be used for improving the association between teams (and related skills) and activities, the goal being to cut down on the cost of wasted skills and of those used as second-best.

  • p, P: values referring to the improvement of the work distance from the reference pivot (aimed at reducing the distance from the pivot considered).
    Multiple values may be matched. In this case, the action will be approved if no parameters get worse and at least one of them improves. For example, when using the "pm" parameter, the action will only be approved if nor the pivot neither the move got worse and at least one of them improved

Change LOG Next-Gen FSM Platform 10: Property supported by Next-Gen FSM Platform 10 - GISWARE 13

  • a: improvement of the scheduling based on the compatibility of a team with his overall agenda

  • A: improvement of the scheduling based on the compatibility of a team with his overall agenda (performed only on next days)

  • ma/MA: moveTime and affinity improvement

  • wa/WA: wait time and affinity improvement

  • ea/EA: effort and affinity improvement.

It is also possible to combine multiple values. In that case, the move will be accepted if there is no deterioration for each parameter and at least one improvement on one of them. For example, if the "ma" parameter is used, the move will be accepted if neither the 'movement' nor the 'affinity' has worsened and if at least one of the 'affinity' and 'movement' has improved.

randomRadius

This parameter may be associated with the expansive value of the randomStrategy attribute, to define the range for the random extraction of activities related to random actions. the attribute acquires the value included in the [0 - 1] interval, its default value being 0.3.
0 → exchange of one activity at a time
1 → all activities scheduled to resource A and B are available for rescheduling

impactType

Evaluation modality of the impact of a ith ai activity when considering its assignment to a given jth dsj DaySlot (as in the greedy phase). The following values are allowed:

  • connectDistance: defualt value. It evaluates impact as enterTime+exitTime

  • worseningDistance (DEFAULT): it evaluates impact as enterTime+exitTime-currentTime

  • nearestDistance: it evaluates impact as min(enterTime,exitTime)*2

  • startTime: it evaluates the impact as numDayFromStartProblemInMinutes+dsiStart

    where:
    enterTime: time required for displacing from the DaySlot dsj-1 activity to the ai one (if there are no previous activities, the team's departure point is considered);
    exitTime: limit time for departing from activity ai and reach the DaySlot dsj+1 activity in time (lacking the assignment of further activities – as in the greedy – the team's arrival point is considered);
    currentTime: time required for displacing from the DaySlot dsj-1 activity to the DaySlot  dsj+1 one;
    numDayFromStartProblemInMinutes: number of days passed from the moment the fault was reported to the moment the DaySlot dsj is entered, expressed in minutes;
    dsiStart: Start time of DaySlot dsj.

Starting with release 9.1, the default has changed from connectDistance to worseningDistance.

image2022-2-2_17-22-47.png

dayCrossing

boolean for enabling the exchange of activities over different days, following a random action.

teamCrossing

boolean for enabling the exchange of activities among different teams, following a random action. If true, activities can be exchanged among different teams, if false the activities may only be exchanged over different days for the same team. The default value is true.

fill factor

If value = 100, the 100% of the day gets filled. Not considered by random actions only in the assignment phase "solo_ acr" ( by default already set at 100)

activity types

Filter used for choosing the activities subject to the greedy phase and to that referring to the random exchange of activities. Compared to the activityTags, it does not accept in/or clauses but it authorizes type calculation. For example: "CHIUSURACONTATORE=5, APERTURA CONTATORE=2".
Examples:
public static final String TIPO_ATT_AGENDA = "AG";

public static final String TIPO_ATT_BLOCCATA = "BL";

public static final String TIPO_ATT_SATURAZIONE = "SA";

public static final String TIPO_ATT_SATURAZIONE_SCADUTA = "SASCAD";

public static final String TIPO_ATT_ASSEGNATE = "AS"; // pre-assigned activities in case of optimize/re-calibrate or multi-day activities as for model processing

public static final String TIPO_ATT_ASSEGNATE_FIRST = "ASFIRST"; // pre-assigned and in progress activities in case of optimize/re-calibrate (attività preassegnata ed in corso nel caso di ottimizza/ritara (to maintain as before)

public static final String TIPO_ATT_INDISPONIBILITA = "IN";//

public static final String TIPO_ATT_ASSOCIAZIONE_BASE = "AB"; //no longer used (previous Italgas management of the constraint among Agenda - Booking and scheduling resource

public static final String TIPO_ATT_ASSEGNATA_INT_SQUADRA = "ISQ";

public static final String TIPO_ATT_ASSEGNATA_INT_RIS_SINGOLA = "IRS";

public static final String TIPO_ATT_REALE_PREASS_AGENDA = "PREAG";

public static final String TIPO_ATT_REALE_PREASS_BLOCCATA = "PREBL";

public static final String TIPO_ATT_REALE_PREASS_SATURAZIONE = "PRESA";

public static final String TIPO_ATT_REALE_PREASS_SAT_SCADUTA = "PRESASCAD";

public static final String TIPO_ATT_REALE_PREASS_PLURI_GIOR = "PREPLURI";

public static final String TIPO_ATT_REALE_PREASS_PLURI_GIOR_SQ = "PREPLURI_SQ";

public static final String TIPO_ATT_REALE_PREASS_AGENDA_SQ = "PREAG_SQ";

public static final String TIPO_ATT_REALE_PREASS_BLOCCATA_SQ = "PREBL_SQ";

public static final String TIPO_ATT_REALE_PREASS_SAT_SQ = "PRESA_SQ";

public static final String TIPO_ATT_REALE_PREASS_SAT_SCAD_SQ = "PRESASCAD_SQ";//

public static final String TIPO_ATT_IN_CORSO = "IN_CORSO";//

public static final String TIPO_ATT_IN_CORSO_SQ = "IN_CORSO_SQ";

public static final String TIPO_ATT_REALE_PREASS_ORDINATE = "PREFIX_ORDINATE";
public static final String TIPO_ATT_RT_LIBERO = "Libero";

public static final String TIPO_ATT_RT_MAI_SCAMBIARE = "MaiScambiare";

public static final String TIPO_ATT_RT_MAI_RIMUOVERE = "MaiRimuovere";

public static final String TIPO_ATT_RT_SOLO_SE_NON_FATTIBILE = "SoloSeNonFattibile";

useAllWorkers

Boolean parameter (its default value being set to false) that forces the ultimate use of all remaining workers, even if they are useless.

activityTags

This parameter, already used in the greedy insertion phases as well as in the random transfer/exchange of activities, may be adopted – together with the tags parameter of activities – for the more efficient matching of complex filter logics, thus not requiring to explode the filter attributes into Cartesian products for the type attribute. The type attribute can only be used if only one type per activity is provided, the activityTypes filter does not accept in/or clauses although it authorizes type calculation, such as "CHIUSURACONTATORE=5, APERTURACONTATORE=2". In order to apply and conditions, the "," symbol gets used; while or conditions are identified by “|”. 

For example, if defining the activityTags as “T1,T2|T3”, only those activities reporting T1 tags and one tag between T2 and T3 will be reported. The tag writing order does not provide for different solutions; so there is no difference in writing “T1,T2|T3” or “T2|T3,T1”.

rangeDrop

This parameter limits the scheduling to a given date range. In further detail, if forcing the rangeDrop (its default value being equal to the fault's end day value), the activities must be scheduled within the date range included between the day the fault was reported and the day specified by the rangeDrop (therefore, no activities will be scheduled following the date specified by the rangeDrop).

Skill

In order to specify a skill level and cardinality, the following syntax is used: NOME_SKILL°n#m with 'n' specifying the level and 'm' the cardinality (that is the number of times a given skill is owned by a resource, as when the team counts two resources having the same skill).
Specific guidelines may be set, such as that given skills should be provided by different resources and that the team should consist of n resources, at most. This also applies to team's skills. The attribute acquires a broader meaning as regards the composition of skills. Therefore, " ING-MED, RAG" skills may be specified to highlight that the team provides the ING, MED, RAG skills, even though the resource with the ING skill differs from the one owning the MED and RAG skills. This conveys the implicit information on the team consisting of two resources.
The division is identified by the – (minus) sign, cardinality by the # (hashtag) followed by a number: collectDivision = " ING-MED, MED-RAG, #3" pointing out that the resource owning the ING skill shall differ from the resource with the MED one; a resource owning the MED skill shall differ from a resource with the RAG one and the formation may consist of 3 resources, at most.
Ex.
collectDivision="S2-S3,^SX-^SX,#3" →  management of min and max cardinality when invoking the VRP
^SX-^SX to specify min cardinality
S2-S3 identifying the skill division with two skills
#3 specifying max cardinality

metaskill

The ones having the ^ character as a prefix (usually specifying the team's name, such as ^ROSSI), are only used for matching activity requirements to team availability and are costless.

  • Sxxx are the actual skills, the number is the skill ID in the Table TSKILL (i.e. SELECT * FROM  TSKILL WHERE TSKIID = 341 )

  • Following the main meta-skill used in the integration:

    • ^SX Single resource that can be assigned to a formation

    • ^SX-^SX-^SX Formation composed by three resources

    • ^Z_T Resource can be scheduled to all the scheduling areas;

    • ^Z_342 Resource can be scheduled only to Scheduling Area 342;

    • ^I_T  Resource that can be assigned to all subcontractor activities.

    • ^I_365  Resource can be assigned only to subcontractor's 365 activities (Contractor related is defined in the work order master data)

    • ^P Resource can be assigned to multidays work order

    • ^TURNO Resource can be assigned to activities only during his 'on duty' work shift

    • ^R11314 Resource can be assigned to activities only during his 'on call' shift 11314 (rcut of the on call shift)

    • ^T413942 Work order can be assigned to team 413942. ObjectID related ARSHID of the Table ARESOURCESHIFT - ID of the foreman

    • ^U81 Resource ID (AUSEID) of Table AUSER

    • ^W11342 Work order can be assigned to team id of foreman. ObjectID related ARSHID of the Table ARESOURCESHIFT - ID of the foreman

    • ^MST_IMPOSSIBLE means that the activity is included in a multistage chain and can't be planned 

    • Filters used for choosing the activities subject to the greedy phase or random exchanges of activities.  Compared to the activityTags, it does not accept in/or clauses but it allows type calculation.

      • type="_AG" booking activities (agenda)

      • type="_BL" locked activities (with manual appointment)

      • type="_SA" saturation activities

      • type="_PREFIX_ORDINATE" pre-assigned activities

      • type="_LIBERO" free, activities exchanged between resources during real time process

      • type="_SASCAD" saturation activity expired

      • type="S1_SA" - saturation activity for a team composed by a single resource

      • type="S2_SASCAD" - saturation expired activity for a team composed by two resources

timeScope,

timeScopeStart,

timeScopeEnd,

timeScopePivot

Tag team attributes. They are optional attributes used to indicate a minimum and a maximum time view for reaching the location associated with the team. The value must be expressed in seconds.

The attribute must be indicated with two values, separated by a comma, indicating respectively the minimum and the maximum: timeScope = "min,max". It is also possible to indicate a single value: timeScope = "val" in which case the value is assigned to the maximum. Indicating a single value is therefore like indicating timeScope = “0,val”. If the minimum and maximum value coincide, then applying these attributes is like using a teleportation but limited within a certain range, established precisely by the value defined for the attribute.

When it comes to calculating the time distance between two locations - for example between the location associated with the team and the one of an activity - the scope of both locations is taken into account; if the time distance is greater than the maximum value between the two max scope values ​​for the locations in question, then the algorithm will return an infinite travel time between the two points (and therefore the point will not be taken into consideration for the scheduling) . If the point from which the point associated with the team is to be reached is at a temporal distance below the minimum temporal vision, then navigation between the two points takes place in zero time (as in the case of teleportation).

If the user wants to differentiate the timeScope value for the starting point, for the arrival point and for any pivot point of the team, then the attributes to indicate are respectively: timeScopeStart, timeScopeEnd e timeScopePivot.