Promotic

ReadFromWeb - metoda obiektu PmaDataTable

Opis:
Odczyt danych z Web serwera w formacie XML do tego obiektu.
Składnia:
Boolean ReadFromWeb(String URL, String sParam)
Parametry:
URL(String) Adres URL danych Web serwera, gdzie znajdują się dane XML. Aplikacja PROMOTIC w funkcji Web serwera takie dane zazwyczaj oferuje na ścieżce (patrz karta "PmaDataTable > Web serwer"):
http://NazwaKomputera:Port/IdElementu/data.xml?fmt=purevalue

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;".
Jeżeli nie jest konieczny żaden parametr, wtedy można wprowadzić pusty łańcuch "".
user - Nazwa użytkownika do uwierzytelnienia. Patrz uprawnienie "WebRead" na serwerze.
Jeżeli nie jest ustawione oraz jest wymagane uwierzytelnienie, wtedy zostanie wywołane zdarzenie onEndOfTransfer z błędem pEvent.Error=62.
psw - Hasło użytkownika do uwierzytelnienia.
Parametr ten jest ignorowany, jeżeli nie jest określony parametr user.
Wartość zwrotna:
true - Metoda pomyślnie zaszeregowała wymóg odczytu danych z serwera. Po transmisji danych zostanie wywołane zdarzenie onEndOfTransfer.
false - Metoda nie zaszeregowała wymóg odczytu danych. Prawdopodobnie jeszcze nie został zakończony poprzedni wymóg wysłania/odczytu danych tego obiektu. Zdarzenie onEndOfTransfer nie zostanie wywołane.
Notatka:
Metoda ta nie działa w PmFree.

Przez wywołanie metody ReadFromWeb nad obiektem obiekt ten staje się Web klientem, który odczytuje dane z komponentu Web serwera - w tym przypadku z innego lecz zgodnie ustawionego obiektu PmaDataTable w innej aplikacji na tym samym lub na 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. Podczas transmisji danych (tzn. w czasie po wołaniu metody ReadFromWeb i przed tym zanim zostanie wywołane zdarzenie onEndOfTransfer) nad obiektem nie można ponownie wywołać metodę ReadFromWeb ani metodę WriteToWeb - wtedy metoda zwraca wartość false. Przy pomocy właściwości WebClientIsReady można stwierdzić, czy obiekt jest przygotowany do kolejnej transmisji.

Klient nie może zmienić swojej ilości danych przy pomocy metody ReadFromWeb - na przykład tak, że klient odczytałby więcej danych, niż jest ustawione. Jeżeli istnieje taki wymóg, wtedy takiej zmiany musi dokonać najpierw sam klient - patrz opis w rozdziale Współdzielenie danych XML.

Kolumny "Tylko do odczytu" (ReadOnly): Każda komórka jest na początku pusta. Pustą komórką jest również komórka z wartością 0 lub pustym łańcuchem "". Do takiej komórki można wpisać nową wartość. Po zapisie niepustej niezerowej wartości w kolumnie "Tylko do odczytu" dojdzie do "zamknięcia komórki". "Zamknięta komórka" stanie się stałą, bez możliwości zapisu. Do pozostałych "niezamkniętych" komórek można nadal zapisywać. W przypadku metod, które umożliwiają zapis do większej ilości komórek równocześnie, zostanie wykonany zapis tylko do "niezamkniętych komórek", zawartość "zamkniętych komórek" pozostanie bez zmian.
Przykład:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oDataTable = pMe.Pm("/DataTable");
if (oDataTable.WebClientIsReady)
{
oDataTable.ReadFromWeb("http://NazwaKomputera:Port/IdElementu/data.xml?fmt=purevalue", "user:oper;psw:ABCD;");
}
else
{
Pm.Debug("Web klient PARAM is not ready (is still active)");
}
© MICROSYS, spol. s r.o.