Class POIFindReplaceAdapter

java.lang.Object
org.imixs.workflow.poi.POIFindReplaceAdapter
All Implemented Interfaces:
org.imixs.workflow.Adapter, org.imixs.workflow.SignalAdapter

public class POIFindReplaceAdapter extends Object implements org.imixs.workflow.SignalAdapter
This POIFindReplaceAdapter can be used to find and replace text fragements in a MS Word (docx) or MS Excel (xlsx) document.

The adapter can be configured by the event workflow result:

 
      <poi-update name=
        "filename">PLA Membership Agreement-<itemvalue>numsequencenumber</itemvalue>.docx</poi-update>
        <poi-update name="findreplace">
               <find>[company.name]</find>
               <replace><itemvalue>company.name</itemvalue></replace>
        </poi-update>
        <poi-update name="findreplace">
               <find>[company.country]</find>
               <replace><itemvalue>company.country</itemvalue></replace>
        </poi-update>
        <poi-update name="findreplace">
               <find>[contract.startdate]</find>
               <replace><itemvalue format=
        "EEE, MMM d, yyyy">contract.start</itemvalue></replace>
       </poi-update>
   
 
For Excel you can replace cell content:
 
 <poi-update name="findreplace">
       <find>F4</find>
       <replace><itemvalue>numsequencenumber</itemvalue></replace>
       <type>text</type>
   </poi-update>
   
 

Another option for Excel sheets is a typed item value. In this case the tag 'itemname' defindes the item and 'type' defines the type which will be set into the excel sheet

 
 <poi-update name="findreplace">
       <find>F4</find>
       <itemname>invoice.date</itemname>
   </poi-update>
   
Version:
1.0
Author:
rsoika
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.imixs.workflow.ItemCollection
    execute(org.imixs.workflow.ItemCollection document, org.imixs.workflow.ItemCollection event)
    This method computes the findreplace configuration and updates an attachments form type .docx
    void
    processPOIUpdate(org.imixs.workflow.ItemCollection workitem, org.imixs.workflow.ItemCollection event, String targetName)
    This helper method processes all poi-update instructions for a given file attachment (.docx | .xlsx)
    void
    replaceXWPFDocument(org.apache.poi.xwpf.usermodel.XWPFDocument doc, String find, String replace)
    Helper method replaces a given text in a XWPFDocument
    void
    updateFileData(org.imixs.workflow.FileData fileData, org.imixs.workflow.ItemCollection document, List<String> replaceDevList, String eval)
    This helper method updates the content of a given FileData object with a replaceDevList
    void
    updateXSSFWorkbook(org.apache.poi.xssf.usermodel.XSSFWorkbook workbook, org.imixs.workflow.ItemCollection document, List<String> replaceDevList, String eval)
     
    void
    updateXWPFDocument(org.apache.poi.xwpf.usermodel.XWPFDocument document, org.imixs.workflow.ItemCollection workitem, List<String> replaceDevList)
    This method updates the XWPFDocument document.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • POIFindReplaceAdapter

      public POIFindReplaceAdapter()
  • Method Details

    • execute

      public org.imixs.workflow.ItemCollection execute(org.imixs.workflow.ItemCollection document, org.imixs.workflow.ItemCollection event) throws org.imixs.workflow.exceptions.AdapterException, org.imixs.workflow.exceptions.PluginException
      This method computes the findreplace configuration and updates an attachments form type .docx
      Specified by:
      execute in interface org.imixs.workflow.Adapter
      Throws:
      org.imixs.workflow.exceptions.PluginException
      org.imixs.workflow.exceptions.AdapterException
    • processPOIUpdate

      public void processPOIUpdate(org.imixs.workflow.ItemCollection workitem, org.imixs.workflow.ItemCollection event, String targetName) throws org.imixs.workflow.exceptions.PluginException
      This helper method processes all poi-update instructions for a given file attachment (.docx | .xlsx)
      Parameters:
      workitem -
      event -
      targetName -
      Throws:
      org.imixs.workflow.exceptions.PluginException
    • updateFileData

      public void updateFileData(org.imixs.workflow.FileData fileData, org.imixs.workflow.ItemCollection document, List<String> replaceDevList, String eval) throws IOException, org.imixs.workflow.exceptions.PluginException
      This helper method updates the content of a given FileData object with a replaceDevList

      The method verifies if the content of the file need to be loaded from the snapshot

      Parameters:
      fileData - - the fileData object containing the text or calc file
      replaceDevList - - list of text markers or cell positions to be replaced
      eval - - optional list of cell positions to be evaluated after update (this is for XSSFWorkbooks only)
      Throws:
      IOException
      org.imixs.workflow.exceptions.PluginException
    • updateXSSFWorkbook

      public void updateXSSFWorkbook(org.apache.poi.xssf.usermodel.XSSFWorkbook workbook, org.imixs.workflow.ItemCollection document, List<String> replaceDevList, String eval) throws org.imixs.workflow.exceptions.PluginException
      Throws:
      org.imixs.workflow.exceptions.PluginException
    • updateXWPFDocument

      public void updateXWPFDocument(org.apache.poi.xwpf.usermodel.XWPFDocument document, org.imixs.workflow.ItemCollection workitem, List<String> replaceDevList) throws org.imixs.workflow.exceptions.PluginException
      This method updates the XWPFDocument document. The method can be overwritten by subclasses to add additional logic
      Parameters:
      doc -
      workitem -
      replaceDevList -
      Throws:
      org.imixs.workflow.exceptions.PluginException
    • replaceXWPFDocument

      public void replaceXWPFDocument(org.apache.poi.xwpf.usermodel.XWPFDocument doc, String find, String replace)
      Helper method replaces a given text in a XWPFDocument