Я хочу настроить успех сообщение (successMessageTextBox
) и downloadLink (linkTextbox
) на уровне формы (метаданные) через formBuilder
, так что администратор может изменить и опубликовать его в любое время. Также эти значения могут быть доступны для файла properties-local.xml
для настройки success-message
.Orbeon пользовательских метаданных на уровне формы
: например
navigate(uri="{xxf:instance('fr-parameters-instance')//linkTextbox}")
success-message(message = "{xxf:instance('fr-parameters-instance')//successMessageTextBox}")
Любое предложение будет оценено !!
UPDATE: -
1> MetaData
if (exists(xxf:instance('fr-form-metadata')/linkTextbox))
then navigate(uri="{xxf:instance('fr-form-metadata')/linkTextbox}")
else nop
2> Formfeild
if (exists(xxf:instance('fr-form-instance')//linkTextbox))
then success-message(message = "{xxf:instance('fr-form-instance')//linkTextbox}")
else then success-message("save-success")
код оснастки существует
<property as="xs:string" name="oxf.fr.detail.process.save-final.*.*">
require-uploads
then validate-all
then save
if (exists(xxf:instance('fr-form-instance')//linkTextbox))
then navigate(uri="{xxf:instance('fr-form-instance')//linkTextbox}")
else nop
recover error-message("database-error")
</property>
Код привязка наводкой
<property as="xs:string" name="oxf.fr.detail.process.save-final.*.*">
require-uploads
then validate-all
then save
then
(
if ("not(xxf:is-blank(xxf:instance('fr-form-instance')//msg))")
then success-message(message = "{xxf:instance('fr-form-instance')//msg}")
else nop
)
recover error-message("database-error")
</property>
Журнал ошибок: -
2016-09-26 23:06:44,925 INFO lifecycle - event: {"request": "21", "session": "AA57957F553E16581E264D06E3241BFD", "source": "fr", "message": "start: process", "uuid": "3bd78eb64e035d7d710a74049c972aca086b095a", "scope": "oxf.fr.detail.process", "name": "save-final-custom"}
2016-09-26 23:06:45,302 ERROR XFormsServer -
+----------------------------------------------------------------------------------------------------------------------+
|An Error has Occurred |
|----------------------------------------------------------------------------------------------------------------------|
|Invalid source: |
|Invalid input 'f', expected OptWhiteSpace or ')' (line 9, pos 39): |
| if ('not(xxf:is-blank(xxf:instanc |
|e('fr-form-instance')//msg))') |
| ^ |
|----------------------------------------------------------------------------------------------------------------------|
|Application Call Stack |
|----------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.parboiled.errors.ParsingException |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.oxf.fr.process.ProcessParser$ |parse |ProcessParser.scala | 121|
|nterpreter$ProcessRuntime$$anonfun$parseProcess$1$1|apply |ProcessInterpreter.scala | 201|
|nterpreter$ProcessRuntime$$anonfun$parseProcess$1$1|apply |ProcessInterpreter.scala | 201|
|org.orbeon.oxf.util.ScalaUtils$BooleanWrapper$ |option$extension |ScalaUtils.scala | 115|
|n.oxf.fr.process.ProcessInterpreter$ProcessRuntime$|parseProcess$1 |ProcessInterpreter.scala | 201|
|n.oxf.fr.process.ProcessInterpreter$ProcessRuntime$|runSubProcess |ProcessInterpreter.scala | 203|
|nonfun$apply$11$$anonfun$apply$12$$anonfun$apply$13|apply |ProcessInterpreter.scala | 235|
|nonfun$apply$11$$anonfun$apply$12$$anonfun$apply$13|apply |ProcessInterpreter.scala | 235|
|scala.util.control.Breaks$$anon$1 |catchBreak |Breaks.scala | 63|
|un$runProcess$3$$anonfun$apply$11$$anonfun$apply$12|apply |ProcessInterpreter.scala | 236|
|un$runProcess$3$$anonfun$apply$11$$anonfun$apply$12|apply |ProcessInterpreter.scala | 233|
|scala.util.Success |flatMap |Try.scala | 231|
|Interpreter$$anonfun$runProcess$3$$anonfun$apply$11|apply |ProcessInterpreter.scala | 233|
|Interpreter$$anonfun$runProcess$3$$anonfun$apply$11|apply |ProcessInterpreter.scala | 241|
|org.orbeon.oxf.util.DynamicVariable |withValue |DynamicVariable.scala | 42|
|n.oxf.fr.process.ProcessInterpreter$ProcessRuntime$|withEmptyStack |ProcessInterpreter.scala | 96|
|fr.process.ProcessInterpreter$$anonfun$runProcess$3|apply |ProcessInterpreter.scala | 232|
|fr.process.ProcessInterpreter$$anonfun$runProcess$3|apply |ProcessInterpreter.scala | 232|
+----------------------------------------------------------------------------------------------------------------------+
2016-09-26 23:06:45,396 INFO lifecycle - event: {"request": "21", "session": "AA57957F553E16581E264D06E3241BFD", "source": "fr", "message": "end: process", "time": "471 ms"}
2016-09-26 23:06:45,593 INFO lifecycle - event: {"request": "21", "session": "AA57957F553E16581E264D06E3241BFD", "source": "xforms", "message": "after cacheOrStore", "document cache current size": "1", "document cache max size": "50"}
2016-09-26 23:06:45,594 INFO ProcessorService - /xforms-server - Timing: 1198
Я попытался этот параметр, пользователь может видеть настроенное настраиваемое сообщение, но все еще сталкивается с той же проблемой. Если я изменил сообщение и опубликовал его снова, старый пользователь не может видеть обновленное сообщение. – HybrisFreelance
Какую базу вы используете? Если реляционная база данных при публикации вы решили обновить существующую версию формы? Если вы создали новую версию, то действительно сообщение не изменится, поскольку версия определения формы, которая использовалась для создания формы, также используется при ее редактировании, что является точкой управления версиями. – avernet
Я пытался в демоверсии использовать файл warball (CE). – HybrisFreelance