Strona 1 z 1
R2API - Użytkownik nie zgadza się na warunki licencji
: pn, 19 lipca 2021 10:30
autor: Tymoteusz
Chciałbym wykorzystać w swoim programie R2API. Dodałem do swojego projektu klasy R2Api.cs, Utils.cs i wszystkie wymagane elementy, na podstawie tego co jest napisane w przykładowym wykorzystaniu w projekcie Demo (C:\RESET2\Firma.10xx\DEMOS\C#). Niestety w momencie uruchomienia programu i próby logowania przez R2API, wyskakuje mi błąd: "Błąd uruchomienia programu: Użytkownik nie zgadza się na warunki licencji". Sama przykładowa aplikacja DEMO działa i tam logowanie odbywa się poprawnie, również sam program R2FirmaPro uruchamia się poprawnie i w nim licencja jest widoczna jako ważna. W projekcie demo jest następująca informacja:
//Uwagi ogólne:
//1.R2firmaApiDemo.exe generuje się w folderze BIN. Tam muszą znajdować się
// wszystkie aplikacje korzystające z Api, gdyż tam znajduje się R2firmaApi.dll
// oraz R2firma.ini zawierający parametry logowania do bazy danych.
W swoim programie tego nie zrobiłem, aplikacja jest zainstalowana w innym folderze, ponieważ w przypadku zainstalowania jej w folderze C:\RESET2\Fk.10xx\BIN, niektóre pliki z obu aplikacji mogłyby się powtarzać i powodowałoby to błędy, więc odwołanie do R2API zrobiłem ścieżką bezwzględną: "fApi = new R2Api("C:\\RESET2\\Fk.10xx\\BIN\\R2firmaApi.dll");".
Czy muszę mimo wszystko swój program instalować w folderze BIN, żeby działało to poprawnie? Czy błąd, który wyskakuje jest spowodowany czymś innym? Czy ktoś spotkał się z tym błędem i byłby w stanie mi pomóc, żeby R2API poprawnie się zalogowało?
Re: R2API - Użytkownik nie zgadza się na warunki licencji
: pn, 19 lipca 2021 12:10
autor: Ul
Zgadza się, wszystkie pliki związane z API (np.: .exe czy .dll) muszą się znajdować w katalogu BIN programu R2.
Re: R2API - Użytkownik nie zgadza się na warunki licencji
: wt, 20 lipca 2021 10:00
autor: Tymoteusz
A w jaki sposób mógłbym zdiagnozować, dlaczego R2API nie działa?
Po przeniesieniu instalacji programu do folderu BIN logowanie odbywa się pomyślnie, R2API nie zwraca żadnych błędów, ale faktury nie pojawiają się w R2FirmaPRO. Te same faktury, wygenerowane w formie .XML, dodane w R2FirmaPRO w menu Zbiory > Import danych > Import faktur poprawnie pojawiają się w programie. Dodawanie ich przez R2API jednak nie działa, ale nie wyskakują żadne błędy.
Re: R2API - Użytkownik nie zgadza się na warunki licencji
: wt, 20 lipca 2021 11:13
autor: Ul
W pliku DEMOS\C#\R2firmaApiDemo\ImportFakturXLS.cs znajduje się przykład dopisania nowej faktury (na przykładzie importu). Proszę tam sprawdzić, czy podaje Pan wszystkie niezbędne dane.
Re: R2API - Użytkownik nie zgadza się na warunki licencji
: wt, 20 lipca 2021 11:46
autor: Tymoteusz
Chcę dodawać faktury z plików XML, nie XLS, więc przygotowałem kod na podstawie tego co jest w pliku DEMOS\C#\R2firmaApiDemo\ImportFakturXML.cs, w pliku ImportFakturXLS.cs nie widzę niczego, co mógłbym wykorzystać w mojej sytuacji. Poniżej załączam kod, który wykorzystuję do wgrania faktur przez R2API, ale niestety faktury się nie pojawiają w programie R2FirmaPRO. Zarówno fApi.LoginUser jak i fApi.ImportFakturFromXML zwracają wyniki poprawne, czyli 0. Czy w tym kodzie czegoś brakuje?
Kod: Zaznacz cały
private const int WM_ADDONMSG3 = WM_Messages.WM_USER + 1;
nazwaFirmy = "NAZWA TWOJEJ FIRMY";
ModuleItem aModuleItem = (new ModuleItem("Faktury", 3));
if (fApi == null)
{
fApi = new R2Api("C:\\RESET2\\Fk.10xx\\BIN\\R2firmaApi.dll");
fApi.ApiSetCallbackMsg(this.Handle, WM_Messages.WM_USER);
aModule = aModuleItem.Module;
aFirma = nazwaFirmy;
aUserName = "username";
aPassword = "password";
int aUserID = fApi.LoginUser(aModule, aFirma, aUserName, aPassword);
if (aUserID <= 0)
{
string aErrorStr = fApi.LastError;
fApi.Dispose();
fApi = null;
MessageBox.Show(aErrorStr, "błąd");
}
else
{
success = true;
MessageBox.Show("Logowanie pomyślne", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
else
{
MessageBox.Show("użytkownik już zalogowany - błąd");
}
Dok2Dok item = new Dok2Dok
{
ParametryTransmisji = new Dok2DokParametryTransmisji
{
Data = DateTime.Now.Date,
Czas = Convert.ToDateTime(DateTime.Now.ToString("hh:mm:ss")),
Firma = "NAZWA TWOJEJ FIRMY",
Osoba = LoggedUser.Login,
AsortymentyIdentyfikacja = "Skrot",
KontrahenciIdentyfikacja = "NIP",
RodzajDok = "Automatycznie",
},
Dokument = new Dok2DokDokument[]
{
new Dok2DokDokument
{
Waluta = typWaluta.PLN,
RodzajDokumentu = "Faktura",
Numer = 1,
DataWystawienia = data,
DataSprzedazy = dataspr,
SposobKsiegowania = Dok2DokDokumentSposobKsiegowania.SSprzedażkrajowa,
TerminPlatnosci = termin,
Wystawil = string.Empty,
Miejscowosc = "Wrocław",
X_Nr = "1",
Kontrahent = new Dok2DokDokumentKontrahent
{
Skrot = customerAkronim,
Waluta = typWaluta.PLN,
NIP = invoiceData.NIP,
NazwaIAdres = "",
Nazwa = customerAkronim,
Ulica = "",
Miejscowosc = "" ,
Nr_domu = "",
Nr_lokalu = "",
KodPocztowy = "",
PlatnikVAT = "Tak",
Odbiorca = "Tak",
Dostawca = "Nie",
Inny = "Nie",
UE = "Nie",
Termin = terminDni,
},
Asortymenty = new Dok2DokDokumentAsortyment[]
{
},
}
}
};
List<Dok2DokDokumentAsortyment> lista = new List<Dok2DokDokumentAsortyment>();
for (int i = 0; i < towarkod.Length; i++)
{
lista.Add(new Dok2DokDokumentAsortyment
{
Indeks = "",
Nazwa = towarkod[i],
NazwaPelna = towarNazwa[i],
StawkaVAT = "23",
Magazyn = string.Empty,
Ilosc = Convert.ToDecimal(ilosc[i]),
Jm = "szt",
Cena = Convert.ToDecimal(cena[i]),
ProcentRabatu = 0,
PKWiU = string.Empty,
Rodzaj = "towar",
TPU1 = "towar",
Precyzja = 2,
KGO = 0,
Waga = 0,
});
}
item.Dokument[0].Asortymenty = lista.ToArray();
serializer2.Serialize(writer, item);
writer.Close();
if (File.Exists(pathToXMLInvoice))
{
try
{
fApi.ApiSetDates(DateTime.MinValue, DateTime.MinValue, _invoiceYear, _invoiceMonth);
if (fApi.ImportFakturFromXML(pathToXMLInvoice) != 0)
{
throw new System.Exception(fApi.GetLastError());
}
else
{
MessageBox.Show("Import faktury z XMLa zakończony powodzeniem.", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch(Exception x)
{
MessageBox.Show(x.ToString());
}
}
try
{
fApi.Dispose();
fApi = null;
}
catch
{
}
Re: R2API - Użytkownik nie zgadza się na warunki licencji
: śr, 21 lipca 2021 10:50
autor: Ul
Proszę pamiętać, aby ustawić odpowiednio DATY oraz OKRES KSIĘGOWY (w oknie Daty) - importowane faktury muszą się zmieścić w tym OKRESIE (tzn. w wybranym miesiącu).
Jeśli natomiast życzyłby Pan zlecić nam szczegółową analizę załączonego kodu, która jest usługą dodatkową - poproszę o kontakt z działem serwisu pod numerem 71 38 28 702.
Re: R2API - Użytkownik nie zgadza się na warunki licencji
: pt, 23 lipca 2021 12:15
autor: Tymoteusz
Udało mi się dojść do tego, dlaczego R2API w moim przypadku nie działało - okazało się, że cała procedura łączenia z API musi być wykonana wewnątrz poniższego kodu, i już wszystko działa: