Hanya tanpa tangan! Robot yang tidak mengulangi tindakan pengguna

Artikel ulasan ini adalah tentang cara menggunakan RPA untuk proses bisnis, yang mencakup tugas-tugas yang tidak dapat dilakukan oleh orang biasa, tidak ingin, atau membutuhkan banyak waktu dan membutuhkan pengetahuan khusus, seperti bekerja dengan FTP, database atau API.

Dimasukkannya tindakan seperti itu dalam proses membawa penciptaan lebih dekat ke pemrograman tradisional dan "skrip", dengan semua pro dan kontra dari pendekatan ini.

Menggunakan API bahkan dalam tugas-tugas tradisional untuk robotika dapat secara signifikan meningkatkan kecepatan pelaksanaannya, meningkatkan keandalan dan stabilitas, tetapi pada saat yang sama menghilangkan kita dari mewujudkan impian bahwa pengguna bisnis sendiri menciptakan dan memelihara proses mereka, pasti mengembalikan pengembangan dan dukungan mereka ke tangan mereka tim pengembangan.

Ketika memungkinkan, dan ketika perlu untuk menambahkan tindakan ke tingkat yang lebih rendah dalam proses, saya akan mencoba memberi tahu dalam artikel ini. Yang pertama, bagian pengantar, berisi pertimbangan umum, dan yang kedua berisi contoh-contoh spesifik. Contoh diberikan untuk platform yang saya kenal (UiPath), jadi bagi mereka yang lebih suka selera dan warna robot lainnya, jangan tersinggung sebelumnya.



Robotika Pro dan Kontra Rendah


Mengapa robot seperti itu bermanfaat?


  • Pekerjaan yang dipercepat secara signifikan. Seringkali ini adalah alasan utama mengapa kita berpikir tentang interaksi tingkat rendah dengan sistem eksternal. Jika kita dapat membuat proses 10 kali lebih cepat, kita dapat menghemat penggunaan robot tambahan, dengan mesin virtual dan lisensi mereka.
  • Keandalan ditingkatkan, Anda tidak perlu lagi bekerja dengan penyeleksi dinamis yang fantastis di UI, berpikir tentang cara mem-bypass captcha, berjuang untuk akurasi mengenali gambar di Citrix bahwa Anda tidak dapat memasang plugin, atau melawan pengguliran tanpa henti di halaman berita.
  • Bekerja dengan sistem yang tidak memiliki UI penuh atau tidak memungkinkan Anda untuk mendapatkan semua informasi yang diperlukan melalui UI. Misalnya, dalam praktik saya ada kasus ketika kami mengambil data tentang API dari Shopify , mentransfernya ke ShipHero dan mengirimkannya ke sistem akuntansi internal. Hanya langkah terakhir yang menggunakan antarmuka pengguna.

Mengapa robot seperti itu berbahaya?


  • Pengguna bisnis tidak lagi mengerti apa proses robotik kami dan tidak bisa mengubah dan memeliharanya sendiri. Ini tidak begitu benar untuk robot tanpa pengawasan, tetapi untuk Dihadiri (asisten digital) ini adalah minus yang signifikan, karena kami ingin pengguna menjadi penulis proses mereka sendiri.
  • Visibilitas dan pemahaman proses untuk layanan keamanan hilang. Jika dengan robot biasa kita dapat dengan jelas menunjukkan bahwa dia melakukan tindakan yang sama dengan pengguna "organik", bahkan dimungkinkan untuk menggunakan deskripsi pekerjaan sebagai dokumentasi, kemudian menggunakan integrasi tingkat rendah, kita dipaksa untuk setuju bahwa proses kita harus melalui verifikasi panjang dan prosedur kontrol yang sama dengan otomatisasi "besar".
  • Dito, mengenai tim integrasi. Segera setelah kami mulai menggunakan API, kami jatuh ke tanah mereka dan harus bermain sesuai aturan mereka.
  • Biaya dan risiko pemrograman "nyata" lebih besar daripada robot. Jika seseorang dapat menekan tombol, robot juga dapat menekannya. Tetapi bisakah API dari sistem tidak terdokumentasi kuno memberi kita data yang diperlukan? Apakah mungkin untuk menulis informasi langsung ke database, atau akankah kita menghancurkan integritasnya? Apakah spesialis berpengalaman diperlukan untuk tugas ini atau apakah cukup untuk siswa pemula? Mengapa Slides.Duplicate di PowerPoint.Interop mengembalikan array? Jawaban untuk semua pertanyaan yang menarik ini dapat diperoleh, tetapi itu akan memakan waktu.

Kapan Anda perlu dan kapan Anda tidak harus menggunakan pemrograman dalam robot


Di atas dapat diringkas sebagai berikut:

Pemrograman layak digunakan jika


  • Proses Anda kurang produktivitas
  • Sistem UI tidak nyaman untuk otomatisasi, tetapi ada API yang nyaman

