Пожелания к созданию функций - дополнения к новой системы модулей.



  • Попробовал себя в создании модуля, вот что бы мне хотелось для большего удобства:

    • Реализовать возможность перемешать входные параметры функции.
    • Добавить возможность создавать несколько возвращаемых параметров функции

    Я понимаю что всё это можно отредактировать в ручную в файлах модуля, но не каждому это будет легко.



  • @glitch2077 said in Создание функций и новая система модулей.:

    Попробовал себя в создании модуля, вот что бы мне хотелось для большего удобства:

    • Реализовать возможность перемешать входные параметры функции.
    • Добавить возможность создавать несколько возвращаемых параметров функции

    Я понимаю что всё это можно отредактировать в ручную в файлах модуля, но не каждому это будет легко.

    Результат функции может быть только один. Вы можете возвращать массив или объект, ну или строку с разделителем, чтобы в самом действии уже разделить результат.



  • @Fox к примеру я хочу создать модуль, который должен возвращать 2 параметра без последующего их парсинга, как это сделать ?



  • @glitch2077 said in Пожелания к созданию функций - дополнения к новой системы модулей.:

    @Fox к примеру я хочу создать модуль, который должен возвращать 2 параметра без последующего их парсинга, как это сделать ?

    Создать парсинг прямо в коде действия получения результата



  • @Fox Если не сложно можете создать простой пример, у меня не получается.



  • @glitch2077 said in Пожелания к созданию функций - дополнения к новой системы модулей.:

    @Fox Если не сложно можете создать простой пример, у меня не получается.

    Смотри, вот я создал функцию toster
    bc141aa0-9a32-46a1-9eb1-0f52d172eb52-изображение.png

    которая возвращает случайное число и случайную строку через разделитель |

    475.xml

    Через менеджер модулей создал из этой функции модуль, в итоге получил архив toster.zip. Далее разархивировал архив
    9f21dd52-6196-4f58-bddd-e8302335d579-изображение.png

    открыл код действия, файл 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.zip

    В итоге получил модуль toster с одним действием, которое парсит результат вызова функции и сохраняет его в две разные переменные
    252043fb-3ca8-498f-8d93-07bab93e3806-изображение.png

    e6e704ee-c751-4b69-9b84-9c384d31ec45-изображение.png

    a559111e-2633-459c-8ee0-df6e96a72f5b-изображение.png

    476.xml


    Более подробное описание внутренностей модулей, можно посмотреть здесь


Log in to reply