
PHP + Subiekt + Sfera
#1
Napisany 25 December 2009 - 01:27 AM
Czy ktoś z Was posiada jakieś doświadczenie z wykonywaniem operacji z użyciem Sfery i skryptów PHP?
Bardzo byłbym wdzięczny za jakiś przykładowy skrypt w PHP, który otwierałby połaczenie z Subiektem i np. wyświetlał nazwę kontrahenta o symbolu '000001'
Pozdrawiam,
Jornat
#2
Napisany 27 December 2009 - 01:36 AM
<?php $gt = new COM("Insert.gt") or die("Cannot create an InsERT GT object"); $gt->Produkt = 1; $gt->Serwer = "(local)\Insergt"; $gt->Baza = "Test"; $gt->Autentykacja = 0; $gt->Uzytkownik = "sa"; $gt->UzytkownikHaslo = ""; $gt->Operator = "Szef"; $gt->OperatorHaslo = ""; $Sgt = $gt->Uruchom(0,0); $Okh = $Sgt->Kontrahenci->Wczytaj('000001'); $kNazwa=$Okh->Nazwa; $kMiejsc=$Okh->Miejscowosc; echo '<p> Nazwa kontrahenta: '.$kNazwa.'</p><br/>'; echo '<p> Miasto kontrahenta: '.$kMiejsc.'</p><br/>'; ?>
W zasadzie do pobierania danych można byłoby pominąć Sferę...
#3
Napisany 29 December 2009 - 00:27 AM
Dzięki za pomoc. Doszedłem wcześniej do tego samego momentu. Mój skrypt testowy wygląda tak:
[codebox]
<?php
$oGT = new COM("InsERT.GT") or die("Cannot create an Sfera object");
// 'Ustawienie programu z którym nawiązujemy połączenie'
$oGT->Produkt = 1;
// 'Ustawienie parametrów połączenia z serwerem'
$oGT->Autentykacja = 0;
$oGT->Serwer = "server\INSERTGT";
$oGT->Uzytkownik = "sa";
$oGT->UzytkownikHaslo = "";
// 'Ustawienie parametrów połączenia z podmiotem'
$oGT->Baza = "NazwaBazyPodmiotu";
$oGT->Operator = "Szef";
$oGT->OperatorHaslo = "HasloSzefa";
// 'Uruchomienie Subiekta'
$Subiekt = $oGT->Uruchom(0,0);
$Okh = $Subiekt->Kontrahenci->Wczytaj('000000000000000591');
echo '<p> Nazwa kontrahenta: '.$Okh->Nazwa.'</p><br/>';
echo '<p> Miasto kontrahenta: '.$Okh->Miejscowosc.'</p><br/>';
?>
[/codebox]
Niestety przy próbie uruchomienia skryptu otrzymuję komunikat o błędzie:
[codebox]
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Unknown<br/><b>Description:</b> Unknown' in C:\wamp\www\test_sfera.php:22 Stack trace: #0 C:\wamp\www\test_sfera.php(22): com->Uruchom(0, 0) #1 {main} thrown in C:\wamp\www\test_sfera.php on line 22
[/codebox]
Linia 22 to: $Subiekt = $oGT->Uruchom(0,0);
Co do wyciągania danych bez sfery - to oczywiście prawda. Problem który przedstawiłem jest przykładowy - w celu opanowania dostępu do Subiekta z PHP. Docelowo CRM w php ma dodawać do subiekta zamówienia, rozliczać płatności wystawiać faktury ....
#4
Napisany 29 December 2009 - 07:27 AM
Birds22,
Dzięki za pomoc. Doszedłem wcześniej do tego samego momentu. Mój skrypt testowy wygląda tak:<?php $oGT = new COM("InsERT.GT") or die("Cannot create an Sfera object"); // 'Ustawienie programu z którym nawiązujemy połączenie' $oGT->Produkt = 1; // 'Ustawienie parametrów połączenia z serwerem' $oGT->Autentykacja = 0; $oGT->Serwer = "server\INSERTGT"; $oGT->Uzytkownik = "sa"; $oGT->UzytkownikHaslo = ""; // 'Ustawienie parametrów połączenia z podmiotem' $oGT->Baza = "NazwaBazyPodmiotu"; $oGT->Operator = "Szef"; $oGT->OperatorHaslo = "HasloSzefa"; // 'Uruchomienie Subiekta' $Subiekt = $oGT->Uruchom(0,0);$Okh = $Subiekt->Kontrahenci->Wczytaj('000000000000000591'); echo '<p> Nazwa kontrahenta: '.$Okh->Nazwa.'</p><br/>';echo '<p> Miasto kontrahenta: '.$Okh->Miejscowosc.'</p><br/>';?>Niestety przy próbie uruchomienia skryptu otrzymuję komunikat o błędzie:Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Unknown<br/><b>Description:</b> Unknown' in C:\wamp\www\test_sfera.php:22 Stack trace: #0 C:\wamp\www\test_sfera.php(22): com->Uruchom(0, 0) #1 {main} thrown in C:\wamp\www\test_sfera.php on line 22
Linia 22 to: $Subiekt = $oGT->Uruchom(0,0);
Co do wyciągania danych bez sfery - to oczywiście prawda. Problem który przedstawiłem jest przykładowy - w celu opanowania dostępu do Subiekta z PHP. Docelowo CRM w php ma dodawać do subiekta zamówienia, rozliczać płatności wystawiać faktury ....
witam
a nie prosciej skorzystac z gotowego CRMa - GestoraGT?
#5
Napisany 29 December 2009 - 22:50 PM
witam
a nie prosciej skorzystac z gotowego CRMa - GestoraGT?
Nie.
#6
Napisany 30 December 2009 - 00:24 AM
Niestety przy próbie uruchomienia skryptu otrzymuję komunikat o błędzie...
Próbowałeś może tak:
$oGT->Serwer = "server\\INSERTGT";??
#7
Napisany 31 December 2009 - 20:05 PM
Próbowałeś może tak:
$oGT->Serwer = "server\\INSERTGT";??
Próbowałem - to samo

