Four Stars

Problem with tsalesforceoutput main|reject flow when Commit level >1

Hello, 

I have an issue with tsalesforceoutput in talend 6.4.1.

While using the tsalesforceoutput with a commit level set above 1, the first batch (successfully updated within the salesforce org) isn't logged into the output files.

Commit lvl : 200 | Records updated : 2513Commit lvl : 200 | Records updated : 2513

 

As you can see, 199 records (the first ones to be updated) were lost in the execution, but a quick check in salesforce shows that those records were successfully updated.

 

Could you point me onto the right direction to resolve this issue, or at least tell me which version of talend can be used without this error ?

Thanks.

 

7 REPLIES
Moderator

Re: Problem with tsalesforceoutput main|reject flow when Commit level >1

Hi,

Have you tried to clear "Extend Insert" check box to see if rejected rows can be logged into your excel file? on ? Did you get NULL values?

 

Best regards

Sabrina

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
Four Stars

Re: Problem with tsalesforceoutput main|reject flow when Commit level >1

Hi Sabrina, 

 

I've tried it, all the records are succesfully updated and logged in the excel file (no null value) but the time to do so is nearly 9 min, which is way too long.

 

Best regards, 

Nicolas

 

Four Stars

Re: Problem with tsalesforceoutput main|reject flow when Commit level >1

Hi, 

I've tried to resolve my problem for 15 days, but i am still stuck to the same point, have you found something ?

 

Thanks,

Nicolas

Five Stars

Re: Problem with tsalesforceoutput main|reject flow when Commit level >1

Hello,

 

Try to add a tLogCatcher component to retrieve errors.

You can put the information in a file or sent them by email.

I think that it will help you.

Moreover, you can add a tLog component between the component tSalesforceOutput and the error file.

 

Best regards,

 

Marine

Moderator

Re: Problem with tsalesforceoutput main|reject flow when Commit level >1

Hi,

Please make sure that you have selected 'Cease on Error' check box to stop the execution of the Job when an error occurs in advanced settings of tSalesforceOutput.

Best regards

Sabrina

--
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
Four Stars

Re: Problem with tsalesforceoutput main|reject flow when Commit level >1


Hi,

@MarineTiphon : I tried your method, it successfully logged all the records onto the excel (which is a good thing), but didn't separate the wrong ones from the good ones. It makes me wonder if the error is only on the Reject row ?

 

@xdshi: I selected the 'Cease on error' checkbox, it stops the job at the first wrong record, but doesn't tell me at exactly which row the error occurs, although it gives me the error's information


It kinda get closer from what i expect this component to do, but i would like (if possible) to get the import job
to go through the all of my records, then separate into two distincts files all the success / errors.

 

Best regards 

 

Nicolas

Twelve Stars TRF
Twelve Stars

Re: Problem with tsalesforceoutput main|reject flow when Commit level >1

Hi,

@ndemoulin, the following will not solve your case but may help.

 

It sounds like a bug or at least a strange behaviour from the tSalesforceOutput component or the salesforce API.

I've realized the following tests with 253 records (plus 1 header line) from an input file with 1 expected rejected record (due to blank name).

Here are the results:

  1. "Extend Insert" checked and "Commit level 200" : 54 record into the success flow and 54 into the error flow. Always the same record in this error flow but not the expected record and always the same error message! 
    252 records inserted into Salesforce as expected.
    (200 - 1) + 54 = 253 ==> which corresponds to the number of input records.
  2. "Extend Insert" checked and "Commit level 50" : 204 record into the success flow and 50 into the error flow. Always the same record in this error flow but not the expected record and always the same error message
    (50 - 1) + 204 = 253 ==> which corresponds to the number of input records.
  3. "Extend Insert" checked and "Commit level 1" :  252 record to the success flow and 1 to the error flow (as expected).
    Records are inserted 1 by 1 so response time is very bad and API consumption is high.
  4. "Extend Insert" unchecked and "Retrieve Id" checked or not : 252 records to the success flow and 1 to the error flow!
    Records are inserted 1 by 1 so response time is very bad and API consumption is high.

My conclusions:

When "Extend Insert" option is ticked, we know records are sended to the API by batches of n records where n depends on the value of "Commit Level" parameter (refer to Salesforce documentation).

With this option, as soon as an error occurs, result for success and reject flows is wrong (except when "Commit Level" = 1) but the operation on Salesforce side is rigth.

My question:

Where is this f**k**g bug?

My advices:

If you care about error messages, avoid options 1 and 2.

If you care about response time (with low data volume), choose option 1.

If you care about error messages and response time, consider Bulk option (should be reserved for high data volume, but sometimes...).

 

Feel free to complete or correct if necessary.


TRF