<?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: Salesforce: Don't update Record on Upsert in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318024#M88402</link>
    <description>Hi,&lt;BR /&gt;This is the standard behaviour.&lt;BR /&gt;However, if you want to push only new or changed records to Salesforce, you need to determine by yourself the subset (select and compare records before to upsert). I suggest you to compute a before and after image using a MD5 string based on all fields of the Talend schema.&lt;BR /&gt;Regards,&lt;BR /&gt;TRF</description>
    <pubDate>Fri, 31 Mar 2017 08:16:43 GMT</pubDate>
    <dc:creator>TRF</dc:creator>
    <dc:date>2017-03-31T08:16:43Z</dc:date>
    <item>
      <title>Salesforce: Don't update Record on Upsert</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318023#M88401</link>
      <description>Hello Community&amp;nbsp; 
&lt;BR /&gt;We have several salesforce upserts and the Problem that every Upsert will change the Modified Date, even when the Record is not Changed. 
&lt;BR /&gt;I think this is the standard behaviour.&amp;nbsp; 
&lt;BR /&gt;Is it possible to leave the whole Upsert process untouched or at least the Modify Date Field from Salesforce ? 
&lt;BR /&gt;I think about, if these topic solves the Problem but I'm not sure ..sorry for my limited knowledge&amp;nbsp;:&amp;nbsp; 
&lt;A href="https://community.qlik.com/s/feed/0D53p00007vCjk5CAC" target="_blank" rel="nofollow noopener noreferrer"&gt;https://community.talend.com/t5/Design-and-Development/resolved-tMap-update-only-if-value-is-non-Null/td-p/70008&lt;/A&gt; 
&lt;BR /&gt;best regards john&amp;nbsp;</description>
      <pubDate>Sat, 16 Nov 2024 09:56:58 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318023#M88401</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2024-11-16T09:56:58Z</dc:date>
    </item>
    <item>
      <title>Re: Salesforce: Don't update Record on Upsert</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318024#M88402</link>
      <description>Hi,&lt;BR /&gt;This is the standard behaviour.&lt;BR /&gt;However, if you want to push only new or changed records to Salesforce, you need to determine by yourself the subset (select and compare records before to upsert). I suggest you to compute a before and after image using a MD5 string based on all fields of the Talend schema.&lt;BR /&gt;Regards,&lt;BR /&gt;TRF</description>
      <pubDate>Fri, 31 Mar 2017 08:16:43 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318024#M88402</guid>
      <dc:creator>TRF</dc:creator>
      <dc:date>2017-03-31T08:16:43Z</dc:date>
    </item>
    <item>
      <title>Re: Salesforce: Don't update Record on Upsert</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318025#M88403</link>
      <description>Hello TRF&amp;nbsp;
&lt;BR /&gt;I never heard about an MD5 Based &amp;nbsp;generated Field in Talend.&amp;nbsp;
&lt;BR /&gt;But I'm not so confident with special stuff.
&lt;BR /&gt;Another idea, could i make an inquiry for Fields on the output Salesforce Table to check if Field is not changed ?&amp;nbsp;
&lt;BR /&gt;Or is this more complex as the other one.
&lt;BR /&gt;best regards john&amp;nbsp;</description>
      <pubDate>Mon, 03 Apr 2017 08:13:24 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318025#M88403</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-04-03T08:13:24Z</dc:date>
    </item>
    <item>
      <title>Re: Salesforce: Don't update Record on Upsert</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318026#M88404</link>
      <description>Hi,
