<?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 tInputComponent divided to smaller parts in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-tInputComponent-divided-to-smaller-parts/m-p/2354292#M120301</link>
    <description>&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;From the error, we can see that it is a API limitation, Maximum SOQL offset allowed for apiName Opportunity is 2000, the component can return only 2000 records one time using SOQL, you can use a tLoop component to do the loop. &lt;/P&gt;&lt;P&gt;Another options is to read all records from salesforce and split records into multiple files, there is an option on tFileOutputDelimited can split the files automatically. &lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0695b00000lvLVgAAM.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/151924i889E895AC6452F68/image-size/large?v=v2&amp;amp;px=999" role="button" title="0695b00000lvLVgAAM.png" alt="0695b00000lvLVgAAM.png" /&gt;&lt;/span&gt;Then, use a tFileList to iterate each file and update them into salesforce one by one. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Shong&lt;/P&gt;</description>
    <pubDate>Fri, 21 Jul 2023 04:31:11 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2023-07-21T04:31:11Z</dc:date>
    <item>
      <title>Salesforce tInputComponent divided to smaller parts</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-tInputComponent-divided-to-smaller-parts/m-p/2354291#M120300</link>
      <description>&lt;P&gt;Hello All, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in my situation I have quite unstable network connection, because of that there appears&lt;/P&gt;&lt;P&gt;&lt;I&gt; java.io.IOException: com.sforce.ws.ConnectionException: Failed to send request to https ... &lt;/I&gt;&lt;/P&gt;&lt;P&gt;Unfortunately I need to load all Opportunities from Sales make some transformations and then update them again in Salesforce. In case of having around 300 000 records and this http error I cannot update more than 10% of this data. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To somehow omit the problem with internet I have tried to make a SOQL query with offset in tComponent, like: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"SELECT  Id,  Name, Amount, CloseDate, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FROM Opportunity&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LIMIT 50000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OFFSET 13000"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but there was an error with:  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;"&lt;/P&gt;&lt;P&gt;Exception in component tSalesforceInput_2 (opportunities)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;java.io.IOException: [UnexpectedErrorFault [ApiFault&amp;nbsp;exceptionCode='NUMBER_OUTSIDE_VALID_RANGE'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;exceptionMessage='Maximum SOQL offset allowed for apiName Opportunity is 2000'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;extendedErrorDetails='{[0]}'&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at org.talend.components.salesforce.runtime.SalesforceInputReader.start(SalesforceInputReader.java:120)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at org.talend.codegen.flowvariables.runtime.FlowVariablesReader.start(FlowVariablesReader.java:73)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at rsf.opportunities_0_7.opportunities.tSalesforceInput_2Process(opportunities.java:16956)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at rsf.opportunities_0_7.opportunities.runJobInTOS(opportunities.java:52257)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at rsf.opportunities_0_7.opportunities.main(opportunities.java:52095)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Caused by: [UnexpectedErrorFault [ApiFault&amp;nbsp;exceptionCode='NUMBER_OUTSIDE_VALID_RANGE'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;exceptionMessage='Maximum SOQL offset allowed for apiName Opportunity is 2000'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;extendedErrorDetails='{[0]}'&lt;/P&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;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at java.base/java.lang.Class.newInstance(Class.java:584)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:721)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:593)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at com.sforce.ws.transport.SoapConnection.parseDetail(SoapConnection.java:250)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at com.sforce.ws.transport.SoapConnection.createException(SoapConnection.java:224)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:163)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:108)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at com.sforce.soap.partner.PartnerConnection.query(PartnerConnection.java:1196)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at org.talend.components.salesforce.runtime.SalesforceInputReader.executeSalesforceQuery(SalesforceInputReader.java:165)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	at org.talend.components.salesforce.runtime.SalesforceInputReader.start(SalesforceInputReader.java:107)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;	... 4 more&lt;/P&gt;"&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;which is probably error from Salesforce side, but anyway is there a way, to divide this job into for example 6 smaller (similar) jobs in which every will handle another range of data from Salesforce (for example 0 - 50 000 for job1, 50 000 - 100 000 for job2... ) or any other way to update every record on opportunity (at longer time) but with a possibility to defining a range of data in opportunities for which the whole job should be executed? (to systematically update Opportunities even if a http error occurs along the way?) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Screenshot which showing the design is attached.&lt;/P&gt;</description>
      <pubDate>Fri, 15 Nov 2024 21:33:41 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Salesforce-tInputComponent-divided-to-smaller-parts/m-p/2354291#M120300</guid>
      <dc:creator>Mr_Pancake</dc:creator>
      <dc:date>2024-11-15T21:33:41Z</dc:date>
    </item>
    <item>
      <title>Re: Salesforce tInputComponent divided to smaller parts</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-tInputComponent-divided-to-smaller-parts/m-p/2354292#M120301</link>
      <description>&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;From the error, we can see that it is a API limitation, Maximum SOQL offset allowed for apiName Opportunity is 2000, the component can return only 2000 records one time using SOQL, you can use a tLoop component to do the loop. &lt;/P&gt;&lt;P&gt;Another options is to read all records from salesforce and split records into multiple files, there is an option on tFileOutputDelimited can split the files automatically. &lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0695b00000lvLVgAAM.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/151924i889E895AC6452F68/image-size/large?v=v2&amp;amp;px=999" role="button" title="0695b00000lvLVgAAM.png" alt="0695b00000lvLVgAAM.png" /&gt;&lt;/span&gt;Then, use a tFileList to iterate each file and update them into salesforce one by one. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Shong&lt;/P&gt;</description>
      <pubDate>Fri, 21 Jul 2023 04:31:11 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Salesforce-tInputComponent-divided-to-smaller-parts/m-p/2354292#M120301</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2023-07-21T04:31:11Z</dc:date>
    </item>
    <item>
      <title>Re: Salesforce tInputComponent divided to smaller parts</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Salesforce-tInputComponent-divided-to-smaller-parts/m-p/2354293#M120302</link>
      <description>&lt;P&gt;Understood. Thank you very much! &lt;/P&gt;</description>
      <pubDate>Fri, 21 Jul 2023 10:01:43 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Salesforce-tInputComponent-divided-to-smaller-parts/m-p/2354293#M120302</guid>
      <dc:creator>Mr_Pancake</dc:creator>
      <dc:date>2023-07-21T10:01:43Z</dc:date>
    </item>
  </channel>
</rss>

