php销售清单录入,Netsuite SuiteTalk – 通过PHP请求客户发票清单
就像你一樣,我開始嘗試使用Web Services API(也稱為SuiteTalk).大多數情況下,這是一種令人沮喪的運動,因為我最終發現的是我平常無法做到我想要的東西.那和性能非常糟糕,即使它工作正常也會導致我的項目失敗.
與Faz一樣,我發現使用RESTlet和Saved Searches的組合比處理Web服務框架更容易,更快捷.
基本上將您的問題分解為以下部分:
>保存搜索,返回您想要的結果(跟蹤以后需要的內部ID)
> RESTlet它只是一個Javascript文件,它定義了用于從搜索中返回結果的函數
>調用RESTlet并獲取結果的客戶端代碼.
第一部分:
所以保存的搜索非常簡單.我會假設你可以做到這一點,而且你可以在一個地方實際獲得你想要的所有領域.根據我的經驗,情況并非總是如此.
第二部分:
RESTlet涉及更多步驟,即使它真的是一件非常簡單的事情.使其變得復雜的是將其上傳并部署在NetSuite站點上.如果您還沒有安裝NetSuite IDE,我強烈推薦它,如果只是為了使腳本部署更容易一些.自動完成和工具提示也非常有用.
例如,這里是我用來從我關心的搜索中獲得結果的代碼.這是改編自某種靈魂在互聯網上的某個地方發布但我遺忘在哪里:
function getSearchResults(){
var max_rows = 1000;
var search_id = 1211;
var search = nlapiLoadSearch(null, search_id);
var results = search.runSearch();
var rows = [];
// add starting point for usage
var context = nlapiGetContext();
startingUsage = context.getRemainingUsage();
rows.push(["beginning usage", startingUsage]);
// now create the collection of result rows in 1000 row chunks
var index = 0;
do{
var chunk = results.getResults(index, index+1000);
if( ! chunk ) break;
chunk.forEach( function(row){
rows.push(row);
index++;
});
}while( chunk.length === max_rows);
// add a line that returns the remaining usage for this RESTlet
context = nlapiGetContext();
var remainingUsage = context.getRemainingUsage();
rows.push(["remaining usage",remainingUsage]);
// send back the rows
return rows;
}
您可以通過傳入已保存的搜索內部ID來獲取內容:
var search = nlapiLoadSearch(null, SEARCH_ID);
var resultSet = search.runSearch();
然后代碼重復調用getResults()來獲取1000個結果的塊,這是一個NetSuite限制.編寫完成后,必須將腳本上載到NetSuite并進行配置和部署.最重要的部分是告訴它為每個動詞分配什么功能.在這種情況下,我分配了GET來執行getSearchResults.這里有很多工作要做,我不打算把它全部輸出,因為值得花時間學習這一部分.至少足以讓IDE為你做這個= D.您可以在“RESTlets簡介”指南中閱讀所有相關內容.
第三部分.
客戶端代碼可以是您想要的任何方式,以您喜歡的方式執行REST.我個人喜歡Python,因為請求庫太棒了.
這是一些示例Python代碼:
import requests
import json
url = 'https://rest.sandbox.netsuite.com/app/site/hosting/restlet.nl?script=123&deploy=1'
headers = {'Content-Type': 'application/json', 'Authorization':'NLAuth nlauth_account=1234567, nlauth_email=someone@somewhere.com, nlauth_signature=somepassword, nlauth_role=3'}
resp = requests.get(url, headers=headers)
data = resp.json()
該URL將作為RESTlet部署的一部分顯示給您.然后,您可以使用返回的數據執行所需操作.
所以我建議你花時間的東西是
>設置NetSuite IDE
>獲取和閱讀SuiteScript開發人員參考文檔
>找到一種以您選擇的語言創建REST客戶端代碼的好方法.
我希望有所幫助.
總結
以上是生活随笔為你收集整理的php销售清单录入,Netsuite SuiteTalk – 通过PHP请求客户发票清单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: brooks levitate_Broo
- 下一篇: 大数据产品经理极速撰写PRD的5个步骤