Witamy w AFIN Web Service © AFIN, 2019 - świecie usług sieciowych AFIN.
v. Beta

Spis treści

Bardzo-bardzo szybki efekt, czyli na skróty (ćwiczenie na ok. 2 minuty). 1

Dlaczego powstały Usługi Sieciowe AFIN?. 1

Język dokumentu (English, etc), Regulamin. 1

Język dokumentu. 1

Regulamin. 1

Usługa Sieciowa – Wymiana danych pomiędzy aplikacjami klienckimi – przeglądarkami internetowymi, arkuszami kalkulacyjnymi (i innymi) – wyłącznie za pomocą URL-a –  putvalue.php, getvalue.php. 1

Przykłady proste usług „putvalue” i „getvalue”. 1

Wywołanie usługi „putvalue” i jej parametry. 1

Wywołanie usługi „getvalue” i jej parametry. 1

Użycie usług „putvalue” i „getvalue”. 1

Usługa Sieciowa – Czytanie dowolnego tekstu lub tablicy tekstów (ciągów znaków), lub całej strony html z podmienionymi tekstami (ciągami znaków) – getdatatext.php. 1

Przykłady proste usługi „getdatatext”. 1

Wywołanie usługi „getdatatext” i jej parametry. 1

Usługa Sieciowa – Czytanie i zapis z/do bazy danych MySQL– mysqlquery.php, mysqlexecute.php. 1

Przykłady proste usługi „mysqlquery”. 1

Wywołanie usługi „mysqlquery” i jej parametry. 1

Usługa „mysqlexecute” nie jest dostępna w wersji darmowej Usług Sieciowych AFIN. 1

 

Bardzo-bardzo szybki efekt, czyli na skróty (ćwiczenie na ok. 2 minuty)

1.       Pobierz plik http://afin.net/ws/samples/putgetvalue.zip . Rozpakuj go gdziekolwiek – są w nim dwa skoroszyty Excela – PUTVALUE.XLSX i GETVALUE.XLSX .
Testowe skoroszyty NIE ZAWIERAJĄ MAKR ANI ŻADNYCH ELEMENTÓW UKRYTYCH – Excel, przy otwieraniu, najpierw, wyświetli komunikat, że pliki pochodzą z lokalizacji internetowej, co jest oczywiste – potwierdź to ostrzeżenie. Jeżeli Excel wyświetli komunikat, że skoroszyt zawiera NIEZNANĄ funkcję WEBSERVICE oznacza to, że nie masz wersji Excela 2013 lub wyższej. Jeżeli wyświetli ostrzeżenie O WYŁĄCZENIU funkcji WEBSERVICE – zaakceptuj je – funkcja WEBSERVICE jest STANDARDOWĄ funkcją Excela od wersji „2013” wzwyż. Uwaga - funkcja ta nie jest dostępna w aplikacji Excel ani na komputerach firmy Apple, ani w aplikacjach webowych Excel na urządzeniach mobilnych – tam jednak również można przetestować tę funkcjonalność, po prostu wpisując pełny URL w pasek adresu przeglądarki internetowej. Jeżeli coś uporczywie idzie nieprawidłowo, skorzystaj z przykładu prostego funkcji „putvalue” i „getvalue” poniżej.

2.       Otwórz te pliki Excelem, ale – uwaga – możesz to zrobić na dowolnych komputerach świata, mogą to być różne, nawet bardzo oddalone fizycznie, komputery, w dowolnych sieciach, byle te komputery były podłączone do Internetu. Polecamy, oczywiście, działanie na dwóch różnych komputerach, ale, jeżeli chcesz zrobić szybki test, może to być jeden – Twój – komputer. Pliki otworzone? Jesteś gotowy?

3.       W skoroszycie putvalue.XLSX wpisz w żółte pole dowolną, TWOJĄ WARTOŚĆ liczbową (wymyśl jakąś, dowolną, liczbę) i naciśnij [ENTER] – zatwierdziłeś wartość, która jest parametrem funkcji WEBSERVICE(url) w komórce poniżej – ta komórka z funkcją powinna zmienić wartość na tekst „twoja_wartość (MyValue)”. W tym skoroszycie to wszystko. Jeżeli funkcja nie zmieniła wartości – oznacza to, że masz włączone „przeliczanie ręczne” – naciśnij więc skrót klawiszowy [Ctrl+Alt+F9].

4.       W skoroszycie GETVALUE.XLSX wartość w zielonym polu nie zmieni się automatycznie, naciśnij (naciskaj by odświeżyć) skrót klawiszowy [Ctrl+Alt+F9]. Funkcja powinna się odświeżyć i wyświetlić Twoją wartość. To wszystko, koniec testu.

