Option: Disabled the Auto Close option
Add the same kind of qualification in the escalation run if qual.
The specified item was not found.
1 of 1 people found this helpful
You can use a set field action & check for records in the underlying form of the table field, use the same qualification.
Set a flag if an entry is returned, then based on that flag you can validate the Auto Cose of CR by the escalation.
This way the escalator will succeed in closing the record only if the flag is set indicating a record is populated in the table field (technically in the underlying form).
Thanks Srijith /Sidhesh
you mean i don,t require to write Filter for this.
Actually we have drop down field with 'Yes' and 'No' entry, if it is 'Yes' and user has to add the record in a Table field,while marking the Status 'CLosed'
Note: User usually move the CR till COMPLETED status after that either user move it to close manually ,if not manually then AUTO close will happen with Escalation fire.
If user try to do it manually, then i can write an AL which works.
in AL i m writing the qualification like
('Dropdownfield' ='Yes' AND 'Status'= Closed AND Tblfiled <1)
it will throw the error msg asking to fill the table.
but if the user dont opt to do it manually then Escalation will fail the requirement and close the CR.
If i do same trying filters what i did in AL, my qualification doest work firstly and secondly if some how i achive it ,do i still need to change the qualification of auto close esclation.
Why the filter wont work is because the table field record count does not get calculated as it is when you do it with an AL since the AL acts at the client end. That is why I mentioned in my earlier post, you have to deduce the record count from the underlying form of the table field, set it as a flag & then use it in filter for it to work in a Filter scenario.
For the escalation path you would need to go the filter route, AL wont help when AR Escalator fires.
Once you set up the Filter, technically it will work for both Manual & Escalation path.
Srijith Thanks Again
What i understood:
1 :If i want not to do any change in escalation then i need to write the Filter instead AL by setting up a flag to check whether Table have returned a value or not.
2: Also if write filter ,both the scenario will get fullfill,
i mean if user do it manually and try to close the CR without filling the table field,system will throw the msg.
and if user don't do it manually and move the CR till Completed status,then the Auto Close esclation will also fails to move the CR to Close if the Table is not filled.
Please clarify while i am testing what yousuggested.
Yes you are correct in your understanding.
If you implement this in a filter, it will work for both Manual & Escalation scenario.
Obviously give the proper qualification to ensure that this flag setting does not happen on every random saves on the CR & it fires only on these 2 specific scenarios. Also ensure you reset the flag at the end of the workflow just in case.
There is something strange,
while writing the filter ,i dont find the name of the Table in the 'Avaiable field' ??
You wont see the table field in the filter option.
As I mentioned in my earlier post, you have to use a set field action & check for records in the underlying form of the table field. Check for any records returned in the form for that particular CR. If No request Match, the flag is set as NULL, else set the flag with a value from the form.
Now if the flag != $NULL$, it means that table field had an entry from the filter perspective.
You can still keep the AL for Manual scenario & use this only when the $USER$ is AR ESCALATOR.
Thanks Srijit...You have been a great help and its a good learning.
I have removed the AL and doing the same using filters.
I wrote 2 filters,
Execution order 500
Qualification : ('Dropdownfield' ='Yes' AND 'Status'= Closed)
checking for records in the underlying form of the table field and
If No request Match, the flag is set as NULL, else set the flag with a value from the form,setting up the
'tempfield' = $AFORM FIELD$
Execution order 501
'tempfield' =$NULL$ \\meaning table doest have record
Throwing a error msg ,please add the entry in Table field
Manually checked it worked but for escalation i am waiting to get it run and hope it will not let the CR to close if Table field is NULL.which is important to see actually.
if you see any problem in above what i did please let me know else i m good to go i guess.
Thanks again Srijith.
Glad to help
The Qualification of both the filter can be more specific.
Include the "DB.status != "Closed" AND status = "Closed", this way both filters will fire only if the status is changing to "Closed".
Another thing I want to point out is I think you can keep your AL as well, the reason being AL acts on the client side & it will validate this check at the client end itself in the manual scenario & not use the filter which will be run @ the server end.
Rest all looks good, hope the escalation path works as well.
If all goes well, set your question as answered for others to reference in future.
Sure i will mark the discussion as Answered as it has been informative and as wel as a gr8 help.
I used the Qualification ('Dropdownfield' ='Yes' ) AND (DB.status != "Closed" AND status = "Closed",)
in my first filter ,and it seems to be working however i am still doing testing for some more records.
Do i have to use it in the second filter ?
('tempfield' =$NULL$ AND (DB.status != "Closed" AND status = "Closed",)
Sorry for bothering however as i got some fact because of this discussion about using filters and escalation so coming more question in my mind.
Yes, please do use it in 2nd filter as well.
This will ensure that the filter qualifies only on change of status to Closed.
Thanks so much Srijith....gr8 help !