QuickBooks SDK Release Notes - Intuit

Transcription

Release Notes, QuickBooks SDK 14.0 (12/10/2020)Welcome to the QuickBooks Software Development Kit (SDK) Version 14.0.IMPORTANTThis software is designed for use with US editions ofQuickBooks 2018(R16 and above), QuickBooks 2019(R14 andabove), QuickBooks 2020(R10 and above), QuickBooks2021(R4 and above). In addition, selected features of thissoftware can be used with US editions of QuickBooks 2002,through QuickBooks 2021 and certain Canadian and UKeditions of QuickBooks (2008 and later). However, you cannotcurrently install and use QuickBooks for different countries onthe same machine.Release Note HistoryIn order to see what changed, especially which field values, enums, and QBFC-relateditems changed from release to release, you need to take a look at the Release Notes for theperiods you are interested in. Release Notes from SDK 3.0 to the current release can befound at the IPP website.Table of Contents “A Note About Credit Card Numbers in QB 2008 and Later” “What’s New in SDK 14.0?” “QuickBooks 2011 Multi-Instance Implications with the SDK” “Request/Field-Level Detail Of New and Changed Features” “Changes Impacting QBFC Integrations” “Bugs Fixed in This Release” “Known Bugs and Workarounds” “New or Modified Files of Interest” “Installation Instructions” “Importing the Correct Library” “About Redistributing QBXMLRP2” “Creating Applications that Can Run on 64-Bit Operating Systems” “Documentation” “Tools” “Samples” “Using Payroll Reports” “Deprecation Policy”Release Note History(c) 2020 Intuit Inc. All rights reserved.1

“System Requirements” “QuickBooks Products and qbXML/QBFC Support” “If You Have Questions . . .”A Note About Credit Card Numbers in QB 2008 and LaterDue to requirements of the payment card industry, QuickBooks 2008 and later will mask allcredit card data returned from SDK requests. All responses that return credit cardinformation will return only masked numbers, even in a customer query, when invokedagainst QuickBooks 2008 and later.What’s New in SDK 14.0?OverviewHere is what’s new: Added FormType (MISC / NEC) to AccountMappingQuery and Form1099CategoryAccountMappingRet.Support for filing MISC and NEC form is provided in Form1099CategoryAccountMapping APIwhere FormType can be used to distinguish the boxes for MISC and NEC type. Added BOX15 to the Enum list in MappingCategory. No impact on UK and Canadian version. SDK 14.0 has impact only on US versions.10What’s New in SDK 14.0?(c) 2020 Intuit Inc. All rights reserved.3

QuickBooks 2011 Multi-Instance Implications with the SDKMulti-Instance is available only in QuickBooks Accountant 2011, QuickBooks EnterpriseSolutions Accountant 11.0, QuickBooks Enterprise Solutions 11.0 editions and newereditions of these versions. Multi-Instance does not allow the same QuickBooks file to beopen concurrently, it allows for two different QuickBooks files to be opened. The followingfeatures are not available in second instance: QuickBooks Messenger, payroll. Thefollowing features are unavailable in both instances: unlocking or purchasing additionalfeatures/seats, TurboTax integration, Intuit Data Services setup, applications that use theIntuit Software Development Kit (SDK) to communicate with QuickBooks. The followingfeatures are available in one of the two instances: multi-user mode, file hosting,QuickBooks Help and Live Community. Other features not listed above are impacted andadditional restrictions apply in either the first instance, second instance or both instances;See ks/multi-instance-restrictions/ for alist of restrictions.Request/Field-Level Detail of New and Changed FeaturesThe following table lists the changed behavior and/or fields for each SDK request, with corresponding changes tothe response/ret untMappingQuery, Mod, RetAdded FormType.Added BOX15 to MappingCategory.Removed Box14 support from MappingCategory.(c) 2020 Intuit Inc. All rights reserved.

Changes Impacting QBFC IntegrationsThere are known changes that will break existing applications recompiled with QBFC14: The Form1099CategoryAccountMappingQuery has changed in QBFC14: The form type (aSTRTYPE) has been added as an element which is used to distinguish between form types (“MISC”or “NEC”). The Form1099CategoryAccountMappingMod has changed in QBFC14: The form type(a STRTYPE) has been added as an element which is used to distinguish between formtypes (“MISC” or “NEC”). The Form1099CategoryAccountMappingRet has changed in QBFC14: The form type (aSTRTYPE) has been added as an element which is used to distinguish between formtypes (“MISC” or “NEC”). BOX15 has been added to the ENUM values of MappingCategory.Bugs Fixed in This ReleaseThe following table lists the bug fixes by the SDK request.SDK RequestBug and nature of FixNew and Changed Numeric Types10(c) 2020 Intuit Inc. All rights reserved.5

