2

Oracle Forms and Reportsには、アプリケーション・サーバーのアドレスを取得するための機能や手順、または可能性がありますか。

例えば:

http://hostname:portno/servlet/RWServletserver=repserver+report=ReportName+destype=cache+userid=ConnectString+desformat=htmlcss

そして、私はこの部分を取得したい:http://hostname:portno

または、アプリケーションサーバーのアドレスを知らなくても、他の方法でアプリケーションのリンクを作成する可能性はありますか?

リンクは、レポートによって作成されたExcelファイルへのリンクです。上のリンクは単なる例であり、ファイルへのリンクではありません。ファイルへのパスは既知です。

4

1 に答える 1

1

部分的な解決策があります-次のFormsPL/ SQLコードは、アプリケーションサーバーのIPアドレスを返します:-

declare
  v_ip_address   varchar2(20);
  --
begin
  select SYS_CONTEXT('USERENV','IP_ADDRESS') into v_ip_address from dual;
  --
end;

この機能の注意点は、データベース機能を使用するため、これを使用するにはフォーム/レポートをデータベースに接続する必要があることです。ただし、データベースサーバーではなく、常にアプリケーションサーバーのIPアドレスを返します。そして、これらが異なるボックスにある場所でテストされています。

SYS_CONTEXTは、コンテキスト名前空間に関連付けられたパラメータの値を返すOracleデータベース関数(9i、10g、および11gで使用可能であることが確認されています)です。組み込みの名前空間USERENVが付属しています。この名前空間には、多くの興味深い有用なパラメーターがあります。詳細については、 http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions165.htm#g1513460を参照してください。

ここで使用されている特定のパラメータ(IP_ADDRESS)は、接続されたクライアントのIPアドレスを返します。これは、データベースの観点からはアプリケーションサーバーです。これは、フォーム/レポートが実際に実行されている場所であるため、必要なものを取得できます:)私はこれをテストしていませんが、これはフォームだけでなくレポートでも機能するはずです。

ポート番号を取得する方法がわかりません。恐れ入りますが、上記がお役に立てば幸いです。

乾杯、

キース

于 2013-04-30T13:03:10.897 に答える