NetSuite .id的用法

news2024/11/20 1:21:32

我们必须认清一个事实,NetSuite Saved Search是一个被封装化的SQL查询工具。在NetSuite的早期版本中,可以利用Formula字段做很多SQL语句上的灰色应用。但是慢慢的,灰色应用范围被压缩了。目前只剩下一个“.id”的应用了。

今朝我们就谈谈.id的用法,以及其背后的逻辑。

在我们早前的一篇文章中,提到过某些字段会基于不同的语言环境在Search结果中返回不同的值。这样的话,会造成错误。

NetSuite 交易记录类型中文环境下的失效_毛岩喆的博客-CSDN博客这是个新手常犯的错误,因为在做Transaction的Saved Search时,有个陷阱字段就是Type字段。这个字段会跟随系统语言而呈现“中英文”的数值。那么就意味着我们今后在写跟“记录类型”相关的Saved Search的Formula时,需要选择Record Type字段,而非Type字段。在数据字典上,可以看到Type字段类型为Select,而另外一个Record Type字段的类型为Text。在英文环境中写的Saved Search运行的好好的,但是在中文状态下失效了。https://blog.csdn.net/remottshanghai/article/details/127341817?spm=1001.2014.3001.5501近期,我们发现.id能够更加彻底的解决这个语言环境导致的意外问题。

举个例子,在一个Transaction Search中,我们想在结果字段中用Account Type来作为条件,格式化结果。类似于:

case when {accounttype}='Other Current Liability' then '正确' else '错误' end

但是发现问题来了。因为Account Type在不同的语言环境下的字符串,例如在中文环境下字符串是“其他流动负债”。那么,我们的公式将不得不改为:

case when {accounttype}='Other Current Liability' or {accounttype}='其他流动负债' then '正确' else '错误' end

但是,如果有法文用户呢,德文用户呢?

所以,这不是个办法。

NetSuite留的.id就发挥作用了。

作为Formula中的灰色应用,用户可以在公式中的基本上任何字段中增加.id作为结果输出的加强,这时输出的就是这个字段的内部ID值。这个ID值通常为整型或者原生英文的字段串。不会因为语言环境而改变。从而解决我们上面面临的问题。

这个ID值其实是在数据库中某个字段所关联(Join)表中的id字段的值。举个例子。

Account会Join一个表叫做Account Type,在这个表中是有个字段真的叫做ID的。

这个Account Type表的ID字段为String类型。我们拉取其中的值看一下。

 其值为原生的英文字符串。这些字符串是我们真正需要的值。

因此,上面的公式改为如下内容,行不行?

case when {accounttype.id}='OthCurrLiab' then '正确' else '错误' end

答案是:

不行!

我前面提过“某个字段所关联(Join)表中的id字段的值”。如果{accounttype}字段没有关联任何表,所以你是取不出id字段的值的。虽然系统不报错,但是你就是取不出。我们需要做个变通,将公式改为{account.type.id},也就是取Account这个关联表的Type关联表的ID字段的值。有点绕哈:)

case when {account.type.id}='OthCurrLiab' then '正确' else '错误' end

这样就可以了么?

答案再次是:

不行!

按照这种方式取出的值,有可能会有些异常,以上面为例,在Search结果中的字段上会出现“表达式错误”的话,记得格式化一下字符串(如果ID是String类型的话)。这是很诡异的情况,原因不明,反正这样做对了。

case when to_char({account.type.id})='OthCurrLiab' then '正确' else '错误' end

下面是实验数据,自己操练一下吧。

DECODE({account.type.id},'OthCurrLiab','流动负债','其他类型')

case when to_char({account.type.id})='OthCurrLiab' then '流动负债' else '其他类型' end

//请注意case when中 to_char的使用。不是多余,你去掉试试。但是用decode就运行正常,奇了个怪。

 

 

 如果有任何关于NetSuite的问题,欢迎来谈。我的邮箱:rick.mao@truston.group

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/495671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络管理员优化提高网络性能需要关注的三个指标

网络管理员有一个主要责任:确保其网络的正常运行时间,同时不影响网络性能。然而,随着现代可部署解决方案通过传统的网络架构,这说起来容易做起来难。尽管现代解决方案在效率方面绝对比传统解决方案更上一层楼,但它们也…

任务态相关的一些知识总结

静息态的数据处理现在都比较简单了,因为有了fmriprep和qsiprep流程工具,没有特别的难度。 而关于任务态,则有一些独特的处理方式,因为最近要做任务态的数据分析,所以学习一下。 先学习下R的4个重输出函数:…

更懂业务的数智平台,应对数智化转型的“千变万化”

本文作者 跨界的申斯基 毫无疑问,随着数智化转型的加速,越来越多的企业正在把数智化战略提升到一个全新的高度,转型的进程也正从“浅层次”的数智化走向“深层次”数智化的阶段。 这也让企业的数智化转型进入到了一个全新的阶段,…

windows权限维持之shift后门

原理:沾滞键的目的是为了帮助那些按键有困难的人设计的,在Windows系统下连续按5次shift键后,系统就会执行C:\Windows\System32下的sethc.exe,也就是启用了沾滞键,但是当我们将shell.exe文件把sethc.exe文件通过更改名称…

AI 工具合辑盘点(七)持续更新 之 AI 音乐制作工具

