@mocard https://wiki.bablosoft.com/doku.php?id=ru:tutorial3&s[]=база&s[]=данных
Там в конце есть про это
@Fox то-есть сделать функцию которая будет выполнять все эти действия в зависимости от того какой аргумент действия был передан?
мне кажется это будет очень кривой костыль, например у меня есть такие вызовы, значит для этой функции нужно будет передавать ещё кучу других аргументов которые должны использоваться в действиях, это же вообще не удобно будет
if ([[DATABASE_USE]] == true){
// Получение пути к файлу с данными для работы
await execute_code(`VAR_RESOURCE_INPUT_DATA_PATH =RInfo(\"Файл с данными для работы\",\"Location\")`);
// Получение директории файла с данными для работы
await execute_code(`VAR_RESOURCE_INPUT_DATA_DIRECTORY = _path.dirname(VAR_RESOURCE_INPUT_DATA_PATH);`);
// Подключение к бд
await execute_code(`SQL_Setup((\"sqlite\"), (\"\"), (\"auto\"), (\"\"), (\"\"), (\"\"), (VAR_DATA_DIRECTORY + \"/data_for_work/database/database.db\"), (\"\"), (300), (\"\"))`);
}
@Fox said in Как автоматизировать сам BAS?:
var thread_number = await BAS_FUNCTION("wrapper", {"n": "thread_number"});
Да и плюсом такие вызовы вообще не удобные, если есть действие которое я хочу перенести в node js то я просто перекидываю его в node js, декодирую hex и пишу код execute_code, а при таком вызове нужно помнить все аргументы которые вызывает функция обработчик которая отвечает за вызов обычных функций BAS
@ilsaazure Я бы вообще не советовал писать скрипт для БАС через встроенный Nodejs, будите большую часть времени искать решение подобных проблем. Кроме того у вас будут проблемы в многопотоке и nodejs может упасть в любой момент, а отладка для такого костыля тоже гемор. Если уж автоматизировать через nodejs то делать это именно в nodejs у бас есть для этого библиотека
@usertrue При тестировании через многопоток в басе ни разу не было ошибок с скриптами которые используют такой тип работы, скрипты отлично работают, сейчас копаюсь в функции обновления действий, просто через неё сделаю замену моих вызовов await execute_code на await BAS_API, отпишу по результату, может ты действительно прав и возникнут проблемы
@ilsaazure said in Как автоматизировать сам BAS?:
При тестировании через многопоток в басе ни разу не было ошибок с скриптами которые используют такой тип работы
У вас все еще впереди, если простые скрипты которые быстро отрабатывают то может проблем и не будет. На тяжелых скриптах которые долго работают будут почти наверняка )) https://github.com/bablosoft/bas-remote-node
@usertrue said in Как автоматизировать сам BAS?:
то-есть как вариант полностью на node js написать? я BAS использую как раз из-за того-что в нём легко писать логику скриптов, на node js сложно будет сделать всю нужную мне логику
@ilsaazure said in Как автоматизировать сам BAS?:
@usertrue у меня скрипты на ~800 действий и нормально работают
У меня много раз было, что процесс nodejs падал часов через 5-8 работы
@ilsaazure said in Как автоматизировать сам BAS?:
то-есть как вариант полностью на node js написать? я BAS использую как раз из-за того-что в нём легко писать логику скриптов, на node js сложно будет сделать всю нужную мне логику
Конкретно эта библиотека позволяет запускать пользовательские функции БАС из nodejs. То что вы делает не кажется упрощением, я бы на чистой nodejs + puppeteer написал бы быстрее чем такое делать )
@ilsaazure said in Как автоматизировать сам BAS?:
@usertrue я же писал что мне node js вызовы нужны только для общих действий, вся важная логика в стандартных функциях BAS, а http у меня использует зашифрованные данные для внешнего tls клиента
Так я вам скинул библиотеку которая это и делает, вы можете писать в ней общую логику и вызывать свои функции в БАС, которые будут защищены. Единственный недостаток это нужно сделать интерфейс для скрипта