ãã©ãããã©ãŒã ã€ãã³ãã®ç»é²
åŠç¿ã®ç®ç
ãã®åå ãå®äºãããšã次ã®ããšãã§ããããã«ãªããŸãã
- ãã©ãããã©ãŒã ã€ãã³ãã¡ãã»ãŒãžã®ç»é²æ¹æ³ã説æããã
- ãã©ãããã©ãŒã äžãšå€éšã¢ããªã±ãŒã·ã§ã³å
ã®ã€ãã³ãã«ç»é²ããã
- Apex ãã¹ãã¡ãœããã§ãã©ãããã©ãŒã ã€ãã³ãããã¹ãããã
ãã©ãããã©ãŒã ã€ãã³ãã®ç»é²
ãã©ãããã©ãŒã ã€ãã³ãã®å
¬éæ¹æ³ã¯ç¢ºèªã§ããŸãããããã©ãããã©ãŒã ã€ãã³ãã«ç»é²ããŠææ°ã®ãã¥ãŒã¹ãè·ç©ã®é
éã®éç¥ãåãåãã«ã¯ã©ãããã°ããã®ã§ãããã? Salesforce Platform ã§ã¯ãApex ããªã¬ãŒãããã»ã¹ããããŒãempApi Lightning ã³ã³ããŒãã³ãã䜿çšããŠã€ãã³ãã«ç»é²ããŸããå€éšã¢ããªã±ãŒã·ã§ã³ã§ã¯ãPub/Sub API ã䜿çšããŠã€ãã³ãã«ç»é²ããŸãã
Apex ããªã¬ãŒã䜿çšãããã©ãããã©ãŒã ã€ãã³ãéç¥ã®ç»é²
çããã¯ãããããã§ã« Apex ããªã¬ãŒã䜿çšããŠããŒã¿ããŒã¹ã€ãã³ãã«åºã¥ãã¢ã¯ã·ã§ã³ãå®è¡ããããšããããšæããŸãããã©ãããã©ãŒã ã€ãã³ãã§ããããã»ã¹ã¯äŒŒãŠããŸããåä¿¡ã€ãã³ãã«ç»é²ããã«ã¯ãã€ãã³ããªããžã§ã¯ãã«å¯Ÿãã after insert ããªã¬ãŒãèšè¿°ããã ãã§ããããªã¬ãŒã¯ãApex ã§ã®èªåç»é²ã¡ã«ããºã ãæäŸããŸãããã£ãã«ã®äœæãšãªã¹ã³ãæç€ºçã«è¡ãå¿ èŠã¯ãããŸãããããªã¬ãŒã¯ãApex ãš API ã®ã©ã¡ãã§å ¬éãããŠããŠããããŸããŸãªãœãŒã¹ããã€ãã³ãéç¥ãåä¿¡ããŸãã
ãã©ãããã©ãŒã ã€ãã³ã㯠after insert ããªã¬ãŒã®ã¿ããµããŒãããŸããafter insert ããªã¬ãŒã€ãã³ãã¯ããã©ãããã©ãŒã ã€ãã³ããå ¬éãããåŸã®ã¿ã€ãã³ã°ã«å¯Ÿå¿ããŸããã€ãã³ãã¡ãã»ãŒãžãå ¬éããããšãafter insert ããªã¬ãŒãèµ·åãããŸãã
ãã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒãäœæããã«ã¯ãéçºè ã³ã³ãœãŒã«ã䜿çšããŸãã
- ã¯ã€ãã¯ã¢ã¯ã»ã¹ã¡ãã¥ãŒ (
) ã§ [Developer Console (éçºè
ã³ã³ãœãŒã«)] ãéžæãã[File (ãã¡ã€ã«)] | [New (æ°èŠ)] | [Apex Trigger (Apex ããªã¬ãŒ)] ãã¯ãªãã¯ããŸãã
- ååãæå®ããsObject ã®ã€ãã³ããéžæã㊠[Submit (éä¿¡)] ãã¯ãªãã¯ããŸãã
éçºè
ã³ã³ãœãŒã«ã«ãããããªã¬ãŒãã³ãã¬ãŒãã« after insert ã€ãã³ããèªåçã«è¿œå ãããŸããããã«ã[èšå®] ã®ã€ãã³ãã®å®çŸ©ããŒãžãã [ããªã¬ãŒ] é¢é£ãªã¹ãã§ç°¡åã«ããªã¬ãŒãäœæã§ããŸãããafter insert ããŒã¯ãŒããæå®ããå¿
èŠããããŸãã
次ã®äŸã¯ãCloud News ã€ãã³ãã®ããªã¬ãŒã瀺ããŸããåã€ãã³ããå埩åŠçããUrgent__c é
ç®ã§ãã¥ãŒã¹ãç·æ¥ãã©ãã確èªããŸãããã¥ãŒã¹ãç·æ¥ã®å Žåãããªã¬ãŒã¯ã±ãŒã¹ãäœæããŠããã¥ãŒã¹ã¬ããŒã¿ãŒã掟é£ããã€ãã³ãã®å Žæãã±ãŒã¹ã®ä»¶åã«è¿œå ããŸãã
// Trigger for listening to Cloud_News events.
trigger CloudNewsTrigger on Cloud_News__e (after insert) {
// List to hold all cases to be created.
List<Case> cases = new List<Case>();
// Get queue Id for case owner
Group queue = [SELECT Id FROM Group WHERE Name='Regional Dispatch' AND Type='Queue'];
// Iterate through each notification.
for (Cloud_News__e event : Trigger.New) {
if (event.Urgent__c == true) {
// Create Case to dispatch new team.
Case cs = new Case();
cs.Priority = 'High';
cs.Subject = 'News team dispatch to ' +
event.Location__c;
cs.OwnerId = queue.Id;
cases.add(cs);
}
}
// Insert all cases corresponding to events received.
insert cases;
}ãããã°ãã°ã®èšå®
æšæºãŸãã¯ã«ã¹ã¿ã ãªããžã§ã¯ãã®ããªã¬ãŒãšã¯ç°ãªãããã©ãããã©ãŒã ã€ãã³ãã®ããªã¬ãŒã¯ãã€ãã³ããå ¬éãã Apex ãã©ã³ã¶ã¯ã·ã§ã³ãšåããã©ã³ã¶ã¯ã·ã§ã³ã§ã¯å®è¡ãããŸãããããªã¬ãŒã¯ãã·ã¹ãã ãŠãŒã¶ãŒã§ããèªååããã»ã¹ãšã³ãã£ãã£ã®äžã®ç¬èªããã»ã¹ã§å®è¡ãããŸãããã®ãããããªã¬ãŒå®è¡ã«å¯Ÿå¿ãããããã°ãã°ã¯èªååããã»ã¹ãšã³ãã£ãã£ã«ãã£ãŠäœæãããéçºè ã³ã³ãœãŒã«ã§ã¯äœ¿çšã§ããŸããããã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒãã°ãåéããã«ã¯ã[èšå®] ã§è¿œè·¡ãã©ã°ãšã³ããªãèªååããã»ã¹ãšã³ãã£ãã£ã«è¿œå ããŸãã
- [èšå®] ããã[ã¯ã€ãã¯æ€çŽ¢] ããã¯ã¹ã«ããããã°ãã°ããšå
¥åãã[ãããã°ãã°] ãã¯ãªãã¯ããŸãã
-
[New (æ°èŠ)] ãã¯ãªãã¯ããŸãã
- [远跡察象ãšã³ãã£ãã£çš®å¥] ã§ã[èªååããã»ã¹] ãéžæããŸãã
- åéãããã°ã®éå§æå»ãšæå¹æéãéžæããŸãã
- [ãããã°ã¬ãã«] ã«ã*ããšå
¥åãã[æ€çŽ¢] ãã¯ãªãã¯ããŸãã
- äºåå®çŸ©ããããããã°ã¬ãã« (SFDC_DevConsole ãªã©) ãéžæãããã[New (æ°èŠ)] ãã¯ãªãã¯ããŠç¬èªã®ãããã°ã¬ãã«ãäœæããŸãã
-
[Save (ä¿å)] ãã¯ãªãã¯ããŸãã
ãã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒã«é¢ããçæç¹
ã€ãã³ãåŠçã®é åº
ããªã¬ãŒã¯ããã©ãããã©ãŒã ã€ãã³ãéç¥ãåä¿¡ããé åºã§é 次åŠçããŸããã€ãã³ãã®é åºã¯ãã€ãã³ãã®åå®è¡ ID ã«åºã¥ããŸããApex ããªã¬ãŒã¯ã€ãã³ãã®ããããäžåºŠã«åä¿¡ã§ããŸããã€ãã³ãã®é åºã¯ãåãããå ã«ä¿æãããŸãããããå ã®ã€ãã³ãã®çºä¿¡å ã¯ã1 ã€ä»¥äžã®å ¬éè ã§ããå¯èœæ§ããããŸãã
éåæã®ããªã¬ãŒå®è¡
ãã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒã¯ãç¬èªã®ããã»ã¹å ã§éåæã«å®è¡ãããã€ãã³ããå ¬éãããã©ã³ã¶ã¯ã·ã§ã³ã«ã¯å«ãŸããŸããããã®ãããã€ãã³ããå ¬éãããŠããããªã¬ãŒãã€ãã³ããåŠçãããŸã§ã®éã«é å»¶ãçºçããããšããããŸããããªã¬ãŒã®å®è¡çµæãã€ãã³ãå ¬éã®çŽåŸã«äœ¿çšå¯èœã«ãªããšæ³å®ããªãã§ãã ããã
èªååããã»ã¹ã·ã¹ãã ãŠãŒã¶ãŒ
ãã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒã¯ãããªã¬ãŒãå®è¡ãããŠãŒã¶ãŒ (å®è¡ãŠãŒã¶ãŒ) ã®äžã§ã¯å®è¡ããããèªååããã»ã¹ã·ã¹ãã ãŠãŒã¶ãŒã®äžã§å®è¡ããããããCloudNewsTrigger ã®äŸã§ã¯ãææè
ID é
ç®ãæç€ºçã«èšå®ãããŠããŸãããã®ããªã¬ãŒã®äŸã§ã¯ãRegional Dispatch ãšãããµã³ãã«ãŠãŒã¶ãŒãã¥ãŒã® ID ã䜿çšãããŠããŸããã±ãŒã¹ãåè«ãªã©ãOwnerId é
ç®ãããªã¬ãŒã«ãã Salesforce ã¬ã³ãŒããäœæããå Žåãæç€ºçã«ææè
ID ãèšå®ããŠãã ãããã±ãŒã¹ãšãªãŒãã®å Žåã代ããã«å²ãåœãŠã«ãŒã«ã䜿çšããŠææè
ãèšå®ã§ããŸãã
ãŸããã€ãã³ãããªã¬ãŒã§äœæãŸãã¯æŽæ°ãããã¬ã³ãŒãã®ã·ã¹ãã é
ç® (CreatedById ã LastModifiedById ãªã©) ã¯ãèªååããã»ã¹ãšã³ãã£ãã£ãåç
§ããŸããåæ§ã«ãApex ã® UserInfo.getUserId() ã¹ããŒãã¡ã³ãã¯èªååããã»ã¹ãšã³ãã£ãã£ãè¿ããŸãã
Apex ã¬ããå¶é
æšæºãŸãã¯ã«ã¹ã¿ã ãªããžã§ã¯ãããªã¬ãŒãšåæ§ããã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒã«ã¯ãApex ã¬ããå¶éãé©çšãããŸãã
Apex ããªã¬ãŒã®å¶é
ãã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒã¯ãã«ã¹ã¿ã ããã³æšæºãªããžã§ã¯ãããªã¬ãŒãšåãå¶éã®å€ããå ±æããŸããããšãã°ãããªã¬ãŒãã Apex ã³ãŒã«ã¢ãŠããåæããŠå®è¡ããããšã¯ã§ããŸããã
ããªã¬ãŒããããµã€ãº
ãã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒã®ããããµã€ãºã¯ã€ãã³ãã¡ãã»ãŒãž 2,000 ä»¶ã§ãSalesforce ãªããžã§ã¯ãããªã¬ãŒã®ããããµã€ãºã® 200 ãã倧ãããªã£ãŠããŸããããããµã€ãºã¯ Trigger.New ãªã¹ãã®ãµã€ãºã«å¯Ÿå¿ããŸãããã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒã®ããããµã€ãºã¯å€æŽã§ããŸãã詳现ã¯ãããã©ãããã©ãŒã ã€ãã³ãéçºè
ã¬ã€ããã®ããã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒã®ãŠãŒã¶ãŒãšããããµã€ãºã®èšå®ããåç
§ããŠãã ããã
ã€ãã³ãå®çŸ©ããŒãžã®ç»é²é¢é£ãªã¹ã
[èšå®] ã®ãã©ãããã©ãŒã ã€ãã³ãå®çŸ©è©³çްããŒãžã§ã¯ããã¹ãŠã®ã€ãã³ãããªã¬ãŒã®ç¶æ ã衚瀺ã§ããŸãã[ç»é²] ã®äžã§ãæå¹ãªããªã¬ãŒã®ããããããå®è¡æ å ±ããã³ç¶æ ãšäžç·ã«ãªã¹ããããŸããæ å ±ã«ã¯ãæçµå ¬éã€ãã³ããæçµåŠçã€ãã³ãã®åå®è¡ ID ãå«ãŸããŸããç¶æ ã¯ãããªã¬ãŒãå®è¡äžã§ãããã埩æ§ã§ããªããšã©ãŒãäžååãªæš©éã«ããç»é²ããåæãããŠãããã瀺ããŸããããªã¬ãŒã®æå€§è©Šè¡åæ°ã«éããå Žåã«ã®ã¿ããšã©ãŒç¶æ ã«ãªããŸããæ¬¡ã®ã¹ã¯ãªãŒã³ã·ã§ããã¯ãCloud News ã€ãã³ã詳现ããŒãžã® [ç»é²] é¢é£ãªã¹ãã瀺ããŸãã

