286.4.4. 플랫폼 이벤트
플랫폼 이벤트를 내보내려면 createSObject
작업을 사용합니다. 이 경우 sObjectName
은 이벤트의 API 이름 또는 AbstractDTOBase에서 확장하는 클래스 또는 이벤트에 대한 적절한 클래스 이름을 사용하여 메시지 본문을 JSON 문자열 또는 InputStream으로 설정할 수 있습니다.
예를 들어 DTO를 사용합니다.
class Order_Event__e extends AbstractDTOBase { @JsonProperty("OrderNumber") private String orderNumber; // ... other properties and getters/setters } from("timer:tick") .process(exchange -> { final Message in = exchange.getIn(); String orderNumber = "ORD" + String.valueOf(in.getHeader(Exchange.TIMER_COUNTER)); Order_Event__e event = new Order_Event__e(); event.setOrderNumber(orderNumber); in.setBody(event); }) .to("salesforce:createSObject");
또는 JSON 이벤트 데이터 사용:
from("timer:tick") .process(exchange -> { final Message in = exchange.getIn(); String orderNumber = "ORD" + String.valueOf(in.getHeader(Exchange.TIMER_COUNTER)); in.setBody("{\"OrderNumber\":\"" + orderNumber + "\"}"); }) .to("salesforce:createSObject?sObjectName=Order_Event__e");
플랫폼 이벤트를 수신하려면 이벤트/(또는 / event/
) 접두사가 붙은 플랫폼 이벤트의 API 이름이 있는 소비자 끝점을 사용합니다(예: salesforce:events/Order_Event_e
). 해당 끝점에서 사용하는 프로세서는 각각
false
또는 true
인 rawPayload
에 따라 org.apache.camel.component.salesforce.api.dto.PlatformEvent
개체 또는 org.cometd.bayeux.Message
를 각각 수신하게 됩니다.
예를 들어, 하나의 이벤트를 사용하기 위한 가장 간단한 양식:
PlatformEvent event = consumer.receiveBody("salesforce:event/Order_Event__e", PlatformEvent.class);