Generare activități
Funcțiile customizate de tipul "Generare activități sunt de două tipuri: STANDARD și INLINE și sunt destinate adăugării activităților, fie la validarea documentului, fie conform frecvenței stabilite în activități programate. Acestea se vor adăuga din zona dreaptă a modulului, unde se află și zona de prefiltrări, grupări etc. și se va selecta o funcție customizată pe baza căreia se va genera activitatea. În cadrul funcției customizate de tip "Generare activități" este necesară selectarea modulului unde se dorește să fie adusă funcția.
Pentru funcțiile INLINE se va realiza un select care să returneze structura prezentată, iar pentru funcțiile STANDARD se va realiza un INSERT INTO @ret_table, respectând aceeași structură.
Parametri funcție customizată
Parametru | Tip | Descriere |
---|---|---|
@al_tabel | VARCHAR(6) | ANLUNA, parte din cheia primară a înregistrării asociate |
@pl_tabel | SMALLINT | PCT_LCR, parte din cheia primară a înregistrării asociate |
@id_tabel | NUMERIC(18,0) | ID, parte din cheia primară a înregistrării asociate |
Structura returnată de funcția customizată
Structură | Tip | Descriere |
---|---|---|
id_extern | VARCHAR(50) | Identificator extern (OPȚIONAL) |
id_activitate_soc | BIGINT | ID domeniu activitate |
id_echipa | BIGINT | ID echipă (OPȚIONAL) |
subiect | NVARCHAR(255) | Subiectul activității |
descriere | NVARCHAR(2000) | Detaliile activității (OPȚIONAL) |
id_tipact | BIGINT | ID tip activitate |
prioritate | TINYINT | prioritate Valori din listă: 0 = Ridicata 1 = Normala 2 = Scazuta câmp OPȚIONAL, implicit 1 |
user_aloc | VARCHAR(128) | Utilizator alocat (OPȚIONAL) |
data_aloc | DATETIME | Data și ora alocării (OPȚIONAL, implicit data curentă) |
durata_est | INT | Durata în minute |
data_start | SMALLDATETIME | Data de începere programată (OPȚIONAL) |
data_fin | SMALLDATETIME | Data de finalizare programată (OPȚIONAL) |
tip_per_avert | VARCHAR(1) | Tip perioadă avertizare Valori din listă: F = Fără M = Minute O = Ore Z = Zile câmp OPȚIONAL, implicit F |
nr_per_avert | SMALLINT | Număr de perioade avertizare (OPȚIONAL, implicit 0) |
observatii | NVARCHAR(500) | Observații activitate (OPȚIONAL) |
referinta | NVARCHAR(250) | Referința activității (OPȚIONAL) |
lista_resurse | VARCHAR(MAX) | Lista de ID-uri ale resurselor asociate (separate prin virgulă, câmp OPȚIONAL) |
lista_dep_fin_start | VARCHAR(MAX) | Lista de ID-uri ale activităților de a căror finalizare depinde începerea activității generate (separate prin virgulă, câmp OPȚIONAL) |
lista_dep_start_start | VARCHAR(MAX) | Lista de ID-uri ale activităților de a căror începere depinde începerea activității generate (separate prin virgulă, câmp OPȚIONAL) |
lista_dep_fin_fin | VARCHAR(MAX) | Lista de ID-uri ale activităților de a căror finalizare depinde finalizarea activității generate (separate prin virgulă, câmp OPȚIONAL) |
lista_dep_start_fin | VARCHAR(MAX) | Lista de ID-uri ale activităților de a căror începere depinde finalizarea activității generate (separate prin virgulă, câmp OPȚIONAL) |
nume_tabel | VARCHAR(50) | Denumirea tabelului înregistrării asociate (OPȚIONAL) |
al_tabel | VARCHAR(6) | ANLUNA, parte din cheia primară a înregistrării asociate (OPȚIONAL) |
pl_tabel | SMALLINT | PCT_LCR, parte din cheia primară a înregistrării asociate (OPȚIONAL) |
id_tabel | NUMERIC(18,0) | ID, parte din cheia primară a înregistrării asociate (OPȚIONAL) |
Exemplu de funcție customizată INLINE pentru generarea activităților: Generare activitate pentru livrarea comenzilor
Pentru funcția STANDARD se va insera în tabela @ret_table, urmat de același select:
INSERT INTO @ret_table(id_activitate_soc, subiect, descriere, id_tipact, prioritate, user_aloc, data_aloc, durata_est, data_start, data_fin, nume_tabel, al_tabel, pl_tabel, id_tabel)
SELECT id_activitate_soc = 10091, -- ID domeniu de activitate
subiect = 'Productie',
descriere = 'Livrare ' + l.denpr,
id_tipact = 31, -- ID tip de activitate
prioritate = 1,
user_aloc = 'livrari1',
data_aloc = GETDATE(),
durata_est = 30,
data_start = CAST(data_liv AS SMALLDATETIME),
data_fin = DATEADD(MINUTE, 30, data_liv),
nume_tabel = 'comenziclienti',
al_tabel = @al_tabel,
pl_tabel = @pl_tabel,
id_tabel = @id_tabel
FROM comenziclienti c
INNER JOIN lincomnzclienti_view l ON l.anluna = c.anluna AND l.pl_comcli = c.pct_lcr AND l.id_comcli = c.id
WHERE c.anluna = @al_tabel AND c.pct_lcr = @pl_tabel AND c.id = @id_tabel