Получить файл

Автор rmuhamedgaliev, 13.10.14, 17:04:03

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

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

rmuhamedgaliev

Иммется XML выхлоп из PLM

<?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="" />


Согласно документации я могу получить доступ к файлам при помощи метода GetInfoAboutVersion.

Dispatch.call(loodsman, "GetInfoAboutVersion", "Папка", "{3FDAC10D-5361-4C32-B79E-D391DCB3AE98}", "0", 2932, 7, 1, "error").toString()

А в итоге я имею:

<?xml version="1.0" encoding="UTF-16"?>
<ROOT>
<fieldset>
<field Id="c0" Name="_ID_VARIANT" DataType="int"/>
</fieldset>
<rowset>
</rowset>
</ROOT>

<?xml version="1.0" encoding="UTF-16"?>
<ROOT>
<fieldset>
<field Id="c0" Name="_ID_VARIANT" DataType="int"/>
</fieldset>
<rowset>
</rowset>
</ROOT>


А хочу видеть что-то типа как во вложении.

rmuhamedgaliev

Мне просто нужно получить структуру проектов и извлечь из них XPS файлы.

z-arthur

К сожалению не так просто. У вас на скриншоте выделен не сам файл, а объект ЛОЦМАН.
Чтобы дойти до него из папки "{3FDAC10D-5361-4C32-B79E-D391DCB3AE98}", нужно рекурсивно вызывать API функцию GetLinkedFast для каждого уровня дерева. Эта функция не получает все дерево за раз.
И только для документа "{00000C39}..." вызывать функцию GetInfoAboutVersion
+ Благодарностей: 1

rmuhamedgaliev

Ok.... А что такое "Тип связи" ?

Variant GetLinkedFast(

long inIdVersion,        // идентификатор версии

BSTR stLinkType,        // тип связи

WordBool boInverse,        // направление

Variant inReturnCode,        // код возврата

Variant stErrorMessage,        // сообщение об ошибке

);



z-arthur

Список типов связей можно посмотреть в Конфигураторе. В ЛОЦМАН ПГС только один тип связи "Состоит из..."
+ Благодарностей: 1

rmuhamedgaliev

А можно пример получения дерева ? Пожалуйста? Хоть на чем то?

Chaa

У вас ПГС, в нем свои особенности.

Почитайте приложенный к сообщению файл
http://forum.ascon.ru/index.php/topic,24126.msg173010.html#msg173010

Еще один момент. В последних двух параметрах все методы СП возвращают код и описание ошибки. Их нужно проверять. Возможно, чтобы передать в Dispatch.call параметры по ссылке нужно что-то дополнительно делать.

int ReturnCode = 0;
String ErrorMessage = "";
Dispatch.call(loodsman, "GetInfoAboutVersion", "Папка", "{3FDAC10D-5361-4C32-B79E-D391DCB3AE98}", "", 2932, 7, ReturnCode, ErrorMessage);
if (ReturnCode != 0) {
    ...
}


И у папки файлов не будет, файлы могут быть только у документа.
+ Благодарностей: 1