Java & Loodsman API

Автор rmuhamedgaliev, 13.10.14, 14:22:46

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

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

rmuhamedgaliev

Здравствуйте уважаемые форумчане Есть задача получить список проектов у текущего пользователя и выгрузить XPS файл из этого проекта. Для решения задачи используется JACOB библиотека для соеднения по DCOM.

Вот мой код http://git.io/Yxut_w

Я никак не могу получить список проектов по этому пользователю хотя через ПЛМ я их вижу. 

Благодарю за ответы.

Chaa

GetProjectList возвращает набор данных в формате TClientDataSet из Delphi.
Попробуйте SetFormat("XML", ...), после чего наборы данных будут возвращаться в виде XML-текста.

P.S.
С клиентом лоцмана идет библиотека DataProvider.dll, в которой реализован COM-интерфейс IDataSet для работы с возвращаемым датасетом, но с этим нужно отдельно разбираться.
+ Благодарностей: 1

rmuhamedgaliev

Самое непонятное что вообще ничего не отдает через JAVA :(

Вот пример ответа

Версия сервер приложения: 20141231
Работа с личными пакетами: true
DB: 1
Это администратор: 1
Текущий пользователь: sa
База данных: loodsman,loodsman1,loodsman2
projects:

Текущая база данных: loodsman1

Список проектов текущей БД:

rmuhamedgaliev

Я ведь правильно понимаю, что если я настроил в безопасности пользователя. То он иммет доступ к проекту и должен выгребаться этим методом GetProjectListEx. Во вложении что вижу я.

z-arthur

ЦитироватьЯ ведь правильно понимаю, что если я настроил в безопасности пользователя. То он иммет доступ к проекту и должен выгребаться этим методом GetProjectListEx. Во вложении что вижу я.
Да, ЛОЦМАН Клиент использует те же самые API методы.

Chaa правильно подсказал. Для работы с другими языками, отличными от Delphi, нужно использовать DataProvider.dll. Но не могу подсказать, как работать с этой dll в Java.
+ Благодарностей: 1

rmuhamedgaliev

А кто может дать очень просто пример соединения с "loodsman" по socket соединению?

rmuhamedgaliev

Урра! Все решилось одной строчкой(как всегда вобщем...)
System.out.println("XML" + Dispatch.call(loodsman, "SetFormat", "xml", 1, "error"));

rmuhamedgaliev

Вот пример ответа

Цитировать<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <fieldset>
        <field Id="c0" Name="_ID_VERSION" DataType="int" />
        <field Id="c1" Name="_TYPE" DataType="string" />
        <field Id="c2" Name="_PRODUCT" DataType="string" />
        <field Id="c3" Name="_VERSION" DataType="string" />
        <field Id="c4" Name="_REVISION" DataType="int" />
        <field Id="c5" Name="_STATE" DataType="string" />
        <field Id="c6" Name="_DOCUMENT" DataType="int" />
        <field Id="c7" Name="_HAS_LINK" DataType="int" />
        <field Id="c8" Name="_LOCKED" DataType="int" />
        <field Id="c9" Name="_ACCESSLEVEL" DataType="int" />
        <field Id="c10" Name="_LABEL" DataType="int" />
        <field Id="c11" Name="_LABEL_NAME" DataType="string" />
    </fieldset>
    <rowset>
        <row c0="2932" c1="Папка" c2="{3FDAC10D-5361-4C32-B79E-D391DCB3AE98}" c3="" c4="0" c5="Существует" c6="0" c7="1" c8="0" c9="3" c10="-1" c11="" />
        <row c0="3146" c1="Папка" c2="MyProject" c3="" c4="0" c5="Существует" c6="0" c7="1" c8="1" c9="3" c10="-1" c11="" />
        <row c0="3147" c1="Папка контрагентов" c2="tes" c3="" c4="0" c5="Существует" c6="0" c7="1" c8="0" c9="3" c10="-1" c11="" />
        <row c0="2933" c1="Папка контрагентов" c2="Контрагенты" c3="" c4="0" c5="Существует" c6="0" c7="1" c8="0" c9="3" c10="-1" c11="" />
        <row c0="3048" c1="Папка системных объектов" c2="Разное" c3="" c4="0" c5="Существует" c6="0" c7="1" c8="0" c9="3" c10="-1" c11="" />
    </rowset>
</ROOT>