You need to sign in to do that
Don't have an account?

Interesting :: how to write a proper upsert
Hi Experts,
I have below controller which inserts data five times as five different records
public class AddQAAMWeeklyPlanner
{
//Shrinkage Time
public String ShrinkageTimeFri { get; set; }
public String ShrinkageTimeThur { get; set; }
public String ShrinkageTimeWed { get; set; }
public String ShrinkageTimeTue { get; set; }
public String ShrinkageTimeMon { get; set; }
//Otherttime Description add
public String OthertimeDes_Fri { get; set; }
public String OthertimeDes_Thur { get; set; }
public String OthertimeDes_Wed { get; set; }
public String OthertimeDes_Tue { get; set; }
public String OthertimeDes_Mon { get; set; }
public map<String,String> OthertimeDesMap= new map<String, String>();
public map<String,String> ShrinkageTimeMonMap = new map<String, String>();
public void AddAvailability()
{
OthertimeDesMap.put('Monday',OthertimeDes_Mon);
OthertimeDesMap.put('Tuesday',OthertimeDes_Tue);
OthertimeDesMap.put('Wednesday',OthertimeDes_Wed);
OthertimeDesMap.put('Thursday',OthertimeDes_Thur);
OthertimeDesMap.put('Friday',OthertimeDes_Fri);
ShrinkageTimeMonMap.put('Monday', ShrinkageTimeMon);
ShrinkageTimeMonMap.put('Tuesday', ShrinkageTimeTue);
ShrinkageTimeMonMap.put('Wednesday', ShrinkageTimeWed);
ShrinkageTimeMonMap.put('Thursday', ShrinkageTimeThur);
ShrinkageTimeMonMap.put('Friday', ShrinkageTimeFri);
}
public void saveAllDetails()
{
AddAvailability();
List<QAAM_Weekly_Planner__c> testList = new List<QAAM_Weekly_Planner__c>();
string enteredDayfromUI = ‘Monday’;
if(enteredDayfromUI.equals('Monday'))
{
for(String k : ShrinkageTimeMonMap.keySet())
{
QAAM_Weekly_Planner__c acc= new QAAM_Weekly_Planner__c ();
acc. Shrinkage_time__c = Double.valueOf(ShrinkageTimeMonMap.get(k));
acc. OthertimeDes__c = OthertimeDesMap.get(k);
testList.add(acc);
}
Insert testList;
}
I want to check, it data is already available, I just to update my records rather than doing a new insert. Kindly help.
This query will return me the ID's of primary feilds.
List<QAAM_Weekly_Planner__c> weekValues = [select Week_Start_Date__c, id, Week__C from QAAM_Weekly_Planner__c where Week__C =: week];
if size of weekValues is greater than 0, I have to take all record ID's [to be precise 5 records will be available] and I have to run the method saveAllDetails() with upsert operation. Kindly help me.
Thanks
Karthic Sankar V P
I have below controller which inserts data five times as five different records
public class AddQAAMWeeklyPlanner
{
//Shrinkage Time
public String ShrinkageTimeFri { get; set; }
public String ShrinkageTimeThur { get; set; }
public String ShrinkageTimeWed { get; set; }
public String ShrinkageTimeTue { get; set; }
public String ShrinkageTimeMon { get; set; }
//Otherttime Description add
public String OthertimeDes_Fri { get; set; }
public String OthertimeDes_Thur { get; set; }
public String OthertimeDes_Wed { get; set; }
public String OthertimeDes_Tue { get; set; }
public String OthertimeDes_Mon { get; set; }
public map<String,String> OthertimeDesMap= new map<String, String>();
public map<String,String> ShrinkageTimeMonMap = new map<String, String>();
public void AddAvailability()
{
OthertimeDesMap.put('Monday',OthertimeDes_Mon);
OthertimeDesMap.put('Tuesday',OthertimeDes_Tue);
OthertimeDesMap.put('Wednesday',OthertimeDes_Wed);
OthertimeDesMap.put('Thursday',OthertimeDes_Thur);
OthertimeDesMap.put('Friday',OthertimeDes_Fri);
ShrinkageTimeMonMap.put('Monday', ShrinkageTimeMon);
ShrinkageTimeMonMap.put('Tuesday', ShrinkageTimeTue);
ShrinkageTimeMonMap.put('Wednesday', ShrinkageTimeWed);
ShrinkageTimeMonMap.put('Thursday', ShrinkageTimeThur);
ShrinkageTimeMonMap.put('Friday', ShrinkageTimeFri);
}
public void saveAllDetails()
{
AddAvailability();
List<QAAM_Weekly_Planner__c> testList = new List<QAAM_Weekly_Planner__c>();
string enteredDayfromUI = ‘Monday’;
if(enteredDayfromUI.equals('Monday'))
{
for(String k : ShrinkageTimeMonMap.keySet())
{
QAAM_Weekly_Planner__c acc= new QAAM_Weekly_Planner__c ();
acc. Shrinkage_time__c = Double.valueOf(ShrinkageTimeMonMap.get(k));
acc. OthertimeDes__c = OthertimeDesMap.get(k);
testList.add(acc);
}
Insert testList;
}
I want to check, it data is already available, I just to update my records rather than doing a new insert. Kindly help.
This query will return me the ID's of primary feilds.
List<QAAM_Weekly_Planner__c> weekValues = [select Week_Start_Date__c, id, Week__C from QAAM_Weekly_Planner__c where Week__C =: week];
if size of weekValues is greater than 0, I have to take all record ID's [to be precise 5 records will be available] and I have to run the method saveAllDetails() with upsert operation. Kindly help me.
Thanks
Karthic Sankar V P
public void saveAllDetails()
{
AddAvailability();
List<QAAM_Weekly_Planner__c> testList = new List<QAAM_Weekly_Planner__c>();
string enteredDayfromUI = ‘Monday’;
for(String k : ShrinkageTimeMonMap.keySet())
{
if(enteredDayfromUI==k)
{
QAAM_Weekly_Planner__c acc= new QAAM_Weekly_Planner__c ();
acc. Shrinkage_time__c = Double.valueOf(ShrinkageTimeMonMap.get(k));
acc. OthertimeDes__c = OthertimeDesMap.get(k);
testList.add(acc);
}
}
Insert testList;