Input on several features/wishes: version management, building blocks etc

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Input on several features/wishes: version management, building blocks etc

Onno van der Straaten-3
Hi,
We want to use Orbeon as part of a solution we are proposing to a
customer. There are some wishes for features that I'm not sure at this
point on how they are/could be implemented using Orbeon.  So I would
appreciate very much any feedback you can give. Some questions might
be answered in a manual if that is the case you could answer simply
RTFM.

Version management
Orbeon default stores forms in the eXist database. Is there a way to
manage different versions for forms using this database? Can yo
recommend alternatives if version management is not supported. If we
really want version management, what do you think about using
Subversion. Can we use the REST Web API for that?

Generic building blocks for forms
Is it possible to construct a form from pre-defined form components?
We would like to be able to define and use reusable chunks of forms
definition, logic and validation.

Different forms variants
Is it possible to create different variants of a form for different
types of users using some kind of extension mechanism. We want to be
able to create a generic form and then allow some users to make
changes to it, to make it specific for their purpose. Ideally it would
be possible to keep track some how of the changes made and merge them
if a new generic version is made available. I thought about using
Subversion for version management, I thought we could then also use it
to support different variants for a form by branching in Subversion.

Wizard
Is it possible to present a form as a wizard using multiple screens
and some kind of progress indicator.

Validations
Is it possible to do multi-field validations. What functionality is
there to do create custom validations e.g. using Javascript?

Saving form state
If the user does not submit directly, is the forms state maintained?
Or does the user have to fill in all fields anew? Is it possible to
fill in a form without a internet connection?

Business rules
Do you of applications where Orbeon was used together with a business
rule framework/engine.

Thanks in advance,
Onno


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Input on several features/wishes: version management, building blocks etc

Erik Bruchez
Administrator
> Version management
> Orbeon default stores forms in the eXist database. Is there a way to
> manage different versions for forms using this database? Can yo
> recommend alternatives if version management is not supported. If we
> really want version management, what do you think about using
> Subversion. Can we use the REST Web API for that?

The eXist persistence layer does not support versioning at the moment.

The Oracle XML kind of does, in that it keeps older versions. But this  
is not visible at the level of the REST API.

See also this section on the wiki, which I just updated:

http://wiki.orbeon.com/forms/doc/contributor-guide/form-builder-integration-notes#TOC-Support-for-versioning

> Generic building blocks for forms
> Is it possible to construct a form from pre-defined form components?
> We would like to be able to define and use reusable chunks of forms
> definition, logic and validation.

We have basic support for this, in the form of what we call Section  
Templates:

http://wiki.orbeon.com/forms/doc/user-guide/form-builder-user-guide#TOC-Section-templates

(Note that this Form Builder guide is being written as we speak.)

> Different forms variants
> Is it possible to create different variants of a form for different
> types of users using some kind of extension mechanism. We want to be
> able to create a generic form and then allow some users to make
> changes to it, to make it specific for their purpose. Ideally it would
> be possible to keep track some how of the changes made and merge them
> if a new generic version is made available. I thought about using
> Subversion for version management, I thought we could then also use it
> to support different variants for a form by branching in Subversion.

Currently there is no such extension mechanism.

> Wizard
> Is it possible to present a form as a wizard using multiple screens
> and some kind of progress indicator.

This is an oft-requested feature, but we don't have it yet. One  
approach was to:

* Allow for sub-sections in Form Builder
* Allow for top-level sections (possibly other sections) to be  
represented as a wizard

> Validations
> Is it possible to do multi-field validations. What functionality is
> there to do create custom validations e.g. using Javascript?

Could you precise "multi-field validations"?

You can write custom validation using XPath expressions or schema  
types in XForms.

We don't really have support for writing validation rules in JavaScript.

> Saving form state
> If the user does not submit directly, is the forms state maintained?
> Or does the user have to fill in all fields anew?

You have the notion of "saving" the form and "submitting" the form to  
a service. This might help.

> Is it possible to
> fill in a form without a internet connection?

We have some code in the XForms engine for offline support using  
Google Gears, but this is not integrated in Form Runner yet.

> Business rules
> Do you of applications where Orbeon was used together with a business
> rule framework/engine.

I don't think we have particular recommendations on this point.

-Erik

--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Input on several features/wishes: version management, building blocks etc

Onno van der Straaten-3
Hi Erik,
Thanks for your valuable input.

As the simplest example of a multi-field validation, fields could be
mutually exclusive (ie. only one field should be entered), another
example is that 'end date' should be after a 'start date'. More
complex validations could involve a validation of a value of a field
based on value of other fields.

Schema types don't support but with XPath expressions it can be done I
think. That looks like a viable option.

