Loading
E-signatur-API-er

E-signatur-API-er

Du kan bruke e-signatur-API-ene uavhengig til å kalle opp Salesforce Contracts funksjonalitet uten å bruke grensesnittet. Disse API-ene er svært tilpassbare. Du kan sende ett eller flere genererte dokumenter for e-signatur. De genererte dokumentene kan knyttes til enten standardobjekter eller tilpassede objekter.

Hvis du vil vite mer om nødvendige tillatelser, kan du se Tillatelsessett for DocuSign.

Hvis du vil vite mer om Apex-styringsgrensene, kan du se Utførelsesstyringer og grenser.

Hvis du vil ha informasjon om e-signatur-API-er, kan du se E-signaturressurser.

Metode Beskrivelse
getRecipients (mottaker)

Bruk denne metoden til å vise en liste over dokumentmottakere.

Slik legger du til en tilpasset logikk via en tilpasset klasse:

  • Opprett en global Apex som implementerer ind_docgen_api.OpenInterface.

  • Legg til logikken din i invokeMethod()-metoden.

  • Legg til klassen i organisasjonen.

  • Kall opp API-et med customClass-parameteren i URL-adressen. Eksempel:

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

Implementer ind_docgen_api.OpenInterface-grensesnittet i en global Apex for å tilpasse hvordan mottakere returneres. Her er et eksempel på en implementering som henter alle kontakter med hilsen "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 valgfrie parametere. sourceObjectId-parameteren overføres som inndata til Apex og forbrukes etter behov.

Hvis du vil konfigurere den tilpassede klassen med metadata, legger du til en post i objektet Konfigurasjon av elektronisk signatur med disse verdiene:

  • Leverandør: Dokument

  • Gruppetype: Gruppetype

  • Konfigurasjonstype: Tilpasset mottakerklasse

  • Konfigurasjonsverdi: Navnet på den tilpassede klassen. >.

getDocuments

Bruk denne metoden til å vise en liste over dokumenter sendt for e-signatur.

Hvis IsAssociatedWithClm-parameteren er:

  • true: API henter kontraktsdokumenter.

  • false: API henter dokumenter bare fra Notater og vedlegg.

Slik legger du til en tilpasset logikk via en tilpasset klasse:

  • Opprett en global Apex som implementerer ind_docgen_api.OpenInterface.

  • Legg til logikken din i invokeMethod()-metoden.

  • Legg til klassen i organisasjonen.

  • Kall opp API-et med customClass-parameteren i URL-adressen. Eksempel:

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

Implementer ind_docgen_api.OpenInterface-grensesnittet i en global Apex for å tilpasse hvordan dokumenter returneres for eSignature. Her er et eksempel på en implementering som henter dokumenter fra ContentVersion-poster som er lenket til den gitte 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 klassen med metadata, legger du til en post i objektet Konfigurasjon av elektronisk signatur med disse verdiene:

  • Leverandør: Dokument

  • Gruppetype: Gruppetype

  • Konfigurasjonstype: Tilpasset dokumentklasse

  • Konfigurasjonsverdi: Navnet på den tilpassede klassen.

Du trenger ikke å overføre navnet på den tilpassede klassen i API-URL-adressen.

getNotificationInnstillinger

Bruk denne metoden til å vise påminnelses- og utløpsvarselinnstillinger. sourceObjectId er en obligatorisk parameter som returnerer de respektive varselinnstillingene for et objekt.

API-et leser varselinnstillingene fra disse konfigurasjonsinnstillingene:

  • Hvis bare DocGen-tillatelsene er aktivert, leser API-et varselinnstillingene fra innstillingen Konfigurasjon for elektronisk signaturomslag.

  • Hvis både tillatelsene DocGen og CLM (Salesforce Contracts) er aktivert og objekttypen er contract, leser API varselinnstillingene fra innstillingene for kontrakttypekonfigurasjon.

  • Hvis både tillatelsene DocGen og CLM (Salesforce Contracts) er aktivert og objekttypen ikke er kontrakt, leser API-et varselinnstillingene fra innstillingene for konfigurasjon av elektronisk signatur.

sendEnvelope Bruk denne metoden til å aktivere en ny DocuSign-transaksjon.
voidEnvelope Bruk denne metoden til å la konvolutter som er knyttet til et objekt, utløpe.
updateEnvelope Bruk denne metoden til å sende en ad hoc-forespørsel til DocuSign for å oppdatere konvoluttsstatusen.
 
Laster
Salesforce Help | Article