চক্র। এক্সেল ফাইল আমদানি করুন
ব্যবসায়িক প্রক্রিয়ায় চক্র ব্যবহার করা। এক্সেল ফাইল থেকে ডেটা পড়ুন।
পরবর্তী প্রক্রিয়াটি বোঝার জন্য, তত্ত্বের মধ্যে কিছুটা বিস্তৃত হওয়া এবং চক্রের নীতিটি বোঝা প্রয়োজন। পূর্বে, আমাদের সমস্ত প্রক্রিয়া শুধুমাত্র এগিয়ে গিয়েছিল। তারা একটি নির্দিষ্ট কাঁটা বেছে নিতে পারে ( If-Else এবং Switch ব্লকগুলিতে), কিন্তু আমরা নিশ্চিতভাবে জানতাম যে প্রতিটি ব্লক শুধুমাত্র একবার কার্যকর করা হবে; ফিরে যাওয়া হবে না।
চক্র
চক্র একটি নির্দিষ্ট বিভাগ একাধিকবার পুনরাবৃত্তি করার ক্ষমতা প্রদান করে। প্রক্রিয়াটি তৈরি করা হয়েছে যাতে ব্লকের নির্বাচিত ক্রম বারবার কার্যকর করা হয়। যতক্ষণ না লুপ বন্ধ করার শর্ত পূরণ হয়।
AppMaster আপনাকে তিনটি ভিন্ন ধরণের চক্র ব্যবহার করার ক্ষমতা দেয়। তাদের কাজের নীতি একেবারে একই। লুপ বন্ধ করার শর্ত হল একমাত্র জিনিস যা তাদের একে অপরের থেকে আলাদা করে।
- Loop সব চক্রের সহজতম। এর Times (Integer) প্যারামিটার প্রদত্ত লুপটি কতবার কার্যকর করা উচিত তার জন্য একটি নির্দিষ্ট মান সেট করে।
- While loop . একটি লুপ যা একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত চলবে। এই শর্তটি Condition (Boolean) প্যারামিটারে উল্লেখ করা হয়েছে। প্রতিটি লুপের শুরুতে, Condition মান চেক করা হয়; যদি এটি True হয়, তাহলে লুপটি কার্যকর করা হয়; যদি এটি False হয়, তাহলে লুপ বন্ধ হয়ে যায়। Limit (Integer) প্যারামিটারটি লুপের পুনরাবৃত্তির সংখ্যার সীমা নির্ধারণ করে যাতে লুপটি চিরতরে চলতে না পারে। এটি পৌঁছে গেলে, Condition মান নির্বিশেষে লুপটি শেষ হয়ে যাবে।
- For each loop । অ্যারের সাথে কাজ করার জন্য ডিজাইন করা লুপ। এটি ইনপুট হিসাবে একটি অ্যারে নেয় এবং আপনাকে প্রতিটি অ্যারের উপাদানে একটি নির্দিষ্ট অপারেশন করতে দেয়। অ্যারেতে যতবার উপাদান আছে ততবার চলে।
প্রতিটি চক্রের দুটি আউটপুট স্ট্রীম রয়েছে।
- Loop Body । লুপ শরীর নিজেই. সেই প্রক্রিয়া, যা প্রয়োজনীয় সংখ্যক বার পুনরাবৃত্তি করা হবে।
- Completed । লুপ শেষ হলে থ্রেডটি চলবে। লুপ শেষ হওয়ার পর পরবর্তী কি করতে হবে তা উল্লেখ করে। যাইহোক, প্রাথমিক শর্ত পূরণের জন্য অপেক্ষা না করে যে কোনও চক্র কমান্ডে সম্পন্ন করা যেতে পারে। এটি করার জন্য, আপনাকে সঠিক জায়গায় Break Loop ব্লক ব্যবহার করতে হবে। এটি অবিলম্বে স্ট্রীমটিকে Completed -এ স্থানান্তরিত করবে।
Read XLSX File
এক্সএলএসএক্স ফাইল বিশ্লেষণের জন্য, আমরা Read XLSX File ব্লক ব্যবহার করব। এর অপারেশন নীতি প্রায় For each loop ব্লকের অনুরূপ। এটি স্ট্রিংগুলির একটি অ্যারে হিসাবে টেবিল ফাইলটিকে উপস্থাপন করে। এবং প্রতিটি সারি, ঘুরে, একটি অ্যারে, কিন্তু ইতিমধ্যে প্রদত্ত সারির কলামগুলির একটি অ্যারে।
xlsx ফাইল নিজেই একটি অনুরূপ ফর্ম উপস্থাপন করা হয়. প্রথম কলামটিতে বিভাগের নাম রয়েছে এবং দ্বিতীয়টিতে এই বিভাগে থাকা তথ্য রয়েছে। একই সময়ে, তথ্যটি কোথায় লেখা আছে তা আমরা আগে থেকে জানি না; এটা যে কোন নির্বিচারে জায়গায় প্রদর্শিত হতে পারে. এই উদাহরণে, জীবনীটি দ্বিতীয় লাইনে নির্দেশিত হয়েছে এবং লগইনটি অষ্টমটিতে রয়েছে, তবে যে লাইনগুলি এবং যে ক্রমে সেগুলি লেখা হয়েছে তা যে কোনও হতে পারে।
একটি ইনপুট প্যারামিটার হিসাবে একটি ফাইল প্রাপ্তির মাধ্যমে ব্যবসা প্রক্রিয়া শুরু হয়। দয়া করে মনে রাখবেন যে এটি ফাইল ডেটা টাইপ, অর্থাৎ ফাইল আইডি, যা প্রেরণ করা হয় এবং সম্পূর্ণ ফাইল নয়। আমরা একই ফাইল Read XLSX File ব্লকে পাস করি।
Each row , এই ক্ষেত্রে, Loop Body একটি এনালগ। অর্থাৎ xlsx ফাইলে যতবার সারি রয়েছে ততবার লুপটি কার্যকর করা হবে। একই সময়ে, প্রতিটি চক্র, আমরা কোন সারিটি এখন প্রক্রিয়া করা হচ্ছে সে সম্পর্কে তথ্য পাই ( Row number ), সেইসাথে এই সারিতে কোন কলাম রয়েছে ( Row columns )।
আমাদের কাজ হল প্রতিটি সারির প্রথম ঘর চেক করা। আমরা "লগইন" বা "বায়ো" বলে একটি ঘর খুঁজে পাওয়ার আশা করি। এইভাবে, আমরা বুঝতে পারব যে আমরা প্রয়োজনীয় তথ্য সহ একটি কলাম পেয়েছি।
এটি করার জন্য, আমাদের 0 এর সূচক সহ একটি Array Element ব্লক প্রয়োজন। এইভাবে আমরা স্ট্রিংয়ের প্রথম ঘরের বিষয়বস্তু পাই। এর পরে, আমরা পছন্দসই মিল খুঁজে পেতে Switch ব্লক ব্যবহার করি (লগইন, বায়ো)।
যদি এমন কোন মিল পাওয়া না যায়, তাহলে লুপটি পরবর্তী পুনরাবৃত্তিতে যায়, পরবর্তী সারিটি পরীক্ষা করে। যদি পাওয়া যায়, তাহলে আমরা বুঝতে পারি যে এই সারির দ্বিতীয় ঘরে আমাদের প্রয়োজনীয় তথ্য থাকা উচিত এবং এই তথ্য পেতে আবার Array Element ব্লক ব্যবহার করা উচিত (কিন্তু সূচক 1 সহ)।
এটি শুধুমাত্র এই তথ্য সংরক্ষণ করার জন্য অবশেষ. সর্বোপরি, আপনি যদি এখনই এটি না করেন, তবে চক্রটি কেবল চলতে থাকবে এবং প্রাপ্ত ডেটা হারিয়ে যাবে।
ভেরিয়েবল
এই পরিস্থিতিতে সর্বোত্তম সমাধান ভেরিয়েবল ব্যবহার করা হবে। তাদের অর্থ এই সত্যের মধ্যে রয়েছে যে নির্দিষ্ট মানগুলি অবিলম্বে এক ব্লক থেকে অন্য ব্লকে স্থানান্তরিত হয় না তবে মেমরিতে সংরক্ষণ করা হয় এবং প্রয়োজনে ব্যবহার করা হয়।
এর জন্য দুটি ব্লক রয়েছে:
- Variable ব্লক। এটি যেকোনো সংখ্যা, স্ট্রিং বা এমনকি বস্তুর একটি অ্যারেও হতে পারে। এটা বোঝা গুরুত্বপূর্ণ যে এই ব্লক নিজেই কিছুই করে না; এর কোন ইনপুট পরামিতি নেই। এটি শুধুমাত্র এই সত্যটি ঘোষণা করার জন্য কাজ করে যে কিছু মান লেখার জন্য একটি স্থান মেমরিতে বরাদ্দ করা হয়েছে, পরে এটিকে আবার উল্লেখ করার এবং এই মানটি খুঁজে বের করার সম্ভাবনা রয়েছে।
- Set Variable ব্লক একটি পরিবর্তনশীল একটি নতুন মান লিখতে ডিজাইন করা হয়েছে.
আমাদের ক্ষেত্রে, আমরা String টাইপের দুটি ভেরিয়েবল সংজ্ঞায়িত করব এবং তাদের মধ্যে পাওয়া মানগুলি লিখব, এক জায়গায় লগইন করুন এবং দ্বিতীয় বায়োতে। লুপের শেষে, আমাদের শুধুমাত্র এই ভেরিয়েবল থেকে শেষ ব্লকে মান পাস করতে হবে।
এখন সময় হয়েছে সমাপ্ত ব্যবসা প্রক্রিয়ার জন্য একটি এন্ডপয়েন্ট তৈরি করার এবং এর ফলে এটিকে ওয়েব অ্যাপ্লিকেশন ফ্রন্ট-এন্ডে ব্যবহারের জন্য উপলব্ধ করা।
সর্বশেষ ফলাফল
ফলস্বরূপ ব্যবসায়িক প্রক্রিয়া এই হওয়া উচিত:
অ্যাপ্লিকেশন তৈরি সম্পূর্ণ করার জন্য সমাপ্তি স্পর্শ আছে. আসুন ফ্রন্টএন্ড ব্যবসায়িক প্রক্রিয়ায় ফিরে যাই এবং এটি শেষ করি। আমাদের দরকার:
- সার্ভারে সেভ করার জন্য xlsx ফাইল মডেলটি পাস করুন।
- ফলাফল প্রসারিত করুন এবং ফাইল আইডি পান।
- এই আইডিটি পূর্বে তৈরি করা এন্ডপয়েন্ট POST /xlsx-data/ এ পাস করুন
- উপযুক্ত ক্ষেত্রগুলিতে প্রদর্শন করতে প্রাপ্ত ডেটা ব্যবহার করুন (এবং Disable প্যারামিটারটি পুনরায় সেট করতে, সম্পাদনার সম্ভাবনা উন্মুক্ত করতে)।
যদি সবকিছু সঠিকভাবে করা হয়, ফাইলগুলি থেকে তথ্য লোড করার পরে চূড়ান্ত সংস্করণটি এইরকম হওয়া উচিত।