Salesforce Apex – মানচিত্র

Salesforce Apex Manacitra



Salesforce Apex মানচিত্র হল একটি ডেটা স্ট্রাকচার যা মূলত ট্রিগার পরিস্থিতিতে ব্যবহৃত হয় এবং একটি তালিকার মতো Salesforce ডাটাবেসে একবারে আরও ডেটা লোড করতে সাহায্য করে। কিন্তু এটি {key:value} জোড়া বিন্যাসে ডেটা সঞ্চয় ও সংগঠিত করে। আমরা অ্যাপেক্স প্রোগ্রামিং ভাষায় মানচিত্র সংগ্রহ এবং এর পদ্ধতি নিয়ে আলোচনা করব। এখানে, আমরা সমস্ত উদাহরণের জন্য সেলসফোর্সে অ্যাকাউন্ট স্ট্যান্ডার্ড অবজেক্ট ব্যবহার করব। চলুন দ্রুত এই টিউটোরিয়ালে ডুব দেওয়া যাক।

মানচিত্র

মানচিত্র ইনপুট হিসাবে {key:value} জোড়া ডেটা নেয় এবং Salesforce স্ট্যান্ডার্ড বা কাস্টম অবজেক্টে সংরক্ষণ করে। এটি কী বা মান হিসাবে sObject নিতে পারে।







মানচিত্র তৈরি

বস্তুর নামের সাথে কী এবং মানের ডেটা প্রকারগুলি উল্লেখ করে মানচিত্র তৈরি করা যেতে পারে। এখানে, এটি তৈরি করতে একটি নতুন কীওয়ার্ড ব্যবহার করা হয়। সৃষ্টির সময় উপাদানগুলি পাস করা ঐচ্ছিক হতে পারে।



খালি মানচিত্র সিনট্যাক্স:

মানচিত্র map_obj = নতুন মানচিত্র():

জেনেরিক সিনট্যাক্স:

মানচিত্র map_obj = নতুন মানচিত্র{

কী => মান,....};

বস্তুর সিনট্যাক্স:

মানচিত্র map_obj = নতুন মানচিত্র{

কী => মান,....};

এখানে, sObject একটি আদর্শ বা কাস্টম অবজেক্ট হতে পারে। এই সম্পূর্ণ নিবন্ধে, আমরা শুধুমাত্র 'অ্যাকাউন্ট' বিষয়ের সাথে মানচিত্র নিয়ে কাজ করব।



আসুন একের পর এক অ্যাপেক্স 'ম্যাপ' সংগ্রহের দ্বারা সমর্থিত পদ্ধতিগুলি দেখি।





পরিবেশ সেটআপ

1. সেলসফোর্সে দ্রুত লগইন করুন এবং গিয়ার আইকনে ক্লিক করে 'ডেভেলপার কনসোল' খুলুন।



2. তারপর, 'Debug' এবং 'Open Execute Anonymous Window'-এ ক্লিক করে 'বেনামী উইন্ডো' খুলুন।

সাধারণ উদাহরণ:

প্রথমত, আমরা দুটি বিষয় নিয়ে একটি মানচিত্র তৈরি করে জেনেরিক মানচিত্র তৈরি দেখতে পাব: 'সাবজেক্ট_আইডি' যা একটি কী হিসাবে কাজ করে এবং বিষয়ের নাম হিসাবে 'মান'।

ম্যাপ programming=new Map {1=> 'Linux',2=> 'Python'};

system.debug(প্রোগ্রামিং);

আউটপুট:

  1. 'Execute' এ ক্লিক করুন।
  2. 'শুধুমাত্র ডিবাগ' বিকল্পটি পরীক্ষা করুন। আপনি 'এক্সিকিউশন লগ' এ আউটপুট দেখতে পারেন।

মানচিত্র পদ্ধতি

প্রথমত, আমরা 'অ্যাকাউন্ট' অবজেক্ট থেকে একটি মানচিত্র তৈরি করি। আমরা একে একে নাম দিয়ে তিনটি অ্যাকাউন্ট তৈরি করি। তারপর, আমরা কী এবং মান হিসাবে একটি মানচিত্র ঘোষণা করি টাইপ করুন এবং কিছু মান প্রদান করে আগের তিনটি অ্যাকাউন্ট ম্যাপে পাস করুন।

