Pick Task

Pick tasks record the picking and staging details of items for released orders. Item fulfillment records of picked and staged items are generated from the pick task record.

Pick task records can only be generated from wave transactions.

The pick task record is available when the Warehouse Management feature is enabled. For help working with this record in the UI, see Releasing Orders to the Warehouse.

The internal ID for this record is picktask.

The pick task record contains the Inventory Detail subrecord. For details about subrecords in SuiteScript, see SuiteScript 2.x Scripting Subrecords.

See the SuiteScript Records Browser for all internal IDs associated with this record.

Note:

For information about using the SuiteScript Records Browser, see Working with the SuiteScript Records Browser in the NetSuite Help Center.

For information about scripting with this record in SuiteScript, see the following help topics:

Supported Script Types

The pick task record is scriptable in both client and server SuiteScript.

Supported Functions

The pick task record is partially scriptable — it can be updated, deleted, and searched using SuiteScript. Pick tasks cannot be created or copied using SuiteScript.

Usage Notes

See the following sections for more details about working with this record:

Fields

Note the following usage notes for specific fields on this record:

Field Names

Read-Only?

Comments

Wave #

Location

Item

Yes

These fields display the values in their corresponding fields on the associated wave transaction.

Total Picked Quantity

Total Remaining Quantity

Yes

These fields are calculated automatically from the values in the Picked Quantity and Remaining Quantity columns in the Line Items sublist.

Assigned Picker

No

By default, this field is populated automatically with the value in its corresponding field on the associated wave transaction.

If pickers have a specified warehouse location on their employee records, their name appears in this list only when the pick task belongs to a wave that has the same warehouse location.

Units

Yes

This field is displayed only on accounts that have the Multiple Units of Measure feature enabled. It is populated automatically with the value of item’s unit of measure.

Serial/Lot Number

Yes

For serialized or lot items, this field displays the value in its corresponding field on the associated wave transaction.

Status

Yes

Initially, this field is set to the following statuses based on the status of the associated wave transaction

  • Pending – Assigned when the wave is on Pending Release status

  • Ready – Assigned when the wave is on Released status

After a wave has been released, this field is updated automatically based on the status of the line items.

Sublists

Note the following usage notes for columns in the Line Items sublist:

  • The values in the following columns are populated automatically with values entered using the mobile device: Picked Quantity, Staging Bin, and Inventory Detail.

  • The Transaction Number column displays the link to the fulfillment record, which is generated for each pick task line item in Done status.

  • If the Multiple Shipping Routes feature is enabled on the account, the following columns are populated automatically with values entered in the line items of the associated order transaction: Ship To and Ship Via.

  • The Override Fulfillment Creation box is displayed and enabled for pick task lines with a Failed status and a value of Yes in the Allow Retry column.

  • The following fields are displayed and enabled if you set the Show Additional Pick Task Columns preference: User Field 1 and User Field 2.

    For more information, see Setting Warehouse Management Preferences.

Code Samples

The following sample code in SuiteScript 2.0 includes editing pick tasks.

            require(["N/record"], function (record) {
    /* Pick Task cannot be created manually. It is always created automatically during creation of a wave! */

    function editPickTask() {
        var pickTaskId = 14;
        var pickerId = 103;
        var GOOD_INVENTORY_STATUS = 1;

        var pickTask = record.load({type: record.Type.PICK_TASK, id: pickTaskId, isDynamic: true});
        pickTask.setValue({fieldId: "picker", value: pickerId});
        pickTask.setValue({fieldId: "memo", value: "Call Mike when done, please."});

        editLineItem(pickTask, {
            line: 0,
            pickedQuantity: 1.5,
            stagingBinId: 124,
            inventoryDetailLines: [
                {lotNumber: "L1", binNumberId: 122, inventoryStatusId: GOOD_INVENTORY_STATUS, quantity: 1},
                {lotNumber: "L2", binNumberId: 123, inventoryStatusId: GOOD_INVENTORY_STATUS, quantity: 0.5}
            ]
        });

        pickTask.save();
    }

    function editLineItem(pickTask, lineItem) {
        pickTask.selectLine({sublistId: "pickactions", line: lineItem.line});
        pickTask.setCurrentSublistValue({sublistId: "pickactions", fieldId: "pickedquantity", value: lineItem.pickedQuantity});
        createInventoryDetail(pickTask, lineItem.inventoryDetailLines);
        pickTask.setCurrentSublistValue({sublistId: "pickactions", fieldId: "stagingbin", value: lineItem.stagingBinId});
        pickTask.commitLine({sublistId: "pickactions"});
    }

    function createInventoryDetail(pickTask, inventoryDetailLines) {
        var inventoryDetail = pickTask.getCurrentSublistSubrecord({sublistId: "pickactions", fieldId: "inventorydetail"});

        for (var i = 0; i < inventoryDetailLines.length; i++) {
            var line = inventoryDetailLines[i];

            inventoryDetail.selectNewLine({sublistId: "inventoryassignment"});
            inventoryDetail.setCurrentSublistText({sublistId: "inventoryassignment", fieldId: "issueinventorynumber", text: line.lotNumber});
            inventoryDetail.setCurrentSublistValue({sublistId: "inventoryassignment", fieldId: "binnumber", value: line.binNumberId});
            inventoryDetail.setCurrentSublistValue({sublistId: "inventoryassignment", fieldId: "inventorystatus", value: line.inventoryStatusId});
            inventoryDetail.setCurrentSublistValue({sublistId: "inventoryassignment", fieldId: "quantity", value: line.quantity});
            inventoryDetail.commitLine({sublistId: "inventoryassignment"});
        }
    }

    editPickTask();
}); 

          

Related Topics

Releasing Orders to the Warehouse
Updating or Deleting Pick Tasks Generated from Waves
Working with the SuiteScript Records Browser
SuiteCloud Supported Records
Transactions

General Notices