Flex Gateway新着情報
Governance新着情報
Monitoring API Managerチュートリアルのこのセクションでは、Salesforce ケースがエスカレーションされた場合は地域リーダーにメールを送信し、それ以外の場合は Mule アプリケーションから Slack にメッセージを送信するための条件をフローに追加する方法について説明します。
次の手順を実行します。
Slack と Salesforce の設定ファイルの作成と Salesforce インテグレーションの設定。
Choice ルーターを使用して、特定の条件に基づいて動作を定義します。この場合、ケースがエスカレーションされた場合にメールを送信するように選択します。
Anypoint Code Builder で、new-case-salesforce.xml ファイルを開きます。
Logger コンポーネントの 
 ([Add component (コンポーネントを追加)]) アイコンをクリックします。
「choice」と入力して [Flow Control (フローコントロール)] の下の [Choice] を選択します。
<when/> および <otherwise/> 要素を追加します。
<choice doc:name="Choice">
   <when doc:name="When" >
   </when>
   <otherwise doc:name="Otherwise" >
   </otherwise>
</choice>
Mule フローを読みやすくするために、<choice/>、<when/>、<otherwise/> 要素の名前を更新します。
<choice doc:name="Is Case Escalated?">
  <when doc:name="Escalated" >
  </when>
  <otherwise doc:name="Not Escalated" >
  </otherwise>
</choice>
変数 casestatus が [Escalated (エスカレーション済み)] の場合に実行されるように when 分岐を定義します。
<choice doc:name="Is Case Escalated?">
  <when doc:name="Escalated" expression='#[vars.casestatus == "Escalated"]'>
  </when>
  <otherwise doc:name="Not Escalated" >
  </otherwise>
</choice>
<when/> 要素を設定するには、まずメール用 Anypoint Connector (Email Connector) の操作を設定する必要があります。
Anypoint Code Builder で、new-case-salesforce.xml ファイルを開き、<salesforce:sfdc-config/> 要素の下に新しい行を追加します。
「smtp」と入力して email:smtp-config を選択します。
<email:smtp-config name="Email_SMTP">
  <email:smtps-connection host="${email.host}" user="${email.username}" password="${email.password}">
   <tls:context>
     <tls:trust-store insecure="true" />
   </tls:context>
  </email:smtps-connection>
</email:smtp-config>
[Escalated (エスカレーション済み)] セクションの後の 
 ([Add component (コンポーネントを追加)]) アイコンをクリックします。
「send」と入力して [Email (メール)] セクションから [Send] を選択します。
次のコードサンプルを使用して、send を設定します。
<email:send config-ref="Email_SMTP" doc:name="Send Escalation Email" subject='#["Case " ++ vars.casenumber ++ " was escalated"]'>
  <email:to-addresses>
    <email:to-address value="${email.username}" />
  </email:to-addresses>
  <email:body contentType="text/html" >
    <email:content ><![CDATA[#["Please handle this case. " ++ payload]]]></email:content>
</email:body>
</email:send>
アプリケーションをテストできるようにするには、一時的に <otherwise/> 要素内に <logger/> 要素を追加します。
<logger doc:name="Temporary Logger" message='#["Please look into this new Case: " ++ payload]'/>
Choice ルーターのすべての設定を調べます。
<choice doc:name="Is Case Escalated?">
  <when doc:name="Escalated" expression='#[vars.casestatus == "Escalated"]'>
      <email:send config-ref="Email_SMTP" doc:name="Send Escalation Email" subject='#["Case " ++ vars.casenumber ++ " was escalated"]'>
             <email:to-addresses>
               <email:to-address value="${email.username}" />
            </email:to-addresses>
            <email:body contentType="text/html" >
                   <email:content ><![CDATA[#["Please handle this case. " ++ payload]]]></email:content>
                 </email:body>
           </email:send>
  </when>
  <otherwise doc:name="Not Escalated" >
    <logger doc:name="Temporary Logger" message='#["Please look into this new Case: " ++ payload]'/>
  </otherwise>
</choice>
テストを効率化するには、Logger コンポーネントのブレークポイントを削除します。
[Run (実行)] > [Start Debugging (F5) (デバッグを開始 (F5))] を選択します。
アプリケーションが正常にデプロイされたら、Salesforce アカウントにログインします。
アプリケーションランチャーから、[サービス] を選択します。
[ケース] > [新規ケース] を選択します。
新規ケースの [状況] が [エスカレーション済み] であることを確認します。
数秒後、設定されたメールアカウントで、ケースで設定された情報が含まれるメールを受信していることを確認します。
Please handle this case. Case Number: 00001030, Origin: Phone, Case Type: , Priority: Medium, Status: Escalated
「Slack インテグレーションの設定」に進み、エスカレーションされなかったケースの Slack メッセージの設定方法を確認します。