
نواصل الحديث عن كيفية تحسين حياة عملائنا وشركائنا ليس فقط ، بل أيضًا موظفي الشركة. سوف يتعلق الأمر بتنفيذ نظام المواءمة. لم أشير عمدا إلى تنسيق "ماذا" ، لأنه في المستقبل سيتضح أنه ، من الناحية النظرية البحتة ، تنسيق "كل شيء".
تأملات في نظام الموافقة
في البداية ، في شركتنا ، وكذلك في العديد من الشركات الأخرى ، التي كان علي أن أعمل فيها ، والتي كنت فيها "ضيفًا" أو سمعت للتو من أصدقائي ، تم التفاوض على الاتفاقات (وفي وقت كتابة المقالة ما زالت جارية) ، عن طريق المراسلات المنتظمة في البريد. بطبيعة الحال ، هذا يناسب الشركات التي لديها عدد قليل من الموظفين والمقاولين. ليست هناك حاجة خاصة للتوصل إلى أنظمة وتنفيذها بسبب توقيع اتفاقية أو اتفاقيتين شهريًا (أو حتى عام) مع اتخاذ الرئيس التنفيذي وحده قرار التوقيع. وقد لوحظت حالة مماثلة مع دفع الفواتير. كل موظف يتفاعل مع الأطراف المقابلة ويحتاج إلى دفع شيء ما ، ويطلب فاتورة ويرسلها إلى قسم المحاسبة عن طريق البريد مع طلب "الدفع". في الوقت نفسه ، لا تقوم المحاسبة دائمًا بدفع الفواتير دون موافقة مسبقة على السداد مع المشرف المباشر للموظف و / أو إدارة الشركة. في ظل ظروف معينة ، يمكن "تقصير" سلسلة الموافقات أو العكس "تطول".
حتى الآن ليس هناك الكثير من الموظفين والجميع يعرفون جميع زملائهم الذين هم ومن هو القائد - لا توجد مشاكل خاصة. في الوضع اليدوي وتحت ظروف معينة ، يتم التفاوض على طلبات الدفع في وضع المراسلات ويتم دفعها (أو رفضها). لكن شركتنا تنمو ومنذ لحظة معينة عبرنا هذا الخط غير المرئي ، وبعد ذلك من الضروري التفكير في أتمتة هذه العمليات والحاجة إلى تقديم شيء جديد.
قائمة الرغبات
كان لدينا الحد الأدنى من متطلبات النظام الخاصة بنا:
- واجهة سهلة الاستخدام وموجهة للغاية للويب (بدون الحاجة إلى تثبيت العملاء)
- مرونة التكوين
- على الرغم من أننا لسنا السريرية ، نحن بجنون العظمة. لذلك ، نريد الاحتفاظ بالخدمات التي قد تظهر فيها المعلومات السرية في محيطنا المغلق
في البداية ، قمنا بتحليل منتجات عائلة "نظام إدارة المستندات الإلكترونية" الموجودة في السوق. نظرنا إلى الأنظمة المعروفة جيدًا: 1C: إدارة المستندات ، "BUSINESS" ، "أطروحة". نظرنا أيضًا في الأنظمة التي تم إنشاؤها للطلب لشركات أخرى ، وكذلك المنتجات الجديدة مثل Allware.
لا استطيع ان اقول ان النظم سيئة. في الواقع ، تسمح لنا جميع الأنظمة تقريبًا بتحقيق قائمة أمنياتنا الرئيسية وأكثر مما نحتاج إليه. ولكن ، كالعادة ، الشيطان يكمن في التفاصيل.
بادئ ذي بدء - الواجهة. نحن لسنا معتادين على استخدام واجهة نمط "1C". نحتاج إلى واجهة بسيطة وبديهية سنقوم فيها بتنفيذ الحد الأدنى من الإجراءات للحصول على أقصى نتيجة (ومن لا يريد ذلك؟).
ثانيًا ، السعر (المدفوع في نفس الوقت ثم تكلفة ملكية المنتج ككل). نحن لا نحتاج إلى كل شيء في الأنظمة التي يتم تقديمها خارج الصندوق. ولكن في الوقت نفسه ، يجب عليك الدفع فورًا لكل شيء. ونظرًا لأن الكثيرين يتحولون الآن إلى نظام اشتراك ، يتعين عليك الدفع باستمرار ويعتمد المبلغ ، كالمعتاد ، على العديد من الشروط (عدد المستخدمين / الاتصالات ، والقدرة على العمل في السحابة ، والخيارات الإضافية ، والوحدات ، وما إلى ذلك). و "القفز" عن النظام ، إذا توقف السعر فجأة عن ملاءمته - مشكلة.
ثالثًا ، لا توجد طريقة "لإدارة" قائمة الرغبات الخاصة بك.
التنفيذ
لن أكتب لفترة طويلة حول كيف ولماذا اتفقنا في النهاية على قرار "الخروج بدراجة" وكتابة نظام إدارة المستندات الإلكتروني الخاص بنا. يتم اتخاذ القرار - عليك القيام بذلك. لقد مررنا بالفعل بمحاولة محاولة تنفيذ المنتج دون متطلبات ، لذلك بدأت عملية كتابة المعارف التقليدية ومواءمتها لأول مرة. لحسن الحظ ، كان أمامنا أمثلة على عمليات التنفيذ ، لذلك ذهب التكوين دون ألم.
الشيء الوحيد الذي كان علينا أن نحطم الرماح هو أنه في عملية تطوير الهندسة المعمارية لا ينبغي أن نستسلم لإغراء تلبية المتطلبات "كما هي" ، على حساب المرونة وسهولة الاستخدام. كان الإغراء رائعًا ، خاصة بالنسبة للعميل الرئيسي ، حيث سيتم تقليل فترة التنفيذ والتنفيذ مرتين. ولكن تمكنا من إقناع كل من الإدارة وأنفسنا بأنه "من الأفضل أن تخسر يومًا ، ثم تطير خلال 5 دقائق". وأعتقد أننا اتخذنا القرار الصحيح.
من الأفضل أن تخسر يومًا ، ثم تطير خلال 5 دقائق.
المكدس "القياسي" هو .Net Core 2 و EntityFramework، Angular 4، MS SQL ، نظرًا لأن لدينا خلفية كبيرة إلى حد ما في تطبيق الأدوات والتقنيات. على الرغم من أن DBMS لا يهمنا حقًا لأسباب واضحة. إذا لزم الأمر ، دعنا ننتقل إلى ما نريده.
والنتيجة هي منتج يلبي المتطلبات المهمة بالنسبة لنا:
- سير عمل واحد - أطراف مختلفة في الاتفاقية (مرتبطة بالفقرة التالية)
- شروط تخطي مرحلة الموافقة وفقًا لشروط محددة (يمكن إضافة أي حقل في الطلب إلى الشرط باستخدام شيك محدد ، وبناءً على صحة الشرط ، يلزم الانتقال إلى خطوة الموافقة التالية أو يتم تحديد "التخطي" الخاص به)
- واجهة "الملكية" لدينا
ميزات مريحة ومفيدة مثل:
- تحديد القيم الافتراضية للأدلة (المستخدم والنظام). دليل المستخدم هو كيان يسمح للمستخدمين بتعيين العناصر بأنفسهم. العناصر التي تم إنشاؤها ستكون متاحة له فقط. في الوقت نفسه ، في مثل هذا الدليل ، يمكن لمسؤول النظام إدخال العناصر المشتركة التي ستكون متاحة لجميع مستخدمي النظام
- تحديد عناصر الأدلة الأكثر استخدامًا لكل مستخدم وتشكيل القوائم في الواجهة بناءً على هذه الإحصائيات (الفرز)
- قابل للتخصيص بالكامل من الرسوم البيانية للوحة الإدارة (هيكل وخصائص الحقول المراد ملؤها) وطرق العرض (ترتيب العناصر في النموذج) لكل نوع من طلبات الموافقة
- ACL مرنة
- يمكن لكل مستخدم البحث عن التطبيقات للتخصيص من خلال مجموعات مختلفة من المعلمات. يمكن أن تكون المعلمات أي خصائص لقوالب التطبيق مع القدرة على تحديد الشرط الذي يجب فرضه على هذا المجال أثناء التصفية. في هذه الحالة ، يمكنك إنشاء العديد من مجموعات التصفية. مناسب للبحث السريع في أقسام مختلفة
- التحقق من القيم المدخلة بناءً على قالب معين لحقل تطبيق معين
بالطبع ، كان هناك بعض "الفضول" أيضًا. بادئ ذي بدء ، نحن نتحدث عن تكوين سير العمل. قررنا في البداية أننا بحاجة إلى القدرة على تكوين مخطط الشجرة لعملية الأعمال. ذلك من نقطة (مرحلة) تنسيق واحدة كان من الممكن الذهاب إلى فروع مختلفة ، حسب اختيار المستخدم (التنسيق). منطقية ومرنة. ولكن بعد أن أدركنا هذه الفرصة وأطلقنا النظام في الإنتاج ، بدا لنا أننا لا نحتاج حقًا إلى منح المستخدم الحق في الاختيار (فرصة التفكير). بالنسبة له ، يجب أن يحدث كل شيء على مستوى "أوافق" ، "رفض". خلاف ذلك ، لن نكون قادرين على الابتعاد عن مبدأ فهم التفاصيل الدقيقة للموظفين للتفاعل في الشركة. ولتلبية هذا الشرط ، يجب أن يكون سير العمل
خطيًا .
بالطبع ، كان هناك بعض "الفضول" أيضًا.
ونتيجة لذلك ، وجدنا حلاً وسطًا - فقد تركت بنية الحل وتنفيذ سير العمل شبيهة بالشجرة ، ولكن تم استخدام الاستخدام من وجهة نظر التكوين على مستوى "الاتفاق". وقد فعلوا ذلك بشكل صحيح. منذ الآن ، عند تحليل المهام المرتبطة بإطلاق أنواع جديدة من الموافقات ، أصبح من الواضح أنه في بعض المراحل ، لأنواع معينة من التطبيقات ، نحتاج إلى توفير فرصة للمنسق لاختيار الإجراءات المختلفة.
الآن القليل عن "خبرتنا" (على الأقل نحن نؤمن بها). من أجل تحقيق الخطية وفي نفس الوقت لتكون قادرًا على استخدام سير عمل واحد لخطة الموافقة الواحدة (حسب المخطط أعني الكيانات التي تتطلب المشاركة وترتيب الأدوار المختلفة - العقد ، حساب الدفع ، وما إلى ذلك) ، فكرنا في وتنفيذ آلية الشروط تخطي المرحلة (المراحل) التالية من الموافقة. في تهيئة الظروف ، يمكننا استخدام أي كيان من بطاقة التسوية ومقارنتها مع "أي شيء".
على سبيل المثال ، لدينا الكيانات التالية: البادئ ، المبلغ ، العملة ، الطرف المقابل. ونحتاج ذلك بمبلغ أقل من 100000 روبل. لم يتم التنسيق من خلال الموظف "أ" ؛ ففي مدفوعات العملات الأجنبية ، كان بالضرورة مرتبطًا بالتنسيق "ب" ، وإذا كان البادئ هو الموظف "ج" ، فإن التنسيق الإضافي للموظف "د" ضروري. لتنفيذ هذه النقاط ، نضيف جميع النقاط المطابقة "في السطر". أي: البادئ-> أ-> ب-> د-> ...
بعد ذلك ، يتم تشكيل شروط انتقال "التمرير" إلى كل نقطة من نقاط التنسيق. على سبيل المثال ، في البادئ الانتقالي-> A ، يتم تكوين الشرط "Amount <100،000" ، على (البادئ) A-> B - العملة = "Ruble" ، (البادئ ، A ، B) -> D - البادئ! = C.
لماذا يشار إلى التحولات بين قوسين؟ لأنه يمكن تلبية الشروط بطريقة معقدة و "تحت الغطاء" ، إذا شكلنا شرطًا للانتقال إلى نقطة تنسيق ، فإننا ننشئ تلقائيًا انتقال نظام "يتجاوز" هذه النقطة (هنا ساعدتنا بنية سير العمل الشبيهة بالشجرة لدينا ولم يكن هناك أي شيء "عكاز").حسنًا ، ذبابة صغيرة في المرهم. لم نلتزم بتنفيذ آلية إدارة التنبيهات القابلة للتكوين. على الرغم من أنه تم وضعه في البداية في بنية المشروع. كالعادة ، لتسريع عملية البدء ، اضطررت إلى "رمز ثابت مؤقتًا" قليلاً ، وفي الوقت الحالي يبقى هذا الرمز الصلب. وكانت الفكرة هي إنشاء آلية مشابهة لـ jira ، والتي تسمح لك بإنشاء مخطط إعلام خاص بك ، حيث يمكنك تعيين المشغلات (الأحداث) وربطها بمجموعات أو موظفين محددين والتمكن من "إرفاقها" بأي نوع من التطبيقات.
لتسريع عملية الإطلاق ، اضطررت إلى "رمز ثابت مؤقتًا" قليلاً.
واجهات
بعض واجهات نظامنا ، حتى يكون هناك فهم لما تمت مناقشته بشكل عام
لوحة القيادة
أول شيء يراه مستخدم النظام عند فتحه (إذا لم تأخذ في الاعتبار عملية المصادقة) هو لوحة معلومات. يعرض الموافقات النشطة (غير المكتملة) فقط. علاوة على ذلك ، تنقسم التطبيقات إلى قسمين:
- التطبيقات التي تتطلب موافقة المستخدم (أنا المؤدي)
- التطبيقات التي بدأها المستخدم (أنا المؤلف)
قم بإنشاء تطبيق جديد
يمكن أن تحتوي واجهة إنشاء تطبيق جديد على تمثيل (عدد العناصر وترتيبها) على الإطلاق. فيما يلي واجهة بسيطة توضح القدرة على إدخال الأرقام ، حدد من القائمة ، العلم (خانة الاختيار) ، التاريخ ، المرفقات.
الشيء الوحيد الذي يمكنك الانتباه إليه هو الخيار "إنشاء المزيد". عندما يتم تنشيطه ، بعد إنشاء التطبيق الحالي ، لسنا في لوحة البيانات أو في بطاقة التطبيق الذي تم إنشاؤه حديثًا ، ولكن نموذج إنشاء تطبيق جديد من نفس النوع الذي تم إنشاؤه للتو يفتح على الفور. تم تنفيذه بناء على طلب موظفينا ، الذين يتعين عليهم "حزم" إنشاء نفس نوع التطبيق.
مرحلة الموافقة
لا تختلف هذه الواجهة كثيرًا عن نموذج إنشاء التطبيق. ولكن لديها عدد من الميزات الوظيفية الأساسية:
- بدلاً من أزرار الإنشاء ، تظهر الأزرار ، والنقرات التي يتم من خلالها نقل التطبيق إلى إحدى حالات عملية الأعمال. في الحالة المتدهورة ، كما هو موضح أعلاه ، هو "رفض" و "أوافق"
- يتم وضع المرفقات والتعليقات وكيان دفتر اليومية الجديد (سجل الإجراءات) في علامات تبويب منفصلة
- بشكل افتراضي ، جميع حقول التطبيق ، باستثناء التعليق ، غير قابلة للتحرير. في الوقت نفسه ، وضعنا الوظيفة التي تتيح لنا أن نوفر في أي خطوة معينة من التنسيق القدرة على ضبط مجموعة معينة فقط من المجالات.
- إذا كنت البادئ للتطبيق (يمكنك دائمًا الانتقال إلى بطاقة الموافقة) ولديك الخيار "إنشاء نسخة مكررة" ، عند النقر فوقها ، يتم فتح نموذج إنشاء التطبيق ، وتضاعف قيم الحقول الخاصة به (باستثناء المرفقات) قيم الحقل للتطبيق الحالي.
إذا نظرت عن كثب ، ستلاحظ عنصرًا برتقاليًا بداخله زائد أمام حقل اختيار العداد. هذه هي وظيفة إدارة دليل شخصي. عند النقر فوق هذا العنصر ، يتم فتح نموذج إضافة عنصر دليل.
نظرًا لأنه في هذه الحالة هو الطرف المقابل ، فإن عنصر الدليل الموجود فينا يحتوي على تفاصيلين - الاسم ورقم التعريف الضريبي. بعد الإنشاء ، يمكن للمستخدم تحديد هذا العنصر على الفور من القائمة المنسدلة.
بحث
في البحث عن التطبيقات ، يتم عرض مجموعة من الخصائص في الجزء العلوي للقيم التي تحتاج إلى تحديدها. يتم تكوين مجموعات من قبل كل مستخدم لاحتياجاته مع القدرة على التبديل بينها بسرعة.
إدارة عمليات الأعمال
كجزء من إدارة عملية الأعمال ، يمكننا إنشاء أي عدد من نقاط الطريق والإشارة إلى التحولات. ونتيجة لذلك ، يتم تشكيل رسم بياني انتقالي. ولكل نقطة تنسيق يمكننا تحديدها:
- من الذي يطابق عند نقطة معينة
- أذونات لتنفيذ الإجراءات عند نقطة معينة في المسار
- شروط تخطي هذه النقطة (مرحلة الموافقة)
المطابقة
في علامة التبويب "المنسقون" ، يمكنك إضافة مجموعات ، وإضافة مستخدمين يمكنهم تنفيذ عملية الموافقة عند نقطة معينة في عملية الأعمال.
أذونات العمل
على الأذونات ، يمكنك أن تسكن أكثر قليلاً. للحد من إجراءات المنسقين المتعلقة بتغيير قيم الحقول (الكيانات) في التطبيق ، تم إدخال آلية إذن. لقد قمنا حاليًا بإدخال 4 أذونات:
- تنزيل المرفقات
- عرض المرفقات
- التعليق
- قم بتغيير قيم مجالات التطبيق
إذا كانت الثلاثة الأولى أكثر أو أقل وضوحًا ، فيجب التعليق على إذن لتغيير الحقول المتاحة. بشكل افتراضي ، لا يمكن للمفاوضين تغيير أي قيم الحقول في التطبيق. يتوفر وضع العرض فقط. إذا كان من الضروري السماح بتغيير حقول التطبيق الفردية عند نقطة موافقة معينة ، فسيتم تنشيط هذا الخيار ومن الممكن التحديد من قائمة حقول التطبيق فقط تلك التي يمكن تغيير قيمها إلى الحقل المطابق.
على الرغم من أنه بعيد المنال قليلاً ، ولكن على سبيل المثال ، قد يكون هذا ضروريًا إذا كان لديك موقف منفصل "متحقق من صحة ملء المبلغ" ، ثم منحه الفرصة لتغيير المبلغ فقط في الطلب وليس أكثر.
شروط التخطي
شروط التخطي التي وصفتها أعلاه. هناك حاجة إلى الوظائف لتشكيل عملية تجارية خطية واحدة لجميع مستخدمي النظام ، وفي نفس الوقت لتنفيذ حركة التطبيق على طول الطريق بطرق مختلفة ، اعتمادًا على الحالة المحددة ودون تدخل المستخدم.
على الشاشة ، يتم إعداد إعداد يسمح لك بتخطي نقطة المسار هذه إذا كان البادئ في مجموعات معينة وكانت العملة تعادل الروبل الروسي.
بدلا من الاستنتاج
حاليًا ، أطلقت شركتنا نوعًا واحدًا فقط من الموافقات. ولكن مع مرونة التخصيص ، المضمنة في النظام ، لدينا أدوات تسمح لك بتكوين أي بطاقات تطبيق ، حيث يمكنك تحديد أي عدد من الحقول ، وأي تمثيل لبطاقة التطبيق وأي مسار للتنسيق مع مختلف الظروف.
الشيء الوحيد المطلوب هو العمل مع التحليلات لجمع المتطلبات ثم نقلها إلى النظام من خلال واجهة الإدارة. ماذا نفعل الان
المنتج على قيد الحياة ، نقوم بشكل دوري بإجراء تغييرات بناءً على طلب موظفينا ، ونتيجة لذلك تنمو قوته وإمكانية استخدامه ، والوظائف المنفذة تفي بالمهمة التي تواجهها أعمالنا ، ويمكننا دائمًا القول بثقة أن الوظيفة المطلوبة سيتم تنفيذها في حالة إن أمكن.