2016-06-17 15 views
0

Dan、Sung、Leigh:HTTPS POSTへの応答としてXMLファイルを返信する

フォローアップに時間を割いていただきありがとうございます。

ダン:

はい、ベンダーに問い合わせました。私たちは私たちのためにPMを扱っており、彼らからの返信を待っています。彼は技術者に相談することになっている。ソンとリーはあなたが言っていることを励ましています。火曜日まで待つことはできません(ファイナンス機能担当者は月曜日に休業していますので、火曜日までファイルをプッシュすることはできません)試してみる。

ありがとうございました。私たちとあなたの専門知識を共有していただければ幸いです。皆さんが素晴らしい週末を過ごしたいと願っています。

ゲリー

これは基本的に「やり方」の質問です。

背景:Sciquestサプライヤー管理システムと対話

私たちは、ほとんどのColdFusion(V11)でコーディングされた大規模なアプリケーションの開発を完了しました。最後の項目は、XMLファイルの受信時にベンダSciquestへの応答を返します。この応答XMLファイルには、自分が投稿したファイルに固有の情報が含まれています。

ベンダーファイルは、ColdFusionディレクトリウォッチャーによって監視されるWebサーバーの1つに格納されています。通常、このタイプの他のアプリでは、情報をURLにポストバックします。

しかし、我々は(我々が言われた正確に何)私たちのSciquest接触によって言われた:

サプライヤー、輸出応答メッセージが URLに掲載されている必要はありません。これは、SciQuest サーバがXMLをPaceサーバに投稿したのと同じ接続で返される応答です。プロセスが非同期であった場合、ACKメッセージには の性質が似ています。

応答が受信されるまで、どうやらベンダーの接続が(私はHTTPは生きて接続を維持仮定)が正しく閉じられていません。できればColdFusionを使用して、サーバーへの接続を通じてXML応答ファイルをベンダーに送り返す方法について、何人かの指示を与えることができます。

更新:

まず、応答するためにあなたダン、宋とリーをありがとうございます。 Stack OverFlowに投稿したのはこれが初めてです。

ファイルは、ベンダーのSciquestからHTTPSポストを介してGoogleに送信されます。レスポンスXMLファイルは、(システムからの)新しいレコードと、私たちに送られたXMLの各ノードセクションを開始する「SQI」番号を必要とするため、ベンダーに返信する前にファイルを処理する必要があります。

私は皆さんが提案したことを試してみます。ファイルをファイルサーバーに移動し、処理するシステムを起動するCF Gateway Directory Watcherが、私たちに送信されたファイルを監視していることに留意しました。

Danが提案したように応答XMLファイルを出力するプログラムを実行するか、Sungが提案したCFHeader仕様を持つプログラムを実行すると、ファイル情報をベンダーに返信するために必要なのはすべてメインプログラム?

ファイナンス担当者がベンダーサイトのクライアント管理者にプッシュを生成するため、火曜日まで私たちにはさらにファイルを送信できません。

私は試してみるとすぐに更新されます。

ありがとう、あなたの援助は非常に高く評価されており、偉大な週末を過ごしています。また、父親のあなたのために、素晴らしい父の日です。

+1

最も簡単な解決法が実際に機能するかもしれません。 '#xmlVariable# ' –

+0

*ベンダーファイルは、当社のWebサーバーの1つに保管されています。彼らは何らかのcfmスクリプトにファイルを "投稿"していますか?はいの場合は、ダンの提案が目標です。 – Leigh

+0

*応答XMLファイルを出力するプログラムを実行しますか?*理論的にはyesです。ファイルが処理され、正しいxml応答が生成されている限り、その同じ要求に対して基本的には、受け取ったときに処理する必要があるように思えます。後で処理する必要はありません。 – Leigh

答えて

3

ベンダがあなたのタイトルで示唆するように、HTTPS POSTを介してXMLファイルを送信している場合は、XML応答を返信して送信を確認することができます。

<cfheader name="Content-Type" value="text/xml"> 
[create the XML] 

あなたは何らかの小切手をしたいと思うでしょうか? GetHttpRequestData()を使用すると、あらゆる種類の良いものを取り戻すことができます。ちょうどそれをcfdumpして、あなたが表示されます。

<cfset data = GetHttpRequestData()> 
<cfdump var="#data.content#"> 

それはあなたにXML送信を提供します。

+0

(編集)...またはそれがどのように投稿されたかによって、 'form'スコープを確認してください。現在のプロセスが非同期にファイルを処理するように思えます。送信者は、それらが処理される(または少なくとも何らかの形で認識される)ことを同期して期待しています。 – Leigh

+0

私はちょうどこれに対処しなければなりませんでした。面白かったです - 私はCFX_HTTPを使ってエンドポイント呼び出しをシミュレートしました。その呼び出しがPOSTを使用してもフォームスコープは何もありませんでした。なぜ私は本当にわからない。だから私はちょっとグーグルでGetHttpRequestData()を見つけました。それは私にあらゆる種類の良いものを与えました。 :) – Sung

+0

はい、それは投稿される内容と方法によって異なります。例えば、リクエスト "body"は通常、 'GetHttpRequestData()'にありますが、 'form'スコープにはありません。一方、 "ファイル"は通常は 'form'スコープに存在しますが、' GetHttpRequestData() 'には存在しません。通常は同じデータが入っていますが、ほとんどの場合と同じように...それはすべて依存しています:) – Leigh

関連する問題