Страница 1 из 1
Галактика vs DIRECTUM
Добавлено: 22 мар 2011, 15:06
EvilWish
Здравствуйте!
На мой взгляд, тема интеграции Галактики и системы документооборота Directum становится всё популярнее.
Хочу представить вариант на эту тему.
Это программа связи Галактики 8.1 и Directum (проверялось на версии 4.6.1), работающая через COM, запуск и настройка происходит именно на стороне Галактики.
В качестве примера использования там реализована синхронизация справочника организаций.
http://ifolder.ru/22449730
И вот тут версия для Atlantis 5.4.38, Directum 4.7, Windows 7. Впрочем, изменений по сравнению с прошлой версией почти нет.
http://ifolder.ru/28919929
С уважением,
Стецко Василий.
Re: Галактика vs DIRECTUM
Добавлено: 22 мар 2011, 16:18
edward_K
у меня в занаке покруче будет
. Настраивается в директуме, Таблица любая в принципе, для документов можно использовать объектные фейсы в 20 строк. Пашет как в com так и в файловом режиме, как в пакетном режиме так и в online.
Знаю еще как миниум еще 2 версии для связи - про них в директуме подскажут.
Re: Галактика vs DIRECTUM
Добавлено: 23 мар 2011, 11:06
KATZ
EvilWish писал(а):На мой взгляд, тема интеграции Галактики и системы документооборота Directum становится всё популярнее.
Попался на глаза документ "Концепция развития системы Галактика ERP на 2011 год", в нем написано
на 2011 г. ставятся следующие задачи:
. . .
1.4. Интеграция с системами документооборота (Directum).
Re: Галактика vs DIRECTUM
Добавлено: 23 мар 2011, 11:48
EvilWish
у меня в занаке покруче будет . Настраивается в директуме, Таблица любая в принципе, для документов можно использовать объектные фейсы в 20 строк. Пашет как в com так и в файловом режиме, как в пакетном режиме так и в online.
Круто!
А можно поподробнее? Какие настройки реализованы в директуме? Таблица любая - это как?
Re: Галактика vs DIRECTUM
Добавлено: 23 мар 2011, 16:03
edward_K
настройки в директуме реализованы согласно их требований к интеграции систем с добавлением соотв.функций.
+ реализация обработки вызовов в галактике, вплоть до просмотра документа(для примера сделал для 4)
Словарь + описание документов грузится из галки.
Таблица любая за счет генерации отчета (находу генерится и выполняется - все поля льются в TEMPDESCR) - для первасива, либо прямым запросом(mssql oracle) либо объектным фейсом - для выгрузки документов со спецификацией.
Обработка документов реализована через объекты(ест Директум получает описание всех подключенных )
Код: Выделить всё
#doc
Объектный интерфейс плагина для браузера валидаторов.
#end
objinterface IDIR_ExpIMP;
#doc
Установить запись в протокол, пустой параметр отключает запись
#end
Procedure SetLogFileNM(w :string);
#doc
Вычислить произвольное выражение
#end
Function Expression_ ( w_express :string ) :string ;
#doc
Возвращает заголовок таблицы.
#end
function GetTableTitle: string;
#doc
Возвращает имя главной таблицы
#end
function GetTableName: string;
#doc
Возвращает имя следующей дочерней таблицы
#end
Function GetSlaveName(wnmslave :string) :string;
#doc
Запускает инициализацию.
#end
Function Export_Init(wpsDate:string; wpsTime:string; wpsNrec :string) : boolean ;
#doc
Получить первую запись.
#end
Function Export_First :boolean ;
#doc
Получить следующую запись.
#end
Function Export_Next :boolean ;
#doc
Получить первую запись дочерней таблицы.
#end
Function Export_SlaveFirst(w_slave :string) :boolean;
#doc
Получить следующую запись дочерней таблицы.
#end
Function Export_SlaveNext :boolean;
#doc
Инициализация импорта
#end
Function IMPORT_INIT(wnmfile:string) :boolean;
#doc
сохранить запись
#end
Function UpdateCurrent(wnmtable:string) :boolean;
#doc
Добавить чистую запись
#end
Function InsertCurrent(wnmtable:string) :boolean;
#doc
Возвращает валидатор.
#end
function GetValidator: IDir_ExpImp;
end;
Re: Галактика vs DIRECTUM
Добавлено: 04 июн 2013, 17:17
savov
edward_K писал(а):настройки в директуме реализованы согласно их требований к интеграции систем с добавлением соотв.функций.
+ реализация обработки вызовов в галактике, вплоть до просмотра документа(для примера сделал для 4)
Словарь + описание документов грузится из галки.
Таблица любая за счет генерации отчета (находу генерится и выполняется - все поля льются в TEMPDESCR) - для первасива, либо прямым запросом(mssql oracle) либо объектным фейсом - для выгрузки документов со спецификацией.
Обработка документов реализована через объекты(ест Директум получает описание всех подключенных )
edward_k, нас сейчас сильно интересует данная тема.
Не могли бы выслать в личку подробное описание технологии?
Что настраивали на Галактике, что в Директуме? Ставился ли в Директуме коннектор?
Буду очень благодарен.
Re: Галактика vs DIRECTUM
Добавлено: 04 июн 2013, 20:00
savov
EvilWish писал(а):Хочу представить вариант на эту тему.
Скачал, попробовал собрать. Требуется файл atlcom.vih. В поставке не нашел. Где его можно взять?
Re: Галактика vs DIRECTUM
Добавлено: 04 июн 2013, 22:58
edward_K
Можете в таких случаях создавать пустышку - а вдруг покатит.
Вот этот может быть несколько староват
Код: Выделить всё
//-------------------------------------------------------------------
//--- Copyright(c) 2001 by Galaktika Corporation ---
//--- Этот файл автоматически генерируется для использования ---
//--- COM интерфейсов из Атлантиса. Править этот файл запрещается ---
//--- так как это может привести к неработоспособности системы ---
//-------------------------------------------------------------------
#ifndef __atlcom__
#define __atlcom__
#Component ""
#include IDynamicCast.vih
//--- Forwards declarations --------------
ObjInterface comIUnknown; forward;
ObjInterface comIDispatch; forward;
ObjInterface comIEnumVARIANT; forward;
ObjInterface comIFont; forward;
ObjInterface comFont; forward;
ObjInterface comIPicture; forward;
ObjInterface comPicture; forward;
ObjInterface comFontEvents; forward;
//--- Types definition ------------------
type HRESULT // #docl Результат работы функции. </brief>
= longint;
type GUID // #docl Глобальный Уникальный Идентификатор. </brief> <br> В Com-модели - основной идентификатор интерфейса.
= record
Data1 : longint;
Data2 : word;
Data3 : word;
Data4 : comp;
end;
type DISPPARAMS // #docl В COM-модели используется IDispatch::Invoke для хранения аргументов, передаваемых в метод или свойство. </brief>
= record
rgvarg : pointer; // VARIANT*
rgdispidNamedArgs : pointer; // longint*
cArgs : longint;
cNamedArgs : longint;
end;
type EXCEPINFO // #docl Содержит информацию об исключении работы метода COM-модели IDispatch::Invoke. </brief>
= record
wCode : word;
wReserved : word;
bstrSource : string;
bstrDescription : string;
bstrHelpFile : string;
dwHelpContext : longint;
pvReserved : pointer; // void*
pfnDeferredFillIn : pointer; // void*
scode : HRESULT;
end;
type OLE_TRISTATE // #docl True -1, False 0, UseDefault -2. </brief>
= longint;
const
Unchecked = -1;
Checked = 0;
Gray = 1;
end;
type LoadPictureConstants // #docl Документация отсутствует. </brief>
= longint;
const
Default = -1;
Monochrome = 0;
VgaColor = 1;
Color = 2;
end;
type OLE_COLOR // #docl Дополнительная информация отсутствует. </brief>
= longint;
type OLE_XPOS_PIXELS // #docl Положение по горизонтали в пикселях. </brief>
= longint;
type OLE_YPOS_PIXELS // #docl Положение по вертикали в пикселях. </brief>
= longint;
type OLE_XSIZE_PIXELS // #docl Размер по горизонтали в пикселях. </brief>
= longint;
type OLE_YSIZE_PIXELS // #docl Размер по вертикали в пикселях. </brief>
= longint;
type OLE_XPOS_HIMETRIC // #docl Векторное положение по горизонтали. </brief>
= longint;
type OLE_YPOS_HIMETRIC // #docl Векторное положение по вертикали. </brief>
= longint;
type OLE_XSIZE_HIMETRIC // #docl Векторный размер по горизонтали. </brief>
= longint;
type OLE_YSIZE_HIMETRIC // #docl Векторный размер по вертикали. </brief>
= longint;
type OLE_XPOS_CONTAINER // #docl Дополнительная информация отсутствует. </brief>
= single;
type OLE_YPOS_CONTAINER // #docl Дополнительная информация отсутствует. </brief>
= single;
type OLE_XSIZE_CONTAINER// #docl Дополнительная информация отсутствует. </brief>
= single;
type OLE_YSIZE_CONTAINER// #docl Дополнительная информация отсутствует. </brief>
= single;
type OLE_HANDLE // #docl Handle объекта. </brief>
= longint;
type OLE_OPTEXCLUSIVE // #docl Эксклюзивная работа с объектом. </brief>
= boolean;
type OLE_CANCELBOOL // #docl Дополнительная информация отсутствует. </brief>
= boolean;
type OLE_ENABLEDEFAULTBOOL // #docl Дополнительная информация отсутствует. </brief>
= boolean;
type FONTNAME // #docl Имя шрифта. </brief>
= string;
type CURRENCY // #docl Единица измерения. </brief>
= comp;
type FONTSIZE // #docl Размер шрифта. </brief>
= CURRENCY;
type FONTBOLD // #docl Признак жирного шрифта. </brief>
= boolean;
type FONTITALIC // #docl Признак курсивного шрифта. </brief>
= boolean;
type FONTUNDERSCORE // #docl Признак подчеркнутого шрифта. </brief>
= boolean;
type FONTSTRIKETHROUGH // #docl Признак перечеркнутого шрифта. </brief>
= boolean;
ObjInterface IFontDisp; forward;
ObjInterface IPictureDisp; forward;
ObjInterface IFontEventsDisp; forward;
//--- Object Interfaces ------------------
/*============================================================================================================*/
ObjInterface comIUnknown;
// #docl Базовый интерфейс IUnknown. </brief> <br> Предоставляет доступ к базовым функциям наследников интерфейса.
function OpenInWindow // #docl Активизация объекта в окне. </brief> <br> Используется автоматически формируемый заголовок (например, 'Excel - Document1'). При закрытии окна объект получает фокус.
: Boolean; // #docl Возвращает true в случае успешного завершения. </brief>
property COMOptions // #docl Получить флаги. </brief>
: LongInt Read Write; // #docl Возвращает текущие значения флагов. </brief>
property COMHandle // #docl Получить handle объекта. </brief>
: LongInt Read; // #docl Возвращает handle объекта. </brief>
property COMDispatch // #docl Возвращает handle интерфейса IDistapch. </brief>
: LongInt Read; // #docl Handle интерфейса IDistapch. </brief>
end;
VipInterface vcomIUnknown implements comIUnknown, IDynamicCast licensed(free);
// #docl Интерфейс, реализующий comIUnknown. </brief> Служебный объект, создавать запрещается !!!
public:
constructor CreateQI// #docl Создает экземпляр интерфейса. </brief>
( iComHandle // #docl Код экземпляра. </brief>
: longint; flags // #docl Свойства экземпляра. </brief>
: word );
destructor Done // #docl Выполняет работу по завершению работы интерфейса. </brief>
;
end;
/*============================================================================================================*/
ObjInterface comIDispatch( comIUnknown );
// #docl Интерфейс IDispatch. </brief>
end;
VipInterface vcomIDispatch( vcomIUnknown ) implements comIDispatch;
// #docl Интерфейс, реализующий comIDispatch. </brief> Служебный объект, создавать запрещается !!!
/*============================================================================================================*/
ObjInterface comIEnumVARIANT( comIUnknown );
// #docl Интерфейс IEnumVARIANT. </brief>
end;
VipInterface vcomIEnumVARIANT( vcomIUnknown ) implements comIEnumVARIANT;
// #docl Интерфейс, реализующий comIEnumVARIANT. </brief> Служебный объект, создавать запрещается !!!
/*============================================================================================================*/
ObjInterface comIFont( comIUnknown );
// #docl Font Object. </brief>
end;
VipInterface vcomIFont( vcomIUnknown ) implements comIFont;
// #docl Интерфейс, реализующий comIFont. </brief> Служебный объект, создавать запрещается !!!
/*============================================================================================================*/
ObjInterface comFont( comIDispatch );
// #docl Интерфейс comFont. </brief>
end;
VipInterface vcomFont( vcomIDispatch ) implements comFont;
// #docl Интерфейс, реализующий comFont. </brief> Служебный объект, создавать запрещается !!!
/*============================================================================================================*/
ObjInterface comIPicture( comIUnknown );
// #docl Picture Object. </brief>
end;
VipInterface vcomIPicture( vcomIUnknown ) implements comIPicture;
// #docl Интерфейс, реализующий comIPicture. </brief> Служебный объект, создавать запрещается !!!
/*============================================================================================================*/
ObjInterface comPicture( comIDispatch );
// #docl Интерфейс comFont. </brief>
end;
VipInterface vcomPicture( vcomIDispatch ) implements comPicture;
// #docl Интерфейс, реализующий comPicture. </brief> Служебный объект, создавать запрещается !!!
/*============================================================================================================*/
ObjInterface comFontEvents( comIDispatch );
// #docl Event interface for the Font object </brief>
end;
VipInterface vcomFontEvents( vcomIDispatch ) implements comFontEvents;
// #docl Интерфейс, реализующий comFontEvents. </brief> Служебный объект, создавать запрещается !!!
/*============================================================================================================*/
ObjInterface IFontDisp( comFont );
// #docl Display inderface for the Font interface. </brief>
end;
VipInterface vIFontDisp( vcomFont ) implements IFontDisp;
// #docl Интерфейс, реализующий IFontDisp. </brief> Служебный объект, создавать запрещается !!!
/*============================================================================================================*/
ObjInterface IPictureDisp( comPicture );
// #docl Интерфейс IPictureDisp. </brief>
end;
VipInterface vIPictureDisp( vcomPicture ) implements IPictureDisp;
// #docl Интерфейс, реализующий IPictureDisp. </brief> Служебный объект, создавать запрещается !!!
/*============================================================================================================*/
ObjInterface IFontEventsDisp( comFontEvents );
// #docl Интерфейс IFontEventsDisp. </brief>
end;
VipInterface vIFontEventsDisp( vcomFontEvents ) implements IFontEventsDisp;
// #docl Интерфейс, реализующий IFontEventsDisp. </brief> Служебный объект, создавать запрещается !!!
/*============================================================================================================*/
#endif
Re: Галактика vs DIRECTUM
Добавлено: 05 июн 2013, 13:32
savov
Спасибо, edward_K!
Re: Галактика vs DIRECTUM
Добавлено: 05 июн 2013, 14:42
savov
А рано я радовался!
Требуется теперь IDynamicCast.vih. Пробую закомментить, не получается, исходник начинает требовать объявленный в vih фейс.
Что это за вихи вообще? Атлантис?
Re: Галактика vs DIRECTUM
Добавлено: 05 июн 2013, 15:27
edward_K
он самый
Код: Выделить всё
#ifndef _IDynamicCast_vih_
#define _IDynamicCast_vih_
#Component ""
/*
Интерфейс : IDynamicCast
Предназначение : Для динамического приведения типа.
Разработал : Романов М.В.
*/
ObjInterface IDynamicCast;
// #docl Системный предопределенный интерфейс динамического приведения типа. </brief> <br> Динамическое приведение реализуется через вызов функции QueryInterface данного интерфейса.
function QueryInterface // #docl Динамическое приведение. </brief> <br> Происходит при попытке приведения ссылки к неимплементированному через implements Obj-интерфейсу.
(strObjName // #docl имя OBJ-интерфейса </brief> <br> к которому пытаемся приводиться (требуемая функциональность).
: String) : ObjRef; // #docl Возвращает ссылку на obj-интерфейс </brief> <br> которому делегируется выполнение или NullRef, если приведение невозможно.
End;
#endif
Re: Галактика vs DIRECTUM
Добавлено: 05 июн 2013, 17:51
sth73
Все эти вихи есть в дистрибутиве випера по пути Viper\bin\5.х.х.х\Source\SysObjIfc
Re: Галактика vs DIRECTUM
Добавлено: 14 дек 2016, 11:23
Алексей
Тоже озадачился интеграцией пары справочников. Ссылки из шапки темы мёртвые... Где можно подробнее почитать о связке через COM объекты директума?