Как добавить новый элемент пользовательской записи в netsuite с помощью веб-сервисов?

Я создал новую настраиваемую запись под названием «XYZ» и создал в ней все поля. Теперь я могу добавить новую запись в эту пользовательскую запись с помощью графического интерфейса, но как мне сделать подобное действие с помощью веб-сервисов.

Какие методы необходимо вызвать для добавления нового элемента в настраиваемый тип записи и как это сделать. Любая помощь будет принята с благодарностью.

Спасибо


person octopus    schedule 02.08.2016    source источник


Ответы (2)


Ниже приведен пример кода C # для добавления пользовательской записи с помощью SuiteTalk (веб-службы) -

CustomRecord customRecord = new CustomRecord();

RecordRef recordType = new RecordRef();
recordType.internalId = "14"; // // Record Type's internal ID (Setup > Customization > Record Types > Basic Record Type (Internal ID=14)
recordType.type = RecordType.customRecord;
recordType.typeSpecified = true;

customRecord.recType = recordType;
customRecord.internalId = "7"; // internal id of the custom record you want to update

StringCustomFieldRef stringCustomFieldRef = new StringCustomFieldRef();
stringCustomFieldRef.scriptId = "custrecord_pe_pbmastertrackno";
stringCustomFieldRef.value = txtMasterTrackno.Text.Trim();

CustomFieldRef[] customFieldRef = new CustomFieldRef[1];
customFieldRef[0] = stringCustomFieldRef;

customRecord.customFieldList = customFieldRef;

_service = new NetSuiteService();

setPassport(); // Set the Passport information for authentication
WriteResponse writeResponse = _service.add(customRecord);

Надеюсь, что это поможет вам.

Спасибо.

person NetSuite Expert    schedule 03.08.2016
comment
Спасибо за сценарий, у меня также есть обязательное поле типа записи XYZ, называемое датой xyz, как мне его заполнить. Также в вашем скрипте, почему мы дважды передаем внутренний идентификатор. Что означает первый внутренний идентификатор и что означает второй? - person octopus; 03.08.2016
comment
Как указано в комментариях к коду, второй внутренний идентификатор требуется, если вы хотите обновить существующую запись. Для поля даты вы можете создать настраиваемый объект поля даты, аналогичный представленному в примере скрипта для строкового поля. - person NetSuite Expert; 04.08.2016
comment
Что, если мы хотим добавить новую запись со всеми заполненными полями. Также у меня отмечено поле «Включить имя» (которое является обязательным) в типе записи, которую я использую. Как мне заполнить это поле. - person octopus; 04.08.2016

Вы можете создать новый рестлет со следующим кодом и вызвать рестлет, используя метод post с типом записи и значениями поля.

function createNewRecord(datain){

var recType = datain.recordtype;
var field1 = datain.field1;
var field2 = datain.field2;
var field3 = datain.field3;

var record = nlapiCreateRecord(recType);
record.setFieldValue('custrecord_field1', field1);
record.setFieldValue('custrecord_field2', field2);
record.setFieldValue('custrecord_field3', field3);
var id = nlapiSubmitRecord(record, true);

var dd = JSON.stringify(id);
return dd;
}

Restlet Call

var account = 'XXXXXXX';
var email = '[email protected]';
var signature = 'XXXXXXXX';
var role = '3';

var recordtype = 'XYZ';
var custrecord_field1 = 'value1';
var custrecord_field2 = 'value2';
var custrecord_field3 = 'value3';

var newRec = {"recordtype": recordtype, "field1":custrecord_field1, "field2":custrecord_field2, "field3":custrecord_field3}
var url = 'https://rest.na1.netsuite.com/app/site/hosting/restlet.nl?script=231&deploy=1';
var params = {
contentType: 'application/json',
headers:{Authorization: 'NLAuth nlauth_account='+account+', nlauth_email='+email+', nlauth_signature='+signature+', nlauth_role='+role},
method: 'POST',
muteHttpExceptions: true,
payload: JSON.stringify(newRec)
};

var response = UrlFetchApp.fetch(url, params);
var resdata = JSON.parse(response.getContentText());
Logger.log(resdata);
person YNK    schedule 03.08.2016