ClassName 関数に構造体配列を指定するとクラッシュする

バグ情報

構造体配列を保持する Any 型の変数を ClassName 関数で使用すると PowerBuilder IDE やアプリケーションがクラッシュする事象が報告されています。

Bug ID 5073
Product PowerBuilder EN/JP
ステータス Appeon にて検証中
発生バージョン EN 12.6以前 2017 2017 R2 2017 R3 2019 2019 R2
JP 12.6以前 2017 R2 2017 R3

:発生バージョン    :解決済み、未発生    :未確認

詳細

可変長配列の構造体配列を保持する Any 型の変数を ClassName 関数で使用すると PowerBuilder IDE や作成したアプリケーションがクラッシュします。

例えば String 型のみを持つ簡単な構造体を作成し、スクリプト内で変数を構造体の配列として宣言します。その上でこの変数を “Any データ型” 変数に割り当てた状態で、ClassName (Any データ型) 関数を呼び出すと PowerBuilder IDE がクラッシュします。

str_sample lstr_array[]
Any la_array
String ls_classname

la_array = lstr_array[]
ls_classname = ClassName(la_array)

 

回避策

  • 可変長配列を設定する
    • Any 型に宣言する変数も可変長配列を設定してください。今回の例では Any la_array を Any la_array[] として宣言します。
バグ情報 一覧を見る
PowerBuilder マイグレーション
PowerBuilder学習、動画で始めちゃう?