Changing a fragment

Avatar

Avatar

Elaine_Schmitz

Avatar

Elaine_Schmitz

Elaine_Schmitz

26-01-2009

Let's say you add a field to a fragment. Two forms use the fragment. Are both forms affected as soon as that fragment is saved? I'm specifically referring to forms mid-workflow? Or do only new forms that are created AFTER the fragment is saved get the updated fragment?



Thanks

Replies

Avatar

Avatar

pguerett

Avatar

pguerett

pguerett

26-01-2009

All forms that use that fragment will pick up the new field each time they are rendered. So yes both forms will pick up the new field.

Avatar

Avatar

Elaine_Schmitz

Avatar

Elaine_Schmitz

Elaine_Schmitz

26-01-2009

thanks Paul, so now let's say you delete a field from a fragment. A form, that uses the fragment is in the middle of a workflow process. The workflow references that field. Is that field, although no longer visible on the form, still accessible via the xml representation of the data (the xfaForm data)? Or will the workflow stall?



Thank you in advance!

Avatar

Avatar

pguerett

Avatar

pguerett

pguerett

27-01-2009

The statement will fail ...the field will not be there! Depending on how you built the process it may stall!

Avatar

Avatar

HowardTreisman

Avatar

HowardTreisman

HowardTreisman

21-02-2009

I'd like to clarify Paul's response. (Sorry Paul:-)

1. Fragments

It depends on how you are using the forms containing the fragments:

- If you're using XDP format,

the fragments are refreshed immediately whenever the form is rendered.

- If you're using PDF format, the fragments are ONLY refreshed the next time you open the form inside of Designer.



2. Deleting fields

If you're using an XML schema in your form (highly recommended) the element will still exist (although it will of course be blank) even if the field bound to it is deleted. (I'm 99% sure of this, but you should check.)

In addition, I'm reasonably sure (although again, please check) that if you use an XPath expression to reference an invalid location, you just get null returned - it does not throw an exception. So I don't think your process will stall, but it may not execute as you'd expect.



All of this should be reasonably easy to verify by building some simple test cases.



Howard

http:/www.avoka.com