2012-02-18 1 views
2

私は、現在の発行トランザクションを作成したユーザーに関する情報を追加する必要があるユースケースを持っています(ユーザー名だけでなく、グループメンバーシップやその他の詳細も必要です)。あなたがこの方法を気づくこととして、次のコードアイテムの公開を解除するときに、トランスポートパッケージマニフェスト(instructions.xml)に情報を追加しますか?

engine.PublishingContext.RenderedItem.AddInstruction(
             InstructionScope.Global, instruction); 

を行うには、これは比較的容易である出版「AddInstructionは」「RenderedItem」のためにのみ利用可能ですが、非公開命令がアイテムをレンダリングしていない

、私は同じテクニックを使用することはできません。

(カスタムリゾルバなどで)ファイルシステムでパッケージマニフェストをハッキングしないと、この要件にどのように対処しますか?

答えて

5

Deployerでこの情報を使用して行う必要があることに関する詳細情報がありますか。イベントハンドラで起こった後で、公開しないアクションをキャプチャし、追加情報を使ってDeployerにメッセージを送信する2回目の公開アクションを作成することはオプションか? (私はそれが2ラウンドトリップを意味することを知っていますが、私はこの時点で別のアプローチを考えることはできません)。私たちは実際には非公開段階のテンプレートによって実行されたコードをR3に持っていました(それは当時はすべてPerlでしたが)。

+0

Chrisさん、ありがとうございました。私はとにかくエンハンスメントリクエストを提出します。 この種の情報を渡す目的でのみ、「特別な」コンポーネントまたはページを公開することについて説明します。デプロイヤー拡張機能ではこれを理解する必要があります。 –

2

これは欠落している拡張性ポイントかどうか疑問です。結局のところ、私はあなたが非公開で余分なデータを送信したいと思う理由を見ることができます。まず、私は、このユースケースをサポートするためにいくつかの機能を追加するという強化要求を提案します。

質問のポイント...パッケージをハッキングすることなく何かを実装する方法。おそらく、別の仕組みで情報を利用できるようにすることもできます。たとえば、コンテンツマネージャで実行され、特定の公開トランザクションIDに対してクエリが実行されたときにデータを提供するWebサービスを作成できます。

+0

私は確かにそれが欠けている拡張性のポイントだと思います。強化要求が提出されました。 –

関連する問題