Форум ДИЦ

Пользовательский и Дилерский форум ДИЦ
Текущее время: Вс апр 30, 2017 1:05 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Проекты Турбо9 на GitHub
СообщениеДобавлено: Пн июн 08, 2015 5:18 pm 
Не в сети

Зарегистрирован: Пт янв 11, 2013 12:51 pm
Сообщения: 37
Откуда: ТБ.Бюджет, г. Москва
Собираем разработки на Турбо9, выложенные на GitHub

Это тема для обсуждения самих наработок.
Тема для обсуждения процесса работы на GitHub: viewtopic.php?t=9625

ТБ.Бюджет:
XMLRPC - инструментарий для доступа к веб-сервисам.
https://github.com/TB-Budget/T9_XMLRPC

АдресК - расширение функциональности адреса на основе ФИАС и веб-сервиса
https://github.com/TB-Budget/AddressK

TUL - Turbo Utilities Library. Вспомогательные функции и классы. В том числе: функциональная идиоматика, прототипы асинхронного выполнения etc.
https://github.com/TB-Budget/TUL

Т9_Тесты - инструментарий для описания спецификаций тестирования и создания протокола выполнения тестов.
https://github.com/TB-Budget/T9Testing

_________________
Turbo9 Open Source Initiative


Последний раз редактировалось Scondo Пн май 30, 2016 5:43 pm, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Пн июн 08, 2015 5:20 pm 
Не в сети

Зарегистрирован: Пт янв 11, 2013 12:51 pm
Сообщения: 37
Откуда: ТБ.Бюджет, г. Москва
Создали новый проект (см. в шапке).

Ряд элементов в XMLRPC и АдресК переведён на функциональную идиоматику, соответственно новый проект (TUL) является для них необходимой зависимостью.

_________________
Turbo9 Open Source Initiative


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Пн июн 08, 2015 11:11 pm 
Не в сети

Зарегистрирован: Пт апр 16, 2004 5:11 pm
Сообщения: 5596
Откуда: OpenFly Soft Technology, Москва
Напомните, пожалуйста, сценарии использования Ваших проектов.

_________________
www.TurboFlyERP.ru


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Чт июн 11, 2015 2:19 pm 
Не в сети

Зарегистрирован: Пт янв 11, 2013 12:51 pm
Сообщения: 37
Откуда: ТБ.Бюджет, г. Москва
XMLRPC, как и написано, служит для доступа к имеющимся веб-сервисам. Ну и для работы с сериализацией как побочный эффект.
Сейчас полностью реализован протокол XML-RPC, в планах JSON-RPC, по возможности SOAP.
Есть некоторые инструменты по работе с REST-представлениями.

Сейчас предполагается в основном применения для собственных веб-сервисов, поскольку реализации XML-RPC существуют в большом числе языков. По мере реализации того же SOAP - можно будет использовать для доступа к сервисам ЦБ, например.
Впрочем, часть сервисов ЦБ доступна как REST, например курсы валют:
Код:
  var map: XMLMapper;
  var subres:Storage;
  var valList:Storage[];
  -- Описываем парсер
  map = XMLMapper.Create;
  map.fields[1] = MapperNode.Create;
  --Массив валют
  map.fields[1].nodename = "Valute";
  map.fields[1].fieldname = "Valute";
  map.fields[1].nodekind = 1;
  map.fields[1].repeatable = True;
  map.fields[1].nodetype = XMLMapper.Create;
  -- Прописывать типы смысла нет - все строки
  -- Даже курс: у него нестандартный разделитель
  map.fields[1].nodetype.allowreflection = true;
  subres = SimpleRestGet.CreateEx('http://www.cbr.ru/scripts/XML_daily_eng.asp?', map).Call(['date_req=11/06/2015']).Get;
  valList = subres.Valute;
  --Можем найти конкретную валюту
  valList = Tul.FuncTools.Filter(Tul.EvalObject.CreateEx('Charcode = "USD"'), valList);
  -- И вывести курс (на забываем: это строка с разедлителем - запятой)
  Trace(valList[1].Value);



АдресК - всё ещё экспериментальный проект по использованию ФИАС, как раз через самописный веб-сервис.
Чуть больше уровней адресации, чем в КЛАДР. Запросы пока медленные, зато асинхронные.

