如何使用 SuiteScript 采购订单加载项目?

2024-01-04

朋友们正在使用 NetSuite 和 SuiteScript。我可以保存运行脚本的采购订单并对创建的采购订单进行收费,但是当我将返回数据项值作为空值时,我需要获取该项目的 ID。

结果给我的 NetSuite 日志是:

采购订单 ID:3706 供应商 ID:144 项目 ID:空 交易日期:06/08/2015 表格:标准采购订单 货币:比索 CL

所有采购订单都会发生这种情况,显然如果您附加了物品。

加载 javascript 以使用采购订单的函数如下:

function loadPurchaseOrder(){

nlapiLogExecution('DEBUG','loadPurchaseOrder', 'Entra a funcion loadPurchaseOrder');    

//se aplican filtros para la busqueda del objeto  
var filters= new Array();
filters[0] = new nlobjSearchFilter('purchaseorder',null,'isnotempty');
filters[1] = new nlobjSearchFilter('mainline', null, 'is', 'T');

//seleccion de los campos que se quieren extraer
var columns = new Array();    
columns[0] = new nlobjSearchColumn('item');
columns[1] = new nlobjSearchColumn('entity');
columns[2] = new nlobjSearchColumn('trandate');
columns[3] = new nlobjSearchColumn('customform');
columns[4] = new nlobjSearchColumn('currency');
columns[5] = new nlobjSearchColumn('internalid');

var results = nlapiSearchRecord('purchaseorder',null,filters,columns);

var out = "";
if(results != null ){

    for(var i=0; i< results.length; i++){

        var purchaseOrder = results[i];
        var idItem = purchaseOrder.getValue('item');                        
        var idVendor = purchaseOrder.getValue('entity');
        var trandate = purchaseOrder.getValue('trandate');
        var form = purchaseOrder.getText('customform');
        var currency = purchaseOrder.getText('currency');
        var idPurchaseOrder = purchaseOrder.getText('internalid');

        out = " ID Purchase Order: " + idPurchaseOrder + " ID Vendor: " + idVendor + " ID Item: " + idItem
              + " Trandate: " + trandate + " Form: " + form + " Currency: " + currency;

        nlapiLogExecution('DEBUG','purchaseOrderCargada', out);

    }
} 

return out;  

}

如果有人可以帮助我。问候!

pd:

我也尝试过:

var idItem = nlapiGetLineItemField('项目', '项目');

它不起作用= /


这可能比您预期的要长,但我们开始吧。

NetSuite 将交易记录(采购订单是交易的一种类型)分为正文和行项目字段。当您进行交易搜索时,其中包括mainline = 'T',您告诉 NetSuite 仅检索 Body 字段数据。这item但是,该字段是行项目字段,因此 NetSuite 不会为其返回任何数据。这就是为什么idItem is null.

了解对方的行为mainline过滤器对于交易搜索至关重要。基本上,它是这样的:

  • mainline = 'T'只会返回 body 字段数据,因此每个 Transaction 只会返回一个搜索结果
  • mainline = 'F'只会返回行项目数据,因此它将为每个行返回一个搜索结果行项目关于匹配交易
  • mainline未指定将同时返回正文字段和行数据,因此它将为每个事务本身返回一个结果,并为每个事务的每一行返回一个结果。

这是一个具体的例子。假设系统中只有一个采购订单与所有其他搜索过滤器相匹配(除了mainline),并且该采购订单包含三个项目。这就是搜索结果将如何根据mainline filter:

  • If mainline = 'T'那么您将仅获得采购订单的一个结果,并且您将仅获得作为正文字段的搜索列的数据。
  • If mainline = 'F'那么你会得到准确的three结果,每个行项目一个,并且所有搜索列都将包含数据,无论它们是正文字段还是行字段
  • If mainline没有指定那么你会得到准确的four结果,其中一个仅包含 Body 字段的数据,其他三个将包含 Line 和 Body 数据

很难准确地建议您应该如何更改搜索,因为我不知道您打算如何处理这些搜索结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 SuiteScript 采购订单加载项目? 的相关文章

