<?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: Parsing code from parameter file through content in Data Quality</title>
    <link>https://community.qlik.com/t5/Data-Quality/Parsing-code-from-parameter-file-through-content/m-p/2206093#M867</link>
    <description>&lt;P&gt;I'll be honest, I am not sure why you would want to do this, but I was fascinated to see if I could. There is a big problem with compiling code that uses classes that do not exist. So this has to be done in such a way that class specifics (of the class you want to compile at runtime) are minimised. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The job I wrote to do this look like this.....&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0695b00000Hst0vAAB.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/133169i2342CC6DD903DC11/image-size/large?v=v2&amp;amp;px=999" role="button" title="0695b00000Hst0vAAB.png" alt="0695b00000Hst0vAAB.png" /&gt;&lt;/span&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The tFixedFlowInput is where I am supplying the code for this example. The code is just passed in as a String. The code is being written to a file that I am calling myCode.java using the tFileOutputRaw. That's pretty simple enough. FYI the code that I am passing to the file looks like this.....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;public class MyCode {&lt;/P&gt;&lt;P&gt;	String data1;&lt;/P&gt;&lt;P&gt;	String data2;&lt;/P&gt;&lt;P&gt;	&lt;/P&gt;&lt;P&gt;	public MyCode(String data1, String data2){&amp;nbsp;&lt;/P&gt;&lt;P&gt; this.data1 = data1;&lt;/P&gt;&lt;P&gt; this.data2 = data2;&lt;/P&gt;&lt;P&gt;	}&lt;/P&gt;&lt;P&gt;	&lt;/P&gt;&lt;P&gt;	public String toString(){&lt;/P&gt;&lt;P&gt; return data1 + " " + data2 + " how are you?";&lt;/P&gt;&lt;P&gt;	}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is added to the tFixedFlowInput as such (note the escaped quotes as quotes are used in Java to denote a String)....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"public class MyCode {String data1;String data2;public MyCode(String data1, String data2){ this.data1 = data1;this.data2 = data2;}public String toString(){return data1 + \" \" + data2 + \" how are you?\";}}"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The next step is to compile the file that we have just created and run it. FYI I found the basis of this code here ....&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.netjstech.com/2016/10/how-to-compile-java-program-at-runtime.html" alt="https://www.netjstech.com/2016/10/how-to-compile-java-program-at-runtime.html" target="_blank"&gt;https://www.netjstech.com/2016/10/how-to-compile-java-program-at-runtime.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I set up the tJavaFlex to have a single column output. This is called "class_data". This is printed using the tLogRow. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code in the tJavaFlex can be seen below with notes....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();&lt;/P&gt;&lt;P&gt;// Code to compile - Supplied to the tFileOutputRaw above&lt;/P&gt;&lt;P&gt;&lt;B&gt;int&lt;/B&gt; result = compiler.run(&lt;B&gt;null&lt;/B&gt;, &lt;B&gt;null&lt;/B&gt;, &lt;B&gt;null&lt;/B&gt;, "/Users/richardhall/Documents/MyCode.java");&lt;/P&gt;&lt;P&gt;// Path of the class&lt;/P&gt;&lt;P&gt;File classesDir = &lt;B&gt;new&lt;/B&gt; File("/Users/richardhall/Documents");&lt;/P&gt;&lt;P&gt;// Load and instantiate compiled class.&lt;/P&gt;&lt;P&gt;URLClassLoader classLoader;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;B&gt;try&lt;/B&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;// Loading the class&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;classLoader = URLClassLoader.newInstance(&lt;B&gt;new&lt;/B&gt; URL[] { classesDir.toURI().toURL() });&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Class&amp;lt;?&amp;gt; clazz = Class.forName("MyCode", &lt;B&gt;true&lt;/B&gt;, classLoader);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//The following is a hack to get this to be of any use. What I am doing here is&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//using the constructor of the class that I have created in the previous subjob to&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//act as the only way of receiving variables.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt; Class[] cArg = &lt;B&gt;new&lt;/B&gt; Class[2]; //Our constructor has 2 arguments&lt;/P&gt;&lt;P&gt; cArg[0] = String.&lt;B&gt;class&lt;/B&gt;; //First argument is of *object* type String&lt;/P&gt;&lt;P&gt; cArg[1] = String.&lt;B&gt;class&lt;/B&gt;; //Second argument is of *object* type String&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt; String s1 = "Hello";&lt;/P&gt;&lt;P&gt; String s2 = "World";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt; //The following code instantiates the new class and immediately calls the toString() method&lt;/P&gt;&lt;P&gt; //This is because at compile time, this class we are building does not exist. So I have only access to&lt;/P&gt;&lt;P&gt; //methods that exist on the base Object class. The toString() method has been overridden to return&amp;nbsp;&lt;/P&gt;&lt;P&gt; //the result.&lt;/P&gt;&lt;P&gt; row2.class_data = clazz.getDeclaredConstructor(cArg).newInstance(s1, s2).toString();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;} &lt;B&gt;catch&lt;/B&gt; (MalformedURLException e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// &lt;B&gt;TODO&lt;/B&gt; Auto-generated catch block&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;e.printStackTrace();&lt;/P&gt;&lt;P&gt;} &lt;B&gt;catch&lt;/B&gt; (ClassNotFoundException e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// &lt;B&gt;TODO&lt;/B&gt; Auto-generated catch block&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;e.printStackTrace();&lt;/P&gt;&lt;P&gt;} &lt;B&gt;catch&lt;/B&gt; (IllegalAccessException e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// &lt;B&gt;TODO&lt;/B&gt; Auto-generated catch block&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;e.printStackTrace();&lt;/P&gt;&lt;P&gt;} &lt;B&gt;catch&lt;/B&gt; (InstantiationException e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// &lt;B&gt;TODO&lt;/B&gt; Auto-generated catch block&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;e.printStackTrace();&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;P&gt;With this code in place, you can modify the Java code used by the tFixedFlowInput and get a different result. To start with the code is initially concatenating the first constructor param String with the second, then adding " how are you?". If you have put together this job to try this out, the first Java class is below.....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"public class MyCode {String data1;String data2;public MyCode(String data1, String data2){ this.data1 = data1;this.data2 = data2;}public String toString(){return data1 + \" \" + data2 + \" how are you?\";}}"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;......to test this with another Java class, just replace what is in the tFixedFlowInput with this....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"public class MyCode {String data1;String data2;public MyCode(String data1, String data2){ this.data1 = data1;this.data2 = data2;}public String toString(){return data1 + \" \" + data2 + \" did you see how this worked?\";}}"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As I said, I can't see a great many uses for this. It would be easier to alter the flow of code in a different way. But if you really want to do this and have a use case that maybe I am not thinking of, you can try something like this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 17 Aug 2021 21:54:01 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2021-08-17T21:54:01Z</dc:date>
    <item>
      <title>Parsing code from parameter file through content</title>
      <link>https://community.qlik.com/t5/Data-Quality/Parsing-code-from-parameter-file-through-content/m-p/2206092#M866</link>
      <description>&lt;P&gt;&lt;B&gt;code_parser=System.out.println("Complex Java code to be passed through parameter file".toUpperCase())&lt;/B&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to pass code in standard talend jobs as a filter from parameter file through Context which can be changed later on as per business need. This Java String has to be converted into executable code in Talend.&lt;/P&gt;</description>
      <pubDate>Fri, 15 Nov 2024 23:52:26 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Data-Quality/Parsing-code-from-parameter-file-through-content/m-p/2206092#M866</guid>
      <dc:creator>PDavane</dc:creator>
      <dc:date>2024-11-15T23:52:26Z</dc:date>
    </item>
    <item>
      <title>Re: Parsing code from parameter file through content</title>
      <link>https://community.qlik.com/t5/Data-Quality/Parsing-code-from-parameter-file-through-content/m-p/2206093#M867</link>
      <description>&lt;P&gt;I'll be honest, I am not sure why you would want to do this, but I was fascinated to see if I could. There is a big problem with compiling code that uses classes that do not exist. So this has to be done in such a way that class specifics (of the class you want to compile at runtime) are minimised. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The job I wrote to do this look like this.....&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0695b00000Hst0vAAB.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/133169i2342CC6DD903DC11/image-size/large?v=v2&amp;amp;px=999" role="button" title="0695b00000Hst0vAAB.png" alt="0695b00000Hst0vAAB.png" /&gt;&lt;/span&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The tFixedFlowInput is where I am supplying the code for this example. The code is just passed in as a String. The code is being written to a file that I am calling myCode.java using the tFileOutputRaw. That's pretty simple enough. FYI the code that I am passing to the file looks like this.....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;public class MyCode {&lt;/P&gt;&lt;P&gt;	String data1;&lt;/P&gt;&lt;P&gt;	String data2;&lt;/P&gt;&lt;P&gt;	&lt;/P&gt;&lt;P&gt;	public MyCode(String data1, String data2){&amp;nbsp;&lt;/P&gt;&lt;P&gt; this.data1 = data1;&lt;/P&gt;&lt;P&gt; this.data2 = data2;&lt;/P&gt;&lt;P&gt;	}&lt;/P&gt;&lt;P&gt;	&lt;/P&gt;&lt;P&gt;	public String toString(){&lt;/P&gt;&lt;P&gt; return data1 + " " + data2 + " how are you?";&lt;/P&gt;&lt;P&gt;	}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is added to the tFixedFlowInput as such (note the escaped quotes as quotes are used in Java to denote a String)....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"public class MyCode {String data1;String data2;public MyCode(String data1, String data2){ this.data1 = data1;this.data2 = data2;}public String toString(){return data1 + \" \" + data2 + \" how are you?\";}}"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The next step is to compile the file that we have just created and run it. FYI I found the basis of this code here ....&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.netjstech.com/2016/10/how-to-compile-java-program-at-runtime.html" alt="https://www.netjstech.com/2016/10/how-to-compile-java-program-at-runtime.html" target="_blank"&gt;https://www.netjstech.com/2016/10/how-to-compile-java-program-at-runtime.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I set up the tJavaFlex to have a single column output. This is called "class_data". This is printed using the tLogRow. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code in the tJavaFlex can be seen below with notes....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();&lt;/P&gt;&lt;P&gt;// Code to compile - Supplied to the tFileOutputRaw above&lt;/P&gt;&lt;P&gt;&lt;B&gt;int&lt;/B&gt; result = compiler.run(&lt;B&gt;null&lt;/B&gt;, &lt;B&gt;null&lt;/B&gt;, &lt;B&gt;null&lt;/B&gt;, "/Users/richardhall/Documents/MyCode.java");&lt;/P&gt;&lt;P&gt;// Path of the class&lt;/P&gt;&lt;P&gt;File classesDir = &lt;B&gt;new&lt;/B&gt; File("/Users/richardhall/Documents");&lt;/P&gt;&lt;P&gt;// Load and instantiate compiled class.&lt;/P&gt;&lt;P&gt;URLClassLoader classLoader;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;B&gt;try&lt;/B&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;// Loading the class&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;classLoader = URLClassLoader.newInstance(&lt;B&gt;new&lt;/B&gt; URL[] { classesDir.toURI().toURL() });&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Class&amp;lt;?&amp;gt; clazz = Class.forName("MyCode", &lt;B&gt;true&lt;/B&gt;, classLoader);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//The following is a hack to get this to be of any use. What I am doing here is&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//using the constructor of the class that I have created in the previous subjob to&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//act as the only way of receiving variables.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt; Class[] cArg = &lt;B&gt;new&lt;/B&gt; Class[2]; //Our constructor has 2 arguments&lt;/P&gt;&lt;P&gt; cArg[0] = String.&lt;B&gt;class&lt;/B&gt;; //First argument is of *object* type String&lt;/P&gt;&lt;P&gt; cArg[1] = String.&lt;B&gt;class&lt;/B&gt;; //Second argument is of *object* type String&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt; String s1 = "Hello";&lt;/P&gt;&lt;P&gt; String s2 = "World";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt; //The following code instantiates the new class and immediately calls the toString() method&lt;/P&gt;&lt;P&gt; //This is because at compile time, this class we are building does not exist. So I have only access to&lt;/P&gt;&lt;P&gt; //methods that exist on the base Object class. The toString() method has been overridden to return&amp;nbsp;&lt;/P&gt;&lt;P&gt; //the result.&lt;/P&gt;&lt;P&gt; row2.class_data = clazz.getDeclaredConstructor(cArg).newInstance(s1, s2).toString();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;} &lt;B&gt;catch&lt;/B&gt; (MalformedURLException e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// &lt;B&gt;TODO&lt;/B&gt; Auto-generated catch block&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;e.printStackTrace();&lt;/P&gt;&lt;P&gt;} &lt;B&gt;catch&lt;/B&gt; (ClassNotFoundException e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// &lt;B&gt;TODO&lt;/B&gt; Auto-generated catch block&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;e.printStackTrace();&lt;/P&gt;&lt;P&gt;} &lt;B&gt;catch&lt;/B&gt; (IllegalAccessException e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// &lt;B&gt;TODO&lt;/B&gt; Auto-generated catch block&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;e.printStackTrace();&lt;/P&gt;&lt;P&gt;} &lt;B&gt;catch&lt;/B&gt; (InstantiationException e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;// &lt;B&gt;TODO&lt;/B&gt; Auto-generated catch block&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;e.printStackTrace();&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;P&gt;With this code in place, you can modify the Java code used by the tFixedFlowInput and get a different result. To start with the code is initially concatenating the first constructor param String with the second, then adding " how are you?". If you have put together this job to try this out, the first Java class is below.....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"public class MyCode {String data1;String data2;public MyCode(String data1, String data2){ this.data1 = data1;this.data2 = data2;}public String toString(){return data1 + \" \" + data2 + \" how are you?\";}}"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;......to test this with another Java class, just replace what is in the tFixedFlowInput with this....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"public class MyCode {String data1;String data2;public MyCode(String data1, String data2){ this.data1 = data1;this.data2 = data2;}public String toString(){return data1 + \" \" + data2 + \" did you see how this worked?\";}}"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As I said, I can't see a great many uses for this. It would be easier to alter the flow of code in a different way. But if you really want to do this and have a use case that maybe I am not thinking of, you can try something like this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Aug 2021 21:54:01 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Data-Quality/Parsing-code-from-parameter-file-through-content/m-p/2206093#M867</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-08-17T21:54:01Z</dc:date>
    </item>
    <item>
      <title>Re: Parsing code from parameter file through content</title>
      <link>https://community.qlik.com/t5/Data-Quality/Parsing-code-from-parameter-file-through-content/m-p/2206094#M868</link>
      <description>&lt;P&gt;Hello rhall. Thank you for the help. Can you please attach zipped export of this job.&lt;/P&gt;</description>
      <pubDate>Wed, 01 Sep 2021 17:46:50 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Data-Quality/Parsing-code-from-parameter-file-through-content/m-p/2206094#M868</guid>
      <dc:creator>PDavane</dc:creator>
      <dc:date>2021-09-01T17:46:50Z</dc:date>
    </item>
    <item>
      <title>Re: Parsing code from parameter file through content</title>
      <link>https://community.qlik.com/t5/Data-Quality/Parsing-code-from-parameter-file-through-content/m-p/2206095#M869</link>
      <description>&lt;P&gt;Hi @Pooja D​, apologies but I am afraid I do not have this job anymore. I wrote it and threw it away. However, all of the information you need is included in the post. &lt;/P&gt;</description>
      <pubDate>Wed, 01 Sep 2021 17:57:45 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Data-Quality/Parsing-code-from-parameter-file-through-content/m-p/2206095#M869</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2021-09-01T17:57:45Z</dc:date>
    </item>
  </channel>
</rss>

