是否有客户端功能可以在 Suitescript 中保存记录?
Is there a client side function to save record in Suitescript?
我正在尝试使用客户端脚本的 saveRecord 入口点重定向到另一个页面。
但是,为了做到这一点,我的理解是我需要先保存并提交记录。
有没有办法使用客户端脚本(即无需用户单击该按钮)来执行此操作(基本上复制当用户在记录上按下 Netsuite 的本机 'save' 按钮时发生的情况)?
我试过record.submitfields,虽然这不会触发saveRecord下的功能。
这不是一个纯粹的 SuiteScript 解决方案,它更像是一个纯粹的 JavaScript/Html 解决方案,我在我的代码中使用没有问题;如果您牢记 Netsuite UI 只是一个 Web 应用程序(它只是一个网站!),那么在客户端脚本上您可以做很多标准 SuiteScript 做不到的事情。
在您的情况下,您只需在代码中触发标准“保存”按钮的点击事件,因为 Netsuite 使用 jQuery,那么您可以这样做:
// your code
jQuery('#btn_multibutton_submitter').click();
// #btn_multibutton_submitter is just an example, get the right id of your button by checking the Netsuite page source code, or using Chrome Inspect
如果您尝试重定向到记录 url,您可以使用 'N/url' 模块并在保存后立即调用 url.resolveRecord() API:
url.resolveRecord({
recordType: record.Type.EMPLOYEE,
isEditMode: true,
params:{}
})
这将是员工记录类型的示例。
我的建议是触发一次保存—— 就可以了。
但是,对于
的关键要求
[after save] to redirect to another page.
这有点诡异,因为保存它会重新加载页面,因此会刷新很多东西。
a) 打开新标签页还好吗?如果是,则使用 window.open(yourUrl)
.
打开一个新标签页
b) 您的新目的地是否需要原始记录中可能已更改的信息?如果是这样,那么您需要等到保存完成。
以下将有助于 a=no 和/或 b=yes。
在触发保存之前,您使用浏览器放置了一条信息。您有一段客户端脚本可以查找该信息,以便在重新加载页面时可以使用该信息加载新页面。
A 算法将是:
- 留下带有重定向指令的标志
- 触发保存
- 加载时寻找重定向标志
- 如果不存在则中断。
- 如果存在则执行 B。
B 算法将是:
- 将标志复制到变量中
- 如果有标志,请将其移除。
- 根据变量重定向
您可以使用 localstorage
of the browser as the place to store this flag. You could also use sessionstorage
,它会在会话结束时失效。
对于纯 NetSuite 解决方案,您可以检查存储会话变量的套件 (N/runtime
)。还有一点工作。
注意:请记住删除您的标志或至少考虑该状态的到期时间(如果它“太旧”,请不要遵循它)。
我正在尝试使用客户端脚本的 saveRecord 入口点重定向到另一个页面。
但是,为了做到这一点,我的理解是我需要先保存并提交记录。
有没有办法使用客户端脚本(即无需用户单击该按钮)来执行此操作(基本上复制当用户在记录上按下 Netsuite 的本机 'save' 按钮时发生的情况)?
我试过record.submitfields,虽然这不会触发saveRecord下的功能。
这不是一个纯粹的 SuiteScript 解决方案,它更像是一个纯粹的 JavaScript/Html 解决方案,我在我的代码中使用没有问题;如果您牢记 Netsuite UI 只是一个 Web 应用程序(它只是一个网站!),那么在客户端脚本上您可以做很多标准 SuiteScript 做不到的事情。
在您的情况下,您只需在代码中触发标准“保存”按钮的点击事件,因为 Netsuite 使用 jQuery,那么您可以这样做:
// your code
jQuery('#btn_multibutton_submitter').click();
// #btn_multibutton_submitter is just an example, get the right id of your button by checking the Netsuite page source code, or using Chrome Inspect
如果您尝试重定向到记录 url,您可以使用 'N/url' 模块并在保存后立即调用 url.resolveRecord() API:
url.resolveRecord({
recordType: record.Type.EMPLOYEE,
isEditMode: true,
params:{}
})
这将是员工记录类型的示例。
我的建议是触发一次保存——
但是,对于
的关键要求[after save] to redirect to another page.
这有点诡异,因为保存它会重新加载页面,因此会刷新很多东西。
a) 打开新标签页还好吗?如果是,则使用 window.open(yourUrl)
.
b) 您的新目的地是否需要原始记录中可能已更改的信息?如果是这样,那么您需要等到保存完成。
以下将有助于 a=no 和/或 b=yes。
在触发保存之前,您使用浏览器放置了一条信息。您有一段客户端脚本可以查找该信息,以便在重新加载页面时可以使用该信息加载新页面。
A 算法将是:
- 留下带有重定向指令的标志
- 触发保存
- 加载时寻找重定向标志
- 如果不存在则中断。
- 如果存在则执行 B。
B 算法将是:
- 将标志复制到变量中
- 如果有标志,请将其移除。
- 根据变量重定向
您可以使用 localstorage
of the browser as the place to store this flag. You could also use sessionstorage
,它会在会话结束时失效。
对于纯 NetSuite 解决方案,您可以检查存储会话变量的套件 (N/runtime
)。还有一点工作。
注意:请记住删除您的标志或至少考虑该状态的到期时间(如果它“太旧”,请不要遵循它)。