NetSuite AI 图生代码

去年的ChatGPT热潮期间,我们写过一篇文章说GTP辅助编程的事。

NetSuite GPT的辅助编程实践_如何打开netsuite: html script notes的视图-CSDN博客文章浏览阅读2.2k次,点赞4次,收藏3次。作为GPT综合症的一种表现,我们今朝来探究下GPT会不会抢了我们SuiteScript的编程饭碗,以及如何与之相处。_如何打开netsuite: html script notes的视图https://nk-community.blog.csdn.net/article/details/130167144一年之后的今天,具备“图生代码”的ChatGPT 4o更加令人激动。

ChatGPT图生NetSuite代码 2024-08-29

这个场景是当我们想构建如下的Suitelet界面时,可以通过ChatGPT的“图生代码”功能来生成“粗代码”。所谓粗代码就是代码的毛坯件,里面可能存在错误、不达意之处,但是大部分是可以用的。

当我们把这个图喂给ChatGPT时,它输出的代码如下。

/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 */
define(['N/ui/serverWidget', 'N/email', 'N/runtime', 'N/redirect', 'N/task'], 
function(serverWidget, email, runtime, redirect, task) {
    
    function onRequest(context) {
        if (context.request.method === 'GET') {
            // Create the form
            var form = serverWidget.createForm({
                title: 'Management Report'
            });
            
            // Add Periods field group
            form.addFieldGroup({
                id: 'periods',
                label: 'Periods'
            });

            // Add Options field group
            form.addFieldGroup({
                id: 'options',
                label: 'Options'
            });

            // Add Notice field group
            form.addFieldGroup({
                id: 'notice',
                label: 'Notice'
            });

            // Add Start Period field
            form.addField({
                id: 'custpage_start_period',
                type: serverWidget.FieldType.SELECT,
                label: 'START PERIOD',
                container: 'periods'
            }).addSelectOption({ value: 'Aug 2024', text: 'Aug 2024', isSelected: true });  // Example option
            
            // Add End Period field
            form.addField({
                id: 'custpage_end_period',
                type: serverWidget.FieldType.SELECT,
                label: 'END PERIOD',
                container: 'periods'
            }).addSelectOption({ value: 'Aug 2024', text: 'Aug 2024', isSelected: true });  // Example option
            
            // Add checkboxes for sheets in the Options group
            form.addField({
                id: 'custpage_sheet_start_to_end',
                type: serverWidget.FieldType.CHECKBOX,
                label: 'Sheet – Data During START PERIOD to END PERIOD',
                container: 'options'
            });
            
            form.addField({
                id: 'custpage_sheet_year_to_end',
                type: serverWidget.FieldType.CHECKBOX,
                label: 'Sheet – Data During Year Beginning to END PERIOD',
                container: 'options'
            });
            
            form.addField({
                id: 'custpage_sheet_end',
                type: serverWidget.FieldType.CHECKBOX,
                label: 'Sheet – Data in END PERIOD',
                container: 'options'
            });

            // Add Notice field in the Notice group
            form.addField({
                id: 'custpage_notice',
                type: serverWidget.FieldType.INLINEHTML,
                label: ' ',
                container: 'notice'
            }).defaultValue = "<p style='color:#999;'>After you click the Generate Report & Email Button, you can close the window.<br>It would take 3-5 minutes to generate the report and Email to you.</p>";
            
            // Add Generate Report & Email Button
            form.addSubmitButton({
                label: 'Generate Report & Email'
            });
            
            // Write the form to the response
            context.response.writePage(form);
        } else {
            // Handle POST request to generate the report
            var startPeriod = context.request.parameters.custpage_start_period;
            var endPeriod = context.request.parameters.custpage_end_period;
            var includeSheetStartToEnd = context.request.parameters.custpage_sheet_start_to_end === 'T';
            var includeSheetYearToEnd = context.request.parameters.custpage_sheet_year_to_end === 'T';
            var includeSheetEnd = context.request.parameters.custpage_sheet_end === 'T';
            
            // Logic to generate and email the report
            // This would involve creating a script task or similar to process the report in the background
            
            var reportTask = task.create({
                taskType: task.TaskType.MAP_REDUCE,
                scriptId: 'customscript_generate_report_mr',  // Replace with your Map/Reduce script ID
                deploymentId: 'customdeploy_generate_report_mr',  // Replace with your deployment ID
                params: {
                    custscript_start_period: startPeriod,
                    custscript_end_period: endPeriod,
                    custscript_include_sheet_start_to_end: includeSheetStartToEnd,
                    custscript_include_sheet_year_to_end: includeSheetYearToEnd,
                    custscript_include_sheet_end: includeSheetEnd
                }
            });
            
            var reportTaskId = reportTask.submit();
            
            // Redirect or show confirmation page
            context.response.write('The report is being generated and will be emailed to you shortly.');
        }
    }

    return {
        onRequest: onRequest
    };
});

