Create image search suing suitescript

var itemImageList = main.imageSearch(itemArray);
 imageSearch: function(idArray) {
                log.debug('idArray', idArray)
                var resultObj = {}
                var resultObj1 = {}
                try {
                    var websiteInternalID = '2'
   
                    var wesite = record.load({
                        type: record.Type.WEBSITE,
                        id: websiteInternalID
                    })
   
                    var dataArray = ['imageitemfielddelimiter', 'imagestructurefielddelimiter', 'imageuniquefield']
   
                    var delimitor = wesite.getValue({
                        fieldId: dataArray[0]
   
                    }) || '_' ;
                    var delimitor_1 = wesite.getValue({
                        fieldId: dataArray[1]
   
                    }) || '-' ;
                    var uniqField = wesite.getValue({
                        fieldId: dataArray[2]
   
                    }) || 'itemid' ;
                    // var delimitor =  '_';
                    // var delimitor_1 = '-';
                    // var uniqField = 'itemid';
                    log.debug('debug@uniqField', uniqField)
   
                    var itemSearchObj = search.create({
                        type: "item",
                        filters: [
                            ["internalid", "anyof", idArray],
                            "AND",
                            ["isonline", "is", "T"],
                            
                        ],
                        columns: [
                            search.createColumn({
                                name: "internalid",
                                label: "Internal ID"
                            }),
                            search.createColumn({
                                name: "formulatext",
                                formula: "CONCAT({" + uniqField + "}, '" + delimitor + "')",
                                label: "Formula (Text)"
                            })
                        ]
                    });
   
                    var searchResultCount = itemSearchObj.runPaged().count;
                    log.debug("itemSearchObj result count", searchResultCount);
                    var oldArray = []
                    itemSearchObj.run().each(function(result) {
                        // .run().each has a limit of 4,000 results
                        var item = result.getValue({
                            name: "internalid"
                        });
                        log.debug(" item", item);
                        var imageUrl = result.getValue({
                            name: "formulatext"
                        });
                        log.debug("imageUrl", imageUrl);
   
                        // resultObj[item] = imageUrl ? (main.fileSearch(imageUrl)) : '';
                        var imageUrlRef = imageUrl || '';
                        log.debug("imageUrlRef", imageUrlRef);
   
                        if (imageUrlRef) {
   
                            resultObj1[item] = {
                                old: imageUrlRef,
                                new: ''
                            }
                            oldArray.push(imageUrlRef)
                        }
   
   
                        return true;
                    });
   
                    // remove the empty string from the array 
                    var newArray = oldArray.filter(function(v) { return v !== '' });
   
                    if (newArray.length && newArray.length > 0) {
                        var resultObjNew = main.fileSearchAdv(newArray);
                        log.debug('resultObjNew', resultObjNew)
                        for (var key in resultObj1) {
                            var keyImag = resultObj1[key].old;
                            log.debug('keyImag', keyImag)
                            resultObj[key] = resultObjNew[keyImag] ? resultObjNew[keyImag][0] : '';
                            log.debug(' resultObj', resultObj)
                        }
                    }
   
                } catch (e) {
                    log.debug('error@imageSearch', e)
                    log.error('error@imageSearch', e)
                }
                return resultObj;
            },




            fileSearchAdv: function(imageName) {

                var resultObj = {}
                try {
   
                    var filter = [
                        ['availablewithoutlogin', 'is', 'T']
                    ]
                    var newImageArr = [];
                    
                    if (imageName.length > 1) {
                        log.debug('image lengthmore')
                        var newImageArr = [],
                            i = 0
                        imageName.forEach(function(each) {
   
                            newImageArr.push(["name", "contains", each])
                            i++;
   
                            if (i < imageName.length)
                                newImageArr.push("OR")
                        });
                        log.debug('newImageArr', newImageArr)
   
                    } else
                        var newImageArr = ["name", "contains", imageName]
                        log.debug('newImageArr', newImageArr)
   
                    if (newImageArr.length > 0) {
                        filter.push("AND")
                        filter.push(newImageArr)
                    }
   
                    var fileSearchObj = search.create({
                        type: "file",
                        filters: filter,
                        columns: [
                            search.createColumn({
                                name: "internalid",
                                label: "Internal ID"
                            }),
                            search.createColumn({
                                name: "name",
                                sort: search.Sort.ASC
   
                            })
                        ]
                    }).runPaged({
                        pageSize: 1000
                    });
   
                    log.debug('fileSearchObj', fileSearchObj)
                    var page = fileSearchObj.pageRanges;
   
                    for (var k = 0; k < page.length; k++) {
                        var data = fileSearchObj.fetch({
                            index: k
                        }).data.forEach(function(result) {
                            var tempObj = {};
                            var name = result.getValue({
                                name: "name"
                            });
                            imageName.forEach(function(v) {
                                if (name.indexOf(v) >= 0) {
                                    if (resultObj[v]) {
                                        resultObj[v].push(name)
                                    } else {
                                        resultObj[v] = [name]
                                    }
   
                                }
                            })
                        });
                    }
   
                    for (var eachArr in resultObj) {
                        log.debug(eachArr)
                        resultObj[eachArr].sort();
                    }
                } catch (err) {
                    log.debug('error@fileSearchNew', err)
                    log.error('error@fileSearchNew', err)
                }
                return resultObj;
            }

Leave a comment

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