#docusignapi #docusignapextoolkit
#docusignapi #docusignapextoolkit docusignapextoolkit
Вопрос:
Можно ли создать триггер для объекта ‘dsfs__DocuSign_Recipient_Status__c’? Пример использования: контракт передается двум людям: а) Клиенту; б) менеджеру по продажам. Такие события, как этап обновления возможностей и т. Д., Должны Начаться, как только клиент подпишет, даже если конверт не заполнен. Я знаю, что мы можем запускать события «Доставлено», «Отправлено» и т.д. В объекте статуса DocuSign, но переменные уровня получателя (статус получателя, порядок маршрутизации и т.д.) доступны только в объекте статуса получателя.
Сначала я попробовал выполнить два условия (статус получателя и порядок маршрутизации), затем попробовал простое условие для тестирования только со статусом получателя. Триггер публикуется, но не изменяет этап opp, как предполагалось — код ниже
trigger ClientSign on dsfs__DocuSign_Recipient_Status__c (after insert, after update) {
try
{
system.debug('In trigger');
dsfs__DocuSign_Recipient_Status__c dssNew = Trigger.new[0];
dsfs__DocuSign_Recipient_Status__c dssOld = null;
if (!System.Trigger.isInsert) dssOld = Trigger.old[0];
if (System.Trigger.isInsert || dssOld.dsfs__Recipient_Status__c != dssNew.dsfs__Recipient_Status__c)
{
if (dssNew.dsfs__DocuSign_Routing_Order__c == 1 amp;amp; dssNew.dsfs__Recipient_Status__c == 'Completed')
{
Opportunity o = [select StageName from Opportunity where id=:dssNew.Opportunity__c];
if (o != null)
{
o.StageName = 'Value Proposition';
upsert o;
}
}
}
}
catch (Exception ex)
{}
}
Ответ №1:
Да, триггеры работают с объектом dsfs__DocuSign_Recipient_Status__c. Я думаю, что ваша проблема связана с возможностью __c . Это не поле по умолчанию для объекта dsfs__DocuSign_Recipient_Status__c, поэтому там должно быть что-то не так. Я протестировал приведенный ниже код на основе вашего триггера с жестко запрограммированной возможностью. Результат Я обновил имя этапа с «Анализ потребностей» на «Ценностное предложение».
trigger ClientSign on dsfs__DocuSign_Recipient_Status__c (after insert, after update)
{
try
{
system.debug('In trigger');
dsfs__DocuSign_Recipient_Status__c dssNew = Trigger.new[0];
dsfs__DocuSign_Recipient_Status__c dssOld = null;
if (!System.Trigger.isInsert) dssOld = Trigger.old[0];
if (System.Trigger.isInsert || dssOld.dsfs__Recipient_Status__c != dssNew.dsfs__Recipient_Status__c)
{
if (dssNew.dsfs__DocuSign_Routing_Order__c == 1 amp;amp; dssNew.dsfs__Recipient_Status__c == 'Completed')
{
Id myId = Id.valueOf('006f4000004IfWQAA0');
Opportunity o = [SELECT Name, StageName FROM Opportunity WHERE id = :myId Limit 1];
system.debug(o.Name);
system.debug(o.StageName);
o.StageName = 'Value Proposition';
upsert o;
}
}
}
catch (Exception ex)
{}
}