Promotic

WriteToWeb - metoda obiektu PmaData

Opis:
Wysłanie wartości zmiennych (patrz karta "Dane") tego obiektu do Web serwera w formacie XML.
Składnia:
Boolean WriteToWeb(String URL, String sParam)
Parametry:
URL(String)
Adres URL danych Web serwera, gdzie mają zostać wysłane dane XML. Aplikacja PROMOTIC jako Web serwer dane takie oferuje zazwyczaj na ścieżce (patrz karta "PmaData > 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 wprowadzić słowo 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.
xmlpurevq - Skrócony format tekstowy zawierający wartości i właściwości oddzielone średnikiem. Ten format jest odpowiedni do przesyłania wartości i właściwoś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.
user - Nazwa użytkownika do uwierzytelnienia. Patrz uprawnienie "WebWrite" na serwerze. Jeżeli nie jest ustawione oraz jest wymagane uwierzytelnienie, wtedy zostanie wywołane zdarzenie onEndOfTransfer z błędem pEvent.Error=40.
psw - Hasło użytkownika do uwierzytelnienia. Parametr ten jest ignorowany, jeżeli nie jest określony parametr user.
vars - Lista nazw zmiennych, które mają być wysłane. Parametr ten można wprowadzić tylko jeżeli parametr fmt posiada wartość "full".
Wartość zwrotna:
true - Metoda pomyślnie zaszeregowała żądanie zapisu danych do serwera. Po transmisji danych zostanie wywołane zdarzenie onEndOfTransfer.
false - Metoda nie zaszeregowała żądanie 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 metoda 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 PmaData 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 wołaniu metody WriteToWeb a jednocześnie przed tym zanim zostanie wywołane zdarzenie 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 oraz 4. parametr był psw). Na przykład
oData.WriteToWeb "http://NazwaKomputera/IdElementu/data.xml", "purevalue", "User", "Password"
Taki sposób wywołania jest już przestarzały (nawet jeżeli działa).
Przykład1:
Wysłanie wartości wszystkich zmiennych
JavaScriptVBScriptWybierz oraz skopiuj do schowka

if (oData.WebClientIsReady)
{
oData.WriteToWeb("http://localhost/temperatures/data.xml", "fmt:purevalue;user:oper;psw:abcd;");
}
else
{
Pm.Debug("Web klient is not ready (is still active)");
}
Przykład2:
Wysłanie wartości oraz jakości wszystkich zmiennych
JavaScriptVBScriptWybierz oraz skopiuj do schowka

if (oData.WebClientIsReady)
{
oData.WriteToWeb("http://localhost/temperatures/data.xml", "fmt:xmlpurevq;user:oper;psw:abcd;");
}
else
{
Pm.Debug("Web klient is not ready (is still active)");
}
Przykład3:
Wysłanie wartości tylko wybranych zmiennych temp1,v3,press
JavaScriptVBScriptWybierz oraz skopiuj do schowka

if (oData.WebClientIsReady)
{
oData.WriteToWeb("http://localhost/boiler/data.xml", "fmt:full;vars:temp1,v3,press;user:oper;psw:abcd;");
}
else
{
Pm.Debug("Web klient is not ready (is still active)");
}

Historia:
Pm9.00.18: Nowy format xmlpurevq do wysyłania wartości oraz jakości zmiennych
Pm8.02.14: Usunięty błąd: Podczas zapisu wartości tekstowej na koniec tekstu był dodawany znak 0.
Pm8.02.08: można wprowadzić, które zmienne mają być przesłane.
© MICROSYS, spol. s r.o.