这段代码除了有一个问题外,基本可用。

就是ChatGPT没有很好的理解"布局",所以Periods和Options这两个FieldGroup没有并列排布。即使在重复提示它进行调整后,依然没有处理好。这说明语料库中,缺乏此部分的知识。

咨询了我们的开发顾问,他们认为通过图生代码的功能,可以节省一些重复代码的编写时间,这种辅助编程的方法是可用的。

这,就是一年间的AI变化。

不过同样的提示词,在Claudy,文心上表现的很二次元。大家一试便知。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kettle 锁表原因及解决办法【源码级分析】

文章目录 背景源码分析锁表场景1:资源库锁表锁表场景2:写日志锁表在哪里配置的kettle_log_table?官方解释自增 SQL 获取 BatchI 原理解决自增 SQL 获取 BatchID背景 Kettle 7.1.0 经常出现锁表的情况,体现为在数据库里有一条锁表 SQL,然后整个 Kettle 都无法运行。😂�…

【Python】简单的数据类型——int、float、bool、str

目录 1. 整数类型 int 2. 浮点数类型 float 3. 布尔类型 bool 4. 字符串 str 5. 类型转换 5.1 隐式类型转换 5.2 显示类型转换 6. 输出 6.1 print函数 6.2 格式化输出 7. 输入 1. 整数类型 int a 10 print(type(a)) print(type(-2))<class int> <class i…

HBase 部署及shell操作

HBase 数据库 一、HBase 概述1.1 HBase 是什么HBase 的特点 二、HBase 模型及架构2.1 HBase 逻辑模型2.2 HBase 数据模型2.3 HBase 物理模型2.3.1 列簇物理模型2.3.2 Rowkey 字段排序2.3.3 Region 存储到不同节点2.3.4 Region 结构 2.4 HBase 基本架构 三、搭建 HBase 分布式集…

ArcGIS栅格裁剪与合并,制作等高线

1、下载高程数据&#xff08;DEM&#xff09; https://mp.weixin.qq.com/s/ewlUUVV0PwdcspPGtSdCog 项目区域对应的卫片&#xff0c;也可以在谷歌地图里看大致经纬度范围 2、项目区域 确定项目区域&#xff0c;例如某个县区范围 3、栅格裁剪与合并 将DEM多个栅格数据合并&#…

DevOps学习笔记

记录以下DevOps学习笔记&#xff0c;这里是笔记的入口汇总&#xff0c;可以直观的看到所有的笔记&#xff0c;还没有入口的部分&#xff0c;在下正在努力编写中。 gitlab jenkins docker 1.docker安装 2.数据卷、挂载 artifactory 1.artifactory安装 2.artifactory使用 …

hyperf json-rpc

安装 安装docker hyperf 安装 hyperf-rpc-server-v8 &#xff08;服务端&#xff09; docker run --name hyperf-rpc-server-v8 \ -v /www/docker/hyperf-rpc-server:/data/project \ -w /data/project \ -p 9508:9501 -it \ --privileged -u root \ --entrypoint /bin/sh \…

使用 streamlink 把 m3u8 转为 mp4

问题描述&#xff0c; 背景&#xff0c; 来源&#xff1a; 下载 m3u8 ts —> 转为mp4, 按照以往的做法&#xff0c; 就是使用 python requests 一步一步地下载 m3u8, ts&#xff0c; 然后转换。 但是个人写的东西&#xff0c;毕竟问题比较多。 而且&#xff0c; 但是&…

2024国赛数学建模备赛|30种常用的算法模型之最优算法-非线性规划

1.1 非线性规划的实例与定义 如果目标函数或约束条件中包含非线性函数&#xff0c;就称这种规划问题为非线性规划问题。一般说来&#xff0c;解非线性规划要比解线性规划问题困难得多。而且&#xff0c;也不象线性规划有 单纯形法这一通用方法&#xff0c;非线性规划目前还没…

C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行写操作

