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}&form={$form}&docid={$document}&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"/>
감사합니다. ebruchez. 요청 매개 변수를 전달하는 측면에서 보면 4.5에서 꽤 간단합니다 (3.9와 비교). 간단한 속성 설정을 통해이를 수행 할 수 있습니다. – StackUser
제 코드에서 알 수 있듯이 param 이름이 'docid'인 document_id를 검색합니다. 내 응용 프로그램 코드를 변경하고 싶지 않기 때문에 orbeon 측에서 기본 'document'대신 'docid'로 요청 매개 변수 이름을 변경할 수있는 방법이 있습니까? – StackUser
'docid = {xxf : instance ('fr-parameters-instance')/document}'를 시도해 볼 수 있습니다. 그러나 이것은 Orbeon Forms 내부 구조에 달려 있습니다. – ebruchez