Aktywne sesje - wycinanie wszystkich

Problemy i pomysły związane z innymi modułami czyli np. środki trwałe, import, zamówienia ...

Moderator: mikey

Kris86
Posty: 134
Rejestracja: 09 wrz 2021, 18:27
Rola: Administrator CDN XL
Wersja: 2019

Aktywne sesje - wycinanie wszystkich

Post autor: Kris86 »

Witam,
Chciałbym wycinać sesje (System -> Aktywne sesje) za jednym zamachem, zaznaczając je wszystkie na raz.
Czy jest na to jakiś skrót klawiaturowy ? Może inny sposób ?

Dzięki

sebek
Posty: 248
Rejestracja: 16 sty 2012, 23:21
Rola: Konsultant CDN XL
Lokalizacja: Łódź/Częstochowa
Kontakt:

Re: Aktywne sesje - wycinanie wszystkich

Post autor: sebek »

Witam,

Można dorobić procedurę uruchamianą z poziomu Wykresów, która wykona takie wycięcie sesji użytkowników.

Pozdrawiam.
Sebek

Kris86
Posty: 134
Rejestracja: 09 wrz 2021, 18:27
Rola: Administrator CDN XL
Wersja: 2019

Re: Aktywne sesje - wycinanie wszystkich

Post autor: Kris86 »

Można prosić jakiś przykład takiej procedury ?

Dzięki

Kris86
Posty: 134
Rejestracja: 09 wrz 2021, 18:27
Rola: Administrator CDN XL
Wersja: 2019

Re: Aktywne sesje - wycinanie wszystkich

Post autor: Kris86 »

Cześć,
może ktoś pomóc?

Dzięki

Awatar użytkownika
viesiek1
Posty: 416
Rejestracja: 03 maja 2011, 18:40
Rola: Administrator CDN XL
Wersja: 2023
Lokalizacja: Bielsko-Biała
Kontakt:

Re: Aktywne sesje - wycinanie wszystkich

Post autor: viesiek1 »

Ja mam to tak zrobione. Najpierw wyświetlam listę sesji:

Kod: Zaznacz cały

SELECT 
          SES_SesjaID
	, SES_OpeIdent AS OpeIdent
	, SES_Modul    AS Modul
	, SES_Komputer AS Komputer
	, SES_NrWersji
	, DATEADD(SS, SES_Start, '19900101') AS Poczatek
FROM CDN.Sesje
WHERE 
        SES_Aktywna = 0 
	-- AND SES_OpeIdent = 'WS'
ORDER BY SES_Start
A potem wycinam:

Kod: Zaznacz cały

UPDATE CDN.Sesje SET 
          SES_Aktywna = 1
	, SES_Stop       = " + Global.GetCurrentClarionTime());
WHERE SES_SesjaID = 1234567
Aktualny czas pobieram tak:

Kod: Zaznacz cały

        public static string GetCurrentClarionTime()
        {
            string lResult = string.empy;

            try
            {
                DateTime lBeginTime = new DateTime(1990, 1, 1, 0, 0, 0);
                DateTime lTimeNow = DateTime.Now;
                TimeSpan lResultTime = lTimeNow - lBeginTime;

                lResult = lResultTime.TotalSeconds.ToString().Replace(",", ".");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Błąd: GetCurrentClarionTime" + ex.Message, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return lResult;
        }

Wiesław Świergała

tel: +48 33 829 54 50
e-mail: wieslaw.swiergala@hydro.com.pl

http://www.hydro.com.pl

Kris86
Posty: 134
Rejestracja: 09 wrz 2021, 18:27
Rola: Administrator CDN XL
Wersja: 2019

Re: Aktywne sesje - wycinanie wszystkich

Post autor: Kris86 »

viesiek1 pisze:
15 lis 2021, 12:50
Ja mam to tak zrobione. Najpierw wyświetlam listę sesji:

Kod: Zaznacz cały

SELECT 
          SES_SesjaID
	, SES_OpeIdent AS OpeIdent
	, SES_Modul    AS Modul
	, SES_Komputer AS Komputer
	, SES_NrWersji
	, DATEADD(SS, SES_Start, '19900101') AS Poczatek
FROM CDN.Sesje
WHERE 
        SES_Aktywna = 0 
	-- AND SES_OpeIdent = 'WS'
ORDER BY SES_Start
A potem wycinam:

Kod: Zaznacz cały

UPDATE CDN.Sesje SET 
          SES_Aktywna = 1
	, SES_Stop       = " + Global.GetCurrentClarionTime());
WHERE SES_SesjaID = 1234567
Aktualny czas pobieram tak:

Kod: Zaznacz cały

        public static string GetCurrentClarionTime()
        {
            string lResult = string.empy;

            try
            {
                DateTime lBeginTime = new DateTime(1990, 1, 1, 0, 0, 0);
                DateTime lTimeNow = DateTime.Now;
                TimeSpan lResultTime = lTimeNow - lBeginTime;

                lResult = lResultTime.TotalSeconds.ToString().Replace(",", ".");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Błąd: GetCurrentClarionTime" + ex.Message, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return lResult;
        }

Tylko chodzi mi o wszystkie sesje za jednym razem. Tutaj podejrzewam że muszę odnosić się do każdej sesji z osobna. Zapomniałem nadmienić że ma to działać z datą wstecz o 1 dzień (z dnia poprzedniego). Czyli wycinamy wszystkie wiszące sesje z dnia poprzedniego.

Lilpri
Posty: 127
Rejestracja: 13 maja 2019, 11:04
Rola: Administrator CDN XL

Re: Aktywne sesje - wycinanie wszystkich

Post autor: Lilpri »

No to chyba najprościej będzie tak:

Kod: Zaznacz cały

select SES_Aktywna,ses_sesjaid,ses_opeident,ses_modul, ses_komputer, CONVERT(Date,CDN.TSToDate(SES_Start,1)), convert(date,GETDATE()),convert(date,GETDATE()-1) from CDN.sesje 
where SES_Aktywna=0 and CDN.TSToDate(SES_Start,1)<GETDATE()-1 

ODPOWIEDZ