この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

onTabSave()

ユーザがサブタブの [Unsaved Changes (保存されていない変更)] ダイアログボックスの [Save (保存)] をクリックすると、コールバックメソッドを登録し、コールします。このメソッドを使用する場合、コールバックメソッドで setTabUnsavedChanges() をコールします。これにより、カスタム保存操作が完了したことがコンソールに通知されます。setTabUnsavedChanges() へのコールでは、保存が成功したことを示すには、最初のパラメータとして false を渡し、保存が失敗したことを示すには、true を渡します。このメソッドは、API バージョン 28.0 以降でのみ使用できます。

コールバックメソッドを登録すると、ユーザインターフェースに影響します。保存ハンドラが登録されていないと、変更を保存せずにサブタブを閉じるときに、[Continue (次へ)] および [Cancel (キャンセル)] という 2 つのオプションがユーザに表示されます。保存ハンドラが登録されていると、サブタブを閉じるときに [Save (保存)][Don’t Save (保存しない)]、および [Cancel (キャンセル)] という 3 つのオプションがユーザに表示されます。この場合、ユーザが [Save (保存)] を選択すると、登録済みのコールバックメソッドがコールされます。

setTabUnsavedChanges() を指定して onTabSave() を使用する場合:

  • sforce.console.setTabUnsavedChanges(false,...) をコールして、指定されたサブタブを閉じます。後続の保存ロジックが実行されないように、コールバックメソッドの最後に sforce.console.setTabUnsavedChanges() へのコールを実行することをお勧めします。
  • onTabSave() は、サブタブまたはそのサイドバーコンポーネントでのみ動作します。主タブでは動作しません。
  • sforce.console.setTabUnsavedChanges() をコールしないと、ユーザインターフェースに重大な影響が及びます。たとえば、sforce.console.setTabUnsavedChanges() がコールされていない状態のサブタブがある主タブを閉じると、Saving... モーダルダイアログボックスが閉じなくなります。
  • 指定されたタブが正常に保存されて閉じると、sforce.console.setTabUnsavedChanges() に渡されたすべてのコールバックは実行されません。

重要

カスタムコンソールコンポーネントから onTabSave() をコールすると、サブタブの保存時にコンポーネントが更新されません。カスタムコンソールコンポーネントについての詳細は、Salesforce オンラインヘルプの「Salesforce Classic でのカスタムコンポーネントを使用したコンソールのカスタマイズ」を参照してください。

メモ

構文

1sforce.console.onTabSave(callback:Function)

引数

名前 説明
callback function 保存操作を処理するためにコールされる JavaScript メソッド。

サンプルコード – Visualforce

1<apex:page>
2    <a href="#" onClick="testOnTabSave();return false">
3         Click here to register save handler</a> 
4    
5    <apex:includeScript value="/support/console/48.0/integration.js"/>
6    <script type="text/javascript">
7        function testOnTabSave() {
8            sforce.console.onTabSave(handleSave);
9        }
10    var handleSave = function handleSave(result) {
11        alert('save handler called from tab with id ' + result.id +
12             ' and objectId ' + result.objectId);
13        //Perform save logic here
14        
15        //Mark tab as 'clean'
16        sforce.console.setTabUnsavedChanges(false, undefined, result.id);
17    };
18  </script>
19</apex:page>

応答

名前 説明
id string 保存中のサブタブの ID。
objectId string 保存中のサブタブのオブジェクト ID (該当する場合)、それ以外の場合は null。