Loading
E-signatur-API'er

E-signatur-API'er

Du kan bruge e-signatur-API'er uafhængigt for at kalde Salesforce Contracts uden at bruge brugergrænsefladen. Disse API'er kan tilpasses meget. Du kan sende et eller flere genererede dokumenter til e-signatur. Dine genererede dokumenter kan knyttes til enten standardobjekter eller tilpassede objekter.

Hvis du vil vide mere om de krævede tilladelser, henvises du til Tilladelsessæt for DocuSign.

Hvis du vil vide mere om Apex-styringsbegrænsninger, kan du se Kørselsstyringer og begrænsninger.

Hvis du ønsker oplysninger om e-signature-API'er, kan du se E-signature-ressourcer.

Metode Beskrivelse
getRecipients

Brug denne metode til at få vist en liste over dokumentmodtagere.

Hvis du vil tilføje en tilpasset logik via en tilpasset klasse:

  • Opret en global Apex, der implementerer ind_docgen_api.OpenInterface.

  • Tilføj din logik i invokeMethod()-metoden.

  • Føj klassen til din organisation.

  • Kald API ved brug af customClass-parameteren i URL'en. Eksempel:

    /connect/e-sign/recipients?sourceObjectId=<sourceObjectId>&recipientSelector=<recipientCustomClassName>

Hvis du vil tilpasse, hvordan modtagere returneres, skal du implementere ind_docgen_api.OpenInterface-grænsefladen i en global Apex. Her er der en eksempelimplementering, der henter alle kontakter med hilsenen "Mr."

public class GetEsignRecipients implements ind_docgen_api.OpenInterface {

    private static final String ERROR_UNSUPPORTED = 'Unsupported method. Only method [getRecipients] is supported.';
    private static final String ERROR_NO_RECIPIENTS = 'Recipient data not found';

    public Boolean invokeMethod(String methodName, Map<String, Object> inputMap, Map<String, Object> outMap) {
        system.debug(inputMap);
        Boolean success;

        if (methodName == 'getRecipients') {
            success = getRecipients(inputMap, outMap);
        }  else {
            throw new CustomGetRecipientsException(ERROR_UNSUPPORTED);
        }

        System.debug('invokeMethod:outMap -> ' + outMap);
        System.debug('invokeMethod:success -> ' + success);
        return success;
    }

    private Boolean getRecipients(Map<String, Object> input, Map<String, Object> output) {
        Boolean success = false;

        Id sourceObjectId = (Id) input.get('sourceObjectId');
        
        List<Map<String, Object>> recipients = new List<Map<String, Object>>();
        
        Map<String, Object> recipient = new Map<String, Object>();
        recipient.put('name', 'John Peter');
        recipient.put('email', 'johnxxxx@gmail.com');
        recipient.put('id', '1');
        
        Map<String, Object> additionalFields = new Map<String, Object>();
        additionalFields.put('routingOrder', '1');
        additionalFields.put('routingNumber', '1');
        additionalFields.put('signerRole', '1');
        additionalFields.put('recipientType','Signer'); // Case Sensitive
        additionalFields.put('recipientLocale','English (U.S.)');
        //We need to send recipientLocale as same as What we see in the Salesforce UI While Manually Adding Recipient Locale 
        recipient.put('additionalFields', additionalFields);
        recipients.add(recipient);    
             
        output.put('recipients', recipients);
        
        success = true;
        System.debug('getRecipients:output -> ' + output);
        System.debug('getRecipients:success -> ' + success);
        
        return success;

    }
    
    class CustomGetRecipientsException extends Exception {

    }
}

recipientSelector og sourceObjectId er valgfri parametre. sourceObjectId-parameteren overføres som input til Apex og forbruges efter behov.

Hvis du vil konfigurere den tilpassede klasse ved brug af metadata, skal du tilføje en registrering i objektet Elektronisk signaturkonfiguration med disse værdier:

  • Udbyder: Docusign

  • Gruppetype: Gruppetype

  • Konfigurationstype: Modtagere tilpasset klasse

  • Konfigurer værdi: Dit tilpassede klassenavn. >.

getDocuments

Brug denne metode til at få vist en liste over dokumenter, der er sendt til e-signatur.

Hvis IsAssociatedWithClm-parameteren er:

  • true – API henter kontraktdokumenter.

  • false – API henter kun dokumenter fra Notater og vedhæftede filer.

Hvis du vil tilføje en tilpasset logik via en tilpasset klasse:

  • Opret en global Apex, der implementerer ind_docgen_api.OpenInterface.

  • Tilføj din logik i invokeMethod()-metoden.

  • Føj klassen til din organisation.

  • Kald API ved brug af customClass-parameteren i URL'en. Eksempel:

    /connect/e-sign/documents?sourceObjectId=<sourceObjectId>&documentSelector=<customClassName>

