Пожелания к созданию функций - дополнения к новой системы модулей.
-
Попробовал себя в создании модуля, вот что бы мне хотелось для большего удобства:
- Реализовать возможность перемешать входные параметры функции.
- Добавить возможность создавать несколько возвращаемых параметров функции
Я понимаю что всё это можно отредактировать в ручную в файлах модуля, но не каждому это будет легко.
-
@glitch2077 said in Создание функций и новая система модулей.:
Попробовал себя в создании модуля, вот что бы мне хотелось для большего удобства:
- Реализовать возможность перемешать входные параметры функции.
- Добавить возможность создавать несколько возвращаемых параметров функции
Я понимаю что всё это можно отредактировать в ручную в файлах модуля, но не каждому это будет легко.
Результат функции может быть только один. Вы можете возвращать массив или объект, ну или строку с разделителем, чтобы в самом действии уже разделить результат.
-
@Fox к примеру я хочу создать модуль, который должен возвращать 2 параметра без последующего их парсинга, как это сделать ?
-
@glitch2077 said in Пожелания к созданию функций - дополнения к новой системы модулей.:
@Fox к примеру я хочу создать модуль, который должен возвращать 2 параметра без последующего их парсинга, как это сделать ?
Создать парсинг прямо в коде действия получения результата
-
@Fox Если не сложно можете создать простой пример, у меня не получается.
-
@glitch2077 said in Пожелания к созданию функций - дополнения к новой системы модулей.:
@Fox Если не сложно можете создать простой пример, у меня не получается.
Смотри, вот я создал функцию
toster
которая возвращает случайное число и случайную строку через разделитель
|
Через менеджер модулей создал из этой функции модуль, в итоге получил архив toster.zip. Далее разархивировал архив
открыл код действия, файл toster_toster_code.js и добавил собственно парсинг результата функции и переменные для вывода результата
_call_function(toster_toster,{ })! var result = _result_function() <%= variable1 %> = result.split("|")[0] <%= variable2 %> = result.split("|")[1]
Затем открыл интерфейс действия, файл toster_toster_interface.js и добавил второе поле вывода результата (с разными id)
<div class="container-fluid"> <%= _.template($('#variable_constructor').html())({id:"Save1", description:"Результат1", default_variable: "FUNCTION_RESULT1", help: {description: ""}}) %> <%= _.template($('#variable_constructor').html())({id:"Save2", description:"Результат2", default_variable: "FUNCTION_RESULT2", help: {description: ""}}) %> </div> <div class="tooltipinternal"> </div> <%= _.template($('#back').html())({action:"executeandadd", visible:true}) %>
добавил сохранение данных в код проекта, файл toster_toster_select.js
var Save1 = this.$el.find("#Save1").val().toUpperCase(); var Save2 = this.$el.find("#Save2").val().toUpperCase(); try{ var code = loader.GetAdditionalData() + _.template($("#toster_toster_code").html())({variable1: "VAR_" + Save1, variable2: "VAR_" + Save2}); code = Normalize(code,0); BrowserAutomationStudio_Append("", BrowserAutomationStudio_SaveControls() + code, action, DisableIfAdd); }catch(e) {}
Заархивировал папку с модулем в zip архив и установил в BAS
В итоге получил модуль toster с одним действием, которое парсит результат вызова функции и сохраняет его в две разные переменные
Более подробное описание внутренностей модулей, можно посмотреть здесь