Coś mi się wydaje, że z PHP się nie uda.
Pewnie będę się musiał nauczyć VB.
Ktoś może wie, zcy jest jakaś darmowa wersja VB, która pozwoli skompilować do pliku wykonywalnego .exe?
#8
Napisany 02 January 2010 - 22:58 PM
IMHO raczej jakieś ustawienia PHP. Właśnie sprawdzałem (co prawda nie na Wamp'ie a na Xampp'ie) i kod działa poprawnie.
#9
Napisany 09 January 2010 - 19:19 PM
Czy ten sam błąd (wykładający się przy Wczytaj(0,0) ) ?
IMHO raczej jakieś ustawienia PHP. Właśnie sprawdzałem (co prawda nie na Wamp'ie a na Xampp'ie) i kod działa poprawnie.
No to chyba wiem co jest grane. Prawdopodobnie bąd jest generowany z powodów licencyjnych. Mam Sferę na jedno stanowisko i zapomniałem że na innym komputerze chodzi OSCGT

Teraz zastanawiam się jak naczyć Subiekta, że Sfera na być wykorzystywana na nowym stanowisku.
Pozdrawiam.
JO
#10
Napisany 10 January 2010 - 10:15 AM
Raczej nie, Ty z pozimou PHP "kopiesz" się bezpośrednio do bazy MSSQL, a licencja o której mówisz jest na program InsertuNo to chyba wiem co jest grane. Prawdopodobnie bąd jest generowany z powodów licencyjnych.
Kawałek mojej "rzeźby" z mssql'em (może nie jest to profi, ale działa) - wersja "nieobiektowa"
$serwer="127.0.0.1\INSERTGT"; $user="sa"; $haslo=""; $c = mssql_connect ($serwer, $user, $haslo) or die ("Could not connect to database: ".mssql_get_last_message()); mssql_select_db($dbname, $c); //NIP podmiotu podmiotu w bazie $query = mssql_query('SELECT * FROM dbo.adr__Ewid where adr_id=1'); if(!mssql_num_rows($query)) {echo 'Brak poprawnych danych!';} else { while($row = mssql_fetch_array($query)) { $nip=$row[adr_NIP]; } } mssql_free_result($query); mssql_close();
#11
Napisany 10 January 2010 - 12:46 PM
Raczej nie, Ty z pozimou PHP "kopiesz" się bezpośrednio do bazy MSSQL, a licencja o której mówisz jest na program Insertu
Jak to bezpośrednio ? Przecież np Uruchom() jest właśnie metodą Sfery więc licencja ma tutaj znaczenie. Chociaż w/g mnie nie tutaj w tym momencie leży problem. Gdyby problem był licencyjny to Wczytaj() zwróciłoby jeden z błędów. Można przecież utworzyć nowy podmiot testowy z próbną sferą i na nim spróbować.
Jornat nie odpowiedział czy ma cały czas ten sam błąd. Ja go miałem (na wywołaniu Uruchom() ) kiedy przed nazwą instancji miałem tylko jeden backslash. Jak dodałem drugi aby przy parsowaniu php mi go nie wycięło wszystko było OK.
A może błąd już nie jest na Uruchom() tylko na Wczytaj() ? Może trzeba obsłużyć sytuację kiedy brak jest kontrahenta o podanym symbolu ?
#12
Napisany 10 January 2010 - 21:27 PM
0 Użytkowników czyta ten temat
0 użytkowników, 0 gości, 0 anonimowych użytkowników