If that is the case then one would think that doing a set fields action to the 
same value would have the same effect.  I will check using my test form 
tomorrow.


Dave
--------------------------
[EMAIL PROTECTED] (Wireless)

----- Original Message -----
From: Action Request System discussion list(ARSList) <[email protected]>
To: [email protected] <[email protected]>
Sent: Fri Jan 12 23:11:41 2007
Subject: Re: When is TR valid

** 
I think the answer to that is that the field is being set...the push doesn't 
check to see if the value was previously the value you are changing....thus 
there is a transaction value...thus TR contains a value

________________________________

From: Action Request System discussion list(ARSList) [mailto:[EMAIL PROTECTED] 
On Behalf Of Shellman, David
Sent: Friday, January 12, 2007 8:13 PM
To: [email protected]
Subject: Re: When is TR valid



I use TR.field all the time.  As noted earlier you need to think about the 
meaning.  TR.field will contain the current value of the field if the value in 
the field changes.

Since Status is a required field it will always contain a value and TR.Status 
!= $NULL$ will only execute if the Status field changes.  'TR.Status' = "Fixed" 
should only be true the first time the Status field changes to Fixed.  After 
that 'TR.Status' = 'Fixed' should only fire if the Status field changes to a 
different value and then back to Fixed.

Now that I've said that I did a quick test.  A push fields action always causes 
the TR.Status = "Fixed" to fire even if the value was set to Fixed in earlier 
workflow..  That defeats the purpose of using TR.field functionality that I 
thought was working so well.

Has anyone asked Support why it functions differently between a simple change 
in the field and with a push fields action?

------Original Message------
From: Thad Esser
To: Arslist
ReplyTo: Arslist
Sent: Jan 12, 2007 4:59 PM
Subject: Re: When is TR valid

**
LJ,

While all three of your bullets produce the same results, the first one is the 
simplest.  For me, the thing that put the final nail in the coffin on the TR 
value was learning that if a field is used in a PushField, it will have a TR 
value for that transaction, regardless if the value changed (which is probably 
why Mike's filter was firing "for no apparent reason".  Of course, maybe his 
workflow is using Verizon math...  lol).  

>> 'Status' = "Fixed" AND 'DB.Status' != "Fixed"
>> Yes...you do but I believe the difference between the two qualifications is 
>> the very important 3rd bullet.  "check the value for the transaction first 
>> and then check the database if a new value is not found in >> the 
>> transaction".  If no transaction value exists...you don't care what the DB 
>> value is if your looking for when the value changes...so I think it removes 
>> the 'else' statement from the usage without the TR.
This is the "Performance Considerations"  argument.  However, any trip to the 
database should be inconsequential compared to the accuracy achieved by not 
using the TR value.  Think of how many filters you have that don't involve a TR 
value - each of those are causing the same trip to the database (all else being 
equal) that is alluded to above.

In the time it took me to respond, there were a couple of other posts 
demonstrating how dicey it can be to use a TR value.  Not using it avoids a lot 
of headaches, and keeps the code easier to read.  All in all, I haven't seen 
where the extra complication is needed.

Thad Esser
Remedy Developer
"Argue for your limitations, and sure enough, they're yours."-- Richard Bach



"L. J. Head" <[EMAIL PROTECTED]>
Sent by: "Action Request System discussion list(ARSList)" <[email protected]>

01/12/2007 12:05 PM
Please respond to
[email protected]

       
To
        [email protected]
cc
       
Subject
        When is TR valid

       




**
Ok...I'm starting another thread because I don't want to muck with the other 
one...
 
First...some excerpts from the manuals
 
Basic - p486
* To check the value for the transaction only, enter the field name as
'TR.<field>' (for example, 'TR.Submitter').
* To check the value in the database only, enter the field name as 'DB.<field>'
(for example, 'DB.Submitter').
* To check the value for the transaction first and then check the database if a 
new value is not found in the transaction, enter the field name with no prefix.
 
Only new or changed field values are part of a transaction.
 
Now...I typically see TR used in a 'is a value changing to this and wasn't 
previously this'...I have seen this several ways
 
'Status' = "Fixed" AND 'DB.Status' != "Fixed"
OR
'TR.Status' = "Fixed" AND 'DB.Status' != "Fixed"
OR
'TR.Status' = "Fixed" AND 'DB.Status' != "Fixed" AND 'TR.Status' != $NULL$
 
but according to this excerpt...one can assume that TR fires only on the 
Transaction and therefore if you want a filter to fire every time the status 
changes to "Fixed" then you would use
 
'TR.Status' = "Fixed"
 
I hear the argument of 'what if it was already fixed...I don't want to fire 
then'
 
then the second example above would be the appropriate qualification
 
'TR.Status' = "Fixed" AND 'DB.Status' != "Fixed"
'then I hear 'but I get the same results with'
 
'Status' = "Fixed" AND 'DB.Status' != "Fixed"
Yes...you do but I believe the difference between the two qualifications is the 
very important 3rd bullet.  "check the value for the transaction first and then 
check the database if a new value is not found in the transaction".  If no 
transaction value exists...you don't care what the DB value is if your looking 
for when the value changes...so I think it removes the 'else' statement from 
the usage without the TR.
 
If I am understanding any of this incorrectly please correct me...but I think 
that there is a valid reason for the TR capability...if it is properly 
understood by the developer.
 
p.s.
Before re-reading the manual on the finer points about this...I also assumed it 
was useless...:)



________________________________

From: Action Request System discussion list(ARSList) [mailto:[EMAIL PROTECTED] 
On Behalf Of Thad Esser
Sent: Friday, January 12, 2007 11:58 AM
To: [email protected]
Subject: Re: How to not include weekends in query?

**
Dwayne,

In step 2, why use "TR.Set hours open" instead of just "Set hours Open" in the 
filter condition?

<peeve>
I'm still waiting/trying to find a situation where the TR value is required and 
100% accurate (however, I have no issue with using DB when needed).  So far, in 
everything I've come up with or seen, it is either not necessary or not 100% 
accurate.  Given the confusion that usually surrounds it, I would prefer to see 
it gone.  Basically, If you think you need the TR value, you are probably over 
complicating your situation, or not getting perfect results.  Naturally, I am 
willing to be proved wrong on this. :-)
</peeve>

Regards,
Thad Esser
Remedy Developer
"Argue for your limitations, and sure enough, they're yours."-- Richard Bach
__20060125_______________________This posting was submitted with HTML in it___


***IMPORTANT NOTICE: This communication, including any attachment, contains 
information that may be confidential or privileged, and is intended solely for 
the entity or individual to whom it is addressed. If you are not the intended 
recipient, you should delete this message and are hereby notified that any 
disclosure, copying, or distribution of this message is strictly prohibited. 
Nothing in this email, including any attachment, is intended to be a legally 
binding signature.***


__20060125_______________________This posting was submitted with HTML in it___



Dave
--------------------------
[EMAIL PROTECTED] (Wireless) 

__20060125_______________________This posting was submitted with HTML in it___ 

Reply via email to