微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Google App Script 更新 Salesforce 字段

如何解决使用 Google App Script 更新 Salesforce 字段

我可以得到这样的案例:

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

我希望能够将其更改为 patch 并像这样添加负载

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}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。