Salesforceéçºã®åºç¤ç·¨5
Apex ã®åºç¤ã¨ãã¼ã¿ãã¼ã¹
Apex ã®ä½¿ç¨éå§
ã¾ãJavaæ¸ãã¦ããç¹ã«åé¡ãªãããããè¨èªä»æ§ã¯ä½æ Java1.42 ä½ã®å°è±¡ï¼1.4 ããã¯ãã·ï¼ã ã5ã®æ§ãªGenericsãªã©ã¯åå¨ããªãï¼ã
ãã¼ã«ã«ã³ã³ãã¤ã«ã§ãããSalesforce çµç¹ä¸ã§ããã³ã³ãã¤ã«/å®è¡ã§ããªãã
Apex ã®ç¹å¾´çãªæ©è½ã¨ãã¦
- ã¯ã©ã¦ãéçº (Apex ã¯ã¯ã©ã¦ãã§ä¿ç®¡ãã³ã³ãã¤ã«ãããã³å®è¡ããããã)
- ããªã¬ (ãã¼ã¿ãã¼ã¹ã·ã¹ãã ã®ããªã¬ã¨é¡ä¼¼)
- ç´æ¥ãã¼ã¿ãã¼ã¹ã³ã¼ã«ãå¯è½ãªãã¼ã¿ãã¼ã¹ã¹ãã¼ãã¡ã³ãã¨ããã¼ã¿ã®ã¯ã¨ãªã¨æ¤ç´¢ãè¡ãããã®ã¯ã¨ãªè¨èª
- ãã©ã³ã¶ã¯ã·ã§ã³ã¨ãã¼ã«ããã¯
- global ã¢ã¯ã»ã¹ä¿®é£¾å (public 修飾åãããæ¨©éãé«ããåå空éã¨ã¢ããªã±ã¼ã·ã§ã³ã®å ¨ä½ã§ã¢ã¯ã»ã¹ãå¯è½)
- ã«ã¹ã¿ã ã³ã¼ãã®ãã¼ã¸ã§ã³ç®¡ç
ãµã³ãã«ã®ã³ã¼ãã¯é常ã«ããããä½ãã§ã¯ããã®ã§ããã§ã転è¨ã
Java ã ã¨ã¡ã¼ã«ãµã¼ãã«æ¥ç¶ãã¦â¦ãªãã¦è²ã
ãããã©ããããã£ãå
容ã¯ãã¹ã¦ Salesforce ã«ãã«ãã¤ã³ã
ããããæã¯æ¥½ã£ã¡ã楽
public class EmailManager { public void sendMail(String address, String subject, String body) { Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); String[] toAddresses = new String[] {address}; mail.setToAddresses(toAddresses); mail.setSubject(subject); mail.setPlainTextBody(body); Messaging.SendEmailResult[] results = Messaging.sendEmail( new Messaging.SingleEmailMessage[] { mail }); inspectResults(results); } private static Boolean inspectResults(Messaging.SendEmailResult[] results) { Boolean sendResult = true; for (Messaging.SendEmailResult res : results) { if (res.isSuccess()) { System.debug('Email sent successfully'); } else { sendResult = false; System.debug('The following errors occurred: ' + res.getErrors()); } } return sendResult; } }
åºæ¬ã¯ãã£ããèµ·åãã¦
ã¯ã©ã¹ã追å
ã¯ã©ã¹å㯠StringArrayTest
çããæ¸ãã¦ã仿¹ãªãã®ã§ãã¹ãå 容ã®ç¿»è¨³
StringArrayTest
ã¨ããã¯ã©ã¹ã§public
ã§ä½ãã¾ãpublic static
ãªã¡ã½ããgenerateStringArray
ã使ãã¾ãgenerateStringArray
ã®ä»æ§ã¯Integer
åã®å¼æ°List<String>
åã®è¿å¤å- 弿°ã®å¤ã«ãã£ã¦
Test 0
,Test 1
... ã®æ§ãªå¤ãè¿ãã¾ãã
sObject ã®ä½¿ç¨
Salesforce ã®ãã¼ã¿ãã¼ã¹ã¯ãã¹ã¦ãªãã¸ã§ã¯ããApex çã«ã¯ sObject
åã§ãã
å
¨ã¦ã®ãªãã¸ã§ã¯ãã«ã¯ Id
ãã£ã¼ã«ããããããã©ã¤ããªãã¼ã§ããåã ID
åã§ã18æå String å¤ãå
¥ã£ã¦ã¾ãã
sObject 㯠Salesforce開発の基礎編2 - 技術をかじる猫 ãã®ãã¼ã¿ã¢ããªã³ã°åç
§ã
ã¯ã¨ãªãã½ã¼ã¹å
ã§ãããªé¢¨ã«æ¸ãã
List<Account> values = [SELECT Id, Name FROM Account WHERE Name LIKE 'Test%'];
DML ã使ç¨ããã¬ã³ã¼ãã®æä½
DML ã£ã¦ã®ã¯ãè¦ããã«ã¬ã³ã¼ãæä½
insert, delete, update, upsert, undelete, merge
ã§ãã¼ã¿ãè²ã
ããããã
Account acct = new Account(Name='Acme', Phone='(415)555-1212', NumberOfEmployees=100); insert acct;
insert
ã upsert
ããç´å¾ã« Id
ãã£ã¼ã«ãã«ã ãå¤ãè¨å®ãããã
æ°å¼é
ç®ã¯ insert
ãå®äºããã¨ãã«åããããâ¦ã®ã ãã©ãinsert
ã«ä½¿ã£ããªãã¸ã§ã¯ãã«ã¯å
¥ããªãã®ã§ãselect
ããªãããªãã¨ãããªãã
upsert
㯠insert
ã¨ãã¦ã update
ã¨ãã¦ã使ããã³ãã³ãã§ãmerge
ã¯æå¤§ 3 ã¬ã³ã¼ãã 1 ã¬ã³ã¼ãã«èªåãã¼ã¸ãã¦æ¢åã¬ã³ã¼ããåé¤ãã¦ä¿åãããã
ä¸å¿ãã¼ã¿ãã¼ã¹æä½ã¯ã¡ã½ããã§ãã§ããã
Database.insert() Database.update() Database.upsert() Database.delete() Database.undelete() Database.merge()
åé¡ã¯ãããªå 容
AccountHandler
ã¯ã©ã¹ã使ãã¾ãpublic
ã§ã- 以ä¸ã®ä»æ§ãæºãã
public static
ãªinsertNewAccount
ã¡ã½ãããä½ãã¾ã- 弿°ã«
String
ãåãåããAccount ãªãã¸ã§ã¯ãã使ãAccount.Name
ã«è¨å®ãã¾ãã - ä½ã£ãã
Account
ãinsert
ããreturn
ããã - 弿°ã§ã¯ç©ºæåãåä»ããä¿åã«å¤±æããã
null
ãè¿ãã¾ãã
- 弿°ã«
SOQL ã¯ã¨ãªã®ä½æ
ã½ã¼ã¹ä¸ã«ã¯ã¨ãªãæ¸ãã仿§ã®æ¼ç¿èª²é¡ã
public class ContactSearch
ã使ãã¦ãã ããpublic static
ãªã¡ã½ããsearchForContacts
ãå®ç¾©ãã¾ãã- äºã¤ã®
String
ãã©ã¡ã¼ã¿ãåãåãã¾ã Contact
ãæ¤ç´¢ãã¾ãã第ä¸å¼æ°ã¯LastName
ã¨ãããããã第äºå¼æ°ã¯MailingPostalCode
ã¨ä¸è´æ¤ç´¢ãã¾ãã- æçµçã«
List<Contact>
ã return ãã¾ããSELECT å 容㯠Id, Name ã§ãã
- äºã¤ã®
Apex ããªã¬
使
ããããã¨ãä¸è©±ã«ãªã Apex ããªã¬ã
ããã¯ãã¼ã¿ãã¼ã¹ã¬ã³ã¼ãæä½ã«å²ãè¾¼ãå¦çã§ãã½ã¼ã¹ã³ã¼ãã§å²ãè¾¼ããããããå²ã¨ä¾¿å©ã
Apex ããªã¬ã®ä½¿ç¨éå§
Apex ããªã¬ã®è¨è¿°
è¦ããã« DML ã«å²ãè¾¼ããã¿ã¤ãã³ã°ã®èª¬æã
以ä¸ã®ã¿ã¤ãã³ã°ãæ±ããã
before insert before update before delete after insert after update after delete after undelete
ããªã¬ã®è¨å®ã¯ããè¦ãã°åããã¯ã
trigger HelloWorldTrigger on Account (before insert, after insert) { if (Trriger.isInsert) { if (Trriger.isBefore) { List<Account> values = Trriger.New; } else if (Trigger.isAfter) { List<Account> values = Trriger.New; } } }
before
ã¯å®éã«ãã¼ã¿ã®æä½(insert
ç)ã®ç´åã«å®è¡ããããé¢é£ããã«ã©ã ãè¨ç®ãã¦ä¿åããå ´åãå å·¥ã¯ããã
after
ã¯ãã¼ã¿æä½å®è¡ç´å¾ã«å®è¡ãããããã®æç¹ã§ Id
çãè¨å®ããã¦ãããé¢é£ããã¬ã³ã¼ãã使ãããªã©ããå ´åã¯ããã
å ã¿ã«ãbefore insert
ã after insert
å
ã§ Trigger.New
ã®ãã¼ã¿ã delete
ããããããã¨ã¯ã§ãã¾ããã
ãããªã after insert
ã§å度 select
ãããã¨ã§ delete
çãå®è¡ãããã¨ãã§ãã¾ãã
ã¾ããããªã¬å
ã§ã¯ååçã« Callout
ï¼Callout ã¯å¤é¨ãµã¼ãã¸ã®HTTPãªã¯ã¨ã¹ãã®äºï¼ã¯å®è¡ã§ãã¾ããã
ããã§ @future(callout=true)
ã¢ããã¼ã·ã§ã³ã®ã¤ããéåæå¦çãªã©ã使ç¨ãããã¨ã§å¼ã³åºããã¨ãã§ãã¾ãã
䏿¬ Apex ããªã¬
åè¿°ã§ Trigger.New
ã List
è¿ãã¦ããã¨ãèããã°åãããã©ãè¦ããã«è¤æ°ã¬ã³ã¼ããã¾ã¨ãã¦å
¥ã£ã¦ããã
ãã㯠insert
ã§ãªã¹ããæå®ãã¦ããããDataLoader
ã§ã¾ã¨ãã¦ã©ã¼ãããã¨ãã«è¤æ°å
¥ã£ã¦ãã¾ãã
ã§ããããããåé¡ã§ãSalesforce ã«ã¯ã¬ããå¶éã¤ã¼ãããããã¾ãã
developer.salesforce.com
è¦ãã°åãããã©ã1åã®å¦çã§è¡ã£ã¦ãã DML æä½ã SELECT åæ°ã«ã¯éçãããã
ã«ã¼ãããªãã SELECT ããã¨ãå¶éã® 100 åãªãã¦ä¸ç¬ãªè¨³ã§â¦ãªã®ã§ãããããæä½ãããªãã¾ã¨ã㦠SELECT ã䏿°ã«æä½ãå¿ããã¾ãããã¨ãã話ã
ããªã¬ã®å®è¡é åºãªã©ã試é¨ã®ç¯å²ãªãã§è¦ãã¨ããã