Na temat Comarch ERP XL API pisałem już wcześniej. Proces instalacji Visual Studio oraz niezbędnej konfiguracji jest opisany w tym artykule. Więc nie będę go tutaj powielał. Zajmę się bezpośrednio przykładem programu, który doda nowy dokument do Comarch ERP XL. Kod programu wygląda następująco, poniżej omówię jego ważne elementy.
using System;
using cdn_api;
namespace XLNowyDokument
{
class APIDodajDokument
{
[STAThread]
static void Main(string[] args)
{
XLLoginInfo_20221 Login = new XLLoginInfo_20221();
Login.Wersja = 20221;
Login.ProgramID = "API.NET";
Login.Baza = "TEST";
Login.OpeIdent = "WHATIT";
Login.OpeHaslo = "12345678";
Int32 SessionID = 0;
Int32 DocumentHeaderID = 0;
int LoginResult = cdn_api.cdn_api.XLLogin(Login, ref SessionID);
if (LoginResult == 0)
{
XLDokumentNagInfo_20221 doknag = new XLDokumentNagInfo_20221();
doknag.Wersja = 20221;
doknag.Typ = 2033;
doknag.Opis = "Opis dokumentu";
doknag.Seria = "";
doknag.FRSID = 0;
doknag.MagazynD = "3003";
int dodajdok = cdn_api.cdn_api.XLNowyDokument(SessionID, ref DocumentHeaderID, doknag);
XLDokumentElemInfo_20221 dokele = new XLDokumentElemInfo_20221();
dokele.Wersja = 20221;
dokele.TowarKod = "TEST";
dokele.Ilosc = "1.00";
dokele.Cena = "10.00";
int dodajelem = cdn_api.cdn_api.XLDodajPozycje(DocumentHeaderID, dokele);
XLZamkniecieDokumentuInfo_20221 zamdok = new XLZamkniecieDokumentuInfo_20221();
zamdok.Wersja = 20221;
zamdok.Tryb = 1;
int zamknijdok = cdn_api.cdn_api.XLZamknijDokument(DocumentHeaderID, zamdok);
}
cdn_api.cdn_api.XLLogout(SessionID);
}
}
}
Namiary na bazę danych Comarch ERP XL, z której ma korzystać nasz program podajemy w parametrach:
Login.Baza = "TEST";
Login.OpeIdent = "WHATIT";
Login.OpeHaslo = "12345678";
Jak pisałem wcześniej, w tym artykule opisane są szczegółowo poszczególne parametry.
Na początek zajmijmy się dodaniem nagłówka dokumentu. Do dodania nagłówka dokumentu program potrzebuje kilku informacji. Ustawiamy je za pomocą poniższych parametrów:
doknag.Typ = 2033;
– Jest to numer z pola CDN.TraNag.TrN_GIDTyp i w tym przypadku 2033 oznacza, że będziemy dodawać dokument FS.
– Myślę, że nie ma co tu się rozpisywać, jest to po prostu opis dokumentu, który pojawi się na zakładce nagłówek w Comarch ERP XL.
doknag.Opis = "Opis dokumentu";
– Seria z jaką ma być dodany dokument, w tym przypadku ustawiłem wartość na pustą.
doknag.Seria = "";
– ID centrum struktury praw, należy pamiętać by operator, który jest podany w parametrze
doknag.FRSID = 0;Login.OpeIdent
miał uprawnienia do danego centrum.
– Magazyn źródłowy dokumentu, co ciekawe nie podajemy tutaj GID z bazy danych, a Kod magazynu.
doknag.MagazynD = "3003";
Po dodaniu nagłówka dokumentu trzeba dodać jego element odpowiedzialne za to będą następujące parametry:
dokele.TowarKod = "TEST";
– Kod towaru.
– Ilość towaru.
dokele.Ilosc = "1.00";
– Cena towaru.
dokele.Cena = "10.00";
Po wypełnieniu wszystkich parametrów i uruchomieniu programu powinien zostać dodany dokument FS z 1szt. towaru TEST o cenie 10zł. Program wyświetli dodany dokument na formatce Comarch ERP XL i zostawi użytkownikowi możliwość edycji, zatwierdzenia bądź odrzucenia dokumentu.
Dzieje się tak dlatego, że mamy w kodzie programu jeszcze jeden dodatkowy parametr zamdok.Tryb = 1;
Jego wartości to odpowiednio:
1 – Interakcyjny – Program kończy się otwarciem formatki dokumentu z możliwością modyfikacji. Tryb ten umożliwia przesłanie pustego akronimu kontrahenta.
2 – Wsadowy – Program zamyka dokumenty bez żadnej dodatkowej akcji. Jeśli nie prześlemy kontrahenta to zostanie zwrócony błąd i dokument nie zostanie wystawiony.
3 – Domyślny – tryb ustawiany jest na interakcyjny lub wsadowy w zależności od tego czy został przesłany kontrahent czy nie.
Koniec 🙂
Jeżeli pomogłem to ,a będę miał więcej energii na pisanie kolejnych ciekawych wpisów.
Mam błąd 339 przy tworzeniu nagłówka dokumentu. Taką wartość zwraca mi zmienna doknag.
W dokumentacji nie ma błędu o takim numerze dla funkcji XLNowyDokument.
Dziękuję za informację. Będę dalej walczył.
Przesłałem szczegóły na e-mail.