TMManager (Архив) — различия между версиями

Материал из TaxiMaster
Перейти к: навигация, поиск
м (Синтаксис)
 
(не показано 15 промежуточных версий 3 участников)
Строка 1: Строка 1:
 +
{{url|{{корень FTP|Utilities/TMMgr.exe}}}}
 +
 
'''TMManager''' — это COM-приложение, позволяющее какому-либо программному средству взаимодействовать с системой Такси-Мастер с помощью технологии COM.
 
'''TMManager''' — это COM-приложение, позволяющее какому-либо программному средству взаимодействовать с системой Такси-Мастер с помощью технологии COM.
 +
 +
{{warning|Обратите внимание! Данная утилита устарела, сейчас её функции выполняет [[TM API|CommonAPI]].}}
  
 
== Установка TMManager ==
 
== Установка TMManager ==
 
Установка COM-объекта TMManager происходит в один шаг: нужно просто запустить исполняемый файл.
 
Установка COM-объекта TMManager происходит в один шаг: нужно просто запустить исполняемый файл.
При этом объект <tt>TMMgr</tt> зарегистрируется в списке приложений DCOM через службу компонентов, и его можно использовать для вызова методов из стороннего приложения (например, из скрипта VBS Visual Basic script).
+
При этом объект {{code|TMMgr}} зарегистрируется в списке приложений DCOM через службу компонентов, и его можно использовать для вызова методов из стороннего приложения (например, из скрипта {{коммент|VBS|Visual Basic script}}).
 
 
{{url|<tt>http://taximaster.ru/ftp/tm/Utilities/TMMgr.zip</tt>}}
 
  
 
== Создание объекта ==
 
== Создание объекта ==
Строка 19: Строка 21:
 
Объект TMManager имеет несколько методов, которые могут быть использованы сторонними приложениями.
 
Объект TMManager имеет несколько методов, которые могут быть использованы сторонними приложениями.
  
=== <tt>DBConnect</tt> ===
+
=== {{code|DBConnect}} ===
С помощью метода <code>DBConnect</code> организуется подключение к [[База данных|базе данных Такси-Мастер]].
+
С помощью метода {{code|DBConnect}} организуется подключение к Такси-Мастер.
 +
 
 +
При этом будет создан файл с настройками TMMgr.ini, в котором нужно указать актуальные TMServerIP, TMServerPort, TMAPISecretKey.
  
 
==== Синтаксис ====
 
==== Синтаксис ====
Синтаксис метода <code>DBConnect</code>:
+
Синтаксис метода {{code|DBConnect}}:
  
 
  HRESULT DBConnect (BSTR ServerName, BSTR FilePath, BSTR Login, BSTR Password);
 
  HRESULT DBConnect (BSTR ServerName, BSTR FilePath, BSTR Login, BSTR Password);
  
# <code>ServerName</code> — это строка, обозначающая имя сервера, например, “LOCALHOST”.
+
# {{code|ServerName}} — это строка, обозначающая имя сервера, например, {{путь|LOCALHOST}}.
# <code>FilePath</code> — строка, обозначающая путь к файлу [[База данных|базы данных]]. Путь должен быть указан полностью, включая имя диска. Например, <tt>C:\Program Files\TMEnterprise\tme_db.fdb</tt>.
+
# {{code|FilePath}} — строка, обозначающая путь к файлу базы данных. Путь должен быть указан полностью, включая имя диска.  
# <code>Login</code> обозначает имя пользователя, под которым производится вход в базу данных. Например, <tt>SYSDBA</tt>.
+
# {{code|Login}}/{{code|Password}} текущие логин и пароль для вашей базы данных.
# <code>Password</code> строка, обозначающая пароль для подключения к базе. Например, <tt>masterkey</tt>.
 
  
=== <tt>DBDisconnect</tt> ===
+
=== {{code|DBDisconnect}} ===
Вызов метода DBDisconnect закрывает подключение к базе данных Такси-Мастер.
+
Вызов метода {{code|DBDisconnect}} закрывает подключение к Такси-Мастер.
  
 
==== Синтаксис ====
 
==== Синтаксис ====
Синтаксис метода <code>DBDisconnect</code>:
+
Синтаксис метода {{code|DBDisconnect}}:
  
 
  HRESULT DBDisconnect();
 
  HRESULT DBDisconnect();
Строка 42: Строка 45:
 
Метод вызывается без параметров.
 
Метод вызывается без параметров.
  
=== <tt>OpenNewOrder</tt> ===
+
=== {{code|BeginCoordsSending}} ===
Метод <code>OpenNewOrder</code> создает в [[Список заказов|списке заказов]] Такси-Мастер новый [[заказ]].
+
Метод {{code|BeginCoordsSending}} создает объект для передачи в Такси-Мастер ряда координат.
Один вызов этого метода создает один пустой заказ.
 
 
 
==== Синтаксис ====
 
Синтаксис метода <code>OpenNewOrder</code>:
 
 
 
HRESULT OpenNewOrder();
 
 
 
Метод вызывается без параметров.
 
 
 
=== <tt>SetOrderField</tt> ===
 
Метод <code>SetOrderField</code> играет очень важную роль в создании заказа: с его помощью задаются значения полям карточки заказа.
 
Метод вызывается столько раз, сколько полей нужно заполнить.
 
 
 
==== Синтаксис ====
 
Синтаксис метода <code>SetOrderField</code>:
 
 
 
HRESULT SetOrderField(BSTR FieldName, Variant Value);
 
 
 
# <code>FieldName</code> — строка, обозначающая имя поля. Список допустимых полей см. ниже.
 
# <code>Value</code> — объект, обозначающий значение, передаваемое в поле.
 
 
 
==== Допустимые значения параметров ====
 
Параметр <code>FiledName</code> определяет имя поля карточки заказа, а параметр <code>Value</code> — его значение.
 
Набор полей строго определен, как и имя каждого из них, поэтому вызов метода будет успешным в том случае, когда значение <code>FieldName</code> соответствует одному из полей, описанных ниже, а <code>Value</code> имеет соответствующий полю тип.
 
При несоблюдении правильности названия поля или типа вы можете получить исключительную ситуацию.
 
 
 
{|{{table}}
 
! Поле
 
! Тип
 
! Описание
 
! Пример
 
|-
 
| <code>STATE</code>
 
| <tt>NUMERIC(18,0)</tt>
 
| Идентификатор состояния заказа.
 
|
 
|-
 
| <code>NAME</code>
 
| <tt>VARCHAR(80)</tt>
 
| Наименование заказа.
 
| Заказ с телефона 305723 на Ленина, 24-68
 
|-
 
| <code>PHONE</code>
 
| <tt>VARCHAR(12)</tt>
 
| Номер телефона, с которого принят заказ.
 
|
 
|-
 
| <code>CUSTOMER</code>
 
| <tt>VARCHAR(80)</tt>
 
| Имя заказчика
 
| Булкин
 
|-
 
| <code>SOURCE</code>
 
| <tt>VARCHAR(80)</tt>
 
| Полный адрес подачи такси.
 
| Ленина, 24-68
 
|-
 
| <code>DESTINATION</code>
 
| <tt>VARCHAR(80)</tt>
 
| Полный адрес назначения.
 
| Пушкинская, 114-8
 
|-
 
| <code>CREWID</code>
 
| <tt>NUMERIC(18,0)</tt>
 
| Идентификатор экипажа-исполнителя.
 
| 68
 
|-
 
| <code>SUMM</code>
 
| <tt>NUMERIC(10,2)</tt>
 
| Сумма за заказ.
 
| 500
 
|-
 
| <code>STARTUSER</code>
 
| <tt>NUMERIC(18,0)</tt>
 
| Идентификатор оператора, принявшего заказ.
 
| 4
 
|-
 
| <code>STARTTIME</code>
 
| <tt>TIMESTAMP</tt>
 
| Время приема заказа.
 
|
 
|-
 
| <code>SOURCE_STREET</code>
 
| <tt>NUMERIC(18,0)</tt>
 
| Идентификатор улицы подачи.
 
|
 
|-
 
| <code>SOURCE_POINT</code>
 
| <tt>NUMERIC(18,0)</tt>
 
| Идентификатор пункта подачи.
 
|
 
|-
 
| <code>SOURCE_HOUSE</code>
 
| <tt>VARCHAR(10)</tt>
 
| Номер дома подачи.
 
| 24
 
|-
 
| <code>SOURCE_FLAT</code>
 
| <tt>VARCHAR(10)</tt>
 
| Номер квартиры подачи.
 
| 68
 
|-
 
| <code>SOURCE_TIME</code>
 
| <tt>TIMESTAMP</tt>
 
| Время подачи.
 
|
 
|-
 
| <code>DESTINATION_STREET</code>
 
| <tt>NUMERIC(18,0)</tt>
 
| Идентификатор улицы назначения.
 
|
 
|-
 
| <code>DESTINATION_POINT</code>
 
| <tt>NUMERIC(18,0)</tt>
 
| Идентификатор пункта назначения.
 
|
 
|-
 
| <code>DESTINATION_HOUSE</code>
 
| <tt>VARCHAR(10)</tt>
 
| Номер дома назначения.
 
|
 
|-
 
| <code>DESTINATION_FLAT</code>
 
| <tt>VARCHAR(10)</tt>
 
| Номер квартиры назначения.
 
|
 
|-
 
| <code>CLIENTID</code>
 
| <tt>NUMERIC(18,0)</tt>
 
| Идентификатор клиента.
 
|
 
|-
 
| <code>IS_PRIOR</code>
 
| <tt>NUMERIC(1,0)</tt>
 
| Признак предварительного заказа.
 
| 1
 
|-
 
| <code>IS_LOCKED</code>
 
| <tt>SMALLINT</tt>
 
| Признак блокировки заказа.
 
| 1
 
|-
 
| <code>MONEY_RECEIVE</code>
 
| <tt>SMALLINT</tt>
 
| Признак принятия оплаты водителем.
 
| 1
 
|}
 
 
 
=== <tt>CloseNewOrder</tt> ===
 
Метод <code>CloseNewOrder</code> завершает редактирование полей заказа и добавляет его в [[список заказов]] Такси-Мастер.
 
Этот метод необходимо вызвать для того, чтобы созданный заказ появился в списке.
 
 
 
==== Синтаксис ====
 
Синтаксис метода <code>CloseNewOrder</code>:
 
 
 
HRESULT CloseNewOrder();
 
 
 
Метод вызывается без параметров.
 
 
 
=== <tt>BeginCoordsSending</tt> ===
 
Метод <code>BeginCoordsSending</code> создает объект для передачи в Такси-Мастер ряда координат.
 
  
 
==== Синтаксис ====
 
==== Синтаксис ====
Синтаксис метода <code>BeginCoordsSending</code>:
+
Синтаксис метода {{code|BeginCoordsSending}}:
  
 
  HRESULT BeginCoordsSending();
 
  HRESULT BeginCoordsSending();
Строка 213: Строка 55:
 
Метод вызывается без параметров.
 
Метод вызывается без параметров.
  
=== <tt>SendCoords</tt> ===
+
=== {{code|SendCoords}} ===
Метод <code>SendCoords</code> добавляет в объект координаты и время их передачи.
+
Метод {{code|SendCoords}} добавляет в объект координаты и время их передачи.
  
 
==== Синтаксис ====
 
==== Синтаксис ====
Синтаксис метода <code>SendCoords</code>:
+
Синтаксис метода {{code|SendCoords}}:
  
 
  HRESULT SendCoords(INT Identifier, SINGLE Latitude, SINGLE Longitude);  
 
  HRESULT SendCoords(INT Identifier, SINGLE Latitude, SINGLE Longitude);  
  
# <code>Identifier</code> — идентификатор водителя (см. поле {{field|Идентификатор}} в [[Справочник «Экипажи»|карточке экипажа]]. Для удобства можно использовать [[ИД водителя]], его можно посмотреть в [[Справочник «Водители»|карточке водителя]].
+
# {{code|Identifier}} — идентификатор водителя (см. поле {{field|Идентификатор}} в [[Справочник «Экипажи»|карточке экипажа]]. Для удобства можно использовать [[ИД водителя]], его можно посмотреть в [[Справочник «Водители»|карточке водителя]].
# <code>Latitude</code> — число с плавающей запятой, обозначающее широту.
+
# {{code|Latitude}} — число с плавающей запятой, обозначающее широту.
# <code>Longitude</code> — число с плавающей запятой, обозначающее долготу.
+
# {{code|Longitude}} — число с плавающей запятой, обозначающее долготу.
  
=== <tt>EndCoordsSending</tt> ===
+
=== {{code|EndCoordsSending}} ===
Метод <code>EndCoordsSending</code> завершает набор координат и отправляет объект с координатами в Такси-Мастер.
+
Метод {{code|EndCoordsSending}} завершает набор координат и отправляет объект с координатами в Такси-Мастер.
  
 
==== Синтаксис ====
 
==== Синтаксис ====
Синтаксис метода <code>EndCoordsSending</code>:
+
Синтаксис метода {{code|EndCoordsSending}}:
  
 
  HRESULT EndCoordsSending();
 
  HRESULT EndCoordsSending();
Строка 242: Строка 84:
  
 
{| {{table}}
 
{| {{table}}
! Проблема
+
! {{table/th}} | Проблема
! Картинка
+
! {{table/th}} |Картинка
 
<small>(нажмите, чтобы посмотреть)</small>
 
<small>(нажмите, чтобы посмотреть)</small>
! Решение
+
! {{table/th}} |Решение
 
|-
 
|-
| Невозможно создать объект
+
| {{table/td}} | Невозможно создать объект
| [[Image:Tmmanager-exception-on-create.png|150px]]
+
| {{table/td}} | [[Image:Tmmanager-exception-on-create.png|150px]]
|
+
| {{table/td}} |
 
COM-объект не установлен в системе, поэтому невозможно создать его экземпляр.
 
COM-объект не установлен в системе, поэтому невозможно создать его экземпляр.
Чтобы иметь возможность использовать объект, установите его (см. выше).
+
Чтобы иметь возможность использовать объект, установите его (см. [[#Установка TMManager|выше]]).
 
|}
 
|}
  
 
== Ссылки ==
 
== Ссылки ==
* <tt>http://ru.wikipedia.org/wiki/DCOM</tt> — о DCOM на Википедии.
+
* [[Справка:TMManager|Справочный пример работы с TMManager]].
* <tt>http://www.microsoft.com/com</tt> описание технологии COM на сайте автора.
+
* {{code/url|http://ru.wikipedia.org/wiki/Windows_Script_Host}} — о Windows Script Host, под управлением которой работают примеры.
 +
* {{code/url|http://ru.wikipedia.org/wiki/DCOM}} о DCOM на Википедии.
  
 
[[Категория:COM-приложения]]
 
[[Категория:COM-приложения]]
[[Категория:Установка]]
+
[[Категория:Архив]]
[[Категория:Подключающиеся к базе данных]]
 

Текущая версия на 11:21, 27 августа 2021

Download.png
Для скачивания Вы можете воспользоваться ссылкой:
http://files.bitmaster.ru/TM/Utilities/TMMgr.exe

TMManager — это COM-приложение, позволяющее какому-либо программному средству взаимодействовать с системой Такси-Мастер с помощью технологии COM.

Предупреждение!
Обратите внимание! Данная утилита устарела, сейчас её функции выполняет CommonAPI.

Установка TMManager

Установка COM-объекта TMManager происходит в один шаг: нужно просто запустить исполняемый файл. При этом объект «TMMgr» зарегистрируется в списке приложений DCOM через службу компонентов, и его можно использовать для вызова методов из стороннего приложения (например, из скрипта VBS?).

Создание объекта

Создание объекта в вашей программе происходит довольно просто. Пример на VBS:

dim mgrInstance
mgrInstance = WScript.CreateObject("TMMgr.TMManager")

Методы TMManager

Объект TMManager имеет несколько методов, которые могут быть использованы сторонними приложениями.

«DBConnect»

С помощью метода «DBConnect» организуется подключение к Такси-Мастер.

При этом будет создан файл с настройками TMMgr.ini, в котором нужно указать актуальные TMServerIP, TMServerPort, TMAPISecretKey.

Синтаксис

Синтаксис метода «DBConnect»:

HRESULT DBConnect (BSTR ServerName, BSTR FilePath, BSTR Login, BSTR Password);
  1. «ServerName» — это строка, обозначающая имя сервера, например, «LOCALHOST».
  2. «FilePath» — строка, обозначающая путь к файлу базы данных. Путь должен быть указан полностью, включая имя диска.
  3. «Login»/«Password» — текущие логин и пароль для вашей базы данных.

«DBDisconnect»

Вызов метода «DBDisconnect» закрывает подключение к Такси-Мастер.

Синтаксис

Синтаксис метода «DBDisconnect»:

HRESULT DBDisconnect();

Метод вызывается без параметров.

«BeginCoordsSending»

Метод «BeginCoordsSending» создает объект для передачи в Такси-Мастер ряда координат.

Синтаксис

Синтаксис метода «BeginCoordsSending»:

HRESULT BeginCoordsSending();

Метод вызывается без параметров.

«SendCoords»

Метод «SendCoords» добавляет в объект координаты и время их передачи.

Синтаксис

Синтаксис метода «SendCoords»:

HRESULT SendCoords(INT Identifier, SINGLE Latitude, SINGLE Longitude); 
  1. «Identifier» — идентификатор водителя (см. поле «Идентификатор» в карточке экипажа. Для удобства можно использовать ИД водителя, его можно посмотреть в карточке водителя.
  2. «Latitude» — число с плавающей запятой, обозначающее широту.
  3. «Longitude» — число с плавающей запятой, обозначающее долготу.

«EndCoordsSending»

Метод «EndCoordsSending» завершает набор координат и отправляет объект с координатами в Такси-Мастер.

Синтаксис

Синтаксис метода «EndCoordsSending»:

HRESULT EndCoordsSending();

Метод вызывается без параметров.

Пример

См. пример сценария на языке Basic.

Возможные проблемы

Проблемы, которые могут возникнуть, описаны? в таблице:

Проблема Картинка

(нажмите, чтобы посмотреть)

Решение
Невозможно создать объект Tmmanager-exception-on-create.png

COM-объект не установлен в системе, поэтому невозможно создать его экземпляр. Чтобы иметь возможность использовать объект, установите его (см. выше).

Ссылки