Que faire s'il n'y a pas assez de cubes pour construire un robot?

Mon article précédent a été écrit principalement pour les chefs de projet et les gestionnaires RPA. Je voudrais d'abord adresser cet article aux programmeurs et à ceux qui doivent faire face à la robotique.

Les premiers processus qu'un programmeur RPA nouvellement créé doit créer coûtent généralement un ensemble de «blocs» standard qui se trouvent dans la boîte avec la plate-forme. Mais qu'en est-il s'ils manquent? Presque n'importe quelle plate-forme RPA moderne peut être étendue d'une manière ou d'une autre, que ce soit en appelant une méthode DLL en AA, du code Groovy en WF ou Code Stage en BP.

Mais cet article est écrit sur une plate-forme que je connais bien (UiPath), donc pour ceux qui préfèrent d'autres goûts et couleurs de robots, veuillez ne pas être offensé à l'avance.



Bien que certaines choses dans l'article soient assez banales et que vous puissiez les apprendre en suivant les cours appropriés, en lisant la documentation ou en étudiant le forum, il me semble que beaucoup trouveront utile de les voir au même endroit, comme un article en russe. Si vous avez des ajouts ou des commentaires, je vais essayer de finaliser l'article afin qu'il soit aussi utile et pertinent que possible.
Les moyens d'étendre les fonctionnalités de l'article vont du plus simple (téléchargement prêt à l'emploi) au plus difficile (écrivez le vôtre).

App store


Hit solutions sur UiPath Go!

Depuis la fin de 2018, UiPath a quelque chose comme une «app store» appelée Go . Les développeurs du monde entier, y compris les employés de l'entreprise eux-mêmes, partagent des actions utilisateur utiles (ou pas), des morceaux de code, des modèles d'applications et d'autres développements utiles qui simplifient considérablement la vie.

Il y a beaucoup de tout, par exemple, un excellent connecteur vers Salesforce, qui prend la part du lion du travail ou un connecteur écrit par Abbyy à Abby Flexicapture.

Maintenant, c'est la méthode pour étendre les fonctionnalités recommandées par le fabricant lui-même.En outre, la migration des extensions qui vivaient dans le référentiel NuGet officiel (Galerie) a déjà commencé là-bas.

Avez-vous regardé le PackageManager?


UiPath PackageManager

Un peu plus hardcore, mais toujours assez accessible à l'utilisateur moyen, utilise la fonctionnalité de gestionnaire de paquets.

Il a été implémenté via NuGet , ce qui signifie qu'en plus d'utiliser des référentiels "publics", personne ne nous dérange en élevant le nôtre et en l'utilisant au sein de l'entreprise pour distribuer des actions et des bibliothèques de notre propre conception.

Nous recherchons dans le gestionnaire de packages le mot clé UiPath et obtenons un grand nombre d'actions différentes qui augmentent considérablement nos capacités sans nécessiter aucun effort de notre part.

Ainsi, maintenant, des composants de plateforme assez officiels sont distribués, y compris le Web Activities Pack (pour travailler avec SOAP et REST API), Word (basé sur Xceed DocX ) ou Zip (devinez avec quoi vous travaillez).

Référentiels dont les principaux "goodies" sont:


Via invoquer le code


Le moyen le plus simple et le plus rapide d'ajouter des fonctionnalités à votre processus s'il n'y a pas suffisamment de «blocs» prêts à l'emploi et que vous ne pouvez pas les trouver.

Vous pouvez écrire un petit morceau de code sur VB.Net et le coller dans l'action InvokeCode . Ainsi, vous pouvez, par exemple, travailler avec des appels d'API UiPath.Web.Activities.HttpClient sur Rest dans les cas où le standard UiPath.Web.Activities.HttpClient ne suffit pas ou utiliser des bibliothèques externes telles que Xceed DocX ou PdfSharp .
Ne vous laissez pas emporter par cette méthode et d'autres méthodes similaires si vous avez plus de 10 lignes de code dans InvokeCode . Bien qu'Intellisense et la validation y fonctionnent, vos collègues ne vous remercieront pas de soutenir de tels «programmes». Emmenez-les vers une action utilisateur ou un programme externe, car il existe suffisamment de méthodes pour cela.
De la même manière, il existe toujours la Invoke Method , qui, en principe, vous permet d'appeler la méthode de n'importe quelle classe ajoutée au projet via des dépendances.
Par exemple , ici, il est utilisé pour décompresser l'archive

Exemple de méthode d'appel

Via Invoke <autre chose>


En plus du VB.NET "natif", UiPath vous permet d'utiliser de nombreuses autres méthodes de programmation, comme on dit "pour tous les goûts, pour tous les besoins".

Powershell


Powershell Excel

Si VB.NET ne suffit pas, d'autres langages de programmation viennent à la rescousse. Par exemple, avec les applications bureautiques, il est pratique pour un administrateur expérimenté de travailler via Powershell et d'utiliser l'action Invoke Power Shell , respectivement.

Dans le même Outlook, par exemple, vous pouvez appuyer sans cesse sur les boutons pour faire ce que font quelques commandes avec PS.

Un tel script, par exemple, renverra la dernière lettre dans un dossier arbitraire
 Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null $olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type] $outlook = new-object -comobject outlook.application $namespace = $outlook.GetNameSpace("MAPI") $inbox = $namespace.getDefaultFolder($olFolders::olFolderInbox) $folder = $inbox.Folders.Item(“ ”) ($folder.Items.Restrict('[UnRead] = True') | Select-Object -Last 1) 


