Artikel saya sebelumnya ditulis terutama untuk manajer proyek dan manajer RPA. Saya ingin membahas artikel ini, pertama-tama, untuk programmer dan mereka yang harus berhadapan muka dengan robot.
Beberapa proses pertama yang harus dibuat oleh programmer RPA yang baru dibuat biasanya berharga satu set "blok" standar yang ada di dalam kotak dengan platform. Tetapi bagaimana jika mereka hilang? Hampir semua platform RPA modern dapat diperluas dengan satu atau lain cara, baik itu memanggil metode DLL di AA, kode Groovy di WF atau Code Stage di BP.
Tetapi artikel ini ditulis tentang platform yang saya kenal dengan baik (UiPath), jadi bagi mereka yang lebih suka selera dan warna robot lainnya, mohon jangan tersinggung sebelumnya.

Meskipun beberapa hal dalam artikel ini cukup lumrah dan Anda dapat mempelajarinya dengan mengambil kursus yang sesuai, membaca dokumentasi atau mempelajari forum, bagi saya tampaknya banyak orang akan merasa berguna untuk melihatnya di satu tempat, seperti artikel dalam bahasa Rusia. Jika Anda memiliki tambahan atau komentar, saya akan mencoba untuk menyelesaikan artikel sehingga bermanfaat dan relevan mungkin.
Cara untuk memperluas fungsionalitas dalam artikel ini dari yang paling sederhana (unduh yang sudah jadi) hingga yang paling sulit (tulis sendiri).
Toko aplikasi

Sejak akhir 2018, UiPath memiliki sesuatu seperti "app store" bernama
Go . Pengembang dari seluruh dunia, termasuk karyawan perusahaan sendiri, berbagi tindakan pengguna yang bermanfaat (atau tidak demikian), potongan kode, templat untuk aplikasi dan pengembangan bermanfaat lainnya yang sangat menyederhanakan kehidupan.
Ada banyak semuanya di sana, misalnya,
konektor yang sangat baik untuk Salesforce, yang mengambil bagian terbesar dari pekerjaan atau
konektor yang ditulis oleh Abbyy hingga Abby Flexicapture.
Sekarang ini adalah metode memperluas fungsionalitas yang direkomendasikan oleh pabrikan itu sendiri, terlebih lagi, migrasi ekstensi yang dulu tinggal di repositori (Galeri) resmi NuGet telah dimulai di sana.
Sudahkah Anda melihat PackageManager?

Sedikit lebih hardcore, tetapi masih dapat diakses oleh rata-rata pengguna, menggunakan fungsionalitas manajer paket.
Itu diimplementasikan melalui
NuGet , yang berarti bahwa selain menggunakan repositori "publik", tidak ada yang mengganggu kita untuk meningkatkan milik kita sendiri dan menggunakannya di dalam perusahaan untuk mendistribusikan tindakan dan perpustakaan dari desain kita sendiri.
Kami
mencari pengelola kata kunci
UiPath di manajer paket dan mendapatkan sejumlah besar tindakan berbeda yang secara dramatis meningkatkan kemampuan kami tanpa memerlukan upaya apa pun dari kami.
Jadi, sekarang, komponen platform yang cukup resmi didistribusikan, termasuk Paket Aktivitas Web (untuk bekerja dengan
SOAP
dan
REST
API), Word (berdasarkan
Xceed DocX
) atau Zip (tebak apa yang sedang Anda kerjakan).
Repositori tempat "barang" utama adalah:
Melalui Kode Invoke
Cara termudah dan tercepat untuk menambahkan fungsionalitas ke proses Anda jika tidak ada cukup "blok" yang sudah jadi dan Anda tidak dapat menemukannya.
Anda dapat menulis sepotong kecil kode di
VB.Net
dan menempelkannya ke dalam tindakan
InvokeCode
. Jadi Anda dapat, misalnya, bekerja dengan panggilan API rumit pada Istirahat, dalam kasus di mana
UiPath.Web.Activities.HttpClient
standar tidak cukup atau menggunakan perpustakaan eksternal seperti
Xceed DocX
atau
PdfSharp
.
Jangan terbawa oleh ini dan metode serupa lainnya jika Anda memiliki lebih dari 10 baris kode di dalam InvokeCode
. Meskipun Intellisense dan validasi berfungsi di sana, kolega Anda tidak akan berterima kasih karena mendukung "program" tersebut. Bawa mereka ke aksi pengguna atau program eksternal, karena ada cukup metode untuk ini.
Dari yang serupa, masih ada
Invoke Method
, yang, pada prinsipnya, memungkinkan Anda untuk memanggil metode dari kelas apa pun yang ditambahkan ke proyek melalui dependensi.
Misalnya
, di sini digunakan untuk unzip arsip

Via Invoke <hal lain>
Selain "asli"
VB.NET
UiPath memungkinkan Anda untuk menggunakan banyak metode pemrograman lain, seperti yang mereka katakan "untuk semua selera, untuk semua kebutuhan."
Powershell

