intra-mart Accel Kaiden! プログラミングガイド 第20版 2023-12-22

4.1.3. サーバサイド

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

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

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

4.1.3.1.1. 案件番号採番処理

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

以下のサンプルでは、IM-Workflowの標準で採番される案件番号の先頭”p”を付与して返却しています。
package jp.co.slcs.kaiden.v2.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.kaiden.v2.base.foundation.exception.KaidenRuntimeException;
import jp.co.slcs.kaiden.v2.extension_imw.foundation.model.dto.ActionProcessParameterDto;
import jp.co.slcs.kaiden.v2.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.1.3.1.2. applicationContext.xmlの設定

applicationContext.xmlに設定を追加します。
本チュートリアルでは、「applicationContext-kaiden_tutorial.xml」を「src/main/resources/META-INF/spring」に作成します。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">

    <!-- DIコンポーネントの対象とする要素のトップレベルパッケージ -->
    <context:component-scan base-package="jp.co.slcs.kaiden.v2.tutorial" />

    <bean id="imwNumberingExtensionSample" class="jp.co.slcs.kaiden.v2.tutorial.foundation.util.imw.ImwNumberingExtensionSample" />

</beans>

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

案件番号採番処理設定ファイルに設定を追加します。
設定ファイルは「WEB-INF/classes/jp/co/slcs/kaiden/v2/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>
    <wofkflowMatterNumberingClass>
      <!-- フローid単位でのKaiden独自案件番号採番クラス (DIコンテナへの登録名) -->
      <id>kaidenNumberingByFlow</id>
      <!-- 説明(extension_imw_message.xmlのエントリー-->
      <messageId>EIMW.kaidenNumberingByFlowClass</messageId>
    </wofkflowMatterNumberingClass>
    <wofkflowMatterNumberingClass>
      <!-- チュートリアル案件番号採番クラス (DIコンテナへの登録名) -->
      <id>imwNumberingExtensionSample</id>
      <!-- 説明(tutorial_messages.xmlのエントリー-->
      <messageId>TTRL.imwNumberingTutorial</messageId>
    </wofkflowMatterNumberingClass>
  </wofkflowMatterNumberingClasses>
</imwNumberingSettings>

4.1.3.1.4. メッセージ定義ファイルの作成

メッセージ定義ファイルを作成します。配置場所は「/WEB-INF/classes/jp/co/slcs/kaiden2/」です。
以下をベースにして「tutorial_messages_ja.xml」「tutorial_messages_en.xml」「tutorial_messages_zh_CN.xml」の3ファイルを作成します。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>

  <!-- チュートリアル -->
  <entry key="TTRL.imwNumberingTutorial">チュートリアル(すべての申請書で通し番号)</entry>

</properties>