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

Материал из Фабиус wiki
Перейти к: навигация, поиск
м (Текст)
м
Строка 1: Строка 1:
 
[[RETURNTHELASTMESSAGE]] - это программа из справочника [[R266]]
 
[[RETURNTHELASTMESSAGE]] - это программа из справочника [[R266]]
 
  Вернуть последнее сообщение с сервера УТМ ( система ЕГАИС )
 
  Вернуть последнее сообщение с сервера УТМ ( система ЕГАИС )
RETURNTHELASTMESSAGE( host, port, type_of_message )
+
[[RETURNTHELASTMESSAGE]]( host, port, type_of_message )
 +
host - адрес
 +
port - порт
 +
type_of_message - тип сообщения, например, "ReplyRestsShop"
 
= Текст =
 
= Текст =
 
  parameters host, port, type_of_message
 
  parameters host, port, type_of_message

Версия 07:56, 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