I think I was looking for something like Schematron for implementing
business rule, see http://en.wikipedia.org/wiki/Schematron. This looks
like something that could be integrated in Orbeon? I just scanned the
content btw, I know no more about it then what is described on that
page.

Any thoughts on using Subversion as database for storing forms? Is it
a stupid idea? For version management and to allow multiple instances
of a form to exists in Subversion branches?
Best Regards,
Onno


On Fri, Jun 5, 2009 at 1:58 AM, Erik Bruchez<[hidden email]> wrote:

>> Version management
>> Orbeon default stores forms in the eXist database. Is there a way to
>> manage different versions for forms using this database? Can yo
>> recommend alternatives if version management is not supported. If we
>> really want version management, what do you think about using
>> Subversion. Can we use the REST Web API for that?
>
> The eXist persistence layer does not support versioning at the moment.
>
> The Oracle XML kind of does, in that it keeps older versions. But this is
> not visible at the level of the REST API.
>
> See also this section on the wiki, which I just updated:
>
> http://wiki.orbeon.com/forms/doc/contributor-guide/form-builder-integration-notes#TOC-Support-for-versioning
>
>> Generic building blocks for forms
>> Is it possible to construct a form from pre-defined form components?
>> We would like to be able to define and use reusable chunks of forms
>> definition, logic and validation.
>
> We have basic support for this, in the form of what we call Section
> Templates:
>
> http://wiki.orbeon.com/forms/doc/user-guide/form-builder-user-guide#TOC-Section-templates
>
> (Note that this Form Builder guide is being written as we speak.)
>
>> Different forms variants
>> Is it possible to create different variants of a form for different
>> types of users using some kind of extension mechanism. We want to be
>> able to create a generic form and then allow some users to make
>> changes to it, to make it specific for their purpose. Ideally it would
>> be possible to keep track some how of the changes made and merge them
>> if a new generic version is made available. I thought about using
>> Subversion for version management, I thought we could then also use it
>> to support different variants for a form by branching in Subversion.
>
> Currently there is no such extension mechanism.
>
>> Wizard
>> Is it possible to present a form as a wizard using multiple screens
>> and some kind of progress indicator.
>
> This is an oft-requested feature, but we don't have it yet. One approach was
> to:
>
> * Allow for sub-sections in Form Builder
> * Allow for top-level sections (possibly other sections) to be represented
> as a wizard
>
>> Validations
>> Is it possible to do multi-field validations. What functionality is
>> there to do create custom validations e.g. using Javascript?
>
> Could you precise "multi-field validations"?
>
> You can write custom validation using XPath expressions or schema types in
> XForms.
>
> We don't really have support for writing validation rules in JavaScript.
>
>> Saving form state
>> If the user does not submit directly, is the forms state maintained?
>> Or does the user have to fill in all fields anew?
>
> You have the notion of "saving" the form and "submitting" the form to a
> service. This might help.
>
>> Is it possible to
>> fill in a form without a internet connection?
>
> We have some code in the XForms engine for offline support using Google
> Gears, but this is not integrated in Form Runner yet.
>
>> Business rules
>> Do you of applications where Orbeon was used together with a business
>> rule framework/engine.
>
> I don't think we have particular recommendations on this point.
>
> -Erik
>
> --
> Orbeon Forms - Web Forms for the Enterprise Done the Right Way
> http://www.orbeon.com/
>
>
>
> --
> You receive this message as a subscriber of the [hidden email] mailing
> list.
> To unsubscribe: mailto:[hidden email]
> For general help: mailto:[hidden email]?subject=help
> OW2 mailing lists service home page: http://www.ow2.org/wws
>
>


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Input on several features/wishes: version management, building blocks etc

Alessandro Vernet
Administrator
Onno,

Onno van der Straaten-3 wrote
I think I was looking for something like Schematron for implementing
business rule, see http://en.wikipedia.org/wiki/Schematron. This looks
like something that could be integrated in Orbeon? I just scanned the
content btw, I know no more about it then what is described on that
page.
We are using MSV for validation, and I see that there is an MSV add-on for MSV to support Schematron. I never used it, and am not even sure it really does what you are looking for. But with some luck it isn't something too hard to try. If you get to investigate this, you'll let us know what your findings are.

Onno van der Straaten-3 wrote
Any thoughts on using Subversion as database for storing forms? Is it
a stupid idea? For version management and to allow multiple instances
of a form to exists in Subversion branches?
No, it isn't. I think it even makes a lot of sense. It would be relatively easy to implement (I imagine that doing a PUT of the file would create a new version of the file), would allow the forms to be easily edited "by hand", and obviously would provide version management. The only part which would be harder to implement (and most likely not very efficient) is the search part. But overall this sounds like a very good idea!

