hi Doug, Yes I agree with you about the incorrect syntax or the miss formatted input to the approval process. We have set in the check that you have suggested to replace ";;" with ";" in the approver list just some time back.
But on further analysis of our issue we found out few more things and one more such case. We found out that the approval notification was not sent to everyone in the org (about 100K people) but was sent to about 82K of them the reason or at least the possible reason I found was that all the 82K people had '0' in there login ID. Does it have any significance? still to find out... Second thing was that we got one more such case today late in the evening where the approver list passed on the SRM:Request form was Next Approvers (13005) =;175558;;175558;;175558;;175558;;175558;;175558; which was parsed by the approval server into Expanding roles for approver(s): 175558;8;75558 Looking at this the theory of replacing '0' for ";;" in the code does not fit right as I had initially thought about. May be some issue with the parsing logic. We have raised a BMC ticket as well for this let's see if we can get something out of it. Again the approval process is working fine seems like something to do with parsing. Also apologies to mention late about the environment details ARS 7.6.04 ITSM 7.6.04 SRM 7.6.04 SQL 2008 Remote Database and everything is SP4 on windows. Thanks, Vikrant -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:[email protected]] On Behalf Of Mueller, Doug Sent: Wednesday, July 24, 2013 10:17 PM To: [email protected] Subject: Re: Approval list parsing issue? Vikrant, So, what we have here is an error condition and a question about error handling. The error condition is a misformatted input -- extra semicolon separators. The problem really is that there is no error handling for this condition. The approval process is parsing the string, finds an empty definition, and just converts the value it finds into an integer and continues. And, the integer conversion logic converts anything non-numeric into a 0 (blank, letters, whatever is there if it is non-numeric). OK, but then, the issue is that a value of 0 has a very special meaning of Public which is all users.... So, what is really needed here for this case -- or other cases of misformatting like 3344;a;3433 which would produce the same problem as after processing that would be 3344;0;3433 -- is better handling of the problem of a value of 0. Realistically, you could argue that there is never a condition where sending a notification to Public is a good idea. I agree with that position myself. Even if there was some corner case where every single registered user of the product somehow needed to be involved in an approval, I would argue that you should have a group that everyone is a member of and not use Public which is uncontrolled and unconstrained. For now, you can put in logic that checks for the condition you encountered and eliminate double separators. A set fields using REPLACE('field', ";;", ";") and assigned back to the field would do the trick. I also suggest submitting a bug report (I am going to share the condition internally as well, but bug reports from customers always carry more weight) that Public should simply not be allowed as a target for an approval and any attempt to specify Public as an approver should be ignored. The approval server and processing is working correctly. The issue is that we really should not allow Public to be an approval target at any time as it is not deterministic and not a reliable or safe target. Doug Mueller -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:[email protected]] On Behalf Of Vikrant Sent: Tuesday, July 23, 2013 11:33 PM To: [email protected] Subject: Approval list parsing issue? hi Everyone, Yesterday we came across a strange issue with the SRM approval processing. The case is such that we are creating approver list on the SRM:Request form. From there we have written an approval rule which attaches the approval process to the request and sends out approval requests to the entire approver list on the SRM:Request form. The string works about 99% of times(till yesterday evening 100%) but yesterday evening we found out an issue with it. What happened is that due to data inconsistency the approver list that got generated on the SRM:Request form was like Next Approvers (13005) = ;175540;;175540;;175540;;175540;;175540;;175540; instead of Next Approvers (13005) = ;175540;175540;175540;175540;175540;175540; Now this string was picked up by the approval process and somehow parsed into the below string Expanding roles for approver(s): 175540;0;75540 The 0 in the approver string set out an approval email to each and every individual of the organization for approval (even the CEO :( scary....). So my question stand likes this is or should approval server be smart enough to parse the approves list with double ';' to one with single ';' or worst case should leave it as it is and still be able to restrict approval to the members in the approvers list. Still confused about this as this is data issue due to which we get ";;" in the approvers list. We have written special filters to handle this case but now its about RCA and I am supposed to do this. A formal BMC ticket will be logged but just want your opinion on this very special case. Just in case you would like to see the log file, I have attached a segment of the approval.log file which shows the parsing done by approval server along with the post. Thanks, Vikrant _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org "Where the Answers Are, and have been for 20 years" _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org "Where the Answers Are, and have been for 20 years" _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org "Where the Answers Are, and have been for 20 years"