Pemrograman tidak boleh digunakan jika


  • Proses akan dikembangkan atau didukung oleh pengguna bisnis.
  • Menggunakan API mempersulit robot untuk pergi melalui negosiasi



Dengan apa dan bagaimana masuk akal untuk bekerja melalui kode?


Lalu saya mencoba memberikan beberapa contoh bekerja dengan kode, yang, satu atau lain cara, saya harus benar-benar gunakan ketika membuat robot, yang berarti bahwa mereka terjadi dalam kehidupan. Secara alami, daftarnya tidak lengkap, tetapi saya harap ini ilustratif.
Semua contoh diuji pada versi rilis terbaru dari tindakan pada saat penulisan.

Microsoft Office


Anehnya, salah satu kandidat pertama yang bekerja melalui API adalah Microsoft Office. Ya, UiPath memiliki fungsionalitas bawaan yang sangat baik untuk bekerja dengan Excel (bahkan dua jenis, satu dengan file secara langsung, yang kedua melalui aplikasi). Ada juga peluang untuk bekerja dengan Word (paket UiPath.Word.Activities melalui manajer paket). Tetapi, misalnya, tidak ada tindakan standar untuk bekerja dengan PowerPoint, dan ada juga Outlook atau bahkan Visio dengan Project, yang masih cukup aktif digunakan di perusahaan besar. Dengan Office, Anda dapat dengan mudah berteman dengan robot melalui antarmuka pengguna, tetapi dalam beberapa kasus itu sangat tidak nyaman, karena tidak semua elemen UI dapat diakses secara langsung dan Anda harus memainkan skala pada keyboard. Misalnya, tindakan Type Into dengan teks k [tab] k [f10] JCDD (untuk Office versi bahasa Inggris) akan membuka data grafik dari slide PowerPoint untuk diedit di Excel. Kombinasi seperti ini berfungsi dengan baik, tetapi terlihat seperti pembersih ajaib daripada IDDKQD.
ProTip: Daftar pemilih yang tersedia dapat diperluas dengan menggunakan Microsoft UI Automation (UIA) alih-alih kerangka kerja Microsoft Active Accessibility (MSAA) default. Beralihlah dengan tombol F4 di UI Explorer dan lihat apakah ada perbedaan
Untuk bekerja dengan file kantor, Anda bisa menggunakan pustaka pihak ketiga, misalnya pustaka Xceed DocX atau Spire, seperti Spire.Presentation . Saat bekerja dengan perpustakaan pihak ketiga, perhatikan lisensi, mungkin tidak selalu cocok untuk perusahaan Anda (misalnya, iTextSharp untuk PDF didistribusikan secara gratis melalui AGPL , dan PDFSharp - melalui MIT ). Metode ini sangat nyaman, karena dapat digunakan bahkan jika Microsoft Office tidak diinstal pada mesin, yang berarti sangat bagus untuk robot tanpa pengawasan yang berjalan pada mesin virtual.

Untuk pekerjaan kompleks dengan program perkantoran, Microsoft.Office.Interop datang untuk menyelamatkan. Itu memungkinkan kita untuk melakukan tindakan di dalam aplikasi, memanipulasi data, dll. Anda dapat mencurahkan lebih dari satu artikel untuk fitur bekerja dengan Office.Interop, hal yang kuno dan rapuh, tetapi akan cocok untuk tujuan kita. Agar Interop berfungsi, Anda harus menambahkan rakitan yang sesuai ke Impor.

Berikut adalah beberapa contoh yang dapat Anda lakukan dengan Office Interop:

Outlook


Fungsi Outlook jauh lebih luas daripada hanya bekerja dengan surat, itu adalah manajer informasi pribadi, dan ada kalender, dan buku catatan, dan buku alamat, secara umum, satu set lengkap. Jika semuanya dengan e-mail biasanya dapat diselesaikan dengan akses langsung ke server, jika itu mewakili antarmuka IMAP / POP3, maka informasi lainnya jauh lebih mudah diperoleh dari Outlook itu sendiri. Untuk Interop ini sangat cocok.

Mendapatkan daftar acara kalender
 Dim oApp As New Microsoft.Office.Interop.Outlook.Application Dim mapiNamespace As Microsoft.Office.Interop.Outlook.NameSpace Dim calendarFolder As Microsoft.Office.Interop.Outlook.MAPIFolder Dim calendarItems As Microsoft.Office.Interop.Outlook.Items mapiNamespace = oApp.GetNamespace("MAPI") calendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar) calendarItems = calendarFolder.Items calendarItems.IncludeRecurrences = True 


Powerpoint


