如何将按钮添加到已保存搜索的结果列?
我有一个工作流程,可以在更新某个字段时向ITEM记录添加按钮。单击时,该按钮将启动另一个工作流程。
是否可以将此按钮作为链接添加到“已保存的搜索”列中。当用户单击该链接时,它将启动按钮操作。这与Case Management中的“GRAB”按钮类似。
答案 0 :(得分:0)
需要更多信息才能完全回答,但简而言之:是的,你可以。您可以创建文本公式来构建锚元素以创建链接 - 例如,下面是一个公式,可用于在项目搜索的每一行上放置打印标签链接:
'<a href="/app/accounting/print/barcodeprinter.nl?itemid=' || {internalid} || '">Print Label</a>'
您仍然需要创建显示条件(可能使用CASE
语句)并使用正确的路径和参数构建网址,但这应该可以帮助您入门。
答案 1 :(得分:0)
您可以使用“公式(文本)”字段并向以下输入公式,将按钮添加到“保存的搜索结果”列中:
'<button onclick="window.open(`/app/site/hosting/scriptlet.nl?script=123&deploy=1&rec_id=' || {internalid} || '`);">Do Action</button>'
以上操作将在屏幕上放置一个实际按钮,该按钮将打开Suitelet执行操作并编写一些响应页面。如果您希望它停留在该页面上,则可以对xhr请求进行处理,如下所示:
'<button onclick="var xhr = new XMLHttpRequest(); xhr.open(`GET`, `/app/site/hosting/scriptlet.nl?script=123&deploy=1&rec_id=' || {internalid} || '`); xhr.onload = function(oEvent) { var response = JSON.parse(xhr.response); if (xhr.status == 200 && response) { console.log(xhr.response); window.open(`https://system.netsuite.com/app/accounting/transactions/estimate.nl?e=T&id=` + response); } else { console.log(xhr.response); alert(`Issue Doing Button Action`) } };xhr.send(null);this.style.display = `none`;this.parentElement.append(`Button Clicked`);">Do Action</button>'
在两种情况下,您都需要将那里的URL更新为Suitelet的适当URL。对于您的情况,您想创建一个使用N /工作流程模块来启动或触发第二个工作流程的Suitelet。
要处理“何时更新某些字段”部分,您可以执行case语句,如下所示:
CASE WHEN {custbody_your_field} IS NULL THEN 'No Action Available' ELSE '<one of the code snippets above>' END
别忘了END语句:)
用于启动工作流程的样本Suitelet:
define(['N/workflow'], function (wf) {
/**
* Initiates a workflow
*
* @NApiVersion 2.x
* @NScriptType Suitelet
* @author Stephen Lemp (SuiteRep)
*/
var exports = {};
var WORKFLOW_ID = 1234;
/**
* @function onRequest Definition of the Suitelet script trigger point.
* @governance XXX
*
* @param {Object} params
* @param {http.ServerRequest} params.request The incoming request.
* @param {http.ServerResponse} params.response The Suitelet response.
*
* @return {void}
* @since 2015.2
*/
function onRequest(context) {
var rec_id = context.request.parameters.rec_id
var workflowInstanceId = wf.initiate({
recordType: 'some_record_type', // The record type that the workflow is deployed on.
recordId: rec_id, // The record ID of some record.
workflowId: 'customworkflow_some_workflow'
});
}
exports.onRequest = onRequest;
return exports;
});