Saved search formula to group the results and fetch the description from the first line

        /**
         * Function to get the consolidated transaction details
         * @param {*} salesOrderId sales order id
         * @param {*} recType record type
         * @returns transaction details
         */
        function fetchConItemSearchResult(salesOrderId, recType) {
            try {
                log.debug('salesOrderId', salesOrderId);
                let consolidatedItemSearch = search.create({
                    type: "transaction",
                    filters:
                        [
                            ["type", "anyof", recType],
                            "AND",
                            ["custbody_mhi_consolidated_line_print", "is", "T"],
                            "AND",
                            ["mainline", "is", "F"],
                            "AND",
                            ["shipping", "is", "F"],
                            "AND",
                            ["cogs", "is", "F"],
                            "AND",
                            ["taxline", "is", "F"],
                            "AND",
                            ["internalid", "anyof", salesOrderId],
             
                        ],
                    columns:
                        [
                            search.createColumn({
                                name: "custcol_mhi_ibs_cust_line_num",
                                summary: "GROUP",
                                sort: search.Sort.ASC,
                                label: "LineNum"
                            }),
    
                            search.createColumn({
                                name: "formulatext",
                                summary: "MAX",
                             formula: "MIN({memo}) KEEP(DENSE_RANK FIRST ORDER BY {line})",
                                label: "Description"
                            }),
                        ]
                });
                let itemArray = [];
                consolidatedItemSearch.run().each(function (result) {
                    let itemObj = {};
                    itemObj.line = result.getValue(consolidatedItemSearch.columns[0]);
                    itemObj.description=result.getValue(consolidatedItemSearch.columns[1]);
                   
                    itemArray.push(itemObj);
                    return true;
                });
              
                return itemArray;
            } catch (error) {
                log.error('error @ fetchConItemSearchResult', error.message);
                return [];
            }
        };

Leave a comment

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