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
HaroldHHaroldH 

Error creating Case: bad field names on insert/update call: SuppliedEmail

Code that previously worked is now causing an error.

When creating a Case record with API 3.0, "bad field names on insert/update call: SuppliedEmail" occurs if any SuppliedEmail is provided, even if it is a valid email address.

Update: Got the same result on API 4.0 (EAP), also on SuppliedName field. This code worked without problem as of yesterday or before.

Is it just me?

Message Edited by HaroldH on 07-09-2004 09:57 AM

DevAngelDevAngel

Hi Harold,

I can't reproduce this.  Would you mind posting the code that populates the case object?

 

Thanks

HaroldHHaroldH
It seems to be related to the security settings of the currently logged-in user. The error occurs if the user is a "Standard User," but does not occur if the user is a "System Administrator."

Here's the error, and below is the test code.

bad field names on insert/update call: SuppliedName, SuppliedEmail


public void CreateCase() {

//Prepare the fields
MyNamespace.Xml.Processor XmlProcessor = new MyNamespace.Xml.Processor();
System.Xml.XmlElement[] fields = new XmlElement[7];
fields[0] = XmlProcessor.CreateXmlElement("Subject", "Test Case Programmatically");
fields[1] = XmlProcessor.CreateXmlElement("Type", "Defect");
fields[2] = XmlProcessor.CreateXmlElement("Status", "1 - New");
fields[3] = XmlProcessor.CreateXmlElement("SuppliedEmail", "email@domain.com");
fields[4] = XmlProcessor.CreateXmlElement("SuppliedName", "My Supplied Name");
fields[5] = XmlProcessor.CreateXmlElement("Description", "Sample description.");
fields[6] = XmlProcessor.CreateXmlElement("ContactId", "003000000049CTXAA2");
//a valid ContactId in our org

//Prepare the sObject
sObject sobject = new sObject();
sobject.type = "Case";
sobject.Any = fields;

//Save the sObject
Console.WriteLine("Attempt to Create " + sobject.type);
SaveResult[] saveResults = binding.create( new sObject[] {sobject} );
if (!saveResults[0].success) {
for(int i=0; i<saveResults[0].errors.Length; i++) {
Console.WriteLine(saveResults[0].errors[i].message);
}
}
Assert.IsTrue(saveResults[0].success);

}

Message Edited by HaroldH on 07-12-2004 10:16 AM

Message Edited by HaroldH on 07-12-2004 10:48 AM

HaroldHHaroldH
This error can be avoided by changing the Field Accessibility on the Case object, setting the Web Email and Web Name fields to "Editable" for the specified role ("Standard User").

Go to Setup, Security Controls, Field Accessibility, Case object, View by Profiles, Standard User, Web Email field, then uncheck the two "Read Only" checkboxes on the Access Settings page for this field. Repeat for Web Name field.

Not sure if this is the intended procedure, but it works.

Message Edited by HaroldH on 07-12-2004 10:25 AM