我尝试使用套件会话API创建机会。在更新实体字段值时,它返回错误,因为它需要字段的内部id值,但是不可能解决内部id。
ReflectionExtensions.SetPropertyValue(NS_OPPURTUNITY, map.Dst_Fld_Name, new RecordRef()
{
internalId = "2551",
type = RecordType.customer,
typeSpecified = true
});
我想摆脱那个静态id来引用实体。
答案 0 :(得分:1)
据我所知,您需要内部ID通过Web服务引用任何对象。但是,您可以通过首先搜索需要引用的项目来查找内部ID。
您可以使用CustomerSearch查找客户的内部ID:
CustomerSearch custSearch = new CustomerSearch();
SearchStringField name = new SearchStringField();
name.SearchValue = "firstName";
name.operatorSpecified = true;
name.@operator = SearchStringFieldOperator.@is;
CustomerSearchBasic custBasic = new CustomerSearchBasic();
custBasic.firstName= customerEntityID;
custSearch.basic = custBasic;
// Search for the customer entity
SearchResult res = _service.search(custSearch);
//Get the internal ID of the customer
string internalID = ((Customer) (res.recordList[0])).internalId;
除了' firstName'之外,您还可以使用其他字段搜索客户。同样。检查CustomerSearchBasic对象上可用的其他字段:CustomerSearchBasic
答案 1 :(得分:0)
您还可以根据外部ID更新实体字段,但是为此您需要记住某些事项 1.您需要在创建任何记录期间设置externalID。 2.外部ID在系统中是唯一的。 3.有些记录不支持外部ID,例如“自定义列表”。
InventoryItem inventory = new InventoryItem();
inventory.externalId = "abc";
inventory.displayname = "Hello";
setPreferences();
WriteResponse writeRes = _service.update(inventory );