云随笔 Carl Notes

ERP IT方案 电玩

netsuite弹出窗体的数据回传例子这样如果顺利,你就能很多开发出一个 弹出的窗体(实现特殊的货品列表),回传单个或多项的货品会销售或采购订单。------------------------------------User Event suitescript beforeloadform.getSubList('item').addButton('custpage_name_print', '...
阅读全文 »

刚发现一个未公布的对象,拿purchaseorder举例,就是Receipts & Bills这个subtab有于当前业务单据,所有相关联的流程数据。对于系统流程的断定很有帮助。我们在nlapiLoadRecord的返回中可以找到这样对象[undefined, [undefined total=380.00 type=Bill linktype=Order Bill/Invoice]] ;id,l...
阅读全文 »

&xml=T https://system.netsuite.com/app/accounting/transactions/transaction.nl?id=3179&e=T use &xml=T below to display xml 用于排除故障用的测试地址, 把xml输出 既可查询一些数值情况,优先于UI的动作。 zeng.cz 20090421 1508
阅读全文 »

背景与展望: 比如:公司要上市往往会要求提供过去几年的营业数据和报表等信息, 而这些信息来源于正在一直运营使用的ERP和财务系统是最可靠与真实的。 NetSuite实现的ERP和财务系统的完美结合,随着多年的经营积累和业务流程升级, NetSuite系统会不断改造和适应新的企业流程和应用。 其中免不
阅读全文 »

在system的 Enhancement Voting > Search Results > Enhancement Voting 中,我们能看到Netsuite是如何实现一个系统的评论功能,个人分析如下: 1.在Netsuite总账户中,主站点的'标签'中建立New Release Info 和 Enhancement Voting的标签,配置相应的权限,2.建立记录类型,大致字段内容如下:...
阅读全文 »

我们知道 netsuite的url构造https://system.netsuite.com/app/accounting/transactions/opprtnty.nl?whence=都是有规律的! 这些nl 您传递什么参数给他, 它肯定就要要什么规律来执行了今天发现了一个新的内置参数:selectedtab例如:selectedtab=accessselectedtab=history在ur...
阅读全文 »

Quick TECHNICAL Note

Reality: UPS only support WebServices integration(or window platform exe application: FedEx Ship Manager® Lite), friendly for JAVA, PHP or C#.

We need to calling UPS SOAP services in NetSuite directly, so there is JSON -> XML for input expected XML parameters and parse API return result XML -> JSON action. 

Different from UPS, There is high request for xml’s element order/sequence for FedEx API.

This’s a re-usable framework for intergration with WebServices platform/application.

Registration for the Developer Keys

We will need registration on webside got

Developer Test Key: PFPtfQE9ME1N****
Required for FedEx Web Services for Intra Country Shipping in US and Global

and the Email Box:

Title: Your Developer Test Key Registration is complete

Test Account Information
<spacer.gif>
Test URL: https://wsbeta.fedex.com:443/web-services
Test Password: H6F4kyFrYIQxALXOTbH53****

FedEx Web Services Testing Information:
FedEx Shipping Account Number: **0088000
FedEx Meter Number: ***2012**

On NetSuite Side we are targeting to achieve xml files like the sample:

Example 1:Rate Request

<SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/“ xmlns:SOAP-
ENC=”http://schemas.xmlsoap.org/soap/encoding/“ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“ xmlns:xsd=”http://www.w3.org/2001/XMLSchema“ xmlns=”http://fedex.com/ws/rate/v28">
SOAP-ENV:Body



XXXXXX
XXXXXX


XXXXXX
XXXXXX



XXXXXX
XXXXXX


RateRequest_v28


crs
28
0
0


2020-02-25T12:34:56-06:00
REGULAR_PICKUP
PRIORITY_OVERNIGHT
FEDEX_BOX

LB 20.0 XXXXXX FedEx-WAPI XXXXXX
SN2000 Test Meter 8 10 Fedex Parkway AUSTIN TX XXXXXX US
XXXXXX Recipient Contact XXXXXX
Recipient Address Line 1 Recipient Address Line 2 Collierville TN XXXXXX US
SENDER XXXXXX BUSINESS\_STATE 123456 LIST 1 1 1 1 LB 20.0 12 12 12 IN XXXXXX XXXXXX 12 ContentDescription

And all above xml element is dynamically transfered from NetSuite Sales Order data(and also data from location, currency, custom record types, settings), We got those data(in expected order), using the Google Project’s X2JS to convert from JSON to XML.

Next resolve the across domain ajax call by using NetSuite 2.0 API https.post

var response = https.post({
url: ‘https://wsbeta.fedex.com:443/web-services‘,
body: new X2JS().json2xml_str(PostDataObj),
headers: {
“Accept”: “image/gif, image/jpeg, image/pjpeg, text/plain, text/html, */*“,
“Content-Type”: “text/xml”,
“Access-Control-Allow-Origin”: ‘*‘,
}
});

Need to thanks this thread for useful notes: https://stackoverflow.com/questions/62523251/creating-a-http-post-call-for-fedex-web-services  

FedEx Webservices Errors

  • Response Code 400 or 500

    • Accross domain Error
    • Schema Error

     

  • UnrecoverableClientError
    SchemaError
    validation failure for RateRequest Error:cvc-complex-type.2.4.a: Invalid content was found starting with element

    • Check the XML object sent to FedEx, the order of the element MUST match to the WDSL schema
    • Check the XML object elements if there is addtional property
  • FedEx 404 Unrecoverable ClientError

Share tools used between XML and JSON

Estimate Rate

Integrate with existing UPS integration

While end-use switching shipping carries, we need to clean up the backend package list data and rebuild for current shipping carrier, since UPS and FedEx are using DIFFERENT formating and propertys.


NetSuite’s javascript engine is Rhino(I.e. Rhino 1.7), we can not run node-based code on NetSuite, however,

write your code as, say, an npm module, and run npm scripts from the command line. I have done this in the past for unit testing, doc generation, eslint, etc. In order to actually run code in NetSuite, though, it must be in a plain .js file that NetSuite can interpret and load as a Library on your Script record.

Node.js in SuiteCommerce

downloading Node.js to use for SuiteCommerce.

How can I use Node.js in Netsuite?

20231008 Server端没有开启解释器,没配置环境,就无法识别原生的Node.js代码


0%