Difference between revisions of "Java API:Document Management"
imported>Aeric |
imported>Aeric |
||
Line 7: | Line 7: | ||
== Example: Generate an Attachment == | == Example: Generate an Attachment == | ||
{{Code:Generate an Attachment}} | {{:Code:Generate an Attachment}} | ||
<noinclude> | <noinclude> | ||
__FORCETOC__ | __FORCETOC__ |
Revision as of 20:30, 16 January 2014
The Document Management Java APIs are used to generate and manage documents.
generateDocument
Generates a document based on an HTML Document Template.
Syntax
- <syntaxhighlight lang="java" enclose="div">
Result result; result = Functions.generateDocument(String object, String recordID,
String templateID, String format);
</syntaxhighlight>
Parameters
- object
- The name or identifier of the object that contains the record of interest.
- recordID
- The identifier of the record to pass to the template.
- printTemplate
- The identifier of the Document Template.
- To get the template ID:
- format
- CONSTANTS.DOCUMENT.HTML -or- CONSTANTS.DOCUMENT.PDF
- This option applies to HTML and PDF templates. Word templates always produce Word files. PowerPoint templates produce PowerPoint files.
Return
- Usage
-
- Get the object name from the Object Properties
- Get the template name from the Document Template
- Get the record ID from the incoming parameters
- Use result.getID() to retrieve the document ID
- Pass it to the getDocument method to get a PlatformFileBean that contains the document
- Example
- This example calls generateDocument on a case to create an HTML document.
- <syntaxhighlight lang="java" enclose="div">
String printTemplate = ""; // Code this value String recordID = ""; // Get this value from incoming parameters
...
Result result = Functions.generateDocument("cases", recordID, printTemplate, CONSTANTS.DOCUMENT.HTML); int resultCode = result.getCode(); if(resultCode < 0) {
String msg = "Some Message"; Logger.info(msg + ":\n" + result.getMessage(), "Doc"); // Log details Functions.throwError(msg + "."); // Error message
} else {
String doc_id = result.getID(); PlatformFileBean file = Functions.getDocument(doc_id);
// Additional business logic...
} </syntaxhighlight>
getDocument
Retrieves a document specified by its ID.
- Syntax
- <syntaxhighlight lang="java" enclose="div">
Result result = Functions.getDocument(String documentID); </syntaxhighlight>
- Parameters
- documentID - The ID of a document stored in the platform.
- Returns
- Result object that contains the document in the form of a PlatformFileBean.
- Usage
-
- Use result.getParameters() to get the params from the Result object.
- Call getPlatformFileBean() on the params, passing the document ID as a string.
- If needed, call getBytes() on the PlatformFileBean to get document content in a byte array.
- Example
- This example logs the size and name associated with a document.
- <syntaxhighlight lang="java" enclose="div">
Result result = Functions.getDocument(documentId); Parameters params = result.getParameters(); PlatformFileBean file = params.getPlatformFileBean(documentId); byte[] bytes = file.getBytes(); String msg = "Name:"+file.getName()+", size:"+file.getEncodedFileContent().length(); Logger.info(msg, "Document"); </syntaxhighlight>
Example: Generate an Attachment
This example uses a Document Template to generate a PDF or HTML document, and then attaches the document to the current case. It is expected that the method will be invoked from a Rule.
In outline, the process is:
- Get the record ID from the incoming method parameters.
- Use the generateDocument API to create a PDF (or HTML) document from an existing template.
- Use the getDocument API to retrieve it, in the form of a PlatformFileBean.
- Use the addRecord API to attach the document to the case.
- <syntaxhighlight lang="java" enclose="div">
package com.platform.yourCompany.yourPackage;
import com.platform.api.*; import com.platform.beans.*; //import java.util.*;
public class UtilityFunctions {
// This signature allows the method to be invoked from a rule. // We assume it is invoked on a Case record. public void generateAttachment(com.platform.api.Parameters inParams) throws Exception { String documentTitle = "PUT TITLE OF GENERATED DOCUMENT HERE"; String templateID = "PUT ID OF DOCUMENT TEMPLATE HERE";
// Get the record ID from the incoming parameters String objectID = inParams.get("object_id"); String recordID = inParams.get("id");
// Generate the document Result result = Functions.generateDocument(objectID, recordID, templateID, CONSTANTS.DOCUMENT.HTML); // or CONSTANTS.DOCUMENT.PDF int resultCode = result.getCode(); if (resultCode < 0) { String msg = "Document generation failed"; Logger.info(msg + ":\n" + result.getMessage(), "genAttachment"); Functions.throwError(msg + "."); return; }
// Retrieve the document as a PlatformFileBean String docID = result.getId(); result = Functions.getDocument(docID); resultCode = result.getCode(); if (resultCode < 0) { String msg = "Failed to retrieve the document"; Logger.info(msg + ":\n" + result.getMessage(), "genAttachment"); Functions.throwError(msg + "."); return; } Parameters docParams = result.getParameters(); PlatformFileBean fileBean = docParams.getPlatformFileBean(docID);
// Add the document as an attachment Parameters params = Functions.getParametersInstance(); params.add("title", documentTitle); params.add("file_field", fileBean ); params.add("related_to", objectID+":"+recordID); result = Functions.addRecord("attachments", params); resultCode = result.getCode(); if (resultCode < 0) { String msg = "Failed to attach document to case"; Logger.info(msg + ":\n" + result.getMessage(), "genAttachment"); Functions.throwError(msg + "."); return; } }
} </syntaxhighlight>