AgileApps Support Wiki Pre Release

Difference between revisions of "Code:Generate an Attachment"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
Line 8: Line 8:


:<syntaxhighlight lang="java" enclose="div">
:<syntaxhighlight lang="java" enclose="div">
package com.platform.yourCompany.yourPackage;
import com.platform.api.*;
import com.platform.api.*;
import com.platform.beans.*;
import com.platform.beans.*;
//import java.util.*;


class SampleCodeToGenerateAnAttachment {
public class UtilityFunctions
{
{
   // This signature allows the method to be invoked from a rule
   // This signature allows the method to be invoked from a rule
   public ... {
   public void generateAttachment(com.platform.api.Parameters inParams)
 
  {
     // Get the record ID from the incoming parameters
     // Get the record ID from the incoming parameters
    String recordID = inParams.get("id");


     // Generate the document
     // Generate the document
     Result result = Functions.generateDocument(_______, "CONSTANTS.DOCUMENT.PDF");
     Result result = Functions.generateDocument("cases", recordID, templateID, CONSTANTS.DOCUMENT.PDF);
        // or CONSTANTS.DOCUMENT.HTML  
                                                                        // or 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
        exit;
    }


     // Retrieve the file
     // Retrieve the document
     r.
     String docID = result.get("id");
     PlatformFileBean fileBean = Functions.getDocument(
     PlatformFileBean fileBean = Functions.getDocument(docID);


     // Add the document as an attachment
     // Add the document as an attachment

Revision as of 00:34, 17 January 2014

This example uses a Document Template to generate a PDF, and then attaches the PDF to the current case.

In outline, the process is:

  1. Get the record ID from the incoming method parameters.
  2. Use the generateDocument API to create a PDF (or HTML) document from an existing template.
  3. Use the getDocument API to retrieve it, in the form of a PlatformFileBean.
  4. Use the addRecord API to attach the PlaformFileBean 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
 public void generateAttachment(com.platform.api.Parameters inParams)
 {
    // Get the record ID from the incoming parameters
    String recordID = inParams.get("id");
    // Generate the document
    Result result = Functions.generateDocument("cases", recordID, templateID, CONSTANTS.DOCUMENT.PDF);
                                                                        // or 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
       exit;
    }
    // Retrieve the document
    String docID = result.get("id");
    PlatformFileBean fileBean = Functions.getDocument(docID);
    // Add the document as an attachment
    Parameters params = Functions.getParametersInstance();
    params.add("title", "…name of generated file…");
    params.add("file_field", fileBean );
    params.add("related_to", "cases:"+recordID);
    result = Functions.addRecord("attachments", params);
 }

} </syntaxhighlight>