Jika
VB.NET
tidak cukup, bahasa pemrograman lain datang untuk menyelamatkan. Misalnya, dengan aplikasi kantor, nyaman bagi administrator yang berpengalaman untuk bekerja melalui
Powershell
dan menggunakan aksi
Invoke Power Shell
, masing-masing.
Dalam Outlook yang sama, misalnya, Anda dapat menekan tombol tanpa henti untuk melakukan apa yang dilakukan beberapa perintah dengan PS.
Skrip seperti itu, misalnya, akan mengembalikan huruf terakhir dalam folder arbitrer 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)
Benda COM
Dalam sistem modern, kebutuhan untuk ini, tentu saja, tidak begitu besar, tetapi dengan bantuan
Invoke COM Method
Anda dapat beralih ke fungsi yang terkubur di beberapa DLL.
Vba
Jika Anda bekerja dengan Excel, Anda dapat "mengatur" skrip VBA di atasnya dengan menjalankan Invoke VBA. Script harus dalam file terpisah (ini nyaman, mengingat sekarang file kantor dengan makro tidak terlalu dihargai). Ini akan nyaman bagi mereka yang pandai pemrograman di VBA dan tidak ingin meninggalkan perpustakaan yang sudah ada.
Python
Sangat membantu untuk bekerja dengan ML dan segala macam perhitungan adalah kemampuan untuk menanamkan skrip python dalam proses. Untuk mulai bekerja dengannya, Anda perlu membuat beberapa gerakan tambahan. Pertama, tindakan-tindakan ini sekarang ditata dengan sejuk, namun tidak secara resmi didukung, aksi
Komunitas di GitHub. Kedua, Anda perlu menginstal Python, dan tentu saja versi 3.6 dan selalu di root drive C.
Ngomong-ngomong, dalam Kegiatan Komunitas yang sama ada kriptografi, dan FTP, dan beberapa hal lain yang berpotensi bermanfaat.
Dokumentasi dan kode sampel (usang) dapat
diunduh di sini . Jika seseorang membutuhkan bantuan dengan integrasi UiPath dan Python - tulis, saya akan mencoba untuk menceritakan lebih detail.
Jawa
Tentang hal yang sama - paket tersebut dirakit secara independen dari Kegiatan Komunitas. File .jar yang didukung dikompilasi menggunakan JDK 1.5 dan yang lebih baru. Jalur ke Jawa harus dijabarkan dalam
PATH
.
Situs web UiPath memiliki
dokumentasi untuk digunakan dan
contoh proses menggunakan Java .
Melalui tindakan pengguna
Sayangnya, tidak semua orang dapat menggunakan toko aplikasi atau paket orang lain. Seringkali, misalnya, layanan keamanan tidak akan diizinkan untuk menggunakan potongan-potongan robot yang tidak ditulis oleh vendor atau di dalam perusahaan. Maka Anda harus menyingsingkan lengan baju Anda.
Platform UiPath dibangun menggunakan
Microsoft Workflow Foundation . Bagi kami, ini berarti bahwa Anda selalu dapat menulis tindakan Anda sendiri (Aktivitas) dan menambahkannya ke proses. Jika penggunaan aktif oleh pengguna bisnis diharapkan, tindakan dapat dibuat menjadi UI kustom yang indah dengan bantuan desainer formulir, dan jika Anda membutuhkannya lebih cepat, persegi panjang sederhana yang dikonfigurasi dari Properti akan dilakukan.
Untungnya, proses membuat tindakan
didokumentasikan , meskipun tidak terlalu rinci, tetapi Anda selalu dapat menggunakan [dokumentasi MS] skala besar (https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/) oleh menulis tindakan dan artikel tentang itu di Internet.
Contoh tindakan paling sederhana di 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); } } }
Tindakan yang dibuat harus dikemas dalam
.nupkg
menggunakan
Explorer Paket NuGet , dan kemudian paket yang dibuat harus ditambahkan ke Studio.
Lebih baik tidak memulai tindakan pertama dari awal, tetapi gunakan
Aktivitas Komunitas yang disebutkan sebelumnya, di mana ada banyak tindakan siap pakai dengan berbagai kompleksitas.
Kesimpulannya
Seperti yang Anda lihat, ada lebih dari cukup opsi untuk memperluas fungsionalitas, dari InvokeCode yang paling sederhana hingga menulis tindakan Anda sendiri. Ini berarti bahwa apa pun tugas yang Anda hadapi, selalu ada peluang untuk menyelesaikannya dengan cepat, seringkali tanpa menemukan sepeda :)
Semoga artikel ini bermanfaat bagi Anda saat membuat proses robot keren. Saya akan senang jika Anda memberi tahu seberapa banyak informasi ini relevan bagi Anda dan apa lagi yang ingin Anda ketahui.