Creating Proposal Document with Draft Indication
You can use this API to create proposal documents for the given format, template name, document type, protection level, and an indicator of whether the document is a draft or final document. As a callback action, the API creates a task for further action.
API |
Signature |
---|---|
generateDoc2 |
webService static Id generateDoc2(Id templateId, Id proposalId, String pLevel, String docFormat, Boolean isDraft, String sessionId, String serverUrl) |
Request Parameter |
|||
---|---|---|---|
Name |
Type |
Required? |
Description |
templateId | ID |
Yes |
The ID of the template you want to use for the proposal. |
proposalId | ID |
Yes |
The ID of the proposal for which you want to generate the document. |
pLevel | String |
Yes |
The protection level you want to apply on the document |
docFormat | String |
Yes |
The format in which you want to generate the document. The valid values for this parameter are listed below:
|
isDraft | Boolean |
Yes |
Indicate whether the generated document is a draft or a final document. |
sessionId | String |
Yes |
The session ID you want to use for the callback. |
serverUrl | String |
Yes |
The server URL you want to use for the callback. |
Response Parameter |
||
---|---|---|
Field |
Type |
Description |
documentID | ID |
The ID of the generated document. |
Code Sample
The sample code below enables you to create a proposal document by providing a valid proposal ID, template name, protection level, format, draft state. After the execution, it returns the proposal document ID.
/**
* The below method demonstrates how to create draft or final proposal document by passing the proposal ID(auto generated ID as record name),
* template name, protection level, document format and isDraft indicator.
* Possible protection levels are:
* - Full access,
* - Insert comments and tracked changes only,
* - Insert comments only,
* - Fill in form fields only and
* - Read only
*/
public Id createDocumentForQuote(String ProposalID, String templateName, String protectionLevel, String docFormat, Boolean isDraft){
Id documentId;
Id proposalSOId = [SELECT ID FROM Apttus_Proposal__Proposal__c WHERE Name = :ProposalID LIMIT 1].Id;
Id templateSOId = [SELECT Id, Name FROM Apttus__APTS_Template__cWHERE Name = :templateName AND Apttus__IsActive__c = TRUE LIMIT 1].Id;
if (proposalSOId != null && templateSOId != null)
{
String serverUrl;
Apttus_Proposal__ProposalSystemProperties__c prop = Apttus_Proposal__ProposalSystemProperties__c.getInstance('System Properties');
if (prop.Apttus_Proposal__EnableFile__c )
{
serverUrl = URL.getSalesforceBaseUrl().toExternalForm()
+ '/services/Soap/u/50.0/' + UserInfo.getOrganizationId();
}
else
{
serverUrl = URL.getSalesforceBaseUrl().toExternalForm()
+ '/services/Soap/u/50.0/' + UserInfo.getOrganizationId();
}
documentId = Apttus_Proposal.MergeWebService.generateDoc2(templateSOId,
proposalSOId,
protectionLevel,
docFormat,
isDraft,
userInfo.getSessionId(),
serverUrl);
}
return documentId;
}