أتمتة العمليات التجارية لشركة Trello باستخدام تقنية النمذجة الدلالية

في السنوات الأخيرة ، تم الحديث عن تريلو بشكل متزايد كأداة ممتازة للتنظيم والتخطيط. منذ 3 سنوات ، نستخدم Trello في شركتنا لتخطيط العديد من العمليات ، من الإجازات ورحلات العمل والموافقات الاتفاق إلى إدارة المشروع.

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

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

نمذجة الدلالي تسمح لك بكتابة كل منطق اللوحة في Trello باللغة الطبيعية.

تنسيق السفر والإجازات


خذ أبسط عملية: مطابقة السفر والإجازات. وفقًا للوائحنا ، يقوم كل موظف يخطط لأخذ عطلة أو الذهاب في رحلة عمل بنشر طلب إلى Trello. يقع التطبيق في ورقة "للموافقة".



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

لنفترض أننا نريد أتمتة هذه العملية بحيث ، بعد الموافقة ، ينتقل التطبيق تلقائيًا إلى الورقة المطلوبة ، ويتلقى الموظف إشعارًا بشأن التغيير في حالة التطبيق. النظر في ما نحتاجه لهذا الغرض.

الأدوات اللازمة


لتطوير النموذج ، اخترنا بيئة تطوير متكاملة من Jetbrains MPS (نظام برمجة ميتا). كلغة للنمذجة ، يتم استخدام لغة d0SL - لغة دلتا 0 الدلالية ، التي تم إنشاؤها على أساس النماذج الدلالية (المنطقية).

العملية الكاملة لتثبيت Jetbrains MPS والمكونات الإضافية الضرورية موصوفة بشكل كامل هنا: https://d0sl.imtqy.com/ar/quick/installation/ .

يمكنك تثبيت نموذج لوحة Trello النهائي على الرابط: https://d0sl.imtqy.com/ar/quick/trello/ .

نموذج الدلالي. ماذا حدث؟


دعونا نرى كيف يبدو النموذج الدلالي الناتج عن لوحات Trello. يحتوي على قواعدنا:

  • تم تحديد مربع الاختيار - يتم التحقق مما إذا كان مربع الاختيار المسمى requiredCheckBoxName محددًا في البطاقة مع معرف البطاقة. بهذه الطريقة يمكننا التحقق مما إذا كان طلبنا قد تمت الموافقة أم لا.
  • moveCard - ينقل بطاقة cardId إلى القائمة ويضيف تعليقًا إلى التطبيق للمستخدم



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



لاحظ أن النمذجة الدلالية تسمح لك بوضع جميع قواعد العمل المنطقية في وثيقة واحدة وكتابة هذه القواعد بلغة مجال الموضوع ، "اللغة الأم" لمستخدمي النموذج.

يتم توفير القدرة على القيام بشيء ما باستخدام البطاقة بواسطة طراز TrelloBoard الأساسي ، والذي يبدو كما يلي:



إذا قمنا بتشغيل النموذج ، فحين يمر التطبيق في ورقة "للموافقة" على عملية الموافقة ،



سيقوم النظام بنقله إلى القسم المناسب وإعلام صانع البطاقة بالتغيير في حالة التطبيق.



ومع ذلك ، إذا حاول نقل أحد التطبيقات التي لم يتم الاتفاق على نقلها يدويًا ، فسيرسلها النظام إلى المكان ويكتب تعليقًا غاضبًا.

وماذا تحت الغطاء؟


نموذج TrelloBoard الأساسي هو واجهة نطبقها في Java (في هذه الحالة ، في com.gav.semanticTrelloBoard.TrelloBoardDSL).

يبدو مثل هذا:



نحدد أسماء الوظائف باستخدام الديكورات وننفذها.
لدينا أيضًا فئة AiTrelloBoard ، والتي تسمح لنا بالعمل مع Trello. يحتوي على تطبيقات جافا لوظائف مثل start:



في ملف trelloBoard.properties ، نحتفظ بجميع معلمات trello api (مثل application_key ، board_id ، إلخ) و last_update_timestamp - الطابع الزمني لآخر تحديث.

وبالتالي ، على حساب الكثير من الجهد ، يمكننا أتمتة العمليات التجارية اللازمة في Trello. يعد استخدام هذا الحل والحفاظ عليه أكثر ملاءمة من رمز البرنامج.

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

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

روابط مفيدة


اقرأ المزيد عن لغة النمذجة الدلالية d0sl هنا .
وترد هنا الأسس الرياضية للنمذجة الدلالية.

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


All Articles