Merge Document Fields

This script demonstrates how to merge the values of document fields.

When you extract data from a repository, CFS can produce documents that have multiple values for a single field, for example:

#DREFIELD ATTACHMENT="attachment.txt"
#DREFIELD ATTACHMENT="image.jpg"
#DREFIELD ATTACHMENT="document.pdf"

This script shows how to merge the values of these fields, so that the values are contained in a single field, for example:

#DREFIELD ATTACHMENTS="attachment.txt, image.jpg, document.pdf"

Example Script

function handler(document)
   onefield(document,"ATTACHMENT","ATTACHMENTS")
   return true;	
end

function onefield(document,existingfield,newfield)
   if document:hasField(existingfield) then
      local values = { document:getFieldValues(existingfield) }
      local newfieldvalue=""

      for i,v in ipairs(values) do
         if i>1 then
            newfieldvalue = newfieldvalue ..", "
         end
         
         newfieldvalue = newfieldvalue..v
      end

      document:addField(newfield,newfieldvalue)
   end

   return true;
end