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 ব্লক ব্যবহার করে সংরক্ষণ করুন।
এইভাবে, প্রতিটি সারি ডেটাবেসে রেকর্ড হিসাবে সংরক্ষণ করা হয়।
এখন আমাদের ফাইলটি প্রক্রিয়াকরণ শেষ করতে হবে। আমরা Read CSV file ব্লকে completed আউটপুট সংযোগকারী ব্যবহার করব এবং এটিকে End ব্লকের সাথে সংযুক্ত করব।
একটি ফাইল থেকে আমদানি করা BP সমাপ্ত হয়.
Endpoint সেটআপ
Endpoints ট্যাবে যান এবং একটি নতুন এন্ডপয়েন্ট তৈরি করুন।
POST পদ্ধতি নির্বাচন করুন, URL ঠিকানা সেট করুন, Flight group নির্বাচন করুন এবং তৈরি করা BP Import CSV ।
ফ্রন্টএন্ডে একটি বোতাম সেট আপ করা হচ্ছে
ফাইলটি আপলোড করার জন্য এখন আমাদের সামনের প্রান্তে একটি বোতাম সেট আপ করতে হবে।
File picker উপাদানটিকে ক্যানভাসে টেনে আনুন।
এবং এর জন্য BP সেট আপ করুন:
onSelectfiles ট্রিগার ব্যবহার করুন। এই ট্রিগারটি একটি অ্যারে হিসাবে ফাইল গ্রহণ করে, এমনকি যদি শুধুমাত্র একটি ফাইল থাকে। অতএব, আমরা অ্যারে থেকে একটি উপাদান পেতে Array Element ব্লক ব্যবহার করব। অ্যারে থেকে প্রথম উপাদান পেতে সূচী ক্ষেত্রটি 0 এ সেট করা যাক।
এখন Server request POST /_files/ ব্লক ব্যবহার করে আপলোড করা ফাইলটিকে ডাটাবেসে সংরক্ষণ করুন।
বিস্তারিত Expand file .
এখন Server request POST /flight/csv/ এ ID (যা এই ক্ষেত্রে একটি ফাইল) পাস করুন।