我正在使用 DocuSign For Salesforce 应用程序。作为工作流程的一部分,我们在满足某些条件时创建信封,但如果不再满足条件,我需要能够通过 Apex 触发器使信封无效。
DocuSign 应用程序的文档详细介绍了如何创建信封,但没有提及通过 Apex 作废信封。
我知道可以在 Salesforce 之外使用 API,但如果可能的话,我希望将整个流程保留在 Salesforce 中。
这是一个简单的客户端,您可以使用它来从 apex 中删除信封。
public with sharing class DocusignClient {
private static final String USERNAME = Label.docusign_username;
private static final String PASSWORD = Label.docusign_password;
private static final String INTEGRATOR_KEY = label.docusign_integratorKey;
private static final String ACCOUNT_ID = label.docusign_accountId;
// for production use 'www.docusign.net/restapi/v2'
// for sandbox use 'https://demo.docusign.net/restapi/v2'
private static final String BASE_URL = label.docusign_baseurl;
private static final String AUTH_TEMPLATE = '<DocuSignCredentials><Username>{0}</Username><Password>{1}</Password><IntegratorKey>{2}</IntegratorKey></DocuSignCredentials>';
private static final String STATUS_VOID = 'voided';
public HttpResponse voidEnvelope(String envelopeId, String voidReason){
String endpoint = String.format('{0}/accounts/{1}/envelopes/{2}', new String[]{BASE_URL, ACCOUNT_ID, envelopeId});
DocusignStatusRequest statusUpdate = new DocusignStatusRequest();
statusUpdate.status = STATUS_VOID;
statusUpdate.voidedReason = voidReason;
// initialize the api client for the desired environment
Http h = new Http();
HttpRequest request = new HttpRequest();
request.setEndpoint(endpoint);
request.setMethod('PUT');
request.setHeader('X-DocuSign-Authentication', String.format(AUTH_TEMPLATE, new String[]{USER_NAME,PASS_WORD,INTEGRATOR_KEY}));
request.setBody(JSON.serialize(statusUpdate));
return h.send(request);
}
public class DocusignStatusRequest{
public String status {get; set;}
public String voidedReason {get; set;}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)