Для работы понадобятся три файла (архив во вложении).
В файле server_run.ps1 изменить переменные:
$instanseUrl = “https://dev-ainergy.simpleone.ru/”;
$simpleAdminToken = “Bearer zEHSn0pmLNEwa4pZGZ3XL1Ue1zHd0lnx”;
на свой инстанс и токен.
Файл server_run.ps1:
# Смена кодировки, предполагаем что файл пришел в UTF8
#[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
# Считываем содержимое файла, переданного в качестве аргумента
$scriptContent = Get-Content -Path $args[0] -Raw -Encoding UTF8
# Формируем JSON строку для тела запроса
$jsonBody = @{"script" = $scriptContent.toString()} | ConvertTo-Json
$instanseUrl = "https://dev-ainergy.simpleone.ru/";
$simpleAdminToken = "Bearer zEHSn0pmLNEwa4pZGZ3XL1Ue1zHd0lnx";
# Отправляем запрос
$response = Invoke-WebRequest -UseBasicParsing -Uri $instanseUrl"v1/admin-script/run" `
-Method "POST" `
-Headers @{
"Accept"="application/json, text/plain, */*"
"Authorization"=$simpleAdminToken
}`
-ContentType "application/json; charset=UTF-8" `
-Body $jsonBody
# Обрабатываем ответ
$contentObj = $response.Content | ConvertFrom-Json
$contentObj.data.info
$contentObj.data.result
$contentObj.messages[0].message
Запуск происходить с помощью User Task, у меня он находится по адресу
C:\Users\molodik\AppData\Roaming\Code\User\tasks.json
или через интерфейс:
меняем на значение:
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "SimpleOne Run Server script",
"type": "shell",
"command": ".\\server_run.ps1 ${fileBasename}",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Берем наш скрипт SimpleOne:
let counter = 0;let counterIns = 0;let counterUpd = 0;
const forRecord = new SimpleRecord('sys_log')
forRecord.addEncodedQuery('()');
forRecord.setLimit(10);
forRecord.query();
print("Количество sys_log by condition: "+ forRecord.getRowCount() + "\n");
// forRecord.deleteMultiple();
// forRecord.setMultipleValue('source', '');
// forRecord.updateMultiple();
while(forRecord.next()){
print("\n info: " + forRecord.message)
let updID;
// updID = forRecord.update();
if(updID == 0) {print("UpdErr for "+ forRecord.getDisplayValue() +": " +forRecord.getErrors().join("\n") + "\n");}else{ counterUpd++; }
counter++;
}
ss.info("Counter: " + counter + ";\n counterUpd: " + counterUpd + "; counterIns: " + counterIns + ";\n diff: " + (counterUpd - counterIns));
после этого когда перейдем на наш серверный скрипт и нажмем сочетание клавиш Ctrk+Shift+B
В консоли увидели исполнение скрипта:
- Executing task: .\server_run.ps1 server_script.js
Количество sys_log by condition: 10
info: RabbitMQ Consumer ‘Default AI Service Consumer’ processed message successfully
info: RabbitMQ Consumer ‘Default AI Service Consumer’ processed message successfully
info: BR Name: “output_json to target_record_field”, Error : Unexpected token S in JSON at position 0
info: RabbitMQ Consumer ‘Default AI Service Consumer’ processed message successfully
info: RabbitMQ Consumer ‘Default AI Service Consumer’ processed message successfully
info: RabbitMQ Consumer ‘Default AI Service Consumer’ processed message successfully
info: RabbitMQ Consumer ‘Default AI Service Consumer’ processed message successfully
info: RabbitMQ Consumer ‘Default AI Service Consumer’ processed message successfully
info: RabbitMQ Consumer ‘Default AI Service Consumer’ processed message successfully
info: RabbitMQ Consumer ‘Default AI Service Consumer’ processed message successfullyInfo: Counter: 10;
counterUpd: 10; counterIns: 0;
diff: 10
- Terminal will be reused by tasks, press any key to close it.