فقط بدون أيدي! الروبوتات التي لا تكرر إجراءات المستخدم

تتناول مقالة المراجعة هذه كيفية استخدام RPA لعمليات الأعمال ، والتي تتضمن مهام لا يستطيع الأشخاص العاديون القيام بها ، أو لا يريدونها ، أو تستغرقها كثيرًا من الوقت وتتطلب معرفة خاصة ، مثل العمل مع FTP وقواعد البيانات أو API.

إن إدراج مثل هذه الإجراءات في العملية يجعل إنشائها أقرب إلى البرمجة التقليدية و "النصوص" ، مع كل إيجابيات وسلبيات هذا النهج.

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

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



برو وكونترا الروبوتات منخفضة


لماذا هذه الروبوتات مفيدة؟


  • تسارع كبير في العمل. غالبًا ما يكون هذا هو السبب الرئيسي وراء تفكيرنا في التفاعل على مستوى منخفض مع الأنظمة الخارجية. إذا تمكنا من جعل العملية أسرع 10 مرات ، فيمكننا التوفير في استخدام الروبوتات الإضافية ، مع أجهزتها الافتراضية وتراخيصها.
  • زيادة الموثوقية ، لم تعد بحاجة إلى العمل مع محددات ديناميكية خيالية في واجهة المستخدم ، والتفكير في كيفية تجاوز اختبار captcha ، أو الكفاح من أجل دقة التعرف على صورة في Citrix لا يمكنك وضع مكون إضافي فيها ، أو محاربة التمرير الذي لا ينتهي على صفحة الأخبار.
  • العمل مع الأنظمة التي لا تحتوي على واجهة مستخدم كاملة أو لا تسمح لك بالحصول على جميع المعلومات الضرورية من خلال واجهة المستخدم. على سبيل المثال ، في ممارستي كانت هناك حالة عندما أخذنا البيانات على API من Shopify ، وقمنا بنقلها إلى ShipHero وأرسلناها إلى نظام المحاسبة الداخلية. استخدمت الخطوة الأخيرة فقط واجهة المستخدم.

لماذا هذه الروبوتات ضارة؟


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

عندما تحتاج ومتى لا يجب استخدام البرمجة في الروبوتات


ما سبق يمكن تلخيصه على النحو التالي:

البرمجة يستحق استخدام إذا


  • تفتقر عمليتك إلى الإنتاجية
  • أنظمة واجهة المستخدم ليست مريحة للأتمتة ، ولكن هناك واجهة برمجة تطبيقات ملائمة

لا ينبغي أن تستخدم البرمجة إذا


  • سيتم تطوير أو دعم العمليات من قبل مستخدمي الأعمال.
  • إن استخدام واجهة برمجة التطبيقات يجعل من الصعب على الروبوت متابعة عمليات التفاوض



مع ماذا وكيف يكون من المنطقي العمل من خلال الكود؟


ثم حاولت إعطاء بعض الأمثلة عن العمل باستخدام الكود ، والتي كان عليّ استخدامها بطريقة أو بأخرى عند إنشاء الروبوتات ، مما يعني أنها تحدث في الحياة. بطبيعة الحال ، القائمة ليست شاملة ، لكنني آمل أن تكون توضيحية.
يتم اختبار جميع الأمثلة على أحدث إصدارات الإصدارات من الإجراءات في وقت كتابة هذا التقرير.

مايكروسوفت أوفيس


