1 | 2 | 3 | 4 | 5 |最初 次ページ >>
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)
最近の画像つき記事
 もっと見る >>
December 19, 2016

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

テーマ: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-

 

 

 

前回は、Address Picker Dialogの選択Viewの表示をCustomizeしてみました。

今回は、もう少しAddress Picker DialogのDJX ViewのCustomizeを綺麗に出来ないかを調べてみます。

 

まず、前回のDJXのAddress Pickerに表示しているViewを参照してみます。

 

Address Pickerで参照するViewの定義が以下になっていますので、このViewを調べれば良い訳です。

 

DcS : '($DJXPeopleiNotesHier)'

 

 

DcS : '($DJXPeopleiNotesTitle)'

 

View名から判断すると、このViewはiNotes専用になっているため、これを変更してもNotes Client側には影響が出ないだろうと思われます。

 

 

実際に、組織別表示をしているViewを見ると以下のようになっていて、このViewの1列目が表示されているために前回の組織IDが表示されてしまうという現象が現れるのです。

 

 


iNotes_Customize_33

 

 

さて、もう一度Forms9.nsfのDJX用のCodeを見てみると、最後に以下のCodeが書かれています。

 

 

fnDisplayName : function (sTmp, Yc, CXb, Cwx){
if(!Cwx.sViewInfo)
return sTmp;
var GoU=Cwx.sViewInfo.split(';')[5];
if(Yc && Yc.getAttribute('name') == GoU && !CXb.jN())
{
var nPos=sTmp.indexOf('|');
if(nPos != -1)
sTmp=sTmp.substring(sTmp.indexOf('|')+1);
}
return sTmp;
}}

 

 

このCodeで"|"の右側のみを抽出して表示するようになっているのですが、x_NamePickerViewListにこのCodeを付けても、以下のErrorとなり、Forms9_x.nsfの中では動かないCodeになっています。

 

2015/02/15 12:13:06PM 問題が発生しました。この問題が原因で、現在の操作が失敗した可能性があります。
2015/02/15 12:13:06PM ReferenceError: DTh is not defined
2015/02/15 12:13:06PM http://domsvr.lotus.com/mail/siwama.nsf/iNotes/Proxy/?OpenDocument&Form=l_CommonNamePicker&sk=1&pt: 23


DWA 7の頃はどんなCodeだったかというと、9年前の私の記事 を参照すると分かりますが、Forms9.nsfとForms9_x.nsfが分離される前は同様のCodeで動いていたことが確認できます。

 

 

今回表示しようとしている順序であれば、x_NamePickerViewListから不要なViewを削除してしまい、DJX用のCodeを復活させ、表示する文字の定数を変更してやれば実現可能なことは分かっていますが、x_NamePickerViewListで制御できるのが理想的なのです。

 

 

 

 

今回のように、Lite UIで利用が出来なくなっているiNotesの機能はこれだけではなく、他にもあるのです。

 

 

 

 

そんなことはさておき、目的は自由に参照Viewの表示順序を変えることです。

 

 

 

 

もう一度、DJXのCodeを見てみましょう。

 

 

 

DJXのCodeでは、最初にDJX Mail Templateであるかどうかを判断して、NamePick.BTMというArrayに対して、DJX用のPicker ListをPush(Arrayに追加)していることが分かります。

 

 

if(haiku.bEnableDJX){NamePick.BTM.push

 

 

これでは、標準のView ListとDJXのView ListをMergeすることは出来ない訳です。

 

 

このNamePick.BTMという配列は、"s_CoreNamePickerViewList"というSubformに定義されていて、これが標準のName PickerのViewを決定しています。

 

 

このCodeを改造して、DJXの場合と標準の場合で使い分けできるようにしてくれていれば、Forms9_x.nsfで制御できるのかも知れません。

 


ちょっと、"s_CoreNamePickerViewList"を変更して試してみましたが、正常には動かないようで、様々な設計要素が絡んでいて、通常のCustomizeの範囲では済みそうにありませんでした。

 

ということで、これ以上の深追いは今回はしないことにします。

 

 

今回は、DJXのAddress Pickerを綺麗にすることを考えましたが、うまく処理できませんでした。

NamePickerはこれくらいにして、次回は、別のCustomizeを行ってみます。

 

<続く>

 

 

 

 

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

挙動不信のiNotes 9

テーマ:iNotes (DWA)
最近、iNotes 9.0.1を使っているのですが、かなり挙動不信と思われる現象があります。

Mail DBの容量が制限値に達してきたために、「送信済み」Mailを編集して添付ファイルを削除して「保存」(「ドラフトとして保存」ではありません)すると、Draftに保存されてしまいます。

これはIBMで問題報告されているらしいですが、SRでの回答によると修正の予定もまだないそうです。

他にも、「送信済み」Mailを開いて、「全員に履歴付き返信」したりすると、常識的にはTo/CC/BCCはそのままでセットされると思いますが、CCに複数人がセットされていると、ToにCCの先頭の人がSetされ、元のToだった人がCCになってしまうという現象が見られます。
何と、この現象はiNotes 9.0の頃から発生しているにも関わらず、未だに修正されていないようです(※これはFP5でやっと修正されたとのことです)。

これではMailとしてまともに使えないと思うのですが、iNotesはIBMさんの方針で、Hotfixは基本的に出さないということから、Minor Release/FPでFixされるのを待たないといけないという状況です。
非常に重要な問題だと思われるのですが、Mail Systemを提供するMakerの対応とは思われません。

Mail Systemとしてまともでは無い動きになっているのに、このような対応で良いのか?と思うのは私だけなのでしょうか?


iNotesのBrowser Supportの件もそうですが、IBMさんがUserのことを考えて真摯に対応していない現状を思うと非常に悲しくなります。

※IBMさんは、もうNotesとかiNotesは興味はなくて、Bluemixだけで良いのでしょうかね?
 
いいね!した人  |  コメント(0)  |  リブログ(0)
1 | 2 | 3 | 4 | 5 |最初 次ページ >>

AD

Ameba人気のブログ

Amebaトピックス

      ランキング

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

      ブログをはじめる

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

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

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

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

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