Ну а TUL - это просто утилиты типа фильтрации в примере выше.

_________________
Turbo9 Open Source Initiative


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Чт июн 11, 2015 4:04 pm 
Не в сети

Зарегистрирован: Пт апр 16, 2004 5:11 pm
Сообщения: 5596
Откуда: OpenFly Soft Technology, Москва
1. XMLRPC
Можете привести пример использования XMLRPC ? Курсы валют и считывать данные контрагентов можно считывать и без Вашего проекта.
А можно на основе него создать SOAP сервер, к которому будут подключаться интернет веб-сервисы для получения данных? (viewtopic.php?f=40&t=9944)
2. АдресК - как я понял - это замена локального Кладр на сетевой сервис?
3. Не понял про фильтрацию TUL. Без фильтров TUL будет отображаться весь справочник Кладр?

_________________
www.TurboFlyERP.ru


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Чт июн 11, 2015 5:50 pm 
Не в сети

Зарегистрирован: Пт янв 11, 2013 12:51 pm
Сообщения: 37
Откуда: ТБ.Бюджет, г. Москва
storm писал(а):
3. Не понял про фильтрацию TUL. Без фильтров TUL будет отображаться весь справочник Кладр?

Нет, я про пример кода в моём посте. Там используется функция фильтрации массива.
Поскольку ничего похожего я в ядре или СИС2 не нашёл - я написал её.
Поскольку я полагаю, что она будет полезна кому-то кроме меня - я выложил её на github.

storm писал(а):
1. Можете привести пример использования XMLRPC ?
А можно на основе него создать SOAP сервер, к которому будут подключаться интернет веб-сервисы для получения данных? (viewtopic.php?f=40&t=9944)

Ну можно получить последний пост из моего ЖЖ :) правда в UTF-8, а перекодировщика в Т9 вроде нет...
Код:
  var params: variant[];
  var res: variant;
    res = SimpleCall('http://www.livejournal.com/interface/blogger/','blogger.getRecentPosts',['','scondo']);
    params = res;
    params = params[1];
    res = params[1];
    Out = res.content.AsString;


SOAP-сервер создать нельзя. Но можно вызывать любые методы Т9 с любыми параметрами/результатами если иметь на целевом языке сетевую часть базового протокола Т9 (func_rpc.php + несколько методов из cls_Session.php).
Когда-то я делал подобное на Python в порядке эксперимента. Получалось примерно так:
Код:
def xml_call(Sock,fName,Params):
    '''Вызов функции через XML-RPC диспетчер прикладного уровня'''
    Request=xmlrpclib.dumps(Params, fName).encode("windows-1251")
    Resp=call(Sock,1,"XMLRPC.Calling|Caller|"+Request)
    Res=xmlrpclib.loads(Resp)
    return Res[0]

Проблема полноценного сервиса на сегодня в любом случае будет упираться в реализацию web-сервера. поскольку в Т9 его нет - надо будет всегда прикручивать что-то сбоку.

_________________
Turbo9 Open Source Initiative


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Пн авг 10, 2015 6:24 pm 
Не в сети

Зарегистрирован: Пт янв 11, 2013 12:51 pm
Сообщения: 37
Откуда: ТБ.Бюджет, г. Москва
Поднял из архива старые наработки по подключению к Т9.

Файл, реализующий сервер, выложен в составе проекта
https://github.com/TB-Budget/T9_XMLRPC/ ... l/T9rpc.py

Для запуска надо:
1) Установить Python 2.7 (разрядность значения не имеет)
2) при необходимости изменить параметры подключения к Т9:
Код:
# config
Server="127.0.0.1"
Port=25700

DBServ="localhost"
ProcServ="localhost"

3) Запустить сервер ("python T9rpc.py" или двойным щелчком)
4) Подключиться к T9rpc и выполнять запросы посредсвом XML-RPC
Пример на Турбо9:
Код:
  var params: variant[];
  var sid: Integer;
  var res: variant;

    res = SimpleCall('http://127.0.0.1:8001/RPC2','T9login',["ДЕМО_2015", 'Администратор','']);
    params = res;
    sid = params[1];
    res = SimpleCall('http://127.0.0.1:8001/RPC2','T9exec',[sid, 'XMLRPC.Convinience.GetRecordData', '{МашинаРеквизитов.Настройки.ИнтерфейснаяПанель:1}', False]);
    params = res as Variant[];
    res = params[1];

