Personnaliser le tableau de planification avec un attribut de ressource personnalisé
Le tableau de planification peut être personnalisé et étendu pour vous aider à répondre à vos besoins professionnels. Par exemple, les informations sur les ressources, les champs du volet de filtrage ou les options de tri.
Prenons le scénario de personnalisation suivant :
Chaque ressource pouvant être réservée est associée à un coût basé sur des facteurs, tels que le niveau d’ancienneté et de certification. Les répartiteurs souhaitent consulter le coût général de leurs ressources, de même que pouvoir les trier et les filtrer par coût. Plutôt que d’utiliser un coût exact de la ressource, ce scénario utilise un score de coût relatif allant de 1 (coût de la ressource le plus faible) à 10 (coût de la ressource le plus élevé). Nous utilisons la portée dans la cellule de ressource, le volet de filtre et les options de tri.
Étape 1 : Ajouter le nouvel attribut à l’entité de ressource pouvant être réservée
Accédez à Personnalisations>Personnaliser le système>Ressource pouvant être réservée>Champs et ajoutez un nouveau champ nommé Coût de la ressource avec le nom de schéma tsp_resourcecost.
Utilisez le type de données Groupe d’options et sélectionnez le groupe d’options existant défini sur Niveau d’importance pour utiliser une liste de valeurs de 1 à 10.
Ajoutez le champ nouvellement créé au formulaire avant de Publier les modifications.
Étape 2 : créer ou mettre à jour un tableau de planification
Accédez au tableau de planification auquel vous souhaitez ajouter le nouvel attribut de coût de ressource.
Étape 3 : Modifier le modèle de cellule de ressource
L’indicateur de coût de ressource doit être affiché dans le modèle de la cellule de ressource. La police Awesome peut être utilisée pour afficher les icônes, telles que €, $ et £.
Le fichier HTML dessine d’abord cinq icônes grises en arrière-plan, puis cinq icônes jaunes en premier plan. Le nombre d’icônes de premier plan est mappé sur la valeur du coût de la ressource. Par exemple, une valeur de coût de ressource de 2 équivaut à 20 %, donc une seule des cinq icônes jaunes Euro s’affiche.
Ouvrez les paramètres du tableau de planification, sous Autre, créez un Modèle de cellule de ressource personnalisé.
Insérez l’extrait de code suivant dans le modèle de cellule de ressource personnalisée. Changez le symbole en remplaçant fa-euro
.
<div class='resource-card-wrapper {{iif ResourceCellSelected "resource-cell-selected" ""}} {{iif ResourceUnavailable "resource-unavailable" ""}} {{iif IsMatchingAvailability "availability-match" ""}}'>
{{#if imagepath}}
<img class='resource-image' src='{{client-url}}{{imagepath}}' />
{{else}}
<div class='resource-image unknown-resource'></div>
{{/if}}
<div class='resource-info'>
<div class='resource-name primary-text ellipsis' title='{{name}}'>{{name}}</div>
<div class='secondary-text ellipsis'>
<div class="back-stars" style="color: #EEEEEE; position: relative; display: inline-block;">
<i class="fa fa-euro" aria-hidden="true"></i>
<i class="fa fa-euro" aria-hidden="true"></i>
<i class="fa fa-euro" aria-hidden="true"></i>
<i class="fa fa-euro" aria-hidden="true"></i>
<i class="fa fa-euro" aria-hidden="true"></i>
<div class="resourcecost" style="width: {{resourcecost}}0%; color: #FFBC0B; position: absolute; top: 0; left:0; display: inline-block; overflow: hidden;">
<i class="fa fa-euro" aria-hidden="true"></i>
<i class="fa fa-euro" aria-hidden="true"></i>
<i class="fa fa-euro" aria-hidden="true"></i>
<i class="fa fa-euro" aria-hidden="true"></i>
<i class="fa fa-euro" aria-hidden="true"></i>
</div>
</div>
</div>
<div class='secondary-text ellipsis'>
{{#if (eq (is-sa-grid-view) false) }}
<div class='booked-duration'>{{BookedDuration}}<div class='fo-sch-clock'></div></div>
<div class='booked-percentage'>{{BookedPercentage}}%</div>
{{/if}}
</div>
{{#if (eq (is-sa-grid-view) false) }}
<div class='matching-indicator'></div>
{{/if}}
</div>
{{#if (eq (is-sa-grid-view) false) }}
{{> resource-map-pin-template this }}
{{/if}}
</div>
Note
JavaScript n’est pas pris en charge dans le modèle de cellule de ressource.
Étape 4 : Modifier la disposition du filtre
Dans cette étape, nous définissons un score de coût maximum lors du filtrage et de la recherche de ressources et du tri par score de coût.
Dans les paramètres de l’onglet du tableau de planification, accédez à Disposition du filtre et créez un modèle personnalisé.
Insérez l’extrait de code suivant dans le modèle de présentation du filtre personnalisé.
<?xml version="1.0" encoding="utf-8" ?>
<filter>
<controls>
<control type="characteristic" key="Characteristics" label-id="ScheduleAssistant.West.Skills" />
<control type="combo" source="optionset" key="ResourceCost" label-id="Resource Cost Limit" entity="bookableresource" attribute="tsp_resourcecost" multi="false">
</control>
<control type="combo" source="entity" key="Roles" inactive-state="1" label-id="ScheduleAssistant.West.Roles" entity="bookableresourcecategory" multi="true" />
<control type="combo" source="entity" key="Territories" unspecified-key="UnspecifiedTerritory" label-id="ScheduleAssistant.West.Territories" entity="territory" multi="true" />
<control type="combo" source="entity" key="OrganizationalUnits" label-id="SB_FilterPanel_OrganizationalUnitsFilter_Title" inactive-state="1" entity="msdyn_organizationalunit" multi="true" />
<control type="combo" source="optionset" key="ResourceTypes" label-id="SB_FilterPanel_ResourceTypesFilter_Title" entity="bookableresource" attribute="resourcetype" multi="true">
<data>
<value id="2" />
<value id="3" />
<value id="4" />
<value id="5" />
</data>
</control>
<control type="combo" source="entity" key="Teams" label-id="SB_FilterPanel_TeamsFilter_Title" entity="team" multi="true" />
<control type="combo" source="entity" key="BusinessUnits" label-id="SB_FilterPanel_BusinessUnitsFilter_Title" entity="businessunit" multi="true" />
<control type="order" key="Orders" label-id="FilterControl_OrderLabel">
<order name="name" entity="bookableresource" attribute="name" />
<order name="resourcecost" entity="bookableresource" attribute="tsp_resourcecost" />
<order name="proficiencyscore" entity="bookableresourcecharacteristic" attribute="ratingvalue" />
</control>
</controls>
</filter>
Étape 5 : Modifier la requête
Enfin, nous modifions la requête réelle et incluons le nouveau filtre. Dans les paramètres de l’onglet de planification, accédez à Requête de récupération de ressources, modifiez la requête par défaut et copiez l’intégralité du code. Ensuite, créez un modèle personnalisé et collez le code par défaut. Le code par défaut est long. Voici uniquement les extraits de code à coller dans une requête de ressource existante.
Après <entity name="bookableresource">
, insérez <attribute name="tsp_resourcecost" alias="resourcecost" groupby="true"/>
Après the last </filter> tag of the <!-- Territory filter -->
, saisissez l’extrait de code suivant :
<filter type="or" ufx:if="$input/ResourceCost">
<condition attribute="tsp_resourcecost" operator="le">
<ufx:value select="$input/ResourceCost" attribute="value" />
</condition>
</filter>
Étape 6 : Tester votre nouveau tableau de planification
Dans le tableau de planification, nous avons défini un facteur de coût maximum de 5 et un ordre de tri croissant basé sur les coûts.