Получение интерфейса IPluginCall / INetPluginCall из WF на C#

Автор Bobua, 10.06.24, 16:40:47

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Bobua

Всем привет, есть ли способ получить интерфейс IPluginCall или INetPluginCall при вызове функции из WF?
Пытался сделать что-то подобное, меняя названия на разные
[DllExport("OpenFile", CallingConvention.StdCall)]
public static Variant OpenFile(Variant wfo, IntPtr versionData, IntPtr userData, IntPtr IPluginCall, IntPtr IPC)
{
    IPluginCall pc = (IPluginCall)Marshal.GetTypedObjectForIUnknown(IPluginCall, typeof(IPluginCall));
}

Но постоянно получаю null. Может есть другой способ?
Интерфейс мне необходим для преобразования в ILoodsmanApplication и получения уведомлений
А также для получения объекта через PluginCall.Selected.

Может есть способ получить данный интерфейс сам по себе, не выдергивая его из других интерфейсов?

Chaa

Цитата: Bobua от 10.06.24, 16:40:47при вызове функции из WF?
Я так понял имеется ввиду автооперация Workflow. Тогда вряд ли это возможно. Движение по процессу выполняется отдельной библиотекой WorkFlowBusinessLogic, не связанной с клиентским приложением.

Можно попробовать вызвать из автооперации CallLoodsmanPlugin. Там будет IPluginCall. IPluginCall.Selected и ILoodsmanApplication вряд ли там будет, но можно попробовать.

Можно использовать ExecPluginFunction, там на входе IWFBusinessLogic (описание в WorkFlowBusinessLogic.chm).

+ Благодарностей: 1

Bobua

Спасибо, попробовал через CallLoodsmanPlugin. Получилось достать интерфейс IPluginCall и даже PluginCall.Selected со всеми свойствами.
Однако в интерфейс ILoodsmanApplication или LooApplication преобразовать не получилось, возвращает null.

Может есть способ по подключению к клиенту? Пытался отыскать информацию по DataProvider.LoodsmanConnection, но также ничего не нашёл.

Chaa

Посмотрите LoodsmanClientApi.chm раздел "Разработка сервисов".

Или можно бизнес-процесс организовать по-другому.