Hi, is it possible to Receiving a Purchase Order W...
# suitescript
h
Hi, is it possible to Receiving a Purchase Order With a Serialized Item using suitescript 2.1. I’m transforming the PO into an Item Receipt but I receive error “Field inventorydetail is not a subrecord field”
Copy code
const itemReceipt = record.transform({
    fromType: record.Type.PURCHASE_ORDER,
    fromId: purchaseOrder.id,
    toType: record.Type.ITEM_RECEIPT,
    isDynamic: true
})

const sublistId = 'item'
const lineCount = itemReceipt.getLineCount({ sublistId })
log.debug('lineCount', lineCount)
for (let line = 0; line < lineCount; line++) {
    log.debug('ITERATION', line+1)
    itemReceipt.selectLine({ sublistId, line })

    const itemId = itemReceipt.getCurrentSublistValue({
        sublistId,
        fieldId: 'item',
    })
    const quantity = itemReceipt.getCurrentSublistValue({
        sublistId,
        fieldId: 'quantity',
    })
    itemReceipt.setCurrentSublistValue({
        sublistId,
        fieldId: 'quantity',
        value: quantity
    })
    const itemRecordType = search.lookupFields({
        type: search.Type.ITEM,
        id: itemId,
        columns: ['recordtype']
    }).recordtype
    const inventoryDetailValue = itemReceipt.getCurrentSublistValue({
        sublistId: sublistId,
        fieldId: 'inventorydetail',
    })
    log.debug('DATA', { itemId, itemRecordType, quantity, inventoryDetailValue })
    if(itemRecordType === 'serializedinventoryitem') {
        try {
            // Get the inventorydetail subrecord
            const inventoryDetail = itemReceipt.getCurrentSublistSubrecord({
                sublistId: sublistId,
                fieldId: 'inventorydetail',
            })
            if (inventoryDetail) {
                inventoryDetail.selectNewLine({ sublistId: 'inventoryassignment' })
                inventoryDetail.setCurrentSublistValue({
                    sublistId: 'inventoryassignment',
                    fieldId: 'quantity',
                    value: quantity
                })
                inventoryDetail.setCurrentSublistValue({
                    sublistId: 'inventoryassignment',
                    fieldId: 'receiptinventorynumber',
                    value: '123Test'
                })
                inventoryDetail.commitLine({ sublistId: 'inventoryassignment' })
            }
        } catch (e) {
            log.error('Error trying to add lot Number', e.message)
        }
    }
    itemReceipt.setCurrentSublistValue({
        sublistId,
        fieldId: 'location',
        value: 1,
    })
}
const itemReceiptTranId = itemReceipt.getValue({ fieldId: 'tranid' })
const itemReceiptId = itemReceipt.save()
log.debug('Item RECEIPT ', { itemReceiptTranId, itemReceiptId })
return {
    itemReceiptId,
    itemReceiptTranId
}
when the Advanced Bin/Numbered Inventory Management feature is not enabled --> This works apparently: itemReceipt.setCurrentSublistValue({ sublistId: sublistId, fieldId: ‘serialnumbers’, value: ‘Test123’ }) Couldn’t find the ‘serialnumbers’ field in the record browser…