Jump to content

QuickBooks ExternalGUID format?


This topic is 1477 days old. Please don't post here. Open a new topic instead.

Recommended Posts

I'm new to working with the Productive Computing QuickBooks Connector.  I'm trying to add a ItemNonInventoryAdd item.  It appears that when pushing this item to QuickBooks from FileMaker (18) an ExternalGUID field is required.  Current records in QuickBooks,  created in QuickBooks this field is empty.  The field fails validation and gives me the following message:

SEVERITY: failed validation
MESSAGE: Error at ExternalGUID
Reason:    '123456789abc' violates pattern constraint of '0|(\{[0-9a-fA-F]{8}(\-([0-9a-fA-F]{4})){3}\-[0-9a-fA-F]{12}\})'.

Parsing regular expressions is not my strong suit.  I have tried a number of different values for this field.  Using 0 worked once.  Using it a second time gave the error of the value being in use.

Can someone show me a few examples of what an externalGUID should look like?   I did try using the FileMaker Record UUID,  and this produced the same error.

Greatly appreciate help with this.

 

 

 

Link to comment
Share on other sites

Hi Bruce,

I have found a bit of information about the ExternalGUID. I will include some sample code for reference as to how to create this ID and a link to a site which will benefit you in the future when working with QuicksBooks!

An example on how to receive a unique GUID is below:

IQBGUIDType
 
- val is a globally unique identifier that you generate using GUIDGEN.EXE, 
a tool that comes with Microsoft Visual Studio. A GUIDTYPE value takes the 
form {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}, where X is a hexadecimal digit. 
For example: {6B063959-81B0-4622-85D6-F548C8CCB517}. Note that GUIDTYPE 
values are not case-sensitive, meaning that if you enter a GUIDTYPE value 
with lower-case letters, the value will be saved and returned with upper-case 
letters. 
 

Click this link for some more info https://developer-static.intuit.com/qbsdk-current/common/newosr/index.html

Thanks,

PCIPal

Link to comment
Share on other sites

Thanks.  It appears that the a FileMaker UUID should work,  but when using the primary key/uuid value I still get the error message. 

For the moment this is not a show stopper.  Current data in QuickBooks does not have a value in this field and we can get by with out it.

 

Link to comment
Share on other sites

Once I fixed an issue with fields earlier in the OSR this field reverted to it's optional state.  I had an issue when trying to set two fields one on each side of the Sales/Or/AndPurchase section.  Should have used fields from And section only.  The message I was getting when the script tried to set fields on both sides of the OR was that is was expecting ExternalGUID. 

As stated at the top,  I'm new to working with the plugin and interpreting the OSR. 

That stated,  I now have the script working and correctly adding  ItemNonInventoryAdd items.  If I enable the line:

set variable[ $$Result;  Value: PCQB_RqAddFieldWithValue( "ExternalGUID" ; Rate_mat::ID ) ]

I still get the error in the original post.   The field Rate_mat::ID is a standard FileMaker UUID and should match the shown regular expression. 

Thanks for your help

 

 

Link to comment
Share on other sites

Hi Bruce,

I've done a bit of testing and reviewed the OCR, and it looks like the evaluated result of "Get(UUID)" in FileMaker returns a GUID-format string as we would expect, but QuickBooks' QBXML processor is expecting a little extra in that UUID, namely the start and end curly brace characters { and }.  If you include the beginning brace and end brace when setting the ExternalGUID field, it should accept it; I was able to successfully create an inventory item with an ExternalGUID with the following pseudocode:

 

PCQB_RqNew( "ItemInventoryAdd" ) & ¶ & 
PCQB_RqAddFieldWithValue( "Name" ; "Test Inventory Item" ) & ¶ & 
PCQB_RqAddFieldWithValue( "SalesPrice" ; "1" ) & ¶ & 
PCQB_RqAddFieldWithValue( "IncomeAccountRef::FullName" ; "Construction Income" ) & ¶ & // sample income account
PCQB_RqAddFieldWithValue( "COGSAccountRef::FullName" ; "Cost of Goods Sold" ) & ¶ &  // sample COGS account
PCQB_RqAddFieldWithValue( "AssetAccountRef::FullName" ; "Vehicles" ) & ¶ & // sample asset account
PCQB_RqAddFieldWithValue( "ExternalGUID" ; "{" & Get(UUID) & "}" ) & ¶ &  // GUID looks like {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}

 

Granted the example is an inventory item, but it should hold true for a non-inventory item as well.

 

Hope this helps!

PCIPal

Link to comment
Share on other sites

This topic is 1477 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.