API - XLOtwarcieDokumentuZamInfo

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

KrzysztofKK
Posty: 12
Rejestracja: 19 sie 2018, 23:04
Rola: Administrator CDN XL
Wersja: 2017

API - XLOtwarcieDokumentuZamInfo

Post autor: KrzysztofKK »

witam Serdecznie

Mam problem z określeniem dwóch parametrów dla przekazywanych zmiennych w funkcji API - XLOtwarcieDokumentuZamInfo.
Poniżej kod aplikacji :
- logowanie
- otwarcie dokumentu
- zamknięcie dokumentu
- wylogowanie

Kod: Zaznacz cały

//logowanie do ERP XL wersja 2022
            XLLoginInfo_20220 Login = new XLLoginInfo_20220();
            Login.Wersja = 20220;
            Login.ProgramID = "ZamCDNXL";
            Login.Baza = "TEST";
            Login.OpeIdent = "ADMIN";
            Login.PlikLog = @"C:\IT\logi.log";
            Login.TrybWsadowy = 1;
            Login.OpeHaslo = "admin";
            //Login.UtworzWlasnaSesje = 1;
            //Login.SerwerKlucza = "172.16.64.2::5000025481";
            Int32 SesjaID = 0;
            //Int32 PracownikID = 0;
            int LoginResult = cdn_api.cdn_api.XLLogin(Login, ref SesjaID);

            //okna potwierdzające logowanie lub nie
            if (LoginResult == 0)
            {
                MessageBox.Show("ok");
            }
            else
            {
                MessageBox.Show("problem");
            }
            //otwarcie dokumentu
            XLOtwarcieDokumentuZamInfo_20220 otwzam = new XLOtwarcieDokumentuZamInfo_20220();
            otwzam.Wersja = 20220;
            otwzam.ZaNTyp = ?????;
            otwzam.Tryb = 2;
            otwzam.ZaNFirma = 108801;
            otwzam.ZaNNumer = ?????;

            //
            // zamykanie dokumentu
            XLZamkniecieDokumentuZamInfo_20220 zamdok = new XLZamkniecieDokumentuZamInfo_20220();
            //XLClose = XLZamkniecieDokumentuZamInfo_20152();
            zamdok.Wersja = 20220;
            zamdok.TrybZamkniecia = 6; //#wg dok Otwórz
            //XLClose.DataRealizacji = data;
            int InfoXLClose = cdn_api.cdn_api.XLZamknijDokumentZam(idOrder, zamdok);

            // wylogowanie sesji
            cdn_api.cdn_api.XLLogout(SesjaID);
I teraz mam problem ponieważ nie wiem czy :
ZaNTyp to jest to samo co [ZaN_GIDTyp] ?
ZaNNumer to jest to samo co Zan_GidNumer ?

Innymi słowy próbuje dojść do takiej wersji aby móc zmieć wartość np. ilości na danym produkcie ale aby do tego dojść to z tego co wyszukałem najpierw muszę opanować samo otwieranie dokumentu a jakoś mi to nie idzie.

Mam pytanie czy aplikacja z funkcjami API musi być bezpośrednio uruchamiana z katalogu gdzie jest zainstalowany ERP XL - dlaczego pytam a dlatego że po zamknięciu dokumentu nie podnosi mi się formatka. bardzo proszę o pomoc. Dziękuje.

Polar19
Posty: 2
Rejestracja: 13 paź 2022, 15:58
Rola: Konsultant CDN XL

Re: API - XLOtwarcieDokumentuZamInfo

Post autor: Polar19 »

Hej, z opisu COMARCH wynika że są tylko dwa obowiązkowe parametry wywołania cyt.:
Wersja - numer wersji API
ZaNTyp - GID zamówienia lub oferty, które ma być otwarte,
pozostałe są opcjonalne.

Spróbuj na początek w ten właśnie sposób. Osobiście nie korzystałem z tej funkcji więc więcej nie będę się mądrzył.
Pozdr.

Rodacki
Posty: 2
Rejestracja: 14 paź 2022, 13:06
Rola: Konsultant CDN XL
Wersja: 2019

Re: API - XLOtwarcieDokumentuZamInfo

Post autor: Rodacki »

Cześć,

ZanTyp to jest to samo co Zan_GidTyp, a ZanNumer to jest to samo co Zan_GidNumer. Wprowadzenie tam wartości powinno skutkować otwarciem dokumentu - w XLu objawia się to jako "czerwony dokument" na liście.

Nie widzę abyś wywołał funkcje XLOtworzDokumentZam, która zbierze IDDokumentu (u ciebie idOrder), którą następnie będziesz mógł wykorzystać przy zamykaniu Zamówienia Tak jak zrobiłeś to przy logowaniu - int LoginResult = cdn_api.cdn_api.XLLogin(Login, ref SesjaID); czy też zamnięciu dokumentu int InfoXLClose = cdn_api.cdn_api.XLZamknijDokumentZam(idOrder, zamdok);

I dokładnie tak samo do testów zrób sobie IF, który zwróci Ci błąd API, abyś miał szersze spektrum czy wszystko jest ok.

ODPOWIEDZ