From a6bf0f406e45e9bc7a489e5b30fd1ea0b22e1e5d Mon Sep 17 00:00:00 2001 From: Granfeldt_cp Date: Tue, 22 Jan 2013 03:33:27 -0800 Subject: [PATCH] Fixed error with one result returned in Lookup workflow not updating Added additional comparison logic to test for updates --- Granfeldt.FIM.ActivityLibrary.suo | Bin 74332 -> 74752 bytes .../Activity.LookupAttributeValue.cs | 7 ++ ...r.UpdateSingleValueAttributeAsNeededActivity.cs | 74 ++++++++++++++++++--- .../bin/Release/Granfeldt.FIM.ActivityLibrary.dll | Bin 39424 -> 39936 bytes 4 files changed, 73 insertions(+), 8 deletions(-) diff --git a/Granfeldt.FIM.ActivityLibrary.suo b/Granfeldt.FIM.ActivityLibrary.suo index cf0d8f14bf9b7126c965124c3af3e4a7b19e80ed..3bc2ed39c5bd9bcdc5a28a12cc06fe3b73efd973 100644 GIT binary patch delta 2522 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 updateParameters = new List(); e.Result = false; object CurrentValue = TargetResource[this.AttributeName]; - Debugging.Log("Type current", CurrentValue == null ? "NULL" : CurrentValue.GetType().ToString()); - Debugging.Log("Type new value", this.NewValue == null ? "NULL" : this.NewValue.GetType().ToString()); - if (object.Equals(CurrentValue, this.NewValue)) - { - Debugging.Log(string.Format("No need to update {0}. Value is already '{1}'", this.AttributeName, this.NewValue)); - } - else + + object convertedSourceValue = CleanAndFormatFIMValue(CurrentValue); + object convertedNewValue = CleanAndFormatFIMValue(this.NewValue); + + if (ShouldUpdateAttribute(convertedSourceValue, convertedNewValue)) { e.Result = true; // if the new value is null then remove current value. // otherwise, update attribute to new value - updateParameters.Add(new UpdateRequestParameter(this.AttributeName, this.NewValue == null ? UpdateMode.Remove : UpdateMode.Modify, this.NewValue == null ? CurrentValue : this.NewValue)); + updateParameters.Add(new UpdateRequestParameter(this.AttributeName, this.NewValue == null ? UpdateMode.Remove : UpdateMode.Modify, this.NewValue == null ? CurrentValue : convertedNewValue)); UpdateResource.ActorId = this.ActorId; UpdateResource.ResourceId = this.TargetId; @@ -147,6 +200,11 @@ namespace Granfeldt.FIM.ActivityLibrary Debugging.Log(string.Format("Updating {0} from '{1}' to '{2}'", this.AttributeName, CurrentValue == null ? "(null)" : CurrentValue, this.NewValue == null ? "(null)" : this.NewValue)); } } + else + { + Debugging.Log(string.Format("No need to update {0}. Value is already '{1}'", this.AttributeName, convertedNewValue)); + } + } private void SetupReadTarget_ExecuteCode(object sender, EventArgs e) diff --git a/Granfeldt.FIM.ActivityLibrary/bin/Release/Granfeldt.FIM.ActivityLibrary.dll b/Granfeldt.FIM.ActivityLibrary/bin/Release/Granfeldt.FIM.ActivityLibrary.dll index b86114325d47b344d043d3d9910d9a75b1d1dcfa..80479334313f3f8144064bbed49913115685d39f 100644 GIT binary patch delta 15096 zcmbVz349dg`TsLByEC&#HrY*fH^(Mf!nL_L1P|`}2#63#6cm97F@$Tv1XMtnto4ct ziett509zZ;R*a~4RPYD3SX-ghD%Jyk)+$Yu>&j{`KR%1x&k>S)1tgv5RtQu_IKOkt!vo~e{kOc;FBI$~n#tll zL?0_#dga=^qy_%PHY7>>ztz58s+4ZCpOpGbciQhtWwEg+z@Mr3FO!#Uok4VYqaBln zTW?(z``xwrN5d!FKVj(4qslAOU(t6A`0T;zD~o=#tn|J{&P9<_iv)nhtK)h zy{+~^zv3Bmf%%yJ)_|qk&UyK@AD?FZ<@)I#k6vp3=JE5Uw@hC7g_P(#DDUuEeNoYh zuazoAuJ$X{id-efD`FMqk0ff5Q^-~|?*XX@QZddV^2-8?jA5Xwg*D|4^3b`cqK7Cf zSIc=7vN0UmgQJP0)M=oG$TDPHIzp)tcvR&?$b3p7t0grOYz}4g=0^x;ehY}FM!6b7 z054@pgchW5E4=#so|rKPPdSx9j&dp=XpDs*pry({2jx@@4?$!Qt8yE-t!y0+Upw~*QGy}Omn zpRm#SqNp%>BU4B-KWDNWD$ShY0a*c3@0RLjV@B$QW^YU@Ek6joXFMV!b6iiB6?Tx`Qsl$FCSSB}m>_Ao`5aLpt%0bP}&dRqv zS%WMrR^iqQ;M(7MAuu2?*g6k%R_jH;T#rvN=7aFbsRei#3jvzZz!KwPVA$g^7Kx{v zT8yVK2zx@R(I})Lk8z10ys0KuF9C$SRei&lO3jwgBto9jk#kB%UYJ_S7R!V%ZY;-B z7m>mq5lS^yK%^Nff&CmtcbN(v(w|^R`%ocsKPoAv&Z(-FsT1bT_g1RaK!{vVcinm< zk7Qb)HGN)prDHRtR&R0vxC_Bkvi)uU3UUj`tGPsnV(Z{!^4kd{luQ$0ed5J079^hkf_| z(RJo3IJdCmdydC2@+HIKJwDb2~lk?KuR(>Is~7 zihj0u2Az6Xo1bPH!)+zZAg7;u>2521H{l=bayaPjaSOe0QkS2f@$Clf>hnz*#Yuf$ z)f?T-Z6b#8srvlCGUd6;Wx9dLqAc$7uQG}sny;to^UD$Xgz0Lmh2)2)lO>iCv)I=) z$VFxaXlAUI;Y>ZTH(=+h(o|y|+~R-(J=Y-rRCXQ_A2UWK3@FO(;cJ@kWvqvzzSWl6 zZ{rp0(shXC{CkY6bhIw7rWLA~)(*`p-eB10e7|#NzYgj#a~x{7O^+KJ;31&(t(N=c zIq^JXHNydRkFJ`E>{>Unr6<=D%k@?!!k)1A&Y~zTw2Z|m(G-}C~UnF(bxUwj}kfcBhDAK(kX^T z3s1i>RU9<2T!!+^RckCPISB#cIL*cQy8CU zyBTKY&oZ{(ldUYaZdL5ua_V|i0Hcoko)0}mxW@V8=@QvIqds-MEBRt=0y z6#}kiY6uIKIRdVWBfw!mSRe5;7rt(Q7BjDCi`2dh9!qLQH?+C;}1p6!H@i@2<_4BLdOR(u#w@nbM z=I^s;7R22(bi^ME@fcD>P-8P9tsa1x(4&G1 zM{aRc3Q<$VtFs;ayPRJ3Sd~)AyNM1wUt8Gx&?~1B&dzIfHDiSsU>FEOwI$DXWR->ta`$H zBbQ127_uA3c)7W6vNz}Vvtp>Yxe@lR3L4p2NEJDAVVi%hCXdsp(5LRSM;GKx%VJ#;(T`cQ#rl&cpg{X#BB2UQjje0U4hgsI1hhg1Whn zv$z+cppG2x17Y0H@BjdE3koedC!oa#9?J8JhLLp<-kGGB=e#q7&6nXP-ntE?{E8|Y z+d-J)b1=pp1Xb(Fh!%EbESD1*SP5c{rp}F1LXPF>p+1C~( zV?SXX7F>_K9$Rtd&SyVgSR~zSA1*9XolBtoH3ZMtv7)lF2DEU`%OrctTqc<||7u@Q zG$IxWBYC*Q)wORA$2*Ezdr$3F^@9rcxP|N!W_|+#+!-&m$0Z6UK9;fbnU^wI4xP{Z zgh@;_IOe?bjGuPV8z17*?v;_18-HfsmzXJCYX5KIa1*viEREc;9>S$SybCZR5%eFQ z_MJ546uMk>?%*0Ib20RC3O7YnywS;6vB1DF!Y$V0RYAQyuq5BQCgau#s8EMQg!c2g=KuqGOWn8_K5EQ3xkQh&;zNGO zI4>wi0f+IZ&W?f!ZUM}9Z;HacVl!zxa3qERSXE4~TB24p z>c-DeE{tLI3p^|9edb@fZKk+yq?`ep=`j1g((-I_i*DuiS1^XqcdE8Z(}P(0CePK7mq>)N;h`pmFSW!^CZ>inrwTB01s6cm|r( zv+U+McJpiDhC_5~gr|z@%_H5q=ed+KD%n?_C|p5Bc+=Qyp(<$iusJ7+iu@9m{?-?O z0Xel4HOD=!TDjh8{Lz6=u(M}3cZ393`L2}cGgHxLfQaO3?A^xMLLILKEVG9RS%ThL8M=N7BK z{d~bN{~LPaHE?Zbp!s=ROF8_K{5e|E#~$4$#JBwLM%Gnln{o`3@AZrq^L?<+5HS7- zVb2wY`_gy=!eC`CX78Jz{H7G=GYEG!M28`&{`0$`h?UEvq*z^?@=j>6%v1;u z5s&$8w~GZlf$aT#$6Jqa1&R>2!VKgiwXPnj7-0Spg097ecNc!IkK;<$Zrlrnoma#G z@uC>lc+~*)R1=Cf;N5G#0PtP^P~C9n}Xy@b;|on4RChsB#GglK9TSI3hHhi8-{} zlGAZt1>5uc^RZxE|E^=fUHu35Uf6BRIhvbKM^v0jDg}bwJoz1EC>{Qul>(F354%p}bgDdw`Frh$ zQnk`6_E)J9(?03eO=MkFQI{?ANPI23?~BmlTq3WZ%w`k2&6tPT<@Uz%QDrz&oRAAQ zyl%WN>cg}-&wi);9O;-{RZ*4)x=Boo)_maJ$qD=a|eKYW5V6lC$!Yk(#+AAv( zDo%+W^EfPuwV_O6vx3+jR+(!>FwFkr%lEaS5wGKn%xh2!a~t4??%sRY@W?3)E%@rX zrT^dsIdh#4CE#)ZK*av;3%yh&8uG-e_t{+FmP`TXsGnjhtDO@#<;8my=6nh7OZ!mP zS(c0&P(s|m7r+7Ez`1VD74tkuAmCPU1allg_jU6EN5HwKsz6&tog?AoQW(Z6e|5lD zaOVQCG?T#BnFN$IJ}g$wb({mK{AEh!YR##r{3T6BATEQ(+-?C!R{1L-HB}9;WYH|D zaS=-pl_T>K)P}%$T=PD~NbGDVGFNlFcg796yN;XC9;&#{o^Y=g(upYCvwoP4CBlo4ockbC46*rS& za&p#5#kheKobpcaSdA>5mQqYkvqve>W_;Jf8Y-^s=F?qC#*a(R9bR;ldspwipQB}l zbBDPK(KRU?zT8l%peqW^-@#$UY39cnzs~jD{`Y|LQ90OBdT%7U0?*Y+(6d*Y%`2N) zkqaHe2B%~6_O72z{|7?=yFK-uQeT6$iF6Fa7Q1m^|6W)D`D+A`K3@@d$Yagnm*!;P ze~JC*z*g&J?KVlJl+HK{SV${%k6K8#0!whKI;O|yTz{KfNEiA&s-N!le<}It4Pb~~ z2>d({qIUvgpiKuoYK*?jX~O~I%y65m(xLEeu$hrNAU8zmTmyK!z+D1g6Zn}W9%>$| zdkGvVuwLNGJTAN~@5;Ooy$FoZKk|-%)}vz(CM((|hiDM!5S;-mqD4`@OYMwa7Y)%7 zAA0Y4QYweT2TAe9!5L9yYWOK6V3MuDpYZWj19Fhs#3PHu2f-=Yvr6Z9fr z39T>UvX1~m^nTGHXg?7cOK_JBNt7o-G!}?$;^M?NXs*=)Hw)aB;O=+|7@^-J_Qg@4 zn8VB$czN*>B}8`@b9X#dJVP#{qs8wOhv*B)OK42VhkAsTmt2+~p&JA~Uvh6rgw85u z$;H4B{j}6B4bd)OBu0CMD3s)oBa$5E+@xXeIPFZUKL%+IJxF_iaT-e!o*&Y9d{2^~ z8cItI1X1zL!~ecphZG=kfE81053^;W)q8A^=OUja@QxIjM$`fB|(V2A!D)wUG|>ZRJYl)xbZM+=+) zjM1XNqrkL48yKd0AP>|2z)ne`P>?4Y z%2=l`9u<<}ET)@*VLCnZXIL)OSTZ-nxJuwQfqxKqW_G4*n9j@o8^SEe{t~!4`y1f3 z*@`UDo!RxEAIY}(u~!&5d3EG)zRwAKEr;_Bgf$c>3v;4phXbH57W7IXzgo~+1U?cz z0&g#dvtjdII9IN1+oy8NnEK-SGnxhzAEWV`o`rne^MGo$m-Q#lY z{^8PCdeG&b@{g6q(GHjUm46br$6fB2<)4muv)f_yfBBne0_|~?-axH1fqo^pYx390 zxzHUH+&-EaVD1Z?Rf(MN6KDyJtITouiS(Mwarj9z=X6KM;V01-E_cjtO_wIqc-$^g zP=udCa~+O2{1loeI4ArRvQOX^3(o2LDRlP~Y@%!Q1HmS6t6c7Ia2Ytu z<-%GM)~+os*IQc#?mm~B?rkEgmUg=Ah2CXUOE0+Gw{Utc9dfy>tYzTdbGczzO?X-T zxy#i;H=F+La@RmtM`7HtIko$stD{nf6J1zOg9L|4WVKMeMNhcwpR)GT`LujA7j&9* zE=|X+3XP~w3Vkfir6q!M+F~x9E4Ykhi=)#o(|$p7=}MQoUV8%E%`V5I>jK*5a!sLS z;H<}7_NvfKx{zLUIXhGb?x4%}EV zZld{A=5jNjn@@vWj@x$ujkjEu8+ZZDayZdY3u(FF(sU?$KP{xsUGDGMEp#!Z#t}Yg z3g@)YVmjO9hJm|;Uc>d9b+zD@&||n_GuNE6pO(^2KF@)>2D;_6XQJh>JfK$6D^rPb#)mG9M)0lIn+DckI-Qjqu8T40|}oB z45-i=pojQ3-@J4+P^FuI5}j=0$nO?fM%k?xEG;lS-JNV&=J~Eu$7Y9c$0*a2g5J}G zGQBM5S5J~0hD4@6cgd{`!m?Rv;t^fxUBO$R`A3 zwAlqh(xW@9Q}%JsX75S&D16GYj!n-}r=lmGN^vUr_qBoj_2{wIR(YJXPM$_Jz+9>Y zj#hlcbWmV}R1&?|(;)SaF7Y(bsOUORkm{pp;N0kBs)EflSgwrPo}qL_^e3KS^kVd3 zPg;64Is#g@97=CQYo&JSuhCpczKA~N*&<@yA&ri0wd4l`GuH_w@D5rOTZS)#*2%y1 z%%!!lKX~qt?vB0X*(udWhf5DgtbIV*0c@bZ;&|F1JrO&CUmD@l!$h!&xTC-dq4QmbZi$Z$<+FF?{Yvp$e zrqL?-SV6uvSN_H-DAj7^NMS!ME%zy`2AwLL2BX1+TjecuPT>%(9gc=+TSTxsrs)K%AlqGeDZsRT~(F=rpx4@(FKZ^QT`scEeC zHF^-4-l&g*Ym9iBRD6qGuBtK5(18>)T5f*Yyr1p8T_KuTqtK#Ct&0xK7ldPAoKw z#X_@KEGu)RM-zGeIx*GCm5Y)^{==f)hXlSa@Gvb-4)nh-=1~YWpM!T23uzH>FLed*Jfm&&*QX~A-z`r%oTY~^IfE=J% zD4Ip!W=NJ``QVW4LeefI9fIx<@(v+6AS4HbLZ ziG{}wX_Q(nZI^O@tezm<;Qh5{g0x6Z`D!4qQ)^(e2FNaIgiW)HENO;zm)Z==Eo!@v zw+qX5A@2}$2ekXu4oJQPiX>z%Yx(3I(jna^JEHB<9=%*B${}y{mJ4}}kkklCjgT}8 zNwZ6{Wt;pj`n9KB*t836yU=zBx-BXA`B4Wgp*{-5F4d=qB$OS}48Kp| z?0m|0X}rH2l2t&~mJ4|~9%YKS#quCNzYNwz1~CKcfB5U ztTtb}Qft?4(mJ$fv_0BE?IX>v=jc(rP#>kAudmcs>$~(%d}aPK{Ga+|oR$>)n!LxJ zF{Q?OQhyr<*%$O}z~Abdfq&GG0IyP+&I_>IK?*VLSngAqo*=YAAx{dd4SgnMJUFFN zfvvC{BJhhaml`cfIc4*tfE}B9zcmWq56Uzd?;vEFO}&sIc1qCo)Eo49Kp9uBzM$s- zWn7v1gT6rEJSvCeLV*`yGD^6^R6??ds)3i#KuDSdHsjZ2Wvl^=OY!#=5+*R?ig|Q8 zM9T%Pq%$EhfcWbZ8U}h5P$m;IU&0I?0s1N$MHhMuPpjur&yAjYJP&$5@%}`=!S_>N zmfzFH$5H3Q&%5m{HSJ{|(uX?B6#f$=_v5ES#Y`@fw&6RF&f(MU(<)~#G1e?!T;H;| zVRhrU)p+@R@tW0*G+}vT!^&|h7f&|K6%DH=*UUJtVfmWQH)_-VSgWzdT-3;XBdu;Q zn;KUO-FfrMyyNN&=k+-`j|s+#mIkxA6@M`?Y1NvB<*hWOadq9=mPQ(H7#x8nB5Gap zibkq4*UoCdpTR7?WT~a;siqnDsm5Bp82vvL zKf`GSeuksjTWJ6d5pS={k`~0Lm=(=YDUXtZR!b4Ib(fP@ByFFG?mP6sTFTF{Mv^}ar z8_Ef{eT!KV!Y7>edNm2W7L620k+jc~loBC5sYp;|CA6d@6+^0$5(*^}8W&0=5<$)5 znuGCZQgKLi1_r#O;pTL_ppslNO9dTC7Y8&Yl8$ypHmj0#x+5E`k`zu4)0xB5d5l5@ zbY16k(~}_5Bk5i_nm1B|r})=5k}en8TE|QMceOQ;N792sXahMUG7p7RO%6rUHK;4l zD$w*3{K0p<^Y6R9=86&ymiv-&ai|y#bCHiLQ_hTt)e!O~rBJbwt!WTP(hVVK^kT)S zUzW&r6-*G7{aNW1XtYQbL%pI&GOCPr^{A2bS}iF9L$Wt1CqfBKDfEq#d|FsJ0k=5q z^J9(k*rbP0iaX3JvbiTDl9s}n2Q4l-syNbi2>*C&ghJlpq?AiK4~58#oJg%NN$9H% zIh5e;>#(1>`5kL#B)!wiMH4wW+?54V2^;OkL-9)?p+eiDHTR+5a|@ z-e2rU4+-62oy85IV$=sw5<>WXnU;mputmq9NJAw3P9*(4w_7MOGJUu>5oz16M#F8- zO9@e}qo_JYb}>eul8B^_cBv$cYaU&wVj4L{JI}pkfD{_qnOTj9&grx_+l8w0H>dW) b_F_AEdrN2N)~^+L;gHVo?f)xn8KnJR;OWuA delta 14604 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