mnat
Rejestracja: 2008-04-10, 09:34 Posty: 24
|
[HMF]
Mam problem z fragmentem kodu w vba żywcem wyjętego z dokumentacji jaką posiadam:
Kod: Dim objHmf As Object Set objHmf = CreateObject("HMF.AppIni") objHmf.OpenFirm(True, "DRIVER=SQL Server;SERVER=SUN32\SE;DATABASE=HMF2010TEST;", "Admin", "abc")
Aplikacja sypie błędem "Wprowadzono nierawidłowy login lub hasło" Zmieniam po kolei parametry metody OpenFirm i z drobnymi wyjątkami cały czas to samo. Natomiast po wykonaniu Kod: objHmf.GetApplication()
uzyskuję dostęp do instancji obiektu aplikacji w handlu, ale oczywiście nic nie mogę bo nie jestem zalogowany
W czym robię błąd?
Może ma ktoś do tego dokumentację i rozwiązania do aplikacji HMP, FK, itd...
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Rozumiem, że robisz to w VBA wewnątrz Handlu?
|
2010-04-24, 10:51 |
|
|
mnat
Rejestracja: 2008-04-10, 09:34 Posty: 24
|
Konkretnie mówiąc chcę to zrobić w VB .NET i nawet udało mi się połączyć z bazą, pobrać instancję handlu i wyświetlać okienka handlu, ale nie mogę się zalogować jako użytkownik
|
2010-04-24, 13:51 |
|
|
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
Hmm.... to zawsze bedzie klopotliwe - taki dostep z zewnatrz - pominawszy zagadnienia techniczne ktore nie sa mocno w tym kierunki rozwijane/opisuwane - jeszcze jest sprawa licencji np SQL-a(szczegolnie jesli jest typu restricted) .... lepiej moze jednak bezposrednio w VBA w Handlu?
|
2010-04-24, 20:07 |
|
|
mnat
Rejestracja: 2008-04-10, 09:34 Posty: 24
|
Bezpośrednio w handlu to jest niestety ostatnia opcja jaka w chodzi w grę.
To jest tylko część całego system nad którym pracuję.
Generalnie chodzi o to, aby nie zmuszać użytkownika do jakiejkolwiek ingerencji w działanie systemu - system ma działać najlepiej jako usługa windows i wykonywać odpowiednie operacje na handlu (imp/exp)
Zawsze można podłączyć się bezpośrednio do bazy, ale to z kolei grozi jej rozsypaniem...
W vba powyższe kody działają poprawnie, może coś w ConnectionString trzeba zamienić?
|
2010-04-25, 10:45 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Tak przy okazji. Pamiętaj, że taki sposób użycia obiektu programu HMF "zjada" licencję programu.
|
2010-04-25, 20:00 |
|
|
mnat
Rejestracja: 2008-04-10, 09:34 Posty: 24
|
Bo nie uznaję, że "się nie da"...
Dla potomności, VB NET obsłuży to bez problemu ale pod jednym warunkiem. Że będzie to niezintegrowane logowanie do SQL'a - przynajmniej do tego doszedłem. Czyli na dobrą sprawę była to nie równa walka z problemem - wszystko przez 1 bit
Powinno być:
Kod: objHmf.OpenFirm(False, "DRIVER=SQL Server;SERVER=SUN32\SE;DATABASE=HMF2010TEST;User ID=xx;Password=yy;", "Admin", "abc")
I teraz śmiga jak ta lala
W sumie dziwna sprawa, bo jak nie można uzyskać połączenia, to wyskakuje okienko sage'a do jego konfiguracji.
Widać Sage tak ma
|
2010-04-29, 12:28 |
|
|
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
No tak ale w ten sposob jestes zalogowany jako user Admin(SQL) czyli prawa nadane w HMF itp - cie nie dotycza tak naprawde co moze jest i dobre ale tylko w wypadku kiedy to tylko twoja aplikacja sie loguje.. i nie grzebie za bardzo :)
|
2010-04-29, 13:15 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
wrob pisze: No tak ale w ten sposob jestes zalogowany jako user Admin(SQL) czyli prawa nadane w HMF itp - cie nie dotycza tak naprawde co moze jest i dobre ale tylko w wypadku kiedy to tylko twoja aplikacja sie loguje.. i nie grzebie za bardzo :)
Nie masz racji. Zalogowany jest jako Admin z programu.
|
2010-04-29, 13:44 |
|
|
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
A no fakt... nie spojrzalem uwazniej....
A ciekawe czy nie da sie tak zalogowac aby nie zzerac licencji - cos w stylu jak logowanie do ITG.....
|
2010-04-29, 14:00 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
No nie da się.
To jest odpalona aplikacja tylko jej nie widać.
Analogicznie do application.excel lub application.word.
Robiąc Kod: objHmf.Visible = True
powinniśmy zobaczyć program.
|
2010-04-29, 14:07 |
|
|
mnat
Rejestracja: 2008-04-10, 09:34 Posty: 24
|
rafal ma racje - to jest dokładnie odpalony program handlu tyle że ukryty i jako taki musi zabierać licencję (sprawdziłem w kodzie).
Jak dla mnie jest ok, bo nie namieszam jeżeli nie mam uprawnień dla usera, a to że licencja zajęta, no cóż...
Skoro chcemy korzystać z dobrodziejstw obiektów to normalne że się logujemy.
|
2010-04-29, 15:23 |
|
|
Kamienios
Rejestracja: 2009-03-26, 14:45 Posty: 62 Pomógł: 2
|
Witam,
Planowałem ostatnio zrobić małą aplikację .NET pracującą bezpośrednio na bazie Handlu. Po przeczytaniu tego wątku mam 3 pytania:
1. Czy takie łączenie narusza licencję SQL restricted?
2. Napisaliście, że grzebanie bezpośrednio w bazie grozi wysypaniem. Czy możecie nieco rozwinąć ten temat? Jakie operacje są niebezpieczne? Mnie interesowałyby tylko insert do tabel z zamówieniami obcymi
3. Gdzie można uzyskać jakąś dokumentację obiektów handlu dla VBA /VB.
Dzięki,
Pozdrawiam
_________________ Zrozumieć niezrozumiałe ;)
|
2010-11-03, 15:17 |
|
|
wrob
Ekspert
Rejestracja: 2008-04-18, 18:52 Posty: 5169 Pomógł: 59
|
1. Narusza
2. wszelkie zwiazane z zapisem jesli nie zna sie bazy
3. autoryzowani dystrybutorzy mają dostęp
|
2010-11-03, 15:39 |
|
|
Kamienios
Rejestracja: 2009-03-26, 14:45 Posty: 62 Pomógł: 2
|
Ale łączenie z bazą za pomocą obiektu hmf.appini nie narusza licencji?
_________________ Zrozumieć niezrozumiałe ;)
|
2010-11-08, 11:16 |
|
|