2011-07-29 5 views
2

Я пытаюсь выполнить интеграцию с Salesforce, используя их REST API и CF8. Я получил бит OAuth, получая данные и т. Д., Но теперь я пытаюсь обновить некоторые записи в таблице контактов.CF8 и Salesforce REST API - обновление записей

Сначала я учил о делать это «правильный» способ, как их docs say -

обновления записи с помощью HTTP PATCH.

Но CFHTTP не поддерживает метод PATCH.

Затем я попытался запустить SOQL запрос:

UPDATE Contact SET MailingStreet = 'Blah Blah' WHERE Id = '003A000000Zp4ObIAJ' 

, но здесь я получаю

{ "сообщение": "неожиданный маркер: UPDATE", "ERRORCODE": "MALFORMED_QUERY "}

У кого-нибудь есть идея, как это сделать?

ответ

9

Вы можете создать свой собственный метод PATCH, если ваш клиент поддерживает его, но есть более простой способ. Из Force.com REST API Developer's Guide:

Если вы используете библиотеку HTTP, которая не позволяет переопределение или установив произвольное имя метода HTTP, вы можете отправить запрос POST и обеспечить переопределение метода HTTP через строку запроса параметр _HttpMethod. В примере PATCH, вы можете заменить строку PostMethod с одним, который не использует переопределение:

PostMethod m = new PostMethod(url + "?_HttpMethod=PATCH"); 
2

В CF9 CFScript, используя метод, который Paddyslacker уже предложенный для добавления _HttpMethod = ЗАПЛАТУ к URL-адресу:

private boolean function patchObject(required string sfid, required string type, required struct obj) { 
    local.url = variables.salesforceInstance & '/services/data/v' & variables.apiVersion &'/sobjects/' & arguments.type & '/' & arguments.sfid &'?_HttpMethod=PATCH'; 
    local.http = new Http(url=local.url,method='post'); 
    //... convert obj to a json string, add to local.http ... 
    local.httpSendResult = local.http.send().getPrefix(); 
} 

у нас есть CF9 CFC, что мы написали, что оборачивает большинство REST API, который мы будем открыты в ближайшее время источников. Я вернусь и свяжусь с ней, когда мы это сделаем.

+0

Привет, Дэн, вы когда-нибудь открывали источник вашего ХФУ? –

+1

Не все, но у нас есть сводная версия в Gist: https://gist.github.com/danwatt/1827874 –

+0

Очень круто, спасибо за это. –

Смежные вопросы