I am getting the error "this feature is not enabled or not available in this version of quickbooks". I am trying to add a customer into QuickBooks. Can any one please let me know the possible reasons for this error? The details of the SDK are:
shortVerion:13
Major Version:0
ENRreleaseLevel:rlRelease
releaseNumber:3
The QBXML request is:
<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
<QBXMLMsgsRq onError = "continueOnError">
<CustomerAddRq requestID = "0">
<CustomerAdd>
<Name>Roger Federer</Name>
<IsActive>1</IsActive>
<ClassRef>
<FullName>Roger classref</FullName> **<-- error was here. I removed it and could run the application.
</ClassRef>
<ParentRef>
<FullName>Abercrombie, Kristy</FullName>
</ParentRef>
<CompanyName>Tennis</CompanyName>
<Salutation>WorldNo1</Salutation>
<FirstName>Roger</FirstName>
<MiddleName>M</MiddleName>
<LastName>Federer</LastName>
<JobTitle>Tennis Player</JobTitle>
<BillAddress>
<Addr1>*String*</Addr1>
<Addr2>*String*</Addr2>
<Addr3>*String*</Addr3>
<Addr4>*String*</Addr4>
<Addr5>*numbers*</Addr5>
</BillAddress>
<ShipAddress>
<Addr1>*String*</Addr1>
<Addr2>*String*</Addr2>
<Addr3>*String*</Addr3>
<Addr4>*String*</Addr4>
<Addr5>*numbers*</Addr5>
</ShipAddress>
<Phone>*********</Phone>
<AltPhone>**********</AltPhone>
<Fax>None</Fax>
<Email>rf@netirrigate.com</Email>
<Cc>rf@gmail.com</Cc>
<Contact>Roger</Contact>
<CustomerTypeRef>
<FullName>Residential</FullName>
</CustomerTypeRef>
<TermsRef>
<FullName>Net 30</FullName>
</TermsRef>
<OpenBalance>10.01</OpenBalance>
<OpenBalanceDate>2007-12-15</OpenBalanceDate>
<ResaleNumber>2</ResaleNumber>
<AccountNumber>numbers</AccountNumber>
<CreditLimit>10065.01</CreditLimit>
<PreferredPaymentMethodRef>
<FullName>Master Card</FullName>
</PreferredPaymentMethodRef>
<CreditCardInfo>
<CreditCardNumber>*16 digits*</CreditCardNumber>
<ExpirationMonth>6</ExpirationMonth>
<ExpirationYear>2023</ExpirationYear>
<NameOnCard>Roger Federer</NameOnCard>
<CreditCardAddress>*string*</CreditCardAddress>
<CreditCardPostalCode>*digits*</CreditCardPostalCode>
</CreditCardInfo>
<JobStatus>Awarded</JobStatus>
<JobStartDate>2014-12-15</JobStartDate>
<JobProjectedEndDate>2014-12-15</JobProjectedEndDate>
<JobEndDate>2014-12-15</JobEndDate>
<JobDesc>job descrip</JobDesc>
<JobTypeRef>
<FullName>Remodel</FullName>
</JobTypeRef>
<Notes>Notes</Notes>
</CustomerAdd>
</CustomerAddRq>
</QBXMLMsgsRq>
</QBXML>
*String * represents that I have enter a string in place of it. *digit * ==> I have entered numbers.
Other configuration that might help understand my code in detail:
IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest
("US",shortVersion, MajorVersion);
shortversion and MajorVersion values are given at the top.
I am using Intuit QuickBooks Enterprise Solutions: Manufacturing and Wholesale 14.0
Please let me know if you need further information. I googled a lot but couldnt come up with a solution to this issue. Even rebooted system as it was given as one of the solution and to my knowledge validated all the field values in the XML, I hope they are correct.
The reason I had the data in the XML is because of this question: https://stackoverflow.com/a/20500250/2738630
And there is nothing sensitive in that XML data, I have added information regarding a tennis player which no way related to any form of sensitivity.
Solved
I could solve this error. The reason for the error is because of the property <ClassRef>Roger classref</ClassRef>
is not enabled in the version of the quickbooks. I have removed this property from QBXML request and the application has added the customer successfully. I am working on sample database file called: sample rock castle construction, which is a product based company file.
Please provide, if any, information you guys have on this.
The QuickBooks company file that you are using is not set to allow assigning of classes to names. This preference must be turned on in order to include the <ClassRef>
section of your XML.
You can check this preference by going to Edit > Preferences > Account > Company Preferences. There should be a check next to "Assign classes to Names". If you have this option turned off, or if you don't have it set to Names, you'll get the error message.
You can check the preferences of a company file by creating a IPreferencesQuery
. In the response, you'll want to check for IsUsingClassTracking
and AssignClassesTo
is set to actNames
.