如何从服务器端将 N/ui/message 横幅呈现为表单?

How do I render an N/ui/message banner into a form from the server side?

我有一个 suitelet,它显示一个用 N/ui/serverWidget 创建的表单,我想在表单顶部显示一条消息。但是,所有 N/ui/message 文档都说它仅适用于客户端脚本。有没有办法在不构建单独的客户端脚本的情况下显示这样的横幅?

是的,使用Form.addPageInitMessage()函数。它允许您传入消息或与 message.create() 相同的选项,并在加载表单时显示它。

这是一个完整的例子:

/**
 * Example of how to use Form.addPageInitMessage() to display a notice
 * on a server-rendered form.
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 */
define(['N/ui/serverWidget', 'N/message'], function(ui, message) {
    function onRequest(context) {
        var form = ui.createForm({
            title: 'Example Form',
        });
        form.addSubmitButton({label: 'Submit'});
        form.addField({
            id: 'input',
            type: ui.FieldType.TEXT,
            label: 'Input',
        });
        form.addPageInitMessage({
            type: message.Type.INFORMATION,
            title: 'Message!',
            message: 'A wild message appears!',
        });
        context.response.writePage(form);
    }

    return {
        onRequest: onRequest,
    };
});