Mise en place d’une tâche personnalisée dans Vault


Le Job Processor est une application permettant de traiter des tâches récupérées depuis le serveur Vault.
Lorsqu’un utilisateur effectue un changement d’état dans un cycle de vie auquel est associé une tâche, cette dernière est envoyée vers la file d’attente des tâches du serveur Vault.

Si un Job Processor est disponible pour exécuter cette tâche, la machine correspondante effectue le traitement et renvoi le résultat de l’opération au serveur.

Les tâches personnalisées

Les tâches exécutées par le Job Processor peuvent être natives mais également personnalisées, dans ce cas, il s’agit d’un développement. Le comportement (déclenchement et exécution) est identique aux tâches natives mais le traitement est spécifique au développement réalisé.

Afin de réaliser une tâche personnalisée, il est nécessaire de faire appel à des assemblys Autodesk et de créer des classes spécifiques au Job Processor.

Création d’une tâche personnalisée

  • Créez un nouveau projet .Net de Bibliothèque de classes :

Dans cet exemple, le projet se nomme « MyCustomTask ».

  • Ajoutez la librairie suivante à vos références :
  • Implémentez l’interface « IJobHandler» à la classe de notre projet :

Dans cet exemple, la classe s’appelle « JobProcess », ce sera le point d’entrée de notre tâche personnalisée.

Les deux méthodes qui nous intéresse sont :

  • « CanProcess» qui détermine si la tâche peut s’exécuter.
  • « Execute» qui représente le contenu de notre tâche personnalisée.

Les autres méthodes sont des évènements spécifiques pouvant être utiles selon le besoin.

  • Afin qu’une tâche soit reconnue par le Job Processor, il faut impérativement renseigner certaines informations. Avant cela, ajoutez la librairie suivante à vos références :
  • Ajoutez les lignes suivantes après les using de votre classe :

        [assembly: ApiVersion(“XX.X”)]
       [assembly: ExtensionId(“XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”)]

  • L’ApiVersion est relative à la version de Vault que vous utilisez. Il ne semble pas exister de tableau de correspondance fourni par Autodesk permettant de connaitre le numéro de version associé à chaque version de Vault.
    J’utilise Vault 2021 et l’ApiVersion est la 14.0.
    Pour Vault 2020, l’ApiVersion est la 13.0.Et ainsi de suite…
  • L’ExtensionId doit être un nouvel ID que vous pouvez générer en utilisant l’outil « Create Guid» dans le menu « Outils » de Visual Studio.
  • Renseignez les champs suivants dans les informations d’assembly de notre projet :
    • Société
    • Produit
    • Description
  • Ajoutez un nouveau fichier à notre projet :
    • Ce dernier doit porter le même nom que notre assembly, dans notre cas « MyCustomTask»
    • Et doit être de l’extension « .vcet.config»
    • Ajoutez les lignes suivantes à votre fichier :

       <?xml version=”1.0? encoding=”utf-8? ?>


       <configuration>
           <connectivity.ExtensionSettings3>
               <extension

interface=”Autodesk.Connectivity.JobProcessor.Extensibility.IJobHandler,
Autodesk.Connectivity.JobProcessor.Extensibility”

             type=”MyCustomTask.JobProcess, MyCustomTask “>

             <setting key=”JobType1? value=”MyCustomTask”/>

          </extension>

        </connectivity.ExtensionSettings3>

   </configuration>

L’attribut « type » doit correspondre à « Namespace.Class, Namespace » de la classe qui implémente IJobHandler, dans notre cas « MyCustomTask.JobProcess, MyCustomTask ».
Concernant l’attribut « value », il correspond au nom de la tâche. Pour faciliter la lisibilité, je fais correspondre ce nom à celui de l’assembly de notre projet, ici « MyCustomTask ».

  • Pour notre exemple, nous allons afficher un « Hello World ! » dans une MessageBox à l’exécution de notre tâche. Pour se faire, nous n’allons pas effectuer de vérification particulière dans le « CanProcess» et retourner un « Success » à l’exécution de la méthode « Execute ».
  • Compilez le projet
  • Rendez-vous dans le répertoire :

C:\ProgramData\Autodesk\Vault XXXX\Extensions\
Le répertoire Vault doit correspondre à la même version de Vault que celle visée par les références utilisées dans votre projet.

  • A cet emplacement, créez un répertoire.
    Dans mon cas, « MyCustomTask»
  • Copiez la DLL générée et le fichier .vcet.config dans ce nouveau répertoire.
  • Exécutez le programme Job Processor
  • Cliquez sur Administration -> Types de tâches…
  • La fenêtre suivante s’affiche et votre tâche doit être listée comme ci-dessous :
  • Fermez cette fenêtre, dans le menu « Fichier » du Job Processor, cliquez sur « Pause»
  • Dans le menu « Administration», cliquez sur « Paramètres » et connectez-vous au serveur Vault ciblé.
  • Une fois connecté, dans le menu « Fichier», cliquez sur « Reprendre ».

Configuration de la tâche dans Vault

Afin de déclencher l’exécution de la tâche, il faut définir les conditions de déclenchement dans Vault. Au sein de Vault, ces conditions résident dans le changement d’état d’un document car nous pouvons attacher l’exécution d’une tâche lors d’une transition d’état.

  • Ouvrez Vault Client
  • Rendez-vous dans le menu Outils -> Administration -> Paramètres du Vault
  • Dans l’onglet «Comportements », cliquez sur « Cycles de vie. »
  • Sélectionnez le cycle de vie souhaité et cliquer sur « Modifier»
  • Sélectionnez l’état sur lequel on souhaite effectuer des modifications et cliquez sur l’onglet « Transitions ».
  • Sélectionnez la transition pour laquelle on souhaite ajouter la tâche et cliquer sur « Modifier».

Ici, on a sélectionné la transition de l’état « En cours » vers l’état « Approuvé ».

  • Sélectionnez l’onglet « Types de tâches personnalisées», cliquez sur « Ajouter » et renseignez le nom de la tâche.

Cela doit correspondre avec la valeur saisie

  • Validez afin de revenir à l’explorateur Vault et effectuer la transition d’état que nous venons de configurer sur le cycle de vie concerné par nos modifications.
  • Si vous affichez la « File d’attente des tâches» depuis le menu « Outils » de Vault, la fenêtre suivante s’affiche et vous pouvez voir la tâche en attente du Job Processor :
  • A la prochaine écoute du Job Processor, la tâche sera traitée. Par défaut, l’intervalle d’écoute du Job Processor est de 10 minutes.

Il est toutefois possible de passer outre cette intervalle en cliquant sur « Pause », puis « Reprendre » dans le menu Fichier du Job Processor.