gpt4 book ai didi

java - Netsuite 获取事务保存搜索 Java

转载 作者:行者123 更新时间:2023-11-30 03:04:07 24 4
gpt4 key购买 nike

我正在用 Java 制作一个应用程序,它使用 Netsuite 的 SuiteTalk Web 服务来创建报告。我定义了一个交易保存搜索,其中使用日期作为条件,并在结果中打印默认交易列以及部门外部 ID 和金额总和。我通过 UI 运行保存的搜索,得到了我所期望的结果,但是,当我尝试在 java 代码中获取信息时,我不断得到空结果。我尝试过以下解决方案的java版本:

C# NetSuite WebServices: Get value from custom field in saved search (ItemSearchAdvanced)

http://www.anyforum.in/question/web-service/netsuite/How-to-get-data-from-saved-search-through-webservice-request/345

但是,这些对我来说都不起作用。当我进入 Netsuite UI 上的“列表”->“搜索”->“已保存搜索”菜单时,当我在过滤器中设置“常规”和“事务”时,我可以看到已保存的搜索。但是,我无法通过 API 检索它的信息。

这是我用来尝试获取保存的搜索数据的代码:

public void printReport() throws ExceededUsageLimitFault, UnexpectedErrorFault, InvalidSessionFault, ExceededRecordCountFault, RemoteException, UnsupportedEncodingException, SOAPException{

//METHOD 1: Transaction Search
TransactionSearchAdvanced sr = new TransactionSearchAdvanced();
//"customsearchreport" is the IF of my saved search
sr.setSavedSearchId("customsearchreport");
SearchResult res = _port.search(sr);
System.out.println(res.getTotalRecords());

//METHOD 2: Item search

ItemSearchAdvanced isa = new ItemSearchAdvanced();
isa.setSavedSearchId("customsearchreport");
SearchResult resp = _port.search(isa);
System.out.println(resp.getTotalRecords());

//METHOD 3: General saved search

GetSavedSearchRecord gssr= new GetSavedSearchRecord();
//I set the record type as "transaction" as I created a transaction saved search.
gssr.setSearchType(SearchRecordType.transaction);
GetSavedSearchResult gssre = _port.getSavedSearch(gssr);
System.out.println("Saved Search status: "+ gssre.getStatus().isIsSuccess());
RecordRefList srl = gssre.getRecordRefList();
RecordRef[] rr = srl.getRecordRef();
System.out.println("RecordRef[] size: " + rr.length);
for (int i = 0; i < rr.length; i++) {
RecordRef rref = rr[i];
System.out.println("External ID: " + rref.getExternalId());
System.out.println("Internal ID: "+ rref.getInternalId());
System.out.println("Name: "+ rref.getName());
}


}

使用方法 1 和 2,我无法获得结果(我打印“null”)。第三种方法打印了 16 个保存的搜索,但是,没有一个打印的搜索与我创建的搜索相对应。当我通过 UI 检查保存的搜索列表时,我发现存在 21 个非私有(private)保存的搜索,其中 4 个是我创建的。在打印的 16 份报告中,一份对应于私有(private)保存的搜索。

所以,我不明白为什么我无法获取已保存的搜索结果,也不明白是什么决定了是否可以通过任何方法访问报告。任何通过API 获取我的savedSearch 的帮助将不胜感激。另外,谁能解释一下 Netsuite 如何确定通过任何“获取”方法出现哪些已保存的搜索?

谢谢!

最佳答案

我解决了。我使用的 ID“customsearchreport”是一个 UI ID。我必须在报告中使用InternalID。此外,我还可以通过在已保存搜索的“受众”部分中选择“所有公司成员”复选框,使用 getSavedSearch() 方法打印已保存的搜索 ID。

关于java - Netsuite 获取事务保存搜索 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35218144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com