<?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>topic Re: Custome Code in Qlik Automate</title>
    <link>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2545014#M6490</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/92536"&gt;@Ken_T&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;It was the following:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;STRONG&gt;Externally hosted custom code&lt;/STRONG&gt;&lt;BR /&gt;The Qlik Application Automation for OEM Custom code block does not support including libraries. If you want to add comprehensive custom code to your automation and include e.g. libraries, you should host your custom code externally.&lt;/P&gt;&lt;P&gt;An easy solution is to use repl.it to host your code. Repl.it offers a free account but you need to upgrade to a paid account in order to make your code private.&lt;/P&gt;&lt;P&gt;Here's an example of a Repl in repl.it of type PHP Webserver to host some PHP code, which is exposed using an HTTPS URL:&lt;/P&gt;&lt;P&gt;PHP code in Repl.it:&lt;/P&gt;&lt;P&gt;$input=json_decode(file_get_contents("php://input")); //get inputs from Blend&lt;BR /&gt;//add logic here&lt;BR /&gt;echo json_encode($input); //send response back to automation&lt;/P&gt;&lt;P&gt;Copy the unique URL of your Repl and use it in a block Call URL to include it in your automation:&lt;/P&gt;&lt;P&gt;Obviously you will need to add security checks to avoid unauthorized access to your hosted code, and you have to make sure to use a private Repl (requires a paid account).&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Essentially using the Call URL block to ping any external source, do *something*, then the external source returns a response which you can then use in the Automation.&lt;/P&gt;</description>
    <pubDate>Tue, 17 Mar 2026 20:12:26 GMT</pubDate>
    <dc:creator>André</dc:creator>
    <dc:date>2026-03-17T20:12:26Z</dc:date>
    <item>
      <title>Custome Code</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2419622#M3152</link>
      <description>&lt;P&gt;Is it possible to run python code in custom block of the Application Automation?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I wrote a custom code to send a visualization&amp;nbsp; in pdf to more than 100 people in python after reading the visualization from Qlik Cloud, I want to know if I can place the same code in the Application Automation block and run it?&lt;/P&gt;</description>
      <pubDate>Thu, 15 Feb 2024 15:37:36 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2419622#M3152</guid>
      <dc:creator>olaoyesunday1</dc:creator>
      <dc:date>2024-02-15T15:37:36Z</dc:date>
    </item>
    <item>
      <title>Re: Custome Code</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2419693#M3153</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;I'm not sure if about the use and execution of your custom code.  But take a look at the existing reporting capabilities in Qlik Cloud.&lt;BR /&gt;&lt;BR /&gt;1. Reporting from Qlik Cloud Analytics&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/SaaS-reporting-intro.htm#:~:text=Reports%20of%20Qlik%20Sense%20sheets,own%20fully%20custom%20report%20definition" target="_blank"&gt;https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/SaaS-reporting-intro.htm#:~:text=Reports%20of%20Qlik%20Sense%20sheets,own%20fully%20custom%20report%20definition&lt;/A&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Other links:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/SaaS-reporting-intro.htm" target="_blank"&gt;https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Reporting/SaaS-reporting-intro.htm&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://community.qlik.com/t5/Design/Introducing-Tabular-Reporting-Create-and-Distribute-Operational/ba-p/2152019" target="_blank"&gt;https://community.qlik.com/t5/Design/Introducing-Tabular-Reporting-Create-and-Distribute-Operational/ba-p/2152019&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://community.qlik.com/t5/Video-Transcripts/Q-amp-A-with-Qlik-Qlik-Cloud-Reporting/ta-p/2125442" target="_blank"&gt;https://community.qlik.com/t5/Video-Transcripts/Q-amp-A-with-Qlik-Qlik-Cloud-Reporting/ta-p/2125442&lt;/A&gt;</description>
      <pubDate>Thu, 15 Feb 2024 17:51:18 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2419693#M3153</guid>
      <dc:creator>Ray_Strother</dc:creator>
      <dc:date>2024-02-15T17:51:18Z</dc:date>
    </item>
    <item>
      <title>Re: Custome Code</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2419722#M3154</link>
      <description>&lt;P&gt;Thanks for this, before reading all the documentation, what I am trying to achieve is this I want to print a long table of 211 rows that span more than 4 pdf pages but Qlik can only take the snapshot of a visible sheet. I have done it on my desktop with the code below but I want to know how&amp;nbsp; Ican&amp;nbsp; place the code inside a custom block. Here is the code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; pytoqlik&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; numpy &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; np&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; seaborn &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;# Seaborn provides us with some sample datasets&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; pandas &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; pd &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;# We will need pandas to manipulate the extracted DataFrame&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; matplotlib.pyplot &lt;/SPAN&gt;&lt;SPAN&gt;as&lt;/SPAN&gt;&lt;SPAN&gt; plt&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; reportlab.lib.units &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; inch&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; reportlab.lib.pagesizes &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; letter, landscape&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; reportlab.platypus &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; SimpleDocTemplate&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;from&lt;/SPAN&gt;&lt;SPAN&gt; reportlab.platypus.tables &lt;/SPAN&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; Table,TableStyle,colors&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;#from my_table_data import my_data # import the data&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;key&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'eyJhbGciOiJFUzM4' # api key&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;url&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'&lt;A href="https://example.eu.qlikcloud.com" target="_blank" rel="noopener"&gt;https://example.eu.qlikcloud.com&lt;/A&gt;'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ID&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'d7a3cf6d-1254-4d41-ad12-e7ca63c59348' #app id&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;p2q &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; pytoqlik.Pytoqlik(&lt;/SPAN&gt;&lt;SPAN&gt;api_key&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;key, &lt;/SPAN&gt;&lt;SPAN&gt;tenant&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;url, &lt;/SPAN&gt;&lt;SPAN&gt;appId&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;ID)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;# Get data from Qlik Sense chart&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;table_data&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;p2q.toPy(&lt;/SPAN&gt;&lt;SPAN&gt;'FrzkR'&lt;/SPAN&gt;&lt;SPAN&gt;) &lt;SPAN class="lia-mentions-gte-v2-autocomplete"&gt;&lt;SPAN class="lia-mentions-gte-v2-trigger" contenteditable="false"&gt;#&lt;/SPAN&gt;&lt;SPAN class="lia-mentions-search-term"&gt;object id&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;# Display n rows&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;pd.set_option(&lt;/SPAN&gt;&lt;SPAN&gt;'display.max_rows'&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;211&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;table_data&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;# Save the dataframe as pdf using reportLab.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;pdf &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; SimpleDocTemplate(&lt;/SPAN&gt;&lt;SPAN&gt;"long3.pdf"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;pagesize&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;landscape(letter))&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;#pdf = SimpleDocTemplate("long3.pdf", pagesize=letter)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;# Extract column names and data&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;column_headers &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;list&lt;/SPAN&gt;&lt;SPAN&gt;(table_data.columns)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;data_rows &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; [&lt;/SPAN&gt;&lt;SPAN&gt;list&lt;/SPAN&gt;&lt;SPAN&gt;(row) &lt;/SPAN&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; _, row &lt;/SPAN&gt;&lt;SPAN&gt;in&lt;/SPAN&gt;&lt;SPAN&gt; table_data.iterrows()]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;# Create the table&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;table_style &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; ([&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'BACKGROUND'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), colors.grey),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'TEXTCOLOR'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), colors.whitesmoke),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'ALIGN'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), &lt;/SPAN&gt;&lt;SPAN&gt;'CENTER'&lt;/SPAN&gt;&lt;SPAN&gt;),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'FONTNAME'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), &lt;/SPAN&gt;&lt;SPAN&gt;'Helvetica-Bold'&lt;/SPAN&gt;&lt;SPAN&gt;),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'FONTSIZE'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), &lt;/SPAN&gt;&lt;SPAN&gt;11&lt;/SPAN&gt;&lt;SPAN&gt;),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'BOTTOMPADDING'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;), &lt;/SPAN&gt;&lt;SPAN&gt;12&lt;/SPAN&gt;&lt;SPAN&gt;),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'BACKGROUND'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), colors.beige),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'TEXTCOLOR'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), colors.black),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'ALIGN'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), &lt;/SPAN&gt;&lt;SPAN&gt;'CENTER'&lt;/SPAN&gt;&lt;SPAN&gt;),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'FONTNAME'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), &lt;/SPAN&gt;&lt;SPAN&gt;'Helvetica'&lt;/SPAN&gt;&lt;SPAN&gt;),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'FONTSIZE'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), &lt;/SPAN&gt;&lt;SPAN&gt;12&lt;/SPAN&gt;&lt;SPAN&gt;),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; (&lt;/SPAN&gt;&lt;SPAN&gt;'BOTTOMPADDING'&lt;/SPAN&gt;&lt;SPAN&gt;, (&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), (&lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;-&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;), &lt;/SPAN&gt;&lt;SPAN&gt;8&lt;/SPAN&gt;&lt;SPAN&gt;),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;])&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;c_width &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; [&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;inch, &lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;inch,&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;inch,&lt;/SPAN&gt;&lt;SPAN&gt;1.5&lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;inch,&lt;/SPAN&gt;&lt;SPAN&gt;1.5&lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;inch,&lt;/SPAN&gt;&lt;SPAN&gt;1.5&lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;inch,&lt;/SPAN&gt;&lt;SPAN&gt;1.5&lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;inch,&lt;/SPAN&gt;&lt;SPAN&gt;1.5&lt;/SPAN&gt;&lt;SPAN&gt;*&lt;/SPAN&gt;&lt;SPAN&gt;inch]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;table &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; Table([column_headers] &lt;/SPAN&gt;&lt;SPAN&gt;+&lt;/SPAN&gt;&lt;SPAN&gt; data_rows, &lt;/SPAN&gt;&lt;SPAN&gt;rowHeights&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;25&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;repeatRows&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;colWidths&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;c_width, &lt;/SPAN&gt;&lt;SPAN&gt;style&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;table_style)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;# Adding the table to the pdf file&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;pdf_table &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt; [table]&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;pdf.build(pdf_table).&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;import&lt;/SPAN&gt;&lt;SPAN&gt; win32com.client&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;ol&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;win32com.client.Dispatch(&lt;/SPAN&gt;&lt;SPAN&gt;"office365"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;olmailitem&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;0x&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;#size of the new email&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;newmail&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;ol.CreateItem(olmailitem)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;newmail.Subject&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;'Testing Mail'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;newmail.To&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt;&lt;SPAN&gt;'user1@yahoo.com', ... 'user200@example.com'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;#newmail.CC='xyz@example.com'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;#newmail.BCC='xyz@example.com'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;newmail.Body&lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;'Hello, this is a test email.'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;attach &lt;/SPAN&gt;&lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;'&lt;/SPAN&gt;&lt;SPAN&gt;long.pdf'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;newmail.Attachments.Add(attach)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;# To display the mail before sending it&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;#newmail.Display() &lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;newmail.Send()&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;I used pytoQlik library here but which library can I use and how can I connect the App Id from the custom code and the object Id that I want to print in pdf ? then send them to multiple users of over 200 users.&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 15 Feb 2024 19:40:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2419722#M3154</guid>
      <dc:creator>olaoyesunday1</dc:creator>
      <dc:date>2024-02-15T19:40:42Z</dc:date>
    </item>
    <item>
      <title>Re: Custome Code</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2419795#M3157</link>
      <description>&lt;P&gt;Have a read of this, it is quite limited (you can't install additional packages)&amp;nbsp;&lt;BR /&gt;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_QlikAutomation/advanced/custom-code.htm" target="_blank" rel="noopener"&gt;Custom code block | Qlik Cloud Help&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;However you can use a third party to run more complex code and use the 'Call URL' block&lt;BR /&gt;&lt;A href="https://help.qlik.com/en-US/blendr/Content/blend-editor/custom-scripts-in-blends.htm" target="_blank" rel="noopener"&gt;Custom scripts | Qlik&amp;nbsp;Application&amp;nbsp;Automation for OEM (Blendr.io) Help&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 16 Feb 2024 04:20:55 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2419795#M3157</guid>
      <dc:creator>André</dc:creator>
      <dc:date>2024-02-16T04:20:55Z</dc:date>
    </item>
    <item>
      <title>Re: Custome Code</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2545010#M6489</link>
      <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/219456"&gt;@André&lt;/a&gt;&amp;nbsp;do you have an updated link for "&lt;SPAN&gt;&amp;nbsp;third party to run more complex code and use the 'Call URL' block" it does not work anymore.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Mar 2026 19:02:04 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2545010#M6489</guid>
      <dc:creator>Ken_T</dc:creator>
      <dc:date>2026-03-17T19:02:04Z</dc:date>
    </item>
    <item>
      <title>Re: Custome Code</title>
      <link>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2545014#M6490</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/92536"&gt;@Ken_T&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;It was the following:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;&lt;STRONG&gt;Externally hosted custom code&lt;/STRONG&gt;&lt;BR /&gt;The Qlik Application Automation for OEM Custom code block does not support including libraries. If you want to add comprehensive custom code to your automation and include e.g. libraries, you should host your custom code externally.&lt;/P&gt;&lt;P&gt;An easy solution is to use repl.it to host your code. Repl.it offers a free account but you need to upgrade to a paid account in order to make your code private.&lt;/P&gt;&lt;P&gt;Here's an example of a Repl in repl.it of type PHP Webserver to host some PHP code, which is exposed using an HTTPS URL:&lt;/P&gt;&lt;P&gt;PHP code in Repl.it:&lt;/P&gt;&lt;P&gt;$input=json_decode(file_get_contents("php://input")); //get inputs from Blend&lt;BR /&gt;//add logic here&lt;BR /&gt;echo json_encode($input); //send response back to automation&lt;/P&gt;&lt;P&gt;Copy the unique URL of your Repl and use it in a block Call URL to include it in your automation:&lt;/P&gt;&lt;P&gt;Obviously you will need to add security checks to avoid unauthorized access to your hosted code, and you have to make sure to use a private Repl (requires a paid account).&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Essentially using the Call URL block to ping any external source, do *something*, then the external source returns a response which you can then use in the Automation.&lt;/P&gt;</description>
      <pubDate>Tue, 17 Mar 2026 20:12:26 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Qlik-Automate/Custome-Code/m-p/2545014#M6490</guid>
      <dc:creator>André</dc:creator>
      <dc:date>2026-03-17T20:12:26Z</dc:date>
    </item>
  </channel>
</rss>

