Re: АПИ - Первый шаг

Базовые сведения.

Что такое ТКС-АПИ?

ТКС АПИ это структурированный набор объектов для доступа к объектам TechnologiCS(  TechnologiCS ТПП, OutdoCS). Использование АПИ позволяет вам получить прямой доступ ко всем данным ТКС.
В настоящий момент АПИ только разрабатывается, так что открыты не все объекты. АПИ на запись  (на возврат данных обратно) пока не реализован и будет открыт в будущих версиях. Написаны только самые необходимые функции для записи данных (документооборот, параметры). 
Используя ТКС АПИ вы можете использовать данные ТКС в любом вашем приложении, можете написать свои собственные конфигурации ТКС для пользователей.
После развития АПИ на запись вы сможете писать любые процедуры импорта данных в ТКС и так же обработке собственных данных ТКС.

Само АПИ представляет собой ActiveX объект, и поэтому может использоваться в любом языке программирования, который позволяет использовать ActiveX-объекты (Delphi, Visual Basic, Visual C++, Java and etc.).

Для того чтобы использовать АПИ, необходимо знание какого-нибудь языка программирования,  знание программы TechnologiCS (можно и без знания ее конечно, но тогда цель использования не совсем понятна) ну и конечно же знание АПИ (с последним конечно же сложнее всего, так как оно только развивается, будет постоянно наращивается и к тому пока не очень хорошо документировано, хотя на мой взгляд лучшим документом будет хороший пример конкретного использования чем мы и постараемся помочь).
Для того  чтобы работать с АПИ не надо знать ODBC, ADO, BDE или иные способы доступа к базам данных (хотя их знание конечно не помешает, так как везде используется стандартное понятие набора данных и принципы работы с ним аналогичны).

Вы НЕ БУДЕТЕ иметь прямого доступа к базе данных. Доступ осуществляется только через наши объекты. Соответственно вам не надо будет думать о правах, о дополнительных настройках, об изменении  структур данных. Вся эта обработка будет заложена у нас и вам остается использовать это. В идеале с выходом нового ТКС АПИ все ваши программы будут работать, за исключением вновь появившегося функционала (хотя и его можно будет легко отрабытывать динамически так как данные наследуются от одних объектов), хотя конечно в реальности будет посложнее, но мы постараемся максимально придерживаться этих принципов.

Что нужно чтобы запустить ТКС-АПИ?

1. Нужно установить ТКС версии 2.5.1.0 или выше, при установке выбрать пункт АПИ  (здесь и в дальнейшем под ТКС подразумевается все продукты этой серии - TechnologiCS  TechnologiCS ТПП, OutdoCS – ТКС самый полный вариант и потому будем говорить всегда о нем).

2.Нужно иметь лицензию на  использование ТКС АПИ.

3.После инсталляции у вас появятся следующие файлы 
·    RegTCS_API.bat – командный файл для регистрации ТКС АПИ.
·    UnRegTCS_API.bat – командный файл для разрегистрации ТКС АПИ.
·    tregsvr.exe – службеная програмка выполняющая регистрацию
·    TcsApi.ocx – сам ТКС АПИ.
·    TCSAPI.HLP – файл помощи по АПИ.
Для того чтобы начать работать необходимо выполнить RegTCS_API.bat. В общем-то его надо выполнять при каждой инсталляции и с каждой новой версией.
   
Поскольку АПИ только развивается, там содержится еще не мало ошибок и недоработок (в версии 2.51.0 оно работает не всегда стабильно, но в новой версии будет уже гораздо лучше и функционал там значительно расширен. Но для того чтобы пробовать изучать и использовать в версии 2.5.1.0 уже есть не мало,  а все что заявлено в предыдущих версиях будет поддерживаться в дальнейшем. 

В дальнейшем будет доступен подробный пример использования АПИ с комментариями поддерживаемый от версии к версии на языках Deplhi, VBA for Application, Visual C++. Выложенный сейчас пример немного сложен для понимая и мы постараемся в дальнейшем упростить его.


Ну а сейчас самый простейший пример использования АПИ.

Пример использования АПИ

Запустите Excel.
Выберите команду Сервис – Макрос – Редактор Visual Basic (или просто нажмите Alt+F11).

В появившемся окне (Редактор Visual Basic) выберите команду Tools – Reference.
Нажмите кнопку Browse и найдите файл TcsApi.ocx. 
Нажмите OK ну и на всякий случай выполните Сохранить файл (дабы не проделывать это при следующем запуске).

Выберите команду Insert – Module и напишите в редакторе следующие строки.



Public Sub FirstStep()

Dim TCS As CSDN.TCS
Dim App As CSDN.Tcs_Application

'Создадим объект ТКС АПИ

Set TCS = CreateObject("CSDN.TCS")

'Создадим экземляр приложения (сеанс). Внимание ! создание повторного сеанса не допустимо!


Set App = TCS.Login 'вызывает стандартное окно аутентификации пользователя

'Set App = TCS.LoginEx("Администратор", "0")  ' Если вы сами пшите диалог ввода пользователя и пароля или просто его знаете

'Set App = TCS.LoginCurrent ' если вы хотите использовать сеанс уже запущенного ТКС


Dim Mes As CSDN.Mesuriments

'Получим справочник единиц ихмерения

Set Mes = App.Mesuriments

Dim MesStr As String


If Mes.IsEmpty Then
   MesStr = "Справочник единиц измерения пуст!"
Else
 
   Mes.First
   While Not Mes.EOF
     'Для примера вывеведим весь справочник в одну строку. Возьмем идентификатор единицы измерения и ее обозначение
     MesStr = MesStr + Mes.Properties("ID").DisplayText + "=" + Mes.Properties("NOTE").DisplayText + "_"
     Mes.Next
   Wend
End If
   
'Освободим объект Единицы измерения
Set Mes = Nothing


MsgBox MesStr

'освободим объект приложения и завершим работу

Set App = Nothing
Set TCS = Nothing


End Sub

Сохраняемся и жмем кнопку F5. Только не пытайтесь запустить пример два раза. Не получится. Придется всякий раз закрывать и открывать Эксель.

Все. Надеюсь это пример не вызовет затруднений.   Он ничего не делает, просто создает ТКС и получает данные об его справочнике единиц измерения. 
Если он запустился, значит АПИ у вас работает, и можно пробовать разбираться дальше.  Если нет…Ну тогда надо разбираться в чем же именно дело.

В следующем примере я покажу три (а в новой версии их будет уже четыре) основных способов использования АПИ в ваших программах ( от самого простого, когда можно получить предоставить без проблем  весь фунционал ТКС пользователю в вашем АПИ, до самого сложно, где вы полностью сами управляете представлением данных пользователю, хотя для его нормального использования требуется еще не малая доработка у нас).

Re: АПИ - Первый шаг

Что касается 

Нажмите кнопку Browse и найдите файл TcsApi.ocx.
Нажмите OK ну и на всякий случай выполните Сохранить файл (дабы не проделывать это при следующем запуске).


Всё закрывается и идёт сообщение


EXEL.exe вызвало ошибку и будет закрыто. Необходимо перезепустить программу.

Создан журнал ошибок.


Поможете понять в чём проблема? :(

Re: АПИ - Первый шаг

Пока ничего не скажу, но уже встречалось такое. Разбираемся. Вообще то после этого все работает, ошибка возникает в момент регистрации.

Re: АПИ - Первый шаг

Кстати, а что в журнал ошибок пишется? закиньте на форум, если там есть что нибудь  полезное. Может поможет.

Re: АПИ - Первый шаг

ВОТ. Если я всё правильно понял это оно.

Тип    Дата    Время    Источник    Категория    Событие    Пользователь    Компьютер
Уведомления    16.01.2004    14:55:15    MSDTC Client    CM    4156    Нет данных    NOTEBOOK
Уведомления    16.01.2004    14:55:15    MSDTC    CM    4156    Нет данных    NOTEBOOK
Уведомления    16.01.2004    14:45:05    MSDTC    SVC    4097    Нет данных    NOTEBOOK

Re: АПИ - Первый шаг

:( Бум разбираться.

А после этого работает хоть АПИ?

Re: АПИ - Первый шаг

I'm sorry.

В моём файле ничего не работает.

А вот в файле TCS_Api.xls с тем же макросом всё работает расчудесно. И в TCS_Api_2_1.xls тоже всё работает. Они на установочном CD были.

Видно ума у меня не хватает. Жаль конечно.  :cry:

Re: АПИ - Первый шаг

У меня таже проблема. Исправляется так: копируешь файл tcsapi.ocx в каталог %systemroot%\system32 и подключаешь его к своей программе оттуда. Но регистрировать файлом RegTCS_API.bat надо из каталога с установленной системой TechnologiCS.

Re: АПИ - Первый шаг

Интересней вот какая проблема:
API для TechnologiCS Full и API для TechnologiCS-ТПП это разные вещи и как заставить макрос расчета работать с обееми библиотеками? (На заводах устанавливаются обе TechnologiCS и полная и ТПП и бывает что обе на одном компе, если несколько человек по очереди работают)

Re: АПИ - Первый шаг

Вообще то в документообороте есть ответ на этот вопрос https://forum.technologics.ru/viewtopic.php?id=60. Вы же работаете не с файлом, а с библиотекой. библиотека CSDN. А далее нужно просто требуемые объекты создавать.

В примере показано, что если работаете только с функциями документооборота, то надо создавать объект CSDN.OCS и получать объект OcsApplication. При этом без разницы что же стоит у клиента - OutdoCS - АПИ, Technologics -АПИ или  Technologics-ТПП-АПИ.

Аналогично и для этого случая. Просто реально  сейчас нет объекта полный ТКС ( там производство, а оно еще в АПИ не попало).
Но принцип будет аналогичный - создавайте минимальный для работы объект.

Re: АПИ - Первый шаг

Вот в том то и проблема, что в коде программы жестко прописан файл библиотеки. Но заранее не известно какая библиотека у пользователя.

Re: АПИ - Первый шаг

В references я жестко прописываю библиотеку. Но какая стоит у пользователя я заранее знать не могу.

Re: АПИ - Первый шаг

А библиотека всегда CSDN. Смотрите ссылку что я давал выше

Re: АПИ - Первый шаг

Чего то я не допонимаю.

1.Код программы не зависит от смены библиотеки (tcsapi.ocx или tcstppapi.ocx)
2.В references прописывается библиотека и собственно путь к ней, название у обеих библиотек общее CSDN. Но пути то разные за счет разных имен файлов. И если у пользователя не та библиотека установлена то тут все валится.

Re: АПИ - Первый шаг

Выполняю последовательно файлы 
UnRegOCS_API.bat 
UnRegTCS_API.bat 
UnRegTCS_TPP_API.bat 

потом выполняю 

RegTCS_TPP_API.bat 

Захожу в ексель, добавляю библиотеку там из TCSTpp.ocx. Пишу простой пример - просто логин. Работает.

выполняю UnRegTCS_TPP_API.bat 
Удаляю файл TCSTpp.ocx 
выполняю RegTCS_API.bat 

Запускаю Ексель - все работает.

Причер в references он показывает теперь на файл TcsApi.ocx ( так как он зарегестрирован последним).

Re: АПИ - Первый шаг

Исправляется так: копируешь файл tcsapi.ocx в каталог %systemroot%\system32 и подключаешь его к своей программе оттуда.


Исправляется!!! :D