NetSuite GPT的辅助编程实践

这篇具有很好参考价值的文章主要介绍了NetSuite GPT的辅助编程实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 作为GPT综合症的一种表现,我们今朝来探究下GPT会不会抢了我们SuiteScript的编程饭碗,以及如何与之相处。以下内容来自我个人的实践总结。

我们假设一个功能场景:

为了让用户能够在报价单上实现“一键多行”功能,也就是在报价中可以通过“一键多行”按钮,一次添加多行。其中数据源来自一个自定义记录,我们把它称为“数据模板”。通过用户自己维护数据源,在报价时可以把数据源中的记录,通过点个按钮,一次性的导入当前的行上去。在报价单上放个超链接,可以打开那个数据模板。

设想中的界面如下所示:

NetSuite GPT的辅助编程实践

结合chatGPT,就是OpenAI的3.5版本,我们开始了GPT辅助编程的实践。

Prompt & chatGPT

Prompt:
使用NetSuite suitescript Client脚本,搜索一个自定义记录中匹配的Item数据,将结果插入当前的estimate的行中。请给出具体代码。


chatGPT:

以下是一个示例代码,用于搜索一个自定义记录中匹配的Item数据,并将结果插入当前的estimate的行中:

```javascript
/**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */

define(['N/search', 'N/record'], function (search, record) {
  
  function addCustomRecordItemsToEstimate() {
    
    // 获取当前estimate的ID
    var estimateId = record.getCurrentRecord().id;
    
    // 定义自定义记录的ID
    var customRecordId = 123;
    
    // 创建一个查询自定义记录的搜索
    var customRecordSearch = search.create({
      type: 'customrecord_' + customRecordId,
      filters: [
        ['isinactive', 'is', 'F']
      ],
      columns: [
        'name',
        'custrecord_item',
        'custrecord_quantity'
      ]
    });
    
    // 运行搜索并处理结果
    customRecordSearch.run().each(function (result) {
      
      // 获取自定义记录中的Item和Quantity字段
      var item = result.getValue('custrecord_item');
      var quantity = result.getValue('custrecord_quantity');
      
      // 创建一个新的estimate行
      var line = record.getCurrentRecord().selectNewLine({
        sublistId: 'item'
      });
      
      // 设置行上的Item和Quantity字段
      record.getCurrentRecord().setCurrentSublistValue({
        sublistId: 'item',
        fieldId: 'item',
        value: item
      });
      
      record.getCurrentRecord().setCurrentSublistValue({
        sublistId: 'item',
        fieldId: 'quantity',
        value: quantity
      });
      
      // 保存新行并继续处理下一个结果
      record.getCurrentRecord().commitLine({
        sublistId: 'item'
      });
      
      return true;
    });
  }
  
  return {
    pageInit: function (context) {
      addCustomRecordItemsToEstimate();
    }
  };
});
```

Prompt:
NetSuite Userevent Script,在estimate的Item list的位置添加一个Button,名字叫做“一键导入”。当用户点击时,执行前面所说的Client Script。请给出详细代码。

chatGPT:

下面是一个可能的NetSuite UserEvent Script:

```javascript
/**
 * @NApiVersion 2.x
 * @NScriptType UserEventScript
 * @NModuleScope SameAccount
 */
define(['N/ui/serverWidget', 'N/url'], function (serverWidget, url) {

  function beforeLoad(context) {
    if (context.type === context.UserEventType.VIEW) {
      var form = context.form;
      var sublist = form.getSublist({ id: 'item' });
      sublist.addButton({
        id: 'custpage_import_button',
        label: '一键导入',
        functionName: 'addCustomRecordItemsToEstimate'
      });
      var scriptUrl = url.resolveScript({
        scriptId: 'customscript_my_client_script',
        deploymentId: 'customdeploy_my_client_script',
        returnExternalUrl: false
      });
      form.clientScriptModulePath = scriptUrl;
    }
  }

  return {
    beforeLoad: beforeLoad
  };

});
```

这个UserEvent Script会在estimate页面加载前执行,将一个名为“一键导入”的按钮添加到Item sublist中。当用户点击这个按钮时,会执行名为“importEstimateItems”的客户端脚本。同时,这个UserEvent Script也会将客户端脚本的URL添加到estimate表单中,以便客户端脚本能够被正确加载和执行。

Prompt:
NetSuite Userevent Script,请刚才的Button旁边,添加一个超链接。这个链接可以打开某个自定义记录的界面。

chatGPT:


下面是一个可能的NetSuite UserEvent Script:

