2
我試圖從SuiteTalk購買訂單中獲取物品和一些相關信息。我可以使用以下與TransactionSearch
以獲得所需的採購訂單在斯卡拉:使用SuiteTalk在PurchaseOrder中獲取物品
val transactionSearch = new TransactionSearch
val search = new TransactionSearchBasic
...
search.setLastModifiedDate(searchLastModified) //Gets POs modified in the last 10 minutes
transactionSearch.setBasic(search)
val result = port.search(transactionSearch)
我能每個結果轉換爲記錄作爲PurchaseOrder類的一個實例。
if (result.getStatus().isIsSuccess()) {
println("Transactions: " + result.getTotalRecords)
for (i <- 0 until result.getTotalRecords) {
try {
val record = result.getRecordList.getRecord.get(i).asInstanceOf[PurchaseOrder]
record.get<...>
}
catch {...}
}
}
從這裏我能夠使用getters訪問單個字段,除了ItemList。
我可以在NetSuite Web界面看到有附加到採購訂單的項目。但是在結果記錄上使用getItemList
總是返回null
響應。
有什麼想法?
謝謝你的建議。我的結果是返回採購訂單,但我無法將searchPreferences應用於我的服務,並且仍在爲itemList獲取'null'。 我有設置服務,也許我做了錯誤的方式: 'VAL服務=新NetSuiteService();'' VAL解析器=新HeaderHandlerResolver;'' service.setHandlerResolver(旋) ;' 'val port = service.getNetSuitePort;' 'val preferences = new SearchPreferences;' 'preferences.setBodyFieldsOnly(false);' 我沒有'port.searchPreferences'選項作爲首選項。 – the3rdNotch
您必須將搜索首選項添加到NetSuite服務對象,如 - NetSuiteService _service = new NetSuiteService(); SearchPreferences prefrence = new SearchPreferences(); prefrence.bodyFieldsOnly = false; _service.searchPreferences = prefrence; –
這取決於您如何將WSDL編譯爲Java。如果您使用Axis 1.4(如在NetSuite的演示中),那麼'port(由'getNetSuitePort'返回)將是NetSuiteBindingStub類型。然後做'port.setHeader(「urn:messages_2015_2.platform.webservices.netsuite.com」,「searchPreferences」,prefrence);'。 –