2016-10-19 1 views

答えて

1

あなたは「DB」と言っていますが、「Alfrescoリポジトリに格納されたオブジェクトのプロパティ」を意味します。その場合は、ワークフローに埋め込まれたJavaScriptからプロパティ値をチェックできます。プロパティの名前が "foo:someProperty"の場合は、doc.properties ['foo:someProperty']を使用してプロパティを取得できます。ワークフローパッケージからオブジェクトを取得することもできます。ワークフロー内のすべてのドキュメントは、bpm_package.childrenでアクセス可能な配列になっています。 docsを参照して、AlfrescoはJavaScriptのAPIの詳細情報については

<activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener"> 
    <activiti:field name="script"> 
    <activiti:string> 
     for (var i = 0; i &lt; bpm_package.children.length; i++) 
     { 
     var doc = bpm_package.children[i]; 
     if (doc.properties['foo:someProperty'] === 'some value') { 
      doc.properties['foo:someProperty'] = 'some other value'; 
      doc.save(); 
     } 
     } 
    </activiti:string> 
    </activiti:field> 

コードは次のようになります。

リポジトリ内のオブジェクトではなく、実際にリレーショナルデータベースを意味していた場合は、Javaを使用してカスタムタスクリスナを実装し、そこからJDBCや他のAPIを使用してデータベースをクエリする必要がありますデータベース内のレコードを更新します。

これが必要な場合は、workflow tutorialをご覧ください。 ExternalReviewNotificationというクラスがあり、Javaでカスタムのタスクリスナーを実装する方法を示しています。データベースへのJDBC呼び出しを行う独自のタスク・リスナーを実装できます。

+0

はい、私は実際には私の質問はワークフローフォームですドロップダウンリストから値を選択するとドロップダウンリストを置いた、私は(1000,1001,1002)のような番号を生成する自動追加する必要があります前にDBからチェックを作成し、新しい自動生成番号を作成します – Paul

+0

さて、カスタムJavaタスク・リスナーの例を示すワークフロー・チュートリアルへのリンクを含むように答えを更新しました。 –

関連する問題