Closed ampu3ro closed 9 years ago
Sorry for delay in my response. I couldn't find out the reasons of this issue. By the way, is #6 the same issue? If true, I patched.
No worries. It's not the same issue as far as I can tell. The more I thought about it, the less sure I was about the cause of the issue but it seems to be that rforcecom.queryMore() is returning a varying number of fields so that when rbind() is called to combine the new dataframe with the main one that will be returned, there is a matching error. I think the number of columns is relevant because when I replace the rbind() function in rforcecom.query() with rbind.fill() in the plyr package it runs with no errors and returns the full dataframe as expected
Patched the issue on RForcecom 0.6. Would you update and try it again?
i get the same error message as ampu3ro above:
"Error in rbind(deparse.level, ...) : numbers of columns of arguments do not match"
it looks like when the 'querymore' function is invoked and variables that returned no values in the previous query are returned with actual values, the function fails. Any chance you could take a look at this?
Took another look at this and think I know the root cause: Fields that have all null values are not returned from the Salesforce API. When rforcecom.queryMore() is called it runs another query (of the next 2000 records) that may or may not have all null values. When the any set of 2000 have all null values and another has at least 1 value rbind() fails and you get the error. rbind.fill() fixes the issue because it pads columns in the dataframe that do not match. Hope this helps!
Hi Ampuero,
Thank you for your report. I'll check and fix.
--Takekatsu
On Oct 17, 2013, at 22:15, ampu3ro notifications@github.com wrote:
Took another look at this and think I know the root cause: Fields that have all null values are not returned from the Salesforce API. When rforcecom.queryMore() is called it runs another query (of the next 2000 records) that may or may not have all null values. When the any set of 2000 have all null values and another has at least 1 value rbind() fails and you get the error. rbind.fill() fixes the issue because it pads columns in the dataframe that do not match. Hope this helps!
\ Reply to this email directly or view it on GitHub.
Hi Ampero,
Today, I sent a patched version to CRAN. It will be available on CRAN repo in a few days.
Thank you.
--Takekatsu
On Fri, Oct 18, 2013 at 8:58 AM, Takekatsu Hiramura hiratake55@gmail.comwrote:
Hi Ampuero,
Thank you for your report. I'll check and fix.
--Takekatsu
On Oct 17, 2013, at 22:15, ampu3ro notifications@github.com wrote:
Took another look at this and think I know the root cause: Fields that have all null values are not returned from the Salesforce API. When rforcecom.queryMore() is called it runs another query (of the next 2000 records) that may or may not have all null values. When the any set of 2000 have all null values and another has at least 1 value rbind() fails and you get the error. rbind.fill() fixes the issue because it pads columns in the dataframe that do not match. Hope this helps!
— Reply to this email directly or view it on GitHubhttps://github.com/hiratake55/RForcecom/issues/5#issuecomment-26502905 .
平村 健勝 (Takekatsu HIRAMURA)
Hi, This is great and it works perfectly on most of my queries. However,I am getting QUERY_TIMEOUT error. Is it possible to tweak on my side and have this http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_callouts_timeouts.htm callout limit extended?
Thanks
EDIT: just read part of SalesForce API Developer's Guide. It seem that default batchSize is 250 but it could be scaled to 2000. Is there a way to tweak current RForcecom package to this size or you already maxed this out?
Thanks
Occurs when some fields are not present. Can be fixed with rbind.fill() in library(plyr)