Я хочу выполнить SOQL с помощью компонента Salesforce: запроса API Camel Salesforce для получения контактов (контактов) SObject с использованием AccountId.Но он только возвращает контакт DTO, все поля которого являются нулевыми.И я отладил исходный код компонента Camel Salesforce и обнаружил, что он получил Ответ с кодом 200.
Кстати, кто-нибудь знает, как реализовать динамический SOQL, я обнаружил, что не могу использовать $ {body} вскажем, "sObjectQuery = SELECT LastName FROM Contact WHERE AccountID = '$ {body}'"
- Это простой проект maven
- DTO: Contact, Account был созданby camel-salesforce-maven-plugin
- Другой компонент Camel Salesforce REST API: salesforce: upsertSObject, salesforce: getSObjectWithId, salesforce: deleteSObjectWithId и salesforce: createSObject можно запустить и вернуть правильные результаты
Маршрут:
from("direct:query")
.to("salesforce:query?sObjectQuery=SELECT LastName FROM Contact&sObjectClass="+ Contact.class.getName())
.process(exchange -> {
Object body = exchange.getIn().getBody();
System.out.println(body.getClass());
System.out.println(body);
});
ProducerTemplate template = camelCtx.createProducerTemplate();
Object obj = template.requestBody("direct:query", null, Object.class);
Фактический результат: class com.salesforce.test.Contact {"Reporting_States__c": null, "Specialty__c": null}
Ожидаемый результат: вернуть объект QueryRecordsContact, который содержит поля списка контактов.(QueryRecordsContact - это DTO, созданный плагином Camel Salesforce maven)