&lt;BR /&gt;If you want to compute a MD5 "image" or signature of records, you need to do it by yourself using a tJavaXxxx component.
&lt;BR /&gt;With tSalesforceOutput components, you can only ignore NULL values, no way to detect changed only records.
&lt;BR /&gt;Here a little more details for my suggestion:
&lt;BR /&gt;- select desired records from Salesforce
&lt;BR /&gt;- compute before image (MD5 or other)
&lt;BR /&gt;- store result + key (external key, not id) giving olgImg (tHashOutput for example)
&lt;BR /&gt;- read records from source (CSV file, database or other) giving newRecords (tHashOutput for example)
&lt;BR /&gt;- compute after image (MD5 or other) based on same field (be carefull to have the format for dates and decimal values) giving newImg
&lt;BR /&gt;- inner join newImg and oldImg using tMap with both result and key (main newImg and lookup oldImg) and catch rejected records
&lt;BR /&gt;- rejected records are those which are changed or new
&lt;BR /&gt;&amp;nbsp; - retrieve them (using key) from newRecords
&lt;BR /&gt;&amp;nbsp; - push them into Salesforce using Upsert operation
&lt;BR /&gt;Hope this helps,
&lt;BR /&gt;TRF</description>
      <pubDate>Mon, 03 Apr 2017 08:58:20 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318026#M88404</guid>
      <dc:creator>TRF</dc:creator>
      <dc:date>2017-04-03T08:58:20Z</dc:date>
    </item>
    <item>
      <title>Re: Salesforce: Don't update Record on Upsert</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318027#M88405</link>
      <description>Hello TRF 
&lt;BR /&gt;Yes, &amp;nbsp;i think &amp;nbsp;this approach helps a lot and&amp;nbsp; 
&lt;BR /&gt;idea to solve this with md5 i think is quite good ..thanks&amp;nbsp; 
&lt;BR /&gt;So.. &amp;nbsp;I've seen some components in the exchange.&amp;nbsp; 
&lt;BR /&gt;May some of them could fit for us. 
&lt;BR /&gt;But honestly &amp;nbsp;i have to admit ....&amp;nbsp;&amp;nbsp;I had to &amp;nbsp;rethink about the whole Topic and there some Drawbacks which &amp;nbsp;are coming in my mind. 
&lt;BR /&gt;Even when i change only modified Records, i cannot see the last "non automatic changes".&amp;nbsp; 
&lt;BR /&gt;I think this doesn't work easily.&amp;nbsp; 
&lt;BR /&gt;Neverthless thanks for your thoughts about MD 5 it helps us for other projects too.. 
&lt;BR /&gt;best regards john&amp;nbsp;</description>
      <pubDate>Mon, 03 Apr 2017 13:35:46 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318027#M88405</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2017-04-03T13:35:46Z</dc:date>
    </item>
    <item>
      <title>Re: Salesforce: Don't update Record on Upsert</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318028#M88406</link>
      <description>Well, if necessary I can help you to implemente the solution. 
&lt;BR /&gt;For now,&amp;nbsp; 
&lt;BR /&gt;1- define a routine (here called "GetHashCode") with a method (here getHashCode) to compute MD5 signature: 
&lt;BR /&gt; 
&lt;PRE&gt;package routines;&lt;BR /&gt;import java.security.*;&lt;BR /&gt;public class getHashCode {&lt;BR /&gt;	public static String getMD5(String strCode) {&lt;BR /&gt;		java.security.MessageDigest msg;&lt;BR /&gt;		String digest1 = "";&lt;BR /&gt;		try {&lt;BR /&gt;			msg = java.security.MessageDigest.getInstance("MD5");&lt;BR /&gt;			msg.update(strCode.getBytes(), 0, strCode.length());&lt;BR /&gt;			digest1 = new java.math.BigInteger(1, msg.digest()).toString(32);&lt;BR /&gt;		}&lt;BR /&gt;		catch (NoSuchAlgorithmException e) {&lt;BR /&gt;			// TODO Auto-generated catch block&lt;BR /&gt;			e.printStackTrace();&lt;BR /&gt;		}&lt;BR /&gt;		return digest1.toUpperCase();&lt;BR /&gt;	}&lt;BR /&gt;}&lt;/PRE&gt; 
&lt;BR /&gt;2- in tMap, call the "getMD5" method with all input fields concatened to produce the desired output: 
&lt;BR /&gt; 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MDuX.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/156365i14A1ABD824FED75E/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MDuX.png" alt="0683p000009MDuX.png" /&gt;&lt;/span&gt; 
&lt;BR /&gt;Let me know if you need more help. 
&lt;BR /&gt;Regards, 
&lt;BR /&gt;TRF</description>
      <pubDate>Mon, 03 Apr 2017 13:59:00 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Salesforce-Don-t-update-Record-on-Upsert/m-p/2318028#M88406</guid>
      <dc:creator>TRF</dc:creator>
      <dc:date>2017-04-03T13:59:00Z</dc:date>
    </item>
  </channel>
</rss>

