NetSuite 开发日记 —— 估价单(Estimate)新建项目(Project)自动填入项目字段
Background
- 用户在估价单(Estimate)点击「项目」字段旁边
+按钮新建项目(Project),在项目的自定义字段中自动填入估价单ID - 用户在项目记录存在切换自定义表格行为
Analysis
- 查看页面跳转时请求 URL 是否会带有估价单 internal ID,结论:不会带上估价单 internal ID
- 进一步查看页面跳转时请求头信息中是否带有估价单 internal id,结论:请求头
referer字段存在估价单 internal id - 用户在切换自定义表格后,页面会刷新,本次刷新请求的请求头中不存在估价单 internal id
Solution
- 在项目的 User Event 脚本的 beforeLoad() 方法中,获取请求头中的估价单 internal ID,并填入项目的自定义字段
- 用户在切换自定义表格前,在项目的 Client 脚本中使用
sessionStorage存储第1步中的估价单 internal ID - 在切换自定义表格刷新时在项目自定义字段中填入
sessionStorage存储的估价单 ID
Code Example
// User Event脚本
function beforeLoad(context) {
log.debug('context.type', context.type);
if (context.type == 'create') {
log.debug('context.request', context.request);
var ref = context.request.headers.referer;
var isFromEstimate = /estimate/g.test(ref);
if (isFromEstimate) {
var idReg = /(\d)+/g;
var matchRes = ref.match(idReg) || [];
var estimateId = matchRes[matchRes.length - 1];
log.debug('estimateId', estimateId);
if (estimateId) {
context.newRecord.setValue('custentity_project_from', estimateId);
}
}
}
}
// Client脚本
var ESTIMATE_SESSION_ITEM_NAME = 'estimate_id';
function pageInit(context) {
if (context.mode == 'create') {
var estimateId = context.currentRecord.getValue('custentity_project_from') || sessionStorage.getItem(ESTIMATE_SESSION_ITEM_NAME);
log.debug('estimateId', estimateId);
if (estimateId) {
sessionStorage.setItem(ESTIMATE_SESSION_ITEM_NAME, estimateId);
context.currentRecord.setValue('custentity_project_from', estimateId);
}
}
}
NetSuite 开发日记 —— 估价单(Estimate)新建项目(Project)自动填入项目字段的更多相关文章
- Ubuntu系统下使用Jenkins进行项目的自动构建还是项目回滚方法
上面虽然实现了项目的自动部署,但是有时部署失败的时候我们需要回滚到指定版本的构建,这样才能更灵活的进行项目的构建部署.我们可以选择“参数化的构建过程”进行传递不同的参数来选择是进行新的构建还是回滚 如 ...
- LayIM.AspNetCore Middleware 开发日记(二)预备知识介绍
前言 开发一个AspNetCore的中间件需要理解RequestDelegate.另外,还需要理解.NET Core中的依赖注入.还有一个就是内嵌资源的访问.例如:EmbeddedFileProvid ...
- Maven实现项目构建直接部署Web项目到Tomcat
Maven实现项目构建直接部署Web项目到Tomcat配置如下: 1.Tomcat的用户及权限配置:在conf目录下,找到tomcat-users.xml,添加manager权限的用户. <ro ...
- Mac下Intellij IDea发布JavaWeb项目 详解一 (1、新建JavaEE Project并进行相应设置 2、配置tomcat)
IDEA中 javaWeb项目的创建和tomcat配置(完整) 1.先新建JavaEE Project并进行相应设置 2.在配置tomcat Step1 新建JavaEE Project并进行相应设置 ...
- cocos2d-x3.0 macOS下配置Android开发环境以及使用cocos2d-console来新建执行project
下面是子龙山人录制的关于cocos2d-x3.0的视频教程,macOS下配置Android开发环境.使用cocos2d-console来新建执行project.怎样执行cocos2d-x 3.0win ...
- 【温故知新】Java web 开发(一) 新建项目
简述本文写作目的:本文主要用于回忆基础 java web 项目的搭建,在不使用 Spring 等框架的前提下,单纯使用 jsp 和 servlet 完成. 1. 新建 maven 项目,不使用 arc ...
- Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置
Django 小实例S1 简易学生选课管理系统 第2节--新建项目(project)并进行设置 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 0 ...
- 嵌入式Linux驱动开发日记
嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...
- JetBrains WebStorm打开多个项目project的方法
JetBrains WebStorm打开多个项目project的方法File-->Settings-->Directories点击右侧 + Add content root,选择目录后即可 ...
- android开发学习---基础知识学习、如何导入已有项目和开发一个电话拨号器
一.基础知识点学习 1.Android体系结构 如图所示,android 架构分为三层: (1)最底层是linux内核,主要是各种硬件的驱动,如相机驱动(Camera Driver),闪存驱动(Fl ...
随机推荐
- 如何get一个终身免费续期的定制数字人?
想拥有一个"数字分身" 吗?给你一个终身免费续期的特权. 定制周期长?训练.运营成本高?成片效果生硬?无法应用于实际场景? 随着AIGC技术的快速发展,虚拟数字人的生成效率不断提高 ...
- java_方法使用细节
java_方法使用细节 1.一个方法想要返回多个值 思考?一个方法如何返回多个值 返回数组 class AA{ public int[] getSumAndSub(int n1, int n2){ / ...
- 入门篇-其之五-Java运算符(上)
一元运算符之正负号 Java支持多种一元运算符,一元运算符中的"一元"是指一个操作数.我们初中学过的正负号就属于一元运算符,因为正负号后面只有一个数字. 正数使用+表示,其中+可以 ...
- Codeforces Round 905 Div 1 (CF1887)
A1. Dances (Easy version) 把 \(a,b\) 序列都从小到大排序,\(a\) 贪心删大的,\(b\) 贪心删小的,二分答案并 \(O(n)\) \(\text{check}\ ...
- TOBO
然而并不会做. 最后就照着题解码了一遍/kk 真的好长啊.看时间就知道写了多久... upd in 2022: 我现在已经找不到原题面是什么了( 不过感觉把这样一篇不算题解的东西放进"题解& ...
- CF1401B [Ternary Sequence]
Problem 题目简述 两个序列 \(A, B\).这两个序列都是由 \(0,1,2\) 这三个数构成. \(x_1,y_1,z_1\) 和 \(x_2,y_2,z_2\) 分别代表 \(A\) 序 ...
- JavaScript 语法:数组的定义及其常用属性与方法
作者:WangMin 格言:努力做好自己喜欢的每一件事 当一个程序需要用到多个数据的时候,这时我们就需要用到数组来将这些数据集合起来,以便后期调用.接下来就开始学习吧!! 数组的定义方法 1 .第一种 ...
- 【misc】ctfshow-stega10 --套娃
附件下载下来是一张图片 各种隐写工具一把梭,无果,分析其二进制数据,把图片拖进hxd,发现一段疑似base64的东西 base64解密试试 解密出来是一个网址,打开下载第二个附件:flag.zip,打 ...
- (转)用GPU做DeepLearning要比CPU快40~80倍
The speed difference of CPU and GPU can be significant in deep learning. But how much? Let's do a te ...
- C?C++?
代码逆向 在这里需要注意的几个点: c#语言赋值号(=)右边的值同样会跟着左边的值改变,如array6=array2,array6+=2:这个时候array2也会变 如array7[num5] += ...