```javascript
/**
 * @NApiVersion 2.x
 * @NScriptType UserEventScript
 * @NModuleScope SameAccount
 */
define(['N/ui/serverWidget', 'N/url'], function (serverWidget, url) {

  function beforeLoad(context) {
    if (context.type === context.UserEventType.VIEW) {
      var form = context.form;
      var sublist = form.getSublist({ id: 'item' });
      sublist.addButton({
        id: 'custpage_import_button',
        label: '一键导入',
        functionName: 'importEstimateItems'
      });
      // 添加自定义记录链接
      var linkUrl = url.resolveRecord({
        recordType: 'customrecord_my_custom_record',
        isEditMode: true
      });
      var link = '<a href=\ + linkUrl + '\打开自定义记录</a>';
      sublist.addField({
        id: 'custpage_custom_record_link',
        label: '自定义记录',
        type: serverWidget.FieldType.INLINEHTML
      }).defaultValue = link;
      // 添加客户端脚本链接
      var scriptUrl = url.resolveScript({
        scriptId: 'customscript_my_client_script',
        deploymentId: 'customdeploy_my_client_script',
        returnExternalUrl: false
      });
      form.clientScriptModulePath = scriptUrl;
    }
  }

  return {
    beforeLoad: beforeLoad
  };

});
```

这个UserEvent Script会在estimate页面加载前执行,将一个名为“一键导入”的按钮添加到Item sublist中,并在这个按钮旁边添加一个超链接,用于打开自定义记录的界面。注意,这里的自定义记录类型为`customrecord_my_custom_record`,应该替换为实际的自定义记录类型。

同时,这个UserEvent Script也会将客户端脚本的URL添加到estimate表单中,以便客户端脚本能够被正确加载和执行。

请注意,这个UserEvent Script中的代码与之前的回答中的代码是相同的,只是添加了一个新的字段来显示自定义记录链接。

分析与心得

代码问题:

  • 我的意图是进行增加行,但是chatGPT给出context.UserEventType.VIEW的代码建议。
  • chatGPT把Record和CurrentRecord两个类搞错了,导致了类方法调用失败。
  • 在Client Script中未建立Page Init函数。
  • 在Item Tab中添加serverWidget.FieldType.INLINEHTML的建议失败,系统不允许。
  • 在一直无法正确的添加多行的情况下,chatGPT给出了提示了两个重要提示:一是有可能是因为必填字段没有赋值导致的,二是通过网页调试工具来检查错误来源。这最终帮助了我们发现了错误来源。
  • NetSuite GPT的辅助编程实践

心得:

  • 代码建议出现错误的概率很高,需要有代码经验的人才能驾驭。
  • 代码建议的框架是完整的,特别在注释习惯上好过人工。在解决了关键问题的错误后,能够帮助提升效率。
  • 虽然NetSuite用户手册给出了代码Samples,但是chatGPT并没有采用之 。如果能将chatGPT作为问答入口,将NetSuite的Sample Codes作为知识库,则较好。
  • chatGPT在解决JS相关的通用语法的问答上准确度高。例如,“netsuite脚本中,如何表示在本级目录?”
  • 不同的Prompt,会带来回答的差异。所以应该从Prompt Engineering的角度来做问题优化。
  • 采用chatGPT来实现功能的骨干,然后人工去概念性错误,细节调整。这是有效的配合模式。
  • 在ERP顾问领域,可以有效赋能独立实施顾问和甲方系统管理员,来实现轻量级开发。这将深刻的改变这两类人的工作状态。让顾问更加专注在业务流程的创新上,方便的进行概念验证。
  • 由于涉及SuiteScript的代码,有概念性错误,可以判断chatGPT在SuiteScript上的语料库还不是很充沛,训练不足。如果能够建立私有化的GPT,用NetSuite的专用脚本数据去训练,应该可以有很大改善。

结合GPT的代码模式

基于上述的实践,我们初步总结出如下的最佳实践:

•充分熟悉NetSuite的SuiteScript Samples
•Prompt代码意图,获得GPT建议的代码框架
•甄别其中错误,进行在线调试
•针对API语法问题检查NetSuite Script手册
•针对通用Coding问题,Prompt GPT寻求分析和解决方案
•完成的代码可以Prompt给GPT,让其返回注释

以上是我们结合GPT进行NetSuite代码的实践。基本结论是还是得有编程基础以及NetSuite SuiteScript的底子,否则效率无法提升。NetSuite开发的小伙伴可以暂时松一口气了。文章来源地址https://www.toymoban.com/news/detail-432562.html

