Lotus Notes/Domino (R) をこよなく愛して。。。。 -3ページ目

iNotesで伝言メモの送信者を連絡先に追加する際、既に登録済の場合にError(Edgeのみ)

iNotesで伝言メモ(Phone Message)の送信者を連絡先に追加する際、既に登録済の場合にErrorして、登録済の連絡先Entryとマージするなどの選択ができないという障害があります。

 

この障害はMailとDBを混在させて利用しているような環境でのみ発生します。

iNotes MailはEdge Native Modeのみをサポートしていますが、DBは従来からのCodeでIE Modeのみで稼働するという場合に、ADのGroup PolicyのSitelistでServer全体はIE Mode、mailフォルダ配下のみEdge Native Modeに設定した場合に発生します。

 

iNotesはLite UIと呼ばれるCodeに移行してきましたが、伝言メモ(Phone Message)は旧来のClassic UIで稼働しており、登録済の連絡先Entryとマージするなどの選択を行うDialogがiNotes/Forms9.nsf内の設計要素(/iNotes/Forms9.nsf/iNotes/Proxy/?OpenDocument&Form=s_DialogWButtons)を参照して表示されるためです(以下のImageでもURLがiNotes/Forms9.nsfになっていることが確認できます)。

尚、Lite UIの場合は、Dialogは/mail/からの相対パスとして起動されます。

 

 