الغريب أن مايكروسوفت أوفيس هو من أوائل المرشحين للعمل من خلال واجهة برمجة التطبيقات. نعم ، لدى UiPath وظائف مدمجة ممتازة للعمل مع Excel (حتى نوعان ، أحدهما يحتوي على ملفات مباشرة ، والثاني من خلال التطبيق). هناك أيضًا فرص للعمل مع Word (يتم UiPath.Word.Activities حزمة UiPath.Word.Activities خلال مدير الحزم). ولكن ، على سبيل المثال ، لا توجد إجراءات قياسية للعمل مع PowerPoint ، وهناك أيضًا Outlook أو حتى Visio مع Project ، والتي لا تزال تستخدم بنشاط كبير في الشركات الكبيرة. مع Office ، يمكنك بسهولة تكوين صداقات مع روبوت من خلال واجهة المستخدم ، ولكن في بعض الحالات ، لا يكون ذلك مناسبًا جدًا ، حيث لا يمكن الوصول إلى جميع عناصر واجهة المستخدم مباشرةً ويجب عليك تشغيل موازين على لوحة المفاتيح. على سبيل المثال ، Type Into الإجراء Type Into مع النص k [علامة تبويب] k [f10] JCDD (لإصدار اللغة الإنجليزية من Office) بيانات الرسم البياني من شريحة PowerPoint للتحرير في Excel. هذه المجموعات تعمل بشكل جيد ، لكنها تبدو وكأنها منظف سحري من IDDKQD.
ProTip: يمكن توسيع قائمة المحددات المتاحة باستخدام Microsoft UI Automation (UIA) بدلاً من إطار Microsoft Active Accessibility (MSAA) ، والذي يتم تحديده افتراضيًا. قم بالتبديل إليها باستخدام الزر F4 في UI Explorer ومعرفة ما إذا كان هناك اختلاف
للعمل مع ملفات المكتب ، يمكنك استخدام مكتبات الجهة الخارجية ، على سبيل المثال مكتبات Xceed DocX أو Spire ، مثل Spire.Presentation . عند العمل مع مكتبات الجهات الخارجية ، انتبه إلى الترخيص ، فقد لا يكون دائمًا مناسبًا لشركتك (على سبيل المثال ، يتم توزيع iTextSharp for PDF مجانًا عبر AGPL و PDFSharp - عبر MIT ). هذه الطريقة مريحة للغاية ، حيث يمكن استخدامها حتى إذا لم يتم تثبيت Microsoft Office على الجهاز ، مما يعني أنه رائع بالنسبة إلى الروبوتات غير المراقبة التي تعمل على الأجهزة الافتراضية.

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

فيما يلي بعض الأمثلة لما يمكنك القيام به باستخدام Office Interop:

توقعات


تعد وظيفة Outlook أوسع بكثير من مجرد العمل مع البريد ، فهي مدير معلومات شخصية ، وهناك تقويم ودفتر ودفتر عناوين بشكل عام مجموعة كاملة. إذا كان يمكن عادة حل كل شيء بالبريد الإلكتروني عن طريق الوصول المباشر إلى الخادم ، وإذا كان يمثل واجهات IMAP / POP3 ، فسيكون الحصول على بقية المعلومات أسهل بكثير من Outlook نفسه. لهذا Interop يناسب تماما.

الحصول على قائمة أحداث التقويم
 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 ، لا يمكنك إنشاء عروض تقديمية جميلة فحسب ، بل يمكنك أيضًا استخدامها للأعمال الورقية ، مثل العروض التجارية أو تقارير المشاريع العادية. للقيام بذلك ، تحتاج إلى إظهار البيانات من مصادر أخرى في PowerPoint ، وبالطبع ، يقوم الروبوت بعمل ممتاز في هذا. غالبًا ما يستغرق إنشاء شرائح PowerPoint تصميمها بشكل جميل ، بحيث يمكنك القيام بذلك مقدمًا ، واستبدال البيانات الحقيقية عن طريق نسخ شرائح القوالب واستبدال النصوص بها.
يمكن العثور على Microsoft.Office.Interop.Powerpoint وجميع تجميعات Interop الأخرى في مستودع nuget.org.
شريحة مكررة
نظرًا لأن العرض التقديمي موجود في System.Activities ، والتطبيق - في Interop الأخرى ، يجب عليك كتابة أسماء الفئات بالكامل. fileName و slideToCopy - الوسائط ، السلسلة والرقم ، على التوالي.

 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) 


علاوة على ذلك ، من خلال مجموعة الأشكال ، التي تحتوي على جميع عناصر الشريحة ، يمكنك تحديث المعلومات الضرورية بسرعة على صفحة جديدة

العمل في كلمة


على الرغم من أن الأنشطة الموجودة في Word Activities Pack توفر ميزات Word الأساسية ، إلا أنها لا تغطي الوظائف الكاملة لمكتبة Xceed DocX التي تم إنشاؤها عليها. الحالة الأكثر شيوعًا تعمل مع الجداول ، ولكن هناك العديد من الحالات الأخرى.

