2012-06-27 13 views
0

如何在「persistence-model.xml」中將請求參數傳遞給「fr-workflow-send-submission」? 例如,如果我打開一個表格:如何將請求參數傳遞給「persistence-model.xml」中的「fr-workflow-send-submission」?

.../orbeon .. myRequestParameter = myRequestParameterValue

,比通過myRequestParameter爲「oxf.fr.detail.send.success.uri 。 「

我試着做到以下幾點:

<xforms:model id="fr-persistence-model".... 

            .... 

      <xxforms:variable name="parameters" value="xxforms:instance('fr-parameters- instance')" as="element()"/> 
      <xxforms:variable name="app" value="$parameters/app" as="xs:string"/> 
      <xxforms:variable name="form" value="$parameters/form" as="xs:string"/> 
      <xxforms:variable name="document" select="$parameters/document"/> 
      <xxforms:variable name="mode" select="$parameters/mode"/> 

            .... 

      <xxforms:variable name="myVariable"/> 

            .... 

      <xforms:action ev:event="xforms-model-construct-done" if="$app != '*' and $form != '*'"> 

            .... 

        <xforms:setvalue ref="$myVariable" value="xxforms:get-request-parameter('myRequestParameter')"> 

            .... 

      <xforms:submission id="fr-workflow-send-submission" 
        resource="{$workflow-success-uri}?myRequestParameter={$myVariable}" 
        relevant="{xxforms:property(string-join(('oxf.fr.detail.send.success.prune', $app, $form), '.'))}" 
        validate="false" method="{$workflow-success-method}" 
        serialization="{if ($workflow-success-method = 'get') then 'none' else 'application/xml'}" 
        ref="if (instance('fr-workflow-send-instance') != '') then instance('fr-workflow-send-instance') else xxforms:instance('fr-form-instance')" 
        replace="all"/> 

            .... 

和變量 」MYVARIABLE「 總是emtpy。

我也試着做「的XForms模型的構建,實現」插入事件:

         .... 
        <xxforms:variable name="parameters" value="xxforms:instance('fr-parameters- instance')" as="element()"/> 
        <xxforms:variable name="myVariable" select="$parameters/myRequestParameter"/> 

             .... 
//on xforms-model-construct-done 
     <xforms:action> 
      <xxforms:variable name="myRequestParameter-name" select="'myRequestParameter'"/> 
      <xxforms:variable name="myRequestParameter-value" select="xxforms:get-request-parameter($myRequestParameter-name)"/> 
      <xforms:insert context="instance('fr-parameters- instance')" origin="xxforms:element($myRequestParameter-name, $myRequestParameter-value)"/> 
     </xforms:action> 

             .... 

但「MYVARIABLE」仍然是空的。

回答

1

你不能在變量上使用<xforms:setvalue>,當你定義一個變量時,你還需要說明它的值是什麼,或者如果使用最近的版本(以及即將推出的Orbeon Forms 4.0):<xforms:var name="myVariable" value="xpath"/>,因爲variables正在進入XForms 2.0。

這裏你想要的是一個實例。嘗試更換:

  1. <xxforms:variable name="myVariable"/><xforms:instance id="myInstance"><instance></xforms:instance>
  2. $myVariableinstance('myInstance')
相關問題