W swojej firmie męczę aplikację w .NET do zarządzania promocjami w CDN XL.
No i oczywiście napotykam na problemy.
1. Przy wywoływaniu funkcji API program zajmuje coraz więcej miejsca w pamięci (wg programów do analizowania pamięci programów wszystko to przez unmanaged code. Przy wielu promocjach i towarach do dodania to w krótkim czasie mam już ponad 1GB użycia pamięci i tylko czekam na OutOfMemory Exception
2. Drugi problem jest poważniejszy od tych wycieków. Otóż wszystko jest fajnie do momentu zrobienia XLLogout() - w tym momencie z CDN znikają wszystkie promocje przeze mnie wprowadzone
Może komuś przydadzą się poniższe informacje do pomocy:
Kod: Zaznacz cały
XLLoginInfo_17 LoginInfo = new XLLoginInfo_17();
LoginInfo.Baza = XLBaza;
LoginInfo.OpeHaslo = "";
LoginInfo.OpeIdent = XLOpeIdent;
LoginInfo.ProgramID = "ImportPromocji";
LoginInfo.Winieta = -1;
LoginInfo.SerwerKlucza = SerwerKlucza;
LoginInfo.UtworzWlasnaSesje = 1;
LoginInfo.TrybWsadowy = 1;
LoginInfo.Wersja = XLWersja;
int ret = cdn_api.cdn_api.XLLogin(LoginInfo, ref XlSesja);
Kod: Zaznacz cały
cdn_api.XLZamkniecieDokumentuPrmInfo_17 dok = new XLZamkniecieDokumentuPrmInfo_17();
dok.ID = prmID;
dok.Stan = (int)stan; // stan = 0
dok.Tryb = 2; //Tryb wsadowy
dok.Wersja = (int) wersja;
int res = cdn_api.cdn_api.XLZamknijPromocje((int)sesja, prmID, dokZamkniecia);
Na samym końcu grzecznie wykonuję XLLogout (który powoduje tyle zamieszania).
Jak dla mnie powyższa ścieżka pracy z API jak najbardziej odpowiada temu, co Comarch zawarł w dokumentacji API w "Algorytmie postępowania".
P.S. O pomoc z powyższymi problemami poprosiłem Comarch via asysta_xl, ale wydaje mi się, że z waszej strony mogę liczyć na pomoc.
Marcin