Pass Line Field Value from Item Fulfillment to Invoice Using SuiteScript

  1. Create the custom Transaction Line Field in the UI.
  2. Apply the custom Transaction Line Field to Item Fulfillment and Sales Order record.
  3. Using a UserEvent script, on the beforeSubmit trigger, follow the sample code below:

function beforeSubmit(scriptContext) {‌
let newRecord = scriptContext.newRecord;
let oldRecord = scriptContext.oldRecord;

let lineItem = newRecord.getLineCount({‌
    sublistId: 'item'
})

let salesOrder = record.load({‌
    type: record.Type.SALES_ORDER,
    id: newRecord.getValue({‌
        fieldId: 'createdfrom'
    }),
    isDynamic: true
})

let soLineItem = salesOrder.getLineCount({‌
    sublistId: 'item'
})

for(let  currentLine = 0; currentLine < lineItem - 1; currentLine++){‌
    let fItem = newRecord.getSublistValue({‌
        sublistId: 'item',
        fieldId: 'item',
        line: currentLine
    })

    let customLineFieldValue = newRecord.getSublistValue({‌
        sublistId: 'item',
        fieldId: 'custcol_testfield',
        line: currentLine
    })
    for(let  soLines = 0; soLines < soLineItem - 1; soLines++){‌
        let  sItem = salesOrder.getSublistValue({‌
            sublistId: 'item',
            fieldId: 'item',
            line: soLines
        })

        if(fItem==sItem){‌
            salesOrder.selectLine({‌
                sublistId: 'item',
                line: soLines
            })
            salesOrder.setCurrentSublistValue({‌
                sublistId: 'item',
                fieldId: 'custcol_testfield',
                value: customLineFieldValue
            })
            salesOrder.commitLine({‌
                sublistId: 'item'
            });
            salesOrder.save();

        }

    }
}
}

Leave a comment

Your email address will not be published. Required fields are marked *