تم كتابة
مقالتي السابقة بشكل أساسي لمديري المشاريع ومديري RPA أود أن أخاطب هذه المقالة ، أولاً وقبل كل شيء ، للمبرمجين وأولئك الذين يتعين عليهم مواجهة وجهاً لوجه مع الروبوتات.
عادةً ما تكلف العمليات القليلة الأولى التي يتعين على مبرمج RPA الذي تم إنشاؤه حديثًا إنشاء مجموعة من "الكتل" القياسية الموجودة في المربع مع النظام الأساسي. ولكن ماذا لو كانوا مفقودين؟ يمكن توسيع أي نظام RPA حديثًا تقريبًا بطريقة أو بأخرى ، سواء كان ذلك باستخدام طريقة DLL في AA ، أو رمز Groovy في WF أو Code Stage في BP.
لكن هذه المقالة مكتوبة عن منصة تعرفني جيدًا عليها (UiPath) ، لذلك بالنسبة لأولئك الذين يفضلون الأذواق وألوان الروبوتات الأخرى ، يرجى عدم الإساءة مسبقًا.

على الرغم من أن بعض الأشياء الواردة في المقالة عادية جدًا ويمكنك تعلمها من خلال أخذ الدورات المناسبة أو قراءة الوثائق أو دراسة المنتدى ، يبدو لي أن الكثيرين سيجدون أنه من المفيد رؤيتهم في مكان واحد ، كمقال باللغة الروسية. إذا كان لديك أي إضافات أو تعليقات ، فسأحاول الانتهاء من هذه المقالة بحيث تكون مفيدة وذات صلة قدر الإمكان.
تنتقل طرق توسيع الوظيفة في المقالة إلى أبسطها (قم بالتنزيل الجاهزة) إلى الأصعب (اكتب ما تريد).
متجر التطبيقات

منذ نهاية عام 2018 ، أصبح لدى UiPath شيء يشبه "متجر تطبيقات" يسمى
Go . يشارك مطورو البرامج من جميع أنحاء العالم ، بما في ذلك موظفو الشركة أنفسهم ، إجراءات مستخدم مفيدة (أو غير ذلك) وأجزاء من التعليمات البرمجية وقوالب للتطبيقات وغيرها من التطورات المفيدة التي تسهل الحياة إلى حد كبير.
يوجد الكثير من كل شيء هناك ، على سبيل المثال ،
موصل ممتاز لـ Salesforce ، والذي يأخذ نصيب الأسد من العمل أو
الرابط الذي كتبه Abbyy إلى Abby Flexicapture.
الآن هذه هي طريقة توسيع الوظائف الموصى بها من قبل الشركة المصنعة نفسها ، علاوة على ذلك ، فإن ترحيل الامتدادات التي كانت تعيش في مستودع NuGet الرسمي (معرض) قد بدأ بالفعل هناك.
هل نظرت إلى PackageManager؟

أكثر المتشددين قليلاً ، ولكن لا يزال الوصول إلى المستخدم العادي ، يستخدم وظيفة مدير الحزم.
تم تنفيذه من خلال
NuGet ، مما يعني أنه بالإضافة إلى استخدام مستودعات "عامة" ، لا أحد يزعجنا لرفع الخاصة بنا واستخدامها داخل الشركة لتوزيع الإجراءات والمكتبات من تصميمنا الخاص.
نحن
نبحث في مدير الحزم عن الكلمة الرئيسية لـ
UiPath ونحصل على عدد كبير من الإجراءات المختلفة التي تزيد من قدراتنا بشكل كبير دون الحاجة إلى أي جهد منا.
وبالتالي ، الآن ، يتم توزيع مكونات النظام الأساسي الرسمية تمامًا ، بما في ذلك Web Activities Pack (للعمل مع
SOAP
و
REST
API) أو Word (استنادًا إلى
Xceed DocX
) أو Zip (تخمين ما تعمل معه).
مستودعات حيث "الأشياء الجيدة" الرئيسية هي:
عن طريق استدعاء رمز
أسهل وأسرع طريقة لإضافة وظائف إلى العملية الخاصة بك إذا لم تكن هناك "كتل" جاهزة جاهزة ولم تتمكن من العثور عليها.
يمكنك كتابة جزء صغير من التعليمات البرمجية على
VB.Net
ولصقه في الإجراء
InvokeCode
. لذلك ، على سبيل المثال ، يمكنك العمل مع استدعاءات API الخادعة على الاستراحة في الحالات التي لا يكون فيها
UiPath.Web.Activities.HttpClient
القياسي كافيًا أو يستخدم مكتبات خارجية مثل
Xceed DocX
أو
PdfSharp
.
لا تبتعد عن طريق هذه الطرق وغيرها من الطرق المشابهة إذا كان لديك أكثر من 10 سطور من التعليمات البرمجية داخل InvokeCode
. على الرغم من عمل Intellisense والتحقق من الصحة هناك ، فإن زملائك لن يشكركم على دعمك لهذه "البرامج". انتقل بها إلى إجراء مستخدم أو برنامج خارجي ، نظرًا لوجود طرق كافية لذلك.
من الناحية المماثلة ، لا تزال هناك
Invoke Method
، والتي ، من حيث المبدأ ، تسمح لك باستدعاء طريقة أي فئة تضاف إلى المشروع من خلال التبعيات.
على سبيل المثال
، هنا يتم استخدامه لفك ضغط الأرشيف

