Promotic

Współdzielenie danych XML

Współdzielenie danych XML jest założone na architekturze Klient-Server, tzn. tylko jedna aplikacja (Web serwer) posiada dane i jedna lub większa ilość aplikacji (Web klienci) te dane odczytują lub zapisują.
aplikacja PROMOTIC potrafi być jak Web serwerem tak i Web klientem danych XML.

PROMOTIC Web serwer danych XML wytwarza się przy pomocy obiektu PmaData (oraz jego karty "Web serwer") lub przy pomocy obiektu PmaDataTable (oraz jego karty "Web serwer"). Obiekt PmaData/PmaDataTable w tym przypadku przedstawia Web komponent. W danej aplikacji jeszcze jest konieczne znajdować się obiekt PmaWeb, który wszystkie Web komponenty aplikacji oferuje jako jeden Web serwer, patrz Podsumowanie technologii Web w systemie PROMOTIC.
 
PROMOTIC Web klient danych XML wytwarza się również przy pomocy obiektu PmaData/PmaDataTable i jego metod ReadFromWeb oraz WriteToWeb. Jeżeli aplikacja ma być tylko Web klientem, wtedy obiekt PmaWeb nie musi znajdować się w aplikacji.
Takim sposobem mogą dwie aplikacje PROMOTIC w prosty sposób wymieniać dane. Obiekty PmaData muszą w obu (lub większej ilości) aplikacjach zawierać takie same zmienne, zdefiniowane w karcie "Dane".
Przykład aplikacji patrz Przykład komunikacji przy pomocy XML.

Obiekt PmaDataTable może dynamicznie zmieniać ilość danych w nim zawartych przy pomocy metod InsertRow, RemoveRow, InsertCol lub RemoveCol. W transmisji XML jednak z powodów bezpieczeństwa nie można automatycznie zmieniać ilość danych! Jeżeli jest konieczne na przykład w aplikacji klienckiej zmienić ilość danych tak, żeby była taka sama jak na serwerze, wtedy jest najpierw konieczne stwierdzić ilość wierszy na serwerze (np. stwierdzeniem XML przez obiekt PmaData), następnie wykonać zmianę przy pomocy wyżej wymienionych metod i dopiero potem wywołać metodę ReadFromWeb.

Komunikacja XML wspiera pomiędzy obiektami PmaData transmisję hierarchicznym sposobem. Pod tym określeniem mamy na myśli to, że w obiekcie PmaData nie muszą się znajdować wyłącznie proste zmienne (jakimi są Integer, Single, itd.) lecz na tej pozycji może być również odniesienie do danych innego obiektu PmaData. Zważmy przykład, gdzie 1. pozycja obiektu /Data/DataA odnosi się do danych obiektu /Data/DataB (obiekt DataA i DataB są typu PmaData). Wtedy 1. pozycja obiektu DataA musi być typu Object i ustawiona na przykład przez polecenie skryptowe:
JavaScriptVBScriptWybierz oraz skopiuj do schowka

pMe.Pm("/Data/DataA").Item(1) = pMe.Pm("/Data/DataB");

lub zamiast tego można na 1. pozycji wytworzyć powiązanie z danymi PP Właściwość Pma obiektu lub jego obiektu podrzędnego (Ini Przy inicjalizacji właściwości). W tym powiązaniu PP wypełnij ścieżkę do obiektu DataB lecz pozycję do wprowadzania właściwości pozostaw pustą. W ten sposób będzie 1. pozycja obiektu DataA połączona bezpośrednio z obiektem DataB.
Jeżeli serwer i klient będą mieć oby dwa te obiekty ustawione tak samo, wtedy można przy jednym przeniesieniem zawartości obiektu DataA przenieść także zawartość obiektu DataB. Taka koncepcja jest zalecana wtedy, jeżeli w aplikacji znajduje się kilka obiektów PmaData, lecz chcesz przenosić dane pomiędzy wszystkimi jednocześnie w jednej wiadomości.

Poza tym Web klientem może być również na przykład strona HTML przeglądana przy pomocy przeglądarki internetowej (Chrome, Firefox, Edge, InternetExplorer ...). W tym przypadku można zastosować w stronie HTML tag <xml>, który umożliwia odczyt danych XML z Web serwera. Można również wykorzystać dynamiczne strony HTML które potrafi odczytywać i zapisywać do danych.
© MICROSYS, spol. s r.o.