Version 5 (modified by JP, 13 years ago) |
---|
Przykłady workflow
W tym miejscu publikowane będą przykładowe kwerendy użyteczne przy budowaniu warunków, przekazywaniu parametrów do komend itp.
WARUNKI
-- W1. Sprawdzenie czy jest plik -- Brak SELECT NOT EXISTS( SELECT doc_id FROM attachments WHERE doc_id = (SELECT doc_id FROM documents WHERE procid = {PROCID})) -- Jest SELECT EXISTS( SELECT doc_id FROM attachments WHERE doc_id = (SELECT doc_id FROM documents WHERE procid = {PROCID})) -- W2. Sprawdzenie czy są zamieszczone opinie kierowników -- pobierane jako parametry z bpm_properties.id____ = 1 -- brak SELECT count(*) = 0 FROM bpm_property_values WHERE id____ IN (12,13,14) AND procid = {PROCID} AND value_ != '' -- są SELECT count(*) > 0 FROM bpm_property_values WHERE id____ IN (12,13,14) AND procid = {PROCID} AND value_ != ''
-- Sprawdzenie czy dokument jest powiązany ze sprawą i dokumentem (zakładka powiązania) SELECT dlp.prc_id IS NOT NULL AND dld.doc_id IS NOT NULL FROM documents_view dv LEFT JOIN doc_link_proc dlp USING(doc_id) LEFT JOIN doc_link_doc dld ON dv.doc_id = dld.rel_to WHERE dv.doc_id = {DOC_ID}
PRZYPISANIA
-- P1. Przypisanie jako osoby tworzącej dokument SELECT ARRAY[o.orunid] FROM orgtree_view o INNER JOIN documents d ON d.adduid = o.usr_id WHERE d.procid = {PROCID} -- -- P2. Przypisanie akceptanta (pobierany z właściwości) SELECT ARRAY[orunid] FROM organization_units WHERE orunid = {procedures.AKCEPTANT CZŁONEK ZARZĄDU} -- -- P3. Przypisanie osób które zaakceptowały określony etap (np. 44) SELECT ARRAY[orunid] FROM stages WHERE ptstid = 44 AND procid = {PROCID} -- -- P4. Przypisanie osoby odpowiedzialnej ze sprawy SELECT ARRAY(SELECT o.orunid FROM processes p INNER JOIN orgtree_view o ON p.rspuid = o.usr_id WHERE prc_id = {PRC_ID})
KWERENDY DO PARAMETRU SELECT[]
-- Członkowie zarządu SELECT orunid as value, fullnm || ' - ' || ndenam as caption FROM orgtree_view WHERE orunid IN (3,14,15,16) == DYNAMICZNE WARTOŚCI PARAMETRÓW KOMEND == -- Utwórz komentarz dscrpt="SQL::SELECT CASE WHEN (SELECT EXISTS( SELECT value_ FROM bpm_property_values WHERE id____ = 20 AND sop_id = {SOP_ID})) THEN (SELECT value_ FROM bpm_property_values WHERE id____ = 20 AND sop_id = {SOP_ID}) ELSE 'Bez uwag' END AS result FROM stages WHERE sop_id = {SOP_ID}" -- Utwórz przypomnienie w sprawie windykacyjnej -- dla handlowca usr_id="SQL::SELECT seller FROM vindication.vind_proc_view WHERE prc_id = {PRC_ID}", start_="SQL::SELECT fxterm - interval '3 days' FROM vindication.vind_proc_view WHERE prc_id = {PRC_ID}",dscrpt="Uwaga! Za 3 dni mija termin zapłaty za wierzytelność"