Используя Mule Anypoint Studio, вы можете использовать элемент Salesforce Connector и элемент потока Salesforce, который получит контактную информацию от Salesforce. Коннектор Salesforce в Mule использует интерфейс SOAP из Salesforce.
Внутри вашего Mule потока вы можете просто использовать
<sfdc:query config-ref="SalesforceConfig" query="dsql:SELECT * FROM Contact" doc:name="Salesforce"/>
выше код вернет вам объект потокового. Одна из лучших вещей, которые нужно сделать в этот момент, - это реализовать трансформатор Java после этого, чтобы впитать результаты и превратить их в то, что вы хотите.
<custom-transformer class="org.stackoverflow.transformers.QueryResultsToWhatever" doc:name="Java"/>
класс затем будет написано в Java:
public class QueryResultsToWhatever extends AbstractMessageTransformer {
public Object transformMessage(MuleMessage message, String outputEncoding)
throws TransformerException {
// get the Streaming list of maps that is the payload
org.mule.streaming.ConsumerIterator<Map<Object, Object>> CI = message
.getPayload(org.mule.streaming.ConsumerIterator.class);
if (CI.hasNext()) {
Object _obj = CI.next();
//Each Iterator represents a row returned from the query
if (_obj instanceof Map) {
Map<Object, Object> sfmap = (Map<Object, Object>) _obj;
// cast it
// Now you have a Map to access each field inside each row
Поскольку это довольно простой случай использования для соединителя Salesforce, учебники доступны на https://developer.mulesoft.com/docs/display/current/Salesforce+Connector может сильно помочь.