توجد أمثلة مختلفة كافية في مستودع المشروع لفهم المكان الذي ستكون فيه هذه المكتبة أو مكتبة مشابهة مفيدة.

واجهة برمجة تطبيقات الويب (REST ، SOAP)


REST / JSON هو الآن الرابط الرئيسي من أجل توفير التكامل مع الأنظمة التي تمثل واجهة برمجة التطبيقات.

يتم توفير دعم REST و SOAP و JSON من خلال Web Activities Pack .
مع REST ، كل شيء بسيط للغاية ، كما يجب أن يكون: HTTP Request -> Deserialize JSON تسلسل Deserialize JSON والآن لدينا بالفعل JObject الذي يمكننا القيام به بكل ما نريد. من أجل نقل البيانات إلى خدمة الويب ، يوجد محرر معلمات مناسب.

لكن بالنسبة لـ SOAP ، فإن الوظيفة المدمجة ، للأسف ، محدودة ، لا يتم دعم جميع أنواع خدمات الويب ، ولا تتم معالجة جميع الطلبات بشكل صحيح. إذا كانت الخدمة لا تعمل من أجلك ، فيجب عليك استخدام واحدة من العديد من الأغلفة الخاصة بـ HttpClient ، على سبيل المثال ، SimpleSOAPClient أو كتابة الخاصة بك ( البديل من العمل مع SOAP من C # ).

UPDATE 04/03/19: في الإصدار 2019.4 ، الإصدار التجريبي الذي يتوفر بالفعل للتنزيل ، يتم تحديث المكون وتحسينه وإعادة بنائه. لذا يمكنك توقع ظهور دعم SOAP العادي قريبًا

العمل مع FTP


هنا في UiPath ، كل شيء بسيط ، هناك مجموعة من الإجراءات الجاهزة لبروتوكول نقل الملفات المضمنة في " أنشطة المجتمع" ، على الرغم من أنه يجب ملاحظة أنه ، بدءًا من الإصدار 18.2 من حزمة أنشطة FTP في حالة الإهمال . ولكن كل الوظائف موجودة ، حتى SFTP مدعوم (المجموعة قائمة على SSH.NET ) ، على الرغم من أن العمل مع مفتاح العميل ، للأسف ، لم يكتمل.

.

قواعد البيانات


يعمل UiPath مع قواعد البيانات من خلال موفر بيانات .NET. بالنسبة إلى MS SQL و MS Access ، كل شيء بسيط ، أما الباقي الذي تحتاجه لتكوين ODBC ، وإذا لم يكن هناك ، فقم بتثبيت برنامج التشغيل. ضع في اعتبارك أنه نظرًا لأن النظام الأساسي في الوقت الحالي هو 32 بت ، فإننا نحتاج إلى تنزيل برنامج التشغيل المناسب ويجب أن يكون مصدر بيانات ODBC هو نفسه.

فيما يلي مثال للعمل مع MySQL.

تكوين اتصال الخلية
إعدادات اختبار قاعدة بيانات MySQL عن بعد (برنامج التشغيل من هنا ):

والاتصال به من العمل


يعتبر العمل الإضافي مع قاعدة بيانات متوافقة مع SQL أمرًا قياسيًا إلى حد ما - فنحن نجعل الاستعلامات ونحصل على DataTable.

SAP من خلال BAPI


إذا كان SAP يمنحك هذه الفرصة ، يمكنك محاولة بدلاً من العمل من خلال واجهة المستخدم لأتمتة التكامل مع SAP من خلال BAPI. كالعادة ، في UiPath هناك استعداد لهذا
مجموعة من الإجراءات تتضمن معالج لتكوين اتصال بـ SAP. لا يوجد أي برمجة تقريبًا هنا ، ولكن هذا مثال على حقيقة أن مسار التكامل القياسي ليس هو المسار الوحيد الممكن.

في الختام


آمل أنه بمساعدة هذا المقال تمكنت من التحدث عن جوانب استخدام الروبوتات التي ليس من السهل تعلمها في الأكاديمية أو في المنتدى . سأكون سعيدًا إذا أصبح شخص ما مهتمًا أو يساعد في الإجابة على الأسئلة المتعلقة بتطوير الروبوتات.

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


All Articles