Known Bugs and WorkaroundsThe following table documents known behavior quirks as well as known issues and anyworkarounds for them.IssueWorkaoundItemSalesTaxRef node in CustomerAdd is notsupported for Canada edition - QBW059046In the sample\samples\qbdt\cpp\qbxml\hostquery, you may geta build failure when you try to build the sample,due to a problem with the Interop.QbxmlRP2reference.If you get this error, simply go to the projectproperties, click on the .Net tab and remove thereference to Interop.QBXMLRP2. Re-add thereference to it and rebuild the hostquery sample. Itshould build properly.If you use qbXML rather than QBFC, notice thatthe new 7.0 request AccountTaxLineInfoQuerydoes not work if issued in the following XMLformat:Use this format instead: AccountTaxLineInfoQueryRq /AccountTaxLineInfoQueryRq AccountTaxLineInfoQueryRq / QBFC7 does use the above format, so you won’t needto worry about this issue if you use QBFC.For international QuickBooks 2008 and 2009versions, it is not possible ItemSalesTaxAdd orItemSalesTaxGroupAddAdding menu items (ui extension events) to QBwhen using VistaAfter you subscribe your menu extension events andregister them as documented, you need to run QBusing "Run As Administrator." This only has to bedone ONCE, after running QB as admin once, yourmenu items will continue to show up and menuevents will be received by your event handler withoutrunning QB as admin.A CustomerQuery may contain different results(sort order) when run against QB 2008 andgreater than the same query running against QB2007 and earlier. This difference in sort order maybe observed if you use MaxReturned set to anumeric value or if the query response containsthe ampersand character & or apostrophe ‘ in the name field.In the Microsoft Vista OS, the path c:\documentsand settings\all users\ used in Windows XP istranslated to the path c:\users\public\. If acompany file in QuickBooks is opened on Vistawith the path "c:\documents and settings\allusers." and that filename is also specified withthe same path in an SDK integrated application,the SDK response says that QuickBooks is alreadyopen with a different file. As per the following: "2147220470 A QuickBooks company data file isalready open and it is different from the onerequested."(c) 2020 Intuit Inc. All rights reserved.

IssueWorkaoundDevelopers may be accustomed to using thecommon file open dialog to allow the user tobrowse to a file (for example, the select acompany file dialog in SDKTestPlus3.exe)Here is how to handle this:Unfortunately, Microsoft changed the behavior ofthis dialog in Vista so it actually attempts to OPENthe file before returning control to the app thatcalled it.The result is that if QB has the file open (or, moreaccurately, the QB database server has the fileopen) you get an error from the dialog that the fileis locked and you cannot use it.During installation of QB SDK on a system withoutQuickBooks installed you may encounter this errorduring the execution of dotnetfxSp1.exe:1. In the application’s first connection do aBeginSession and invoke GetCurrentFilename andsave it away for future use, or display to the user, orwhatever.2. In all subsequent connections invoke BeginSessionusing that stored company file name.If the application gets an error that it cannot openthe file, invoke BeginSession again, invokeGetCurrentFilename, compare against the stored filename and ask user about it if they don’t match.To solve this, install .NET from the Microsoft web siteand retry the installation.“The upgrade patch cannot be installed by theWindows Installer service because the program tobe upgraded may be missing, or the upgrade patchmay update a different version of the program.Verify that the program to be upgraded exists onyour computer and that you have the correctupgrade patch.”During SDK installation, you may see a messageinforming you that the UI and eBay sample couldnot be installed.You can safely ignore and dismiss this message as ithas no effect and the installation will proceedsuccessfully.In a VehicleMileageQuery, if you specify timevalues (for example, 2002-06-05T10:21:10) inany of the date range filters, you get a status codeerror 3020 statusSeverity "Error"statusMessage "There was an error whenconverting the date value.”The reason for this is that Vehicle Mileage supportsonly Date values, not DateTime values, despite whatthe OSR says. The workaround is to use only datevalues, as follows: 2002-06-05.If you use DeliveryPolicy in both aDataEventSubscription and a UIEventSubscription,you could set one to DeliverAlways and the otherto DeliverOnlyIfRunning. In that case, QB willcache your application’s COM pointer if the firstevent for this application in a company file sessionis associated with the DeliverAlways policy.If a user installs a copy of Convertible QuickBooks2006 or greater but does not select one of theavailable editions (Premier, Accountant, Contractoredition, etc), and an SDK application issubsequently started, QuickBooks will prompt theuser to select an edition. The application’s call toBeginSession will fail while QuickBooks is beingconfigured for the selected edition.QuickBooks Canada does not return values storedin the Company Data Extension fields. The bugaffects QuickBooks Canada versions 2004 through2007 and may affect QuickBooks UK versions 2004through 2006.10(c) 2020 Intuit Inc. All rights reserved.The workaround is to have the user finish the processof selecting the desired edition and then restart theSDK application.

