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客户端代码的好方法.

我希望有所帮助.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值