问题描述
我可以得到这样的案例:
function getCase() {
var access_token = authenticateSF();
var baase = 'https://company.salesforce.com/services/data/v50.0/';
var caseNum = '12345';
var url = base + "query?q=SELECT+CaseNumber,Document_No__c+from+Case+WHERE+CaseNumber='" + caseNum + "'";
var myBody = ''; // {"Document_No__c":"x"};
var headers = {
"Authorization": 'Bearer ' + access_token,"Accept": "application/json"
};
var params = {
'method': 'GET','muteHttpExceptions': true,'headers': headers,'contentType': 'application/json','payload': myBody
};
var res = UrlFetchApp.fetch(url,params);
var myObj = JSON.parse(res.getContentText());
Logger.log(myObj)
}
返回
{records=[{attributes={url=/services/data/v50.0/sobjects/Case/12345,type=Case},CaseNumber=12345,Document_No__c=null}],done=true,totalSize=1.0}
我想将 Document_No__c
更新为 myString
function getCase() {
var access_token = authenticateSF();
var baase = 'https://company.salesforce.com/services/data/v50.0/';
var caseNum = '12345';
var url = base + "query?q=SELECT+CaseNumber,Document_No__c+from+Case+WHERE+CaseNumber='" + caseNum + "'";
var myString = 'myString'
var myBody = {"Document_No__c":myString};
var headers = {
"Authorization": 'Bearer ' + access_token,"Accept": "application/json"
};
var params = {
'method': 'PATCH',params);
var myObj = JSON.parse(res.getContentText());
Logger.log(myObj)
}
但是这是返回错误:
405
Message: HTTP Method 'PATCH' not allowed. Allowed are HEAD,GET
Error: METHOD_NOT_ALLOWED
解决方法
我需要指向正确的端点,并使用@Tanaike 对有效负载的更改。完成的代码示例为:
function getCase() {
var access_token = authenticateSF();
var baase = 'https://company.salesforce.com/services/data/v50.0/';
var caseNum = '12345';
var url = base + 'sobjects/Case/CaseNumber/' + caseNum;
var myString = 'myString'
var myBody = {"Document_No__c":myString};
var headers = {
"Authorization": 'Bearer ' + access_token,"Accept": "application/json"
};
var params = {
'method': 'PATCH','muteHttpExceptions': true,'headers': headers,'contentType': 'application/json','payload': JSON.stringify(myBody)
};
var res = UrlFetchApp.fetch(url,params);
var myObj = JSON.parse(res.getContentText());
Logger.log(myObj)
}
回复证实了这一点:
200
{success=true,errors=[],created=false,id=id_num}