Documentum Process Builderのデバッグメソッド

こんにちは

作業の種類(Documentum開発者)によって、Process Builderで作成したプロセスをデバッグする必要に直面しました。 これを行う簡単な方法を見つけました。 そして、この知識を、おそらくHabréにいるDocumentumの開発者と共有したいと思います。



はじめに



デバッグモードのプロセスビルダー(PB)のアクティビティによって呼び出されるローカルデバッグプロセスを検討します。 この理由は明らかです。デバッグとメソッドの最小効率のチェックのために、再起動時にメソッドをJava Method Server(JMS)に「アップロード」する必要はありません。 そして、あなたが彼と一緒に仕事をしているだけで、複数の人が同時に独自の方法を開発している場合はどうですか?



何が必要ですか?



Process Builderバージョン6.6以降(6.7で検証済み)。 リモートデバッグをサポートするIDE。

デバッグモードのデバッグラインPBの起動パラメーターを追加します-Xdebug -Xnoagent -Djava.compiler = NONE -Xrunjdwp:transport = dt_socket、address = 4444、server = y、suspend = n この後、起動行が長すぎてショートカットに収まらないため(ここではWindows 7について説明しています)、PBを実行するためのbatファイルを作成する必要があります。 次の行が含まれます。



cd "C:\ Program Files \ Documentum \ bpm \ classes"

「C:\ Program Files \ Documentum \ jreForPB \ bin \ javaw.exe」-Xdebug -Xnoagent -Djava.compiler = NONE -Xrunjdwp:transport = dt_socket、address = 4444、server = y、suspend = n -Xms128m -Xmx512m- Dfile.encoding = UTF-8 -Dawt.useSystemAAFontSettings = on -cp "。; Lib \ bpm.jar; .. \ .. \ dctm.jar; C:\ Documentum \ config" WorkflowEditor -locale en_US



PBデバッグモードで実行するすべてのメソッド(IDEでデバッグするものだけでなく!)そして、DQLクエリでセッションを使用するメソッドは、workitem.getSession()メソッドを介して受信するのではなく、コンテンツサーバーへの接続を介して完全に受信する必要があります。 これは、DfQueryオブジェクトがDfSessionオブジェクトにのみ存在するDQLクエリの実行時に特定のISessionクラスを使用するためです。 PBは、独自のIDfSessionManagerおよびIDfSession実装を使用してデバッグします。 クラスISessionが欠落しています。 その結果、workitem.getSession()を使用して取得したセッションオブジェクトを使用すると、DfQueryでクラスキャストエラー(ClassCastException)が発生します。

デバッグされたメソッドと依存クラス(もちろん、DFCを除く)のコードを含むjarファイルをディレクトリ<BPMディレクトリへのパス> bpm \ classes \ custom \にコピーします。 (例:C:\ Program Files \ Documentum \ bpm \ classes \ custom \)



使用するメソッドは、コンテンツサーバーにインストールする必要があります。 つまり Composerでメソッドクラスへの正しいパスを使用してメソッドタイプのアーティファクトを作成し、コンテンツサーバーにインストールする必要があります。



PBで、デバッグされたメソッドを実行する自動アクティビティを持つプロセスを作成します。



打ち上げ



デバッグするには、実際には、上記のパラメーターを使用してPBを実行する必要があります。 IDEのデバッグポートに参加します。 目的のメソッドにブレークポイントを配置します。 PBで、デバッグプロセスをデバッグモードで実行します。 (デバッグプロセスボタン)プロセスがPB画面の自動アクティビティに到達すると、デバッグされたメソッド(ブレークポイントがある)が開始され、IDEでデバッグプロセスが開始されます。 その後は、通常どおりコードをデバッグできます。



制限事項



PBのデバッグモードでのJavaメソッドとアクティビティの両方の動作は、BPMおよびJMSでのライブ実行中に発生する動作とは異なります。 これは、セッションの特定の実装だけで表現されるわけではありません。 また、子プロセスを開始するアクティビティを実行できないことにも気付きました。



All Articles