K2 Five – Continuer à utiliser des inline functions custom

La gestion des inline functions sur la version Five de K2 a changé comparée aux versions 4.X. Mais pas de panique !

Il est toujours possible d’utiliser les inline functions que vous aviez installées avant de mettre à jour votre plateforme, ou qui avaient été développées avant la sortie de K2 Five. Il y a simplement quelques étapes supplémentaires à suivre pour les installer. Je vais vous montrer ça, suivez le guide 

Comme pour les versions antérieures à K2 Five, la première chose à faire pour déployer une inline function custom sur votre environnement est de placer son fichier binaire (.dll) dans les répertoires “Bin\Functions” et “Host Server\Bin” de votre installation. Pour rappel, le répertoire d’installation par défaut de K2 est :

  • “C:\Program Files (x86)\K2 blackpearl\” pour les versions 4.X et Five mises à jour à partir d’une version 4.X
  • “C:\Program Files (x86)\K2\” pour les versions Five

Pour les versions 4.X de K2, c’est tout ce que nous avions à faire. Pour la version Five, il faut en plus enregistrer notre DLL dans le fichier “InlineFunctionLookup.json” situé également dans le dossier “Host Server/Bin”.

Voilà à quoi il ressemble avant modification :

{
    "1": {
       "AssemblyName": "SourceCode.Workflow.Functions.DataFunctions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d" 
    },
    "2": {
       "AssemblyName": "SourceCode.Workflow.Functions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d" 
    },
    "3": {
       "AssemblyName": "SourceCode.Workflow.Functions.ExcelServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d" 
    },
    "4": {
       "AssemblyName": "SourceCode.Workflow.Functions.OpenXML, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d" 
    },
    "5": {
       "AssemblyName": "SourceCode.Workflow.Functions.SharePoint, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d" 
    }
}

Nous devons donc ajouter une entrée à la fin de ce fichier avec le fullname de notre assembly. Pour connaître ce fullname, vous pouvez exécuter la ligne de commande PowerShell suivante (à adapter évidemment en fonction du nom et de l’emplacement de votre DLL lorsque vous exécutez la ligne de commande) :

([system.reflection.assembly]::loadfile("c:\MaDLL.dll")).FullName

Dans mon cas, je souhaite installer la très pratique inline function “Unique” créée par Pierre et disponible sur community.K2.com, sur un environnement 4.7 installé dans le dossier par défaut puis mis à jour vers K2 Five. Mon invite de commande PowerShell ressemble donc à ça :

Une fois ma ligne de commande exécutée, PowerShell me renvoie la ligne suivante :

Je n’ai ensuite qu’à copier cette ligne dans mon presse-papier, ajouter un nouvel élément JSON dans le fichier “InlineFunctionLookup.json”. Dans mon cas, je n’avais aucune autre inline function custom d’installée sur mon environnement, donc j’ajoute le texte suivant directement après l’avant dernière accolade fermante “}” du fichier :

,
   "6": {
      "AssemblyName": "

Si d’autres inline functions custom sont déjà installées sur votre environnement il faut bien entendu incrémenter le nombre entre guillemets (ici : 6) pour chaque nouvelle fonction.

Je colle ensuite la ligne PowerShell que j’avais copiée au préalable, puis je referme les guillemets et l’accolade que j’avais ouverts :

"
   }

Mon fichier ressemble donc maintenant à ça :

{
   "1": {
      "AssemblyName": "SourceCode.Workflow.Functions.DataFunctions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d" 
   },
   "2": {
      "AssemblyName": "SourceCode.Workflow.Functions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d" 
   },
   "3": {
      "AssemblyName": "SourceCode.Workflow.Functions.ExcelServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d" 
   },
   "4": {
      "AssemblyName": "SourceCode.Workflow.Functions.OpenXML, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d" 
   },
   "5": {
      "AssemblyName": "SourceCode.Workflow.Functions.SharePoint, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d" 
   },
   "6": {
      "AssemblyName": "SourceCode.Field.InlineFunction.Unique, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ba0b212fe33d5b93"
   }
}

J’enregistre mes modifications sur le fichier. Dernière chose à faire : redémarrer mon serveur K2 afin qu’il prenne en compte ces modifications.

Si j’ouvre maintenant la modélisation d’un workflow dans mon K2 Designer à l’onget Functions de mon context browser, je retrouve bien les fonctions que j’ai installées :

Youpi !

Il ne vous reste plus qu’à utiliser vos inline functions comme n’importe quelle autre fonction à votre disposition dans votre Designer ! 

C’est tout pour cette fois. A la semaine prochaine !

Thomas

Chez K2 France depuis 2013, je ne suis pas magicien mais j'ai tout de même quelques tours dans mon sac en matière d'applications K2, dont je veux bien vous révéler les secrets ;-)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.