You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Saved Search或SuiteScript从NetSuite费用报告获取GL影响行?

从NetSuite费用报告获取GL Impact记录行的方法

一、使用保存的搜索(Saved Search)

GL Impact数据并非费用报告原生子列表,需基于**交易(Transaction)**记录类型创建搜索,定向筛选费用报告数据:

  • 筛选条件:
    标准标签下,选择「类型」等于「费用报告」,可额外添加日期范围、状态等筛选条件缩小范围;
  • 结果字段配置:
    在「结果」标签的「GL Impact」分类下,直接勾选所需字段:
    • 账户(Account)
    • 借方金额(Amount (Debit))
    • 贷方金额(Amount (Credit))
    • 过账状态(Posting)
    • 备注(Memo)
      可同时添加费用报告的基础字段(如文档编号、交易日期)用于关联主记录;
  • 额外设置:若需按费用报告分组展示,可在「分组」标签添加文档编号等唯一标识字段。

二、使用SuiteScript获取

SuiteScript 2.x 实现

可通过两种方式获取:调用记录的getGlImpact()方法,或使用搜索模块关联GL Impact字段:

/**
 * @NApiVersion 2.x
 * @NScriptType UserScript
 */
define(['N/record', 'N/search'], function(record, search) {
    function fetchExpenseGLImpact(expReportId) {
        // 方法1:通过record.getGlImpact()获取
        var expReport = record.load({
            type: record.Type.EXPENSE_REPORT,
            id: expReportId,
            isDynamic: false
        });
        var glLines = expReport.getGlImpact();
        var formattedData = [];
        
        glLines.forEach(line => {
            formattedData.push({
                account: line.account,
                debit: line.debit,
                credit: line.credit,
                isPosting: line.posting,
                memo: line.memo
            });
        });
        return formattedData;

        // 方法2:通过搜索模块关联GL Impact字段
        /*
        var glSearch = search.create({
            type: search.Type.TRANSACTION,
            filters: [
                ['type', search.Operator.IS, 'Expense Report'],
                ['internalid', search.Operator.IS, expReportId]
            ],
            columns: [
                search.createColumn({name: 'account', join: 'glImpact'}),
                search.createColumn({name: 'debitamount', join: 'glImpact'}),
                search.createColumn({name: 'creditamount', join: 'glImpact'}),
                search.createColumn({name: 'posting', join: 'glImpact'}),
                search.createColumn({name: 'memo', join: 'glImpact'})
            ]
        });
        var results = glSearch.run().getRange({start: 0, end: 1000});
        return results.map(res => ({
            account: res.getText({name: 'account', join: 'glImpact'}),
            debit: res.getValue({name: 'debitamount', join: 'glImpact'}),
            credit: res.getValue({name: 'creditamount', join: 'glImpact'}),
            isPosting: res.getValue({name: 'posting', join: 'glImpact'}),
            memo: res.getValue({name: 'memo', join: 'glImpact'})
        }));
        */
    }
    return {
        fetchExpenseGLImpact: fetchExpenseGLImpact
    };
});

SuiteScript 1.0 实现

使用nlapiGetGLImpact()方法直接获取:

/**
 * @NApiVersion 1.x
 * @NScriptType UserEventScript
 */
function fetchExpenseGLImpact(expReportId) {
    var glLines = nlapiGetGLImpact(expReportId);
    var formattedData = [];
    
    for(var i = 0; i < glLines.length; i++) {
        var line = glLines[i];
        formattedData.push({
            account: line.getAccountName(),
            debit: line.getDebitAmount(),
            credit: line.getCreditAmount(),
            isPosting: line.isPosting(),
            memo: line.getMemo()
        });
    }
    return formattedData;
}

注意事项

  • 仅已过账的费用报告能获取到GL Impact数据;
  • 脚本需配置足够权限访问费用报告及GL Impact相关数据;
  • 使用搜索模块时,需通过join: 'glImpact'关联GL Impact字段集。

内容的提问来源于stack exchange,提问作者Web Master444

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 23:05:25