عن طريق استدعاء <أي شيء آخر>
بالإضافة إلى
VB.NET
UiPath "الأصلي" يسمح لك باستخدام العديد من طرق البرمجة الأخرى ، كما يقولون "لجميع الأذواق ، لجميع الاحتياجات."
بوويرشيل

إذا لم يكن
VB.NET
كافيًا ، فإن لغات البرمجة الأخرى تنقذ. على سبيل المثال ، مع التطبيقات المكتبية ، من الملائم لمسؤول متمرس أن يعمل من خلال
Powershell
ويستخدم إجراء
Invoke Power Shell
، على التوالي.
في نفس Outlook ، على سبيل المثال ، يمكنك الضغط بلا نهاية على أزرار للقيام بما يفعله أمران مع PS.
مثل البرنامج النصي ، على سبيل المثال ، سيعود الحرف الأخير في مجلد تعسفي 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)
كائنات COM
في الأنظمة الحديثة ، ليست هناك حاجة كبيرة لذلك ، ولكن بمساعدة
Invoke COM Method
يمكنك اللجوء إلى الوظيفة المدفونة في بعض DLL.
فبا
إذا كنت تعمل مع Excel ، يمكنك "تعيين" برنامج نصي VBA عليه عن طريق تشغيل Invoke VBA. يجب أن يكون البرنامج النصي في ملف منفصل (هذا مناسب ، مع الأخذ في الاعتبار أنه لا يتم تقدير ملفات Office التي تحتوي على وحدات ماكرو الآن). سيكون هذا مناسبًا لأولئك الذين يجيدون البرمجة في VBA ولا يريدون التخلي عن المكتبات المنشأة.
بيثون
مساعدة كبيرة للعمل مع ML وجميع أنواع العمليات الحسابية هي القدرة على تضمين البرامج النصية بيثون في هذه العملية. لبدء العمل معهم ، تحتاج إلى عمل إيماءات عديدة. أولاً ، يتم وضع هذه الإجراءات الآن في مجموعة من الإجراءات
المجتمعية الرائعة على GitHub ، ولكنها غير مدعومة رسميًا. ثانياً ، تحتاج إلى تثبيت Python ، وبالتأكيد الإصدار 3.6 ودائما في جذر محرك الأقراص C.
بالمناسبة ، في نفس أنشطة المجتمع هناك تشفير ، و FTP ، وعدد قليل من الأشياء الأخرى التي يحتمل أن تكون مفيدة.
يمكن
تنزيل وثائق وشفرة نموذج (قديمة)
هنا . إذا احتاج شخص ما إلى المساعدة في دمج UiPath و Python - كتابة ، سأحاول أن أخبرني بمزيد من التفاصيل.
جافا
حول نفس الشيء - يتم تجميع الحزمة بشكل مستقل عن "أنشطة المجتمع". ملفات .jar المدعومة المترجمة باستخدام JDK 1.5 والإصدارات الأحدث. يجب توضيح المسار إلى Java في
PATH
.
يحتوي موقع UiPath على
وثائق للاستخدام وعملية مثال باستخدام Java .
من خلال إجراءات المستخدم
لسوء الحظ ، لا يمكن للجميع استخدام متجر التطبيقات أو حزم الأشخاص الآخرين. في كثير من الأحيان ، على سبيل المثال ، لن يُسمح لخدمة الأمن باستخدام قطع من الروبوتات التي لا يكتبها البائع أو داخل الشركة. ثم عليك أن نشمر عن سواعدك.
تم إنشاء النظام الأساسي UiPath باستخدام
Microsoft Workflow Foundation . بالنسبة لنا ، هذا يعني أنه يمكنك دائمًا كتابة الإجراء الخاص بك (النشاط) وإضافته إلى العملية. إذا كان الاستخدام النشط من قبل مستخدمي الأعمال متوقعًا ، فيمكن إجراء التصرف في واجهة مستخدم مخصصة جميلة باستخدام مصمم النماذج ، وإذا كنت في حاجة إليها بشكل أسرع ، فسوف يقوم مستطيل بسيط يمكن تكوينه من الخصائص.
لحسن الحظ ، تم
توثيق عملية إنشاء إجراء ، على الرغم من أنه ليس مفصلاً للغاية ، ولكن يمكنك دائمًا استخدام وثائق MS [واسعة النطاق] (https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/) عن طريق كتابة الإجراءات والمقالات المتعلقة بها على الإنترنت.
مثال على أبسط الإجراءات في 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); } } }
يجب أن يتم حزم الإجراء الذي تم إنشاؤه في
.nupkg
باستخدام
NuGet Package Explorer ، ثم يجب إضافة الحزمة التي تم إنشاؤها إلى Studio.
من الأفضل عدم بدء الإجراء الأول من نقطة الصفر ، ولكن الاستفادة من
أنشطة المجتمع المذكورة سابقًا ، حيث توجد العديد من الإجراءات الجاهزة ذات التعقيد المتفاوت.
في الختام
كما ترون ، هناك أكثر من خيارات كافية لتوسيع الوظيفة ، من أبسط InvokeCode إلى كتابة الإجراء الخاص بك. هذا يعني أنه بغض النظر عن المهمة التي تواجهها ، هناك دائمًا فرصة لحلها بسرعة ، غالبًا دون حتى اختراع دراجة :)
آمل أن تكون هذه المقالة مفيدة لك عند إنشاء عمليات روبوت بارد. سأكون سعيدًا إذا أخبرت عن مدى أهمية هذه المعلومات بالنسبة لك وماذا تود أن تعرفه.