更新Salesforce案例信息

时间:2014-01-29 12:38:31

标签: javascript salesforce

我创建了一个按钮来升级案例。我正在尝试更改记录类型,“所有者”并将“已升级的案例”附加到“备注”字段。

代码:

{!REQUIRESCRIPT("/soap/ajax/27.0/connection.js")}

var objCase = new sforce.SObject('Case');
objCase.Id = '{!Case.Id}';
objCase.Owner__c = 'Global Salesforce Team';
objCase.RecordTypeId = '012C00000007l5WIAQ';
objCase.Notes__c += 'Case Escalated';

var result = sforce.connection.update([objCase]);
if(result[0].success=='true'){
    alert('The Case was Updated Successfully');
    location.reload(true);
} else if(result[0].success=='true'){
    alert('There was an issue updating the case');
}

然而,这会擦除“Notes”字段并添加“undefinedCase Escalated”,而不是将字符串“Case Escalated”附加到其中的任何内容的末尾。

我是javascript的新手,请保持友善:)

1 个答案:

答案 0 :(得分:1)

我看到代码和问题似乎是你正在创建一个要更新的Case的新实例,所以Notes字段上没有任何内容,一旦你插入记录就覆盖了那里唯一的文本,' Case Escalated',要使其工作,您必须执行查询以查找字段之前的值,然后将值附加到notes__c字段。

{!REQUIRESCRIPT("/soap/ajax/27.0/connection.js")}

var result = sforce.connection.query("select Id, Owner__c, RecordTypeId, Notes__c from      Case WHERE Id='{!Case.Id}' LIMIT 1");
var records = result.getArray('records');

var objCase = records[0];
objCase.Owner__c = 'Global Salesforce Team';
objCase.RecordTypeId = '012C00000007l5WIAQ';
objCase.Notes__c += 'Case Escalated';

var result = sforce.connection.update([objCase]);
if(result[0].success=='true'){
    alert('The Case was Updated Successfully');
location.reload(true);
} else if(result[0].success=='true'){
    alert('There was an issue updating the case');
}

带有示例的开发者指南链接位于http://www.salesforce.com/us/developer/docs/ajax/apex_ajax.pdf

没有对它进行测试,并且在我的代码中有一些错误处理,但它应该可以工作。