受信SOAP Webサービスの設定

受信SOAP Webサービスの設定

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Alert

早期アクセス

この機能は、すべてのユーザーに対して有効になっているわけではありません。お試しになりたい場合は、メールでサポートチームに早期アクセスをお申し込みください。

インバウンドSOAP Webサービスでは、外部システムが呼び出してQntrlインスタンスと連携できるエンドポイントを作成できます。外部システムからSOAP要求が送信されると、Qntrlは要求を処理し、事前定義された操作に基づいてレスポンスを返します。これらのSOAPベースの連携を定義して構造化するために、WSDL(Webサービス記述言語)契約が使用されます。WSDL契約には、利用可能な操作、想定される要求パラメーター、レスポンスの形式が記述されます。
詳しくは、WSDL契約と設定方法について、次のWSDLセクションを参照してください。

  
サードパーティシステムが、顧客詳細を取得するためにQntrlインスタンスへSOAP要求を送信します。Qntrlはこの要求を処理し、顧客詳細をXMLレスポンスとして送信します。  

インバウンドSOAP Webサービスの作成   

QntrlでインバウンドSOAP Webサービスを作成するには、次の手順を実行します。

1. 設定][Webサービス][インバウンド]に移動し、[SOAP]を選択します。
2. サービスを定義します
  • [名前]:SOAPサービスの一意の名前を入力します。
  • [ソースエンドポイント]:SOAPサービスとの連携に使用するエンドポイントURLです。
  • [操作]サービスが実行する操作です。初期値:execute。
  • [リソース]既存の関数を選択するか、新しい関数を作成して、SOAPサービスのアクションを定義します。リストにはSOAPタイプの関数のみが表示されます。新しい関数を作成する場合は、エディターでスクリプトを記述します。関数は生成された名前で[関数]タブに自動的に表示され、後で名前を変更できます。
  • [認証タイプ]:API呼び出しの認証タイプを選択します。Qntrlでは、次の3種類の認証タイプをサポートしています。
    • OAuth
    • APIキー
    • ベーシック認証(ユーザー名とパスワードをBase64でエンコードし、ヘッダーで送信します)。
  • [WSDL準拠の必須化]WSDL準拠を有効にするオプションを選択します。
    • True

      • 設定済みの要求パラメーターとレスポンスパラメーターのみが許可されます。受信した要求に追加のパラメーターが含まれている場合、その要求は拒否されます。

      • 設定されていない出力パラメーターはレスポンスから除外されます。

      • 要求内の操作名は、WSDLで定義された名前と完全に一致している必要があります。一致しない場合、要求は失敗します。

    • False

      • WSDLで定義されていないパラメーターが含まれている場合でも、システムは外部からの要求を受け付けます。

      • ただし、設定済みのパラメーターには検証ルールが適用されます。

  • [要求パラメーター]要求で渡すパラメーターを定義します。
    • [パラメーター名]:入力パラメーターの名前を定義します。
    • [タイプ]:データ型を選択します。
    • [許可する正規表現]:パラメーター値の制限を設定します。
    • [最小長]:入力の最小長を定義します。
    • [最大長]入力の最大長を定義します。
    • [初期値]:パラメーターの初期値を設定します。
    • [必須]:パラメーターを必須にするかどうかを指定します。必須パラメーターが指定されていない場合、エラーが発生します。
  • [レスポンスパラメーター]
    • [名前]:出力パラメーターの名前を定義します。
    • [必須]:このパラメーターをレスポンスで必須にするかどうかを設定します。
Notes
バリデーションにより、受信した要求が想定形式に合っていることを確認します。バリデーションに失敗した場合、要求は拒否されます。

      

Qntrlは、エンドポイントURL操作名、設定済みの要求/レスポンスパラメーターに基づいてWSDLを自動生成します。これらの設定を変更すると、WSDLも自動的に更新されます。

WSDLをダウンロードするには、選択した認証方法を使用して、エンドポイントURLにGET要求を送信します。

      

 

リソース実行の仕組み

関数リソース

  • スクリプトでは、操作名、要求パラメーター、要求ヘッダー、完全なSOAPペイロード、エンドポイントURLにアクセスして処理できます。

  • レスポンスパラメーター、レスポンスヘッダーパラメーター、フォールトコード、フォールトメッセージを定義できます。また、完全なXMLレスポンスを定義することもできます。

  • エラーが発生した場合は、クライアントに返すエラーコードとメッセージを定義できます。

 

対応している関数  

Qntrlでは、受信SOAP APIでFunctionリソースを構築するために、次の言語に対応しています。

  • JavaScript(NativeまたはCodexエンジン)

  • その他のクラウド関数– Python、Java、Node.jsに対応しています。

例(JavaScript):入力パラメーターの読み取りとレスポンスの書き込み

/**
 * @param {SOAPRequest} soapRequest
 * @param {SOAPResponse} soapResponse
 */
function execute(soapRequest, soapResponse) {
try {
const operationName = soapRequest.getOperationName();
const endpointUri = soapRequest.getEndpointUri();
const requestParams = soapRequest.getRequestParams();
const requestHeaders = soapRequest.getHeaderParams();
 
console.log('SOAP 要求 Received:');
console.log('Operation:', operationName);
console.log('Endpoint URI:', endpointUri);
console.log('要求 Params:', JSON.stringify(requestParams));
console.log('要求 Headers:', JSON.stringify(requestHeaders));
 
// === Business logic こちら ===
// (For now we're mocking processing)
const processedParam1 = 'processed_value_1';
const processedParam2 = 'processed_value_2';
 
// Add response headers
soapResponse.addResponseHeaderParam('server', 'InternalGateway');
soapResponse.addResponseHeaderParam('要求-id', requestHeaders?.['要求-id'] || 'N/A');
soapResponse.addResponseHeaderParam('timestamp', new Date().toISOString());
 
// Add response params
soapResponse.addResponseParam('result_code', 'SUCCESS');
soapResponse.addResponseParam('processed_param1', processedParam1);
soapResponse.addResponseParam('processed_param2', processedParam2);
 
} catch (e) {
console.error('Error while processing SOAP 要求', e);
 
soapResponse.setFaultCode(500);
soapResponse.setFaultMessage(e.message);
}
}

 

例(Java):入力パラメーターの読み取りとレスポンスの書き込み

インポート com.zoho.cloud.function.Context;
インポート com.zoho.cloud.function.basic.*;
インポート org.json.JSONObject;
 
public class SampleSOAPFunction implements ZCFunction {
 
@Override
public void runner(Context context, BasicIO basicIO) throws Exception {
// Read incoming 要求 parameters
String operationName = basicIO.getParameter('operation_name').toString();
String requestParams = basicIO.getParameter('request_params').toString();
String requestHeaders = basicIO.getParameter('request_headers').toString();
String endpointURI = basicIO.getParameter('endpoint_uri').toString();
 
// Prepare Response
JSONObject responseJSON = new JSONObject();
 
try {
JSONObject responseParams = new JSONObject();
responseParams.put('customer_id', 'CUST12345');
responseParams.put('order_id', 'ORD78910');
 
responseJSON.put('response_params', responseParams);
 
JSONObject responseHeaders = new JSONObject();
responseHeaders.put('client-id', 'WEBPORTAL-001');
responseHeaders.put('要求-id', 'REQ-20251105-ALPHA99');
 
responseJSON.put('response_header_params', responseHeaders);
 
} catch (Exception e) {
// The final XML response will have only fault code and fault message.
responseJSON.put('fault_code', '500');
responseJSON.put('fault_message', e.getMessage());
}
 
// From above constructed response parameter and response header, final response XML will be automatically constructed and written to client.
basicIO.write(responseJSON.toString());
context.log('Response Sent: ' + responseJSON.toString());
}
}
(他の言語でも同様の構文を使用します。) 

