いいね!数

0

閲覧数
1152

つまらない質問で恐縮ですが、教えてください。

 

LotusScript の ArrayAppend 関数についてです。

---以下、ヘルプ抜粋---

構文
ArrayAppend( sourceArray1, source2 )

要素
sourceArray1
配列です。

source2
配列またはスカラー値です。

エラー処理
次の場合、ArrayAppend で型の不一致エラーが起こります。

sourceArray1 が配列ではない
配列に複数の次元が使用されている
---以上、ヘルプ抜粋---

 

とのことですが、

sourceArray1 に配列

source2 に null(nothing) を入れると、

クライアント自体が落ちてしまいます。

 

こちらの環境依存でしょうか。

恒常的に発生するバグでしょうか。

ちなみにこちらは 8.5.3 FP3 です。

 

サーバー情報: | クライアント情報: | 
カテゴリ:アプリ開発 - Notes アプリ | タグ:
  | 質問日時:2015/10/09 11:42:43

回答・コメント

いいね!数

0

動作環境 9.0.1 ですが、下記のソースでは、落ちませんでした。

 

Sub Initialize
    
    Dim sourceArray1() As String
    Dim source2 As variant
    Dim ans As variant
    
    ReDim sourceArray1(1 To 5)
    sourceArray1(1)="1"
    sourceArray1(2)="2"
    sourceArray1(3)="3"
    sourceArray1(4)="4"
    sourceArray1(5)="5"

    source2=Null
    
    ans = ArrayAppend( sourceArray1, source2)
    
    
End Sub

 

 

ans=["1","2","3","4","5",null]と返ってきました。

 

サンプルソースを添付して頂けないでしょうか?

 

どちらにしろ、Notesが落ちてしまうなら、事前にNothingのチェックを入れるなどの回避策が必要になるかと思います。

回答日時:2015/10/09 18:52:51

いいね!数

0

Rits西様

ご回答ありがとうございます。

添付頂いたソースでは落ちませんでした。

原因究明してみます。

参考までに落ちるソースです。

 

Sub Initialize
 Dim ans As Variant
 Dim strings(0) As String
 
 'とりあえず配列にしておく(これをやらないとArrayAppendでエラー発生)
 ans = strings
 
 'ここでこける
 ans = ArrayAppend(ans, null)
 
End Sub

回答日時:2015/10/13 10:08:48

いいね!数

0

こける要因は

・第一パラメータの配列要素が1つである

・第二パラメータの要素が null(nothing) である

ようです。

 

Sub Initialize
 Dim ans As Variant
 Dim strings(1 To 1) As String
 
 strings(1) = "asdf"
 
 'とりあえず配列にしておく(これをやらないとArrayAppendでエラー発生)
 ans = strings
 
 '1.文字追加、これはこけない。これをすれば、その次にnull(nothing)を追加してもこけない
 ' ans = ArrayAppend(ans, "aaa")
 
 '2.これはエラー発生。ヘルプ記載の通り
 ' ans = ArrayAppend("asdf", "222")

 '3.これはこける。1.を生かせば、こけない
 ' ans = ArrayAppend(ans, nothing)
 ' ans = ArrayAppend(ans, null)
 
 '4.これはこける
 ans = ArrayAppend(strings, null)

End Sub

回答日時:2015/10/13 12:04:23