繁体   English   中英

如何在套件中搜索过滤条件?

[英]How to do search filter criteria in a suitelet?

这是我的套房。 我也收到条件错误。 没有给出日期,它直接进入条件,它给我一个名为“”SSS_INVALID_SRCH_FILTER”的错误。是的,我知道这个错误为什么会出现。这个错误因为它没有价值,所以它发生意味着尽快suitelet自己加载,直接进入condition,应该怎样?

/**
*@NApiVersion 2.x
*@NScriptType Suitelet
*/
define(['N/record','N/ui/serverWidget','N/redirect','N/runtime','N/search','N/url'],function(record,serverWidget,redirect,runtime,search,url){
    function onRequest(context){
    var Request = context.request;
    var Response = context.response;
    var name = context.fieldId;
    if(Request.method == 'GET') {
        var form=serverWidget.createForm({title:"Customer entry Suitelet"});
        var primaryinfo=form.addFieldGroup({
            label:'Primary Information',
            id:'custpage_advs_primary_info',
        });
        var firstname=form.addField({
            label:'First Name',
            id:'custpage_advs_first_name',
            type:serverWidget.FieldType.TEXT,
            container:'custpage_advs_primary_info'
        });
        firstname.isMandatory=true;  
        var lastname=form.addField({
            label:'Last Name',
            id:'custpage_advs_last_name',
            type:serverWidget.FieldType.TEXT,
            container:'custpage_advs_primary_info'   
        });
        lastname.isMandatory=true;
 var startdate=form.addField({
            label:'Start Date',
            id:'custpage_advs_start_date',
            type:serverWidget.FieldType.DATE,
            container:'custpage_advs_primary_info'
        });
        var enddate=form.addField({
            label:'End Date',
            id:'custpage_advs_end_date',
            type:serverWidget.FieldType.DATE,
            container:'custpage_advs_primary_info'
        });
  var submit=form.addSubmitButton({
            id : 'custpage_advs_submit_record',
            label : 'Submit'
        });
        Response.writePage(form);
        form.clientScriptFileId = 91375;
        var fnameValue = Request.parameters.custparam_first_name;
        var lnameValue = Request.parameters.custparam_last_name;
 if(fnameValue){
 var fnamecustomerSearch = search.create({     //style="text-align:right"
            type:'customrecord_advs_customer_entry_form',
            filters:['custrecord_advs_first_name',"startswith",fnameValue],
        columns:[
        search.createColumn({name: "name"}),
        search.createColumn({name: "custrecord_advs_first_name"}),
        search.createColumn({name: "custrecord_advs_last_name"}),
        search.createColumn({name: "id"}),
        search.createColumn({name:"created"})
        ]
        });  
  var counter = 0;
        fnamecustomerSearch.run().each(function(result) {
            var InternalidVal = result.getValue('internalid');
            var firstname=result.getValue('custrecord_advs_first_name');
            var lastname=result.getValue('custrecord_advs_last_name');
            var recordid=result.id;
            const view_url = url.resolveRecord({
                recordType:'customrecord_advs_customer_entry_form',
                recordId: recordid,
                isEditMode: false
            });
          mysublist.setSublistValue({
            id: 'custpage_advs_sublist_internalid',
            line: counter,
            value: InternalidVal
            }); 
        mysublist.setSublistValue({
                id: 'custpage_advs_sublist_fname',
                line: counter,
                value: firstname
            });
        mysublist.setSublistValue({
                id: 'custpage_advs_sublist_lname',
                line: counter,
                value: lastname
            });
        mysublist.setSublistValue({
                line: counter,
                id: 'custpage_advs_sublist_view',
                value:"<html lang='en'><head>  <style> a {color:#ff0000; background-color: transparent; text-decoration: none;}</style></head><body><a href='"+view_url+"' target='blank'> View</a></body></html>"
            });
        counter++;
        return true;
        });
    }

    else if((startdate)&&(enddate)){
             var datecustomerSearch = search.create({
                type:'customrecord_advs_customer_entry_form',
                filters:[ 
                    ["created","onorafter","09/12/2022"],
                    'and',
                    ["created",'before',"17/12/2022"],
                    'and',
                    ['mainline',"is",true]
                ],
                 columns:[
            search.createColumn({name: "custrecord_advs_first_name"}),
            search.createColumn({name: "custrecord_advs_last_name"}),
            search.createColumn({name: "id"}),
            search.createColumn({name:"created"})
              ]
            });  
            var counter = 0;
            datecustomerSearch.run().each(function(result) {
            var InternalidVal = result.getValue('internalid');
            var firstname=result.getValue('custrecord_advs_first_name');
            var lastname=result.getValue('custrecord_advs_last_name');
            var recordid=result.id;
            const view_url = url.resolveRecord({
                recordType:'customrecord_advs_customer_entry_form',
                recordId: recordid,
                isEditMode: false
            });
        mysublist.setSublistValue({
        id: 'custpage_advs_sublist_internalid',
        line: counter,
        value: InternalidVal
        });
        mysublist.setSublistValue({
            id: 'custpage_advs_sublist_fname',
            line: counter,
            value: firstname
        });
        mysublist.setSublistValue({
            id: 'custpage_advs_sublist_lname',
            line: counter,
            value: lastname
        });
           mysublist.setSublistValue({
                line: counter,
                id: 'custpage_advs_sublist_view',
                value: "<html lang='en'><body><a class='dottedlink viewitem' href='"+view_url+"' 
                        target='blank'> View</a></body></html>"
            });
            counter++;
            return true;
            });
    }
 else{  
    return true;
    }
    }
    else{             //POST part
    var Fname= Request.parameters.custpage_advs_first_name;
    var Lname=Request.parameters.custpage_advs_last_name;
    var customRecord=record.create({
        type:'customrecord_advs_customer_entry_form',
        isDynamic:true,
    });
 customRecord.setValue({
        fieldId:'custrecord_advs_first_name',
        value:Fname
    });
    customRecord.setValue({
        fieldId:'custrecord_advs_first_name',
        value:Lname
    });
var recordId=customRecord.save({
        enableSourcing: false,
        ignoreMandatoryFields: false
        });
    redirect.toSuitelet({
        scriptId: 'customscript_advs_ss_editviewcolumn',
        deploymentId: 'customdeploy_advs_ss_editviewcolumn',
    });
        }
    }
        return{
            onRequest:onRequest
        }
        });

请原谅我犯了一个愚蠢的错误,因为我对脚本编写的知识不多。

您的问题来自过滤器部分,它的结构不正确。

保存的搜索应该使用以下结构:

search.create({
    type: 'customrecord_advs_customer_entry_form',
    filters: [
        ['custrecord_advs_first_name',"startswith",fnameValue],
        // 'AND', ['another_custfield_here',"startswith",fnameValue], -- In case you wanted to add another filter
    ],
    columns: [
        search.createColumn({name: "name"}),
        search.createColumn({name: "custrecord_advs_first_name"}),
        ....
    ]
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM