Jednym zdaniem: Co jakiś czas (powiedzmy raz na 1-2 miesiące, czasem rzadziej), podczas nowaFaktura.ZapiszSymulacja() otrzymuję następujący wyjątek:
0x80040F38
Nie można nadać identyfikatora.
INS_E_INVALID_IDENTITY
Mój program działa w pętli i tworzy dokumenty FS i ZK z nadchodzących plików EPP. Chodzi o kilkaset dokumentów dziennie.
Mam otwartą "sesjęsubiekta" a następnie (w skrócie):
oIm = sesjaSubiekta.Importer
oIm.WczytajPlik(nazwa_ze_sciezka_epp, InsERT.WczytajEnum.gtaWczytajDokumenty)
Dim nowaFaktura As InsERT.SuDokument
nowaFaktura = oIm.WczytajObiekt(CInt(numer_obiektu_z_faktura), InsERT.SubiektDokumentEnum.gtaSubiektDokumentFS)
nowaFaktura.ZapiszSymulacja()
Kiedy ten wyjątek się pojawi przy obróbce jednego pliku, to do wyłączenia programu pojawia się dla każdego kolejnego pliku, który próbuje obsłużyć.
Rzecz w tym, że błąd nie odnosi się do jakiegoś błędu w pliku EPP. Po ponownym uruchomieniu programu,
pliki są wczytywane i przetwarzane na fakturę prawidłowo.
Pisząc tego posta przejrzałem logi i widzę, że czasami pojawia się inne wyjątki:
- 0x80004005 - dziwny, bo nie ma go w dokumentacji
- Exception from HRESULT: 0x80040F1C - zapis spowodowałby naruszenie integralności bazy danych
- 0x80040F1E - %1 Operacja nie powiodła się. Należy ponowić próbę.
Co zrobić jeśli taki wyjątek się pojawi, żeby jednak nie być zmuszonym do ponownego uruchomienia programu?
Jeszcze jedna informacja (może ważna): program działa na ten samej maszynie na której stoi baza danych Subiekta.