Promotic
WikipediaLinkedInYoutubeTwitterFacebook

WriteToWeb - metoda obiektu PmData

Opis:
Wysłanie wartości zmiennych (patrz zakładka "Dane") tego obiektu do PROMOTIC Web serwera w formacie XML.
Składnia:
WriteToWeb(URL As String, sParam As String) As Boolean
Wołanie:
oData.WriteToWeb "http://NazwaKomputera/IdElementu/data.xml", sParam
Parametry:
URL(String)

Adres URL danych Web serwera, gdzie mają zostać wysłane dane XML. Aplikacja PROMOTIC jako Web serwer dane takie oferuje na ścieżce (patrz zakładka PmData > Web serwer):

http://NazwaKomputera:Port/IdElementu/data.xml

Uwaga! Początek adresu ("http:") musi zostać wprowadzony! Jeżeli chcesz wprowadzić adres komputera lokalnego, wtedy jako NazwaKomputera można użyć słowao localhost. Nie jest konieczne określenie Port, jeżeli Web serwer działa pod standardowym portem 80.

Komunikacja działa również z zabezpieczonym WEB serwerem pod adresem https://....

sParam(String) Dodatkowe parametry transmisji. Jest to tekst w formie na przykład: "fmt:purevalue;user:NAME1;psw:PASSWORD1;".
fmt (obowiązkowe) - Nazwany format wysyłanych danych XML.
purevalue - Skrócony format tekstowy zawierający tylko wartości oddzielone średnikiem. Taki format jest przeznaczony do wysyłania wartości wszystkich zmiennych.
full - Rozszerzony tekstowy format XML zawierający wartości oraz nazwy zmiennych. Ten format jest przeznaczony do wysyłania wartości wybranych zmiennych (patrz parametr vars).
user - Nazwa użytkownika do autentyzacji. Patrz uprawnienie WebWrite po stronie serwera. Jeżeli nie jest ustawione i jest wymagane uwierzytelnienie, wtedy zdarzenie onEndOfTransfer zostanie wywołane z błędem pEvent.Error=40.
psw - Hasło użytkownika do autentyzacji. Ten parametr jest ignorowany, jeżeli nie jest określony parametr user.
vars - Lista nazw zmiennych, które mają być wysłane. Ten parametr można wpisać tylko jeżeli parametr fmt ma watrość full.
Wartość zwrotna:
true - Metoda pomyślnie zaszeregowała wymóg zapisu danych do serwera. Po transmisji zostanie wywołane zdarzenie onEndOfTransfer.
false - Metoda nie zaszeregowała wymóg zapisu danych. Prawdopodobnie nie została zakończona poprzednia trasnmisja zapisu/odczytu danych tego obiektu. Zdarzenie onEndOfTransfer nie zostanie wywołane.
Notatka:

Metoda ta nie działa w PmFree.

 
Przez to, że nad obiektem zostanie wywołana meteoda WriteToWeb, obiekt ten jest uważany za Web klienta, który zapisuje do komponentu Web serwera, w tym przypadku do innego lecz tak samo ustawionego obiektu PmData w innej aplikacji na tym samym lub innym komputerze.

Metoda tylko zainicjuje transmisję danych, lecz nie jest zapewnione, że po skończeniu tej metody dane zostaną już przeniesione. Koniec transmisji danych jest oznajmiony przez zdarzenie onEndOfTransfer. W czasie transmisji danych (tzn. w czasie po wywołaniu metody WriteToWeb a jednocześnie przed wywołaniem zdarzenia onEndOfTransfer) nie można nad obiektem ponownie wywołać metodę WriteToWeb ani metodę ReadFromWeb - w takim przypadku metoda zwraca wartość false. Przy pomocy właściwości WebClientIsReady można stwierdzić, czy obiekt jest gotowy do następnej transmisji.

 
Aż do wersji Pm8.2.7 metoda posiadała o dwa parametry więcej a 2. parametr "sParam" miał inne znaczenie (2. parametr był fmt, 3. parametr był user i 4. parametr był psw). Na przykład

oData.WriteToWeb "http://NazwaKomputera/IdElementu/data.xml", "purevalue", "User", "Password"

Taki sposób wołania jest już przestarzały (nawet jeżeli nadal działa).

Przykład1:
Wysłanie wartości wszystkich zmiennych
If oData.WebClientIsReady Then
  oData.WriteToWeb "http://localhost/temperatures/data.xml", "fmt:purevalue;user:oper;psw:abcd;"
Else
  ' Web klient is not ready (is still active)
End If
Przykład2:
Wysłanie wartości tylko wybranych zmiennych temp1,v3,press
If oData.WebClientIsReady Then
  oData.WriteToWeb "http://localhost/boiler/data.xml", "fmt:full;vars:temp1,v3,press;user:oper;psw:abcd;"
Else
  ' Web klient is not ready (is still active)
End If
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice