Issues with Address Fields
Last post 03-06-2014 2:00 PM by Anonymous. 22 replies.
-
09-15-2012 12:07 PM
|
|
-
nick_warren
- Joined on 07-01-2012
- Posts 30
|
Issues with Address Fields
Guys,
I'm experiencing a little issue with the ShipTo and BillTo Address in Quickbooks.
It seems as QuickBooks does not allow you to use both Addr1-Add5 AND City, State and Postal Code fields. Which means that you can:
1) Use Addr1-Addr5
OR
2) Addr1-Addr3 and City, State, PostalCode.
When using both, you get an error from QuickBooks. All this information was taken from the SDK and was previously discussed here: https://idnforums.intuit.com/messageview.aspx?catid=7&threadid=13179&enterthread=y
When I send an an EMPTY field through the API, for instance "Addr4" and "" as the value, The API is supposed to send this field to QuickBooks as Empty - this means the XML should look like this </Addr4>. This is NOT what's happening - apparently when the API sees an "" field, it just ignores it. All the fields with "" are not inserted and I do not see them in your request XML.
Here is a test shipping address I posted to the API:
• Addr1 - "Nick Inc"
• Addr2 - "Nick Warren"
• Addr3 - "111 Broadway"
• Addr4 - "NY, NY 10000"
• Addr5 - "Phone: XXXXXX"
• City - ""
• State - ""
• PostalCode - ""
And this is what I'm getting as your request:
<ShipAddress><Addr1>Nick Inc</Addr1><Addr2>Nick Warren</Addr2><Addr3>111 Broadway</Addr3><Addr4>NY, NY 10000</Addr4><Addr5>Phone: XXXXXX</Addr5></ShipAddrss>
This is causing MAJOR issues with QuickBooks because it does not allow me to basically "DELETE" those city, state and postalcode fields. Needless to say, QuickBooks denies the requestt and it goes into the Sync Conflicts.
Can you check in your end and try to replicate this issue - First insert a S.O with a City, State and PostalCode fields and then try to UPDATE that S.O with Addr1-Addr5, while deleting City, State and PostalCode.
Thank you,
Nick
|
|
-
-
Method_David
- Joined on 05-11-2010
- Posts 172
|
Re: Issues with Address Fields
Nick_warren,
This is not an issue with the api, but the synchronization process. I have moved it to the appropriate thread.
Dave
|
|
-
-
nick_warren
- Joined on 07-01-2012
- Posts 30
|
Re: Issues with Address Fields
Does the Sync process is the one which is responsible of "avoiding" these "" fields? If so, it is related to the Sync process.
On the other hand, you probably CANNOT REPLICATE this issue from the Method Interface and therefore it is API related.
I doubt it if anyone that is unable to replicate the issue will be of any help.
Nick
|
|
-
-
Method_Paul
- Joined on 10-23-2007
- Toronto, Method HQ
- Posts 858
|
Re: Issues with Address Fields
Answer
Nick -
As Keith points out in the forum post you listed above, addresses in QuickBooks are a pain. We are at their mercy, as we're using the SDK and can't override it.
Suggestion 1: Stay away from Addr4 and Addr5 altogether. While they are okay for an Add, they are horrible for an Edit, as the users in the IDN forum were pointing out. If you stick with Addr1, Addr2, Addr3, City,State,Zip,Country....you'll almost always be fine (only exception I know is when you have commas at the end of addresses and QuickBooks applies some whacky logic to break one line into multiple lines).
Suggestion 2: Whenever possible, keep address fields as address fields. Try not to put phone numbers in there, or other non address fields. QuickBooks applys some parsing logic to the addresses and modifies them, often to undesirable results. If ever in doubt whether the addresses in Method are 'different' from QuickBooks, try clicking the Edit button under the address in QuickBooks - you'll see how QuickBooks has parsed it. This is what it is sending to us, and all we have access to.
Suggestion 3: As Keith hints at in his post, the only way to clear QuickBooks address logic is to reset it. So for your case, try this:
(1) Edit the address and clear ALL fields, (2) Wait for the sync to complete,
(3) Now put in your Addr1.....Addr5. Does it work? If so...you might have to simulate this with your API calls. I know it's ugly, but you could first send the clear, then query Method later on to make sure the TimeModifiedAccounting field has changed (this means it has synced back from QB), and then send a 2nd request with the real addresses.
HTHs,
Paul
|
|
-
-
Method_Paul
- Joined on 10-23-2007
- Toronto, Method HQ
- Posts 858
|
Re: Issues with Address Fields
Nick - to respond to your question about API vs Interface. It all goes to the same place. The API saves data to the same tables and shares the same common libraries as the interface. It flags to the sync engine that a sync needs to be done in the same way too. The sync engine is de-coupled from both the API and the interface, so it makes no difference if the address fields were updated from the API, or from a screen that had the same fields on it.
Paul
|
|
-
-
nick_warren
- Joined on 07-01-2012
- Posts 30
|
Re: Issues with Address Fields
Paul,
When I send an empty address through the API to QuickBooks, Method populates the information and all address fields are empty.
When the sync triggers, instead of populating QuickBooks with empty addresses, Method takes the existing address from QuickBooks and puts it in the document. This is not a normal behavior as I want Method to update QuickBooks not the other way around.
We have a requirement to put the phone number in the ShipTo address, there is no way around it, therefore using City, State and PostalCode are out of the question and we're forced to use Add1-Addr5.
Your (3) suggestion simply doesn't work. When I send an empty address to Method through the API, Method updates properly. Again, as I explained before, when the Sync triggers, QuickBooks updates Method for some reason with the previous address.
As it seems now, I cannot overcome this issue. Is there a way to force this "one way" syncing and to populate QuickBooks with an empty address field.
Nick
|
|
-
-
Method_Paul
- Joined on 10-23-2007
- Toronto, Method HQ
- Posts 858
|
Re: Issues with Address Fields
Answer
Nick -
I just tried it with the API and all the fields cleared for me.
Here are the fields I cleared:
ShipAddressAddr1
ShipAddressAddr2
ShipAddressAddr3
ShipAddressAddr4
ShipAddressAddr5
ShipAddressCity
ShipAddressCountry
ShipAddressNote
ShipAddressPostalCode
ShipAddressState
I highlighted the ShipAddressNote field, as that might be the one you are missing. It is out of sight, and out of mind, but QuickBooks is still using it. If you check out what QuickBooks is storing for it, it is a repeat of that phone number you are putting into Addr5. I think that's where it's getting screwed up.
One time, though, I had to first blank out all the fields, but then QuickBooks only partially honored the request, and kept the original City,State,Zip, but did clear the street address. Then I had to use the API to clear the fields a 2nd time. This time finally QuickBooks agreed to honor the request. Then I was able to fill it with the Addr1 to Addr5 values.
Paul
|
|
-
-
nick_warren
- Joined on 07-01-2012
- Posts 30
|
Re: Issues with Address Fields
Paul,
It’s not working for me – QuickBooks does not update the address fields with empty rows, no matter what I do. I verified all the fields are sent.
Another issue you failed to address previously is the fact that I do not see these fields in the request. When I send a field through the API with an “” value, I do not see it in the Sync Request with QuickBooks later on. When the conflict appears on the control panel it has all the values but the empty ones.
Nick
|
|
-
-
nick_warren
- Joined on 07-01-2012
- Posts 30
|
Re: Issues with Address Fields
Guys I understand all of you are exteremly busy but this issue is very urgent for us and I will really apprecaite it if you can attend to it.
My biggest problem at this time is that the Sync engine simply ignores all the empty fields that we send its way through the API.
Thank you!
Nick
|
|
-
-
Method_David
- Joined on 05-11-2010
- Posts 172
|
Re: Issues with Address Fields
Hi nick_warren,
The api is not the synchronization engine. The api manipulates data in your method account. The synchronization engine is what moves data between your method account and QB.
First question, have you followed the steps from Paul above? I have and the ship address fields clears just fine.
Second question, adter syncing if you have a conflict, have you resolved the conflict? Quickbooks may not update certain data...including ship address. fields...unless the conflict is resolved
Third Question, after your api call, have you checked that the data changes appear in your method account?
Fourth Question, How are you invoking the QB sync?
Dave
|
|
-
-
nick_warren
- Joined on 07-01-2012
- Posts 30
|
Re: Issues with Address Fields
Well, you guys changed the location of the question to the API forum, not me :)
Dave, this has nothing to do with the conflicts. I suggest you access my account and see for yourself. Moreover, I'm pretty sure you are not replcating the issue here, because you are starting from a new customer.
Please try to do the following:
Add this customer to QuickBooks using the following ShipTo Address:
<addr1>Nick Inc</addr1>
<addr2>100 Broadway St</addr2>
<addr3>NY, NY 10001</addr3>
<addr4>Phone: 1111111</addr4>
After you added this customer please try to EDIT it through the API and send the following address
<addr1>Nick Inc</addr1>
<addr2>Nick Warren</addr2>
<addr3>100 Broadway St</addr3>
<addr4>NY, NY 10001</addr4>
<addr5>Phone: 1111111</addr5>
You will see a conflict. QuickBooks will not go ahead and make the changes.
After the API call the data do CHANGE in my Method account, but a confilict occurs. QB Sync is invoked from Method Desktop App.
Moreover, when you send blank fields, you do not see them in the request. For instance, I try to send a <city></city>. I do see it when debugging but when it reaches QuickBooks your Sync Engine is ignoring it and its now shown in the request.
Nick
|
|
-
-
Method_David
- Joined on 05-11-2010
- Posts 172
|
Re: Issues with Address Fields
Hi nick_warren,
You mentioned you have a conflict. Until that conflict is resolved the change will not occur in QB in this case. When a conflict occurs the sync engine does not know how to proceed, so to protect your data from being corrupted it waits for you to tell it how to resolve the conflict.
Here's a scenario, You change an invoice in QB, but in method at the same time someone changes the same invoice in method. If a sync occurs what set of changes to the invoice should be the final one? How does the sync engine know? So to play it safe the engine does not change anything, raises a conflict and waits for you tell it how to proceed.
Dave
|
|
-
-
Method_Paul
- Joined on 10-23-2007
- Toronto, Method HQ
- Posts 858
|
Re: Issues with Address Fields
Nick -
These are the same addresses that I used when I was trying to help you before and gave you the solution of sending blank addresses.
Can you confirm that you have tried what I suggested, and that is:
(1) Send blank values for all of the fields I listed above.
(2) Checked after a sync to see if QuickBooks accepted all the blanks as requested.
(3) If not all blanks were accepted, send the blank values request a 2nd time.
(4) And then after making sure that all values are blank, finally sending the request?.
If you have followed those steps, then you are experiencing something different from what I am seeing. I would like to look at your audit trail so that I can see when those requests were sent and what was sent in the request so that I can learn more what is different between yours and mine.
I would also like your permission to reset this customer from my API calls to verfiy the same happens for me.
I will need you to private message me, using the link on my profile in this forum post, the Company Account, the RecordID of the target customer, and the dates and times you have been making these reset attempts.
I look forward to your reply.
Paul
P.S. in regards to my "failure" to respond to your post about blank values. I can verify that blank values are being sent to QuickBooks, even if they are being omitted in the conflicts.
|
|
-
-
nick_warren
- Joined on 07-01-2012
- Posts 30
|
Re: Issues with Address Fields
Paul,
Sending the blank fields and then waiting for sync is not an option for us. We need this to be a so called, real time solution. We cannot keep syncing QB, go back to our software, send the address again and then sync again. It will make the work very tedious, which is what we're trying to prevent.
Moreover, my problem which I stated before and you guys did not address is that I am sending EMPTY values to the City, State, PostalCode and Note fields through the API but when the sync occurs, those are not shown in the XML request to QuickBooks. This is where the problem starts. Why can't we force these fields into the request, even if they are empty inside Method? On every request to Method, I'm "deleting" those City, State, PostalCode and Note fields. The wierd thing here that in the request to QuickBooks, Method sends the Note field with the empty value (<Note />) but not the City, State and PostalCode.
Another issue that I noticed is that when I update Method through the API, Method updates correctly. For some reason when SYNCING, QuickBooks "re-arranges" the address field and updates Method. I'm not sure why this is happenning.
Can you think of any other way to make this work?
Nick
|
|
-
-
Method_David
- Joined on 05-11-2010
- Posts 172
|
Re: Issues with Address Fields
Hi nick_warren,
Rather than wait for the sync to happen, you can invoke either of the following functions MethodAPIActionSendToDesktop or MethodAPIActionSendToDesktopV2. This should initiate a sync.
Can you elaborate on the rearranging address fields problem?
Dave
|
|
|
|
|