// নামের সাথে 3টি অ্যাকাউন্ট তৈরি করুন

অ্যাকাউন্ট অ্যাকাউন্ট 1 = নতুন অ্যাকাউন্ট (নাম = 'লিনাক্স ইঙ্গিত');

অ্যাকাউন্ট অ্যাকাউন্ট 2 = নতুন অ্যাকাউন্ট (নাম = 'সেলসফোর্স');

অ্যাকাউন্ট অ্যাকাউন্ট 3 = নতুন অ্যাকাউন্ট (নাম = 'পাইথন');

// map_obj-এ কী হিসাবে উপরের অ্যাকাউন্টগুলি যোগ করুন

মানচিত্র map_obj = নতুন মানচিত্র{

account1 => 1000, account2 => 2000, account3 => 3000};

System.debug(map_obj);

আউটপুট:

আপনি দেখতে পাচ্ছেন যে 'map_obj' তিনটি অ্যাকাউন্ট সঞ্চয় করে।

1. Map.values()

প্রদত্ত মানচিত্র থেকে শুধুমাত্র মান ফেরত দিতে, আমরা মান() পদ্ধতি ব্যবহার করতে পারি। এটি কোন পরামিতি গ্রহণ করবে না। এটি কেবল কমা দ্বারা পৃথক করা মানগুলির তালিকা প্রদান করে।

বাক্য গঠন:

map_object.values()

উদাহরণ:

আগের মানচিত্র থেকে সমস্ত মান ফেরত দেওয়া যাক। নিশ্চিত করুন যে আপনাকে পূর্ববর্তী উদাহরণ কোডটি কার্যকর করতে হবে (তিনটি অ্যাকাউন্ট সহ একটি মানচিত্র তৈরি করুন)। অন্যথায়, আপনি একটি ত্রুটি পাবেন. কোডটি কনসোলেও থাকা উচিত।

// মান () ব্যবহার করে সমস্ত কীগুলির জন্য মান ফেরত দিন

System.debug(map_obj.values());

আউটপুট:

শুধুমাত্র তিনটি কী আছে: map_obj-এ মান জোড়া। মানগুলি হল: 1000, 2000 এবং 3000৷

2. Map.keySet()

ম্যাপ অবজেক্টে কীগুলি উপস্থিত রয়েছে তা ফেরত দিন। মানগুলির অনুরূপ (), এই পদ্ধতিতে কোনও প্যারামিটার পাস করার দরকার নেই।

বাক্য গঠন:

map_object.keySet()

উদাহরণ:

আগের ম্যাপ থেকে সব কী ফেরত দেওয়া যাক। নিশ্চিত করুন যে আপনি আগের উদাহরণ কোডটি কার্যকর করেছেন (তিনটি অ্যাকাউন্ট সহ একটি মানচিত্র তৈরি করুন)। অন্যথায়, আপনি একটি ত্রুটি পাবেন. কোডটি কনসোলেও থাকা উচিত।

// কীসেট() ব্যবহার করে সমস্ত কী ফেরত দিন

System.debug(map_obj.keySet());

আউটপুট:

শুধুমাত্র তিনটি কী আছে: map_obj-এ মান জোড়া। কীগুলি হল: {Account:{Name=Linux Hint}, Account:{Name=Python}, এবং Account:{Name=Salesforce}।

3. Map.size()

কিছু পরিস্থিতিতে, আমাদের এপেক্স মানচিত্রে উপস্থিত মোট আইটেম (কী: মান) জোড়া জানতে হবে। Size() হল এমন একটি পদ্ধতি যা map_object-এ বিদ্যমান মোট (কী:মান) জোড়া ফেরত দেয়। এই পদ্ধতির জন্য পরামিতি প্রয়োজন হয় না।

বাক্য গঠন:

map_object.size()

উদাহরণ:

পূর্ববর্তী মানচিত্র বস্তুর আকার ফেরত দিন।

// সাইজ() ব্যবহার করে মোট জোড়া সংখ্যা ফেরত দিন

System.debug(map_obj.size());

আউটপুট:

যেহেতু শুধুমাত্র 3 জোড়া আছে, প্রত্যাবর্তিত আকার() হল 3।

4. Map.get()

কী ব্যবহার করে মানচিত্র থেকে মানগুলি অ্যাক্সেস করা get() পদ্ধতি ব্যবহার করে করা হয়। এটি করার জন্য, আমাদেরকে একটি প্যারামিটার হিসাবে get() পদ্ধতিতে কী পাস করতে হবে। যদি একটি অজানা কী পাস করা হয়, এটি একটি ত্রুটি প্রদান করে।

বাক্য গঠন:

map_object.get(কী)

উদাহরণ:

কী-2 এবং কী-1-এর মান আলাদাভাবে ফেরত দিন।

// দ্বিতীয় কী এর মান পান

System.debug(map_obj.get(account2));

// প্রথম কী এর মান পান

System.debug(map_obj.get(account1));

আউটপুট:

এখানে, 2000 হল “Salesforce” কী-এর মান এবং 1000 হল “Linux Hint” কী-এর মান।

5. Map.clear()

একটি অ্যাপেক্স মানচিত্র সংগ্রহের সমস্ত জোড়া পরিষ্কার() পদ্ধতি ব্যবহার করে এক সময়ে মুছে ফেলা যেতে পারে। এটি কোন পরামিতি গ্রহণ করবে না।

বাক্য গঠন:

map_object.clear()

উদাহরণ:

পূর্ববর্তী 'map_obj' এ জোড়াগুলি সরান।

পরিষ্কার করার আগে ()

System.debug(map_obj);

// clear() ব্যবহার করে সমস্ত জোড়া সরান

map_obj.clear();

// পরিষ্কার করার পরে()

System.debug(map_obj);

আউটপুট:

পূর্বে, “map_obj”-এ 3টি কী-মান জোড়া আছে। clear() পদ্ধতি প্রয়োগ করার পরে, সব 3টি মুছে ফেলা হয়।

6. Map.equals()

আমরা সমান() পদ্ধতি ব্যবহার করে দুটি মানচিত্র বস্তুর তুলনা করতে পারি। মানচিত্র উভয় বস্তুতে সমস্ত কী এবং মান একই হলে true-এর বুলিয়ান মান ফেরত দেওয়া হয়। অন্তত একটি মান ভিন্ন হলে মিথ্যার বুলিয়ান মান ফেরত দেওয়া হয়।

বাক্য গঠন:

map_object1.equals(map_object2)

উদাহরণ:

আসুন একটি কী দিয়ে তিনটি মানচিত্র বস্তু তৈরি করি: মান জোড়া, প্রতিটি 'অ্যাকাউন্ট' অবজেক্টের সাথে সম্পর্কিত। তাদের মধ্যে এই বস্তুর তুলনা.

// হিসাব-১

অ্যাকাউন্ট অ্যাকাউন্ট 1 = নতুন অ্যাকাউন্ট (নাম = 'লিনাক্স ইঙ্গিত');

মানচিত্র map_obj1 = নতুন মানচিত্র{

account1 => 1000};

System.debug('মানচিত্র - 1:' + map_obj1);

// হিসাব-২

অ্যাকাউন্ট অ্যাকাউন্ট 2 = নতুন অ্যাকাউন্ট (নাম = 'লিনাক্স ইঙ্গিত');

মানচিত্র map_obj2 = নতুন মানচিত্র{

account2 => 1000};

System.debug('মানচিত্র - 2:' + map_obj1);

// হিসাব-৩

অ্যাকাউন্ট অ্যাকাউন্ট 3 = নতুন অ্যাকাউন্ট (নাম = 'পাইথন');

মানচিত্র map_obj3 = নতুন মানচিত্র{

account3 => 2000};

System.debug('মানচিত্র - 3:' + map_obj3);

// সমান()

System.debug('মানচিত্র 1 এবং মানচিত্র 2 সমান: '+ map_obj1.equals(map_obj2));

System.debug('মানচিত্র 1 এবং মানচিত্র 3 সমান: '+ map_obj1.equals(map_obj3));

আউটপুট:

প্রথম এবং দ্বিতীয় মানচিত্র বস্তু সমান কারণ উভয় কী এবং মান উভয় বস্তুতে একই। প্রথম এবং তৃতীয় মানচিত্র বস্তু সমান নয় কারণ কী এবং মান ভিন্ন।

7. Map.isEmpty()

আমরা isEmpty() পদ্ধতি ব্যবহার করে মানচিত্রটি খালি কিনা তা পরীক্ষা করতে পারি। Apex মানচিত্র সংগ্রহ খালি থাকলে সত্য ফেরত দেওয়া হয়। অন্যথায়, মিথ্যা ফেরত দেওয়া হয়। সাইজ() পদ্ধতির অনুরূপ, এটি কোন প্যারামিটার নেবে না।

বাক্য গঠন:

map_object.isEmpty()

উদাহরণ:

আসুন দুটি ম্যাপ অবজেক্ট তৈরি করি যা 'অ্যাকাউন্ট' এর সাথে সম্পর্কিত এবং এই দুটি খালি কিনা তা পরীক্ষা করি।

// হিসাব-১

অ্যাকাউন্ট অ্যাকাউন্ট 1 = নতুন অ্যাকাউন্ট (নাম = 'লিনাক্স ইঙ্গিত');

মানচিত্র map_obj1 = নতুন মানচিত্র{

account1 => 1000};



// হিসাব-২

মানচিত্র map_obj2 = নতুন মানচিত্র();

// খালি()

System.debug('মানচিত্র-1 খালি: '+map_obj1.isEmpty());

System.debug('মানচিত্র-2 খালি: '+map_obj2.isEmpty());

আউটপুট:

প্রথম মানচিত্রটি খালি নয় কারণ এটিতে একটি কী-মান জোড়া রয়েছে৷ দ্বিতীয় মানচিত্রটি খালি কারণ এটি কোনোটিই রাখে না।

8. Map.remove()

অ্যাপেক্স মানচিত্র সংগ্রহে রিমুভ() পদ্ধতিটি প্যারামিটার হিসাবে নির্দিষ্ট করা কী-এর উপর ভিত্তি করে একটি নির্দিষ্ট কী-মান জোড়া সরাতে ব্যবহৃত হয়। কীটি বিদ্যমান না থাকলে, একটি ত্রুটি উত্থাপিত হয়।

বাক্য গঠন:

map_object.remove(কী)

উদাহরণ:

আসুন দুটি আইটেম দিয়ে একটি মানচিত্র তৈরি করি এবং প্রথম আইটেমটি সরিয়ে ফেলি।

অ্যাকাউন্ট অ্যাকাউন্ট 1 = নতুন অ্যাকাউন্ট (নাম = 'লিনাক্স ইঙ্গিত');

অ্যাকাউন্ট অ্যাকাউন্ট 2 = নতুন অ্যাকাউন্ট (নাম = 'পাইথন');

মানচিত্র map_obj = নতুন মানচিত্র{

account1 => 1000, account2 => 4000};

System.debug('Existing Map'+ map_obj);

//অপসারণ()

map_obj.remove(account1);

System.debug('প্রথম আইটেমটি সরানোর পর:'+map_obj);

আউটপুট:

ম্যাপ থেকে প্রথম আইটেমটি মুছে ফেলার পর, শুধুমাত্র একটি আইটেম বিদ্যমান থাকে – {Account:{Name=Python}=4000}।

9. Map.put()

এই পদ্ধতিটি ব্যবহার করে, আমরা সরাসরি ম্যাপ অবজেক্টে একবারে একটি আইটেম যোগ করতে পারি। এটি দুটি প্যারামিটার গ্রহণ করে: 'কী' হল প্রথম প্যারামিটার যখন 'মান' হল দ্বিতীয় পরামিতি।

বাক্য গঠন:

map_object.put(কী,মান)

উদাহরণ:

আসুন একটি কী-মানের জোড়া দিয়ে একটি মানচিত্র তৈরি করি। তারপর, আমরা 'অ্যাকাউন্ট2' সন্নিবেশ করার জন্য 'পুট' পদ্ধতি ব্যবহার করি।

// হিসাব-১

অ্যাকাউন্ট অ্যাকাউন্ট 1 = নতুন অ্যাকাউন্ট (নাম = 'লিনাক্স ইঙ্গিত');

মানচিত্র map_obj1 = নতুন মানচিত্র{

account1 => 1000};

System.debug('প্রকৃত মানচিত্র: '+map_obj1);

// হিসাব-২

অ্যাকাউন্ট অ্যাকাউন্ট 2 = নতুন অ্যাকাউন্ট (নাম = 'পাইথন');

// পুট()

map_obj1.put(account2,2000);

System.debug('ফাইনাল ম্যাপ: '+map_obj1);

আউটপুট:

পূর্বে, মানচিত্রে শুধুমাত্র একটি কী-মানের জোড়া ছিল যা হল {Account:{Name=Linux Hint}=1000}। 'অ্যাকাউন্ট2' যোগ করার পর, চূড়ান্ত ম্যাপে দুটি কী-মানের জোড়া রয়েছে যা হল {Account:{Name=Linux Hint}=1000 এবং Account:{Name=Python}=2000}।

10. Map.putAll()

এই পদ্ধতি ব্যবহার করে, আমরা সরাসরি একটি একক বা একাধিক আইটেম একটি সময়ে মানচিত্রের বস্তুতে যোগ করতে পারি। এটি একটি প্যারামিটার হিসাবে একটি মানচিত্র সংগ্রহ বস্তু নেয়।

বাক্য গঠন:

map_object1.putAll(map_object2)

উদাহরণ:

আসুন দুটি কী-মান জোড়া দিয়ে একটি মানচিত্র তৈরি করি এবং কোনো আইটেম ছাড়াই আবার একটি খালি মানচিত্র বস্তু তৈরি করি। প্রথম ম্যাপ অবজেক্টে পাওয়া আইটেমগুলিকে দ্বিতীয় ম্যাপ অবজেক্টে যোগ করতে putAll() পদ্ধতি ব্যবহার করুন।

অ্যাকাউন্ট অ্যাকাউন্ট 1 = নতুন অ্যাকাউন্ট (নাম = 'লিনাক্স ইঙ্গিত');

অ্যাকাউন্ট অ্যাকাউন্ট 2 = নতুন অ্যাকাউন্ট (নাম = 'পাইথন');

মানচিত্র map_obj1 = নতুন মানচিত্র{

account1 => 1000, account2=> 2000};

System.debug(map_obj1);

মানচিত্র map_obj2 = নতুন মানচিত্র();

//সব রাখো()

map_obj2.putAll(map_obj1);

System.debug(map_obj2);

আউটপুট:

উপসংহার

মানচিত্র হল একটি ডেটা স্ট্রাকচার যা মূলত ট্রিগার পরিস্থিতিতে ব্যবহৃত হয় এবং একটি তালিকার মতো সেলসফোর্স ডাটাবেসে একবারে আরও ডেটা লোড করতে সাহায্য করে। ম্যাপে আইটেম যোগ করার জন্য আমাদের কাছে দুটি বিকল্প আছে: put() এবং putAll() ব্যবহার করে। রিমুভ() পদ্ধতিটি অ্যাপেক্স মানচিত্র সংগ্রহ থেকে একটি নির্দিষ্ট আইটেম অপসারণ করতে ব্যবহৃত হয়। পরিষ্কার() পদ্ধতিটি সমস্ত আইটেম মুছে ফেলার জন্য ব্যবহৃত হয়। এছাড়াও, আমরা শিখেছি কিভাবে মান () এবং কীসেট() পদ্ধতি ব্যবহার করে মান এবং কী ফেরত দিতে হয়।