قالب شجرة قرارات من CSV (أهلية الاسترداد)
شجرة قرارات لأهلية الاسترداد مبنية من تصدير CSV: 25 صفاً، و12 قراراً موسوماً، أربعة منها ثلاثية المخارج، وخمس نهايات منفصلة. تُظهر كيف يتطابق «الخط إلى» و«نص الخط» موضعاً بموضع.
ما هي قالب شجرة قرارات من csv (أهلية الاسترداد)؟
ملف CSV هو ما يخرج من نظام، لا ما تعمل فيه. فطلبات الاسترداد تصل تصديراً من مكتب مساعدة، أو من أداة إدارة طلبات، أو من معالج مدفوعات: سطر ترويسة واحد، وصف واحد لكل طلب، وفاصل بين الحقول، ولا شيء غير ذلك. لا معادلات، ولا ورقة ثانية، ولا تنسيق خلايا، ولا لون يميّز ما جرى تصعيده. وهذا التسطّح هو سبب تنقّل CSV بين أنظمة لا تتفق على شيء آخر، وهو أيضاً سبب اضطرار شجرة القرارات المكتوبة CSV إلى حمل بنيتها في أعمدة مسمّاة بدل حملها في هندسة صورة.
أربعة أعمدة تؤدي العمل هنا وما بقي من الجدول اختياري. «الشكل» (Shape) يقول ما المربع: بداية، أو قرار، أو خطوة، أو نجاح، أو رفض، أو نهاية. و«نص المربّع» (Box text) هو السؤال أو الخطوة. و«الخط إلى» (Line to) يحمل أرقام الصفوف التي يقود إليها هذا الصف، مفصولةً بفواصل. و«نص الخط» (Line text) يحمل عناوين الفروع، مفصولةً بفواصل، بالترتيب نفسه. وهذه الجملة الأخيرة هي الصيغة كلها. فالصف 5 في المخطط أدناه يسأل عن عمر الطلب؛ وخليّة «الخط إلى» فيه تقرأ 7,6,21 وخليّة «نص الخط» تقرأ خلال 30 يوماً,من 31 إلى 90 يوماً,أكثر من 90 يوماً، فيأخذ الرقم الأول العنوان الأول، والثاني الثاني، والثالث الثالث. ولا شيء يربط عنواناً برقم سوى موضعه في القائمة، ولهذا تنجو شجرة القرارات من كونها ملفاً نصياً أصلاً، ولهذا تكسر فاصلة واحدة شاردة داخل عنوان فرعاً.
والاستيراد يطابق أسماء الترويسات لا مواضع الأعمدة، فيستطيع التصدير الاحتفاظ بالأعمدة التي لا تستخدمها: معرّف التذكرة، والمُسنَد إليه، وتاريخ الإنشاء وما بعدها تُنقل كما هي وتُتجاهل. أسقِط ملف .csv على منطقة جدول البيانات في المحرر، أو الصق نص CSV فيها. والشجرة أدناه سياسة استرداد مرسومة كما تُطبَّق السياسة فعلاً: ست أعمدة عمق متقاطعة مع أربعة مسارات، من طلب العميل إلى واحدة من خمس نهايات، وبينهما اثنا عشر قراراً موسوماً ولا حلقة في أي موضع. فطلب الاسترداد يُحكم عليه مرة واحدة. والذي يتغيّر هو أي النهايات الخمس يبلغ، ومهمة هذا المخطط أن يجعل كل واحدة من الخمس قابلة للبلوغ بمسار معلن واحد بالضبط.
ما الذي يغطيه هذا المخطط
في هذا القالب
- ست أعمدة عمق (الطلب، والأهلية، وحالة الصنف، والفصل، والاعتماد، والتسوية) متقاطعة مع أربعة مسارات: العميل، وموظف الخدمة، والمشرف، والمالية. فخليّة «المسار الأفقي» في الصف تقول كم يعمق موضعه في الشجرة، وخليّة «المسار الرأسي» تقول من يجيب عنه.
- اثنا عشر صف قرار من خمسة وعشرين، تُفتتح ببوابتَي استلام قبل تطبيق أي سياسة: «هل الطلب موجود في النظام؟»، وحين لا يكون موجوداً «هل قُدّم إثبات الشراء؟» بمخرج ثانٍ للعميل الذي يتوقف عن الرد.
- قاعدة الاقتران معروضة على فرع ثلاثي. فالصف 5، «كم عمر الطلب؟»، يحمل في «الخط إلى» القيمة 7,6,21 وفي «نص الخط» القيمة خلال 30 يوماً,من 31 إلى 90 يوماً,أكثر من 90 يوماً، ثلاثة أرقام وثلاثة عناوين، مقترنة بالموضع ولا شيء غيره.
- شجرتان فرعيتان تتدليان من «هل الصنف مادي أم رقمي؟». فالمرتجع المادي يمر عبر «حجز الإرجاع وفحص الصنف» و«ما حالة الصنف؟»؛ والرقمي يتخطى الاثنين ويجيب عن «هل جرى تنزيل الصنف الرقمي؟» من سجل الوصول.
- التصعيد مساراً لا حاشية: «هل يعتمد المشرف الطلب المتأخر؟» للنطاق العمري الأوسط، و«هل المبلغ فوق حد اعتماد الموظف؟» يوجّه على رقم بعملة، و«هل يعتمد المشرف الدفع؟» يمنح المشرف مخرجاً ثالثاً: رصيداً في المتجر بدل النقد.
- خمس نهايات منفصلة («دُفع الاسترداد إلى الوسيلة الأصلية»، و«صدر رصيد في المتجر»، و«شُحن البديل»، و«رُفض الاسترداد وسُجّل السبب»، و«أُغلق الطلب دون رد») فيتوقف الطلب المتروك عن أن يُعدّ طلباً مفتوحاً.
متى تستخدم هذا القالب
- قواعد الاسترداد لديك موجودة فقرةً في سياسة وبريداً مشتركاً، ولا أحد يستطيع أن يقول ماذا يحدث لصنف يُرجَع في اليوم 45.
- لديك تصدير CSV بطلبات الاسترداد المفتوحة وتريد شجرة القرارات التي يطبّقها موظفوك من الذاكرة سلفاً.
- موظفان يعطيان جوابين مختلفين للحالة نفسها، ويتبيّن أن الخلاف على حدّ لم يكتبه أحد.
- التصعيدات تصل المشرف بلا سبب معلن، فيُجادَل في كل واحدة من أولها بدل أن يُجادَل من الفرع الذي أنتجها.
- نزاع ردّ مبالغ أو تدقيق يطلب منك إظهار أي قاعدة طُبّقت على طلب بعينه، والقاعدة لا توجد إلا في سلسلة بريد.
ملف CSV الذي ينتج هذا المخطط
صف واحد لكل خطوة. الأرقام في عمود «خط إلى» هي أرقام صفوف — وهي ما يرسم الوصلات، وهي العمود الذي تفتقده معظم الملفات.
| # | الشكل | نص المربّع | الخط إلى | نص الخط | المسار الأفقي | المسار الرأسي |
|---|---|---|---|---|---|---|
| 1 | Start | يطلب العميل استرداداً | 2 | الطلب | العميل | |
| 2 | Input | تسجيل رقم الطلب وتاريخه وسببه | 3 | الطلب | موظف الخدمة | |
| 3 | Decision | هل الطلب موجود في النظام؟ | 5, 4 | نعم, لا | الطلب | موظف الخدمة |
| 4 | Decision | هل قُدّم إثبات الشراء؟ | 5, 22 | قُدّم, لا رد بعد تذكيرين | الطلب | العميل |
| 5 | Decision | كم عمر الطلب؟ | 7, 6, 21 | خلال 30 يوماً, من 31 إلى 90 يوماً, أكثر من 90 يوماً | الأهلية | موظف الخدمة |
| 6 | Decision | هل يعتمد المشرف الطلب المتأخر؟ | 7, 21 | مُعتمد, مرفوض | الأهلية | المشرف |
| 7 | Decision | هل الصنف مادي أم رقمي؟ | 8, 11 | مادي, رقمي | الأهلية | موظف الخدمة |
| 8 | Process | حجز الإرجاع وفحص الصنف | 9 | حالة الصنف | موظف الخدمة | |
| 9 | Decision | ما حالة الصنف؟ | 12, 13, 10 | غير مفتوح, مفتوح وقابل لإعادة البيع, معيب | حالة الصنف | موظف الخدمة |
| 10 | Decision | هل العيب مشمول بالضمان؟ | 14, 21 | مشمول, تلف من العميل | حالة الصنف | المشرف |
| 11 | Decision | هل جرى تنزيل الصنف الرقمي؟ | 12, 13, 15 | لم يُستخدم, استُخدم جزئياً, استُهلك كاملاً | حالة الصنف | موظف الخدمة |
| 12 | Process | حساب مبلغ الاسترداد الكامل | 16 | الفصل | موظف الخدمة | |
| 13 | Process | حساب مبلغ الاسترداد الجزئي | 16 | الفصل | موظف الخدمة | |
| 14 | Decision | استبدال أم استرداد؟ | 19, 12 | استبدال, استرداد | الفصل | العميل |
| 15 | Decision | هل رصيد حسن النية ضمن حد الموظف؟ | 18, 17 | ضمن الحد, فوق الحد | الفصل | موظف الخدمة |
| 16 | Decision | هل المبلغ فوق حد اعتماد الموظف؟ | 20, 17 | عند الحد أو دونه, فوق الحد | الاعتماد | موظف الخدمة |
| 17 | Decision | هل يعتمد المشرف الدفع؟ | 20, 18, 21 | اعتُمد كاملاً, اعتُمد رصيداً في المتجر, مرفوض | الاعتماد | المشرف |
| 18 | Process | إصدار رصيد في المتجر للحساب | 24 | التسوية | المالية | |
| 19 | Process | شحن البديل وإغلاق الإرجاع | 25 | التسوية | موظف الخدمة | |
| 20 | Compensation | دفع الاسترداد إلى وسيلة الدفع الأصلية | 23 | التسوية | المالية | |
| 21 | Reject | رُفض الاسترداد وسُجّل السبب | التسوية | موظف الخدمة | ||
| 22 | End | أُغلق الطلب دون رد | التسوية | موظف الخدمة | ||
| 23 | Success | دُفع الاسترداد إلى الوسيلة الأصلية | التسوية | المالية | ||
| 24 | Success | صدر رصيد في المتجر | التسوية | المالية | ||
| 25 | Success | شُحن البديل | التسوية | موظف الخدمة |
#,الشكل,نص المربّع,الخط إلى,نص الخط,المسار الأفقي,المسار الرأسي
1,Start,يطلب العميل استرداداً,2,,الطلب,العميل
2,Input,تسجيل رقم الطلب وتاريخه وسببه,3,,الطلب,موظف الخدمة
3,Decision,هل الطلب موجود في النظام؟,"5, 4","نعم, لا",الطلب,موظف الخدمة
4,Decision,هل قُدّم إثبات الشراء؟,"5, 22","قُدّم, لا رد بعد تذكيرين",الطلب,العميل
5,Decision,كم عمر الطلب؟,"7, 6, 21","خلال 30 يوماً, من 31 إلى 90 يوماً, أكثر من 90 يوماً",الأهلية,موظف الخدمة
6,Decision,هل يعتمد المشرف الطلب المتأخر؟,"7, 21","مُعتمد, مرفوض",الأهلية,المشرف
7,Decision,هل الصنف مادي أم رقمي؟,"8, 11","مادي, رقمي",الأهلية,موظف الخدمة
8,Process,حجز الإرجاع وفحص الصنف,9,,حالة الصنف,موظف الخدمة
9,Decision,ما حالة الصنف؟,"12, 13, 10","غير مفتوح, مفتوح وقابل لإعادة البيع, معيب",حالة الصنف,موظف الخدمة
10,Decision,هل العيب مشمول بالضمان؟,"14, 21","مشمول, تلف من العميل",حالة الصنف,المشرف
11,Decision,هل جرى تنزيل الصنف الرقمي؟,"12, 13, 15","لم يُستخدم, استُخدم جزئياً, استُهلك كاملاً",حالة الصنف,موظف الخدمة
12,Process,حساب مبلغ الاسترداد الكامل,16,,الفصل,موظف الخدمة
13,Process,حساب مبلغ الاسترداد الجزئي,16,,الفصل,موظف الخدمة
14,Decision,استبدال أم استرداد؟,"19, 12","استبدال, استرداد",الفصل,العميل
15,Decision,هل رصيد حسن النية ضمن حد الموظف؟,"18, 17","ضمن الحد, فوق الحد",الفصل,موظف الخدمة
16,Decision,هل المبلغ فوق حد اعتماد الموظف؟,"20, 17","عند الحد أو دونه, فوق الحد",الاعتماد,موظف الخدمة
17,Decision,هل يعتمد المشرف الدفع؟,"20, 18, 21","اعتُمد كاملاً, اعتُمد رصيداً في المتجر, مرفوض",الاعتماد,المشرف
18,Process,إصدار رصيد في المتجر للحساب,24,,التسوية,المالية
19,Process,شحن البديل وإغلاق الإرجاع,25,,التسوية,موظف الخدمة
20,Compensation,دفع الاسترداد إلى وسيلة الدفع الأصلية,23,,التسوية,المالية
21,Reject,رُفض الاسترداد وسُجّل السبب,,,التسوية,موظف الخدمة
22,End,أُغلق الطلب دون رد,,,التسوية,موظف الخدمة
23,Success,دُفع الاسترداد إلى الوسيلة الأصلية,,,التسوية,المالية
24,Success,صدر رصيد في المتجر,,,التسوية,المالية
25,Success,شُحن البديل,,,التسوية,موظف الخدمةكيف تعمل
صدّر الطلبات، ثم أبقِ أربعة أعمدة
خذ التصدير الذي لديك سلفاً وأعد تسمية ترويساته إلى «الشكل» و«نص المربّع» و«الخط إلى» و«نص الخط». وأضف «المسار الأفقي» و«المسار الرأسي» إن أردت رسم العمق والأدوار مساراتٍ، وأضف «نمط الخط» فقط إن أردت تلوين فرع. وكل ما عدا ذلك في التصدير يمكن أن يبقى في موضعه: فالاستيراد يطابق أسماء الترويسات، فترتيب الأعمدة لا يهم، والأعمدة غير المعروفة تُنقل وتُتجاهل بدل أن تُرفض.
اجعل سطر الترويسة أول سطر في الملف
كثيراً ما تكتب أدوات التقارير سطر عنوان أو ختم تاريخ أو صفاً فارغاً فوق الترويسات. وملف CSV لا يعرف مفهوم العنوان، فيُقرأ السطر الأول ترويسةً مهما كان مضمونه، والملف الذي سطره الأول «التقرير أُنشئ في 12/03» يُستورد بعمود واحد اسمه «التقرير أُنشئ في 12/03». افتح الملف في محرر نصوص واحذف كل ما فوق الترويسات، وكذلك أي أسطر فارغة في الذيل، فهي تصل صفوفاً فارغة.
رقّم الصفوف قبل أن تكتب «الخط إلى»
«الخط إلى» يحمل مواضع لا أسماء ولا معرّفات: فالقيمة 7 تعني صف البيانات السابع بالعد من 1 تحت الترويسة. اكتب الشجرة كاملة بالترتيب الذي تريده أولاً، ثم املأ الأرقام. وإن رتّبت الملف أو أعدت ترتيبه بعد ذلك فكل رقم في العمود لا يزال يشير إلى موضع، وهو الآن يشير إلى الصف الخطأ، ولا شيء في الملف يبدو خاطئاً. وترتيب ملف CSV من الخطوات هو أسرع طريقة لإعادة توصيل شجرة بصمت.
اقرن «الخط إلى» و«نص الخط» واحداً بواحد
تُقرأ الخليّتان قائمتين وتُقترنان بالموضع، فيجب أن يتساوى عدد مدخلاتهما: 7,6,21 مقابل خلال 30 يوماً,من 31 إلى 90 يوماً,أكثر من 90 يوماً. وهنا طبقتان من الفواصل ولا يمكن تهريب إلا الخارجية منهما. فالحقل الذي يحوي فاصلة يوضع بين علامتي اقتباس في الملف، ولهذا لا بأس بنص المربع «تسجيل رقم الطلب وتاريخه وسببه»؛ أما عنوان الفرع الذي يحوي فاصلة فلا ينقذه الاقتباس، لأن قائمة العناوين تُشطر على الفواصل بعد إزالة الاقتباس. اكتب «مفتوح وقابل لإعادة البيع»، ولا تكتب أبداً «مفتوح، قابل لإعادة البيع».
ضع أرقامك أنت في الحدود الثلاثة
ثلاثة صفوف تحمل رقماً لا يفعل هذا القالب فيه أكثر من التخمين. فنطاقا عمر الطلب هما 30 و90 يوماً؛ استبدلهما بنافذتك المنشورة وبالمدى الذي لا يزال للمشرف أن يعتمده. وحد اعتماد الموظف رقم بعملة لا اجتهاد، ويجب أن يقع حيث يُصعَّد ذيل الاستردادات الكبيرة دون أن يتحول مسار المشرف قائمةَ انتظار. و«استُخدم جزئياً» يحتاج تعريفاً للسلع الرقمية: تنزيل واحد، أو درس واحد شُوهد، أو مفتاح ترخيص كُشف.
افحص الفاصل والترميز قبل الاستيراد
انظر إلى السطر الأول في محرر نصوص عادي. فالفواصل المنقوطة بين الترويسات تعني أن الملف حُفظ ببرنامج يستخدم فاصل قوائم أوروبياً، وقراءته على أنه مفصول بفواصل تطويه عموداً واحداً. واحفظه بترميز UTF-8 أيضاً: فالتصدير المكتوب بترميز قديم يحوّل £ وé والشرطة الطويلة إلى رموز استبدال تجلس بعد ذلك داخل عناوين مربعاتك، وقد تلتصق علامة ترتيب بايتات UTF-8 بالترويسة الأولى فيتوقف «الشكل» عن مطابقة عمود الشكل.
الأسئلة الشائعة
كيف تكتب فرعاً ثلاثياً في ملف CSV؟
بالطريقة نفسها التي تكتب بها فرعاً ثنائياً، بمدخل إضافي واحد في كل من الخليّتين. ففي الصف 5 من هذا المخطط تقرأ خليّة «الخط إلى» 7,6,21 وتقرأ خليّة «نص الخط» خلال 30 يوماً,من 31 إلى 90 يوماً,أكثر من 90 يوماً. فيقترن الرقم الأول بالعنوان الأول، والثاني بالثاني، والثالث بالثالث. ولا حدّ تفرضه الصيغة، ولا شيء فيها يفترض نعم ولا، وهذا يهم في سياسة حقيقية: فنطاقات العمر، وحالة الصنف، وخيارات المشرف نادراً ما تكون ثنائية، وحشرها في معيّنات نعم/لا متداخلة يضاعف عدد الصفوف دون أن يضيف قاعدة واحدة. وأربعة من قرارات هذا المخطط الاثني عشر لها ثلاثة مخارج.
ماذا يحدث إن اختلف عدد مدخلات «الخط إلى» و«نص الخط»؟
الاقتران بالموضع، فالعنوان الناقص لا يترك فجوة في موضعه، بل يسحب كل عنوان لاحق موضعاً واحداً إلى الأمام على السهم الخطأ. أسقِط «نعم» من صف ثلاثي الفروع فيُوسم الفرع الثاني بما كان للأول. وسبب استحقاق هذا فحصاً يدوياً أن أياً من الخليّتين ليست معطوبة في ذاتها: فكلتاهما نص عادي مفصول بفواصل، وكلتاهما تنجو من أي محلل CSV، والملف لا يعطيك أي إشارة البتة. عُدّ الفواصل في خليّتَي كل صف قرار قبل الاستيراد، وعامل القرار الذي ليست كل أسهمه موسومة على أنه خلل لا خيار أسلوبي.
لماذا يُستورد ملف CSV عموداً واحداً؟
الفاصل في الغالب الأعم. فحفظ ورقة بصيغة CSV يستخدم فاصل القوائم المضبوط لإعدادات الجهاز الإقليمية، فالملف المنتَج على جهاز مضبوط على إعدادات أوروبية مفصول بفواصل منقوطة وهو مع ذلك يُسمّى .csv. وقراءته على أنه مفصول بفواصل تجعل كل سطر حقلاً واحداً فتحصل على عمود واحد شديد الاتساع. افتح الملف في محرر نصوص عادي وانظر إلى سطر الترويسة: فإن كانت الفواصل منقوطة أو مسافات جدولة فأعد التصدير بفواصل أو استبدلها. وافحص الترميز في الوقت نفسه، لأن الحرف المشكول الذي يظهر رمزين شاردين في محرر النصوص سيُخزَّن كذلك بالضبط في عناوين مربعاتك.
هل عليّ حذف الأعمدة التي يضيفها تصدير مكتب المساعدة؟
لا. فالاستيراد يطابق أسماء الترويسات لا مواضع الأعمدة، فمعرّف التذكرة، والمُسنَد إليه، وتاريخ الإنشاء، والقناة، وأي شيء آخر في التصدير تُنقل كما هي وتُتجاهل. ولذلك نتيجتان عمليتان: لست مضطراً إلى إعادة ترتيب أي شيء قبل الاستيراد، وتستطيع إبقاء البيانات المرجعية بجوار العملية فيظل الصف قابلاً للتتبع إلى التذكرة التي جاء منها. والشيء الوحيد الذي يستحق الفحص ألا تكون قد تركت عمودين بالترويسة نفسها سهواً، وهو أمر يسهل وقوعه حين يسمّي التصدير عموداً «ملاحظات» ويكون في الجدول عمود بالاسم نفسه.
بم تختلف شجرة قرارات CSV عن بناء الشيء نفسه في إكسل؟
ملف CSV بلا معادلات، وبلا أوراق، وبلا أنواع خلايا، وبلا تنسيق، فلا شيء في الملف يستطيع حساب فرع أو إخفاء قاعدة في تنسيق شرطي. فكل ما تفعله الشجرة يجب أن يُكتب حرفياً في «الخط إلى» و«نص الخط»، وهذا قيد حين تحرّر ومزية حين يضطر غيرك إلى قراءته أو مقارنة نسختين منه في نظام إصدارات. ويستحق أن نتذكر ما CSV له: فهو ما يمنحك إياه النظام في طريق الخروج. ولا أحد يصون سياسة داخله. صدّرها، واستوردها مرة، ثم حرّر المخطط والجدول معاً بعد ذلك بدل الذهاب والإياب عبر الملف النصي.