AI 音乐制作工具 AI 也正在民主化音乐。它正在改变音乐创作的方式,赋予每个人成为音乐家的机会。创作音乐杰作所需的一切只是一个想法、一台电脑和一个 AI 音乐生成器。🎶 AI 生成的音乐可以在几分钟内创作出来,结果取决于你的提示——几乎…

Python-web开发学习笔记(1)--- HTML基础

大家好,我是尚拙谨言,欢迎来到本专栏。本专栏主要是为web开发学习服务的,一共分为3个部分:前端介绍、数据库、Django,均为python web开发的学习笔记,希望能帮助到大家,也以此作为我个人的学习记…

Qt 从入门到入土【下篇】

Qt 从入门到入土【上篇】 推荐一个非常好的视频 本文目录 6. 对话框QDialog6.1 基本概念6.2 标准对话框6.3 自定义消息框6.4 消息对话框6.5 标准文件对话框 7. 布局管理器7.1 系统提供的布局控件7.2 利用widget做布局 8. 常用控件8.1 QLabel 控件使用8.2 QLineEdit8.3 其他控件…

从不同视角来看待API数据接口

一、作为产品经理向客户推广API数据接口,需要注意以下几点: 1.了解目标客户:在推广API数据接口之前,首先需要了解目标客户的需求和痛点,针对客户的实际情况提供更具体化的解决方案。 2.强调API接口的价值&#xff1a…

Istio 故障注入之延时(fixedDelay)、中断(abort)

Istio 故障注入 Istio 故障注入与其他在网络层引入错误(例如延迟数据包或者直接杀死 Pod)的机制不同,Istio 允许在应用程序层注入故障。这使得可以注入更多相关的故障,比如 HTTP 错误代码等。 Istio 可以注入两种类型的故障&…

springboot整合vue2-uploader文件分片上传、秒传、断点续传

1:vue-simple-uploader介绍 vue-simple-uploader是基于 simple-uploader.js 封装的vue上传插件。它的优点包括且不限于以下几种: 支持文件、多文件、文件夹上传;支持拖拽文件、文件夹上传可暂停、继续上传错误处理支持“秒传”,…

2023年博客之星入围选拔重装开启——今年没有拉票环节啦

2023年博客之星入围选拔开始啦! 2022的博客之星大赛言犹在耳,2023的活动又接踵而至了。今年的博客之星(包括博客新星)的入围规则很简单: 2023年新规则 1.不需要拉票!不喜欢这个环节的有福啦 2.从年初就…

python对医疗数据进行分析,看看哪个年龄段最容易生病

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 什么是数据分析 明确目的–获得数据(爬虫,现有,公开的数据)–数据预处理——数据可视化——结论 准备 环境使用: 在开始写我们的代码之前,我们要准备好运行代码的程序 Anacon…

附录3-动态组件 component与keep-alive setup()写法

目录 1 基本使用 2 按钮切换组件 3 keep-alive 3.1 在切换组件的时候,默认情况下被切换的组件就会被销毁 3.1.1 数据情况 3.1.2 生命周期函数情况 3.2 使用 keep-alive 3.3 keep-alive的生命周期函数 3.4 缓存指定组件 include 3.5 不缓存指定组…

Redis学习——day02

Redis学习基础 性能测试工具:Redis-benchmarkRedis基础知识:redis的数据类型:特殊数据类型: 性能测试工具:Redis-benchmark 官方自带的测试工具参数:简单练习:redis-benchmark -h localhost -p…

前端开发环境搭建踩坑笔记——npm install node-sass安装失败的解决方案

文章目录 问题背景问题描述解决方案1. 检查node-sass安装版本是否正确。2. 检查是否是网络问题 总结 问题背景 开发新的前端项目时,总少不了搭建开发环境和执行npm install安装依赖包,但npm install的过程总是充满着玄学,很难保证一次性成功…

Java之多线程初阶2

一.上节内容复习 上节内容指路:Java之多线程初阶 1.进程和线程的区别 1.进程中至少包含一个线程(主线程) 2.进程是申请计算机资源的最小单位 3.线程是CPU调度的最小单位 4.进程之间是相互隔离的,线程是使用的是进程统一申请来的资源,之间可以相互影响 2.创建线程的四种方…

设计模式——适配器模式(类适配器、对象适配器)

是什么? 我们平时的有线耳机接口分为USB的和Type-C的接口,但是手机的耳机插口却只有一个,像华为的耳机插口现在基本都是Type-c的,那如果我们现在只有USB接口的耳机怎么办呢,这个时候就需要使用到一个转换器&#xff0c…

数据汇总从20s优化至2s(小经验)

目录 项目背景: 数据汇总访问时间长的问题: 解决方案: 1.创建参与访问表 2.使用redis进行优化 总结: 项目背景: 一个简单的抽奖系统,当要统计每天的参与访问,总的参与访问 数据汇总访问时…

运维高可用架构的 6 大常规方案

在介绍高可用架构的方案之前,先说一下什么是高可用架构,高可用架构应具备但不限于以下特征: 主从切换 很好理解,当其中一台机器的服务宕机后,对于服务调用者来说,能够迅速的切换到其他可用服务,…

俩小伙一晚上写了个 AI 应用,月入两万??(文末附开发教程)

开发出一款能够与 AI 对话生成和编辑思维导图的工具,听起来似乎只能是一群专业的 AI 背景团队花费大量的时间和精力训练模型,打磨应用才能完成的事情。 但是,两名大学生却在一夜之间完成了,就像炼金术士将庸俗的材料转化成黄金一…