以前做Dynamics AX的,顺手会写一些简单的job,class,以及table和view,但是对SQL语言不是非常拿手,现在转到NetSuite,在search上就能在前端写一些简单的代码,并且测试和验证。个人觉得还是要利用好这个平台。
不一定非要做码农,人生还有很多好玩的事情,但懂一点编程思维对提升认知和做事方法很有帮助。有太多码农真的是只会敲代码了,既没有数据处理的思维方式,也没有改进模式的意识。。废话不多说。
NS里大部分的公式和Excel是相通的,直接用NS只是查看结果更快速一些。
但更重要的是,search里是可以直接修改数据的。
DECODE公式
这个应该类似于hardcode功能,下面是suite answers原文中的介绍,
Decode
Function | Syntax | Short Descriptions | Example |
---|---|---|---|
DECODE | DECODE(expr, search, result [, search, result ]... [, default ] ) | Compares expr to each search value one by one. If expr is equal to a search, the corresponding result is returned. If no match is found, default is returned. | DECODE({systemnotes.name}, {assigned},'T','F') |
我还找到了一个它举的栗子,
Result Field | Formula Field | Suggested Formula |
Amount | {amount} | DECODE({accounttype}, 'Expense', -1, 'Other Expense', -1, 'Cost of Goods Sold', -1, 1) *{amount} |
是用来纠正Expense的金额。因为2014之前的版本,Expense计入Credit的。但是按国际会计记账原则,Expense,Cost等费用,增加时应该计入Debit正,Credit负。减少时相反。所以所有2014年以前的transaction,在对账的时候,都应该把正负调整过来。
如果搞不清debit和credit,搜一下会计文章吧,这里就不多讲了。
例子里的公式是,如果账目类型为'Expense', 'Other Expense', 或者 'Cost of Goods Sold', 那么金额数x-1;如果是其他类型,那么金额数保持不变。
默认第一个参数是expression,最后一个参数是默认值。中间可以添加任意多个[search, result ]。只要记录里符合中间的任一search,那么返回相应的result。如果都不符合,那么返回最后一个result。