Loading
API:n för e-signaturer

API:n för e-signaturer

Du kan använda API för e-signaturer oberoende för att anropa Salesforce Contracts funktioner utan att använda användargränssnittet. Dessa API är mycket anpassningsbara. Du kan skicka ett eller flera genererade dokument för e-signatur. Dina genererade dokument kan associeras med antingen standardobjekt eller egna objekt.

För att veta vilka behörigheter som behövs, se Behörighetsuppsättningar för DocuSign.

För att veta mer om Apex styrande gränser, se Verkställande styrande och gränser.

Mer information om API för e-signaturer finns i E-signaturresurser.

Metod Beskrivning
getRecipients [Mottagare]

Använd denna metod för att visa en lista över dokumentmottagare.

Lägga till en egen logik via en egen klass:

  • Skapa en global Apex klass som implementerar ind_docgen_api.OpenInterface.

  • Lägg till din logik inuti metoden invokeMethod().

  • Lägg till klassen i din organisation.

  • Anropa API med parametern customClass i URL:en. Exempel:

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

För att anpassa hur mottagare returneras, implementera gränssnittet ind_docgen_api.OpenInterface i en global Apex klass. Här är ett exempel på implementering som hämtar alla kontakter med hälsningen "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 och sourceObjectId är valfria parametrar. Parametern sourceObjectId skickas som indata till Apex klassen och konsumeras enligt behov.

För att konfigurera den egna klassen med metadata, lägg till en post i objektet Konfiguration av elektronisk signatur med dessa värden:

  • Leverantör: Dokumenttecken

  • Grupptyp: Grupptyp

  • Konfigurationstyp: Egen klass för mottagare

  • Konfigurationsvärde: Ditt egna klassnamn. >.

getDocuments ,

Använd denna metod för att visa en lista över dokument som skickats för e-signatur.

Om parametern IsAssociatedWithClm är:

  • sant – API hämtar kontraktdokument.

  • false – API hämtar endast dokument från Anteckningar och bilagor.

Lägga till en egen logik via en egen klass:

  • Skapa en global Apex klass som implementerar ind_docgen_api.OpenInterface.

  • Lägg till din logik inuti metoden invokeMethod().

  • Lägg till klassen i din organisation.

  • Anropa API med parametern customClass i URL:en. Exempel:

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

För att anpassa hur dokument returneras för eSignature, implementera gränssnittet ind_docgen_api.OpenInterface i en global Apex klass. Här är ett exempel på implementering som hämtar dokument från ContentVersion-poster länkade till det givna 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 är en valfri parameter.

För att konfigurera den egna klassen med metadata, lägg till en post i objektet Konfiguration av elektronisk signatur med dessa värden:

  • Leverantör: Dokumenttecken

  • Grupptyp: Grupptyp

  • Konfigurationstyp: Egen dokumentklass

  • Konfigurationsvärde: Ditt egna klassnamn.

Du behöver inte skicka namnet på den egna klassen i API URL.

getNotificationSettings [Inställningar för getNotification]

Använd denna metod för att visa inställningar för påminnelser och notiser om att de går ut. sourceObjectId är en obligatorisk parameter som returnerar respektive notisinställningar för ett objekt.

API läser notisinställningarna från dessa konfigurationsinställningar:

  • Om endast DocGen-behörigheterna är aktiverade läser API notisinställningarna från inställningen Konfiguration av elektroniskt signaturkuvert.

  • Om både behörigheterna DocGen och CLM (Salesforce Contracts) är aktiverade och objekttypen är contract läser API notisinställningarna från inställningarna för Kontrakttypkonfiguration.

  • Om både behörigheterna DocGen och CLM (Salesforce Contracts) är aktiverade och objekttypen inte är kontrakt läser API notisinställningarna från inställningarna för konfiguration av elektroniskt signaturkuvert.

sendEnvelope [Skicka kuvert] Använd denna metod för att aktivera en ny DocuSign-transaktion.
voidEnvelope . Använd denna metod för att göra kuvert associerade med ett objekt ogiltiga eller ogiltiga.
updateEnvelope [uppdateringskuvert] Använd denna metod för att skicka en ad hoc-begäran till DocuSign för att uppdatera kuvertstatusen.
 
Laddar
Salesforce Help | Article