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
ดังนั้น แต่ละแถวจะถูกบันทึกเป็นบันทึกในฐานข้อมูล
ตอนนี้เราต้องประมวลผลไฟล์ให้เสร็จ เราจะใช้ตัวเชื่อมต่อเอาต์พุตที่ 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/ บล็อก
ขยายไฟล์ผลลัพธ์โดยใช้บล็อก Expand file
ตอนนี้ส่ง ID (ซึ่งในกรณีนี้คือไฟล์) ไปยัง Server request POST /flight/csv/ block