SOAP プロトコルを使用するときに、GeneXus メインオブジェクトの呼び出しを設定します。
SOAP によりリモートオブジェクトを呼び出す場合、Location データタイプを使用して呼び出しを設定します。
まず、
GetLocation 関数で Location 変数を既存の場所に関連付けてから、Location データタイプのプロパティを使用して呼び出しを設定する必要があります。エラーのチェックには、
GetSOAPErr および
GetSOAPErrMsg 関数を使用できます。
Location データタイプは、たとえば Web サービスホストを変更したり、Web サービスの問題に対するエラーメッセージをより分かりやすくしたりするために使用できます。
"MyWebService" という名前の Web サービスの外部オブジェクトがあり、この Web サービスに基づく変数がオブジェクトにある場合、次のようにロケーションを使用できます:
&location = getLocation("MyWebService")
&location.Host = 'www.genexus.com' // HTTP/HTTPS などのプロトコルを含めない
&location.BaseUrl = '/services/'
&location.port = 443
&location.secure = 1 // 安全なサーバーの Web サービスの場合
&location.CancelOnError = 2 // エラーを管理する場合 (1)
&mywebservice.execute()
(1) - エラーの情報は、
GetSoapErr 関数および
GetSoapErrMsg 関数を使用して取得できます。
ロケーションの設定を指定する場合、一般的に
Location.xml もよく使用されます。
Location データイプで実行時に指定したプロパティのほうが、Location.xml ファイルで実行時に指定したプロパティよりも優先されます。また、Location.xml ファイルで実行時に指定したプロパティは、生成時に指定したプロパティよりも優先されます。これにより、ロケーションの設定における自由度が高まります。
GeneXus X Evolution 3 Upgrade 7 のロケーションが正常に動作しているため、
[ Use Native Soap ] プロパティがアクティブな場合、以前のバージョンは動作しません。
認証またはプロキシ認証の場合に正しく機能させるには、レルム名を認識する必要があります。さもないと、サービスを呼び出したときにエラーが発生します。
プロキシを使用する場合に [ ProxyAuthenticationRealm ] プロパティが定義されていないと、サービスの実行時に次のエラーが表示されます:
407: Proxy Authentication Required
サービス SOAP の特定の場合に限り、Location データタイプでより多くのデータを設定する必要があります。このため、Location データタイプを拡張する方法があります。次のページで詳細をご確認ください:
Location データタイプを拡張するための GxSoapHandlers メカニズム。
これは、
[ Use Native Soap ] プロパティがアクティブな場合にだけ適用されます。
Locations
GetLocation 関数
GetSOAPErr 関数
GetSOAPErrMsg 関数