У меня есть AfterSubmit UserEventScript (случай поддержки), который правильно делает следующее:
Сохраняет нового клиента в базе данных
newCustomer.commitLine({
sublistId: 'addressbook'
});
newCustomer.save({
enableSourcing: true,
ignoreMandatoryFields: false
});
На мой вопрос, каковы следующие шаги по замене старого Клиента этим вновь созданным Клиентом в случае обращения в службу поддержки? Я пробовал следующий код, но он регистрирует «неопределенное» значение.
recordSubmitted.setValue({
fieldId: "companyid",
value: newCustomer.companyId
});
Внутренний идентификатор новой записи клиента возвращается из функции сохранения. Поле, которое вы хотите назначить, имеет идентификатор сценария «компания». Так:
var custId = newCustomer.save({
enableSourcing: true,
ignoreMandatoryFields: false
});
recordSubmitted.setValue({
fieldId: 'company',
value: custId
});
Как правило, если вы выбираете другого клиента для назначения обращения, вам следует подумать, существует ли уже другой клиент, поэтому вы могли загрузить другого клиента или найти его с помощью поиска.
от нагрузки и проверьте:
recordSubmitted.setValue({
fieldId: 'company',
value: differentCustomer.getValue({fieldId:'internalid'})
});
из поиска вы можете получить идентификатор напрямую:
var custId = null;
mySearch.run().each(function(res){
if (test(res)){
custId = res.id;
return false;
}
return true;
});
if (custId) recordSubmitted.setValue({
fieldId: 'company',
value: custId
});
Спасибо за быстрый ответ. В журнале теперь отображается внутренний идентификатор (custId) вновь созданного клиента; тем не менее, recordSubmitted.setValue НЕ обновляет обращение в службу поддержки с новой компанией/клиентом.
Вам нужно будет обновить дело в пользовательском событии перед отправкой ИЛИ загрузить запись дела; обновите его и сохраните снова. (или сделайте это через submitfields)
Спасибо еще раз! Переключился на точку входа beforeSubmit, и теперь все работает отлично.
@erictgrubaugh Мы будем очень признательны за любую помощь.