From 1014e475ddca95f70d2c9db017ae93c78779d669 Mon Sep 17 00:00:00 2001 From: Developer01 Date: Thu, 6 Aug 2026 10:35:00 +0200 Subject: [PATCH] taskFLOW und orgFLOW --- 01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.4.sql | 130 ++++-------------- .../08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.9.0.sql | Bin 10024 -> 12554 bytes .../08_ORGFLOW/SQL/UPDATE_SCRIPTS/3.1.0.sql | Bin 8758 -> 12026 bytes .../08_ORGFLOW/SQL/UPDATE_SCRIPTS/3.3.0.sql | Bin 3232 -> 6272 bytes 4 files changed, 24 insertions(+), 106 deletions(-) diff --git a/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.4.sql b/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.4.sql index 6477e5d..3acc10f 100644 --- a/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.4.sql +++ b/01_SMART_UP_TOOLS/02_TASKFLOW/Updates/3.4.sql @@ -1,113 +1,31 @@ -UPDATE TBDD_MODULES SET DB_VERSION = '3.3' where NAME = 'Process-Manager'; +UPDATE TBDD_MODULES SET DB_VERSION = '3.4' where NAME = 'Process-Manager'; GO -IF NOT EXISTS ( - SELECT 1 - FROM INFORMATION_SCHEMA.COLUMNS - WHERE TABLE_SCHEMA = 'dbo' - AND TABLE_NAME = 'TBPM_CONTROL_TABLE' - AND COLUMN_NAME = 'INHERIT_VALUE' -) - BEGIN - PRINT 'Spalte INHERIT_VALUE existiert nicht'; - ALTER TABLE TBPM_CONTROL_TABLE ADD INHERIT_VALUE BIT NOT NULL DEFAULT 0 -END - +SET ANSI_NULLS ON GO -IF NOT EXISTS ( - SELECT 1 - FROM INFORMATION_SCHEMA.COLUMNS - WHERE TABLE_SCHEMA = 'dbo' - AND TABLE_NAME = 'TBPM_PROFILE_CONTROLS' - AND COLUMN_NAME = 'DISPLAY_IN_SEPERATE_FORM' -) - BEGIN - PRINT 'Spalte DISPLAY_IN_SEPERATE_FORM existiert nicht'; - ALTER TABLE TBPM_PROFILE_CONTROLS ADD DISPLAY_IN_SEPERATE_FORM BIT NOT NULL DEFAULT 0 - END +SET QUOTED_IDENTIFIER ON GO - ---24.06.2026 MS Kontierungstabelle as sep Form -ALTER TRIGGER [dbo].[TBPM_PROFILE_CONTROLS_AFT_UPD] -ON [dbo].[TBPM_PROFILE_CONTROLS] -FOR UPDATE +ALTER PROCEDURE [dbo].[PRTF_PROFILE_FILES_WORK] @pDocID BIGINT,@pProfilID INTEGER,@pUserID INTEGER, @pMode VARCHAR(100) AS BEGIN - SET NOCOUNT ON; + -- Race Condition verhindern mit MERGE + MERGE TBTF_PROFILE_FILES_WORK AS target + USING (SELECT @pProfilID AS ProfileID, @pDocID AS DocID) AS source + ON (target.ProfileID = source.ProfileID AND target.DocID = source.DocID) + WHEN NOT MATCHED THEN + INSERT (ProfileID, DocID, Action_UserID, Action_When, InWork, Worked) + VALUES (@pProfilID, @pDocID, @pUserID, GETDATE(), 0, 0); - DECLARE - @NAME VARCHAR(50), - @WHO VARCHAR(100), - @CTRL_TYPE VARCHAR(10), - @CTRL_TEXT VARCHAR(100), - @CTRL_CONFIG_TITLE VARCHAR(100); - - SELECT - @NAME = [NAME], - @WHO = CHANGED_WHO, - @CTRL_TYPE = CTRL_TYPE, - @CTRL_TEXT = CTRL_TEXT - FROM inserted; - - IF NOT (UPDATE(NAME) OR UPDATE(CTRL_TEXT)) - RETURN; - - IF @CTRL_TYPE NOT IN ('LBL', 'CHK', 'BUTTON', 'TABLE') - RETURN; - - SET @CTRL_CONFIG_TITLE = @CTRL_TYPE + '.' + @NAME; - SET @WHO = ISNULL(NULLIF(LTRIM(@WHO), ''), 'DD Automatic'); - - -- Eintrag 1: Standard-Titel (für TABLE nur initial mit angepasstem Text) - DECLARE @CTRL_TEXT_INSERT VARCHAR(100) = @CTRL_TEXT; - - IF @CTRL_TYPE = 'TABLE' - AND NOT EXISTS ( - SELECT 1 FROM TBDD_GUI_LANGUAGE_PHRASE WITH (NOLOCK) - WHERE MODULE = 'PM' - AND CAPT_TYPE = 'Caption Validator Control' - AND TITLE = @CTRL_CONFIG_TITLE - AND OBJ_NAME = 'frmValidator' - ) - SET @CTRL_TEXT_INSERT = 'Öffne ' + @CTRL_TEXT + ' in separatem Fenster'; - - INSERT INTO TBDD_GUI_LANGUAGE_PHRASE - (MODULE, TITLE, LANGUAGE, CAPT_TYPE, STRING1, STRING2, ADDED_WHO, OBJ_NAME) - SELECT 'PM', @CTRL_CONFIG_TITLE, L.LANG_CODE, - 'Caption Validator Control', @CTRL_TEXT_INSERT, '', @WHO, 'frmValidator' - FROM TBDD_GUI_LANGUAGE AS L WITH (NOLOCK) - WHERE NOT EXISTS ( - SELECT 1 FROM TBDD_GUI_LANGUAGE_PHRASE WITH (NOLOCK) - WHERE MODULE = 'PM' - AND CAPT_TYPE = 'Caption Validator Control' - AND TITLE = @CTRL_CONFIG_TITLE - AND LANGUAGE = L.LANG_CODE - AND OBJ_NAME = 'frmValidator' - ); - - -- Eintrag 2: Nur für TABLE – FORMCAPTION mit originalem CTRL_TEXT und CAPT_TYPE 'FormTitle' - IF @CTRL_TYPE = 'TABLE' - BEGIN - DECLARE @CTRL_CONFIG_TITLE_FC VARCHAR(100) = @CTRL_TYPE + '.' + @NAME + '.FORMCAPTION'; - - INSERT INTO TBDD_GUI_LANGUAGE_PHRASE - (MODULE, TITLE, LANGUAGE, CAPT_TYPE, STRING1, STRING2, ADDED_WHO, OBJ_NAME) - SELECT 'PM', @CTRL_CONFIG_TITLE_FC, L.LANG_CODE, - 'FormTitle', @CTRL_TEXT, '', @WHO, 'frmValidator' - FROM TBDD_GUI_LANGUAGE AS L WITH (NOLOCK) - WHERE NOT EXISTS ( - SELECT 1 FROM TBDD_GUI_LANGUAGE_PHRASE WITH (NOLOCK) - WHERE MODULE = 'PM' - AND CAPT_TYPE = 'FormTitle' - AND TITLE = @CTRL_CONFIG_TITLE_FC - AND LANGUAGE = L.LANG_CODE - AND OBJ_NAME = 'frmValidator' - ); - END - - -- Zeitstempel aktualisieren - UPDATE pc - SET pc.CHANGED_WHEN = GETDATE() - FROM TBPM_PROFILE_CONTROLS AS pc - JOIN inserted AS i ON pc.GUID = i.GUID; -END; \ No newline at end of file + IF @pMode = 'FreeFile' + BEGIN + PRINT 'FreeFile ...' + UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 0, Action_When = NULL, Action_UserID = @pUserID + WHERE DocID = @pDocID AND ProfileID = @pProfilID AND InWork = 1; + END + ELSE IF @pMode = 'InWork' + UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 1, Action_When = GETDATE(), Action_UserID = @pUserID + WHERE DocID = @pDocID AND ProfileID = @pProfilID AND InWork = 0; + ELSE IF @pMode = 'Worked' + UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 0,Worked = 1, Action_When = GETDATE(), Action_UserID = @pUserID + WHERE DocID = @pDocID AND ProfileID = @pProfilID AND Worked = 0; +END diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.9.0.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/2.9.0.sql index f248fa231dce5de1df3c1d4061ded54f1627b22a..9c544acddd4cb5bfc5d57c6212dd81a003b48aa2 100644 GIT binary patch delta 1919 zcmb7F-A)rx5S}JrT!KcV4WhNXhQuwQEiT3=qG(H(Qq#Y5w-iOv6eLljl1MQz(d@lf zlJf-KdEt%m33vt{K<|A8WBlfvZg(k#Xg2MhGiT1sd^6w7ey)7j{8*37e|5e`#|u=Y zGc-a)S|)=k*ttT#s83ngEmIx)GFH3v7QYN_(GI$^S!EmG8iA0D&|A z0E}TyhpWVZm?zwu+*h2ia6Bq8WkfhQ4o+g=1?ly=`PKS>8FYshq5LnPR1<14SSCar zw+y*+5oAAsxsg>Xv_KoNsGo{Vi-SZA{Jk*A@dcy^*tx*HV5vUh>EggeUAidX#$e8) zi`j0GX>#-qPZ_q-fWPGs-;@6`PmD{dALJ)PH?C5w8+sz{PQ$z z_U0R(Ie;Fvq-M(+>RN)nKP!{)%Tq1|nF~ubvg6ohz}U7N$J+?p#NL!DrudW?_sRgf z1}*=hCC}!RhLrk)fPr$Qj!zJGUJW5-5v~nigEUjHsZu0Yr=<&E6V_GRJ8|m5HCJJf zQ3Lr3THo)sKtDW7{ci~qtMAL>K@@y?d`=H`s7i3eM4yEsN@qaUKvqh@TSv2dw}A delta 25 hcmeB5TH!Y#h|ywW@MV$7Wg>i&wbVQ|$H}h|1OR`D2`m5r diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/3.1.0.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/3.1.0.sql index cae8ddafa85af9891d37e7e8b8b65d030ba0b28d..b05e0855e5e6cbff58ded9704c3864a37818c93e 100644 GIT binary patch literal 12026 zcmds-+io1k5r+Gg0rCz5$Y3CR*d3V2}0vVYHOQYi+(;H2&YU_Z&Mi zIfxbrh^*k;fbpiIa@61MuIW|xGdVfu_gIoTX?~qs3A`6=xGw46q@MA zF;UEaDl5E@?K}yu_3YBKs=Tui+|>{5RAy}ptA8o^)ce;>_F_%cF(0k~D=*_UzNQ$1(%oLkpVX{#w4 zVdL0|#hFGiIL}Q@p+)?t9dBwHA`;zFZsf0SvtChb$@(nc3`bb9KUKrudu8J>|3sO$ z8-vZtr*kgPW7fkWyV2Qg(Vu08JC(H73zZUIEHTJv0QAZ={8jj*lvG~vfN5#6_eX1zFDK=Ce@6~XSk|ys4^SWYlfU+ zvzM}Rpt7*NAoW9gN3p5hnC&QXJaCQ$n=Pk&m+I&1t&vyYwnk09&V8~%?q>LF zYgjdQM;W`U#%^AFtqJ4vdF@5#;+g6bGC39M3uSV*>}7H}yDzFZ_V(60xvWNs(s%nS zIV$h_afgrXQtjk+`61MDZ3?}HtMyOJJAd5j&erJ5m8tTm*_!*aKZk3)%E_P zB)1T+?S9#nX}&-1*F05XUky2=oxFzXoByFyPuKIt8u!cRwCkG z#tg|@%b13*me*P5O~f*bt8pg5*i5_aSFt-&vtWgo*5D|7U)#`A96 z`>3hUwHu?ZqTfbMMWsb{;Do?>9^Pvo%0h6r690yJHI6ss#>CCgF1GAu*Y~F0&FgkA z@+?JtyKRTTMob*8kUEv9{`>8p-#QWtPd` zwD)#hsn+&RIfk6ZVTrV7aXQNE19hQN=M9^t7cRtPGVo_ z4Cl3?B9S(y$nBhGUdg0hJay5rdc2(RKG4ehdU7U59GhzQ!LNHgJz%hIU**K7;ctq} z^h3Sw1ov3o|8jgau4m`3>%yKo{lmS|Tk1PlXT07a$5P0_j121_$A+E44QJ-lt1fU3 zu_GSF%AzF|K3Y;@HbAbOMz0wcRJGr-YQB=4$#W*thoJ`1#)9X6u8Na!?k=PixT9ej z;YI*FwRK_;$OG@?#39$TV*&?0!#M;itj?jRv(<8r}`8;)Wk#U6E%(Rp?bz+KT*{4 zflC8RF3*We`pe8>zZRt_pX>RMs@cX%TJriGJzj?&uh!dkVEk`Jd&sL*@;4_%>E7mw zD%|d!%@t)ND$o*^-*02zhtrUk!h%fS&wWk1C78}m@KSa#zGLyKm=(+Y!is#leIwI# zUfys@_b^>IShL-H>SFPewPWqa=yJ^j`y_lTinu5AB1)%wuh8;7eVSV3&bZUICaT+& zR+^pmg=V+RTzn6a@Z?sOFxBg8k7yg>%`Gd<8Lr;jb)U`a-VNxNrp;KiAJC7-bZR#h zldQMq(l*W8TF7SEyNW9v>st|KzqLu1(JVRlX1w1kcavgy-<4Bqr_|;BQ_8_AKU=xh RAL)~|%^2>I49!jJ{tt@a1Ni^| delta 21 dcmewryUk?-8{=jv#x*jNle9uMpVBg50RUji2kig= diff --git a/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/3.3.0.sql b/01_SMART_UP_TOOLS/08_ORGFLOW/SQL/UPDATE_SCRIPTS/3.3.0.sql index f79f94c21a5b4359457ca0558fe1a8cda4d7d8c0..8692abf5b572c3bbd3398e9642c0420815c324bd 100644 GIT binary patch literal 6272 zcmd6reQz5@5XR?UBk>(h;*SQAR%s{*@uoVClbR-RT3=GC2wBjEQnhlRZ29okse6FboOL{BEV z*1GOWVrr+lyRWg4q>eQDg}&G9L%Wf_Tl!zwFZP3-+Y5aw$@HZW3odzIqmS%DPaoTL z>3CsJ>|2}JQ~NE=Vg9@Jj_vE2{|ozl>B8<*SG+q&-r+^aa}DWxk{PGih-oD6hmx%I zZ%E0Ej%}bj@Ikh+GsW?p;`v4hoXsWnWRa(P>33px zbdO*7gcoQa3UD53W@Q_8+kVvSewyKa?rMBTzV7SG$foXZYwjJ*8Q9&V^CaaYG?A@- zLWOy?y+6MvMl1~!i(6o%CvC^Vo;=O$m26xnmUG#=R5l*#d9PzXW<6Ghn=?Uowe&#M z@YJ45!D`fTYM^6p<*A|GkH2w zMN;*b%Ij>7$xDrVpQ@HBXlLnDJ)>$r(3i@d+0UtxUn#4nNtT>3XT!E_OIg`0W}9rG z16?=L=i1!wsOi8ZN9(I6zo&)4YK^ZXz>PPEUk38v2?AZp*bsO^1%_;se(c^*oi< zzUHxNS?5t7VXtc;S6V#j&gibf^|rAITkH!JuW^@WU5~|T*>~9UI58(Hz1H&+`Cccq zn`@mM5MyNzq_I|Au=a`9b8%PI;Wi$mb?zJ!Uam(Oel4+x&-P#PPMwhb9eb$X^@ua8 z(r2vbV6Jjig%px|l0zqv9qIqqx??mDD^;bhN%(#}Be8CBj=OBa(>8B3{Q}RCP=>Q_ z>y!QTjIj@%Xnu1=!GCZQ{yBa<;n3ueW!}hMMfC?a3{nmI{#mE2ciG{i1v{*cay3i9 zk$Wk+HVTz}ZeKRWGkZi#r8r^DcB~Vv`k$odLQF_*eYao-d|MH+Gd@k+0T07BcyK8m zd9MH0^__^fFEqmLQi-qWII=fgE{1;|X$IE~^()TAT~3G<2m(FTM7K+N({+wsYX59r zl^J*9^3~e44KJ|2`??Pn3+dHWQ7NWb!k}#J^%cPC-d$9A_#P`N`_3MP?>85+QFX8D zOxm-eT49Kh5UTavNJz0p;m)eDgJk}=3e&FU*f!3q_ASrRYSi16LL_+3P6yjvtqX*e zR$JO^;GLQ4|G}_5MIE(6hdEAJEbSEV4Z9B=NAw{ZJu>)jKycmK34CvWuNGm{%~9Oj2{X|t^+X~{rS25 zs^3FhXZDB2@9GLGa$ni+`lWk+AvQ#R7q?TzJruiiPb{Yz3r1UoTwps%XBGNHw8Igx zR=M|R=qR=oNpP2UVENh2#6Wefwm|<93!D{c^>EBb5^YQb|V5j<a*Je9Y z6KUTO=F>&4+jBQsxeiWfGCBLrSoMsj8w(cqPABB!TJFl)9yMz#<~4iVh|{aqJKb7& zX;wB2Rnmh#uO@aKXZMV*>+(J|EOUDLFFwwp87bLTE*iB?q1i8LByb5y#|w{_BX!^ZErP-7 ZVX=Iz?N-B6_WiP_O=Lr}``PY@{|5dd6oUW& delta 7 OcmZoLTp+n&0S^ERjRMC2