Known Bugs and Workarounds(c) 2020 Intuit Inc. All rights reserved.7

IssueWorkaoundThe order of some columns in reports may bedifferent in QuickBooks 2008 than they were forolder versions of QuickBooks.This is not a bug, just a heads-up: the SDKdocumentation has always warned about assumingany column order.QuickBooks caches the latest Refnumber for eachtransaction type. If you try to save a transactionusing the default Refnumber from the UI, the UIwill warn you if someone else already savedtransaction with the same refnumber and give youthe opportunity to change it to the new latestRefnumber. In the SDK, it simply gets used andyou wind up with two transactions with the samerefnumberIn QuickBooks Simple Start edition, it is possiblefor an SDK application to create a subitem for agiven item. It is not possible to do this in the UI,because the UI for creating items does not allow asubitem to be specified. You should avoid doingthis in your application when running againstSimple Start.If QuickBooks Verify is running and an SDKapplication issues a request, the request will notcomplete until the verify finishes.If QuickBooks 2007 and later is running nonhosted, SDK applications starting QuickBooks inDoNotCare mode will open QuickBooks in singleuser mode.New or Modified Files of InterestThis release includes documentation, tools, and samples. The following files and directoriesmay be of particular interest to you: This release includes .NET Primary Interop Assemblies (PIAs) for QBXMLRP2,QBFC14 and QBFC13. These assemblies are included in the redistributable installersand merge modules for each library. If you have previously built a local interopassembly for use with your .NET integrations, please be sure to update them to use theprimary interop assemblies included with this release instead. QBFC13, QBFC12,QBFC11, QBFC10, QBFC8, QBFC7, QBFC6, QBFC5, QBFC4, QBFC3, andQBFC2.1 are available -sdk doc\qbxmlops140.xml and doc\qbxmlso140.xmlThe sample files containing all qbXML requests/responses, and their SignonMsgsrequests and responses.10(c) 2020 Intuit Inc. All rights reserved.

All samples require the QBXMLRP2 Request Processor, QuickBooks, and the QuickBookssample product-based company file. Samples new in this release may require the latestQuickBooks version (currently QuickBooks 2021). The QBXMLRP2 Request Processor isinstalled automatically by QuickBooks 2021.Installation InstructionsIMPORTANTDuring SDK installation, if the eBay SDK has previously beeninstalled on your system, the SDK installer may report afailure registering ebay.SDK.tlb. This error can safely beignored and the installation will proceed normally.To install the SDK using the installer, execute QBSDK140.exe. The installer also adds amenu (Start Programs Intuit SDKs QuickBooks SDK 14.0 ) that provides convenientaccess to SDK tools, samples, and documentation. You can also access the qbXMLValidator and qbXML Test applications through the "Send To" context menu for files.Installing on a System that Doesn’t Have QuickBooksDuring installation of QB SDK on a system without QuickBooks installed you mayencounter this error during the execution of dotnetfxSp1.exe:“The upgrade patch cannot be installed by the Windows Installer service because theprogram to be upgraded may be missing, or the upgrade patch may update a differentversion of the program. Verify that the program to be

Solutions Accountant 11.0, QuickBooks Enterprise Solutions 11.0 editions and newer editions of these versions. Multi-Instance does not allow the same QuickBooks file to be open concurrently, it allows for two different QuickBooks files to be opened. The following features are not available in second instance: QuickBooks Messenger, payroll. The