Javascript SuiteScript 2.0:根据所选帐户行将搜索结果动态添加到自定义列列表中

Javascript SuiteScript 2.0:根据所选帐户行将搜索结果动态添加到自定义列列表中,javascript,netsuite,suitescript,suitescript2.0,suitescript1.0,Javascript,Netsuite,Suitescript,Suitescript2.0,Suitescript1.0,希望你能帮忙 我正在尝试将保存的搜索结果添加到使用用户事件脚本“动态”创建的自定义列列表中。我曾经成功地使用SuiteScript1.0,但现在过渡到2.0,这似乎是不可能的 为了演示我的代码,我首先构建一个UE脚本,使用“serverWidget”模块创建一个自定义列列表: if (recordType === 'journalentry') { log.debug('works') var objLineSublist

希望你能帮忙

我正在尝试将保存的搜索结果添加到使用用户事件脚本“动态”创建的自定义列列表中。我曾经成功地使用SuiteScript1.0,但现在过渡到2.0,这似乎是不可能的

为了演示我的代码,我首先构建一个UE脚本,使用“serverWidget”模块创建一个自定义列列表:

            if (recordType === 'journalentry') {
            log.debug('works')
            var objLineSublist = getForm.getSublist({id: 'line'});

            // Add several custom fields to the form
            var entityField = objLineSublist.addField({
                id: 'custpage_entity',
                type: serverWidget.FieldType.SELECT,
                label: 'Entity'
            });
        }
我的UE脚本很好用

我现在创建一个客户端脚本;首先检查帐户类型是否为应收或应付,并根据选择的帐户类型,使用保存的搜索中的客户或供应商数据填充自定义列表(custpage_实体)。由于这是一个客户端脚本,我无法访问serverWidget模块的属性来捕获子列表字段(与我在UE脚本上使用它的方式相同)。我注意到“currentRecord.getField”对象,我可以用它来代替它,但遗憾的是它不起作用。这是我的密码:

                var customEntity = currentRecord.getField({fieldId: 'custpage_entity'});
            log.debug('customEntity', customEntity);

            if (getAcctType === 'AcctRec' || getAcctType === 'AcctPay') {

                var recordType = '';
                if (getAcctType === 'AcctRec')
                    recordType = 'customer'
                else recordType = 'vendor';
                log.debug('getAcctType', getAcctType + ' | ' + recordType);

                // Insert a blank option.
                customEntity.insertSelectOption({ value: 'test', text: 'test' })

                //Execute saved search
                var getCustomerResults = getEntityListFromSearch(recordType);

                getCustomerResults.run().each(function(result){
                    // .run().each has a limit of 4,000 results
                    customEntity.insertSelectOption({
                        value: result.getValue({name: 'internalid'}),
                        text: result.getValue({name: 'entityid'})
                    })
                    return true;
                });

            }
如果你能帮助我做错事,那将是非常有帮助的!
我应该注意:我需要它来处理客户端脚本中“帐户”列字段的字段更改。

您需要在服务器端(UE脚本)的下拉列表或客户端脚本中的pageInit事件中插入您的选项(但这只适用于没有字段更改的情况)


我建议在UE脚本中创建两个不同的下拉列表,插入选项,一个用于供应商,一个用于客户,并添加一个CSS类来隐藏它们。在fieldChange事件中,根据用户选择,使用CSS显示正确的下拉列表。

谢谢@Emerson,您有什么可以分享的例子吗?