Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: icebreaker w Luty 16, 2021, 15:22:34
-
Witam,
Posiadam własny system współgrający z Subiektem i bazą Insert.
Potrzebuję z poziomu tego programu:
1) Dodawać nowe towary do kartoteki towarów i usług
2) Tworzyć nowe PW
3) Tworzyć nowe RW
Czy są gdzieś stworzone gotowe zapytania SQL które mógłbym wykorzystać wstawiając swoje dane?
Czy ewentualnie jeśli nie ma, ktoś chciałby się podjąć stworzenia takich zapytań? Oczywiście odpłatnie.
-
Do tego typu operacji powinieneś wykorzystać Sferę.
-
Nieźle musiałem się namęczyć, żeby móc odpowiedzieć....
Dziękuję za sugestię, natomiast dodatek sfera mnie nie interesuje. Wszystko mam oparte na php i tam chcę wystawiać zapytania SQL które spowodują pewne zachowania w bazie danych.
Sam nie chcę tego robić, żeby nie pominąć wszystkich relacji tabel i nie rozwalić bazy.
-
To bardzo zły pomysł.
Nawet, jeśli ktoś podejmie się napisania czegoś takiego to nie masz żadnej gwarancji, że po aktualizacji programu nadal będzie to działać.
-
Dziękuję za sugestię, natomiast dodatek sfera mnie nie interesuje. Wszystko mam oparte na php i tam chcę wystawiać zapytania SQL które spowodują pewne zachowania w bazie danych.
Sferę też można obsługiwać w PHP, można dodać webserwis, który będzie wywoływany z PHP - sprawdzone rozwiązania od lat są opisywane na forum, warto się z nimi zapoznać.
-
Dziękuję za sugestię, natomiast dodatek sfera mnie nie interesuje.
A potem Insert zmieni coś między wersja XX a XY i będzie jazda po bandzie.
Nie, to nie jest gdybanie. Naprawiałem już niejedna bazę po "oszczędnych" programistach, których programy w kolejnej wersji zaczęły psuć zapisy.
Ale oczywiście zrobisz jak zechcesz.
Ja mam ten luksus że mogę naprawić, jeśli klient zapłaci a ja wiem jak i mam ochotę, albo rozłożyć ręce i iść pojeździć rowerem, więc nic mi do tego.
-
Ok, przekonaliście mnie.
Na tym etapie, mam utworzoną tylko jedną kolumnę w jednej tabeli, do której wprowadzam swoje indeksy, czyli praktycznie nie ingeruję w bazę inserta. Głównie wyciągam dane. Niestety moje rozwiązanie, wprowadza dużą nadmiarowość operacji (redundancję), także chciałbym iść krok dalej i ułatwić trochę życie.
Czy w takim razie, byłby ktoś chętny, aby stworzyć mi takie rozwiązanie w sfera (szczerze to nawet nie wiem jak sfera działa) i pomóc mi podpiąć to do mojego programu php? Jeśli tak, to proszę o kontakt bezpośredni:
email - mateusz@unistar.pl
tel - 507 163 238
-
Jeśli wiesz jak działają programy Insertu to praktyczne wiesz jak działa Sfera (przez analogię w kodzie wykonuje się operacje, które wykonuje się w interfejsie), można potraktować ją jako specyficzne API programistyczne, jest trochę przykładów na forum w PHP... Ze wsparciem będzie ciężko, osoby pomagające na forum (jak ja) nie programują w PHP, a praktycznie wszystkie problemy opisywane na forum wynikają z nieznajomości PHP (języka i/lub środowiska) we współpracy z technologią COM lub nieznajomości programów Insertu.
-
Kupiłem dzisiaj licencję Sfera i straciłem pół dnia na próbę połączenia się z Subiekt Sfera z poziomu PHP, z negatywnym skutkiem.
Oferta dalej aktualna - zlecę komuś (nawet skonfigurowanie samego połączenia) PHP->sfera.
-
Na początek zaznaczam, że nigdy do tej pory nie korzystałem ze Sfery z poziomu PHP.
Wpisałem w Google: sfera gt php
Otworzyłem pierwszy wynik: https://forum.insert.com.pl/index.php?/topic/13665-dost%C4%99p-do-sfery-z-poziomu-php/
Skopiowałem kod z pierwszego (i jedynego) posta w temacie (oczywiście wstawiając swoje dane połączenia itp) - działa.
Swoją drogą - szczerze polecam rozwiązanie które zaproponował Daniel czyli stworzenie webserwisu w .net i korzystanie z niego w swojej aplikacji php.
Uzyskasz w ten sposób dużo wieksze wsparcie i unikniesz zędnych problemów/komplikacji.
-
tomaszf, to był pierwszy kod, który próbowałem użyć. Porównywałem go z dokumentacją sfery i wygląda że powinno działać. Ale nie działa. Czy w takim razie pomógłbyś mi rozwiązać ten problem (być może jest to kwestia samej konfiguracji PHP lub Sfera)?
Jeśli chodzi o WebService, pewnie jest jak mówicie, że jest to lepsze rozwiązanie z tym, że jeśli uda mi się połączyć bezpośrednio PHP to będę miał już z górki.
-
Czyba, że chciałbyś mi napisać taki WebService, który umożliwi mi podpięcie PHP i wywoływanie funkcji z jego poziomu.
-
tomaszf, to był pierwszy kod, który próbowałem użyć. Porównywałem go z dokumentacją sfery i wygląda że powinno działać. Ale nie działa. Czy w takim razie pomógłbyś mi rozwiązać ten problem (być może jest to kwestia samej konfiguracji PHP lub Sfera)?
Ja tylko na wszelki wypadek się zapytam. Serwer Apache masz oczywiście na Windowsie?
-
@birds22 - Tak, na windows.
-
Dobra Panowie, udało się.
Problem był chyba podwójnej natury:
Napisałem makro w VBA, żeby spróbować połączyć się z Subiektem
1) Nie wiem czemu, ale przy 1 aktywnej licencji VBA informował mnie, że osiągnięto limit licencji. Więc dokupiłem drugą i już zaczął łączyć się z bazą.
2) $Okh = $subiekt->Kontrahenci->Wczytaj(Id); - tutaj myślałem, że Id to jest id z SQL a nie symbol nadawany w subiekcie. Po prostu wywalało błąd, ponieważ symbolu = "1" nie było w bazie.
Rozumiem, że komunikacja bezpośrednio przez PHP nie będzie idealnym rozwiązaniem, ale na pewno lepszym, niż to co próbowałem na początku, czyli bezpośrednie zapytania do SQL.
W każdym razie dziękuję każdemu kto poświęcił czas za pomoc i wskazówki.
Temat ze stworzeniem WebService i tak mnie w przyszłości czeka. Na razie to wszystko jest przejściowe aby sprawdzić zapotrzebowanie na dane funkcjonalności serwisu.
Pozdrawiam
-
1) Nie wiem czemu, ale przy 1 aktywnej licencji VBA informował mnie, że osiągnięto limit licencji. Więc dokupiłem drugą i już zaczął łączyć się z bazą.
Nie wiem dlaczego, ale myśle, że zakup był niepotrzebny ;).
2) $Okh = $subiekt->Kontrahenci->Wczytaj(Id); - tutaj myślałem, że Id to jest id z SQL a nie symbol nadawany w subiekcie. Po prostu wywalało błąd, ponieważ symbolu = "1" nie było w bazie.
Wszystko zależy od tego jakiego typu jest `Id`.
W pliku pomocy masz to dokładnie opisane:
Parametry
val
Variant. Jeśli argument jest typu Long to kontrahent jest wybierany po identyfikatorze (kh_id z tabeli kh__Kontrahent). Jeśli argument jest typu String to kontrahent jest wybierany po symbolu lub
po nipie.
Rozumiem, że komunikacja bezpośrednio przez PHP nie będzie idealnym rozwiązaniem, ale na pewno lepszym, niż to co próbowałem na początku, czyli bezpośrednie zapytania do SQL.
Zdecydowanie.
Temat ze stworzeniem WebService i tak mnie w przyszłości czeka.
W razie potrzeby pomożemy :).