Menggunakan PowerPoint, Anda tidak hanya dapat membuat presentasi yang indah, tetapi juga menggunakannya untuk dokumen, seperti penawaran komersial atau laporan proyek reguler. Untuk melakukan ini, Anda perlu menunjukkan data dari sumber lain di PowerPoint, dan, tentu saja, robot melakukan pekerjaan yang sangat baik ini. Sebagian besar waktu ketika membuat slide PowerPoint diperlukan untuk mendesainnya dengan indah, sehingga Anda dapat melakukan ini sebelumnya, dan mengganti data nyata dengan menyalin slide template dan mengganti teks dengannya.
Microsoft.Office.Interop.Powerpoint dan semua rakitan Interop lainnya dapat ditemukan di repositori nuget.org.
Salinan duplikat
Karena fakta bahwa Presentasi ada di System.Activities, dan Application - di Interop lain, Anda harus menulis nama kelas sepenuhnya. fileName dan slideToCopy - argumen, string dan angka, masing-masing.

 Dim app As New Microsoft.Office.Interop.PowerPoint.Application Dim pres As Microsoft.Office.Interop.PowerPoint.Presentation Dim newSlide As Microsoft.Office.Interop.PowerPoint.Slide pres = app.Presentations.Open(fileName) newSlide = pres.Slides(slideToCopy).Duplicate()(1) 


Lebih jauh melalui koleksi Bentuk, yang berisi semua elemen slide, Anda dapat dengan cepat memperbarui informasi yang diperlukan pada halaman baru

Bekerja di Word


Meskipun aktivitas dalam Paket Aktivitas Word menyediakan fitur Word dasar, mereka tidak mencakup fungsionalitas penuh pustaka Xceed DocX di mana mereka dibangun. Kasus yang paling umum adalah bekerja dengan tabel, tetapi ada banyak kasus lainnya.

Ada cukup banyak contoh berbeda dalam repositori proyek untuk memahami di mana pustaka ini atau yang serupa akan berguna.

API Web (REST, SOAP)


REST / JSON sekarang mungkin merupakan tautan utama untuk menyediakan integrasi dengan sistem yang mewakili API.

Dukungan untuk REST, SOAP, dan JSON disediakan melalui Paket Aktivitas Web .
Dengan REST, semuanya cukup sederhana, seperti seharusnya: HTTP Request -> Deserialize JSON dan sekarang kita sudah memiliki JObject yang dapat digunakan untuk melakukan apa pun yang kita inginkan. Untuk mentransfer data ke layanan web ada editor parameter yang nyaman.

Tetapi untuk SOAP, fungsi bawaan, sayangnya terbatas, tidak semua jenis layanan web didukung, tidak semua permintaan diproses dengan benar. Jika layanan tidak bekerja untuk Anda, Anda harus menggunakan salah satu dari banyak pembungkus untuk HttpClient, misalnya, SimpleSOAPClient atau menulis sendiri ( varian bekerja dengan SOAP dari C # ).

UPDATE 04/03/19: Dalam versi 2019.4, beta yang sudah tersedia untuk diunduh, komponen diperbarui, ditingkatkan dan diperbaiki. Jadi, Anda dapat mengharapkan penampilan dukungan SOAP normal segera

Bekerja dengan FTP


Di sini, di UiPath, semuanya sederhana, ada serangkaian tindakan siap pakai untuk FTP yang termasuk dalam Kegiatan Komunitas , meskipun harus dicatat bahwa, dimulai dengan versi 18.2 dari Paket Aktivitas FTP dalam status usang . Tetapi semua fungsi ada di sana, bahkan SFTP didukung (himpunan didasarkan pada SSH.NET ), meskipun, sayangnya, bekerja dengan kunci klien belum selesai.

.

Basis data


UiPath bekerja dengan basis data melalui .NET Data Provider. Untuk MS SQL dan MS Access, semuanya sederhana, untuk sisanya Anda perlu mengkonfigurasi ODBC, dan jika tidak ada, instal driver. Perlu diingat bahwa karena, saat ini, platform 32-bit, maka kita perlu mengunduh driver yang sesuai dan sumber data ODBC harus sama.

Di bawah ini adalah contoh untuk bekerja dengan MySQL.

Konfigurasikan koneksi MySQL
Pengaturan pengujian jarak jauh database MySQL (driver dari sini ):

dan terhubung ke sana dari aksi


Pekerjaan lebih lanjut dengan database yang kompatibel dengan SQL cukup standar - kami membuat pertanyaan, kami mendapatkan DataTable.

SAP melalui BAPI


Jika SAP Anda memberi Anda kesempatan ini, Anda dapat mencoba daripada bekerja melalui UI untuk mengotomatiskan integrasi dengan SAP melalui BAPI. Seperti biasa, di UiPath sudah siap untuk ini
Serangkaian tindakan yang mencakup wizard untuk mengonfigurasi koneksi ke SAP. Hampir tidak ada pemrograman di sini, tetapi ini adalah contoh dari fakta bahwa jalur integrasi standar bukan satu-satunya yang mungkin.

Kesimpulannya


Saya berharap bahwa dengan bantuan artikel ini saya dapat berbicara tentang aspek-aspek menggunakan robot yang tidak begitu mudah dipelajari di Akademi atau di Forum . Saya akan senang jika seseorang menjadi tertarik atau membantu untuk menjawab pertanyaan yang terkait dengan pengembangan robot.

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


All Articles