Skocz do zawartości


Close Open
Close Open
Zdjęcie

PHP + Subiekt + Sfera


  • Please log in to reply
11 replies to this topic

#1 jornat

jornat

    Adept

  • Forumowicze
  • Pip
  • 5 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Warszawa, Polska

Napisany 25 grudzień 2009 - 01:27

Witam serdecznie,

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 birds22

birds22

    Entuzjasta

  • Forumowicze
  • PipPipPipPipPipPipPip
  • 1332 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Zduńska Wola

Napisany 27 grudzień 2009 - 01:36

Co prawda nie mam doświadczenia w połączeniu php i Sfery ale takie coś mogłoby wyglądać np tak :

<?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ę...
Sławek

#3 jornat

jornat

    Adept

  • Forumowicze
  • Pip
  • 5 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Warszawa, Polska

Napisany 29 grudzień 2009 - 00:27

Birds22,

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 Biniew

Biniew

    Uczestnik

  • Forumowicze
  • PipPipPipPip
  • 114 Postów:

Napisany 29 grudzień 2009 - 07:27

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 jornat

jornat

    Adept

  • Forumowicze
  • Pip
  • 5 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Warszawa, Polska

Napisany 29 grudzień 2009 - 22:50

witam
a nie prosciej skorzystac z gotowego CRMa - GestoraGT?


Nie.

#6 birds22

birds22

    Entuzjasta

  • Forumowicze
  • PipPipPipPipPipPipPip
  • 1332 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Zduńska Wola

Napisany 30 grudzień 2009 - 00:24

Niestety przy próbie uruchomienia skryptu otrzymuję komunikat o błędzie...


Próbowałeś może tak:

$oGT->Serwer = "server\\INSERTGT";
??
Sławek

#7 jornat

jornat

    Adept

  • Forumowicze
  • Pip
  • 5 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Warszawa, Polska

Napisany 31 grudzień 2009 - 20:05

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 birds22

birds22

    Entuzjasta

  • Forumowicze
  • PipPipPipPipPipPipPip
  • 1332 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Zduńska Wola

Napisany 02 styczeń 2010 - 22:58

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.
Sławek

#9 jornat

jornat

    Adept

  • Forumowicze
  • Pip
  • 5 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Warszawa, Polska

Napisany 09 styczeń 2010 - 19:19

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 Amanda

Amanda

    Kandydat

  • Forumowicze
  • PipPip
  • 43 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:III RP, Polska

Napisany 10 styczeń 2010 - 10:15

No to chyba wiem co jest grane. Prawdopodobnie bąd jest generowany z powodów licencyjnych.

Raczej nie, Ty z pozimou PHP "kopiesz" się bezpośrednio do bazy MSSQL, a licencja o której mówisz jest na program Insertu

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 birds22

birds22

    Entuzjasta

  • Forumowicze
  • PipPipPipPipPipPipPip
  • 1332 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:Zduńska Wola

Napisany 10 styczeń 2010 - 12:46

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 ?
Sławek

#12 Amanda

Amanda

    Kandydat

  • Forumowicze
  • PipPip
  • 43 Postów:
  • Płeć:Mężczyzna
  • Lokalizacja:III RP, Polska

Napisany 10 styczeń 2010 - 21:27

Aaaa, teraz "zaskoczyłem" - Wy "kopiecie" się poprzez Sferę do bazy, a ja "na żywca" do samej bazy.




0 Użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników