<?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: TJavaRow with condition in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339051#M107232</link>
    <description>&lt;P&gt;Can you share the code as text please? It is easier to try out that way &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 28 May 2019 21:22:53 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2019-05-28T21:22:53Z</dc:date>
    <item>
      <title>TJavaRow with condition</title>
      <link>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339050#M107231</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt; 
&lt;P&gt;I have this example:&lt;/P&gt; 
&lt;P&gt;"reste"=Voix/(supp+1)&lt;/P&gt; 
&lt;P&gt;for example, for code1: "number" to distribute =2&lt;/P&gt; 
&lt;P&gt;1) for "rest" = 584 / (2+1)=194.66&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; for "rest" = 840 / (3+1) =210&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; for "rest" = 863 / (3+1) =215.75&amp;nbsp;we assign a "Number"=1 -&amp;gt; Supp = Supp+1 ( because 215,75 is the max)&lt;/P&gt; 
&lt;P&gt;2)&amp;nbsp;for "rest" = 584 / (2+1)=194.66&amp;nbsp;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; for "rest" = 840 / (3+1) =210&amp;nbsp;we assign a "Number"=1 -&amp;gt; Supp = Supp+1 ( because 210 is the max)&lt;/P&gt; 
&lt;P&gt;&amp;nbsp; &amp;nbsp; for "rest" = 863 / (3+1&lt;U&gt;+1&lt;/U&gt;) =172.6&lt;/P&gt; 
&lt;P&gt;result:&lt;/P&gt; 
&lt;P&gt;code|Supp&lt;/P&gt; 
&lt;P&gt;&amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;2&lt;/P&gt; 
&lt;P&gt;&amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp;|&amp;nbsp; 4&amp;nbsp; (3&lt;U&gt;+1&lt;/U&gt;)&lt;/P&gt; 
&lt;P&gt;&amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp; |&amp;nbsp; 4 (3&lt;U&gt;+1&lt;/U&gt;)&amp;nbsp;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;and we repete for each group of code the same procedure precedent.&lt;/P&gt; 
&lt;P&gt;I try this code but il doesn't works&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1.PNG" style="width: 400px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M5EK.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/149122iCADD8046B5743F08/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M5EK.png" alt="0683p000009M5EK.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2.PNG" style="width: 144px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009M5EP.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/129408i695B88EF99258E0A/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009M5EP.png" alt="0683p000009M5EP.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 28 May 2019 15:20:08 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339050#M107231</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-05-28T15:20:08Z</dc:date>
    </item>
    <item>
      <title>Re: TJavaRow with condition</title>
      <link>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339051#M107232</link>
      <description>&lt;P&gt;Can you share the code as text please? It is easier to try out that way &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 28 May 2019 21:22:53 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339051#M107232</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-05-28T21:22:53Z</dc:date>
    </item>
    <item>
      <title>Re: TJavaRow with condition</title>
      <link>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339052#M107233</link>
      <description>&lt;P&gt;output_row.code = input_row.code;&lt;BR /&gt;output_row.number = input_row.number;&lt;BR /&gt;output_row.VOIX = input_row.VOIX;&lt;BR /&gt;output_row.supp = input_row.supp;&lt;BR /&gt;output_row.rest = input_row.rest;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;String code = input_row.code;&lt;BR /&gt;int num = input_row.number;&lt;BR /&gt;//double reste =Double.valueOf(input_row.VOIX/(input_row.supp+1+1));&lt;/P&gt;
&lt;P&gt;if( code.contains(context.current_code) ) {&lt;BR /&gt;context.to_distribute -= 1 ;&lt;BR /&gt;output_row.supp += ( 0 &amp;gt; context.to_distribute ? 0 : 1 );&lt;BR /&gt;context.reste= Double.valueOf(input_row.VOIX/(input_row.supp+1+1));&lt;BR /&gt;&lt;BR /&gt;} else if (context.reste &amp;gt;= input_row.rest) {&lt;BR /&gt;context.current_code = input_row.code;&lt;BR /&gt;context.to_distribute = input_row.number - 1;&lt;BR /&gt;context.reste= Double.valueOf(input_row.VOIX/(input_row.supp+1+1));&lt;BR /&gt;&lt;BR /&gt;output_row.supp += ( 0 &amp;gt; context.to_distribute ? 0 : 1 );&lt;BR /&gt;output_row.rest=context.reste;&lt;BR /&gt;}&lt;/P&gt;</description>
      <pubDate>Tue, 28 May 2019 22:05:19 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339052#M107233</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-05-28T22:05:19Z</dc:date>
    </item>
    <item>
      <title>Re: TJavaRow with condition</title>
      <link>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339053#M107234</link>
      <description>&lt;P&gt;The main problem you have is that you are assigning the output_row values at the very beginning. These are not normal variables. You should only assign these once, once you have calculated your values. You are also trying to increment output_row values, this is not ideal either.&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;Your IF conditions look a little confusing, but that could just be the logic you want. What if neither of the conditions are true? Do you require an "else"?&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;P&gt;I have adjusted your code so that it will work. The logic may not be quite correct (as explained briefly above), but this will change the values when the conditions are met.&lt;/P&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt; 
