CF8 и Salesforce REST API - обновление записей - PullRequest
2 голосов
/ 29 июля 2011

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

Сначала я подумал о том, чтобы сделать это "правильным" способом, как их документы говорят * 1004.* -

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

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

Итак, я попытался выполнить запрос SOQL:

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

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

{"message": "неожиданный токен: ОБНОВЛЕНИЕ", "errorCode": "MALFORMED_QUERY"}

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

Ответы [ 2 ]

9 голосов
/ 29 июля 2011

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

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

PostMethod m = new PostMethod(url + "?_HttpMethod=PATCH");
2 голосов
/ 02 августа 2011

В CF9 CFScript, используя метод, который Paddyslacker уже предложил для добавления _HttpMethod = PATCH к 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();
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...