QntrlでのWSDLの呼び出しと処理   

SOAP WSDLリクエストの作成

メソッド:任意のHTTPメソッド(例:GET)

URLhttps://core.qntrl.com/webservice/soap/<org-id>/<source_endpoint>?WSDL

認証(リクエストヘッダーに追加する必要があります)。

  • OAuthトークン
    • ヘッダー形式:Authorization: Zoho-oauthtoken <access_token>
    • 必要なOAuthスコープ:ws_soapinbound.UPDATE
  • APIキー  
    • ヘッダー形式:Authorization: Bearer <api_key>
  • 基本認証
    • Authorization: Basic <base64-encoded username:password>
サービスURLに?wsdlを追加する必要があります。WSDLでは、サービスの操作とメッセージ構造を定義します。これにより、指定したAPIのWSDLが返され、外部システムはそのWSDLを使用してサービスと連携できます。

SOAPメッセージリクエストの送信  

メソッド:任意のHTTPメソッド(例:POST)

URLhttps://core.qntrl.com/webservice/soap/<org-id>/<source_endpoint>

認証(リクエストヘッダーに追加する必要があります)。

  • OAuthトークン

    • ヘッダー形式:Authorization: Zoho-oauthtoken <access_token>

    • 必要なOAuthスコープ:ws_soapinbound.UPDATE

  • APIキー  

    • ヘッダー形式:Authorization: Bearer <api_key>

  • 基本認証

    • Authorization: Basic <base64-encoded username:password>

本文:生のXML要求データを含める必要があります。


 


SOAP 要求のサンプル:

<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:ord='https://98173384.core.localqntrlhost.com/webservice/98173384/orderManagement'> <soapenv:Header> <ord:AuthHeader> <ord:companyName>Zoho Corp</ord:companyName> </ord:AuthHeader> </soapenv:Header> <soapenv:Body> <ord:PlaceOrder> <ord:OrderID>12345</ord:OrderID> <ord:CustomerID>98765</ord:CustomerID> <ord:ProductID>10111</ord:ProductID> <ord:Quantity>3</ord:Quantity> <ord:OrderDate>2025-03-28</ord:OrderDate> </ord:PlaceOrder> </soapenv:Body> </soapenv:Envelope>


その他の操作

SOAP 要求の有効化/無効化

設定パネルから、個々のSOAP 要求の有効/無効を切り替えられます。

  1. 設定][Webサービス][受信][SOAP]を選択します。

  2. 左パネルのリソースセクションで、SOAPメッセージを探します。

  3. メッセージ名の横にある切り替えボタンを使用して、有効または無効にします。


SOAP 要求の削除

SOAP 要求を削除するには、次の手順を実行します。

  1. 設定][Webサービス][受信][SOAP]を選択します。

  2. 削除するメッセージを選択します。

  3. メッセージの詳細ページの右上にある削除アイコンをクリックします。





    • Related Articles

    • 送信SOAP Webサービスの設定

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 早期アクセス この機能は、すべてのユーザーに対して有効になっているわけではありません。試用を希望する場合は、サポートチームにメールで早期アクセスについてお問い合わせください。 ...
    • 受信REST Webサービスの設定

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 早期アクセス この機能はすべてのユーザーに対して有効になっているわけではありません。試用をご希望の場合は、メールでサポートチームにご連絡いただき、早期アクセスをお申し込みください。 QntrlのインバウンドREST ...
    • 送信REST Webサービスの設定

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 早期アクセス この機能はすべてのユーザーに対して有効になっているわけではありません。お試しになりたい場合は、サポートチームにメールで早期アクセスをお申し込みください。 アウトバウンドREST ...
    • 外部CRM経由のカード作成の自動化

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 シナリオ ある会社では、Zoho ...
    • Webサービスの概要

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 早期アクセス Webサービスはすべてのユーザーに対して有効化されていません。早期アクセスをご希望の場合は、サポートチームにメールでお問い合わせください。 ...