Background

  1. 用户在估价单(Estimate)点击「项目」字段旁边+按钮新建项目(Project),在项目的自定义字段中自动填入估价单ID
  2. 用户在项目记录存在切换自定义表格行为

Analysis

  1. 查看页面跳转时请求 URL 是否会带有估价单 internal ID,结论:不会带上估价单 internal ID
  2. 进一步查看页面跳转时请求头信息中是否带有估价单 internal id,结论:请求头referer字段存在估价单 internal id
  3. 用户在切换自定义表格后,页面会刷新,本次刷新请求的请求头中不存在估价单 internal id

Solution

  1. 在项目的 User Event 脚本的 beforeLoad() 方法中,获取请求头中的估价单 internal ID,并填入项目的自定义字段
  2. 用户在切换自定义表格前,在项目的 Client 脚本中使用sessionStorage存储第1步中的估价单 internal ID
  3. 在切换自定义表格刷新时在项目自定义字段中填入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)自动填入项目字段的更多相关文章

  1. Ubuntu系统下使用Jenkins进行项目的自动构建还是项目回滚方法

    上面虽然实现了项目的自动部署,但是有时部署失败的时候我们需要回滚到指定版本的构建,这样才能更灵活的进行项目的构建部署.我们可以选择“参数化的构建过程”进行传递不同的参数来选择是进行新的构建还是回滚 如 ...

  2. LayIM.AspNetCore Middleware 开发日记(二)预备知识介绍

    前言 开发一个AspNetCore的中间件需要理解RequestDelegate.另外,还需要理解.NET Core中的依赖注入.还有一个就是内嵌资源的访问.例如:EmbeddedFileProvid ...

  3. Maven实现项目构建直接部署Web项目到Tomcat

    Maven实现项目构建直接部署Web项目到Tomcat配置如下: 1.Tomcat的用户及权限配置:在conf目录下,找到tomcat-users.xml,添加manager权限的用户. <ro ...

  4. Mac下Intellij IDea发布JavaWeb项目 详解一 (1、新建JavaEE Project并进行相应设置 2、配置tomcat)

    IDEA中 javaWeb项目的创建和tomcat配置(完整) 1.先新建JavaEE Project并进行相应设置 2.在配置tomcat Step1 新建JavaEE Project并进行相应设置 ...

  5. cocos2d-x3.0 macOS下配置Android开发环境以及使用cocos2d-console来新建执行project

    下面是子龙山人录制的关于cocos2d-x3.0的视频教程,macOS下配置Android开发环境.使用cocos2d-console来新建执行project.怎样执行cocos2d-x 3.0win ...

  6. 【温故知新】Java web 开发(一) 新建项目

    简述本文写作目的:本文主要用于回忆基础 java web 项目的搭建,在不使用 Spring 等框架的前提下,单纯使用 jsp 和 servlet 完成. 1. 新建 maven 项目,不使用 arc ...

  7. Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置

    Django 小实例S1 简易学生选课管理系统 第2节--新建项目(project)并进行设置 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 0 ...

  8. 嵌入式Linux驱动开发日记

    嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...

  9. JetBrains WebStorm打开多个项目project的方法

    JetBrains WebStorm打开多个项目project的方法File-->Settings-->Directories点击右侧 + Add content root,选择目录后即可 ...

  10. android开发学习---基础知识学习、如何导入已有项目和开发一个电话拨号器

    一.基础知识点学习  1.Android体系结构 如图所示,android 架构分为三层: (1)最底层是linux内核,主要是各种硬件的驱动,如相机驱动(Camera Driver),闪存驱动(Fl ...

随机推荐

  1. .NET 8 的 green thread 异步模型被搁置了

    .NET 平台上的green thread 异步模型实验结果最近出来了,具体参见:https://github.com/dotnet/runtimelab/issues/2398 ,实验结果总结一下就 ...

  2. selenium库浅析

    selenium库浅析 基于4.3 pip install selenium安装好后,在sitepackages下 2个主要的目录,common和webdriver 1- common 该目录一共就一 ...

  3. Llama2-Chinese项目:3.2-LoRA微调和模型量化

      提供LoRA微调和全量参数微调代码,训练数据为data/train_sft.csv,验证数据为data/dev_sft.csv,数据格式为"<s>Human: "+ ...

  4. Redis最常见的5种应用场景

    Redis作为当今最流行的内存数据库,已经成为服务端加速的必备工具之一.对于Redis为什么那么快?以及Redis采用单线程,但为什么反而获得更高的性能的疑问,在之前的Redis为什么那么快?一文中, ...

  5. 一款Redis可视化工具:ARDM | 京东云技术团队

    出众的软件有很多,适合自己的才是最好的. Another Redis Desktop Manager 更快.更好.更稳定的Redis桌面(GUI)管理客户端,兼容Windows.Mac.Linux,性 ...

  6. Update 1.82.1: The update addresses this security issue.

    August 2023 (version 1.82) 更新后显示发行说明 Update 1.82.1: The update addresses this security issue. Welcom ...

  7. Unity - UIWidgets 1. 从Hello world开始

    安装参照github的README.UIWidgets相当于Flutter的一个Unity实现(后面表示UIWidgets和UGUI区别时直接称"Flutter"),是把承载的所有 ...

  8. nodejs修改npm包安装位置

    适用于非个人电脑.便携使用 npm config set cache D:\nodejs\node_cache npm config set prefix D:\nodejs npm config s ...

  9. flask 三方模块

    flask 三方插件 Flask-AppBuilder - Simple and rapid Application builder, includes detailed security, auto ...

  10. 一篇文章玩透awk

    安装新版本gawk awk有很多种版本,例如nawk.gawk.gawk是GNU awk,它的功能很丰富. 本教程采用的是gawk 4.2.0版本,4.2.0版本的gawk是一个比较大的改版,新支持的 ...