установка значения поля из выпадающего списка на форме с помощью setFieldValue - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь установить новый адрес доставки в форме заказа на продажу и запутался, если я могу использовать setFieldValue, чтобы выбрать из выпадающего списка, прежде чем я установлю новые значения поля адреса

var salesOrder = nlapiCreateRecord('salesorder');
        salesOrder.setFieldValue('entity', customerInternalID);
        salesOrder.setFieldValue('location', LOCATION);
        salesOrder.setFieldValue('custbody_ebay_order_id', ebayOrderID);
        salesOrder.setFieldValue('currency', 1);
        salesOrder.setFieldValue('custbody_execute_script', 'T');

        var utc_trandate = nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']/CreatedTime');
        var trandate = dateToNetsuiteFormat(utc_trandate);
        salesOrder.setFieldValue('trandate', trandate);
        salesOrder.setFieldValue('shippingcost', nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']//ShippingServiceCost'));
        nlapiLogExecution('DEBUG', 'address', defaultAddress);
        salesOrder.setFieldValue('billaddresslist', defaultAddress);
        salesorder.setFieldValue('shipaddresslist', 'New');
        salesorder.setFieldValue('shipcountry', nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']//ShippingAddress/Country'));
        salesorder.setFieldValue('shipisresidential', 'T');
        salesorder.setFieldValue('shipattention', nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']//ShippingAddress/Name'));
        salesorder.setFieldValue('shipaddressee', nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']//ShippingAddress/Name'));
        salesorder.setFieldValue('shipaddrphone', nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']//ShippingAddress/Phone').substring(0, 12));
        salesorder.setFieldValue('shipaddr1', nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']//ShippingAddress/Street1'));
        salesorder.setFieldValue('shipaddr2', nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']//ShippingAddress/Street2'));
        salesorder.setFieldValue('shipcity', nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']//ShippingAddress/CityName'));
        salesorder.setFieldValue('shipstate', nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']//ShippingAddress/StateOrProvince'));
        salesorder.setFieldValue('shipzip', nlapiSelectValue(xmlobj, '/GetOrdersResponse/OrderArray/Order['+(i+1)+']//ShippingAddress/PostalCode'));

1 Ответ

0 голосов
/ 06 декабря 2018

Адреса являются вложенными записями в заказе клиента, для их установки необходимо сначала извлечь вспомогательную запись, а затем задать в ней значения.Также вам не нужно явно сохранять вложенную запись, которая будет сохранена вместе с родительским заказом на продажу.Пример в SuiteScript2.0

// first fetch address sub-record
addressRecord = salesOrderRecord.getSubrecord({ fieldId: 'shippingaddress' });
// then set data on sub-record
addressRecord.setValue({ fieldId: 'shipattention', value: 'ABC' });
// set other required fields
...