Alex
Reply | Threaded
Open this post in threaded view
|

Re: Input on several features/wishes: version management, building blocks etc

jparker
In reply to this post by Erik Bruchez
Erik Bruchez wrote
> Version management
> Orbeon default stores forms in the eXist database. Is there a way to
> manage different versions for forms using this database? Can yo
> recommend alternatives if version management is not supported. If we
> really want version management, what do you think about using
> Subversion. Can we use the REST Web API for that?

The eXist persistence layer does not support versioning at the moment.

The Oracle XML kind of does, in that it keeps older versions. But this  
is not visible at the level of the REST API.

See also this section on the wiki, which I just updated:

http://wiki.orbeon.com/forms/doc/contributor-guide/form-builder-integration-notes#TOC-Support-for-versioning
FYI -- Not really an answer to your question, and perhaps you are already doing this, but to assist in your thinking of versioning and how to select versions here is a technique we have built into the schema for this.

The issue for us is that instances may be created with one version of a schema/form at one time and another version at another time. However, we still need to edit instances created with older versions later and they are essentially treated as the same thing from a users point of view.

What we are doing is to add a <VersionText/> tag to our schema with a fixed text value of the version string. Any instance created against this schema will not validate unless it has that tag with the specific fixed value. This has some advantages, including that the instance specifically declares the version it was created with, and this allows the schema file name itself to remain constant.

It then is a (relatively) simple matter to read the value of this version tag for any particular instance. For example, in order to display the instance with the correct form for editing.

Cheers!
-jason
Reply | Threaded
Open this post in threaded view
|

Re: Re: Input on several features/wishes: version management, building blocks etc

Erik Bruchez
Administrator
> FYI -- Not really an answer to your question, and perhaps you are  

> already
> doing this, but to assist in your thinking of versioning and how to  
> select
> versions here is a technique we have built into the schema for this.
>
> The issue for us is that instances may be created with one version  
> of a
> schema/form at one time and another version at another time.  
> However, we
> still need to edit instances created with older versions later and  
> they are
> essentially treated as the same thing from a users point of view.
>
> What we are doing is to add a <VersionText/> tag to our schema with  
> a fixed
> text value of the version string. Any instance created against this  
> schema
> will not validate unless it has that tag with the specific fixed  
> value. This
> has some advantages, including that the instance specifically  
> declares the
> version it was created with, and this allows the schema file name  
> itself to
> remain constant.
>
> It then is a (relatively) simple matter to read the value of this  
> version
> tag for any particular instance. For example, in order to display the
> instance with the correct form for editing.
Something similar to what you describe is exactly what we had in mind:

* Data would open with the version of the form it was created with
* An optional migration process (possibly manual) could bring older  
data up to date

-Erik

--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Input on several features/wishes: version management, building blocks etc

bmf0354
In reply to this post by Alessandro Vernet
Onno - your requirements are very similar to mine.  I also need to support business rules - I'm very interested to see if Schematron is a possibility.  Let me know if you have any additional info on this.

Brian

Alessandro Vernet wrote
Onno,

Onno van der Straaten-3 wrote
I think I was looking for something like Schematron for implementing
business rule, see http://en.wikipedia.org/wiki/Schematron. This looks
like something that could be integrated in Orbeon? I just scanned the
content btw, I know no more about it then what is described on that
page.
We are using MSV for validation, and I see that there is an MSV add-on for MSV to support Schematron. I never used it, and am not even sure it really does what you are looking for. But with some luck it isn't something too hard to try. If you get to investigate this, you'll let us know what your findings are.

Onno van der Straaten-3 wrote
Any thoughts on using Subversion as database for storing forms? Is it
a stupid idea? For version management and to allow multiple instances
of a form to exists in Subversion branches?
No, it isn't. I think it even makes a lot of sense. It would be relatively easy to implement (I imagine that doing a PUT of the file would create a new version of the file), would allow the forms to be easily edited "by hand", and obviously would provide version management. The only part which would be harder to implement (and most likely not very efficient) is the search part. But overall this sounds like a very good idea!

Alex
Reply | Threaded
Open this post in threaded view
|

Re: Re: Input on several features/wishes: version management, building blocks etc

Alessandro Vernet
Administrator
Brian,

bmf0354 wrote
Onno - your requirements are very similar to mine.  I also need to support business rules - I'm very interested to see if Schematron is a possibility.  Let me know if you have any additional info on this.
Have you already tried using <xforms:bind constraint="...">? This allows you to define constraints using XPath expressions, in a way that is very similar to what Schematron does.

Alex