Loading
API's voor elektronische handtekeningen

API's voor elektronische handtekeningen

U kunt de API's voor elektronische handtekeningen onafhankelijk gebruiken om de Salesforce Contracts functionaliteiten aan te roepen zonder de UI te gebruiken. Deze API's kunnen in hoge mate worden aangepast. U kunt een of meer gegenereerde documenten verzenden voor elektronische handtekening. Uw gegenereerde documenten kunnen worden gekoppeld aan standaard- of aangepaste objecten.

Raadpleeg Machtigingensets voor DocuSign voor meer informatie over de vereiste machtigingen.

Raadpleeg voor meer informatie over de Apex beheerlimieten Uitvoeringsbeheer en limieten.

Zie Resources voor elektronische handtekeningen voor informatie over API's voor elektronische handtekeningen

Methode Beschrijving
getRecipients

Gebruik deze methode om een lijst van documentontvangers weer te geven.

Een aangepaste logica toevoegen via een aangepaste klasse:

  • Maak een globale Apex klasse die ind_docgen_api.OpenInterface implementeert.

  • Voeg uw logica toe binnen de methode invokeMethod().

  • Voeg de klasse toe aan uw organisatie.

  • Roep de API aan met behulp van de parameter customClass in de URL. Voorbeeld:

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

Implementeer voor het aanpassen van de manier waarop ontvangers worden geretourneerd, de interface ind_docgen_api.OpenInterface in een globale Apex klasse. Hier is een voorbeeldimplementatie die alle contactpersonen ophaalt met de aanhef "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 en sourceObjectId zijn optionele parameters. De parameter sourceObjectId wordt als invoer doorgegeven aan de Apex klasse en naar behoefte verbruikt.

Als u de aangepaste klasse wilt configureren met behulp van metagegevens, voegt u een record toe in het object Configuratie van elektronische handtekening met deze waarden:

  • Leverancier: Documentondertekening

  • Groepstype: Type groep

  • Configuratietype: Aangepaste klasse Ontvangers

  • Configuratiewaarde: Uw aangepaste klassenaam. >.

getDocuments

Gebruik deze methode om een lijst weer te geven van documenten die voor elektronische handtekening zijn verzonden.

Als de parameter IsAssociatedWithClm is:

  • true (waar): de API haalt contractdocumenten op.

  • false (onwaar): de API haalt alleen documenten op uit Notities en bijlagen.

Een aangepaste logica toevoegen via een aangepaste klasse:

  • Maak een globale Apex klasse die ind_docgen_api.OpenInterface implementeert.

  • Voeg uw logica toe binnen de methode invokeMethod().

  • Voeg de klasse toe aan uw organisatie.

  • Roep de API aan met behulp van de parameter customClass in de URL. Voorbeeld:

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

Als u wilt aanpassen hoe documenten worden geretourneerd voor eSignature, implementeert u de interface ind_docgen_api.OpenInterface in een globale Apex klasse. Hier is een voorbeeldimplementatie die documenten ophaalt uit ContentVersion-records die zijn gekoppeld aan de opgegeven 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 is een optionele parameter.

Als u de aangepaste klasse wilt configureren met behulp van metagegevens, voegt u een record toe in het object Configuratie van elektronische handtekening met deze waarden:

  • Leverancier: Documentondertekening

  • Groepstype: Type groep

  • Configuratietype: Aangepaste klasse Documenten

  • Configuratiewaarde: Uw aangepaste klassenaam.

U hoeft de naam van de aangepaste klasse niet door te geven in de API-URL.

getNotificationSettings

Gebruik deze methode om instellingen voor herinneringen en kennisgevingen over vervallen weer te geven. De sourceObjectId is een verplichte parameter die de respectieve kennisgevingsinstellingen voor een object retourneert.

De API leest de instellingen voor kennisgevingen uit deze configuratie-instellingen:

  • Als alleen de DocGen-machtigingen zijn ingeschakeld, leest de API de instellingen voor kennisgevingen uit de instelling Envelop voor elektronische handtekening.

  • Als zowel de machtiging DocGen als de machtiging CLM (Salesforce Contracts) is ingeschakeld en het objecttype contract is, leest de API de kennisgevingsinstellingen uit de instellingen voor Configuratie van contracttype.

  • Als zowel de machtiging DocGen als de machtiging CLM (Salesforce Contracts) is ingeschakeld en het objecttype geen contract is, leest de API de instellingen voor kennisgevingen uit de instellingen voor de envelop voor elektronische handtekeningen.

sendEnvelope Gebruik deze methode om een nieuwe DocuSign-transactie in te schakelen.
voidEnvelope Gebruik deze methode om enveloppen die aan een object zijn gekoppeld, te laten vervallen of nietig te maken.
updateEnvelop Gebruik deze methode om een ad-hocverzoek te verzenden naar DocuSign om de envelopstatus bij te werken.
 
Wordt geladen
Salesforce Help | Article