C#上位机使用Microsoft.Office.Interop.Excel和EPPlus库对Excel或WPS表格进行写操作 一、使用Microsoft.Office.Interop.Excel库 1、通过NuGet包管理器添加引用 按照下图中红框所示进行操作。 需要安装Microsoft.Office.Interop.Excel包 添加Microsoft Office 16.0 Object …

[全网首发]2024国赛数学建模ABCE题完整思路+py(matlab)代码+成品论文参考+持续更新

AB题详细思路(含问题一问题二模型) CE题问题一代码思路已经写好[pythonmatlab两种都会更新 需要完整版的看这里&#xff1a; 点击链接加入群聊【2024数学建模国赛资料汇总】&#xff1a;http://qm.qq.com/cgi-bin/qm/qr?_wv1027&klZncBILk30DuPRI1Bd8X-3Djv7ZVZyAv&…

python开发VTK入门

首先用pip命令安装VTK的python库&#xff1b; 需要一些时间&#xff0c;安装完成如下&#xff1b; 基本示例代码&#xff0c; import vtkcube vtk.vtkCubeSource() cube.SetXLength(100.0) cube.SetYLength(200.0) cube.SetZLength(300.0)mapper vtk.vtkPolyDataMapper() ma…

持续集成与持续部署(CI/CD)的深入探讨

在现代软件开发中&#xff0c;持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;已成为不可或缺的实践。这些方法旨在加快软件交付的速度&#xff0c;同时提高软件的质量和稳定性。通过CI/CD&#xff0c;开发团队可以频繁地将代码更改集成到主分支&…

瑞芯微RK3566鸿蒙开发板Ubuntu虚拟机环境搭建教程,触觉智能Purple Pi OH主板

本文适用于Ubuntu虚拟机环境搭建教程学习&#xff0c;设备为触觉智能开发的瑞芯微RK3566开发板&#xff0c;型号Purple Pi OH。是华为Laval官方社区主荐的一款鸿蒙开发主板。支持Openharmony、安卓Android、Linux的Debian、Ubuntu系统。 该主板主要针对学生党&#xff0c;极客&…

[001-07-001].Redis7缓存双写一致性之更新策略探讨

1、面试题&#xff1a; 1.只要使用缓存&#xff0c;就可能会涉及到redis缓存与数据库双存储双写&#xff0c;只要是双写&#xff0c;就存在数据一致性问题&#xff0c;那么是如何解决数据一致性问题的2.双写一致性&#xff0c;你先动缓存redis还是数据库MySQL&#xff0c;哪一个…

OpenHarmony轻松玩转GIF数据渲染

OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;提供了Image组件支持GIF动图的播放&#xff0c;但是缺乏扩展能力&#xff0c;不支持播放控制等。今天介绍一款三方库——ohos-gif-drawable三方组件&#xff0c;带大家一起玩转GIF的数据渲染&#xff0c;搞…

7、Django Admin删除默认应用程序

admin文件 from django.contrib.auth.models import User, Groupadmin.site.unregister(User) admin.site.unregister(Group) 显示效果&#xff1a; 前 后

【springboot】使用AOP

目录 1. 添加依赖2. 创建切面类1. 创建切面类2. 切点表达式3. 增强方法 3. 开启AOP4. 创建控制类5. 测试 1. 添加依赖 <!-- AOP依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop<…

不会抖音剪辑怎么办?这4款拿走不谢

不少人想做自媒体&#xff0c;但是就光视频剪辑这一点难住了不少人&#xff0c;其实视频剪辑并没有大家想的那么复杂&#xff0c;直接用一些简单的剪辑视频工具也可以处理。作为一个短视频剪辑新手&#xff0c;我最近尝试了几款流行的视频编辑软件&#xff0c;今天就来和大家分…

C++引用简介

引用的基本使用&#xff1a; 作用&#xff1a; 给变量起别名 语法&#xff1a; 数据类型 &别名 原名 int main() {int a 10;int &b a;cout << "a " << a << endl;cout << "b " << b << endl; //都打印…

WebRTC协议下的视频汇聚融合技术:EasyCVR视频技术构建高效视频交互体验

视频汇聚融合技术是指将来自不同源、不同格式、不同网络环境的视频流进行集中处理、整合和展示的技术。随着视频监控、远程会议、在线教育、直播娱乐等领域的快速发展&#xff0c;视频数据的规模急剧增长&#xff0c;对视频处理能力和效率提出了更高要求。视频汇聚融合技术通过…