Programy dla firm - InsERT
Wróć do wyszukiwarki

e-Pomoc techniczna

Subiekt nexo – W jaki sposób poprzez profilowanie ukryć dane magazynu dla użytkownika?

Ostatnia modyfikacja: 03.10.2025

Program: Gratyfikant nexo, InsERT nexo, Rachmistrz nexo, Rewizor nexo, Sello NX, Subiekt nexo

Kategoria: PRO+, Personalizacja, Uprawnienia

Subiekt nexo PRO​ umożliwia ukrycie danych magazynu dla danego użytkownika za pomocą funkcjonalności udostępnionych w ramach modułu Widoczność danych​ PRO+. Zakładka Dostęp do danych umożliwia ukrycie przed określonym użytkownikiem danych związanych ze wskazanym magazynem, jednostką organizacyjną (oddziałem), stanowiskiem kasowymrachunkiem bankowym lub biblioteką załączników.

Lista miejsc, na które wpływa ​widoczność danych:

  • filtry w serwisach – przy profilowaniu ukrywana jest opcja (dowolny) oraz ukryte magazyny/oddziały znikają z listy magazynów/oddziałów;
  • dokumenty wystawione na ukryte magazyny/oddziały (w serwisach, raportach itp.);
  • listy wyboru magazynu/oddziału na formatkach dokumentów;
  • formatka asortymentu – zakładka Stany, znikają ukryte magazyny;
  • informator asortymentu – zakładka Stany w magazynach (w zależności od ustawienia), znikają ukryte magazyny;
  • kontekst programu – znikają ukryte magazyny/oddziały z list wyboru​.

Widoczność danych dotyczących wybranego magazynu można ograniczyć w programie na dwa sposoby:

  1. Przy pomocy intuicyjnego interfejsu dostępnego w ramach Widoczności danych PRO+;


  2. Z wykorzystaniem wiedzy odnośnie struktury bazy danych oraz znajomości języków bazodanowych, co zostało opisane w dalszej części artykułu.​​

Uwaga! Poniższa cześć artykułu przedstawia przykład jednego z zaawansowanych rozwiązań przygotowanych dla programu Subiekt nexo. W razie problemów prosimy o kontakt z naszymi dyplomowanymi serwisantami w celu konfiguracji.​

Profilowanie danych umożliwia ukrycie danych magazynu dla danego użytkownika. Mechanizm profilowania danych nie jest dostępny w programie i jego wykorzystanie wymaga wiedzy z zakresu administrowania nexo oraz bazami danych.

Dzięki wykorzystaniu możliwości języka SQL dane mogą zostać ukryte na dwa sposoby​:​

W przypadku skorzystania z pierwszego sposobu należy:

1. Utworzyć definicję widoczności danych. Definicji może być wiele. Każda określa zasady dostępu do danych.

INSERT INTO ModelDanychContainer.DefinicjeWidocznosciDanych (Nazwa)
VALUES ('Nazwa definicji widoczności danych');
SELECT SCOPE_IDENTITY() AS 'Id utworzonej definicji';​


2. Do utworzonej definicji widoczności danych przypisać użytkowników, którzy powinni ją posiadać.​ W tym celu potrzebne będą identyfikatory użytkowników, które można odczytać za pomocą zapytania:​

SELECT Id, Login, Sygnatura from ModelDanychContainer.Uzytkownicy;


3. Utworzyć powiązania wybranych użytkowników z definicją widoczności danych:

UPDATE ModelDanychContainer.Uzytkownicy
SET DefinicjaWidocznosciDanychId = {Id utworzonej definicji widoczności danych}
WHERE Id IN (
'{Id pierwszego użytkownika}',
'{Id drugiego użytkownika}',
(...)
);

Powodzenie przypisania użytkowników do definicji zostanie potwierdzone odpowiednim komunikatem.


4. Odczytać identyfikator magazynu zapytaniem:

SELECT * from ModelDanychContainer.Magazyny;


5. Utworzyć profile korzystając z zapytania:

INSERT INTO ModelDanychContainer.MagazynProfile (Magazyn_Id, DefinicjaWidocznosciDanychId)
VALUES ({Id magazynu}, {Id definicji widoczności danych});​

Powodzenie utworzenia profilu zostanie potwierdzone odpowiednim komunikatem.​


Altern​atywnie można posłużyć się skryptami, w których należy uzupełnić pola własnymi danymi.

1. Utworzenie definicji widoczności danych dla użytkownika.

DECLARE @nazwaUzytkownika AS VARCHAR(32);
DECLARE @nazwaDefinicjiWidocznosciDanych AS VARCHAR(32);
 
DECLARE @IdUtworzonejDefinicjiTable TABLE (Id INT);
DECLARE @IdUtworzonejDefinicji AS INT;
DECLARE @IdUzytkownika AS UNIQUEIDENTIFIER;
 
-- Pola do uzupełnienia
SET @nazwaUzytkownika = 'Jan Kowalski';
SET @nazwaDefinicjiWidocznosciDanych = 'Definicja widoczności danych Jana Kowalskiego';
 
-- Tworzenie definicji widoczności danych
INSERT INTO ModelDanychContainer.DefinicjeWidocznosciDanych (Nazwa)
OUTPUT inserted.Id INTO @IdUtworzonejDefinicjiTable
VALUES (@nazwaDefinicjiWidocznosciDanych);
 
SET @IdUtworzonejDefinicji = (SELECT TOP 1 Id FROM @IdUtworzonejDefinicjiTable);
 
SELECT @IdUzytkownika = Id FROM ModelDanychContainer.Uzytkownicy WHERE Nazwa = @nazwaUzytkownika;
 
UPDATE ModelDanychContainer.Uzytkownicy
SET DefinicjaWidocznosciDanychId = @IdUtworzonejDefinicji
WHERE Id = @IdUzytkownika;
 
SELECT Id, Nazwa FROM ModelDanychContainer.DefinicjeWidocznosciDanych
WHERE Id = @IdUtworzonejDefinicji
 
SELECT Nazwa, DefinicjaWidocznosciDanychId FROM ModelDanychContainer.Uzytkownicy
WHERE Id = @IdUzytkownika

2. Dodanie kolejnego użytkownika do tej samej definicji widoczności danych.

DECLARE @nazwaUzytkownika AS VARCHAR(32);
DECLARE @IdDefinicji AS INT;
 
DECLARE @IdUzytkownika AS UNIQUEIDENTIFIER;
 
-- Pola do uzupełnienia
SET @nazwaUzytkownika = 'Jan Kowalski';
SET @IdDefinicji = 100000; -- Id utworzonej wcześniej definicji widoczności danych
 
-- Wiązanie użytkownika z istniejącą definicją widoczności danych
SELECT @IdUzytkownika = Id FROM ModelDanychContainer.Uzytkownicy WHERE Nazwa = @nazwaUzytkownika;
 
UPDATE ModelDanychContainer.Uzytkownicy
SET DefinicjaWidocznosciDanychId = @IdDefinicji
WHERE Id = @IdUzytkownika;
 
SELECT Nazwa, DefinicjaWidocznosciDanychId FROM ModelDanychContainer.Uzytkownicy
WHERE Id = @IdUzytkownika​

3. Profilowanie magazynu w definicji widoczności danych – wykonywane wielokrotnie dla różnych magazynów​.

DECLARE @symbolMagazynu AS VARCHAR(32);
DECLARE @IdDefinicji AS INT;
 
DECLARE @IdMagazynu AS INT;
 
-- Pola do uzupełnienia
SET @symbolMagazynu = 'MAG';
SET @IdDefinicji = 100000; -- Id utworzonej wcześniej definicji widoczności danych
 
-- Wiązanie magazynu z definicją widoczności danych
SELECT @IdMagazynu = Id FROM ModelDanychContainer.Magazyny WHERE Symbol = @symbolMagazynu;
 
INSERT INTO ModelDanychContainer.MagazynProfile (Magazyn_Id, DefinicjaWidocznosciDanychId)
VALUES (@IdMagazynu, @IdDefinicji);
 
SELECT Magazyn_Id, DefinicjaWidocznosciDanychId FROM ModelDanychContainer.MagazynProfile
WHERE DefinicjaWidocznosciDanychId = @IdDefinicji​​

Powiązane artykuły e-Pomocy technicznej:

Czy artykuł był pomocny?TAKNIE

Dlaczego artykuł oceniasz jako nieprzydatny?

Dziękujemy za opinię
drukujWróć do wyszukiwarki