Archiwa w kategorii ‘Axapta’
Przeglądasz archiwa kategorii Axapta
Przeglądasz archiwa kategorii Axapta
Opis problemu:
Problem pojawia się w momencie próby synchronizacji zadań z outlook’a do systemu Axapta. (Funkcja w module CRM / okresowo / Synchronizacja z programem MIcrosoft Office Outlook / Synchronizacja).
Pojawia się komunikat o błędzie sortowania po polu [Beginnt am].
Opis i rozwiązanie:
Chodzi o to, że Axapta przed importem próbuje sobie posortować zadania wg daty rozpoczęcia (po niemiecku: beginnt am).
Należy zmodyfikować kod w metodzie synchronizeTasksOutlookToAxapta() w klasie SmmOutlookSync_Task.
Kod oryginalny:
// Turn sort and include recurrences ON to get recurring tasks
taskItemsCollection.sort('[Beginnt am]', false);
Czasami jest także spotykany kod:
// Turn sort and include recurrences ON to get recurring tasks
taskItemsCollection.sort('[Start]', false);
Należy zamienić na:
#define.startDateSort('StartDate')
;
taskItemsCollection.sort(#startDateSort, false);
Przy przejściu z Axapty 3.0 na 4.0 jest oczywiście wiele problemów. Z punktu widzenia firmy wdrażającej to ogrom pracy, którą trzeba wykonać aby dostosować aplikację klienta do nowego środowiska.
Rozwiązanie jednego z problemów chciałbym dzisiaj przedstawić. Chodzi mianowicie o formatkę ReqTransExplosion. W nowej AX4.0 problem objawia się tym, że podczas otwierania tej formatki wyskakują błędy:
a) Loading the interface (C:\Programfiles\Microsoft DynamicsAX\40SP2\Client\Bin\vcgantt.ifd) failed
b) ActXBaseControl::Open failure
c) Loading the interface (C:\Programfiles\Microsoft DynamicsAX\40SP2\Client\Bin\vcgantt.ifd) failed
d) ActXBaseControl::Open failure
5: The form opens with the error “Error when loading NETRONIC VARCHART
XGantt”
Czynności do rozwiązania problemu są proste. Jedyna trudność, to wpaść na nie. Mianowicie trzeba:
1. Wyeksportować formatkę z AX3.0 do pliku XPO (nazwijmy go roboczo xpo_old)
2. Wyeksportować formatkę z AX4.0 do pliku XPO (nazwijmy go roboczo xpo_new)
3. Podejrzeć plik xpo_old np. notatnikiem i znaleźć w nim ciąg BINARY 59539.
4. Skopiować wszystkie dane HEX poniżej tego ciągu.
5. Otworzyć plik xpo_new, oraz znaleźć w nim ciąg BINARY 59539.
6. Wkleić skopiowane dane poniżej tego ciągu w pliku xpo_new.
7. Zapisać plik xpo_new.
8. Zaimportować plik xpo_new do axapty.
Musi działać.
Ja miałem taki problem i dużo czasu zajęło mi rozwiązanie go. Kopiowanie dll’ek do katalogu axapty nic nie pomagało.
Czy próbowaliście zbudować w Axapcie złożony range na datasourc’e z kodu za pomocą QueryBuildDataSource i QueryBuildRange. Operacja bywa dość trudna, bo Axapta permanentnie nie chce współpracować. Można się nieźle napocić, aby w zgodzie z dokumentacją uzyskać coś np. takiego:
select * from tabela
where (tabela.pole1 = wart1 Or (tabela.pole1 = wart2 And tabela.pole2 = wart3))
Tymczasem rozwiązanie jest banalne.
Trzeba skorzystć ze sztuczki:
QueryBuildDataSource qbds;
QueryBuildRange qbr;
Query q = new Query();
;
qbds = q.addDataSource(tablenum(Tabela));
qbr = qbds.addRange(fieldnum(Tabela, Pole));
qbr.value(strfmt('((%1 == %2) || (%3 == %4 && %5 == %6))',
fieldstr(Tabela, Pole1), wart1,
fieldstr(Tabela, Pole1), wart2,
fieldstr(Tabela, Pole2), wart3));
Proste, piękne i skuteczne…
13 października miała miejsce wielka rzecz. Uruchamialiśmy w firmie nowy moduł, którego jestem autorem. Powiem tylko, że przewrócił on do góry nogami proces wysyłek do klienta. Dzisiaj jest środa i okazuje się że moje wcześniejsze obawy o poprawność działania i spójność danych były nieuzasadnione. Oczywiście nie odbyło się bez małych poprawek w kodzie, ale naszczęśnie nie udało mi się wywalić całego systemu do góry nogami. Chyba mogę zaliczyć to zadanie w poczet moich małych sukcesów.
To proste.
1. Robimy skrót do uruchamiania AX4.0.
2. Teraz właściwości / zakładka skrót / przycisk zaawansowane.
3. Zaznaczamy opcję Uruchom z innymi poświadczeniami i potwierdzamy wybór.
4. Teraz podczas uruchamiania mamy wybór w kontekście jakiego użytkownika chcemy uruchomić program.
5. Podają domena\użytkownik i właściwe hasło jesteśmy w stanie w tym samym czasie zalogować się z do AX4.0 z uprawnieniami różnych użytkowników, np. swoimi i innego użytkownika.
Proste prawda….
Podany sposób może być wykorzystywany przez administratorów lub deweloperów w celu przetestowania jakiejś funkcji. Oczywiście zakładamy, że trzeba znać hasło innego użytkownika.