ã€ãã³ãã® Apex ããªã¬ãŒã®ç»é²è ã®ç®¡ç
ã·ã¹ãã 管çè ã¯ãäžæåæ¢ããç»é²ã忢ããå Žæ (ã€ãã³ããã¹ã§äœ¿çšå¯èœãªæãå€ãã€ãã³ãã¡ãã»ãŒãž) ããåéã§ããŸãããšã©ãŒã®åå ãšãªã£ãã€ãã³ãã¡ãã»ãŒãžããäžèŠãšãªã£ãã¡ãã»ãŒãžããã€ãã¹ãããå Žåã¯ãç»é²ãææ°ã®ã€ãã³ãã¡ãã»ãŒãžããåéã§ããŸãã
ããªã¬ãŒç»é²ã管çããã«ã¯ã[ç»é²] é¢é£ãªã¹ãã§ãApex ããªã¬ãŒã®æšªã«ãã [管ç] ãã¯ãªãã¯ããŸãã
ç»é²è©³çްããŒãžã§ãé©åãªã¢ã¯ã·ã§ã³ãéžæããŸãã
- å®è¡äžã®ç»é²ãäžæåæ¢ããã«ã¯ã[Suspend (ãµã¹ãã³ã)] ãã¯ãªãã¯ããŸãã
- äžæåæ¢ããç»é²ãã€ãã³ããã¹ã§äœ¿çšå¯èœãªæãå€ãã€ãã³ãã¡ãã»ãŒãžããåéããã«ã¯ã[åé] ãã¯ãªãã¯ããŸãã
- äžæåæ¢ããç»é²ãææ°ã®ã€ãã³ãã¡ãã»ãŒãžããåéããã«ã¯ã[Resume from Tip (ææ°ããåé)] ãã¯ãªãã¯ããŸãã
ãããŒãšããã»ã¹ã®ç»é²ã¯ã[ç»é²] é¢é£ãªã¹ãã§ã¯ç®¡çã§ããŸããã
ãã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒã®ãã¹ã
Apex ãã¹ãã远å ããŠããã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒãé©åã«æ©èœããããšã確èªããŸããApex ã³ãŒã (ããªã¬ãŒãå«ã) ãããã±ãŒãžåãŸãã¯æ¬çªç°å¢ã«ãªãªãŒã¹ããåã«ãApex ã³ãŒãããã¹ãããå¿ èŠããããŸããApex ãã¹ãã§ãã©ãããã©ãŒã ã€ãã³ããå ¬éããã«ã¯ãpublish ã¹ããŒãã¡ã³ãã Test.startTest ããã³ Test.stopTest ã¹ããŒãã¡ã³ãã§å²ã¿ãŸãã
// Create test events Test.startTest(); // Publish events Test.stopTest(); // Perform validation here
ãã¹ãã³ã³ããã¹ãã§ãpublish ã¡ãœããã³ãŒã«ãå ¬éæäœããã¥ãŒã«ç»é²ããŸããTest.stopTest() ã¹ããŒãã¡ã³ãã«ãããã€ãã³ãå ¬éãå®è¡ãããŸããTest.stopTest() ã®åŸã«æ€èšŒãå®è¡ããŸãã
次ã«ãCloud_News ã€ãã³ãã®ãã¹ãã¯ã©ã¹ãšé¢é£ä»ããããããªã¬ãŒã®äŸã瀺ããŸããã€ãã³ããå ¬éãããšãé¢é£ä»ããããããªã¬ãŒãèµ·åããŸããTest.stopTest() ã®åŸããã¹ãã§ã¯ isSuccess() ã«ãã£ãŠè¿ããã Database.SaveResult ã®å€ã調ã¹ãŠå ¬éãæåããããšã確èªããŸãããã¹ãã§ã¯ãŸããããªã¬ãŒãäœæããã±ãŒã¹ãç §äŒããŸããã±ãŒã¹ã¬ã³ãŒããèŠã€ãã£ãå Žåããã®ããªã¬ãŒã¯æ£åžžã«å®è¡ããããã¹ãã¯åæ Œã§ãã
@isTest
public class PlatformEventTest {
@isTest static void test1() {
// Create test event instance
Cloud_News__e newsEvent = new Cloud_News__e(
Location__c='Mountain City',
Urgent__c=true,
News_Content__c='Test message.');
Test.startTest();
// Call method to publish events
Database.SaveResult sr = EventBus.publish(newsEvent);
Test.stopTest();
// Perform validation here
// Verify that the publish was successful
System.assertEquals(true, sr.isSuccess());
// Check that the case that the trigger created is present.
List<Case> cases = [SELECT Id FROM Case];
// Validate that this case was found.
// There is only one test case in test context.
System.assertEquals(1, cases.size());
}
}Lightning ã³ã³ããŒãã³ãã䜿çšãããã©ãããã©ãŒã ã€ãã³ãéç¥ã®ç»é²
Lightning ã¢ããªã±ãŒã·ã§ã³ã¯ãempApi Lightning Web ãŸã㯠Aura ã³ã³ããŒãã³ãã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã®ã€ãã³ãã«ç»é²ã§ããŸãã
Lightning Web ã³ã³ããŒãã³ãã§ã®ç»é²
Lightning Web ã³ã³ããŒãã³ãã® empApi ã¡ãœããã䜿çšããã«ã¯ã次ã«ç€ºãããã« lightning/empApi ã¢ãžã¥ãŒã«ãããã®ã¡ãœãããã€ã³ããŒãããŸãã
import { subscribe, unsubscribe, onError, setDebugFlag, isEmpEnabled }
from 'lightning/empApi';次ã«ãã€ã³ããŒãããã¡ãœããã JavaScript ã³ãŒãã§ã³ãŒã«ããŸãã
lightning/empApi ã¢ãžã¥ãŒã«ã®äœ¿çšäŸãšè©³çްãªãªãã¡ã¬ã³ã¹ã«ã€ããŠã¯ãLightning ã³ã³ããŒãã³ãã©ã€ãã©ãªã® lightning-emp-api ã«é¢ããããã¥ã¡ã³ããåç
§ããŠãã ããã
Aura ã³ã³ããŒãã³ãã§ã®ç»é²
Aura ã³ã³ããŒãã³ãã§ empApi ã¡ãœããã䜿çšããã«ã¯ãã«ã¹ã¿ã ã³ã³ããŒãã³ãå
ã« lightning:empApi ã³ã³ããŒãã³ãã远å ããŠãaura:id 屿§ãå²ãåœãŠãŸãã
<lightning:empApi aura:id="empApi"/>
次ã«ãã¯ã©ã€ã¢ã³ãåŽã³ã³ãããŒã©ãŒã§ãã³ã³ããŒãã³ãã¡ãœãããã³ãŒã«ãã颿°ã远å ããŸãã
lightning:empApi ã³ã³ããŒãã³ãã®äœ¿çšäŸãšè©³çްãªãªãã¡ã¬ã³ã¹ã«ã€ããŠã¯ãLightning ã³ã³ããŒãã³ãã©ã€ãã©ãªã® lightning:empApi ã«é¢ããããã¥ã¡ã³ããåç
§ããŠãã ããã
ã¯ãªãã¯ã䜿çšãããã©ãããã©ãŒã ã€ãã³ãéç¥ã®ç»é²
ãã©ãããã©ãŒã ã€ãã³ãã¡ãã»ãŒãžãåä¿¡ãããšãã«ãããŒãããªã¬ãŒããã«ã¯ããã©ãããã©ãŒã ã€ãã³ãããªã¬ãŒãããŒãäœæããŸããéå§èŠçŽ ã§ããããŒã®å®è¡ãããªã¬ãŒããã€ãã³ãã¡ãã»ãŒãžã䜿çšãããã©ãããã©ãŒã ã€ãã³ããéžæããŸãã

