Database Methods এবং Bulk DML Operations Salesforce-এ ডেটা ম্যানিপুলেশন এবং ডেটাবেজে রেকর্ড ইনসার্ট, আপডেট, বা ডিলিট করার জন্য ব্যবহৃত হয়। এগুলো Salesforce-এর গভর্নর লিমিট মেনে একাধিক রেকর্ডে কার্যকরী ডেটা প্রক্রিয়াকরণে সহায়ক।
Database Methods এর ধারণা
Salesforce-এ ডেটা সংশোধন বা ম্যানিপুলেশনের জন্য DML স্টেটমেন্ট যেমন insert, update, delete ইত্যাদি ব্যবহার করা যায়। তবে, এই DML স্টেটমেন্টগুলো Bulk DML বা বড় ডেটা সেট নিয়ে কাজ করার সময় Salesforce এর গভর্নর লিমিট-এর মধ্যে কার্যকরী না হতে পারে। Database Methods এই সমস্যা সমাধানে সহায়ক এবং Bulk DML অপারেশনে আরও কার্যকর।
Database Methods Apex Database ক্লাসের মাধ্যমে সরবরাহ করা হয়, এবং এগুলোতে allOrNone প্যারামিটার থাকে, যা বলে দেয় পুরো অপারেশনটি একবারে সফল হবে কিনা বা আংশিকভাবে সম্পন্ন হবে। এই প্যারামিটার false সেট করলে ত্রুটি ঘটলেও কাজটি আংশিকভাবে সম্পন্ন হতে পারে, যা বড় ডেটা সেট বা Bulk DML অপারেশনের জন্য কার্যকর।
Database Method এর সাধারণ উদাহরণ
List<Account> accounts = new List<Account>{
new Account(Name = 'Tech Solutions'),
new Account(Name = 'ABC Corporation'),
new Account(Name = 'XYZ Industries')
};
// Database.insert() ব্যবহার করে DML অপারেশন, allOrNone = false
Database.SaveResult[] results = Database.insert(accounts, false);
for (Database.SaveResult result : results) {
if (result.isSuccess()) {
System.debug('Record inserted successfully: ' + result.getId());
} else {
System.debug('Error inserting record: ' + result.getErrors()[0].getMessage());
}
}
- এখানে
Database.insertমেথডেallOrNone = falseসেট করা হয়েছে, যার ফলে কোনো রেকর্ড ব্যর্থ হলেও অন্যান্য রেকর্ড সেভ হবে। SaveResult[]অর্রে ব্যবহার করে সফল বা ব্যর্থ অপারেশন ট্র্যাক করা হয়েছে।
Bulk DML অপারেশন
Bulk DML Operations মূলত একাধিক রেকর্ড নিয়ে কার্যকরী ডেটা প্রক্রিয়াকরণে ব্যবহৃত হয়। Salesforce এর গভর্নর লিমিটের কারণে প্রতিটি DML অপারেশন চালনার সময় সর্বাধিক ১০,০০০ রেকর্ড আপডেট বা ইন্সার্ট করা সম্ভব। Bulk DML অপারেশন Salesforce-এ ডেটা প্রক্রিয়াকরণের পারফরম্যান্স বাড়ায় এবং গভর্নর লিমিট বজায় রাখতে সহায়ক।
Bulk DML অপারেশনগুলোতে একাধিক রেকর্ডকে একত্রে প্রক্রিয়া করার জন্য তালিকা (List) ব্যবহার করা হয়।
Bulk DML অপারেশনের উদাহরণ
List<Account> accountList = new List<Account>();
for (Integer i = 1; i <= 1000; i++) {
accountList.add(new Account(Name = 'Account ' + i));
}
// Bulk Insert অপারেশন
insert accountList;
- এখানে ১০০০টি
Accountরেকর্ডaccountList-এ যুক্ত করা হয়েছে এবং একত্রেinsertDML অপারেশন চালানো হয়েছে।
Bulk DML অপারেশন চালানোর সময় Salesforce গভর্নর লিমিটের সীমার মধ্যে থেকে কার্যকরী ডেটা প্রসেসিং করা সম্ভব হয়।
Database Methods এর ধরনসমূহ
- Database.insert(records, allOrNone): রেকর্ড ইনসার্ট করে।
allOrNonefalseদিলে আংশিক সফল হতে পারে। - Database.update(records, allOrNone): রেকর্ড আপডেট করে।
allOrNonefalseদিলে ত্রুটি সহ্য করে আংশিকভাবে সম্পন্ন হবে। - Database.delete(records, allOrNone): রেকর্ড মুছে ফেলে।
allOrNonefalseসেট করলে আংশিকভাবে কাজ করে। - Database.undelete(records, allOrNone): মুছে ফেলা রেকর্ড পুনরুদ্ধার করে।
- Database.upsert(records, externalId, allOrNone): আপডেট বা ইন্সার্ট করে, এবং যদি
externalIdমিলে যায় তবে আপডেট করে, অন্যথায় নতুন রেকর্ড ইনসার্ট করে। - Database.merge(masterRecord, duplicateRecords): ডুপ্লিকেট রেকর্ডগুলোকে একটি প্রধান রেকর্ডে মার্জ করে।
Database Methods এর সুবিধা
- Error Handling: Database Methods
allOrNoneপ্যারামিটার ব্যবহার করে আংশিক সফল অপারেশন নিশ্চিত করে, যার ফলে কোনো রেকর্ড ব্যর্থ হলেও অন্য রেকর্ডগুলো সফলভাবে প্রসেস করা যায়। - SaveResult এবং DeleteResult: Database Methods সফল এবং ব্যর্থ ডেটা অপারেশন ট্র্যাক করার জন্য
SaveResultএবংDeleteResultপ্রদান করে। - Bulk Processing Support: একাধিক রেকর্ড একত্রে প্রক্রিয়া করার জন্য কার্যকরী, যা বড় ডেটাসেট পরিচালনা সহজ করে।
Bulk DML অপারেশনের সুবিধা
- গভর্নর লিমিটের সীমাবদ্ধতা মেনে চলা: Bulk DML গভর্নর লিমিট মেনে চলতে সহায়ক, কারণ এটি একবারে একাধিক রেকর্ডে কার্যকরী হয়।
- পারফরম্যান্স বৃদ্ধি: Bulk DML অপারেশনের মাধ্যমে একাধিক রেকর্ড একত্রে প্রক্রিয়া করা যায়, যা ডেটা ম্যানিপুলেশনের পারফরম্যান্স বৃদ্ধি করে।
- সহজ এবং দ্রুত প্রক্রিয়াকরণ: একাধিক রেকর্ডে অপারেশন চালানোর জন্য এটি অত্যন্ত কার্যকর এবং কোড সংক্ষিপ্ত রাখে।
উদাহরণ: Bulk DML অপারেশনে Database Methods এর ব্যবহার
নিচের উদাহরণে একটি তালিকায় ৫০০টি Contact রেকর্ড যোগ করে Database.insert() ব্যবহার করা হয়েছে এবং allOrNone = false সেট করা হয়েছে।
List<Contact> contactList = new List<Contact>();
for (Integer i = 1; i <= 500; i++) {
contactList.add(new Contact(FirstName = 'First' + i, LastName = 'Last' + i));
}
// Database.insert ব্যবহার করে Bulk DML অপারেশন
Database.SaveResult[] results = Database.insert(contactList, false);
for (Database.SaveResult result : results) {
if (result.isSuccess()) {
System.debug('Contact Inserted Successfully: ' + result.getId());
} else {
System.debug('Error inserting Contact: ' + result.getErrors()[0].getMessage());
}
}
- Database.insert(contactList, false):
allOrNonefalseসেট করার কারণে ত্রুটি সহ্য করে অবশিষ্ট রেকর্ডগুলো সেভ হবে। - SaveResult ব্যবহার করে প্রতিটি রেকর্ডের সফলতা বা ব্যর্থতা ট্র্যাক করা হয়েছে।
সংক্ষেপে:
- Database Methods DML অপারেশনের সময় আংশিক সফলতা নিশ্চিত করতে
allOrNoneপ্যারামিটার ব্যবহার করে। - Bulk DML Operations একাধিক রেকর্ড একত্রে প্রক্রিয়া করে, যা গভর্নর লিমিটের সীমার মধ্যে থেকে কার্যকরী ডেটা প্রসেসিং নিশ্চিত করে।
এইভাবে, Database Methods এবং Bulk DML Operations Salesforce প্ল্যাটফর্মে কার্যকরী ডেটা ম্যানিপুলেশনে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং বড় ডেটাসেট নিয়ে কাজ করার সময় কোড পারফরম্যান্স ও কার্যকারিতা বাড়ায়।
Read more