الدروس · الدرس 3 من 5
رموز ومطابقات وصفّ يقرؤه إنسان
كيف يطابق التطبيق سجلّاته برموز نظام آخر، والأحكام الخمسة التي يعيدها، وأيّها يأبى أن ينفّذه.
الدرس 3 من 5 · 22 د
نظامان، واسمان لمورّد واحد
كلّ نظام يحفظ أسماءه هو للأشياء نفسها. فمصنع النسيج صفّ هنا وصفّ آخر في الدفتر. والصفّان لا يتّفقان على شيء إلا على أن المصنع موجود. وما لم يصلهما أحد، فالمستند المسلَّم مستند لا يستطيع أحد حفظه.
والوصل بالاسم يبدو بسيطاً، وهو الجزء الذي يعطب. فالأسماء ليست فريدة ولا ثابتة. هذا الدرس عن كيفية وصلها في التطبيق، وعن الصفوف التي يأبى وصلها نيابةً عنك.
عند Corina تصدير من Mirela: قائمة برموز الدفتر والأسماء بجانبها. بل ثلاث قوائم، لأن التطبيق يطابق ثلاثة أصناف.
ثلاث قوائم، وحقل واحد
تسمّى البطاقة الربط ببيانات نظام المحاسبة، وتحمل ثلاث مطابقات. وكلّ واحدة موسومة بطرفي الوصل.
| في هذا التطبيق | في الدفتر | التسمية على البطاقة |
|---|---|---|
| المشترون | العملاء | المشترون ← عملاء نظام المحاسبة |
| المورّدون | البائعون | المورّدون ← بائعو نظام المحاسبة |
| المواد | الأصناف | المواد ← أصناف نظام المحاسبة |
كلّ مطابقة تكتب حقلاً واحداً على سجلّ التطبيق، والبطاقة تعرض عدد من يحمله وعدد من لا يحمله. ولا يتغيّر شيء آخر في السجلّ. فالتطبيق لا يستورد بيانات الدفتر. بل يدوّن ما يسمّي به الدفتر شيئاً يملكه التطبيق سلفاً.
والمدخل نصّ يُلصق. رمز واحد واسم واحد في كل سطر، يفصلهما فاصلة أو مسافة جدولية، والاقتباس اختياري. وتُتخطّى السطور الفارغة.
ويُتخطّى سطر الترويسة كذلك، لكن حين يبدو ترويسةً في الطرفين معاً: على الخانة الأولى أن تُقرأ عمودَ رمز والثانية عمودَ اسم. أمّا ترويسة تقول شيئاً آخر فتُقرأ بيانات، وتظهر في المعاينة صفاً لا يطابق شيئاً، وذلك هو المخرج الصادق. فالتطبيق لا يميّز ترويسة غريبة من مورّد غريب الاسم.
خمسة أحكام، وواحد منها ينفّذ
المطابقة بالاسم. يُقلَّم الطرفان، ويُصغَّر حرفهما، وتُجمع سلاسل المسافات إلى واحدة. ثم ينال كل صفّ ملصوق حكماً واحداً من خمسة.
| الحكم | التسمية المعروضة | المعنى | عند التنفيذ |
|---|---|---|---|
| مطابَق | سيُربط | سجلّ واحد بذلك الاسم، ولا رمز عليه بعد | يكتب الرمز |
| مربوط سلفاً | مربوط سلفاً | مطابق واحد، يحمل هذا الرمز نفسه | لا شيء |
| تعارض | تعارض — رمز مختلف | مطابق واحد، يحمل رمزاً مختلفاً | لا شيء |
| ملتبس | ملتبس — عدّة مطابقات | أكثر من سجلّ يشترك في الاسم | لا شيء |
| لا مطابق | لا مطابق في التطبيق | لا سجلّ في التطبيق بذلك الاسم | لا شيء |
اقرأ العمود الأخير يتّضح التصميم. عدد ما سيفعله التنفيذ معرَّف بأنه عدد الصفوف المطابَقة، ولا شيء غير ذلك. وأربعة من الخمسة تُعرض على إنسان ولا ينفّذها أحد.
وذلك رفض مقصود، وهو النصف الطريف. واثنان من تلك الأربعة هما الحالان اللذان يكون التخمين فيهما ضاراً فعلاً. فـالتعارض يعني أن التطبيق يعتقد سلفاً أن لهذا السجلّ رمزاً مختلفاً، واختيار فائز آلياً يعيد توجيه كل مستند مقبل بصمت إلى حساب آخر. والالتباس يعني أن مورّدين عند Corina يحملان الاسم نفسه، ولا سبيل للتطبيق ليعرف أيّهما قصدت Mirela. فالقائمة الملصوقة فيها رمز واسم، ولا شيء آخر يفضّ التعادل. والتخمين الخاطئ هناك أسوأ من عدم التخمين، لأنه سيبدو مربوطاً.
ماذا يكلّف السجلّ غير المربوط عند التصدير
السجلّ بلا رمز غير ممنوع من شيء. فهو يُصدَّر، والخانة التي فيها رمزه تقول ⚠ غير مربوط.
ولتلك العلامة ثلاث حالات، والفرق يستحقّ القراءة. فعلى سطر طلب الشراء تعرض خانة الصنف الرمز حين تحمله المادة. وتعرض العلامة حين يكون على السطر مادّة بلا رمز. وتعرض فراغاً حين لا مادّة على السطر البتّة، وذلك سطر نصّ حرّ كتبه أحدهم. والفراغ والعلامة ادّعاءان مختلفان. فالعلامة تعني أن شيئاً موجود ولم يُوصل. والفراغ يعني أنه لا شيء يُوصل.
والتصدير يعدّ الحالات المعلَّمة والزرّ يبلّغ بالعدد. فأمر البيع يُعدّ واحداً غير مربوط حين لا رمز لمشتريه. وسطر طلب الشراء يُعدّ واحداً حين يكون صنفه أو بائعه معلَّماً.
وثمّة شيء آخر يستحقّ معرفته عن كيفية عثور أمر البيع على رمز مشتريه. المطابقة تكتب الرمز على سجلّ مشترٍ بعينه، سجلّاً بسجلّ. ثم يبحث التصدير عن الرمز باسم المشتري على الطلبيّة. فمشتريان يشتركان في اسم — وهي الحال نفسها التي يأبى حكم الالتباس مسّها — لا يتميّزان عند التصدير كذلك. ونصفا النظام متّسقان في ضعفهما، وذلك خير من أن يتظاهر أحدهما بقوّة.
الاتجاه الآخر: ثلاثة أحكام وتاريخ
التغذية الواردة صورة معكوسة، وهي أصغر. ترسل Mirela قائمة طلبيّات ومعالم دفع. وتلصقها Corina في الاستيراد من نظام المحاسبة — حالة الدفع، وتعاين، وتسجّل.
والسطر مرجع طلبيّة ومعلم وتاريخ. والمعلم يُقرأ على سعة، لأن الأنظمة المالية لا تتّفق على الألفاظ. فكل ما يبدأ بـ deposit، مع advance وdown payment، عربون. وكل ما يبدأ بـ balance، مع final وfinal payment، رصيد. وكل ما يبدأ بـ lc، أو يحوي letter of credit، اعتماد. والكلمة التي ليست من هذه تجعل الصفّ غير مقروء، ويُسقَط الصفّ قبل بلوغ المعاينة أصلاً.
| الحكم | التسمية المعروضة | المعنى |
|---|---|---|
| مطابَق | سيُحدَّث | عُثر على الطلبيّة والتاريخ تاريخ حقيقي |
| بلا تاريخ | لا تاريخ صالح | عُثر على الطلبيّة، والتاريخ ناقص أو معطوب |
| غير مطابَق | لا طلبيّة في التطبيق | لا طلبيّة في هذا التطبيق تحمل ذلك المرجع |
وتنفيذ صفّ مطابَق يفعل شيئين لا غير. يكتب التاريخ في عمود المعلم على الطلبيّة. ويكتب سطراً في سجلّ نشاط الطلبيّة يسمّي المعلم والتاريخ وأنه جاء من تغذية الحالة. ولا كتابة ثالثة. ولا يُخزَّن مبلغ، لأن مبلغاً لم يُقرأ.
وحدّان يستحقّان التسمية والآلية ما زالت طازجة. الأول أن المطابقة برقم الطلبيّة، فالساعة التي تبلغها هذه التغذية ساعة الطلبيّة. والطلبيّة المشحونة جزئياً بفاتورتين لها هنا تاريخ عربون واحد وتاريخ رصيد واحد، ولا سبيل للتغذية لتقول لأي شحنة ينتمي الدفع. والثاني أن تاريخاً حاضراً مكتوباً بصيغة أخرى ليس صفاً مطابَقاً. فالمحلّل يقبل شكلاً واحداً ويعدّ ما عداه لا تاريخ البتّة. وذلك رفض لا تخمين، والمعاينة تقول أي الصفوف ستُنفَّذ قبل أن يُكتب شيء.
اختبر فهمكتلصق Corina 40 صفّ بائع. تقول المعاينة إن 31 ستُربط، و4 مربوطة سلفاً، و3 تعارض، و1 ملتبس، و1 بلا مطابق في التطبيق. تضغط التنفيذ فيبلّغ التطبيق بـ 31. أين ذهبت الصفوف التسعة الباقية، وأيّها مشكلة جودة بيانات عليها إصلاحها في هذا التطبيق لا في الدفتر؟أظهر الإجابة
لم تذهب — ما زالت على الشاشة ولم يُكتب لها شيء. فالتنفيذ يعمل على الصفوف المطابَقة وحدها، وعدده معرَّف بذلك بالضبط. والصفوف الأربعة المربوطة سلفاً بلا أثر حقاً ولا تحتاج شيئاً. والصفّ الذي لا مطابق له بائع موجود في الدفتر لا هنا في الغالب، وذلك طبيعي لا مشكلة. والتعارضات الثلاثة قرار بشري عن أي رمز هو الحالي، وجوابه في الدفتر عادةً. والذي يخصّها في هذا التطبيق هو الصفّ الملتبس. فهو يعني أن سجلّي مورّد يشتركان في اسم، وذلك التكرار سيسبّب متاعب أبعد كثيراً من هذه المطابقة. سيربك بحث التصدير، وكل منتقٍ في التطبيق، وكل من يقرأ أمر شراء. ادمجهما أو أعد تسميتهما هنا، ثم الصق القائمة ثانيةً فيستقرّ الأمر على مطابق واحد.
اختبر فهمكلتصدير Mirela خمسة أعمدة، ورابعها المبلغ المدفوع. تقول Alina إن عليهم حذف ذلك العمود قبل اللصق، احتياطاً. أهي محقّة؟أظهر الإجابة
ليست مخطئة في الحذر، وليست محتاجة إليه. فالمحلّل يقرأ الخانات الثلاث الأولى ويقف. ولا قراءة رابعة، ولا تحقّق من الخانة الرابعة، ولا موضع تُخزَّن فيه القيمة — فالتطبيق لا عمود له لمبلغ على هذا المسار. وحذفه لا يغيّر شيئاً في النتيجة. والذي يستحقّ الفعل بدله فحص المعاينة، لأن المحلّل واسع في موضع آخر. فهو يقسم على الفواصل والمسافات الجدولية. والمبلغ المكتوب بفاصل آلاف داخل ملفّ مفصول بالفواصل يزيح كل خانة بعده موضعاً واحداً. وذلك لا يُدخل مبلغاً إلى التطبيق، لكنه قد يحوّل تاريخاً سليماً إلى «لا تاريخ». وتلك مشكلة تنسيق، والمعاينة ستعرضها عليها قبل أن يُسجَّل شيء.
موجّه · خطّط لمطابقة بياناتي الأساسية قبل أن ألصقها
قبل أول لصق للمطابقة، خصوصاً حيث نمت قائمتا المورّهذهن في النظامين منفصلتين سنوات.
ساعدني في التخطيط لمطابقة البيانات الأساسية بين MerchandiserOS ونظامي المالي كي يُحدث أول لصق أقلّ ضرر ممكن. سأعطيك: كم ليسترياً ومورّداً ومادّة عنهذه هنا، وكم صفاً في تصهذهر النظام المالي تقريباً، وعيّنة من عشرين زوج اسم من الجهتين. المطابقة بالاسم، مُسوّى لحالة الأحرف والمسافات، ولا شيء غير ذلك. توقّع لعيّنتي الحكم على كل صفّ: سيُربط، أو مربوط سلفاً، أو تعارض، أو ملتبس، أو لا مطابق في التطبيق. وأظهر تعليلك حيث يكون الزوج قريباً غير مطابق. فالفروق الطفيفة هي الليسكلة كلّها. ثم افصل العمل إلى قائمتين. واحدة عمل داخل النظام المالي. والأخرى عمل داخل MerchandiserOS، وهي التي يتخطّاها الناس: سجلّات مكرّرة تشترك في اسم، ولواحق قانونية في جهة دون أخرى، واختصارات لم يوحّهذاا أحد. وأخيراً، أخبرني بما ينبغي إصلاحه قبل اللصق لا بعهذا، ولماذا يصعب إصلاح زوج ملتبس بعد ذلك. لا تخترع قاعدة مطابقة لا يملكها التطبيق. لا مطابقة تقريبية هنا، ولا مطابقة بالرمز، ولا مطابقة بالعنوان.
قد يخطئ الذكاء الاصطناعي — تحقّق من أي شيء ستتصرّف بناءً عليه.