ãããŒãäœæãããšãã«ã¯ã$Record ã°ããŒãã«å€æ°ãåç
§ããããšã§ãã©ãããã©ãŒã ã€ãã³ãã¡ãã»ãŒãžã®é
ç®å€ã䜿çšã§ããŸãã
ãŸãã¯ãäžæåæ¢èŠçŽ ã䜿çšããŠããããŒã§ãã©ãããã©ãŒã ã€ãã³ãã«ç»é²ã§ããŸãããã®å Žåããã©ãããã©ãŒã ã€ãã³ãã¡ãã»ãŒãžã®åä¿¡æã«ãããŒãéå§ãã代ããã«ããã®ã€ãã³ãã¡ãã»ãŒãžã«ãã£ãŠäžæåæ¢äžã®ãããŒã€ã³ã¿ãã¥ãŒãåéããŸããããšãã°ãSalesforce ã Cloud News ã€ãã³ãã¡ãã»ãŒãžãåä¿¡ãããŸã§äžæåæ¢ããäžæåæ¢èŠçŽ ãæ¬¡ã«ç€ºããŸããã€ãã³ãã®å Žæã {!contact.MailingCity} ãšäžèŽããå Žåã«ã®ã¿åéãããŸãã{!contact} ã¬ã³ãŒã倿°ã«ã¯ãååŒå
責任è
ã¬ã³ãŒãã®å€ãä¿åãããŸãã