随机推荐

  • ASP.NET中调度任务的方法(无需编写Windows调度程序)

    我喜欢共享主机 他们不允许我使用Windows调度程序 那么在asp net中实现计划任务即 定时邮件 的方法是什么 我刚刚看到后台进程 https blog stackoverflow com 2008 07 easy backgroun
  • 如何在 C++ 中创建我自己的循环版本?

    我想知道是否可以创建自定义函数 例如for for each while etc 我想做的事情都是现有循环做不到的 我只是好奇地想了解它们是如何工作的以及我是否需要创建自己的 例如 如果想要创建仅接受参数的 for 函数的另一个版本 在此示
  • 取消选中复选框时删除 li 元素

    我可以动态地添加一个新的li复选框的选中事件上的元素 但是我无法删除相同的内容unchecked event document ready function var value tmCheckbox change function if t
  • WebForms 中的 Tab 键切换行为

    在 WinForms 中 我可以设计一个表单并使用 TabValue 来控制每次用户点击 Tab 时选择哪个控件 我的问题是 在网络表单中 是否有一种机制可以做同样的事情 编辑 这同样适用于 Ajax 密集型应用程序吗 您可以使用 ASP
  • Xml 架构扩展顺序

    如果我有扩展 如何确保派生元素位于基类元素前面 默认情况是相反的 我很想用all 但我知道这是不可能的
  • java中Arrays.fill的复杂性

    How Arrays fill char a char val 已实施内部 in java 它的复杂性是什么 Java 实现使用一个简单的for环形 然而 重要的是要记住 JVM 经常对内部功能进行重大更改 并且经常在运行时用较低级别的实现
  • crawler4j 获取数据遵循什么步骤顺序?

    我想学习 crawler4j是如何工作的 它是否获取网页然后下载其内容并提取它 db 和 csv 文件及其结构怎么样 一般来说 它遵循什么顺序 拜托 我想要描述性内容 Thanks 爬虫通用流程 一个典型的多线程爬虫的流程如下 我们有一个队
  • MPMoviePlayerController 覆盖 iOS 6

    在 iOS6 中使用 MPMoviePLayerController 时遇到覆盖问题 在 iOS6 之前一切正常 在我有这个代码之前 我似乎可以全屏播放电影 interface MovieOverlayViewController UIVi
  • 如何在动态添加的 DropDownList 列表项上添加 OnClick 事件?

    假设我有以下代码 DropDownList changesList new DropDownList ListItem item item new ListItem item Text go to google com changesLis
  • javax.mail.internet.ParseException:在 Content-Type string 中,预期为“/”,得到:

    我想使用 JSF 实现带有附件的邮件 我尝试了这段代码 private Part file private String sendFromGMail String from String pass String to String subj
  • android:layout_weight 是如何工作的?

    当我有以下内容时 它显示具有四种颜色的顶部布局的面积比底部布局区域小得多 根据本文档 http developer android com guide topics ui layout objects html linearlayout 当
  • ElasticSearch:在groovy脚本中访问文档嵌套值

    我有一个存储在 ElasticSearch 中的文档 如下所示 来源 firstname John lastname Smith medals bucket 100 count 1 bucket 150 count 2 我可以使用访问文档内
  • 使用输入框替换文本区域中的部分字符串(属性)

    主要目标 创建一个可以实时预览 HTML CSS 代码的网站 进一步来说 用户可以在某些特定部分编辑 HTML CSS 代码 因此 实时预览中的代码不会源自文本区域 而是源自 div Image of what I am trying to
  • Android 上使用微信 API 发朋友圈

    我用微信API创建了一个应用程序 我尝试在我的用户墙上发帖 我在iOS上可以成功发布微信朋友圈 提示尚未审核 然而在 Android 上 什么也没发生 这是我的代码 private IWXAPI api api WXAPIFactory c
  • htaccess 403 尝试使用 ErrorDocument 时遇到禁止错误

    我想在我的项目中有一个自定义 403 页面 所以我在 htaccess 文件中添加了这些代码 Order deny allow Deny from all Allow from 192 168 1 0 24 ErrorDocument 40
  • 如何在限制x轴后自动设置y轴限制

    假设我有一定数量的数据集想要一起绘制 然后我想放大某个部分 例如 使用ax set xlim or plt xlim or plt axis 当我这样做时 它仍然保留缩放之前的计算范围 我怎样才能让它重新缩放到当前显示的内容 例如 使用 i
  • 如何构建柔性结构?

    我想用像这样的 CSS构建一个灵活的结构 顶部和底部divs具有固定高度 而中心框具有响应高度 它们都应该覆盖整个容器 div 谁能告诉我该怎么做 body position relative padding 0px margin 0px
  • 如何在 GWT 中获取一年中的周数

    有没有一种简单的方法可以从a获取一年中的一周信息Date对象或从毫秒时间开始GWT在客户端 像这样的事情 Date date new Date Date yearStart new Date date getYear 0 0 int wee
  • 如何保存 nltk FreqDist 图?

    我尝试了不同的方法来保存我的情节 但我尝试过的每件事都出现了空白图像 而且我目前还没有没有想法 有其他可以解决此问题的建议吗 代码示例如下 word frequency nltk FreqDist merged lemmatizedToke
  • 如何使用 SuiteScript 采购订单加载项目?

    朋友们正在使用 NetSuite 和 SuiteScript 我可以保存运行脚本的采购订单并对创建的采购订单进行收费 但是当我将返回数据项值作为空值时 我需要获取该项目的 ID 结果给我的 NetSuite 日志是 采购订单 ID 3706