I have some work policy to enforce some fields in the workflow properties after someone edit the workflow.
I try to use the XML tag <leave> and put it into xtk:workflow input form to check after someone edit the form but it is not working.
I'm not quite sure that I'm doing at the correct location or not.
Yes, you can use the <leave> element on the xtk:workflow form.
If you wnat to force some fields to be set, use the <set> element :
<leave> <if expr="[/ignored/@type]='a'"> <set value="1" xpath="@myField"/> </if> <if expr="[/ignored/@type]='b'"> <set value="2" xpath="@myField"/> </if> </leave>
You can use this on container, subForm or at the end of the global form.
You can use temporary fields (not saved) with /tmp or /ignored elements.
Thanks for the reply.
I try to put the <leave> at the end of the form but as I said - look like it not working as expect.
Here is my sample code that I have added into the xtk:workflow form. --> Just try to modify the history field in the workflow properties to 31.
Not sure what I did wrong :'(
It can be difficult to debug console forms.
I gave it a try, but I change one thing in the <leave> element, can you try this in your side ? I change the value attribute to expr. (if your field is a string, please add the quote marks '')
<leave> <set expr="desc + ' form test...'" xpath="desc"/> </leave> </form>
Also, the change is only available when user save the workflow (so an another change has to be made). If the form is opened and close without change, the attribute is not updated. If needed, there may be a solution (I know there is some "setNotifySaved" or other things that could help)
You can certainly change the xtk:workflow, I did it a lot of time (and very carrefully...).
The example I gave you (<set expr="desc + ' form test...'" xpath="desc"/>) add some text to the "desc" element of the workflow, and I tested it successfully this morning.
I just did the exact same modification as you, and it worked. Also, 2 important things to know :
- When you edit the workflow form, you have to "refresh" this one into the console. Just leave the "workflow" view in the Explorer (select anything else like "Delivery" view,"Recipient" I don't know). Then come back into the workflow view, it should refresh the form. The other thing that most user do (and I don't suggest to do this as it is not necessary most of time) is to clear the console cache : File Menu > Clear local cache (or something like that, my console is not in english sorry). A tip to see if your modifications are updated into the console is to change something clearly visible into the interface (for example, change the properties button label adding "1" to the end, you can increment this during your developements )
- User have to do a modification to the workflow (for example, add just a space at the end of label) and save to execute the "set" order and change the @history value.
Look like it working at workflow level but it not apply for the workflow in the campaign as my test result.
Do I need to modify another form if aim to do it for the workflow in the campaign?