API Лоцман

Автор lRedle, 21.11.25, 13:33:04

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

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

lRedle

Как можно получить полное дерево изделия в формате JSON из Лоцман?

teplinskiy

Цитата: lRedle от 21.11.25, 13:33:04получить полное дерево изделия в формате JSON
Приветствую.

Имеется такой способ:
JPG


Подойдёт?

lRedle

Пробуем выполнить вот такой код:
Dim inErrorCode, inErrorCode1, inErrorCode2, stErrorMessage, stErrorMessage1, stErrorMessage2 As VariantType
       Dim CurrentBase, ProjectlistString, loodsmantree, loodsmanobj As String
       Dim i, j As Integer
       Dim flagConnected As Boolean
       Loodsman = CreateObject("LoodsmanServerApplication.MainSystem", ServerName.Text)
       flagConnected = False
       CurrentBase = Loodsman.CurrentBase
       While CurrentBase = ""
           flagConnected = True
           Loodsman.ConnectToDBEx("LodsmanSP2_280524", "", "", inErrorCode, stErrorMessage)
           i = i + 1
           CurrentBase = Loodsman.CurrentBase
           If i > 20 Then
               flagConnected = False
               Exit While
           End If

       End While
       If Not flagConnected Then
           MsgBox("Не удалось подключиться к серверу. Попробуйте позднее", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical)
           Loodsman = Nothing
           Exit Sub
       End If
       Loodsman.SetFormat("xml", inErrorCode1, stErrorMessage1)
       ProjectlistString = Loodsman.GetProjectList(inErrorCode2, stErrorMessage2)

       loodsmanobj = Loodsman.GetAllLinkedObjects(152, 0, inErrorCode, stErrorMessage)
       loodsmantree = Loodsman.GetFullTree("249", 0, inErrorCode, stErrorMessage)
При этом   loodsmanobj  имеет такой вид:
<?xml version="1.0" encoding="utf-16"?>
<ROOT>
  <fieldset>
    <field Id="c0" Name="_ID_VERSION" DataType="int" />
    <field Id="c1" Name="_ID_TYPE" DataType="int" />
    <field Id="c2" Name="_ID_STATE" DataType="int" />
    <field Id="c3" Name="_PRODUCT" DataType="string" />
    <field Id="c4" Name="_VERSION" DataType="string" />
    <field Id="c5" Name="_ID_LOCK" DataType="int" />
    <field Id="c6" Name="_ACCESSLEVEL" DataType="int" />
    <field Id="c7" Name="_LABEL" DataType="int" />
    <field Id="c8" Name="_LABEL_NAME" DataType="string" />
    <field Id="c9" Name="_USED" DataType="int" />
    <field Id="c10" Name="_PARENT_ACCESS_DENIED" DataType="int" />
    <field Id="c11" Name="_PARENT_LOCK_DENIED" DataType="int" />
  </fieldset>
  <rowset>
    <row c0="152" c1="159" c2="42" c3="Изделия основного производства" c4="1" c5="" c6="3" c7="-1" c8="" c9="1" c10="0" c11="0" />
    <row c0="249" c1="221" c2="50" c3="Гайка 12.7Н.12Х18Н10Т ОСТ 26-2038-96" c4="1" c5="" c6="3" c7="-1" c8="" c9="0" c10="0" c11="0" />
    <row c0="250" c1="221" c2="50" c3="Гайка 10.7Н.12Х18Н10Т ОСТ 26-2038-96" c4="1" c5="" c6="3" c7="-1" c8="" c9="0" c10="0" c11="0" />
    <row c0="251" c1="221" c2="50" c3="Гайка М12.7Н.12Х18Н10Т ОСТ 26-2041-96" c4="1" c5="" c6="3" c7="-1" c8="" c9="1" c10="0" c11="0" />
    <row c0="346" c1="239" c2="47" c3="Теплообменник раствор асфальта-асфальт поз.Т-6/1,2" c4="1" c5="" c6="3" c7="-1" c8="" c9="0" c10="0" c11="0" />
    <row c0="348" c1="324" c2="47" c3="204756" c4="1" c5="" c6="3" c7="-1" c8="" c9="0" c10="0" c11="0" />
    <row c0="349" c1="218" c2="57" c3="Теплообменник раствор асфальта-асфальт поз.Т-6/1,2" c4="1" c5="" c6="3" c7="-1" c8="" c9="1" c10="0" c11="0" />
    <row c0="352" c1="239" c2="47" c3="Теплообменник раствор асфальта-асфальт поз.Т-6/1,2(1)" c4="1" c5="" c6="3" c7="-1" c8="" c9="0" c10="0" c11="0" />
    <row c0="353" c1="239" c2="47" c3="Теплообменник раствор асфальта-асфальт поз.Т-6/1,2(2)" c4="1" c5="" c6="3" c7="-1" c8="" c9="0" c10="0" c11="0" />
    <row c0="354" c1="239" c2="47" c3="Теплообменник раствор асфальта-асфальт поз.Т-6/1,2(3)" c4="1" c5="" c6="3" c7="-1" c8="" c9="0" c10="0" c11="0" />
    <row c0="355" c1="218" c2="57" c3="Трубный пучок" c4="1" c5="" c6="3" c7="-1" c8="" c9="1" c10="0" c11="0" />
Пробую отфильтровать както еще - бесполезно, только по коду
Пробую   loodsmantree = Loodsman.GetFullTree("249", 0, inErrorCode, stErrorMessage) выдает пустое значение
как использовать фильтр не только по коду, как получить полное дерево объекта?
Среда выполнения - Vb.net