<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум компьютерной помощи &mdash; LotusScript агент, обращающийся к веб-сервису.]]></title>
	<link rel="self" href="https://itpmr.ru/extern.php?action=feed&amp;tid=974&amp;type=atom" />
	<updated>2016-04-14T12:03:35Z</updated>
	<generator>PunBB</generator>
	<id>https://itpmr.ru/viewtopic.php?id=974</id>
		<entry>
			<title type="html"><![CDATA[Re: LotusScript агент, обращающийся к веб-сервису.]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124535#p124535" />
			<content type="html"><![CDATA[<p>Хотим послать с лотуса данные не на вебсервис, а как некий урл страничку в интернете.<br />Изначально проверяем, открывается ли страничка сайта в эксплорере.</p><p>Запрос из LotusScript к веб странице с помошью Msxml2.XMLHTTP&nbsp; - GET метод.</p><div class="codebox"><pre><code>Sub Click(Source As Button)
    
    Dim xml As String
    Dim xmlhttp As Variant
    Set xmlhttp = CreateObject(&quot;Msxml2.XMLHTTP&quot;)
    Set DOMDocument = CreateObject(&quot;MSXML2.DOMDocument&quot;)
    xml = |https://192.168./api/v1/execute_query?username=ebn@gos&amp;password=123&amp;pact_id=42&amp;query={&quot;FullName&quot;:&quot;Шериф&quot;}|
    Call xmlhttp.open(&quot;GET&quot;,xml, False,&quot;&quot;,&quot;&quot;)
    Call xmlhttp.send()
    readyState = xmlhttp.readyState
    getAllResponseHeaders = xmlhttp.getAllResponseHeaders()
    responseText = xmlhttp.responseText
    Set DOMDocument = xmlhttp.responseXML
    domtext =   DOMDocument.text
    Status =  xmlhttp.Status    &#039; 12029 для ошибки &quot;cannot connect&quot;.
End Sub</code></pre></div><p>POST метод.</p><div class="codebox"><pre><code>Sub Click(Source As Button)
    On Error Goto ErrH
    Dim xml As Variant
    Dim xmlhttp As Variant
    Set xmlhttp = CreateObject(&quot;Msxml2.XMLHTTP&quot;)
    &#039;Set DOMDocument = CreateObject(&quot;MSXML2.DOMDocument&quot;)
    
    Call xmlhttp.open(&quot;POST&quot;,&quot;https://192.168./api/v1/execute_query&quot;, False,&quot;&quot;,&quot;&quot;)
    Call xmlhttp.setRequestHeader (&quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded&quot;)
    Call xmlhttp.setRequestHeader (&quot;User-Agent&quot;, &quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)&quot;)
    
    xml =  |username=ebn@gos&amp;password=123&amp;pact_id=42&amp;query={&quot;FullName&quot;:&quot;Шер&quot;}|
    Call xmlhttp.send (xml)
    readyState = xmlhttp.readyState
    Status =  xmlhttp.Status
    If Status = 200 Then &#039; ответ веб сервера - всё ок
        getAllResponseHeaders = xmlhttp.getAllResponseHeaders()
        responseText = xmlhttp.responseText
        ok = Instr(responseText, &quot;Запрос получен успешно0&quot;)        
        If ok&gt;1 Then
            Msgbox responseText
        End If
    &#039;Set DOMDocument = xmlhttp.responseXML
    &#039;domtext =   DOMDocument.text
    End If
    Exit Sub
ErrH:
    Errmy$ = &quot;Ошибка: &quot; &amp; Error(Err) &amp; &quot; в строке &quot; &amp; Erl
End Sub</code></pre></div><p>Где<br />&quot;Content-Type&quot;, &quot;application/x-www-form-urlencoded&quot; - кодировка запроса<br />&quot;User-Agent&quot;, &quot;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)&quot;&nbsp; - юзер агент</p><p> readyState - Номер состояния запроса 0 - Unitialized 1 - Loading 2 - Loaded 3 - Interactive &nbsp; &nbsp; 4 - Complete<br />status -&nbsp; 200 - OK, 404 - Not Found</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2016-04-14T12:03:35Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124535#p124535</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: LotusScript агент, обращающийся к веб-сервису.]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124532#p124532" />
			<content type="html"><![CDATA[<p>Пример 3. Агент посылает вебсервису UNID документа, получает по нему поле документа - &quot;название&quot; / FULLNAME.</p><p>Web service consumers:<br /></p><div class="codebox"><pre><code>Class ULNAMEARRAY As XSD_ANYTYPE
    Public MAINMASSIV() As POLIAYURL
End Class

Class POLIAYURL As XSD_ANYTYPE
    Public FULLNAME As String
    Public SHORTNAME As String
.....
Class Yurclass As PortTypeBase
    
    Sub NEW
        Call Service.Initialize (&quot;UrnDefaultNamespaceYurclassService&quot;, _
        &quot;YurclassService.Domino&quot;, &quot;http://192.168:80/GSse/ArhJ.nsf/YurServiceGTKbyID?OpenWebService&quot;, _
        &quot;Yurclass&quot;)
        Call Service.SetCredentials(&quot;LOGIN&quot;, &quot;123123123&quot;)
    End Sub
    
    Function GETFK(FKOD As String, YURNAME As String, REGNUM As String, SERPASSP As String, _
    NUMPASSP As String, FIO As String, UNIDSALL As String, FPREDPREEM As Integer, FRESP As Integer) As ULNAMEARRAYLITE
        Set GETFK = Service.Invoke(&quot;GETFK&quot;, FKOD, YURNAME, REGNUM, SERPASSP, NUMPASSP, FIO, UNIDSALL, FPREDPREEM, FRESP)
    End Function

Function GETULBYID(ULUNID As String, ULUNIDSALL As String) As ULNAMEARRAY
        Set GETULBYID = Service.Invoke(&quot;GETULBYID&quot;, ULUNID, ULUNIDSALL)
    End Function</code></pre></div><p>Код агента:</p><div class="codebox"><pre><code>Option Public
Option Declare

Use &quot;GTK&quot;
Sub Initialize
    On Error GoTo er    
    Print &quot;GTK Initialize&quot;
    Dim session As New NotesSession, db As NotesDatabase
    dim arg As New XSD_String
    Dim otv As ULNAMEARRAY
    Dim objectclass As New Yurclass ()
    Dim Ulunid As String, Ulunidsall As String
 
    Ulunid=&quot;1017E32767EE3511C22579B80048B293&quot;
    Ulunidsall = &quot;&quot;    
    arg.Setvaluefromstring(Ulunid)
    arg.Setvaluefromstring(Ulunidsall)
    
    Set otv = objectclass.Getulbyid(Ulunid, Ulunidsall)
    Print otv.Mainmassiv(0).FULLNAME
    Print &quot;УРА - GTK  агент  отработал!&quot;
    Exit Sub
er:
    Print &quot;Произошла ошибка &quot; &amp; Error$ &amp; &quot; в строке &quot;&amp; CStr(Erl)    
End Sub</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2016-04-11T05:22:19Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124532#p124532</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: LotusScript агент, обращающийся к веб-сервису.]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124516#p124516" />
			<content type="html"><![CDATA[<p>Пример 2.&nbsp; Агент послвает два числа X1 и X2 на вебсервис, в ответ получает их сумму.</p><p>WSDL - web service consumers:</p><div class="codebox"><pre><code>%INCLUDE &quot;lsxsd.lss&quot;
Class LicInfo As PortTypeBase
    
    Sub NEW
        Call Service.Initialize (&quot;UrnDefaultNamespaceLicInfoService&quot;, _
        &quot;LicInfoService.Domino&quot;, &quot;http://ju....../licInfo?OpenWebService&quot;, &quot;LicInfo&quot;)
        
    End Sub
    
    Function SUM(X1 As Integer, X2 As Integer) As Integer
        Let SUM = Service.Invoke(&quot;SUM&quot;, X1, X2)
    End Function
    
End Class</code></pre></div><p>Код агента:</p><div class="codebox"><pre><code>Option Public
Option Declare
Use &quot;licenz&quot;

Sub Initialize
    On Error GoTo er
    Print &quot;агент LITC Initialize&quot;
    Dim session As New NotesSession, db As NotesDatabase
    
    Dim otvet As Integer
    Dim objectclass As New LicInfo ()
    Dim argument As New Xsd_integer
    
    Dim X1 As Integer, X2 As Integer 
    X1 = 1
    X2 = 2    
    argument.Setvaluefromstring(X1)
    argument.Setvaluefromstring(X2)

otvet =  objectclass.SUM(X1,X2) 
    Print &quot;ответ: &quot; &amp; CStr(otvet)
    Print &quot;LITC отработал&quot;
    Exit Sub    
er:
    Print &quot;Произошла ошибка &quot; &amp; Error$ &amp; &quot; в строке &quot;&amp; CStr(Erl)
    Exit Sub    
End Sub</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2016-03-30T07:55:03Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124516#p124516</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[LotusScript агент, обращающийся к веб-сервису.]]></title>
			<link rel="alternate" href="https://itpmr.ru/viewtopic.php?pid=124515#p124515" />
			<content type="html"><![CDATA[<p>Пример 1.</p><p>Делаем простейший агент, который обращается к вебсервису и получает какой-то ответ от него.<br />Вот адресс вебсервиса:<br />webservicex.net/stockquote.asmx?WSDL</p><p>В лотусе в клиенте не ниже 9 версии, создаем новый&nbsp; &quot;web service consumers&quot;, импортируем WSDL файл от существующего вебсервиса, вставив ссылку вебсервиса - пункт &quot;URL that points to a WSDL file&quot;.<br />Получаем такой сгенерированный лотусом код:</p><div class="codebox"><pre><code>%INCLUDE &quot;lsxsd.lss&quot;
Const n0 = &quot;http://_.webserviceX.NET/&quot;
Class StockQuoteSoap_n0 As PortTypeBase
    
    Sub NEW
        Call Service.Initialize (&quot;HttpWwwWebserviceXNETStockQuote&quot;, _
        &quot;StockQuote.StockQuoteSoap&quot;, &quot;http://_.webservicex.net/stockquote.asmx&quot;, _
        &quot;StockQuoteSoap_n0&quot;)
        
    End Sub
    
    Function GetQuote(symbol As XSD_STRING) As XSD_STRING
        Set GetQuote = Service.Invoke(&quot;GetQuote&quot;, symbol)
    End Function
    
End Class</code></pre></div><p>Далее создаем агент на LotusScript, который на любой запрос отвечает словом &quot;исключение / exceptoin&quot;.</p><div class="codebox"><pre><code>Option Public
Option Declare
Use &quot;web&quot;

Sub Initialize
    On Error GoTo er
    Print &quot;weebtest&quot;
    &#039;Dim ws As  NotesUIWorkspace
    Dim sq As New StockQuoteSoap_n0()
    Dim symbol As String
    symbol= &quot;JAVA&quot; &#039; любой текст - запрос в вебсервис
    Dim sh As New XSD_STRING()
    Call sh.setValueFromString(symbol)
    Set sh = sq.GetQuote(sh) &#039; GetQuote - вызываемая функция в вебсервисе
    Print  &quot;ответ вебсервиса: &quot; &amp; sh.getValueAsString()
    Print &quot;END weebtest&quot;
    Exit Sub    
er:
    Print &quot;Произошла ошибка &quot; &amp; Error$ &amp; &quot; в строке &quot;&amp; CStr(Erl)
    Exit Sub    
End Sub</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2016-03-30T06:30:02Z</updated>
			<id>https://itpmr.ru/viewtopic.php?pid=124515#p124515</id>
		</entry>
</feed>