Objets COM


Dans les systèmes modernes, la nécessité de cela, bien sûr, n'est pas si grande, mais avec l'aide de la Invoke COM Method vous pouvez vous tourner vers les fonctionnalités enfouies dans certaines DLL.

Vba


Si vous travaillez avec Excel, vous pouvez "définir" un script VBA dessus en exécutant Invoke VBA. Le script devrait être dans un fichier séparé (c'est pratique, étant donné que les fichiers Office avec des macros ne sont plus très appréciés). Cela sera pratique pour ceux qui sont bons dans la programmation en VBA et ne veulent pas abandonner les bibliothèques établies.

Python


Une grande aide pour travailler avec ML et toutes sortes de calculs est la possibilité d'incorporer des scripts python dans le processus. Pour commencer à travailler avec eux, vous devez effectuer plusieurs gestes supplémentaires. Premièrement, ces actions sont maintenant présentées dans un ensemble cool, mais non officiellement soutenu, d'actions d' activités communautaires sur GitHub. Deuxièmement, vous devez installer Python, et certainement la version 3.6 et toujours à la racine du lecteur C.
Soit dit en passant, dans les mêmes activités communautaires, il y a la cryptographie, le FTP et quelques autres choses potentiellement utiles.

La documentation et l'exemple de code (obsolète) peuvent être téléchargés ici . Si quelqu'un a besoin d'aide pour l'intégration d'UiPath et de Python - écrire, je vais essayer de le dire plus en détail.

Java


À peu près la même chose - le paquet est assemblé indépendamment des activités communautaires. Fichiers .jar pris en charge compilés à l'aide de JDK 1.5 et versions ultérieures. Le chemin vers Java doit être précisé dans PATH .

Le site Web UiPath contient une documentation à utiliser et un exemple de processus utilisant Java .

Grâce aux actions des utilisateurs


Malheureusement, tout le monde ne peut pas utiliser le magasin d'applications ou les packages d'autres personnes. Souvent, par exemple, le service de sécurité ne sera pas autorisé à utiliser des morceaux de robots qui ne sont pas écrits par le vendeur ou à l'intérieur de l'entreprise. Ensuite, vous devez retrousser vos manches.

La plateforme UiPath est construite à l'aide de Microsoft Workflow Foundation . Pour nous, cela signifie que vous pouvez toujours écrire votre propre action (activité) et l'ajouter au processus. Si une utilisation active par les utilisateurs professionnels est attendue, l'action peut être transformée en une belle interface utilisateur personnalisée avec l'aide d'un concepteur de formulaire, et si vous en avez besoin plus rapidement, un simple rectangle configuré à partir de Propriétés fera l'affaire.

Heureusement, le processus de création d'une action est documenté , mais pas très détaillé, mais vous pouvez toujours utiliser la [documentation MS] à grande échelle (https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/) par écrire des actions et des articles à leur sujet sur Internet.

Un exemple de l'action la plus simple en C #
 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Activities; using System.ComponentModel; namespace ClassMathCustomActivity { public class SimpleFormula : CodeActivity { [Category("Input")] [RequiredArgument] public InArgument<double> FirstNumber { get; set; } [Category("Input")] public InArgument<double> SecondNumber { get; set; } [Category("Output")] public OutArgument<double> ResultNumber { get; set; } protected override void Execute(CodeActivityContext context) { var firstNumber = FirstNumber.Get(context); var secondNumber = SecondNumber.Get(context); var result = System.Math.Pow(firstNumber + secondNumber, 2); ResultNumber.Set(context, result); } } } 


L'action créée doit être mise en .nupkg dans .nupkg à l'aide de NuGet Package Explorer , puis le package créé doit être ajouté à Studio.

Il vaut mieux ne pas commencer la première action à partir de zéro, mais profiter des activités communautaires mentionnées précédemment, où il existe de nombreuses actions toutes faites de complexité variable.

En conclusion


Comme vous pouvez le voir, il existe plus qu'assez d'options pour étendre les fonctionnalités, du plus simple InvokeCode à l'écriture de votre propre action. Cela signifie que quelle que soit la tâche à laquelle vous êtes confronté, il y a toujours la possibilité de le résoudre rapidement, souvent sans même inventer un vélo :)

J'espère que cet article vous sera utile lors de la création de processus robotiques sympas. Je serai heureux si vous dites dans quelle mesure ces informations vous concernent et ce que vous souhaitez savoir d'autre.

Source: https://habr.com/ru/post/fr443904/


All Articles