【Salesforce】Exception
【Salesforce】Exception
以下のExceptionの原因究明が難しい。
CalloutException |
外部システムへのコールアウトの失敗など、Web サービス処理に関する問題を示す例外。 |
参考URL
【Salesforce】String.valueOf
【Salesforce】String.valueOf
例:
Map<String,String> leadOwnerMap = new Map<String, String>();
for(Lead obj: [Select id, OwnerId From Lead]){
leadOwnerMap.put(obj.id, obj.OwnerId);
}
System.debug('leadOwnerMap:'+leadOwnerMap);
Map<String,String> contactOwnerMap = new Map<String, String>();
for(Contact obj: [Select id, OwnerId From Contact]){
contactOwnerMap.put(obj.id, obj.OwnerId);
}
System.debug('contactOwnerMap:'+contactOwnerMap);
Map<String,String> accountOwnerMap = new Map<String, String>();
for(Account obj: [Select id, OwnerId From Account]){
accountOwnerMap.put(obj.id, obj.OwnerId);
}
System.debug('accountOwnerMap:'+accountOwnerMap);
List<Event> updateLeadEventList = new List<Event>();
List<Event> updateContactEventList = new List<Event>();
List<Event> updateAccountEventList = new List<Event>();
for(Event obj:[Select WhoId, WhatId, OwnerId, Id From Event]){
if(obj.WhoId != null){
if*1.substring(0,3) == '00Q'){
if(obj.OwnerId != leadOwnerMap.get(obj.OwnerId)){
Event ev = new Event();
ev.id = obj.Id;
ev.OwnerId = leadOwnerMap.get(obj.WhoId);
updateLeadEventList.add(ev);
}
}else if*2.substring(0,3) == '003'){
if(obj.OwnerId != contactOwnerMap.get(obj.OwnerId)){
Event ev = new Event();
ev.id = obj.Id;
ev.OwnerId = contactOwnerMap.get(obj.WhoId);
updateContactEventList.add(ev);
}
}
}else if(obj.WhatId != null){
if*3.substring(0,3) == '001'){
if(obj.OwnerId != accountOwnerMap.get(obj.WhatId)){
Event ev = new Event();
ev.id = obj.Id;
ev.OwnerId = accountOwnerMap.get(obj.WhatId);
updateAccountEventList.add(ev);
}
}
}
}
参考URL
https://developer.salesforce.com/forums/?id=906F0000000DCDMIA4
【Salesforce】substring
【Salesforce】substring
substring(startIndex, endIndex)
Returns a new String that begins with the character at the specified zero-based startIndex and extends to the character at endIndex - 1.
例:
'hamburger'.substring(4, 8);
// Returns "urge"
'smiles'.substring(1, 5);
// Returns "mile"
参考URL
【Salesforce】SOQL Where文
【Salesforce】SOQL Where文
例:
String nameString = 'a';
Account A = new Account(Name='a');
insert A;
List<Account> accList = new List<Account>();
accList = [SELECT Id FROM Account WHERE Name = :nameString];
System.debug('accList:'+accList);
List<Account> accList2 = new List<Account>();
String ss = new String{'a', 'b'};
accList2 = [SELECT Id FROM Account WHERE Name IN :ss];
System.debug('accList2:'+accList2);
結果:
accList:(Account:{Id=0015D00000O4zjNQAR, RecordTypeId=01228000000nUukAAE}, Account:{Id=0015D00000O4zm2QAB, RecordTypeId=01228000000nUukAAE})
accList2:(Account:{Id=0015D00000O4zjNQAR, RecordTypeId=01228000000nUukAAE}, Account:{Id=0015D00000O4zm2QAB, RecordTypeId=01228000000nUukAAE})
参考URL
【Salesforce】List, Map, Set
【Salesforce】List, Map, Set
List
重複した値のセット(add)が可能です。
Map
キーによって値を管理しているため、キーの重複は不可です。但し、値の重複は可能です。
※同じキーがセット(put)された場合は、上書きされます。
Set
重複した値のセット(add)は不可です。
※同じ値がセット(add)された場合は、上書きされます。
例:
//List
List<String> ListA = new List<String>();
//値をセット
ListA.add('あいうえお');
ListA.add('かきくけこ');
ListA.add('さしすせそ');
ListA.add('あいうえお');
System.debug('ListA:'+ListA);
//Map
Map<String,String> mapB = new Map<String,String>();
//値をセット
mapB.put('1','あいうえお');
mapB.put('2','かきくけこ');
mapB.put('3','さしすせそ');
mapB.put('2','あいうえお');
System.debug('mapB:'+mapB);
//Set
Set<String> setC = new Set<String>();
//値をセット
setC.add('あいうえお');
setC.add('かきくけこ');
setC.add('さしすせそ');
setC.add('あいうえお');
System.debug('setC:'+setC);
結果:
ListA:(あいうえお, かきくけこ, さしすせそ, あいうえお)
mapB:{1=あいうえお, 2=あいうえお, 3=さしすせそ}
setC:{あいうえお, かきくけこ, さしすせそ}
参考URL
List、Map、Setを使用して複数の値を保持してみよう!【プログラミング】 | 株式会社日本システムデザイン【鹿児島事業所】