مقالات

إدخال البيانات آليًا: استيراد سجلات الموردين والعملاء دون فوضى

إدخال البيانات آليًا ينجح حين يكون الاستيراد قابلا للتكرار: سجلات موحدة، وكشف تكرار، وإجمال رقابي، وطابور للصفوف التي تفشل.

بقلم أنس حمداوي5 دقائق قراءة
  • data
  • migration
  • automation
كل المقالات

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

كيف تبدو ملفات المصدر فعلا؟

أسوأ من العينة التي عرضت عليكم. قائمة موردين برأس جدول مدموج، وقائمة عملاء مصدرة من هاتف بلا أسماء أعمدة، وكشف محاسبي فيه صفوف مجموع داخل البيانات، وقائمة أسعار وصلت في ملف PDF والخصم مكتوب في حاشيتها.

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

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

كيف تعرف أن المورّد نفسه مكتوب بثلاث طرق؟

وحّد قبل المقارنة، وقارن بأكثر من إشارة. الشكل القانوني ضجيج: «SARL» و«EURL» و«SPA» وما يقابلها بالعربية تلتصق بالشركة نفسها، وكذلك حالة الأحرف والمسافات والهمزات، وصيغ مثل «وأولاده» و«الإخوة»، وطريقة كتابة الاسم بالحرف اللاتيني.

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

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

ما الذي يجب توحيده قبل كتابة أي سجل؟

الوحدات والمعرفات أولا، مع حفظ الأصل إلى جانب القيمة المقروءة ليبقى الاثنان.

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

أي إجمال رقابي يثبت صحة الاستيراد؟

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

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

ماذا يحدث للصفوف التي تفشل؟

كل صف يقع في واحد من ثلاثة صناديق، ولا واحد منها صامت.

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

وملف المرفوضات هو طابور العمل. طابور لا ينقص يعني أن المطابقة خاطئة، لا أن البيانات سيئة.

لماذا يجب أن يكون الاستيراد قابلا لإعادة التشغيل؟

لأن الملف يتغير وأنتم تستوردون. قائمة الموردين تعدّلها كل صباح يد شخص ما زال يستعملها، والتشغيل الأول يحمل خطأ تكتشفونه متأخرا، والملف التالي يصل بأعمدة مختلفة.

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

وما يصل بهذه الطريقة يحفظ مصدره: أي ملف، وأي تشغيل، وأي نسخة من المطابقة (أفضل الممارسات لبيانات الويب في W3C).

بأي ترتيب تفعل هذا؟

  1. اجمع ملفا حقيقيا واحدا من كل مصدر، وحدد من يصونه.
  2. اكتب السجل المستهدف ومفتاحه الطبيعي، للموردين وللعملاء على حدة.
  3. جمّد نسخة من كل مصدر، واطبع صفحة المطابقة، واعمل على النسخة وحدها.
  4. ابنِ المستورد على تسلسل: قراءة، توحيد، مطابقة، تحميل إلى منطقة وسيطة، تقرير، بلا كتابة مباشرة.
  5. جرّب على المنطقة الوسيطة، طابق، ثم اقرأ ملف المرفوضات قبل المتابعة.
  6. ادمج التكرارات من قائمة مقترحة يوافق عليها إنسان، لا من سكربت وحده.
  7. حمّل، طابق مرة أخرى، واحفظ سجل التشغيل وملف المرفوضات.
  8. شغله مرة ثانية على الملف التالي، لإثبات أنه يتكرر.

أين يخطئ هذا؟

ماكرو على حاسوب واحد. الاستيراد يعمل حتى يغادر من كتبه، فلا يجد أحد يعيد تشغيله حين تتغير قائمة الموردين.

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

الخلايا المدموجة وصفوف المجموع. تدخل كسجلات أو كأعمدة Unnamed، وتقبلها المطابقة لأنها تدخل في عدد الصفوف.

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

الاستيراد الثاني المستحيل. الإدخال يستمر بعد التشغيل، والملف يتغير، والمستورد الوحيد كان لمرة واحدة في الأسبوع الأول.

ما لا يغطيه هذا المقال

ليس كلاما عن اختيار النظام ولا عن تصميم قاعدة بياناته، ولا عما يجب الاحتفاظ به في النظام القديم لأسباب محاسبية. ولا يغطي تنظيف سجلات لا تملكونها: قائمة المورّد ملكه، والعنوان ما قاله العميل. ويفترض وجود من يجيب عن سؤال: هل السجلان شركة واحدة؟ فلا درجة تشابه تحسم ذلك.

نكتب المستورد والمطابقة التي تثبته، فيصبح الملف التالي تشغيلا لا مشروعا.

خدمات في هذا المقال

ابدأ مشروعًا

لديك شيء تريد بناءه؟

ملخص قصير يكفي. تحصل على نطاق مكتوب وسعر ثابت قبل أن يبدأ أي شيء.