Open piranout opened 10 years ago
That fault is coming back from Infusionsoft. This means something is causing the database query to error out. With findByEmail you pass in a second parameter of the fields you want returned, I've seen where some fields will randomly error out. Can you provide me more information on this and I can dig in from Infusionsoft's side to see if I can find anything?
If you can provide me your appname and an email address that this is happening on i can take a look. You can email it to me if you would prefer not to post it on here. api@infusionsoft.com
Thanks for looking at this. I sent those details to api@infusionsoft.com.
If there's a better approach to using the API, I'm open to that. Is using the table service with known column names less error-prone, maybe?
I think you have to include the columns that you want in return.
//Find contacts dotnet styleconst string email = "chris.martin@eventday.com";var contact = client.ContactService.FindByEmail(email, p => p.Include(c => c.Id)
.Include(c => c.Email));
or
var contact = client.ContactService.FindByEmail(email, p => p.IncludeAll());
Scott Cate Cell: 602-418-0770 Office: 714-64-EVENT Fax: 480-304-3023 Follow us on ... www.facebook.com/EventDay www.twitter.com/EventDay
Try EventDay: Setup your Free Event in 30 Seconds http://evn.tc/EventDay_Free
On Fri, Mar 7, 2014 at 8:29 AM, piranout notifications@github.com wrote:
Thanks for looking at this. I sent those details to api@infusionsoft.com.
If there's a better approach to using the API, I'm open to that. Is using the table service with known column names less error-prone, maybe?
Reply to this email directly or view it on GitHubhttps://github.com/EventDay/Infusionsoft.net/issues/18#issuecomment-37034170 .
If you pass in an empty array for the return fields, it will return the Id only. If you don't even pass in the second parameter, it will return this error: "No method matching arguments: java.lang.String, java.lang.String, java.lang.String".
I think this may be related to something else since he's getting a Database error.
could be a mismatch on the apikey, or connection somehow. the error returned isn't also pointing to the actual problem.
i would try the code samples, just to see if it starts working.
Scott Cate Cell: 602-418-0770 Office: 714-64-EVENT Fax: 480-304-3023 Follow us on ... www.facebook.com/EventDay www.twitter.com/EventDay
Try EventDay: Setup your Free Event in 30 Seconds http://evn.tc/EventDay_Free
On Fri, Mar 7, 2014 at 8:38 AM, Michael Fairchild notifications@github.comwrote:
If you pass in an empty array for the return fields, it will return the Id only. If you don't even pass in the second parameter, it will return this error: "No method matching arguments: java.lang.String, java.lang.String, java.lang.String".
I think this may be related to something else since he's getting a Database error.
Reply to this email directly or view it on GitHubhttps://github.com/EventDay/Infusionsoft.net/issues/18#issuecomment-37035037 .
I think it might be related to "AccountId" column being asked for. Thats the only field I was able to get this error to throw on.
The .IncludeAll() construct throws the same database error as the one-parameter .FindByEmail overload call did.
This manual projection works, even with AccountId included. However, it always returns 0 for the AccountId:
var contact = client.ContactService.FindByEmail(
email, projection => projection
.Include(c => c.Id)
.Include(c => c.Company)
.Include(c => c.FirstName)
.Include(c => c.LastName)
.Include(c => c.Email)
.Include(c => c.State)
.Include(c => c.PostalCode)
.Include(c => c.Phone1)).FirstOrDefault();
Still, this is progress. :+1:
FWIW, we found that the include all will error, and that has something to do with custom fields.
maybe a custom field is null? or missing on a record? i'm not sure, but this may help solve the Error.
please keep in touch, i'm interested to see what you find.
Scott Cate Cell: 602-418-0770 Office: 714-64-EVENT Fax: 480-304-3023 Follow us on ... www.facebook.com/EventDay www.twitter.com/EventDay
Try EventDay: Setup your Free Event in 30 Seconds http://evn.tc/EventDay_Free
On Fri, Mar 7, 2014 at 9:33 AM, piranout notifications@github.com wrote:
The .IncludeAll() construct throws the same database error as the one-parameter .FindByEmail overload call did.
This manual projection works, even with AccountId included. However, it always returns 0 for the AccountId:
var contact = client.ContactService.FindByEmail( email, projection => projection .Include(c => c.Id) .Include(c => c.Company) .Include(c => c.FirstName) .Include(c => c.LastName) .Include(c => c.Email) .Include(c => c.State) .Include(c => c.PostalCode) .Include(c => c.Phone1)).FirstOrDefault();
Still, this is progress. [image: :+1:]
Reply to this email directly or view it on GitHubhttps://github.com/EventDay/Infusionsoft.net/issues/18#issuecomment-37040890 .
Well, adding contact.AccountId
to the .Include()
calls made the Database Error return.
Could it be that there are nullable fields in the database mapped to non-nullable types in the .NET client? Or is this strictly a SQL query error on the server side?
This is an error on our side. AccountId is mapped to CompanyId but thats for the DataService so that might be why this is happening. I will send up a ticket to development on this.
Don't know if this is helpful at all, but including .CompanyId gets past the error, but returns 0. (Saying "AccountId" worked in my earlier comment was a typo https://github.com/EventDay/Infusionsoft.net/issues/18#issuecomment-37040890)
I'm trying to test the viability of this client, but so far I can't get past the simplest invocation I could come up with. My API key is accepted, but the TryInvoke call ultimately throws an exception with this message:
The code is just a simplification of the example app:
Is this something endemic to InfusionSoft, or something wrong in my method call, or something related to whether Mercury is in retrograde at the same time as the Sta-Puff Marshmallow Man is active? :~/