希望有人可以帮助我解决这个问题。如果收到客户互动(电子邮件),我正试图触发案例状态更改。
以下是迄今为止编写的代码:
function afterSubmit(type)
{
//load the case record
var caseRecord = nlapiLoadRecord('supportcase', nlapiGetRecordId());
//Get the Case Status of the assoicated Case
var caseStatus = caseRecord.getFieldValue('status');
//Get the Message value
var incomming = caseRecord.getFieldValue('incomingmessage');
//Check current Status is none of Completed or Closed
if(caseStatus != '4' && caseStatus != '5')
{
// If there is any activity
if(incomming != '')
{
// Load the message record
var message = nlapiGetNewRecord();
// Get the ID of the activity associated with the message
var activity = message.getFieldValue('activity');
if (activity)
{
// If the activity is a case, load the record and change the status.
try
{
var caseRecord = nlapiLoadRecord('supportcase', activity);
caseRecord.setFieldValue('status',20);
nlapiSubmitRecord(caseRecord);
}
// If the activity is not a Case, log a warning message
catch(exec)
{
nlapiLogExecution('DEBUG', 'Warning','Activity Record is not a Case');
}
}
else
{
return false;
}
}
else
{
return false;
}
}
}
注意:案例状态4 =已完成案例状态5 =已结案例状态20 =已收到客户答复 发生了什么事?一旦我保存案例,我就会向客户生成一封邮件,即案例记录的电子邮件。案件状态更新为“收到客户回复”
答案 0 :(得分:1)
首先,我可以指出
if(caseStatus != '4' || caseStatus != '5')
始终是 true
。您正在测试caseStatus是否等于4 OR NOT等于5.因此,如果 等于4,那么它将是不等于5,因此是真的,反之亦然。所以我认为你要做的是:
if(caseStatus != '4' && caseStatus != '5')
或:
if(!(caseStatus == '4' || caseStatus == '5'))
在这样的情况下,看起来你正在加载案例并检查任何活动并根据它来改变状态。当您向客户发送电子邮件时,您正在创建活动,因此始终会有活动,因此状态将始终更新为“' 20'但是,似乎缺少一些代码,因为在脚本开始时,您将message
和caseRecord
设置为相同的内容,因此我可能会误读您正在做的事情。