0


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时,它输出的代码如下。

  1. /**
  2. * @NApiVersion 2.x
  3. * @NScriptType Suitelet
  4. */
  5. define(['N/ui/serverWidget', 'N/email', 'N/runtime', 'N/redirect', 'N/task'],
  6. function(serverWidget, email, runtime, redirect, task) {
  7. function onRequest(context) {
  8. if (context.request.method === 'GET') {
  9. // Create the form
  10. var form = serverWidget.createForm({
  11. title: 'Management Report'
  12. });
  13. // Add Periods field group
  14. form.addFieldGroup({
  15. id: 'periods',
  16. label: 'Periods'
  17. });
  18. // Add Options field group
  19. form.addFieldGroup({
  20. id: 'options',
  21. label: 'Options'
  22. });
  23. // Add Notice field group
  24. form.addFieldGroup({
  25. id: 'notice',
  26. label: 'Notice'
  27. });
  28. // Add Start Period field
  29. form.addField({
  30. id: 'custpage_start_period',
  31. type: serverWidget.FieldType.SELECT,
  32. label: 'START PERIOD',
  33. container: 'periods'
  34. }).addSelectOption({ value: 'Aug 2024', text: 'Aug 2024', isSelected: true }); // Example option
  35. // Add End Period field
  36. form.addField({
  37. id: 'custpage_end_period',
  38. type: serverWidget.FieldType.SELECT,
  39. label: 'END PERIOD',
  40. container: 'periods'
  41. }).addSelectOption({ value: 'Aug 2024', text: 'Aug 2024', isSelected: true }); // Example option
  42. // Add checkboxes for sheets in the Options group
  43. form.addField({
  44. id: 'custpage_sheet_start_to_end',
  45. type: serverWidget.FieldType.CHECKBOX,
  46. label: 'Sheet – Data During START PERIOD to END PERIOD',
  47. container: 'options'
  48. });
  49. form.addField({
  50. id: 'custpage_sheet_year_to_end',
  51. type: serverWidget.FieldType.CHECKBOX,
  52. label: 'Sheet – Data During Year Beginning to END PERIOD',
  53. container: 'options'
  54. });
  55. form.addField({
  56. id: 'custpage_sheet_end',
  57. type: serverWidget.FieldType.CHECKBOX,
  58. label: 'Sheet – Data in END PERIOD',
  59. container: 'options'
  60. });
  61. // Add Notice field in the Notice group
  62. form.addField({
  63. id: 'custpage_notice',
  64. type: serverWidget.FieldType.INLINEHTML,
  65. label: ' ',
  66. container: 'notice'
  67. }).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>";
  68. // Add Generate Report & Email Button
  69. form.addSubmitButton({
  70. label: 'Generate Report & Email'
  71. });
  72. // Write the form to the response
  73. context.response.writePage(form);
  74. } else {
  75. // Handle POST request to generate the report
  76. var startPeriod = context.request.parameters.custpage_start_period;
  77. var endPeriod = context.request.parameters.custpage_end_period;
  78. var includeSheetStartToEnd = context.request.parameters.custpage_sheet_start_to_end === 'T';
  79. var includeSheetYearToEnd = context.request.parameters.custpage_sheet_year_to_end === 'T';
  80. var includeSheetEnd = context.request.parameters.custpage_sheet_end === 'T';
  81. // Logic to generate and email the report
  82. // This would involve creating a script task or similar to process the report in the background
  83. var reportTask = task.create({
  84. taskType: task.TaskType.MAP_REDUCE,
  85. scriptId: 'customscript_generate_report_mr', // Replace with your Map/Reduce script ID
  86. deploymentId: 'customdeploy_generate_report_mr', // Replace with your deployment ID
  87. params: {
  88. custscript_start_period: startPeriod,
  89. custscript_end_period: endPeriod,
  90. custscript_include_sheet_start_to_end: includeSheetStartToEnd,
  91. custscript_include_sheet_year_to_end: includeSheetYearToEnd,
  92. custscript_include_sheet_end: includeSheetEnd
  93. }
  94. });
  95. var reportTaskId = reportTask.submit();
  96. // Redirect or show confirmation page
  97. context.response.write('The report is being generated and will be emailed to you shortly.');
  98. }
  99. }
  100. return {
  101. onRequest: onRequest
  102. };
  103. });

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

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

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

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

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

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


本文转载自: https://blog.csdn.net/remottshanghai/article/details/141781120
版权归原作者 NetSuite知识会 所有, 如有侵权,请联系我们删除。

“NetSuite AI 图生代码”的评论:

还没有评论