Pub/Sub API ã䜿çšãããã©ãããã©ãŒã ã€ãã³ãéç¥ãžã®ç»é²
Pub/Sub API ã§ã¯ 1 ã€ã®ã€ã³ã¿ãŒãã§ãŒã¹ã§ãã©ãããã©ãŒã ã€ãã³ãã®å ¬éãšãã©ãããã©ãŒã ã€ãã³ããžã®ç»é²ãå®è¡ã§ããŸããPub/Sub API 㯠gRPC API ãš HTTP/2 ã«åºã¥ããŠãã€ããªã€ãã³ãã¡ãã»ãŒãžã Apache Avro 圢åŒã§å¹ççã«å ¬éãé ä¿¡ããŸããgRPC ã¯ãªãŒãã³ãœãŒã¹ã®ãªã¢ãŒãããã·ãŒãžã£ãŒã³ãŒã« (RPC) ãã¬ãŒã ã¯ãŒã¯ã§ãgRPC ã䜿çšããããšã§ããã€ã¹ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ããã©ãŠã¶ãŒãããã¯ãšã³ããµãŒãã¹ã«æ¥ç¶ã§ããŸãã詳现ã¯ãgRPC ã®ããã¥ã¡ã³ããåç §ããŠãã ãããApache Avro ã¯ããŒã¿é次åã·ã¹ãã ã§ãã詳现㯠Apache Avro ãåç §ããŠãã ããã
Pub/Sub API ã¯ãã«ãµãã¹ã¯ãªãã·ã§ã³ã¢ãã«ã䜿çšããŠãããã¯ã©ã€ã¢ã³ããåŠç容éã«åºã¥ããŠãµãŒããŒããããã€ãã®ã€ãã³ããèŠæ±ããŸããããã·ã¥ããŒã¹ã®ãµãã¹ã¯ãªãã·ã§ã³ã§ã¯ã¯ã©ã€ã¢ã³ãããµãŒããŒããããã·ã¥ãããæ°ããã€ãã³ãã®åä¿¡ãåŸ ã¡ãŸããããã«ãµãã¹ã¯ãªãã·ã§ã³ã§ã¯ã¯ã©ã€ã¢ã³ããç©æ¥µçã«ãµãŒããŒããã®ã€ãã³ããèŠæ±ããŸãããã®ã€ãã³ããããŒã³ã³ãããŒã«ã§ã¯ãã€ãã³ãã®å ¬éãæ¥å¢ããå Žåã«ã¯ã©ã€ã¢ã³ããåŠçã§ããªãã»ã©ã®ã€ãã³ããåä¿¡ããããšããããŸããã
Pub/Sub API ã«ã¯æ¬¡ã®ãããªå©ç¹ããããŸãã
- 1 ã€ã® API ã§ã€ãã³ãã®å
¬éãç»é²ãã€ãã³ãã¹ããŒãã®ååŸãå®è¡ã§ããã
- å
¬éæäœã«ãã£ãŠãäžéã®ãã¥ãŒãžã®è¿œå ã®çµæã§ã¯ãªããæçµçãªå
¬éã®çµæãåŸãããã
- ãããŒã³ã³ãããŒã«ã§ãã¯ã©ã€ã¢ã³ãã®ã€ãã³ãåŠçé床ã«åºã¥ã㊠subscribe ã³ãŒã«ã§ããã€ã®ã€ãã³ããåä¿¡ããããæå®ã§ããã
- HTTP/2 ã«ããå§çž®ã䜿çšãããªã¢ã«ã¿ã€ã ã§é«ããã©ãŒãã³ã¹ãªããŒã¿ã¹ããªãŒãã³ã°ãå®çŸã§ããã
- ã¯ã©ã€ã¢ã³ãã§ã¯ gRPC API ã§æäŸããã 11 çš®é¡ã®ããã°ã©ãã³ã°èšèª (PythonãJavaãNodeãC++ ãªã©) ããµããŒããããããµããŒãããããã¹ãŠã®èšèªã«ã€ããŠã¯ https://grpc.io/docs/languages/ ãåç
§ããŠãã ããã
Pub/Sub API ã¯ã©ã€ã¢ã³ãã¯åä¿¡ããã€ãã³ãããã¹ããŒããåå®è¡ IDããã€ããŒããå¥ã ã«ååŸãããã€ããŒãããã³ãŒãã§ããŸããããšãã°ãåä¿¡ãã Cloud News ã€ãã³ãã®ãã€ããŒãã¯æ¬¡ã®ã¡ãã»ãŒãžã®ããã«ãªããŸãã
{
"CreatedDate": 1652978695951,
"CreatedById": "005SM000000146PYAQ",
"Location__c": "San Francisco",
"Urgent__c": true,
"Ink_Percentage__c": "Large highway is closed due to asteroid collision."
}詳现㯠Pub/Sub API ã®ããã¥ã¡ã³ããåç §ããŠãã ããã
Salesforce Platform ãšå€éšã¢ããªã±ãŒã·ã§ã³ã§ã®ãã©ãããã©ãŒã ã€ãã³ãã®äœ¿ç𿹿³ã確èªããŸãããå¯èœæ§ã¯ç¡éã§ã! ãã©ãããã©ãŒã ã€ãã³ãã¯ãããžãã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®åŠçãäºé²çãªã«ã¹ã¿ããŒãµãŒãã¹ã®åãçµã¿ãªã©ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ãã€ã³ãã°ã¬ãŒã·ã§ã³ã§äœ¿çšã§ããŸãããã©ãããã©ãŒã ã€ãã³ãã§ã¯ãã€ãã³ãããŒã¹ã®ããã°ã©ãã³ã°ã¢ãã«ãæ¡çšããŠãã€ãã³ãããŒã¹ã®ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®å©ç¹ãå®çŸã§ããŸãã
ãªãœãŒã¹
-
Pub/Sub API ããã¥ã¡ã³ã: Java Quick Start for Pub/Sub API (Pub/Sub API ã® Java ã¯ã€ãã¯ã¹ã¿ãŒã)
-
ãã©ãããã©ãŒã ã€ãã³ãéçºè
ã¬ã€ã: ãã©ãããã©ãŒã ã€ãã³ãã®å²ãåœãŠ
-
ãã©ãããã©ãŒã ã€ãã³ãéçºè
ã¬ã€ã: EventBus.RetryableException ã«ããã€ãã³ãããªã¬ãŒã®å詊è¡
-
Trailhead: ã€ã³ã¹ã¿ã³ãéç¥ã¢ããªã±ãŒã·ã§ã³ã®äœæ
-
Salesforce ãã«ã: å²ãåœãŠã«ãŒã«