5.       Połączyłeś dwa skoroszyty z zupełnie innych światów ze sobą. Prosto, szybko. Po co wysyłać wielomegabajtowe skoroszyty mejlem? Poczytaj dalej i, oczywiście, testuj do woli.

 

Dlaczego powstały Usługi Sieciowe AFIN?

 

Internet jest fajny, ale jakiś taki niedorobiony – zawsze daje nam ładnie opakowaną, ale zbyt przeładowaną, informację.
I to do przeglądarki. A my chcemy z aktualnej informacji internetowej korzystać np. w arkuszach kalkulacyjnych – dlatego właśnie stworzyliśmy Usługi Sieciowe AFIN (AFIN Web Service).
Chcemy z informacji internetowej korzystać wybiórczo, czyli brać tylko to, co chcemy i o co my zapytamy – tak, jak to się dzieje w architekturze „klient-serwer” w bazach danych.
„Chmura” nie jest rozwiązaniem samym w sobie – jest tylko rozwinięciem idei „paczki danych” (strony internetowej, skoroszytu, tabeli przy zapytaniu OLEDB, pliku tekstowego - tzw. pliku płaskiego), dowolnego innego pliku, czy też horrendalnie nieprawidłowego w sensie architektury „klient-serwer”, „obiektu połączenia danych”, znanego z Microsoft Excel Power Pivot, Power Query, itd.)
Ba, my chcemy informację internetową TWORZYĆ(!), czyli zapisywać NASZE WARTOŚCI tak, żeby przez Internet były natychmiast widoczne dla innych. Po to ludzie wymyślili i wdrażają „chmury”, po to miliony analityków w korporacjach i nie tylko przesyłają między sobą gigabajty arkuszy kalkulacyjnych. Czy muszą? Odpowiedź znajdziesz poniżej.

Wykorzystujemy tutaj prostą i naczelną zasadę, że tylko URL jest jawny i tylko owym URL-em się posługujemy w wymianie informacji. Bo URL-a czyta dowolna przeglądarka oraz – uwaga! – standardowa funkcja Excela od wersji 2013 o nazwie WEBSERVICE, funkcja Google Sheets o nazwie IMPORTDATA. Zapewne będą inne, kolejne – to trend bardzo rozwojowy.

