DbExecute システム関数
DbExecute システム関数を使用すると、指定したデータベースに対してストアード・プロシージャーを実行できます。


DbExecute システム関数を指定するには、以下の手順を実行します。
ストアード・プロシージャーのパラメーターに、配列は使用できません。例えば、15 個の文字列型パラメーターを別々に渡すことはできますが、15 個のストリングの配列にして 1 つのパラメーターとして渡すことはできません。索引を指定して、配列の中の 1 つの要素を使用することはできます。例えば、配列の最初の要素を指定する構文は、fieldname[1] です。
ストアード・プロシージャーから NULL として返されるパラメーターの処理
- ストアード・プロシージャーによりストリング・パラメーターが NULL に設定されると、ワーク・オブジェクトのデータ・アイテムは、空のストリングを受け取ります。
- ストアード・プロシージャーにより指定された日付/時刻型、整数型、または浮動小数点型のパラメーターが NULL であった場合、例外が発生します。(これらのデータ型は NULL を表す形式を持たないためです)。さらに、それを説明するメッセージがログに記録されます。
- ブール型パラメーターが NULL に設定されると、例外が発行されます。さらに、それを説明するメッセージがログに記録されます。
Oracle | SQLServer | DB2 | |
---|---|---|---|
プロシージャー内のパラメーターの最大数 | 1024 | 1024 | 1024 |
文字列型パラメーターの最大文字数 | 4000 | 4000 | 4000 |
データベースのストアード・プロシージャーは例外をスローする可能性があるため、ストアード・プロシージャー内、またはワークフローの例外マップ内での例外処理を検討してください。
FileNet® P8 バージョン 3.5.2 以前からアップグレードした場合で、なおかつ Microsoft SQL Server を使用している場合は、削除または更新ステートメントで以前にはなかった例外が発生する可能性があります。WHERE 節を含む DELETE 文または UPDATE 文でレコードが何も選択されない場合、データベースは例外を返します。例えば、Name=Don であるすべてのレコードを削除する際、条件 Name=Don を満たすレコードが 1 件もない場合、ストアード・プロシージャーはデータベースからエラーを受け取ります。これらの例外をストアード・プロシージャーでキャッチしないと、ワーク・オブジェクトが例外を受け取り、例外マップまたは Malfunction queue キューに入ります。
ワークフローの実行中に、DbExecute システム関数で障害が発生した場合、そのエラーに関する情報はシステム・メッセージのログに記録されます。
ストアード・プロシージャーが制限時間内にメッセージを返さないと、タイムアウトが発生し、ワーク・オブジェクトは例外を受け取り、Conductor キューに入ります。デフォルトのタイムアウト値は 3600 秒 (1 時間) です。