我的应用程序如何提交带有自定义字段的salesforce案例?
我有一个将多个客户的bug提交到多个目的地的应用程序。我希望此应用程序将salesforce作为目标。我有对企业WSDL的web引用,并且我能够为salesforce创建案例。这非常有效,直到我想将用户定义的自定义字段作为案例的一部分。对于我的salseforce实例,自定义字段是强类型的,带有一个_c前缀。但是,我将无权使用客户的salesforce实例更新我的web服务 如何提交包含WSDL中未定义的自定义字段的salesforce案例 我应该不使用企业WSDL吗?您需要使用 它是松散类型的,因此可以用于所有的“组织”,无论他们有什么自定义 下面是我使用合作伙伴WSDL的一些代码示例我的应用程序如何提交带有自定义字段的salesforce案例?,salesforce,Salesforce,我有一个将多个客户的bug提交到多个目的地的应用程序。我希望此应用程序将salesforce作为目标。我有对企业WSDL的web引用,并且我能够为salesforce创建案例。这非常有效,直到我想将用户定义的自定义字段作为案例的一部分。对于我的salseforce实例,自定义字段是强类型的,带有一个_c前缀。但是,我将无权使用客户的salesforce实例更新我的web服务 如何提交包含WSDL中未定义的自定义字段的salesforce案例 我应该不使用企业WSDL吗?您需要使用 它是松散类型的
另一组例子。合作伙伴WSDL更通用,并且在更改元数据(即添加/删除字段)时不会更改,而企业WSDL是显式的,并且在元数据更改时必须更新。
//Base class
public class SalesforceBase
{
private readonly List<SalesforceCustomField> _customFields = new List<SalesforceCustomField>();
private readonly XmlDocument _document = new XmlDocument();
private readonly List<XmlElement> _elements = new List<XmlElement>();
private readonly string _type;
protected SalesforceBase(string type)
{
_type = type;
}
public string Type
{
get
{
return _type;
}
}
public IEnumerable<SalesforceCustomField> CustomFields
{
get
{
return _customFields;
}
}
public XmlElement[] Any
{
get
{
return _elements.ToArray();
}
}
public void AddCustomField(SalesforceCustomField customField)
{
UpdateElements(customField.FieldName, customField.Value);
_customFields.Add(customField);
}
protected void UpdateElements(string name, string value)
{
var element = _elements.Find(ele => ele.Name == name);
if (element != null)
{
element.InnerText = value;
}
else
{
element = _document.CreateElement(name);
element.InnerText = value;
_elements.Add(element);
}
}
}
//Implement Base
public class SalesforceContact : SalesforceBase
{
public SalesforceContact() : base("Contact") { }
private string _firstName;
public string FirstName
{
get { return _firstName; }
set
{
if (value != null)
{
UpdateElements("FirstName", value);
_firstName = value;
}
}
}
}
//Send It
SForceService.create( new sObject(){Any = contact.Any, type = contact.Type});