(Funkcje dodatku AFinScript: GETDATATEXT, GETDATAXML, GETDATAJSON i inne robią to od lat i to również w starszych wersjach Excela, dostarczając dodatkowej funkcjonalności. Zapraszamy na http://afin.net/afinscript )

Próbujemy wszystko parametryzować, żeby odczyt był jak najbardziej zgodny z naszą potrzebą. Parametryzować standardowymi metodami arkusza kalkulacyjnego, czyli jak najprościej.
Nie stosujemy żadnych działań ukrytych poza wybiórczym tworzeniem logu zapytań w wersji darmowej Usług.

Serwis podlega ciągłym modyfikacjom, nie gwarantujemy stałości adresów URL ani nazw, czy też funkcjonalności usług. Docelowo usług będzie znacznie więcej.
Jeżeli podoba Ci się to, co widzisz, masz szanse kupić abonament na Usługi Sieciowe AFIN już teraz, w bardzo promocyjnej cenie. Skontaktuj się z nami.

Przy tworzeniu Usług Sieciowych AFIN my się nieźle bawimy, czego życzymy również Tobie.
http://ft.com

Język dokumentu (English, etc), Regulamin

 

Język dokumentu

W celu tłumaczenia na inne języki, skorzystaj z Google Translatora.
Witryna ta jest optymalizowana pod tłumaczenie automatyczne – używamy prostego języka. Gdyby coś było niejasne – prosimy o informację zwrotną.
Uwaga – po tłumaczeniu automatycznym, przykłady mogą nie działać poprawnie.

https://translate.google.com/translate?hl=pl&tab=TT&sl=pl&tl=en&u=http%3A%2F%2Fafin.net%2Fws%2F

Regulamin

Regulamin używania Usług Sieciowych AFIN w wersji darmowej jest prosty:
1. Usług Sieciowych AFIN używam na własną odpowiedzialność i bez żadnej gwarancji ich jakości i dostępności. Jest to wersja „Beta”.
2. Przyjmuję do wiadomości, że otrzymuję produkt bezpłatny, i, w związku z tym, czynnie(!) dzielę się opinią na jego temat i czynnie(!) wspieram rozwój tych usług.
3. Donacje mile widziane, konto: 11194010765163646500000000

 

 

Usługa Sieciowa – Wymiana danych pomiędzy aplikacjami klienckimi – przeglądarkami internetowymi, arkuszami kalkulacyjnymi (i innymi) – wyłącznie za pomocą URL-a –  putvalue.php, getvalue.php

 

Przykłady proste usług „putvalue” i „getvalue

1. (putvalue) http://afin.net/ws/putvalue.php?key=0123456789&atr=aaa&val=20
Wynik działania; wartość tekstowa „20 (aaa)”, czytaj: zapisano wartość „20” dla atrubutuaaa”, czyli od tej chwili usługa wie, że dla klienta „0123456789” wartość „aaa” wynosi 20.
Można stosować dowolną ilość dowolnych atrybutów, pisząc je jako jeden tekst. Można je rozdzielać jakimś wybranym znakiem, np. chcąc zapisać wartość 20 dla atrybutu „aaa”, dla momentu czasowego „20190310”, można to zrobić tak: http://afin.net/ws/putvalue.php?key=0123456789&atr=aaa|20190310&val=20 . Znak „|” jest zastosowany przykładowo. Nie należy stosować znaków, które powodują problem z jednoznacznym zapisem/odczytem URL-a, zapisem/odczytem pliku na dysku, separacją wartości liczbowych, itp. Można natomiast ułatwić sobie jednoznaczne traktowanie przekazywanych wartości atrybutów, stosując tzw. atrybuty nazwane, np. zapis typu „operator=operator1; data=20190310; dotyczy=sprzedaż;” itd. Atrybuty są traktowane jako ciąg znaków, więc ich kolejność ma znaczenie. Znaki specjalne, np. spacje czy średniki, też są znakami.

2. (getvalue) http://afin.net/ws/getvalue.php?key=0123456789&atr=aaa
Wynik działania: wartość tekstowa(!) „20”, czyli, jeżeli chcemy ją mieć np. w Excelu jako wartość liczbową, funkcję odczytującą trzeba dodatkowo zagnieździć - zamienić na wartość liczbową funkcją WARTOŚĆ().
Odczytanie powyższej wartości nie kasuje jej z serwera – można ją wielokrotnie odczytywać i ona na serwerze pozostaje do czasu ponownego jej nadpisania. Usługa, sama z siebie, nie dostarcza usługi archiwizacji w czasie. Można to jednak łatwo zrobić, podając jako atrybut nie samo „aaa”, tylko np. „aaa|20190310”, czyli odczyt tej wartości będzie możliwy tylko tak: http://afin.net/ws/getvalue.php?key=0123456789&atr=aaa|20190310

 

Wywołanie usługi „putvalue” i jej parametry

http://afin.net/ws/putvalue.php
key – klucz (wymagane), klucz testowy, darmowy = ”0123456789”
atr – ciąg tekstowy, zawierający atrybuty tekstowe (wymagane),
val – zapisywana wartość dla danego atrybutu (wymagane). Można to rozumieć jako dodanie wiersza w tabeli (wartości dla najprostszego przykładu powyżej)

Tabela (wirtualna – w celu lepszego zrozumienia funkcjonalności)

atr

val

aaa

20

 

Wpisanie po raz kolejny wartości dla identycznego atrybutu, spowoduje nadpisanie wiersza, nie dodając nowego wiersza – kolumna ‘atr’ jest jej kluczem głównym (unikatowym polem wyszukiwania).

 

Wywołanie usługi „getvalue” i jej parametry

http://afin.net/ws/getvalue.php
key – klucz (wymagane), klucz testowy, darmowy = ”0123456789”
atr – ciąg tekstowy, zawierający atrybuty tekstowe (wymagane),

Odczyt jest podobny do wykonania zapytania w języku SQL: SELECT [val] FROM [tabela] WHERE [atr]=’aaa’ .

UWAGA – nie ma możliwości użycia innych operatorów, niż operator prostego przyrównania wartości atrybutu.

 

Użycie usług „putvalue” i „getvalue

W dowolnej przeglądarce internetowej – poprzez zwykłe wpisanie URL-a.

W formułach Google Sheets, poprzez użycie standardowej funkcji IMPORTDATA(url) – należy uważać, żeby w wyniku działania funkcji nie pojawił się „,” (przecinek) albo tablulator, gdyż wtedy funkcja IMPORTDATA zapisze wynik w dwóch (lub więcej) kolumnach. Gdy nie będzie mogła tego zrobić – wyświetli błąd „REF”.

W programie Microsoft Excel w wersjach od „2013” wzwyż, poprzez użycie standardowej funkcji WEBSERVICE(url)

Formuły w arkuszach kalkulacyjnych można dalej zagnieżdżać lub dowolnie komplikować itd., zgodnie z zasadami użycia formuł w arkuszach kalkulacyjnych. Formuły takie można też DOWOLNIE PARAMETRYZOWAĆ, na zasadzie zwykłej konkatenacji (łączenia tekstów) w argumencie funkcji, w tym argumencie URL-a – poczytaj o tym w Pomocy Google Sheets, Pomocy Excela lub w dowolnym innym źródle informacji – jest to umiejętność powszechnie znana.

Można do tego celu wykorzystać również formularze webowe http://afin.net/ws/forms/put oraz http://afin.net/ws/forms/get

 

Usługa Sieciowa – Czytanie dowolnego tekstu lub tablicy tekstów (ciągów znaków), lub całej strony html z podmienionymi tekstami (ciągami znaków) – getdatatext.php

(Pomoc do REGEX – Regular Expressions: http://regex.pl )

 

Przykłady proste usługi „getdatatext

1. http://afin.net/ws/getdatatext.php?key=0123456789&url=http://afin.net/ws/samples/testfile1.txt&rgx=[A-Z]
- wybór tylko wielkich liter z tekstu http://afin.net/ws/samples/testfile1.txt

2. http://afin.net/ws/getdatatext.php?key=0123456789&url=http://afin.net/ws/samples/testfile1.txt&rpl1=[abc](:)X&rgx=[A-Z] – zamień małe litery a,b,c na wielką literę X, a następnie odczytaj wielkie litery

 

Wywołanie usługi „getdatatext” i jej parametry

http://afin.net/ws/getdatatext.php
key – klucz (wymagane), klucz testowy, darmowy = ”0123456789”
url – adres strony internetowej (wymagane)
rpl1 – ciąg REGEX do zamiany znaków PRZED ODCZYTEM (opcjonalnie)
rgx – ciąg REGEX do wyboru ciągów tekstowych, spełniających warunek, określony filtrem REGEX
rpl2 – ciąg REGEX do zamiany znaków PO ODCZYCIE (opcjonalnie)
hdr – nagłówek (opcjonalnie)
inx – jeśli zwracana jest tab+lica wartości, parametr inx określa numer pozycji z tej tablicy (opcjonalnie)

Można do tego celu wykorzystać również formularz webowy http://afin.net/ws/forms/getdatatext

 

Usługa Sieciowa – Czytanie i zapis z/do bazy danych MySQL– mysqlquery.php, mysqlexecute.php

 

Przykłady proste usługi „mysqlquery

1. http://afin.net/ws/mysqlquery.php?key=0123456789&srv=afin.vot.pl&uid=afin_Sales&pwd=afin&db=afin_Sales&sql=SELECT * FROM faktura

Oczywiście, adres strony (url) można modyfikować do woli, np.
2. http://afin.net/ws/mysqlquery.php?key=0123456789&srv=afin.vot.pl&uid=afin_Sales&pwd=afin&db=afin_Sales&sql=SELECT * FROM odbiorca WHERE miasto=’WARSZAWA’
3. http://afin.net/ws/mysqlquery.php?key=0123456789&srv=afin.vot.pl&uid=afin_Sales&pwd=afin&db=afin_Sales&sql=SELECT nazwa AS Customer, SUM(wart_net) AS Sales FROM faktura f GROUP BY Customer ORDER BY Sales DESC

 

Przykład jest testową bazy danych AFIN, zawiera dane handlowe w tabelach, wymienionych poniżej. Znaki „|” w nazwach są wstawione wyłącznie w celu uniknięcia automatycznego przetłumaczenia nazwy tabeli. Nazwy tabel i nazwy kolumn nie zawierają znaków „|”.
t|o|w|a|r” (product), „p|o|z|y|c|j|a” (sales record), „f|a|k|t|u|r|a” (invoice), „o|d|b|i|o|r|c|a” (customer), „r|e|g|i|o|n” (region), „z|a|p|l|a|t|a” (payment). Są one połączone sprzężeniami – standardowa relacyjna baza danych.
Lista sprzężeń:
t|o|w|a|r|.|i|n|d|e|k|s|_|t|o|w=p|o|z|y|c|j|a|.|i|n|d|e|k|s|_|t|o|w ,
p|o|z|y|c|j|a|.|n|r|_|f|a|k|t=f|a|k|t|u|r|a|.|n|r|_|f|a|k|t ,
f|a|k|t|u|r|a|.|n|a|z|w|a=o|d|b|i|o|r|c|a|.|n|a|z|w|a ,
o|d|b|i|o|r|c|a|.|r|e|g|i|o|n=r|e|g|i|o|n|.|r|e|g|i|o|n ,
f|a|k|t|u|r|a|.|n|r|_|f|a|k|t=z|a|p|l|a|t|a|.|n|r|_|f|a|k|t .

 

Wywołanie usługi „mysqlquery” i jej parametry

http://afin.net/ws/mysqlquery.php
key – klucz (wymagane), klucz testowy, darmowy = ”0123456789”,
srv – serwer bazy danych MySql, porty domyślne,
uid – nazwa użytkownika,
pwd – hasło,
db – baza danych,
sql – zapytanie SQL, zwracające wartość zwykłą (nie tablicę wartości) lub tablicę wartości

 

Usługa „mysqlexecute” nie jest dostępna w wersji darmowej Usług Sieciowych AFIN.