Настройка SuiteScript "customform" в "beforeLoad" - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь установить форму на основе формулы в NetSuite.Я хочу, чтобы форма, которую нужно использовать, была определена и загружена до того, как пользователь получит доступ к странице.Код, который я использую, является UserEventScript и находится в функции beforeLoad.defineSOForm возвращает внутренний идентификатор формы.

function beforeLoad(scriptContext) {
    if (scriptContext.type == scriptContext.UserEventType.CREATE) {
        var recNew = scriptContext.newRecord;

        var idCustomer = recNew.getValue('entity');
        var idUser = runtime.getCurrentUser().id;
        var idForm = recNew.getValue('customform');     

        // Set form from user department
        var idNewForm = defaulting.determineSOForm(idUser, null, idCustomer);

        if (idForm != idNewForm) {
            recNew.setValue({
                fieldId : 'customform',
                value : idNewForm
            });

            idForm = idNewForm;
        }
    }
}

С помощью отладчика сценариев я могу пройти через все это, и все работает нормально, но пользовательская форма вообще не установлена.Я читал, что поле customform нельзя установить в событии beforeLoad сценария UserEvent, но теперь я заблудился, как этого добиться.

Ответы [ 2 ]

0 голосов
/ 22 августа 2019

Обрабатывать это из клиентского скрипта вместо пользовательского события

function pageInit(scriptContext) {
        var recNew = scriptContext.currentRecord;

        var idCustomer = recNew.getValue('entity');
        var idUser = runtime.getCurrentUser().id;
        var idForm = recNew.getValue('customform');     

        // Set form from user department
        var idNewForm = defaulting.determineSOForm(idUser, null, idCustomer);

        if (idForm != idNewForm) {
            recNew.setValue({
                fieldId : 'customform',
                value : idNewForm
            });

            idForm = idNewForm;
        }
}
0 голосов
/ 24 сентября 2018
 // Set form from user department
        var idNewForm = defaulting.determineSOForm(idUser, null, idCustomer);
        idNewfrom value is Customform name then
       use below condition
       if (idForm != idNewForm) {
            recNew.setText({
                fieldId : 'customform',
                value : idNewForm
            });

            idForm = idNewForm;
        }
        idNewfrom value is internalid of form then
         use below condition
        if (idForm != idNewForm) {
            recNew.setValue({
                fieldId : 'customform',
                value : idNewForm
            });

            idForm = idNewForm;
        }

Попробуйте код выше

...