首页 > 解决方案 > 更新 Salesforce 案例对象中的 http 响应正文

问题描述

我正在尝试将 http 响应正文“键”值更新回 Salesforce 中的案例对象。

回复:

{
    "id": "21361",
    "key": "CPT-127",
    "self": "https://demandblue.atlassian.net/rest/api/2/issue/21378"
}

代码:

public static void createCase(String id,String Description,String Subject, String CaseNumber) {
          Http http = new Http();
        HttpRequest request = new HttpRequest();
       request.setEndpoint('https://TrainingAPAC.jitterbit.cc/v1.1/caseSyncInsert?id='+id+'&Jid='+Subject+'&desc='+Description+'&caseNumber='+CaseNumber);
       request.setMethod('POST');
       request.setHeader('Content-Type', 'application/json;charset=UTF-8'); 
         HttpResponse response = http.send(request); 
        System.debug(response.getStatusCode());
        System.debug(response.getBody());
        **String key = response.getBody();**
        
 
  }

我如何从对 Salesforce 中的案例对象的响应中更新回键值。

标签: httptriggerssalesforcecaseresponse

解决方案


id是 Salesforce 案例记录 ID?开头的东西500...?(这样称呼你的变量是一个非常糟糕的主意。Id是一种类型。你在自找麻烦,你所做的就是这样Account integer = null; // happy debugging suckers)。调用变量caseId或其他东西...

如果标注正常并返回,您可以使用它将其保存回案例:

if(response.getStatusCode() == 200){
    Case c = new Case(
        Id = caseId,
        Description = response.getBody()
    );
    update c;
}

这不是很好(将用 JSON 覆盖您的描述),但应该可以帮助您入门。您需要反序列化此JSON。大概是这样的

Map<String, Object> m = (Map<String, Object>) JSON.deserializeUntyped(response.getBody());
c.Key__c = m.get('key');

推荐阅读