<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Store excel files in postgresql via NiFi groovy script in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/Store-excel-files-in-postgresql-via-NiFi-groovy-script/m-p/370494#M240750</link>
    <description>&lt;P&gt;Hello!&lt;BR /&gt;So I am having a problem with the script I wrote.&amp;nbsp;&lt;BR /&gt;I am trying to save&amp;nbsp; content of a flowfiles I am getting, which are excel files.&lt;BR /&gt;But I am getting an error&lt;/P&gt;&lt;P&gt;(had to delete image due to corporate safety)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;Here's my script:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;import java.nio.charset.StandardCharsets
import org.apache.nifi.controller.ControllerService
import groovy.sql.Sql

def  ff = session.get()
if(!ff)return


def lookup = context.controllerServiceLookup
//def dbServiceName = databaseConnectionPoolName.value  


def dbcpServiceId = lookup.getControllerServiceIdentifiers(ControllerService).find
{ cs -&amp;gt; lookup.getControllerServiceName(cs) == 'DBCPConnectionPool_GP_prj_gistek_preprod' }

def conn = lookup.getControllerService(dbcpServiceId)?.getConnection()
def sql = new Sql(conn)

session.read(ff, {inputStream -&amp;gt;
	def statement  = "INSERT INTO publish.templates (excel_template) VALUES (?)" 
	def params = [inputStream]
	sql.executeInsert(statement, params)} as InputStreamCallback)

conn?.close()


session.transfer(ff, REL_SUCCESS)
session.commit()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I tested connection with data base by trying to insert some test values and it worked fine.&lt;BR /&gt;Apparently there's some problems with content of a flow file, or should I decode/encode it fist?&lt;BR /&gt;&lt;BR /&gt;Any help would be appriciated, thank you!&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 11 May 2023 11:48:36 GMT</pubDate>
    <dc:creator>Brenigan</dc:creator>
    <dc:date>2023-05-11T11:48:36Z</dc:date>
    <item>
      <title>Store excel files in postgresql via NiFi groovy script</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Store-excel-files-in-postgresql-via-NiFi-groovy-script/m-p/370494#M240750</link>
      <description>&lt;P&gt;Hello!&lt;BR /&gt;So I am having a problem with the script I wrote.&amp;nbsp;&lt;BR /&gt;I am trying to save&amp;nbsp; content of a flowfiles I am getting, which are excel files.&lt;BR /&gt;But I am getting an error&lt;/P&gt;&lt;P&gt;(had to delete image due to corporate safety)&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;Here's my script:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;import java.nio.charset.StandardCharsets
import org.apache.nifi.controller.ControllerService
import groovy.sql.Sql

def  ff = session.get()
if(!ff)return


def lookup = context.controllerServiceLookup
//def dbServiceName = databaseConnectionPoolName.value  


def dbcpServiceId = lookup.getControllerServiceIdentifiers(ControllerService).find
{ cs -&amp;gt; lookup.getControllerServiceName(cs) == 'DBCPConnectionPool_GP_prj_gistek_preprod' }

def conn = lookup.getControllerService(dbcpServiceId)?.getConnection()
def sql = new Sql(conn)

session.read(ff, {inputStream -&amp;gt;
	def statement  = "INSERT INTO publish.templates (excel_template) VALUES (?)" 
	def params = [inputStream]
	sql.executeInsert(statement, params)} as InputStreamCallback)

conn?.close()


session.transfer(ff, REL_SUCCESS)
session.commit()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I tested connection with data base by trying to insert some test values and it worked fine.&lt;BR /&gt;Apparently there's some problems with content of a flow file, or should I decode/encode it fist?&lt;BR /&gt;&lt;BR /&gt;Any help would be appriciated, thank you!&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 11 May 2023 11:48:36 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Store-excel-files-in-postgresql-via-NiFi-groovy-script/m-p/370494#M240750</guid>
      <dc:creator>Brenigan</dc:creator>
      <dc:date>2023-05-11T11:48:36Z</dc:date>
    </item>
    <item>
      <title>Re: Store excel files in postgresql via NiFi groovy script</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Store-excel-files-in-postgresql-via-NiFi-groovy-script/m-p/370514#M240752</link>
      <description>&lt;P&gt;Ok i fixed it myself actually &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;In case someone is interested here's my solution:&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;import java.nio.charset.StandardCharsets
import org.apache.nifi.controller.ControllerService
import groovy.sql.Sql

def  ff = session.get()
if(!ff)return

def lookup = context.controllerServiceLookup
//def dbServiceName = databaseConnectionPoolName.value  

def dbcpServiceId = lookup.getControllerServiceIdentifiers(ControllerService).find
{ cs -&amp;gt; lookup.getControllerServiceName(cs) == 'DBCPConnectionPool_GP_prj_gistek_preprod' }

def conn = lookup.getControllerService(dbcpServiceId)?.getConnection()
def sql = new Sql(conn)

session.read(ff, {inputStream -&amp;gt;
         //def statement  = "INSERT INTO publish.templates (excel_template) VALUES (?)" 
         sql.executeInsert "INSERT INTO publish.templates (excel_template) VALUES (${inputStream.getBytes()})" 
} as InputStreamCallback)

conn?.close()
session.transfer(ff, REL_SUCCESS)
session.commit()&lt;/LI-CODE&gt;</description>
      <pubDate>Thu, 11 May 2023 11:46:46 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Store-excel-files-in-postgresql-via-NiFi-groovy-script/m-p/370514#M240752</guid>
      <dc:creator>Brenigan</dc:creator>
      <dc:date>2023-05-11T11:46:46Z</dc:date>
    </item>
  </channel>
</rss>

