Misi, In regards to the argument that using TR values improves performance... if the performance gain was measurable, then the logical extension of that would be to re-engineer the Run-IFs of every filter in the system so that they all use a TR value to avoid that database read. There is a long list of performance enhancing things that can be done before getting to that point.
Randeep, I have no sympathy for the TR value. I'll keep beating up on it until I stop seeing TR values in code from BMC. More than once, it has been the cause of issues. Thad On Mon, May 19, 2014 at 6:04 AM, Misi Mladoniczky <[email protected]> wrote: > Hi, > > The only reason I can see for this is something I said in one of the other > zillion messages to this thread. > > When you have anything but 'TR.Field' in the run-if clauses of filters, the > system will do a fetch of that fields DB-value before the filters are > processed. > > So it could be a performance benefit to use ('TR.Field' != $NULL$). > > In most cases the gain will be very small, but I guess it could matter > sometimes. > > Best Regards - Misi, RRR AB, http://www.rrr.se (ARSList MVP 2011) > > Ask the Remedy Licensing Experts (Best R.O.I. Award at WWRUG10/11/12/13): > * RRR|License - Not enough Remedy licenses? Save money by optimizing. > * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy logs. > Find these products, and many free tools and utilities, at http://rrr.se. > > > I'm curious, what's the 0.1% case when it would be useful? I'm just not > > seeing any unique use for it at all. > > > > -charlie > > > > > > On Sat, May 17, 2014 at 1:04 PM, Misi Mladoniczky <[email protected]> wrote: > > > >> Hi, > >> > >> It is up to the client. > >> > >> If this for example was done through a Push-Fields, 'TR.City' could > >> contain a > >> value even if it was not changed. The same could be done using a > >> Modify-All, > >> and I think it is possible to fool some clients by first changing the > field > >> value in the GUI and then change it back before pressing Save. > >> > >> As others have suggested, we should stay away from TR in 99.9% of the > >> cases. > >> > >> Best Regards - Misi, RRR AB, http://rrr.se > >> > >> > Misi, > >> > Joe's example stated > >> > > >> > Case 1: When there is no change in the 'City' value during the > >> modification. > >> > 'City' = "Gotham" > >> > 'TR.City' = $NULL$ (as there was no transnational change in the value) > >> > 'DB.City' = "Gotham" > >> > > >> > So, this isn't a modify to City...this is an existing record with City > >> > already populated...so I still say that Joe's analysis is correct :) > >> > > >> > > >> > On Sun, May 11, 2014 at 4:35 AM, Misi Mladoniczky <[email protected]> wrote: > >> > > >> >> Hi Joe and LJ, > >> >> > >> >> You are wrong on Case 1: > >> >> > >> >> If you set the City to "Gotham", it will have a TR-value of "Gotham" > >> even > >> >> on a > >> >> Create. > >> >> > >> >> Case 2 is nothing much to say about. > >> >> > >> >> The problem with the TR value is: > >> >> > >> >> A. If the value is NOT changed it can both be set or be empty during > a > >> >> Modify. > >> >> This depends on the client and how they use the API. For example a > >> >> Push-Fields > >> >> will always send a value, but a normal Save will only send a value > if it > >> >> has > >> >> been changed. > >> >> > >> >> B. A value that is changed to NULL can not be distinguished from a > value > >> >> that > >> >> is not sent in the transaction. Both situations will match a > 'TR.Field' > >> = > >> >> $NULL$. > >> >> > >> >> Best Regards - Misi, RRR AB, http://www.rrr.se (ARSList MVP > >> 2011) > >> >> > >> >> Ask the Remedy Licensing Experts (Best R.O.I. Award at > >> WWRUG10/11/12/13): > >> >> * RRR|License - Not enough Remedy licenses? Save money by optimizing. > >> >> * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy > >> logs. > >> >> Find these products, and many free tools and utilities, at > >> http://rrr.se. > >> >> > >> >> > While most of everything you stated is in sync with my > understanding > >> of > >> >> TR, > >> >> > there is one small difference. MAYBE, I'm wrong and if so, I would > >> love > >> >> to > >> >> > be corrected. > >> >> > > >> >> > I can best explain this with an example. > >> >> > > >> >> > Lets say a record is created and there is a field called 'City' and > >> >> during > >> >> > creation, that field was set to "Gotham".. > >> >> > > >> >> > Case 1: When there is no change in the 'City' value during the > >> >> modification. > >> >> > 'City' = "Gotham" > >> >> > 'TR.City' = $NULL$ (as there was no transactional change in the > value) > >> >> > 'DB.City' = "Gotham" > >> >> > > >> >> > Case 2: When the value in the field 'City' is changed during a > >> >> modification > >> >> > to "Xanadu" > >> >> > 'City' = "Xanadu" > >> >> > 'TR.City' = "Xanadu" > >> >> > 'DB.City' = "Gotham" > >> >> > > >> >> > So according to my understanding, it is incorrect to say that > >> 'TR.City' > >> >> is > >> >> > the same as 'City' at all times. > >> >> > > >> >> > Cheers > >> >> > > >> >> > Joe > >> >> > > >> >> > > >> >> > -----Original Message----- > >> >> > From: Action Request System discussion list(ARSList) > >> >> > [mailto:[email protected]] On Behalf Of William Rentfrow > >> >> > Sent: Friday, May 09, 2014 9:28 AM > >> >> > To: [email protected] > >> >> > Subject: Re: Transactional (TR) and Database (DB) > >> >> > > >> >> > I think there's a few reasons. > >> >> > > >> >> > First, using TR. is redundant. Every value in a filter (unless it > >> >> already > >> >> > has DB. in front of it) is by it's nature a transactional value. > >> There's > >> >> > literally almost no reason to use, it, EXCEPT that it makes the > code a > >> >> bit > >> >> > more clear from a visual standpoint if you do decide to use DB. on > a > >> >> field. > >> >> > > >> >> > I think the reason most people don't use DB. on field workflow is > that > >> >> it's > >> >> > kind of perceived as lazy. Let's say you want to check and see if > a > >> >> phone # > >> >> > has changed. You can either use the Phone != DB.Phone at runtime > - or > >> >> you > >> >> > can do an actual lookup with some separate workflow prior to this > >> action. > >> >> > That gives you greater control over the action going on for the > most > >> >> part. > >> >> > > >> >> > That said, it's just my opinion and I'm sure there's lots of place > >> people > >> >> > have used both and been perfectly happy with it. > >> >> > > >> >> > -----Original Message----- > >> >> > From: Action Request System discussion list(ARSList) > >> >> > [mailto:[email protected]] On Behalf Of James Smith > >> >> > Sent: Thursday, May 08, 2014 10:22 AM > >> >> > To: [email protected] > >> >> > Subject: Transactional (TR) and Database (DB) > >> >> > > >> >> > Hi List, > >> >> > > >> >> > We can achieve things without using TR and DB values in a filter by > >> just > >> >> > using Field but I do not understand why they have been developed to > >> use? > >> >> I > >> >> > have heard from many remedy developers like Misi and BMC who > suggest > >> not > >> >> to > >> >> > use TR and DB in Run If qualification of a filter but why? > >> >> > > >> >> > Why it is not recommended to use TR and DB values? > >> >> > > >> >> > What if I use TR.Field=DB.Field? Will it yield a correct result? In > >> BMC > >> >> > documentation also they have not given any example where they used > TR > >> >> and DB > >> >> > together in a qualification. > >> >> > > >> >> > Appreciate your thoughts! > >> >> > > >> >> > Cheers, > >> >> > James > >> >> > > >> >> > > >> >> > >> > ____________________________________________________________________________ > >> >> > ___ > >> >> > UNSUBSCRIBE or access ARSlist Archives at www.arslist.org > >> >> > "Where the Answers Are, and have been for 20 years" > >> >> > > >> >> > ----- > >> >> > No virus found in this message. > >> >> > Checked by AVG - www.avg.com > >> >> > Version: 2014.0.4570 / Virus Database: 3931/7443 - Release Date: > >> 05/05/14 > >> >> > > >> >> > > >> >> > >> > ____________________________________________________________________________ > >> >> > ___ > >> >> > 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" > >> >> > >> > > >> > > >> > _______________________________________________________________________________ > >> > UNSUBSCRIBE or access ARSlist Archives at www.arslist.org > >> > "Where the Answers Are, and have been for 20 years" > >> > > >> > -- > >> > This message was scanned by ESVA and is believed to be clean. > >> > > >> > > >> > >> > >> > _______________________________________________________________________________ > >> 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" > _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org "Where the Answers Are, and have been for 20 years"

