getSublistValue is not returning value

I have used getSublistValue to get and set item’s internal id to other custom record’s “product” field. But its setting item name to “product” field instead of item id. Please Help!

/**

@NApiVersion 2.x
@NScriptType ScheduledScript
@NModuleScope SameAccount */
define([‘N/record’,’N/search’,’N/runtime’], function(record,search,runtime) {

function execute(context) {

try {
var script = runtime.getCurrentScript();
var id = script.getParameter({name: ‘custscript_qa_record_id’});
var type = script.getParameter({name: ‘custscript_qa_record_type’});
log.debug(‘i_qa_record_id:’, id+’,i_qa_record_type=’+type);

if(id && type)
{
var REC;
var quote = record.load({type: type, id: id});
log.debug(‘quote:==’,quote);
var customer = quote.getValue({fieldId: ‘entity’});
log.debug(‘customer:==’,customer);

var lineCount = quote.getLineCount({sublistId: ‘item’});

for(var cnt=0; cnt<lineCount; cnt++)
{
var i_quote = quote.getSublistValue({sublistId: ‘item’, fieldId: ‘custcol_far_trn_relatedasset’, line: cnt});
var item_1 = quote.getSublistValue({sublistId: ‘item’, fieldId: ‘item’, line: cnt});
log.debug(‘item_1===’,item_1);

if(i_quote)
{

REC.setValue({fieldId: ‘custrecord_products’, value:item_1 });

}//end of for(var cnt=0; cnt<lineCount; cnt++)
var i_id = quote.save({enableSourcing: true, ignoreMandatoryFields: true});
log.debug(‘i_id:=== ‘+i_id);
}//end of if(id && type)

}catch (error) {
log.debug(‘Error’, error);
}

}
return {
execute: execute
};
});

Beginner Asked on March 21, 2023 in SuiteScript.
Add Comment
10 Answer(s)

Hi Maira,

You are loading a quote but you are not creating your custom record on which you are setting a value. You are saving the quote (but you do not set any value on it, so no need to save it) but not your custom record. So your script is not doing anything at that point.

Rookie Answered on March 21, 2023.
Add Comment

I am already creating a custom record and all other fields are populating properly!

REC = record.create({type: ‘customrecord_ncfar_asset’, isDynamic: true});

 

                          REC.setValue({fieldId: ‘custrecord_product, value:item_1});

 

                       

 

 
Beginner Answered on March 21, 2023.
Add Comment

Hi,

What is the type of custrecord_product?

Thanks,

Chris

Intermediate Answered on March 21, 2023.
Add Comment

custrecord_product is list of items

Beginner Answered on March 21, 2023.
Add Comment

Hi,

Two questions…

Firstly, what do you see logged here:

log.debug(‘item_1===’,item_1);

How come you’re going through all the lines but only setting one field on the custom record?

Thanks,

Chris

Intermediate Answered on March 21, 2023.
Add Comment

Actually, custom record is attached on line level. so respective item id should be set on custom record. Also I have set item  name in one of field,

now want to set item id to another field on custom record!

Beginner Answered on March 21, 2023.
Add Comment

How come we do not see this line in your script?

REC = record.create({type: ‘customrecord_ncfar_asset’, isDynamic: true});

Intermediate Answered on March 21, 2023.
Add Comment

It is there. Now I parsed item value. Will it set internal id now?

/**
* @NApiVersion 2.x
* @NScriptType ScheduledScript
* @NModuleScope SameAccount
*/

define([‘N/record’,’N/search’,’N/runtime’], function(record,search,runtime) {

function execute(context) {

try {
var script = runtime.getCurrentScript();
var id = script.getParameter({name: ‘custscript_qa_record_id’});
var type = script.getParameter({name: ‘custscript_qa_record_type’});
log.debug(‘i_qa_record_id:’, id+’,i_qa_record_type=’+type);

if(id && type)
{
var REC;
var quote = record.load({type: type, id: id});
log.debug(‘quote:==’,quote);
var customer = quote.getValue({fieldId: ‘entity’});
log.debug(‘customer:==’,customer);
var shipdate = quote.getValue({fieldId: ‘custbody_riggs_ship_date_qt’});
log.debug(‘shipdate:==’,shipdate);
var d_verified_date = quote.getValue({fieldId: ‘custbody_riggs_verified_date_quote’});
log.debug(‘d_verified_date:==’,d_verified_date);
if(shipdate){
var NewShipDate = new Date(shipdate);
}
if(NewShipDate)
{
var lessThanTwoYears = NewShipDate.setDate(NewShipDate.getDate() + 650); // add 650 days in shipdate
}
if(lessThanTwoYears)
{
lessThanTwoYears = new Date(lessThanTwoYears);
log.debug(‘lessThanTwoYears:==’,lessThanTwoYears);
}
if(NewShipDate)
{
var olderThanThreeYears = NewShipDate.setDate(NewShipDate.getDate() + 1095); // add 1095 days in shipdate
}
if(olderThanThreeYears)
{
olderThanThreeYears = new Date(olderThanThreeYears);
log.debug(‘olderThanThreeYears:==’,olderThanThreeYears);
}

var diffDays;
if(d_verified_date)
{
var one_day=1000*60*60*24;
var fromDate = d_verified_date;
var toDate= new Date();

var date1 = format.parse({value:fromDate, type: format.Type.DATE});
var date2 = format.parse({value:toDate, type: format.Type.DATE});

var date3=Math.round((date2-date1)/one_day);

diffDays = date3+1;
}

var lineCount = quote.getLineCount({sublistId: ‘item’});
var date = quote.getValue({fieldId: ‘trandate’});
log.debug(‘date:==’,date);
if(date){
var tranDate = new Date(date);
var endUseDate = tranDate.setDate(tranDate.getDate() + 1095); // add 1095 days in trandate
log.debug(‘endUseDate:==’,new Date(endUseDate));
}

for(var cnt=0; cnt<lineCount; cnt++)
{
var i_quote = quote.getSublistValue({sublistId: ‘item’, fieldId: ‘custcol_far_trn_relatedasset’, line: cnt});
var item = quote.getSublistText({sublistId: ‘item’, fieldId: ‘item’, line: cnt});
var item_1 = quote.getSublistValue({sublistId: ‘item’, fieldId: ‘item’, line: cnt});
log.debug(‘item===’,item+’===item_1===’+item_1);
var itemId=parseInt(item_1);
log.debug(‘i_quote===’,i_quote);

var amount = quote.getSublistValue({sublistId: ‘item’, fieldId: ‘amount’, line: cnt});
log.debug(‘amount’,amount);
var item_department = quote.getSublistValue({sublistId: ‘item’, fieldId: ‘custcol_list_record_department’, line: cnt});
log.debug(‘item_department’,item_department);
var item_class = quote.getSublistValue({sublistId: ‘item’, fieldId: ‘custcol_list_record_class’, line: cnt});
log.debug(‘item_class’,item_class);
var item_division = quote.getSublistValue({sublistId: ‘item’, fieldId: ‘custcol_list_quote_record_div’, line: cnt});
log.debug(‘item_division’,item_division);
var item_display_requirement = quote.getSublistValue({sublistId: ‘item’, fieldId: ‘custcol_list_req_item_display_req’, line: cnt});
log.debug(‘item_display_requirement=’,item_display_requirement);

var serialNum_arr = [];
//Get Serial number/Lot Number from Inventory details
var obj_inventory = quote.getSublistSubrecord({sublistId: ‘item’, fieldId: ‘inventorydetail’,line: cnt});
log.debug(‘obj_inventory:==’,obj_inventory);
var i_cnt = obj_inventory.getLineCount({sublistId:”inventoryassignment”});
log.debug(‘i_cnt:==’,i_cnt);
var serial_Hidden = ”;

for (var i=0; i < i_cnt; i++)
{
if(obj_inventory){
var serialNo = obj_inventory.getSublistText({sublistId: ‘inventoryassignment’,fieldId: ‘issueinventorynumber’,line: i});
log.debug(‘serialNo:==’,serialNo);
serialNum_arr.push(serialNo);

serial_Hidden += serialNo.substring(serialNo.length – 8);
if(i < i_cnt – 1){
serial_Hidden += ‘, ‘;
}
}

}
log.debug(‘array serial_Hidden:==’, serial_Hidden);
log.debug(‘array List:==’, serialNum_arr);

var itemRec = quote.getSublistValue({sublistId: ‘item’, fieldId: ‘item’, line: cnt});
log.debug(‘ItemRec==’,itemRec);

var isinactive;
if(itemRec){
var inventoryItemLookup = search.lookupFields({
type: “inventoryitem”,
id: itemRec,
columns: [‘isinactive’]
});
log.debug(‘inventoryItemLookup’, inventoryItemLookup);

isinactive = inventoryItemLookup.isinactive;
log.debug(‘IsActive=’,isinactive);
}

if(i_quote)
{
REC = record.load({type: ‘customrecord_ncfar_asset’, id:i_quote, isDynamic: true});//FAM record id
REC.setValue({fieldId: ‘customform’, value:101 });
REC.setValue({fieldId: ‘altname’, value:item });
REC.setValue({fieldId: ‘custrecord_products’, value:itemId });
REC.setValue({fieldId: ‘custrecord_assettype’, value: 106});
REC.setValue({fieldId: ‘custrecord_assetcost’, value: amount});
REC.setValue({fieldId: ‘custrecord_assetsubsidiary’, value: 1});
REC.setValue({fieldId: ‘custrecord_customer_fld_lst’, value: customer});
REC.setValue({fieldId: ‘custrecord_fam_account’, value: customer});
//REC.setValue({fieldId: ‘custrecord_asset_ship_date’, value:shipdate});
REC.setValue({fieldId: ‘custrecord_end_use_date1’, value: new Date(endUseDate)});
REC.setValue({fieldId: ‘custrecord_assetresidualvalue’, value:0.00});

/*if(serialNum_arr)
{
serialNum_arr = serialNum_arr.toString().replace(‘[“‘,”);
serialNum_arr = serialNum_arr.toString().replace(‘]”‘,”);
REC.setValue({fieldId: ‘custrecord_assetserialno’, value: serialNum_arr});//serialNum_arr.join(‘, ‘)
}else{
REC.setValue({fieldId: ‘custrecord_assetserialno’, value: ”});
}*/
if(item_division == ’14’ && serial_Hidden){
REC.setValue({fieldId: ‘custrecordasset_serial_hiddeen’, value: serial_Hidden});
}else{
REC.setValue({fieldId: ‘custrecordasset_serial_hiddeen’, value: ”});
}
if(lessThanTwoYears > new Date()){
REC.setValue({fieldId: ‘custrecord_less_than_two_years’, value: true});
}else{
REC.setValue({fieldId: ‘custrecord_less_than_two_years’, value: false});
}
if(item_division){
REC.setValue({fieldId: ‘custrecord_brandd’, value: item_division});
}
if(item_class){
REC.setValue({fieldId: ‘custrecord_product_familys’, value: item_class});
}
if(isinactive == true){
REC.setValue({fieldId: ‘custrecord_discounted_model’, value: true});
}else{
REC.setValue({fieldId: ‘custrecord_discounted_model’, value: false});
}
if(diffDays)
{
REC.setValue({fieldId: ‘custrecord_asset_years_on_display’, value: diffDays});
}
if(olderThanThreeYears < new Date()){
REC.setValue({fieldId: ‘custrecord_older_than_three_year’, value: true});
}else{
REC.setValue({fieldId: ‘custrecord_older_than_three_year’, value: false});
}
/*if(shipdate)
{
REC.setValue({fieldId: ‘custrecord_asset_ship_date’, value: shipdate});
}*/
if(item_display_requirement){
REC.setValue({fieldId: ‘custrecord_list_record_dis_req’, value: item_display_requirement});
}
var recId = REC.save({enableSourcing: true, ignoreMandatoryFields: true});
log.debug(‘Loaded Display Asset Request: ‘+recId);
quote.setSublistValue({sublistId: ‘item’,fieldId: ‘custcol_far_trn_relatedasset’,value: recId,line:cnt});
// quote.setSublistValue({sublistId: ‘item’,fieldId: ‘custcol_created_fam_asset’,line: cnt,value: recId,line:cnt});
}
else
{
REC = record.create({type: ‘customrecord_ncfar_asset’, isDynamic: true});
REC.setValue({fieldId: ‘customform’, value:101 });
REC.setValue({fieldId: ‘altname’, value:item });
REC.setValue({fieldId: ‘custrecord_products’, value:itemId });
REC.setValue({fieldId: ‘custrecord_assettype’, value: 106});
REC.setValue({fieldId: ‘custrecord_assetcost’, value: amount});
REC.setValue({fieldId: ‘custrecord_assetsubsidiary’, value: 1});
REC.setValue({fieldId: ‘custrecord_customer_fld_lst’, value: customer});
REC.setValue({fieldId: ‘custrecord_fam_account’, value: customer});
REC.setValue({fieldId: ‘custrecord_end_use_date1’, value: new Date(endUseDate)});
REC.setValue({fieldId: ‘custrecord_assetresidualvalue’, value:0.00});
/*if(serialNum_arr)
{
REC.setValue({fieldId: ‘custrecord_assetserialno’, value: serialNum_arr});//serialNum_arr.join(‘, ‘)
}else{
REC.setValue({fieldId: ‘custrecord_assetserialno’, value: ”});
}*/
/*if(item_division == ’14’ && serial_Hidden){
REC.setValue({fieldId: ‘custrecordasset_serial_hiddeen’, value: serial_Hidden});
}else{
REC.setValue({fieldId: ‘custrecordasset_serial_hiddeen’, value: ”});
}*/
if(lessThanTwoYears > new Date()){
REC.setValue({fieldId: ‘custrecord_less_than_two_years’, value: true});
}else{
REC.setValue({fieldId: ‘custrecord_less_than_two_years’, value: false});
}
if(item_division){
REC.setValue({fieldId: ‘custrecord_brandd’, value: item_division});
}
if(item_class){
REC.setValue({fieldId: ‘custrecord_product_familys’, value: item_class});
}
if(isinactive == true){
REC.setValue({fieldId: ‘custrecord_discounted_model’, value: true});
}else{
REC.setValue({fieldId: ‘custrecord_discounted_model’, value: false});
}
if(diffDays)
{
REC.setValue({fieldId: ‘custrecord_asset_years_on_display’, value: diffDays});
}
if(olderThanThreeYears < new Date()){
REC.setValue({fieldId: ‘custrecord_older_than_three_year’, value: true});
}else{
REC.setValue({fieldId: ‘custrecord_older_than_three_year’, value: false});
}
/*if(item_display_requirement){
REC.setValue({fieldId: ‘custrecord_list_record_dis_req’, value: item_display_requirement});
}*/
var recId = REC.save({enableSourcing: true, ignoreMandatoryFields: true});
log.debug(‘Created Display Asset Request: ‘+recId);
quote.setSublistValue({sublistId: ‘item’,fieldId: ‘custcol_far_trn_relatedasset’,value: recId,line:cnt});
// quote.setSublistValue({sublistId: ‘item’,fieldId: ‘custcol_created_fam_asset’,value: recId,line:cnt});
}
}//end of for(var cnt=0; cnt<lineCount; cnt++)
var i_id = quote.save({enableSourcing: true, ignoreMandatoryFields: true});
log.debug(‘i_id:=== ‘+i_id);
}//end of if(id && type)

}catch (error) {
log.debug(‘Error’, error);
}

}
return {
execute: execute
};
});

Beginner Answered on March 21, 2023.
Add Comment

If you are seeing the right entry in NetSuite then everything should be fine.

Intermediate Answered on March 21, 2023.
Add Comment

Item name is setting to product field when using getsublistvalue. I cant test it because its in production. Will know only after tested by client side

.

Beginner Answered on March 21, 2023.
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.
  • This site made possible by our sponsors:   Tipalti   Celigo   Limebox   Become a Sponsor   Become a Sponsor