mojaSymfonia FORUM
https://forum.mix-soft.pl/

Otwarcie adresu www/pliku z poziomu AMBasica
https://forum.mix-soft.pl/viewtopic.php?f=15&t=5163
Strona 1 z 1

Autor:  szyszec [ 2013-09-19, 20:11 ]
Tytuł:  Otwarcie adresu www/pliku z poziomu AMBasica

Cześć,

przejrzałem już wiele tematów, lecz nie znalazłem odpowiedzi na swoje pytanie. Tworzę raport, który w Symfonii FK dodaje kilka rekordów (nie ma znaczenia, do której tabeli), sprawdza ich id, co działa bez problemu.

Następnie jednak chciałbym przesłać id wszystkich dodanych rekordów do swojego systemu, który działa na lokalnym serwerze (jest napisany w php). Moim zdaniem najłatwiejszym sposobem by było po prostu zawarcie tych numerów w linku, który chciałbym otworzyć z poziomu AMBasica (np. adres.loc/zapiszid.php?ids=1,2,3) - wtedy nawet nie muszę przjemować się otwieraniem tego pliku, wystarczy samo wywołanie adresu (aczkolwiek nie pogardziłbym możliwością odczytania zawartości).

Już wypróbowałem:

  1. Zwykłe Open - działa tylko z lokalnymi plikami
  2. Zgodnie z podpowiedzią w tym temacie (podobnie w tym) mogę generować jakiś plik XML i użyć metody load - wtedy mogę otworzyć jakikolwiek link, który zwraca XML. Z jednej strony nie jest mi potrzebny XML i jest to obejście problemu (a nie rozwiązanie), ale z drugiej mogę wtedy zwrócić jakąś wiadomość, np. potwierdzenie dodania lub błąd.
  3. Jeszcze bardziej zagmatwanie (zgodnie z sugestiami w tym temacie) - mogę zapisać do pliku wszystkie numery id, a potem użyć execute, aby uruchomił jakiś skrypt .bat. Nie jest to bynajmniej eleganckie...

Aktualnie skłaniam się ku rozwiązaniu numer 2, ale zastanawiałem się, czy nie istnieje jakiś prostszy sposób? Z góry dziękuję za wszelkie sugestie :)

Autor:  rafal [ 2013-09-19, 21:22 ]
Tytuł:  Re: Otwarcie adresu www/pliku z poziomu AMBasica

Proponuję wystawić funkcje SOAP w PHP i za pomocą obiektu MSSOAP.SoapClient30 wywoływać je. Jako parametr podajemy ID a zwracać mogą kod błędu.

Kod:
   dispatch oSoap = "MSSOAP.SoapClient30"
   oSOAP.ClientProperty("ServerHTTPRequest") = 1
   oSOAP.mssoapinit("http://www.nazwa_serwera.pl/soap/docAPI.php?wsdl")

err = oSoap.SendDocumentId(65536)
print err
err = oSoap.SendDocumentId(65537)
print err
err = oSoap.SendDocumentId(65538)
print err
err = oSoap.SendDocumentId(65539)
print err




A zwykłe URL można wywołać przez ShellExecute, ale to z kolei będzie nam otwierało domyślną przeglądarkę. Chyba, że zastosujemy obiekt
Kod:
dispatch ie = "InternetExplorer.Application"

i za jego pomocą będziesz wywoływał te URL'e

Autor:  szyszec [ 2013-09-20, 10:38 ]
Tytuł:  Re: Otwarcie adresu www/pliku z poziomu AMBasica

Dzięki za odpowiedź i sugestie, Rafał!

Nie jestem zwolennikiem SOAP-a i WSDL-a, więc na razie nie będę się tym bawił, ale jeśli kiedyś wypróbuję to na pewno dam znać jak działa.

