intra-mart Accel Kaiden! プログラミングガイド 第12版 2020-04-01

4.3.4. サーバサイド

本項では、ガジェット(経費旅費)サーバサイドのプログラミング方法について解説します。

4.3.4.1. 申請書ガジェットActionクラスプログラミング

申請書ガジェットActionクラスのサーバサイドプログラミングについて解説します。

コラム

申請書ガジェットActionクラスは画面表示処理の際に呼ばれますが、申請、承認などワークフローアクション処理時には呼ばれません。

コラム

ガジェットバリエーション違いで異なる実装をすべきかどうかを検討し、「業務基底アクションクラス」「業務アクションクラス」の実装を行ってください。

4.3.4.2. 申請書ガジェットLogicクラスプログラミング

申請書ガジェットLogicクラスのサーバサイドプログラミングについて解説します。

コラム

ガジェットバリエーション違いで異なる実装をすべきかどうかを検討し、「業務基底ロジッククラス」「業務ロジッククラス」の実装を行ってください。

4.3.4.3. IM-Workflow案件番号採番機能の作成

intra-mart Accel Kaiden!では、IM-Workflowの案件番号を採番している処理を新規で作成し、申請書マスタメンテナンス機能で申請書に紐づけることができます。
実装方法を以下に解説していきます。

4.3.4.3.1. 案件番号採番処理

案件採番処理を作成します。
jp.co.slcs.kaiden2.extension_imw.foundation.util.imw.ImwNumberingインターフェースを実装し、String型の案件番号を返却してください。

以下のサンプルでは、IM-Workflowの標準で採番される案件番号の先頭”p”を付与して返却しています。
package jp.co.slcs.kaiden2.tutorial.foundation.util.imw;

import java.util.Map;
import jp.co.intra_mart.foundation.workflow.exception.WorkflowException;
import jp.co.intra_mart.foundation.workflow.util.WorkflowNumberingManager;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenRuntimeException;
import jp.co.slcs.kaiden2.extension_imw.foundation.model.dto.ActionProcessParameterDto;
import jp.co.slcs.kaiden2.extension_imw.foundation.util.imw.ImwNumbering;

/**
 * 案件番号採番拡張クラス サンプル.
 */
public class ImwNumberingExtensionSample implements ImwNumbering {
    
    /**
     * 案件番号を採番処理を行い、結果を返却.
     */
    @Override
    public String getNewMatterNumber(ActionProcessParameterDto _parameter, Map<String, Object> _userParameter) {
        // IM-Workflow標準で採番される案件番号にプリフィックスを付与する
        String matterNumber = null;
        String prefix = "p";
        try {
            matterNumber = prefix + WorkflowNumberingManager.getNumber();
        } catch (WorkflowException e) {
            throw KaidenRuntimeException.makeInstance(e);
        }
        return matterNumber;
    }
    
}

4.3.4.3.2. 案件番号採番処理の設定ファイル

案件番号採番処理設定ファイルに設定を追加します。
設定ファイルは「WEB-INF/classes/jp/co/slcs/kaiden2/extension_imw/ImwNumberingSettings.xml」です。

idタグにDIコンテナへの登録名、messageIdには申請書マスタメンテナンス画面の案件番号採番クラスドロップダウンに表示されるメッセージIDを指定してください。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<imwNumberingSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/imwNumberingSettings">
  <!-- 案件番号採番号クラス -->
  <wofkflowMatterNumberingClasses>
    <wofkflowMatterNumberingClass>
      <!-- 案件番号採番号クラス (DIコンテナへの登録名) -->
      <id>imwNumbering</id>
      <!-- 説明(extension_imw_message.xmlのエントリー-->
      <messageId>EIMW.defultNumberingClass</messageId>
    </wofkflowMatterNumberingClass>
    <wofkflowMatterNumberingClass>
      <!-- 拡張案件番号採番号クラス (DIコンテナへの登録名) -->
      <id>extensionNumberingImpl</id>
      <!-- 説明(extension_imw_message.xmlのエントリー-->
      <messageId>EIMW.extensionNumberingClass</messageId>
    </wofkflowMatterNumberingClass>
  </wofkflowMatterNumberingClasses>
</imwNumberingSettings>

コラム

ここではdiconファイルの編集に関する記述は省略しています。
「imwNumbering」と紐づけて、作成した案件番号採番処理のクラスをdiconに設定してください。

コラム

ここではメッセージファイルの編集に関する記述は省略しています。

4.3.4.4. 申請書ガジェットManagerクラスプログラミング

申請書ガジェットManagerクラスを作成する際には、
jp.co.slcs.kaiden2.extension_imw.foundation.manager.PluginGadgetManagerクラスを継承することを推奨します。
申請書ガジェットマネージャに必要な一通りの機能が揃っており、実装が容易です。

チュートリアルのプログラムを抜粋したものを以下に掲載します。(チュートリアルガジェットのマネージャはこちら
/**
 * チュートリアルガジェットテーブルマネージャクラスのinterface.
 */
public interface GadgetTutorialManager extends PluginGadgetManager<GadgetTutorialManagerDto> {

    // 中略・・・
    
}

コラム

マネージャの各メソッドの仕様については『intra-mart Accel Kaiden! JavaDoc』を参照してください。