Как добавить дополнительные параметры с помощью sendRedirect в SuiteScript 1.0? - PullRequest
0 голосов
/ 11 февраля 2019

Я новичок в SuiteScript и не могу полностью понять, как добавить параметры URL в перенаправлениях.Я знаю, что в документации SuiteScript 1.0 говорится, что дополнительные параметры могут быть добавлены в соответствии с этой функцией:

sendRedirect (тип, идентификатор, id, режим редактирования, параметры)

type {string} [required] - The base type for this resource

identifier {string} [required] - The primary id for this resource (record type ID for RECORD, scriptId for SUITELET, taskId for tasklink, url for EXTERNAL)

id {string} [optional] - The secondary id for this resource (record type ID for RECORD, deploymentId for SUITELET)

editmode {boolean true || false} [optional] - For RECORD calls, this determines whether to return a URL for the record in edit mode or view mode. If set to true, returns the URL to an existing record in edit mode, otherwise the record is returned in view mode.

parameters {hashtable} [optional] - An associative array of additional URL parameters as name/value pairs

Но я действительно запутался в последнем четвертом параметре, где в документации говорится, что необходим ассоциативный массив.Я попытался написать этот код, чтобы проверить добавление этого параметра.

function suitelet(request, response) {
    var arrayParam = [];
    arrayParam.push({custparam_key: 'value'});
    response.sendRedirect('SUITELET', 'customscript_a', 'customdeploy_a', 
    arrayParam);
}

Но я не могу отследить, где находится последний параметр в моем Suitelet.Приведенный выше код позволяет пользователю перенаправить обратно в ту же форму с дополнительными параметрами по умолчанию.Но я не хочу такие же параметры по умолчанию.Я хочу иметь возможность создавать дополнительные пользовательские параметры при определенных условиях, когда мне нужно перенаправить пользователя.

Надеюсь, все это имело смысл.Я чувствую, что, может быть, я не понимаю, для чего используется последний параметр.Если это так, то любые разъяснения будут полезны!

Ответы [ 3 ]

0 голосов
/ 11 февраля 2019

Создайте свой ассоциативный массив следующим образом:

 params['custparam_test1'] = value_test1;

Затем просто получите это:

var param = request.getParameter('custparam_test1')

В вашем коде у вас есть объект в arrayParam [0], который являетсянулевая позиция, однако это не ассоциативный массив.

0 голосов
/ 12 февраля 2019

Ваш код должен быть:

function suitelet(request, response) {
    var params = {
      custparam_key: 'value'
    };
    response.sendRedirect('SUITELET', 'customscript_a', 'customdeploy_a', params);
}
0 голосов
/ 11 февраля 2019
sendRedirect(type, identifier, id, editmode, parameters)

Но вы использовали его как

response.sendRedirect('SUITELET', 'customscript_a', 'customdeploy_a', 
arrayParam);

Так что, если вы сопоставите его с параметрами в документации

Type = Suitelet
identifier = customscript_a
id = customdeploy_a
editmode = arrayParam

Вы должны были бы назвать его как

response.sendRedirect('SUITELET', 'customscript_a', 'customdeploy_a', null, arrayParam);
...