2014-06-12 2 views
2

Orbeon 3.9에서 4.5로 업그레이드 중입니다.Orbeon 4.5 - 요청 매개 변수를 전달하는 방법?

Orbeon 3.9에서는 사용자가 사용자 정의 제출 버튼을 클릭 할 때 요청 매개 변수를 성공 성공 URI (oxf.fr.detail.send.success.uri)로 전달했습니다. 우리는 persistence-model.xml을 수정하여이 작업을 수행했습니다. 다음

우리가 3.9에서 사용되는 코드의 일부이다 : 사용자가 제출을 위해 Orbeon 4.5에서

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

    <xforms:instance id="x3params"> 
     <data xmlns=""> 
      <customerid/> 
     </data> 
    </xforms:instance> 

    <xforms:action ev:event="xforms-model-construct-done" if="$app != '*' and $form != '*'"> 
     <xforms:setvalue ref="instance('g3params')/customerid" value="xxforms:get-request-parameter('customerid')" /> 

    <xxforms:variable name="g3customerId" as="xs:string" select="instance('g3params')/customerid"/> 

    <xforms:submission id="fr-workflow-send-submission" 
     resource="{$workflow-success-uri}?fr-app={$app}&amp;form={$form}&amp;docid={$document}&amp;customerid={$g3customerId}" 
     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"/> 

, 나는 save-final 공정을 사용했다.

4.5에서 fr-workflow-send-submission이 제거되었으므로 요청 매개 변수를 보내 성공 URI에 어떻게 전달할 수 있습니까? 당신은 서비스 URL에 XPath에 값 템플릿을 사용할 수 있습니다

<property as="xs:boolean" name="oxf.fr.detail.send.pdf" value="false"/> 
<property as="xs:boolean" name="oxf.fr.email.attach-pdf" value="false"/> 
<property as="xs:anyURI" name="oxf.fr.detail.send.success.uri.Preconstruction.*" value="http://localhost:8080/webapp/new"/> 
<property as="xs:string" name="oxf.fr.detail.send.success.method.*.*" value="post"/> 
<property as="xs:boolean" name="oxf.fr.detail.send.success.prune.*.*" value="false"/> 

답변

1

:

<property 
    as="xs:string" 
    name="oxf.fr.detail.send.success.uri.Preconstruction.*" 
    value="http://localhost:8080/webapp/new?customerid={xxf:get-request-parameter('customerid')}"/> 

Orbeon 양식이 app, formdocument를 전달

다음

내 속성 - local.xml입니다 기본적으로 지금. 유일한 것은 코드에서 fr-app, formdocid을 사용한다는 것입니다. 이제는 Orbeon Forms에서 사용하는 표준 이름을 사용하는 것으로 전환하는 것이 좋습니다 (예 : app, formdocument).

+0

감사합니다. ebruchez. 요청 매개 변수를 전달하는 측면에서 보면 4.5에서 꽤 간단합니다 (3.9와 비교). 간단한 속성 설정을 통해이를 수행 할 수 있습니다. – StackUser

+0

제 코드에서 알 수 있듯이 param 이름이 'docid'인 document_id를 검색합니다. 내 응용 프로그램 코드를 변경하고 싶지 않기 때문에 orbeon 측에서 기본 'document'대신 'docid'로 요청 매개 변수 이름을 변경할 수있는 방법이 있습니까? – StackUser

+0

'docid = {xxf : instance ('fr-parameters-instance')/document}'를 시도해 볼 수 있습니다. 그러나 이것은 Orbeon Forms 내부 구조에 달려 있습니다. – ebruchez

관련 문제