SalesforceAPI連携入門(Apex SOAP Webサービスの公開)

初めに

必要に応じて下記の記事もご参照ください。

Salesforce API連携入門(SF→外部システム編):Salesforceから外部システムのAPIをApex Calloutを用いて叩く記事

Salesforce API連携入門(外部システム→SF編):外部からRESTでSF標準のAPIを叩いてレコードをPOSTする記事

Salesforce API連携入門(SOAP API編):外部からSOAPでSF標準のAPIを叩いてレコードを取得&作成する記事

前書き

Apex SOAP Webサービスの公開方法がTrailheadの「Apexインテグレーションサービス」モジュールで十分に紹介されていないので、そこを補足していきたいと思います。

具体的には「Apex Web サービス」モジュールで紹介されている下記コードの"Add your code"の部分を補います。

手順

1.下記のApex Classを作成する。

global class AccountSoapWebService{
    webService static Account getAccountById(String accountId){
       Account acc=[SELECT id,name FROM Account WHERE id=: accountId];
      return acc;
    }
}

ポイント

  • Classにglobal修飾子をつける
  • MethodにwebService修飾子static修飾子をつける

2. PostmanでエンドポイントURLとして下記を指定

https://私のドメイン.my.salesforce.com/services/Soap/class/クラス名

3. XML形式で下記のbodyを記述

<?xml version="1.0" encoding="utf-8"?>   
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns="http://soap.sforce.com/schemas/class/クラス名">
  <soapenv:Header>
     <SessionHeader>
        <sessionId>セッションID</sessionId>
     </SessionHeader>
  </soapenv:Header>
  <soapenv:Body>
     <メソッド名>
        <引数名>渡したい値</引数名>
     </メソッド名>
  </soapenv:Body>
</soapenv:Envelope>

4. Sendをクリック

以上で、Apexで作成したSOAP Webサービスのメソッドを呼び出しに成功しましたノ

↓Return文

Salesforce

Posted by regardie