function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
fhuifhui 

"Invalid_Field"and "No such column" error message by running Perl

Hi,
 
   I have been using Perl to extract information from Salesforce for a year and it works great. Recently, our Sales Department create another new table and I try to use the same Perl script to extract the data in this new table. I got the "Invalid_Field" and "No such column" error message. If I only extract the build-in field such as "Id", it works fine. But not for any non custom field. Could you help, please? The field name and the table name are right.
 
thanks,
-Florence
 
Here is the error message:
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"><SOAP-ENV:Header><SessionHeader><sessionId xsi:type="xsd:string">110400D00000000heom!q8vMwJ.Reno2tmFCtfyeNSbac9XpMz4C78CBWK6OCWlgUQOcnoXt5IGwnH10XmTzej5Mkh4MfzXd7rDtEFbCfXGhU1gqdJvkA.lsUiPruNsEjEW0k.eZd8EK9cKPCmFcuuZpUwCW</sessionId></SessionHeader><QueryOptions><batchSize xsi:type="xsd:int">200</batchSize></QueryOptions></SOAP-ENV:Header><SOAP-ENV:Body><namesp2:query xmlns:namesp2="urn:partner.soap.sforce.com"><query xsi:type="xsd:string">Select Id, Business_Unit__c from FFI_Product__c </query></namesp2:query></SOAP-ENV:Body></SOAP-ENV:Envelope>
SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 500 Internal Server Error
Cache-Control: private
Date: Wed, 12 Dec 2007 19:26:06 GMT
Server:
Content-Type: text/xml; charset=utf-8
Client-Date: Wed, 12 Dec 2007 19:26:07 GMT
Client-Peer: 204.14.234.40:443
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /O=VeriSign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3/OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign
Client-SSL-Cert-Subject: /C=US/ST=California/L=San Francisco/O=Salesforce.com, Inc./OU=Applications/OU=Terms of use at www.verisign.com/rpa (c)00/CN=na1-api.salesforce.com
Client-SSL-Cipher: RC4-MD5
Client-SSL-Warning: Peer certificate not verified
Client-Transfer-Encoding: chunked
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode>soapenv:Server</faultcode>
   <faultstring>INVALID_FIELD:
Select Id, Business_Unit__c from FFI_Product__c
           ^
ERROR at Row:1:Column:12
No such column &apos;Business_Unit__c&apos; on entity &apos;FFI_Product__c&apos;. If you are attempting to use a custom field, be sure to append the &apos;__c&apos; after the custom field name. Please reference your WSDL or the describe call for the appropriate names.</faultstring>
   <detail>
    <sf:fault xsi:type="sf:InvalidFieldFault" xmlns:sf="urn:fault.partner.soap.sforce.com">
     <sf:exceptionCode>INVALID_FIELD</sf:exceptionCode>
     <sf:exceptionMessage>
Select Id, Business_Unit__c from FFI_Product__c
           ^
ERROR at Row:1:Column:12
No such column &apos;Business_Unit__c&apos; on entity &apos;FFI_Product__c&apos;. If you are attempting to use a custom field, be sure to append the &apos;__c&apos; after the custom field name. Please reference your WSDL or the describe call for the appropriate names.</sf:exceptionMessage>
    </sf:fault>
   </detail>
  </soapenv:Fault>
 </soapenv:Body>
</soapenv:Envelope>
 
 
sf_davesf_dave
I fought this issue for some time.  Every time you create a new custom field you need to re-export your wsdl definition file.

To do this you (or an admin) needs to login to salesforce, click Setup -> Integrate -> API and then save the appropriate wsdl for your organization (enterprise or partner)

After you have this new file load it when you create your connection and it should know about the new custom fields just fine.

You can also manually edit the wsdl xml, but that's prone to errors. I recommend downloading the new one.

Hope that helps,
-Dave
fhuifhui

Dave,

    Thanks for your advice but I am not using WSDL to extract information. I am using Perl and I can access all the customer tables and custom fields except this new table just populated a month ago.

thanks,
-Florence