/ / Mapa, aby sa zabránilo Duplicitné záznamy - spúšťače, salesforce

Mapa, ktorej sa treba vyhnúť Duplicitné záznamy - spúšťače, predajcovia

Mám objekt Holiday Custom, obsahuje jedinečné dátumy založené na podľa krajiny Ako načítať hodnotu v Mape

Skúsil som:

 List<Holiday__c> holidays = new List<Holiday__c>([Select id, Date__c,Country__c from Holiday__c]);

Map<date, Holiday__c> mapOfHolidays = new Map<date, Holiday__c>();
for (Holiday__c holiday: holidays)  mapOfHolidays.put(holiday.Date__c , holiday);

Predpokladajme napríklad dátum 3/8/17 pre krajinu Francúzsko a Taliansko, Ak uvediem hodnotu Key ako Date__c, mapa neobsahuje kľúč ako duplikáty, ale pre každú krajinu jedinečné dátumy sú tam

Takže to, čo musím použiť kľúč a hodnotu v mape, chcem získať dátum pomocou mapy, prosím niekto Pomocník pre mňa odpoveď

trigger ignoreweekends on order (before insert,before update) {

Set<id> accountIds = new Set<Id>();
for (order ord : Trigger.new) {
accountids.add(ord.AccountId);
}

map<id, account> mapOfAccounts = new map<id, account>([select id,JDE_Date_Delivery_Offset__c from account where id IN: accountIds]);

List<Holiday__c> holidays = new List<Holiday__c>([Select id, Date__c from Holiday__c]);

Map<date, Holiday__c> mapOfHolidays = new Map<date, Holiday__c>();
for (Holiday__c holiday: holidays)  mapOfHolidays.put(holiday.Date__c , holiday);

for (order so : Trigger.new) {
Account acc = mapOfAccounts.get(so.AccountId);
for(integer i=0;i<=acc.JDE_Date_Delivery_Offset__c;i++) {
Datetime dt = DateTime.newInstance(Date.today() +acc.JDE_Date_Delivery_Offset__c.longvalue(), Time.newInstance(0, 0, 0, 0));
String dayOfWeek=dt.format("EEEE");

if(dayOfWeek == "saturday" || dayOfWeek == "sunday"|| mapOfHolidays.containskey(mapOfHolidays.Date__c))

acc.JDE_Date_Delivery_Offset__c = acc.JDE_Date_Delivery_Offset__c+ 1;

so.JDE_Synchronization_Date__c = Date.today().addDays(acc.JDE_Date_Delivery_Offset__c.intValue());
}
}
}

odpovede:

1 pre odpoveď č. 1

Ak som správne pochopil, pre jeden jedinečný dátummáte viac krajín. Za týmto účelom môžete vytvoriť mapu Dátum ako kľúč a Zoznam ako hodnotu namiesto vytvorenia mapy Dátum a Dovolenka. Napríklad :

Map<Date, List<Holiday__c>> mapofHolidays = new HashMap<Date, List<Holiday__c>>();

Potom môžete získať všetky krajiny pre jedinečný dátum a vykonať požadované spracovanie.