mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Tworzenie nowego dokumentu przez COM - problem z BIORec https://forum.mix-soft.pl/viewtopic.php?f=15&t=2394 |
Strona 1 z 1 |
Autor: | lt_maxon [ 2010-10-13, 13:25 ] |
Tytuł: | Tworzenie nowego dokumentu przez COM - problem z BIORec |
Witam Rozpoczynam dopiero pracę z obiektem integracji i mam mały problem z obiektem typu BIORec. Utrudnieniem jest fakt że nie korzystam z VBA, ale z czegoś wyłącznie podobnego, czyli LotusScript. Nie mam problemu z dostaniem się do dokumentów i z odczytem danych, jednak z jakiegoś powodu podczas importowania dokumentu pojawia się błąd. Poniżej, fragment zmodyfikowanej wersji kodu podanego w dokumentacji: Kod: Set xFactory = objHMF.GetApplication.PropertyAp("HFactory") Set xBIORec = xFactory.NewObject("BIORec") nError= xBIORec.SetField("typDk", "FVS") Call blad("1",nError) nError= xBIORec.SetField("seria", "sFVS") Call blad("2",nError) nError= xBIORec.BeginSection("danekh") Call blad("3",nError) nError= xBIORec.SetField("khnazwa","Maksymilian Katz") Call blad("4",nError) nError= xBIORec.SetField("khulica","Zdrojowa") Call blad("5",nError) nError= xBIORec.SetField("khdomu","1") Call blad("6",nError) nError= xBIORec.SetField("khlokal","3") Call blad("7",nError) nError= xBIORec.SetField("khkodpocz","87-720") Call blad("8",nError) nError= xBIORec.SetField("khmiasto","Ciechocinek") Call blad("9",nError) nError= xBIORec.EndSection() Call blad("10",nError) nError= xBIORec.BeginSection("Pozycja dokumentu") Call blad("11",nError) nError= xBIORec.SetField("opis","usługa rozrywkowa") Call blad("12",nError) nError= xBIORec.SetField("ilosc","2") Call blad("13",nError) nError= xBIORec.SetField("jednostkaMiary","godz.") Call blad("14",nError) nError= xBIORec.SetField("cena","75") Call blad("15",nError) nError= xBIORec.EndSection() Call blad("16",nError) nError= xBIORec.BeginSection("rejestr") Call blad("17",nError) nError= xBIORec.SetField("kod","KASA") Call blad("18",nError) nError= xBIORec.EndSection() Call blad("19",nError) Set xFunkcja = xFactory.NewObject("BFunkcja") Dim lId As Variant lId = xFunkcja.ImportSp(xBIORec) Call blad() - zwraca mi nr błędu. W tym przypadku, po uruchomieniu, błąd pojawia się w przypadku 10,16 i 19. Co oznacza, że błąd występuje zawsze przy wywołaniu xBIORec.EndSection(). Do importowania oczywiście nie dochodzi z powodu błędu Zamiast dispatch jest Set, metody wywołujemy przez Call, wszelkie obiekty sa zadeklarowane jako Variant (odpowiednik Object), wiec teoretycznie wszystko powinno dzialac. Przypisanie nError= xBIORec.EndSection() zamiast xBIORec.EndSection(), bierze się z innej składni LotusScript. Wywołanie samego Call kończy się błędem. Na temat błędów samego BIORec jest w dokumentacji niewiele i niestety kończą mi się pomysły. Jeśli ktoś ma jakiekolwiek wskazówki na ten temat to byłbym wdzięczny. Pozdrawiam. |
Autor: | xtm [ 2010-10-20, 10:25 ] |
Tytuł: | |
Nie wiem dlaczego ale EndSection() bez względu na to czy się go wykonuje poprzez BIORec czyteż IORec zwraca 1, więc nie sugerowałbym się że w tych liniach jest błąd. Przerobiłem kod na AmBasic i dokument się importuje bez problemów. Dodam, że sprawdzałem w wersji HMF 2010.2. |
Autor: | lt_maxon [ 2010-10-21, 19:11 ] |
Tytuł: | |
Wielkie dzięki za wskazówkę. Okazuje się, że faktycznie coś zaczął wpisywać do bufora więc jest postęp. Wcześniej wyskakiwał błąd: System.Runtime.InteropServices.COMException (0x80010105): Serwer wywołał wyjątek. (Wyjątek od HRESULT: 0x80010105 (RPC_E_SERVERFAULT)), więc pewnie jeszcze trochę powalczę. Pozdrawiam. |
Autor: | daniel [ 2010-10-26, 15:18 ] |
Tytuł: | |
Nie ma sensu pobierania wartości z metody EndSection(). Jest to metoda, która służy tylko i wyłącznie logice Handlu. A wyjątek mógł dotyczyć właśnie próby pobrania wartości z tej metody. |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |