0

Github で同様の問題 (issue#18) を参照しましたが、何もうまくいきませんでした。

次のトランジション/サービスを使用しようとしています:

<transition name="storeContactInfo">
    <service-call name="mantle.party.ContactServices.store#PartyContactInfo" in-map="context" out-map="context" />
    <default-response url="." />
</transition>

画面の URL パラメータは workEffortId ですが、遷移が実行されると URL から削除されます。

私も試してみましたが、役に立ちませんでした:

<transition name="storeContactInfo">
    <path-parameter name="workEffortId"/>
    <service-call name="mantle.party.ContactServices.store#PartyContactInfo" in-map="context" out-map="context" />
<default-response url="." >
    <parameter name="workEffortId" from="workEffortId" />
</default-response>
</transition>

また、アクション タグを追加してみました。これにより、以前に問題が解決されました。しかし、それもうまくいきませんでした。

画面の他のトランジションは正常に動作します。そこにまだ問題がありますか、それとも何か間違っていますか?

私は1.5.1を使用しています。


更新: 問題は以前の問題 #18 ではなく、私がやっていることにあると思います。

渡されたマップと値を注意深くたどると、理解するのにかなりの複雑さがあるようです - get#PartyContactInfo から StupidUtilities.flattenNestedMap (渡されたマップとすべてのネストされたマップからのフィールドを持つ単一のマップを作成し、エントリを削除しますMap からの null 値) を介して store#PartyContactInfo に渡され、PartyForms.xml#ContactInfo を駆動するために渡された多くの条件を利用するトランジションで呼び出されます。

最初のサービス呼び出しから値を渡そうとしました:

<set field="partyId" from="facility.ownerPartyId" />
<service-call name="mantle.party.ContactServices.get#PartyContactInfo" out-map="projectSiteContactInfo" in-map="[partyId:partyId, workEffortId:workEffortId, postalContactMechPurposeId:'PostalShippingDest', telecomContactMechPurposeId:'PhoneShippingDest', emailContactMechPurposeId:'EmailShippingDest']" />

…ずっと通っているのに、なぜか向こうから出てこない。

4

1 に答える 1

0

解決策は、移行前にコンテナー ダイアログで呼び出された /mantle-usl/template/party/PartyForms.xml#ContactInfo ウィジェット コンポーネントに workEffortId フィールド (非表示) を追加することでした。

追加するとわかりました:

<parameter name="workEffortId" value="${workEffortId}" />

遷移まで、そのworkEffortは実際にはnullであったため、どこかで取り除かれているに違いありません。

ContactInfo フォームに workEffortId を追加すると、問題が解決しました。

于 2015-04-30T14:33:17.667 に答える