RETURNTHELASTMESSAGE — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
м (Смотрите также)
Строка 42: Строка 42:
  
 
[[Функции Delphi]]
 
[[Функции Delphi]]
 +
 +
[[ЕГАИС]]
 +
 +
[[УТМ]]

Версия 07:57, 25 июня 2018

RETURNTHELASTMESSAGE - это программа из справочника R266

Вернуть последнее сообщение с сервера УТМ ( система ЕГАИС )

RETURNTHELASTMESSAGE( host, port, type_of_message )

host - адрес
port - порт
type_of_message - тип сообщения, например, "ReplyRestsShop"

Текст

parameters host, port, type_of_message
local sql, aa, path, doc, node, child_node_count, r609, max_num
path := NICE_PATH( EXPANDUNCFILENAME( temppath ) )
aa := IDHTTPGET( host + ':' + port + '/opt/out' )
WRITETXTFILE( { aa }, 'out.xml', path, true )
sql := [ DELETE From R609 ]
SIMPLESQL( sql, reflispath )
doc := XMLDOCUMENT( path + 'out.xml' )
node := XMLNODE( doc ) // узел
child_node_count := XMLNODEPROP( node, "ChildNodeCount" ) // количество узлов в XML
while child_node_count > 0
  DEC( child_node_count ) // проходим все узлы документа, начиная с максимального номера
  aa := XMLNODEPROP( XMLNODEPROP( node, "ChildNodes", child_node_count ), "NODEVALUE" )
  if at( type_of_message, aa ) > 0
    try
      r609 := OPENKLSF( 'R609' )
      ( r609 )->( DBAPPEND() )
      ( r609 )->KOD := val( RIGHT( aa, LEN( aa ) - RAT( '/', aa ) ) )
      ( r609 )->PNAME := aa
      ( r609 )->( REFRESH() )
    finally
      CLOSEKLSF( r609 )
    end
  endif
end
sql := [ Select MAX( KOD ) From R609 ]
max_num := SQLTOARR( sql,, reflispath )
sql := [ Select PNAME From R609 Where KOD = ] + max_num
aa := SQLTOARR( sql,, reflispath )
aa := RIGHT( aa, LEN( aa ) - at( 'http', aa ) - 6 )
result := IDHTTPGET( aa )

Смотрите также

Полезные функции

Функции Delphi

ЕГАИС

УТМ