Hvis du vil tilpasse, hvordan dokumenter returneres for eSignature, skal du implementere ind_docgen_api.OpenInterface-grænsefladen i en global Apex. Her er der en eksempelimplementering, der henter dokumenter fra ContentVersion-registreringer, der er linket til det angivne sourceObjectId:

public class GetEsignDocuments implements ind_docgen_api.OpenInterface {
    private static final String ERROR_UNSUPPORTED = 'Unsupported method. Only method [getDocuments] is supported.';

    public Boolean invokeMethod(String methodName, Map<String, Object> request, Map<String, Object> outMap) {
        Boolean success = true;
        if (methodName == 'getDocuments') {
            success = executeAction(request, outMap);
        } else {
             throw new CustomGetDocumentsException(ERROR_UNSUPPORTED);
         }
        return success;
    }

    private Boolean executeAction(Map<String, Object> inputMap, Map<String, Object> outMap) {
        Boolean success = false;
        System.debug('getDocuments:inputMap -> ' + inputMap);
        Id contractId = (Id)inputMap.get('sourceObjectId');
        
        // Fetch contract master document
        ContentDocument contentDocument = getMasterContractDocument(contractId);
        
        List<Map<String, Object>> documents = new List<Map<String, Object>>();
        Map<String, Object> document = new Map<String, Object>();
        document.put('fileExtension', contentDocument.FileExtension);
        document.put('name',contentDocument.Title);
        String contentVersionId = Id.valueOf(contentDocument.LatestPublishedVersionId);
        document.put('sourceId', contentVersionId);
        document.put('sourceType','Content');
        
        Map<String, String> additionalFields = new Map<String, String>();
        additionalFields.put('documentId', '1');
        document.put('additionalFields', additionalFields);
        documents.add(document);
        outMap.put('documents', documents);

        success = true;
        System.debug('getDocuments:outMap -> ' + outMap);
        System.debug('getDocuments:success -> ' + success);
        return success;
    }
    
    private ContentDocument getMasterContractDocument(Id contractId) {
        // Fetch latest contract document version
        ContractDocumentVersion latestCdv = [SELECT Id FROM ContractDocumentVersion WHERE contractId=:contractId ORDER BY VersionNumber DESC LIMIT 1];
        
        // Fetch latest contendocumentId associated with latest contract document version
        ContractDocVerContentDoc contractDoc = [SELECT ContentDocumentId FROM ContractDocVerContentDoc WHERE ContractDocumentVersionId=:latestCdv.Id LIMIT 1];
        
        // Load content document details
        ContentDocument contentDocument = [SELECT FileExtension, FileType, Id, LatestPublishedVersionId, Title FROM ContentDocument WHERE Id=:contractDoc.ContentDocumentId LIMIT 1];
        return contentDocument;    
    }

    class CustomGetDocumentsException extends Exception {

    }
}

documentSelector er en valgfri parameter.

Hvis du vil konfigurere den tilpassede klasse ved brug af metadata, skal du tilføje en registrering i objektet Elektronisk signaturkonfiguration med disse værdier:

  • Udbyder: Docusign

  • Gruppetype: Gruppetype

  • Konfigurationstype: Dokumenter – tilpasset klasse

  • Konfigurer værdi: Dit tilpassede klassenavn.

Du behøver ikke overføre det tilpassede klassenavn i API-URL'en.

getNotificationIndstillinger

Brug denne metode til at få vist indstillinger for påmindelse og udløbsadvisering. sourceObjectId er en obligatorisk parameter, der returnerer de respektive adviseringsindstillinger for et objekt.

API læser adviseringsindstillingerne fra disse konfigurationsindstillinger:

  • Hvis kun DocGen-tilladelserne er aktiveret, læser API adviseringsindstillingerne fra indstillingen Konfiguration af elektronisk signaturpakke.

  • Hvis både tilladelserne DocGen og CLM (Salesforce Contracts) er aktiveret, og objekttypen er kontrakt, læser API adviseringsindstillingerne fra indstillingerne for konfiguration af kontrakttype.

  • Hvis både tilladelserne DocGen og CLM (Salesforce Contracts) er aktiveret, og objekttypen ikke er kontrakt, læser API adviseringsindstillingerne fra indstillingerne for konfiguration af den elektroniske signaturpakke.

sendEnvelope Brug denne metode til at aktivere en ny DocuSign-transaktion.
voidEnvelope Brug denne metode til at lade konvolutter, der er tilknyttet et objekt, udløbe eller blive void.
updateEnvelope Brug denne metode til at sende en ad hoc-anmodning til DocuSign for at opdatere konvolutstatussen.
 
Indlæser
Salesforce Help | Article