到了这里,关于NetSuite GPT的辅助编程实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GPT能否辅助数学学习

    GPT4.0的数学能力怎么样?我们使用镜像站进行实验,通过不同水平的数学看看GPT4.0的数学能力得到进步没有。镜像站的地址我们放在了最后,各位读者也可以自行去测试。 笔者在ChatGPT镜像站进行测试,我们的实验是让GPT4.0自行出数学题,然后我们看看他的神通有多大。 首先

    2024年02月10日
    浏览(45)
  • 论文阅读辅助利器-Zotero-GPT

    前言 首先,什么是Zotero?它能做什么?我们来问下ChatGPT Zotero是一款开源的、免费的文献管理工具。它旨在帮助研究人员、学生和学术界的人们更好地管理和组织他们的研究文献、引用和参考资料。 Zotero 支持Windows、MacOS、Linux、iOS等多个平台 由于 开源,所以它拥有了海量插

    2024年02月15日
    浏览(43)
  • 新恒盛110kV变电站智能辅助系统综合监控平台+道巡检机器人

    江苏晋控装备新恒盛化工有限公司是晋能控股装备制造集团有限公司绝对控股的化工企业,公司位于江苏省新沂市。新恒盛公司40•60搬迁项目在江苏省新沂市经济开发区化工产业集聚区苏化片区建设,总投资为56.64亿元,该项目是晋能控股装备制造集团重点项目之一,也是徐州

    2024年04月25日
    浏览(41)
  • GSR II 智能速度辅助系统的型式认证和系统作为独立技术单元的型式认证测试流程和技术要求

    智能速度辅助系统ISA的型式认证和系统作为独立技术单元的型式认证测试流程和技术要求 补充欧洲议会和欧洲理事会第2019/2144号条例,为机动车智能速度辅助系统的型式认证和这些系统作为独立技术单元的型式认证规定了详细的测试程序和技术要求,并修订该条例的附件二

    2024年02月08日
    浏览(65)
  • 基于GPT大语言模型的AI写作辅助工具

    随着人工智能技术的不断发展,越来越多的AI写作辅助工具被广泛应用于各个领域。而其中,基于GPT大语言模型、NLP自然语言处理和GPT图片创作技术的AI写作辅助工具成为了众多用户的首选。 AI写作辅助工具的核心技术是GPT大语言模型。基于这项技术,AI写作辅助工具可以自动

    2024年02月15日
    浏览(45)
  • 如何使用GPT作为SQL查询引擎的自然语言

    ​生成的AI输出并不总是可靠的,但是下面我会讲述如何改进你的代码和查询的方法,以及防止发送敏感数据的方法。与大多数生成式AI一样,OpenAI的API的结果仍然不完美,这意味着我们不能完全信任它们。幸运的是,现在我们可以编写代码询问GPT如何计算响应,然后如果认可

    2024年02月16日
    浏览(61)
  • 玩转ChatGPT:辅助编程

    一、写在前面 首先让小Chat介绍自己在编程方面的天赋: 总结起来:TA掌握了海量的编程知识,能做到 自动代码生成、代码审查优化、编程教学辅导以及实时问题解答 。我问TA学习了多少案例,TA说: 忘了,但保证够用。 前提:我是做机器学习与临床大数据挖掘的,偏向于数

    2023年04月24日
    浏览(32)
  • Aixcoder:AI辅助编程工具

    【产品介绍】   aixcoder是一款基于深度学习人工智能技术的AI辅助编程工具。提供了一个由各个领域的专业代码训练出来的“虚拟编程专家”,通过与aixcoder进行结对编程,程序员可以感受到工作效率的显著提升。   借助aixcoder的帮助,程序员可以摆脱传统的“逐字逐句”编

    2024年02月07日
    浏览(48)
  • CodeArts Snap:辅助你编程的神器

    摘要: 通过将自然语言转化为规范可阅读、无开源漏洞的安全编程语言,提升开发者编程效率,助力企业快速响应市场需求。 本文分享自华为云社区《华为云发布智能编程助手 CodeArts Snap!》,作者:DevAI 。 数字时代竞争激烈,应用研发效率提升在企业竞争力构建中扮演着

    2024年02月02日
    浏览(38)
  • AI辅助编程工具—Github Copilot

    一、概述      Copilot是一种基于Transformer模型的神经网络,具有12B个参数。是GitHub和OpenAPI共同开发的编程辅助工具。GitHubCopilot是一款由人工智能驱动的结对编程编辑器,旨在帮助开发人员更加高效地工作。它利用OpenAICodex技术,将开发者的自然语言转换为代码提示,当开发

    2024年01月21日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包