&lt;PRE&gt;//output_row.code = input_row.code;
//output_row.number = input_row.number;
//output_row.VOIX = input_row.VOIX;
//output_row.supp = input_row.supp;
//output_row.rest = input_row.rest;

int VOIX = input_row.VOIX;
int supp = input_row.supp;
double rest = input_row.rest;

String code = input_row.code;
int number = input_row.number;

if( code.contains(context.current_code) ) {
	context.to_distribute -= 1 ;
	context.reste= ((double)VOIX)/(((double)supp)+1.0+1.0);
	supp += ( 0 &amp;gt; context.to_distribute ? 0 : 1 );
	output_row.supp = supp;
	output_row.code = code;
	output_row.number = number;
	output_row.VOIX = VOIX;
	output_row.rest=context.reste;

} else if (context.reste &amp;gt;= rest) {
	context.current_code = code;
	context.to_distribute = number - 1;
	context.reste= ((double)VOIX)/(((double)supp)+1.0+1.0);
	supp += ( 0 &amp;gt; context.to_distribute ? 0 : 1 );
	output_row.supp = supp;
	output_row.rest=context.reste;
	output_row.code = code;
	output_row.number = number;
	output_row.VOIX = VOIX;

}&lt;/PRE&gt;</description>
      <pubDate>Wed, 29 May 2019 10:19:00 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339053#M107234</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-05-29T10:19:00Z</dc:date>
    </item>
    <item>
      <title>Re: TJavaRow with condition</title>
      <link>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339054#M107235</link>
      <description>&lt;P&gt;But my problem is that I can not apply the logic of my example. how can I distribute "number" each time on the value of the maximum "rest"?&amp;nbsp;is that this java code is enough or I have to apply a loop?&lt;/P&gt;</description>
      <pubDate>Wed, 29 May 2019 10:43:37 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339054#M107235</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-05-29T10:43:37Z</dc:date>
    </item>
    <item>
      <title>Re: TJavaRow with condition</title>
      <link>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339055#M107236</link>
      <description>&lt;P&gt;I'm afraid I do not understand the logic. Your example does not give enough information as to why each of the equations take place? Maybe a simple example of an input table and expected output table would help? You have to remember that we do not have the business requirement or your understanding of what you are trying to achieve. A lot of the time I can infer from input to output (spotting the logical flow), but I just don't see it here I am afraid.&lt;/P&gt;</description>
      <pubDate>Wed, 29 May 2019 11:15:07 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339055#M107236</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-05-29T11:15:07Z</dc:date>
    </item>
    <item>
      <title>Re: TJavaRow with condition</title>
      <link>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339056#M107237</link>
      <description>&lt;P&gt;the input is :&lt;BR /&gt;code|number|rest|supp&lt;BR /&gt;1 |2 |150 |4&lt;BR /&gt;1 |2 |125 |1&lt;BR /&gt;1 |2 |110 |1&lt;BR /&gt;2 |3 |145 |0&lt;BR /&gt;2 |3 |130 |3&lt;BR /&gt;2 |3 |50 |1&lt;BR /&gt;2 |3 |10 |4&lt;/P&gt;
&lt;P&gt;The output of the first transformation is :&lt;BR /&gt;1 |2 |150 |5&lt;BR /&gt;1 |2 |125 |2&lt;BR /&gt;1 |2 |110 |1&lt;BR /&gt;2 |3 |145 |1&lt;BR /&gt;2 |3 |130 |4&lt;BR /&gt;2 |3 |50 |2&lt;BR /&gt;2 |3 |10 |4&lt;/P&gt;
&lt;P&gt;And you said :&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;"reste"=Voix/(supp+1)&lt;/PRE&gt;
&lt;P&gt;what is "Voix" ?&lt;/P&gt;
&lt;P&gt;You added :&lt;BR /&gt;for example, for code1: "number" to distribute =2&lt;/P&gt;
&lt;P&gt;1) for "rest" = 584 / (2+1)=194.66 &lt;FONT color="#0000FF"&gt;// where is 2 from ? is it because number=2 ?&lt;/FONT&gt;&lt;BR /&gt;for "rest" = 840 / (3+1) =210 &lt;FONT color="#0000FF"&gt;// where is 3 from ?&lt;/FONT&gt;&lt;BR /&gt;for "rest" = 863 / (3+1) =215.75 &lt;FONT color="#0000FF"&gt;// where is 3 from ?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 29 May 2019 16:02:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/TJavaRow-with-condition/m-p/2339056#M107237</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2019-05-29T16:02:10Z</dc:date>
    </item>
  </channel>
</rss>