Jako że najbardziej chodziło mi o prostotę, bardzo dziękuję za podpowiedź o InternetExplorer.Application - dla mnie to strzał w dziesiątkę. Dla zainteresowanych: dokumentacja i podstawowe użycie:
Kod:
dispatch ie = "InternetExplorer.Application"
ie.navigate("adres")


A jakie są możliwości jeśli chciałbym otworzyć powiedzmy plik tekstowy? (Ciekawi mnie czy jest jakiś prosty sposób, aby to osiągnąć)

Autor:  rafal [ 2013-09-20, 11:27 ]
Tytuł:  Re: Otwarcie adresu www/pliku z poziomu AMBasica

szyszec pisze:
Nie jestem zwolennikiem SOAP-a i WSDL-a, więc na razie nie będę się tym bawił, ale jeśli kiedyś wypróbuję to na pewno dam znać jak działa.


Nie musisz :) . Ja już to wypróbowałem i daję znać, że działa.

szyszec pisze:
A jakie są możliwości jeśli chciałbym otworzyć powiedzmy plik tekstowy? (Ciekawi mnie czy jest jakiś prosty sposób, aby to osiągnąć)


Poszukaj na forum Open

Autor:  bongos [ 2013-09-20, 15:14 ]
Tytuł:  Re: Otwarcie adresu www/pliku z poziomu AMBasica

Hej,

biorąc Twoje podejście pod uwagę, myślę, że najlepiej będzie jak napiszesz sobie php-owy moduł odbierający te ID z POST-a lub GET-a i wbijający je 'gdzie trzeba'.
Z Symfonii poślij je zwykłym:
...
dispatch l_http="Msxml2.XMLHTTP"
...
l_http.open("GET", "http://aaaaaaaa.pl/uuuu.php?iiiiiidddddddddd=100&iiiinnnyyyyiiiiddd=200"),0)
l_http.send()
...

Autor:  szyszec [ 2013-09-25, 21:07 ]
Tytuł:  Re: Otwarcie adresu www/pliku z poziomu AMBasica

@rafal - dzięki, ale jak już napisałem w pierwszym poście Open działa tylko z plikami na lokalnych dyskach.

@bongos - jeszcze lepsze rozwiązanie niż InternetExplorer.Application - wielkie dzięki, działa świetnie!

Z czystej ciekawości - jest gdzieś lista obiektów dispatch, których mogę używać?

Autor:  wrob [ 2013-09-25, 21:24 ]
Tytuł:  Re: Otwarcie adresu www/pliku z poziomu AMBasica

szyszec pisze:
Z czystej ciekawości - jest gdzieś lista obiektów dispatch, których mogę używać?


JAk sobie wyobrazasz taka liste? :) przeciez ona zależy od tego co masz zainstalowane w systemie :) - ale generalnie kazde narzedzie programistyczne nawet excel vba ma jakis object browser - wiec nim możesz zobaczyć czym dysponujesz :)

Autor:  koronen [ 2014-04-03, 00:20 ]
Tytuł:  Re: Otwarcie adresu www/pliku z poziomu AMBasica

Cytuj:
Nie musisz :) . Ja już to wypróbowałem i daję znać, że działa.

Rafał może będziesz miły i podzielisz się doświadczeniami - trochę więcej kodu:)?

Autor:  rafal [ 2014-04-03, 07:25 ]
Tytuł:  Re: Otwarcie adresu www/pliku z poziomu AMBasica

Zapraszam do kontaktu z Ekspertem.

Autor:  koronen [ 2014-04-03, 23:31 ]
Tytuł:  Re: Otwarcie adresu www/pliku z poziomu AMBasica

Myślałem że właśnie to robię:)... Jest jakaś specjalna procedura kontaktowania się z ekspertem?

Autor:  krzysiek [ 2014-04-04, 07:58 ]
Tytuł:  Re: Otwarcie adresu www/pliku z poziomu AMBasica

Zaproszenie do kontaktu poza forum :) Eksperci mają stopki z namiarami.

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/