- 我sugest你打破請記住這是jscript ,您需要使其可調試
- 以下是文檔Docusign Custom Button Documentation for Salesforce 的參考,這裏是DocuSign Custom Button Sample Documentation for Salesforce
我懷疑要loadDefaultContacts〜1%的文檔CRCL「的LoadDefaultContacts參數確定用於所述源對象類型 默認聯繫人被加載(0 - 不 負載,1 - 負載)」。
我多麼調試:
一個。添加警報(由調試var控制,更改爲true以查看它們)
b。最後添加Try Catch
c。查看下面的Sample Custom按鈕,並與您正在嘗試完成的操作進行比較,並一次一個步驟地執行該操作。
d。使用Chrome進行調試並進入在Salesforce頁面上創建的虛擬功能,以便您可以查看從{!}生成的變量和相關值。} SF令牌等
-sample GENERIC CUSTOM BUTTON: -
/*REQUIREMENTS:
1. Set Email Subject to Opp Name
2. Set CRL to User
3. Set signer tyoe to Carbon Copy
Created for Salesforce Version 5.2
Source Version of this button 1.0
Code Reviewed by: Group Accenture
*/
var location ='\\';
var debug = false;
try
{
var CES = 'Please sign this document for {!URLENCODE(JSENCODE(Opportunity.Name))}';
var CRL = 'Email~{!URLENCODE(JSENCODE(User.Email))};LastName~{!URLENCODE(JSENCODE(User.Name))};Role~CCSigner;RoutingOrder~1;';
var CCTM = 'CCSigner~Carbon Copy';
var CCRM = 'CCSigner~CCSigner';
location = "/apex/dsfs__DocuSign_CreateEnvelope?DSEID=0&SourceID={!Opportunity.id}&CES="+CES+"&CRL="+CRL+"&CCTM="+CCTM+"&CCRM="+CCRM;
}
catch (e)
{
alert("Error Occured"+e.message);
}
finally
{
if(debug)
{
alert(location);
}
else
{
window.location.href = location;
}
}
-sample複雜的自定義按鈕使用SOQL和CRL/CCRM/CCTM的建立 -
{!REQUIRESCRIPT("/apex/DocuSign_JavaScript")}
{!REQUIRESCRIPT("/soap/ajax/29.0/connection.js")}
{!REQUIRESCRIPT("/soap/ajax/29.0/apex.js")}
/*REQUIREMENTS:
1. Set CRL based on Business logic using Product Type and User Roles
2. Set DST based on Business logci using Product Type
3. Business Logic (Expand Below here)
====See Section Business Rules====
4. By default this is for sandbox, prod value must be true for it to be using values for Templates in Production mode
5. This is not a one button click send
Created for Salesforce Version 5.4
Source Version of this button 0.5 (beta)
Code Reviewed by: DocuSign (TBD)
====See Section Business Rules====
DocuSign Button Logic
1. IF Docusign_Checkbox__c = TRUE
AND Sector__c = ‘Life Sciences’
THEN
Signer 1 = Business Integrity Director Role
Signer 2 = Life Sciences Sector Lead Role
2. IF Docusign_Checkbox__c = TRUE
AND Sector__c = ‘Financial Services’
THEN
Signer 1 = Business Integrity Director Role
Signer 2 = Financial Services Sector Lead Role
3. IF Docusign_Checkbox__c = TRUE
AND Sector__c <> ‘Life Sciences’,‘Financial Services’
THEN
Signer 1 = Business Integrity Director Role
Signer 2 = Health Plans & Providers Sector Lead Role
4. IF Docusign_Checkbox__c = FALSE
THEN
Signer 1 = Business Integrity Director Role
Signer 2 = Practice Lead with Signing Power
Current Questions, Assumptions and clarifications outstanding
a. What client Sign's?
i. I see the internal signers, but who is going to sign from the "clients" perspective, or will the person using the button decide
b. Can you send me the LS template, renamed to txt (xml or zip will not come through)
c. I will need the production template ids (guids) as they are different from Prod to Demo
e. What do you want the button to say aka "Send with DocuSign" or something else for your business process
f. I assume if I am missing the below you want an error message with all the issue shown without allowing the user to send:
i. No user for Role
ii. Data for Lead if not DocuSign
g. I assume the following as well:
i. The new doc with the 4 scenarios superceds the original email with the different condition
ii. You don't want to change the default on the below:
I. Email Subject or Message will be the standard default for the Managed Package in the admin
II. The expirations and reminders will be the standard default for the Managed Package in the Admin
III. I will not load the default contacts or attachments
IV. I will load the recipients based on the business rules only given in the new document
V. I will load the template based on the business rules only given in the new document
VI. This is NOT a one button click send
DEMO
EBM = DST = 1989696D-F058-42E5-9C5B-8718482E2C1A
NVS = DST = A906436D-5352-40DE-A9F8-1EE0795E4266
LS = DST = 4CFE35EC-C8A4-4090-9B72-024F1DE26757
4CFE35EC-C8A4-4090-9B72-024F1DE26757
PROD
LS DST
6048B3CD-D2C5-44BE-9630-51CFCFBD092D
EBM DST
B3D6159B-5BE3-4B80-8e8e-96173120D0EF
NVS DST
855790D3-6121-496F-B870-D0B276A54611
*/
var location ='\\';
var debug = false;
var prod = false;
//Define Business Rule Functions below for:
// Getting User Role
function getUserInfoForRole(roleName,templateRole, routingOrder)
{
var recipient = '';
try
{
var result = sforce.connection.query("select id, Email, FirstName, Lastname from User where userroleid in (Select id from UserRole where Name ='"+roleName+"')");
var userForRole = result.getArray("records");
recipient = 'Email~'+userForRole[0].Email+';FirstName~'+userForRole[0].FirstName+';LastName~'+userForRole[0].LastName+';Role~'+templateRole+';RoutingOrder~'+routingOrder+';,';
}
catch(e)
{
if(debug)
{
alert(e.message);
}
}
finally
{
}
return recipient;
}
try
{
//Set DST based on Business Logic
var DST = '';
//Set CRL based on Business Logic in Function (TBD)
var CRL = '';
//Set Signer Type to Signer for each Role as Signer (Looks to be just two in templates)
var CCTM = '';
//Set Signer Type to Signer for each Role (Looks to be just two in templates)
var CCRM = '';
if({!Contract.Docusign_Checkbox__c}==1)
{
if(debug)
{
alert('DocuSign Checked')
}
if('{!Contract.Sector__c}' == 'Life Sciences')
{
//Signer 1 = Business Integrity Director Role
CRL = getUserInfoForRole('Business Integrity Director', 'Business Integrity', '1');
CCTM = 'Business Integrity~Signer;';
CCRM = 'Business Integrity~Business Integrity;';
//Signer 2 = Life Sciences Sector Lead Role
CRL = CRL + getUserInfoForRole('Life Sciences Sector Lead', 'Client Signer', '2');
CCTM = CCTM + 'Client Signer~Signer;';
CCRM = CCRM + 'Client Signer~Client Signer;';
if(debug)
{
alert('Life Sciences')
}
if(prod)
{
DST = '6048B3CD-D2C5-44BE-9630-51CFCFBD092D'
}
else
{
DST = '686DBA37-EBF3-410F-90E3-7E3F36A95694';
}
if(debug)
{
alert(DST)
}
}
else if('{!Contract.Sector__c}' == 'Financial Services')
{
//Signer 1 = Business Integrity Director Role
CRL = getUserInfoForRole('Business Integrity Director', 'Business Integrity', '1');
CCTM = 'Business Integrity~Signer;';
CCRM = 'Business Integrity~Business Integrity;';
//Signer 2 = Financial Services Sector Lead Role
CRL = CRL + getUserInfoForRole('Financial Services Sector Lead', 'Sector Lead', '2');
CCTM = CCTM + 'Sector Lead~Signer;';
CCRM = CCRM + 'Sector Lead~Sector Lead;';
if(debug)
{
alert('Financial Services')
}
if(prod)
{
DST = 'B3D6159B-5BE3-4B80-8e8e-96173120D0EF'
}
else
{
DST = '1989696D-F058-42E5-9C5B-8718482E2C1A'
}
if(debug)
{
alert(DST)
}
}
else if(('{!Contract.Sector__c}' != 'Life Sciences') && ('{!Contract.Sector__c}' !='Financial Services'))
{
if(debug)
{
alert('Not Life Sciences or Financial Services')
}
//Signer 1 = Business Integrity Director Role
CRL = getUserInfoForRole('Business Integrity Director', 'Business Integrity', '1');
CCTM = 'Business Integrity~Signer;';
CCRM = 'Business Integrity~Business Integrity;';
//Signer 2 = Health Plans & Providers Sector Lead Role
CRL = CRL + getUserInfoForRole('Health Plans & Providers Sector Lead', 'Sector Lead', '2');
CCTM = CCTM + 'Sector Lead~Signer;';
CCRM = CCRM + 'Sector Lead~Sector Lead;';
if(prod)
{
DST = '855790D3-6121-496F-B870-D0B276A54611'
}
else
{
DST = 'A906436D-5352-40DE-A9F8-1EE0795E4266'
}
if(debug)
{
alert(DST)
}
}
else
{
//Error
if(debug)
{
alert('Error in Services detection via Sector__c')
}
}
}
else
{
//Signer 1 = Business Integrity Director Role
CRL = getUserInfoForRole('Business Integrity Director', 'Business Integrity', '1');
CCTM = 'Business Integrity~Signer;';
CCRM = 'Business Integrity~Business Integrity;';
//Signer 2 = Practice Lead with Signing Power
CRL = CRL + getUserInfoForRole('{!Contract.Sector__c} Lead', 'Practice Lead', '2');
CCTM = CCTM + 'Practice Lead~Signer;';
CCRM = CCRM + 'Practice Lead~Practice Lead;';
if(debug)
{
alert('DocuSign NOT Checked')
}
if(prod)
{
DST = '855790D3-6121-496F-B870-D0B276A54611'
}
else
{
DST = 'A906436D-5352-40DE-A9F8-1EE0795E4266'
}
if(debug)
{
alert(DST)
}
}
//Need Error Check, No OppId,
location = "/apex/dsfs__DocuSign_CreateEnvelope?DSEID=0&SourceID={!Contract.id}&DST="+DST+"&CRL="+CRL+"&CCTM="+CCTM+"&CCRM="+CCRM;
}
catch (e)
{
alert("Error Occured"+e.message);
}
finally
{
if(debug)
{
alert(location);
}
else
{
window.location.href = location;
}
}