16 | | Dla celów integracji z systemem można wykorzystać mechanizm procedur dostępny w systemie Forte (HM). Procedura jest to pewnego rodzaju raport, który napisany jest w języku stworzony przez Sage Symfonię: ''!AmBasic''. |
17 | | Jedną z takich procedur jest raport '''!OnTimer()''', który może być uruchamiany w określonych interwałach czasu. |
| 17 | System Forte HM oferuje wiele możliwości wykonania procedur, które można wykorzystać w procesie integracji. Są to: |
| 18 | * język raportów '''!AmBasic''' - język skryptowy własny dostępny w Handlu Forte, który umieszczamy bezpośrednio w raporcie, jest kombinacją języka VB oraz C, nie posiada dobrej dokumentacji (ta co jest, to załączam do niniejszej instrukcji). |
| 19 | * język '''VBA''', czyli Visual Basic For Applications - produkt wykorzystywany przez Microsoft m.in. w produktach pakietu Office. Jest dość okrojona wersja Visual Basic-a, ale do tych potrzeb jest po prostu wystarczająca. |
260 | | |
261 | | HMF ofertuje wiele możliwości wykonania procedur. Są to: |
262 | | * język raportów '''!AmBasic''' - język skryptowy własny dostępny w Handlu Forte, który umieszczamy bezpośrednio w raporcie, jest kombinacją języka VB oraz C, nie posiada dobrej dokumentacji (ta co jest, to załączam do niniejszej instrukcji). |
263 | | * język '''VBA''', czyli Visual Basic For Applications - produkt wykorzystywany przez Microsoft m.in. w produktach pakietu Office. Jest dość okrojona wersja Visual Basic-a, ale do tych potrzeb jest po prostu rewelacyjna. |
264 | | |
265 | | Na potrzeby integracji sugeruje się wykorzystać język VBA. Import danych do Forte HM (na przykładzie generowania dokumentu '''Zamówienia Obcego''' przedstawiam poniżej. |
266 | | |
267 | | 4. Aby wywołać powyższy skrypt dodajemy w tym samym module metodę: |
| 271 | Aby skonfigurowana procedura !OnTimer() wykonała dla nas konkretną czynnność należy zmienić jej kod. W tym celu odszukujemy w drzewku ''Raporty > Procecdury '' raport ''Procedura !OnTimer''. Edytując ją wprowadzamy kod: |
| 272 | {{{ |
| 273 | #text/x-vba |
| 274 | int sub OnOpen() |
| 275 | |
| 276 | OnOpen = 0 |
| 277 | endsub |
| 278 | |
| 279 | int sub OnTimer() |
| 280 | |
| 281 | If xFactory.user == "b2b" then // użytkownik, który stale ma uruchomioną instancję Forte HM. |
| 282 | |
| 283 | //Wywołanie raportu generującego dokumenty zamówień obcych z eDokumentów |
| 284 | Run ("Generowanie zamówienia obcego z eDokumentów") |
| 285 | // Message "OnTimer()" |
| 286 | EndIf |
| 287 | |
| 288 | OnTimer = 0 |
| 289 | |
| 290 | endsub |
| 291 | |
| 292 | int sub OnClose() |
| 293 | |
| 294 | OnClose = 0 |
| 295 | endsub |
| 296 | |
| 297 | }}} |
| 298 | |
| 299 | '''Uwaga!''' |
| 300 | Jak już wspomniano powyżej aby OnTimer zadziałał, musi być uruchomiona instancja Forte HM na wybranym użytkowniku. |
| 301 | Użytkownik b2b jest systemowym użytkownikiem b2b, który jest przeznaczony do tych zadań. |