Начат
Cleverence SMART и Delpi
Здравствуйте! Есть прекрасное приложение написанное на Delphi. Хотелось бы в него получать данные из Mobile Smart сервера. Есть ли примеры такого взаимодействия? Можете дать ссылки или прислать исходники?
Сервис поддержки клиентов работает на платформе UserEcho
Добрый день,
В статье https://www.cleverence.ru/support/category:604/ описаны способы интеграции, так же внизу статьи справочные материалы которые вам пригодятся.
Там описаны общие методы. То есть придется изучать, как в Delphi например подключаться через REST API. Экспериментировать, идти методом проб и ошибок. А хотелось бы примеров уже готовых программ или работающего кода как из Delphi прочитать какое-то поле в конкретном документе на сервере SMART.
На Visual Studio C# я такие программы нашел. Но к сожалению разработанные для него dll не работают как надо в Delphi. Если готовых примеров нет - придется делать обмен данными через MS SQL. Наверное так будет быстрее всего. К счатью хотя коннектор к MS SQL не надо писать.
Реализация REST в Delphi - это реализация обыкновенных GET/POST запросов.
Универсальных вариантов интеграции не существует априори.
Разница в использовании DLL для Delphi и C++/C# (абсолютно не важно в чьей реализации - Microsoft/ Borland (Embarcardero)) только в порядке передачи параметров.
И вообще, что за любовь к методике "нашел на просторах интернета готовый модуль, вставил, работает"? А вдруг там троян?))))
Нет готовый модуль мне не нужен. Просто в c# я нашел кусок кода который работал и прекрасно получал данные с документа SMART.
var connector = new Cleverence.Warehouse.StorageConnector();
connector.SelectCurrentApp("михаил-пк:10501/d7c15f54-fd05-4811-8f6d-c7c7003887c5");
var Document = connector.GetDocument('123');
На Delphi похожий код не проходит. Создаю элемент ActiveX из библиотеки Terminal.Connector.
Помещаю на форму. То есть по идее создаю новый экземпляр, так же как и в C# командой new. Методы и функции у него те же самые. Но теперь работают только первые две строчки.
На третьей ругается, что несовместимы типы IDispatch и String. То есть так же как в C# я к документу обратиться уже не могу. Сейчас сижу разбираюсь как сделать из строки переменную понятную функции GetDocument.
Прекрасно работает.
Нужно просто знать как это пишется на Delphi и понимать, что тип переменных должен быть OLEVariant.
fServer:=CreateOleObject('Cleverence.Warehouse.StorageConnector');
Этот код не работает. Программа на Delphi не видит такого OLE объекта, выдает ошибку. Был бы рабочий пример, я бы понял, как правильно подключить библиотеку для этого кода чтобы этот код сработал. Примеры сразу отбрасывают кучу вопросов. А так остается эксперименты и чтение документации, работа через созданный ActiveX.
Ну у меня собственный написанный Delphi-конннектор и все прекрасно работает.
Не нужно использовать Active-X. Нужно правильно описывать переменные.
Ну то есть мне тоже надо написать свой коннектор, я правильно понимаю? Учитывая что работа одноразовая, сильно не хочется изобретать велосипед. Наверное быстрее организовать обмен данных между Delphi и SMART через готовый MS SQL коннектор. Но пока время есть, еще поэкспериментирую, почитаю доки по Delphi. Обычно с OLE у меня проблем d Delphi не было никогда. Все методы работали без извращений и без обращения к переменным через интерфейс. Но в этом случае видимо опались сложные OLE- объекты. Так просто с ними не поработаешь.
У меня была программа прекрасно рабjтающая на C# с SMART. Но начальник захотел сделать такие в ней изменения, что без кучи готовых VCL компонентов я буду год работать. Из избушки сделать небоскреб. Все-таки Delphi дает немалое ускорение в разработке, если нужен сложный и многоуровневый интерфейс. Придется изучать доки от Delphi.
Какая разница на чем писать?
Не понимаю, в чем Delphi дает ускорение перед C#?
Программисту перпендикулярно на чем писать - на Algol/PL1/Pascal/Delphi, C/C++/C#, Assembler или на куче других языков.
Выбор инструмента диктуется только текущими задачами.
Ага ,написать на ассемблере систему обработки базы данных с сотней разных рабочих мест и интерфейсов для них. Наверное можно. Если ты работал на нем десятилетиями и уже накопил кучу шаблонов на каждый случай.
Если нет - то приходится работать в среде, где другие для тебя создали эти шаблоны и выложили их на всеобщее пользование. Иначе будешь писать шаблоны сам до второго пришествия.
Для работы с базами данных существует куча готовых фреймвоков.
Вот, платформа 1С, предоставляет великолепные инструменты для написания любой учетной системы на без разницы сколько рабочих мест. Даже кластеризацию и рапределенку поддерживает.
Ну я тоже начинаю подумать, что надо переходить на 1C. Там тоже готовых шаблонов, выложенных в сеть навалом, как и в Delphi. И форумы прекрасные. Но пока пугает то, что придется заново все изучать, с нуля.
Чего там изучать? Паскаль совмещенный с SQL, только на русском языке.