随笔 Carl Notes

IT解决方案 NetSuite ERP

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...
阅读全文 »

zeng.cz在打印HTML页面时控制分页,可以使用层来动态控制。 具体的方法是,在需要分页的地方动态添加如下代码: 这是一个经典应用,如果netsuite中涉及的批量凭证打印 需要用这个来控制每张凭证的页面的。很重要,因为html打印是无法像pdf那样的位置决定性。如果一个页面中的表格被分摊到不同的页面来打印了:无标题文档每页都有的表头表格内容表格内容表格内容表格内容表格内容表格内容表格内容...
阅读全文 »

这个能给一个指定的对象绑定多个重复的事件,执行顺序按照添加顺序来执行!已测试浏览器(ie7,firefox,chrome) var Bind = function(eventName, fun, obj) { ///给对象绑定事件,未传入对象的话默认绑定window ///
阅读全文 »

&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系统会不断改造和适应新的企业流程和应用。 其中免不
阅读全文 »

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

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

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代码


1. Install SuiteCloud IDE(Eclipse + Plugin)

1.1 https://www.eclipse.org/downloads/packages/release/mars/2/eclipse-ide-java-ee-developers.
1.2 Updating Eclipse for Use with SuiteCloud IDE
1.3 Enable NS Features, SDF,
Setup > Company > Enable Features > SuiteCloud > SUITECLOUD DEVELOPMENT FRAMEWORK

2. Create SuiteCloud IDE, Project

File > New > SuiteCloud Project,
Account Customization
Project Name

3. NETSUITE UI, Assign Current Employee Record with “SDF Developer - 2FA Off” role

Create an custom role, make sure the 2FA is off(mandatory uncheck and ‘Not required’) in: Setup > Users/Roles > Two-Factor Authentication Roles

4. Configure SuiteCloud IDE to connect with NS (One-Time Setup)

NetSuite
Manage Account
Add Account(s)
Setup > Company > Company Information
Issue Token (Token has been issued)

5. Eclipse, Right click, NetSuite > Change Project Setting.

6. Eclipse, NetSuite > Import Bundle Components

List Bundles

Select which Bundle to download

7. How to use suitecloud for deployment?

Please reference to https://www.cnblogs.com/backuper/p/sdf\_cli\_for\_node\_js.html How to use NetSuite SDF CLI, CLI for Node.js on Mac, suitecloud command


0%