How to Update a Field in NetSuite suite talk without its internal id giving its internal id value

旧街凉风 提交于 2019-12-08 12:19:02

问题


I have tried to create a opportunity with suite talk API. while updating the entity field value it returns error because it needs internal id value of the field but it is not feasible to address the internal id.

   ReflectionExtensions.SetPropertyValue(NS_OPPURTUNITY, map.Dst_Fld_Name, new RecordRef()
                                                {
                                                    internalId = "2551",
                                                    type = RecordType.customer,
                                                    typeSpecified = true
                                                });

i want to get rid of that static id to reference the entity.


回答1:


As far as I know, you need the internal ID to reference any object through web services. You can however find the internal ID by first searching for the item you need to reference.

You can use a CustomerSearch to find the internal ID of your customer:

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;

You can search for the customer using other fields besides 'firstName' as well. Check which other fields are available on the CustomerSearchBasic object here: CustomerSearchBasic




回答2:


You can update the entity field on basis of external ID also but for this you need to remember certain things 1. You need to set externalID during creation of any record. 2. External ID is unique around the system. 3. Some records don't support external ID such as Custom List.

InventoryItem inventory = new InventoryItem();
inventory.externalId = "abc";
inventory.displayname = "Hello";
setPreferences();
WriteResponse writeRes = _service.update(inventory );


来源:https://stackoverflow.com/questions/48415499/how-to-update-a-field-in-netsuite-suite-talk-without-its-internal-id-giving-its

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!