回避策は、SitelistのEdge Mode設定のFolderとして、<Server URL>/iNotes/*を追加することで回避できます。

 

製品としても、URLを/mail/の相対パスで起動されたようにする対策を行うとのことですので、今後のFPにて対応される予定です。

 

 

 

iNotes宛先選択の表示順選択肢のCustomize (続々)

iNotes宛先選択の表示順選択肢のCustomize (続)」の記事で、Address Pickerの表示順のView選択のCustomizeを行いましたが、DJX Userは問題が無いのですが、DJXを使っていないUserで表示上の問題が発生することが分かりました。

 

前回見たように、DJXのAddress Pickerの表示順のViewへのListの追加は単にJavaScriptでPushしてNamePick.BTM配列に要素を加えているだけのように見えます。
Forms9_x.nsfのx_NamePickerViewListも内容を見る限り、単にNamePick.BTMを定義しているだけです。
 
NamePick.Rs = <dwa:string id="D_NAMEPICK_WINDOW_WIDTH" quotes="none"/>;
NamePick.Br = <dwa:string id="D_NAMEPICK_WINDOW_HEIGHT" quotes="none"/>;
NamePick.nViewListWidth = 300;
NamePick.BTM = [(中略)];

 

Forms9.nsf内の標準のView Pick Listを定義している部分を探してみると、s_NamePickerViewListがあり、これが制御しているようです。

 

<NotesDictionary><NotesVar name="s_LotusLiveSaaSArg" initialvalue={@If(@DbCommand("Haiku";"s_GetEnvironmentVar";"SAAS_VirtualizedDirectory")="1";"&lln";"")}><NotesVar name="s_PortfolioThemeArg" initialvalue={@If(s_LotusLiveSaaSArg="&lln" | "0"!=@DbCommand("Haiku";"s_GetEnvironmentVar";"PortfolioTheme");"&pt";"")}></NotesDictionary> function NamePick(){} <InsertNotesSubForm optional="yes" name=x_NamePickerViewList> function NamePickExt(){} <InsertNotesSubForm optional="yes" name=x_NamePickerViewListExt> function GuO(){return haiku.bShowExtraInfoOnNamePicker ? NamePickExt : NamePick;} if (!NamePick.Rs){<InsertNotesSubForm name=@{@If("&lln"=s_LotusLiveSaaSArg;"LL_NamePickerViewList";"s_CoreNamePickerViewList")}>} if (!NamePickExt.Rs){<InsertNotesSubForm name=@{@If("&lln"=s_LotusLiveSaaSArg;"LL_NamePickerViewListExt";"s_CoreNamePickerViewListExt")}>}

 

上記のCodeからすると、Forms9_x.nsfが定義されている場合はx_NamePickerViewListを読み込み、そうでない場合は、s_CoreNamePickerViewListを読み込むようです。

 

再度、DJXのCodeを見てみると、単にView定義だけでなく、Functionも含めてNamePick.BTM配列にPushしていますので、この部分も含めてx_NamePickerViewListに記載することで動作してくれるのではないかと思われるのです。

 

 

NamePick.BTM.push({sViewTitle : <dwa:string id="L_DJX_DIRECTORY_TITLE"/>, DcS : '($DJXPeopleiNotesHier)', sViewInfo : '$60;MAMailAddress;NPName;Type;AltFullName;$64;JobTitle', nViewType : 1, aDefaultColumnWidths : [10], aDBPaths : ['*'], 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;}} )

 

x_NamePickerViewListの記載形式にすると、以下のようになります。

 

    {
        sViewTitle : <dwa:string id="L_DJX_DIRECTORY_TITLE"/>,
        DcS : '($DJXPeopleiNotesHier)',
        sViewInfo : '$60;MAMailAddress;NPName;Type;AltFullName;$64;JobTitle',
        nViewType : 1,
        aDefaultColumnWidths : [10],
        aDBPaths : ['*'],
        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;}
    }

 

 
では、これをx_NamePickerViewListに記載してServerを再起動してみます。
 
以下のように表示され、問題なくDJX組織階層表示ができるようです。
 
 
しかし、この場合も、DJX Mail Templateで作成されていないUserのMail DBではDJX特有のFunctionが無い為だと思いますが、組織Codeと組織名の分離が行われず、繋がった状態の表示となってしまいます。
 
 
面倒なのでこれ以上の調査はしないことにしますが、定義されているFunction内でDJXに関係する変数のCheckを行っていると思われます。
 
まあ、この方法でDJXでないMail DBで利用した際にErrorにはならないというメリットはあるかも知れませんが、DJX環境でお使いの場合には全てのMail DBをDJX設計に置き換えておけば良いだけの話で大したメリットにもならないかも知れません。
というのは、DJXのView選択肢を消すには、DJXのCodeを完全に殺し、且つ、x_NamePickerViewListに全てを移植する必要があるためです。
個人的には、s_NamePickerDJXViewListをCustomizeする方が楽かな?と思いますが、わざわざDJX組織階層をDefaultの先頭にしなくても良いかな?とも思います(最初だけで、2回目以降は前回使った物を覚えているので)。
 
Forms9.nsfへのDJX実装がもう少し賢く出来ていたらと思いますが、V9状態で凍結されたため、今となってはどうしようもないですね。
 
尚、Forms9.nsfのCustomizeはメーカーがサポートするものではありませんので、ご自身のリスクでお願いします。
 
 

iNotesで休日のImportを行った際にJavaScript Errorが発生する環境がある

iNotesをEdge(Chrome)で利用した際、V11.0.1FP5のiNotesのCalendarの休日のImport画面でJavaScript Errorで休日が正常にImportされないという障害があります。

 

この障害はEdge(Chrome)で発生が確認できていますが、発生する環境と発生しない環境があり、検証環境では再現が出来ていない障害です。IEでは問題が発生しないことは確認できています。

固定的に再現が出来ないため、V12.0.1FP1で発生するかどうかは確認できていません。

 

このエラーは、休日ImportのDialogで日本を選択してインポート中に発生し、ErrorがDialog内に表示されます。

休日は中途半端にImportされ、繰り返し休日が同一日に複数生成されるという状態になります。

 

回避策は、現象が発生しないBrowserを使ってImportする以外ありません。

 

この障害が発生していたお客様でHotfixで解決することが確認できていますので、次のFPで解決されるのではないかと思います。