December 26, 2016

iNotes 9をCustomizeしてみよう! -10-

テーマ:iNotes (DWA)

<話題の履歴>


iNotes 9をCustomizeしてみよう! -1-

iNotes 9をCustomizeしてみよう! -2-

iNotes 9をCustomizeしてみよう! -3-

iNotes 9をCustomizeしてみよう! -4-

iNotes 9をCustomizeしてみよう! -5-

iNotes 9をCustomizeしてみよう! -6-

iNotes 9をCustomizeしてみよう! -7-

iNotes 9をCustomizeしてみよう! -8-

iNotes 9をCustomizeしてみよう! -9-

 

 

 

前回は、Address Picker DialogのDJX選択Viewの表示をCustomizeしてみましたが、かなり困難であることが分かりました。

 

今回は、全く趣向を変えて、Mail送信時のAddress Checkを行ってみたいと思います。

 

皆さんもご存知だと思いますが、iNotesのCustomizeに関してはIBMのガイドが存在します。

 

ここに、宛先の数をチェックするためのSampleが紹介されていて、Forms85_x.nsfのCustom_JS Subformを変更すれば可能なように書かれています。

具体的には、以下のCodeを書くように紹介されています。

 

function Scene_PreSubmit( s_SceneName, o_Window, s_SubmitAction ){

<NotesComment>

// This function will be called just before a form except native Lite mode form

// (Memo in read/edit mode, Notice in read mode)

// is submitted, but after Domino Web Access has done its own validation.

// Return false to stop the submission of the FORM.

</NotesComment>

if (s_SceneName == "s_MailMemo" && (s_SubmitAction == "h_ShimmerSend" || s_SubmitAction == "h_ShimmerSendAndFile" ) ) {

 var oDoc = window.document;

 var aSendTo = oDoc.getElementById('dispSendTo').value.split(",");

 var aCopyTo = oDoc.getElementById('dispCopyTo').value.split(",");

 var aBlindCopy = oDoc.getElementById('dispBlindCopyTo').value.split(",");

 if (aSendTo.length + aCopyTo.length + aBlindCopy.length > 4) {

  if( !window.confirm("Total number of recipients is larger than 4." + "Are you sure you want to send?") ) {

   return false;

  }

  }

}

return s_SubmitAction;

}

 

但し、この日本IBMのTechnoteは少し古い情報で、iNotes 8.5.1以下の場合のCustomize方法となっています。

実際に、iNotes9のForms9_x.nsfのCustom_JSに紹介されているCodeを書いてみると分かると思いますが、このCodeは動作しません。

iNotes9からは、新規Mail作成時は、旧来のStandard UIではなく、新しいLite UIで動作しているからで、Custom_JSをCustomizeしても、何の影響もないのです。

 

では、どうやったら良いのか?と思われるかも知れませんが、こういう場合は、まずUSの最新情報を探すことです。

iNotes Customizeに関しては、以前Wikiで情報が公開され、質問も出来ましたが、現在では更新されておらず、最新の情報を得るには苦労させられます。

幸い、このCustomizeに関しては、USに情報がありました。

ここで紹介されているSampleはiNotes 8.5.2以降で採用されている、Memo FormのLite UIに対応したものです。

 

function Custom_Scene_PreSubmit_Lite( s_SceneName, bInEditMode ){

 if ( 'memo' == s_SceneName ) { 

 // Get the current backend document ID 

  var oPanelManager = AAA.Fkb(); 

  var sContentId = oPanelManager.EdI.get('T').oPrev.sId; 

  // Get the current UI document 

  var oMainDoc = AAA.EcK; 

  // Get the current UI form 

  var oForm = oMainDoc.getElementById( 'e-pageui-' + sContentId );  

  var aSendTo = oMainDoc.getElementById('e-' + sContentId + '-sendto').value.split(","); 

  var aCopyTo = oMainDoc.getElementById('e-' + sContentId + '-copyto').value.split(","); 

  var aBlindCopy = oMainDoc.getElementById('e-' + sContentId + '-blindcopyto').value.split(",");  

   if (aSendTo.length + aCopyTo.length + aBlindCopy.length > 4) { 

    if( !window.confirm("Total number of recipients is larger than 4." + "Are you sure you want to send?") ) {  

     return false; 

    }  

   } 

  }  

  return true;

}

 

勿論、iNotes 8.5.1までのSampleも掲載されていて、二つを比較してみると分かりますが、Lite UIになったiNotes 8.5.2以降では出来ることが制限されています。

 

iNotes 8.5.1 以前:function Custom_Scene_PreSubmit( s_SceneName, o_Window, s_SubmitAction )

iNotes 8.5.2 以降:function Custom_Scene_PreSubmit_Lite( s_SceneName, bInEditMode )

 

このFuction定義から分かるように、iNotes 8.5.2以降のLite UIでは旧来のStandard UIのs_SubmitActionに対応する引数がなくなっています。

これが意味することは、Buttonから発行されるActionが判定できないということです。

 

8.5.1以前のCustom_JSのCodeを見ると分かりますが、
 

if (s_SceneName == "s_MailMemo" && (s_SubmitAction == "h_ShimmerSend" ||s_SubmitAction == "h_ShimmerSendAndFile" ) )

 

という判断をしていて、これで、Mailの「Send」Button、「SendandFile」Buttonを押した場合のみ動作するようになっています。

 

方や、8.5.2以降のCustom_JS_LiteのCodeでは、

 

if ( 'memo' == s_SceneName )

 

という判断となっています。

 

実際の影響としては、8.5.1以前のCustomizeだとDraft保存などの場合はこのCodeが動作しませんが、8.5.2以降のLite UIのCustomizeだと、Draft保存の場合もCodeが動作してしまうということです。

 

今回は、記事が長くなりますので、Customizeするための情報の紹介とさせていただきます。

 

次回は、この情報に基づき、実際のCustomizeを行っていきます。

 

<続く>

いいね!した人  |  コメント(0)  |  リブログ(0)

いわまんさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

最近の画像つき記事
 もっと見る >>

コメント

[コメントをする]

コメント投稿

AD

Ameba人気のブログ

Amebaトピックス

      ランキング

      • 総合
      • 新登場
      • 急上昇
      • トレンド

      ブログをはじめる

      たくさんの芸能人・有名人が
      書いているAmebaブログを
      無料で簡単にはじめることができます。

      公式トップブロガーへ応募

      多くの方にご紹介したいブログを
      執筆する方を「公式トップブロガー」
      として認定しております。

      芸能人・有名人ブログを開設

      Amebaブログでは、芸能人・有名人ブログを
      ご希望される著名人の方/事務所様を
      随時募集しております。