CSV ( Comma Separated Values ) هو تنسيق تخزين جدول يتم فيه فصل قيم الخلية بواسطة الرمز "،". بدلاً من "،" يمكن استخدام الفاصل حرفًا آخر. على الرغم من أن AppMaster يتطلب فاصلة.
من المهم التأكد من عدم ظهور هذه الشخصية داخل الخلية. خلاف ذلك ، ستتم قراءة بيانات الملف بشكل غير صحيح.
أولاً ، قم بإنشاء نموذج بيانات حيث سيتم حفظ المعلومات من ملف CSV. على سبيل المثال ، دعنا نصنع نموذج بيانات للرحلات الجوية. سوف يحتوي على الحقول التالية:
- flight_no - رقم الرحلة ، بتنسيق عدد صحيح ؛
- الوجهة في شكل سلسلة ؛
- الفئات - فئة الرحلة المتاحة لهذه الرحلة ، تنسيق المصفوفة [سلسلة].
مثال على ملف سيتم استيراده:
يحتوي العمود الأول flight_no ، والثاني على destination ، والثالث يحتوي على classes .
في العمود الثالث ، يتم فصل القيم بفاصلة منقوطة.
قم بإنشاء عملية تجارية
انتقل إلى علامة التبويب Business Logic وانقر على زر Create Business Process .
تحتاج عملية الأعمال هذه إلى ملف CSV ، لذا أضف حقل الملف إلى كتلة Start .
بعد ذلك ، نحتاج إلى كتلة ملف Read CSV .
وبالمثل ، يمكنك استخدام Read XLS file وقراءة كتل Read XLSX file المقابلة.
كيف تعمل كتلة Read CSV file :
يحتوي على موصلي إخراج: Each Row Completed. عند تنشيط الكتلة ، ستقرأ الملف سطرًا سطرًا ، وفي كل مرة سيتم تنشيط موصل Each Row وتمرير رقم الصف (رقم الصف ، بدءًا من 1) وأعمدة الصف مجموعة سلسلة من جميع أعمدة التيار صف.
قم بتمرير الملف من كتلة Start إلى كتلة Read CSV file :
بعد ذلك ، أضف كتلة For Each Loop . سيعالج مصفوفة السلسلة التي ترسل كتلة Read CSV file .
Each Loop ، تمامًا مثل Read CSV file, يعالج كل عنصر من عناصر المصفوفة وينشط موصل Loop Body لكل منها.
حقل إخراج الفهرس في كتلة For Each Loop هو رقم الفهرس لعنصر الصفيف. يبدأ من 0.
قم بتوصيل جميع الموصلات:
الكتلة التالية هي Switch . بمساعدتها ، سنحدد مكان كتابة القيم من الحقول المختلفة.
يمكن أن Switch المحول أي نوع من المدخلات ويمكن ، بناءً على ذلك ، تنشيط موصلات إخراج مختلفة. يتم تنشيط الموصل Default إذا كانت قيمة الإدخال لا تتطابق مع أي من الموصلات التي تم إنشاؤها.
يحتوي ملف CSV على ثلاثة أعمدة ، مما يعني أن هناك ثلاث قيم مخزنة في كل مصفوفة من أعمدة الصف ، بنفس الترتيب دائمًا:
- رقم؛
- اتجاه؛
- الطبقات.
لذلك ، سننشئ ثلاثة موصلات إخراج في كتلة Switch 0 و 1 و 2 ونمرر الفهرس من كتلة For Each Loop إلى كتلة Switch .
يحتوي العمود الأول في الملف على رقم الرحلة. لكن كتلة For Each Loop تحصل عليها بتنسيق string . لذلك ، نقوم بتحويله إلى عدد صحيح باستخدام كتلة To integer قبل الحفظ. بعد ذلك ، احفظه في متغير باستخدام كتلة Set variable .
يحتوي العمود الثاني في الملف على الاتجاه في تنسيق string . يمكن حفظه على الفور في متغير.
يحتوي العمود الثالث في الملف على قائمة بالفئات مفصولة بفواصل منقوطة. تحصل كتلة For Each Loop أيضًا على تنسيق السلسلة. لذا قم بتقسيمها إلى مجموعة من الأوتار. للقيام بذلك ، نستخدم كتلة Split String . دعنا نمرر سلسلة بقائمة الفئات فيها ونضع "؛" كفاصل افتراضي.
احفظ القيمة المستلمة في متغير.
تم الانتهاء من إعداد حلقة عبر جميع قيم العمود في كل صف.
نحتاج إلى إنشاء إدخال من كل سطر في الملف. نستخدم موصل الإخراج المكتمل في كتلة For Each Loop وكتلة Make flight للقيام بذلك. دعنا ننقل جميع المتغيرات الواردة خلال الدورة إليها.
الآن احفظ النموذج الذي تم إنشاؤه في Make flight باستخدام DB Create flight block.
وبالتالي ، يتم حفظ كل صف كسجل في قاعدة البيانات.
الآن نحن بحاجة إلى إنهاء معالجة الملف. سنستخدم موصل الإخراج completed في كتلة Read CSV file بكتلة End .
تم الانتهاء من BP للاستيراد من ملف.
إعداد Endpoint
انتقل إلى علامة التبويب Endpoints وأنشئ نقطة نهاية جديدة.
حدد طريقة POST ، واضبط URL ، وحدد Flight group ، و BP Import CSV الذي تم إنشاؤه.
إعداد زر على الواجهة الأمامية
نحتاج الآن إلى إعداد زر في الواجهة الأمامية لتحميل الملف.
اسحب عنصر File picker إلى اللوحة القماشية.
وقم بإعداد BP لذلك:
استخدم مشغل onSelectfiles . يستقبل هذا المشغل الملفات كمصفوفة ، حتى إذا كان هناك ملف واحد فقط. لذلك ، سوف نستخدم كتلة Array Element للحصول على عنصر واحد من المصفوفة. دعنا نضبط حقل الفهرس على 0 للحصول على العنصر الأول من المصفوفة.
الآن احفظ الملف الذي تم تحميله إلى قاعدة البيانات باستخدام Server request POST /_files/ block.
قم بتوسيع الملف الناتج باستخدام Expand file .
الآن قم بتمرير المعرف (وهو في هذه الحالة ملف) إلى Server request POST /flight/csv/ block.