В переменной res будет Storage с настройкой интерфейсной панели.
Disclaimer: функция 'XMLRPC.Convinience.GetRecordData' создавалась преимущественно для отладочных целей, пользуйтесь осторожно.

Соответственно из другого языка (JavaScript, Java, Python, Ruby, etc.) вызов будет производится с использованием модуля XML-RPC данного языка, в соответствии с его документацией.

Ещё раз:
XML-RPC реализует конкретный небольшой набор типов. Для использования библиотеки функции в Турбо9 должны работать с этими базовыми типами (скаляры, массивы, Storage, BinaryObject).
Проблема реализации SOAP: требуется анализ и публикация типов(классов) Т9, чтобы в процессе запроса данные приходили совместимыми с требуемыми классами Т9 и конвертировались в них.

_________________
Turbo9 Open Source Initiative


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Чт ноя 26, 2015 6:28 pm 
Не в сети

Зарегистрирован: Пт янв 11, 2013 12:51 pm
Сообщения: 37
Откуда: ТБ.Бюджет, г. Москва
Для использования АдресК рекомендуется иметь по крайней мере одну запись "ПараметрыСтруктурыБизнеса" (выбирается первая, но она вроде и запроектирована как синглтон) где хранятся две опции настройки
Код:
  field NotUsedFIOSM: logical;
  field FIOSM_URL: String;       

Стандартное значение "Ложь" и пустая строка соответственно - задействует онлайн-сервис с адреса "по умолчанию": fiosm.tb-b.ru

_________________
Turbo9 Open Source Initiative


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Пн май 30, 2016 2:59 pm 
Не в сети

Зарегистрирован: Пн июн 07, 2004 5:32 pm
Сообщения: 78
Откуда: г.Можайск
Проект "Т9_Тесты", представленный на семинаре, выложен на GitHub:

https://github.com/TB-Budget/T9Testing

Проект содержит инструменты для:
- хранения функциональной спецификации модулей прикладных решений
- проектирования тестовых примеров для ручного тестирования
- объединения тестовых примеров в тест-планы и программы тестирования
- ведения протоколов и хранения результатов ручного тестирования.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Ср апр 19, 2017 2:20 pm 
Не в сети

Зарегистрирован: Пт апр 16, 2004 5:11 pm
Сообщения: 5596
Откуда: OpenFly Soft Technology, Москва
Нашел еще ошибку в парсере JSON.

Код:
      sHTTPЗапрос="https://focus-api.kontur.ru/api3/contacts?key=3208d29d15c507395db770d0e65f3711e40374df&ogrn=&inn=561100409545";
      хHTTP = AutoObject.Create("Msxml2.XMLHTTP.6.0");
      хHTTP.open ("GET", sHTTPЗапрос, False);
      хHTTP.send;
      ТекстЗапроса=хHTTP.responseText;
      РЕЗЗапроса=Json.Parse(ТекстЗапроса);


Выбивает ошибка:
Цитата:
Значение типа "Целое" нельзя присвоить переменной типа "Массив типа Вариант"
на списке телефонов, когда самих телефонов нет.

_________________
www.TurboFlyERP.ru


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Ср апр 19, 2017 3:06 pm 
Не в сети

Зарегистрирован: Пт янв 11, 2013 12:51 pm
Сообщения: 37
Откуда: ТБ.Бюджет, г. Москва
Исправлено
https://github.com/TB-Budget/TUL/commit ... 2a2f11afa7

В целом это, конечно, проблема ядра. Но пока обошли.

Просьба: просто сообщения об ошибках лучше заводить непосредственно на GitHub https://github.com/TB-Budget/TUL/issues
Там не такая сложная регистрация, зато тема не будет засоряться и будет связь с правками.

_________________
Turbo9 Open Source Initiative


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проекты Турбо9 на GitHub
СообщениеДобавлено: Чт апр 20, 2017 10:48 am 
Не в сети

Зарегистрирован: Пт апр 16, 2004 5:11 pm
Сообщения: 5596
Откуда: OpenFly Soft Technology, Москва
Нашел еще ошибку в запросе https://focus-api.kontur.ru/api3/buh?ke ... 6663003127 . Написал на GitHub .

_________________
www.TurboFlyERP.ru


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB