intra-mart Accel Platform 移行仕様書 第3版 2023-10-31

4.4. カレンダー

移行の基本方針は以下の通りです。

  • 移行する
    • 名称
    • 休日
    • 非休日
  • 移行しない
    • 公休日
    • 「名称/休日/非休日」のうち、プラグインがセットされたもの

4.4.1. 制限事項の補足

  1. intra-mart Accel Platform には、プラグイン機能が提供されていないため、プラグインをセットしたカレンダーデータは移行しません。

  2. version 7.2 標準で設定されている「名称」の「月~土曜日」および「休日」の「日曜日」は、そのまま、名称や休日として移行されます。

    • intra-mart Accel Platform ではカレンダーごとに曜日設定が可能なため、情報が重複しないよう、必要に応じて再設定してください。
      • なお、移行モジュールでは、曜日のカラーと休日判定は、以下のように設定します。
        曜日 カラー 休日判定
        日曜 #ff0000 休日
        月~金曜 #000000  
        土曜 #0000ff  
  3. 国際化項目は version 7.2 に存在する言語のみ移行されます。

    • intra-mart Accel Platform は標準で日英中に対応しているので、必要に応じて追加設定してください。
  4. version 7.2 のテーブルはリネームして残します。

    • テーブルと名称
      • b_m_calendar_info_b → b_m_calendar_info_b_72
      • b_m_calendar_info_i → b_m_calendar_info_i_72
    • APIからこれらのテーブルにアクセスすることは出来ません。

    • 上記テーブルは、今後プラグイン情報の移行時に必要となる予定ですので、データ削除やテーブル削除は行わないでください。

  5. 日付情報テーブルの無効値が変更されます。

    • 以下の項目は、 version 7.2 では無効値として-1がセットされていましたが、 intra-mart Accel Platform ではNULLに変更されます。

      項目名 列名
      year
      month
      day
      week
      times
      曜日 day_week
      有効開始年 valid_start_year
      有効終了年 valid_end_year

4.4.2. テナント環境セットアップ処理内容

テナント管理機能のセットアップ設定ファイルを差し替え、以下の処理を行います。

4.4.2.1. テナントデータベースに対するDDL/DMLの発行

  1. 既存の2テーブルをリネーム

    version 7.2 テーブル名称 リネーム後テーブル名称
    b_m_calendar_info_b b_m_calendar_info_b_72
    b_m_calendar_info_i b_m_calendar_info_i_72
  2. intra-mart Accel Platform 標準テーブル作成

    標準のDDLを使用します。

  3. データ移行

    詳細はこの後の「データ移行仕様」を参照してください。

4.4.2.2. 拡張インポートの実行

  1. カラーコード変換

    カラーコードマッピング に従い、対応するカラーコードに変換します。

  2. NOT NULL制約追加

    b_m_day_info_b.color カラムにNOT NULL制約を追加を追加します。

4.4.3. データ移行仕様

4.4.3.1. カレンダー情報(b_m_calendar_info_b)

カレンダーIDごとに、1レコード登録します。

列名 設定内容
calendar_id b_m_calendar_info_b_72.calendar_id
sort_key 0
create_user_cd ‘system’
create_date 現在日時
record_user_cd ‘system’
record_date 現在日時

4.4.3.2. カレンダー国際化(b_m_calendar_info_i)

カレンダーID×ロケールごとに、1レコード登録します。

列名 設定内容
calendar_id b_m_calendar_info_i_72.calendar_id
locale_id b_m_calendar_info_i_72.locale_id
calendar_name b_m_calendar_info_i_72.calendar_id
create_user_cd ‘system’
create_date 現在日時
record_user_cd ‘system’
record_date 現在日時

4.4.3.3. カレンダー週情報(b_m_calendar_week_b)

カレンダーIDごとに、日~土曜の7レコード登録します。

列名 設定内容
calendar_id b_m_calendar_info_i_72.calendar_id
day_of_week 日曜:1~土曜:7
color 日曜:#ff0000、月~金曜:#000000、土曜:#0000ff
isholiday 日曜はtrue、それ以外はfalse
create_user_cd ‘system’
create_date 現在日時
record_user_cd ‘system’
record_date 現在日時

4.4.3.4. カレンダーマージ設定(b_m_calendar_merge_b)

カレンダーIDごとに、1レコード登録します。

列名 設定内容
calendar_id b_m_calendar_info_b_72.calendar_id
day_info_set_id b_m_calendar_info_b_72.calendar_id
sort_key 0
create_user_cd ‘system’
create_date 現在日時
record_user_cd ‘system’
record_date 現在日時

4.4.3.5. カレンダー日付情報セット(b_m_day_info_set_b)

カレンダーIDごとに、1レコード登録します。

列名 設定内容
day_info_set_id b_m_calendar_info_b_72.calendar_id
first_day_of_week 1(日曜)をセット
sort_key 0
create_user_cd ‘system’
create_date 現在日時
record_user_cd ‘system’
record_date 現在日時

4.4.3.6. カレンダー日付情報セット国際化(b_m_day_info_set_i)

カレンダーID×ロケールごとに、1レコード登録します。

列名 設定内容
day_info_set_id b_m_calendar_info_i_72.calendar_id
locale_id b_m_calendar_info_i_72.locale_id
day_info_set_name b_m_calendar_info_i_72.calendar_id
create_user_cd ‘system’
create_date 現在日時
record_user_cd ‘system’
record_date 現在日時

4.4.3.7. カレンダー日付情報(b_m_day_info_b)

b_m_calendar_info_b_72 をもとにして、以下の条件を全て満たすレコードを登録します。

  • データタイプが「名称」「非休日」「休日」のいずれかであること
  • プラグイン関数が設定されてないこと
列名 設定内容
day_info_set_id b_m_calendar_info_b_72.calendar_id
day_info_id b_m_calendar_info_b_72.data_id
data_type b_m_calendar_info_b_72.data_type
full_year b_m_calendar_info_b_72.year、ただしyearが-1のときはnull
month_of_year b_m_calendar_info_b_72.month -1、ただしmonth が-1のときはnull
day_of_month b_m_calendar_info_b_72.day、ただしdayが-1のときはnull
week_of_month b_m_calendar_info_b_72.week、ただしweekが-1のときはnull
day_of_week_in_month b_m_calendar_info_b_72.times、ただしtimesが-1のときはnull
day_of_week b_m_calendar_info_b_72.day_week + 1、ただしday_weekが-1のときはnull
valid_start_year b_m_calendar_info_b_72.valid_start_year、ただしvalid_start_yearが-1のときはnull
valid_end_year b_m_calendar_info_b_72.valid_end_year、ただしvalid_end_yearが-1のときはnull
color 色名に対して、 カラーコードマッピング に従い、対応するカラーコードに変換。NULLや空文字列、マッピングにない文字列等の場合、”#808080”に変換。それ以外はb_m_calendar_info_b_72.colorをセット。NOT NULL制約を追加。
sort_key v72のソート値に従って並べた順番
create_user_cd b_m_calendar_info_b_72.record_user_cd
create_date b_m_calendar_info_b_72.record_date
record_user_cd カラー変換しない場合、b_m_calendar_info_b_72.record_user_cd。カラー変換した場合、システム管理者ユーザコード。
record_date カラー変換しない場合、b_m_calendar_info_b_72.record_date。カラー変換した場合、現在日時。

コラム

month_of_year、day_of_week の値は、java.util.Calendar の仕様と合致させるため、下記の値に変更されました。

この仕様変更にあわせて、month_of_year を -1、day_of_week を +1 した値に変換して移行します。

項目 intra-mart WebPlatform / AppFramework intra-mart Accel Platform
month_of_year 1~12 0~11
day_of_week 0~6が日~土 1~7が日~土

コラム

intra-mart Accel Platform より設定できるようになった「ソートキー」は、 intra-mart WebPlatform / AppFramework の日付情報検索時のソート内容から設定します。
version 7.2 の日付情報検索時のソート内容は以下の通りです。
  1. 「年 月 日 曜日 回 週」の順に、設定があれば1を、なければ0とした数値を生成する

    • 「設定なし」は、”-1” が入っています
  2. 上記数値に、データタイプの1文字目のASCIIコードを加算する

    例)父の日…名称、(毎年)6月、日曜日、第3回目 の場合

    1. 数値化

      曜日 数値化結果
      -1 6 -1 0 3 -1 010110
    2. ASCIIコード加算

      データタイプ 1文字目のASCIIコード値
      config 99

      10110 + 99 = 10209

  3. 上記2で求めた数値で大小を比較する

    もし、同じ値だった場合は、データタイプの1文字目のASCIIコードで大小を比較する

コラム

「表示色(color)」に色名がセットされている場合、対応するカラーコードに変換します。

  • version 7.2 では表示色に対し、APIを使用して色名(例 “red”)をセットすることができましたが、 intra-mart Accel Platform ではカラーコードのみ設定可能となる仕様変更に対応します。
  • カラーコードマッピング に従い、色名をカラーコードに変換します。
  • なお、NULLや空文字列、マッピングにない文字列等の場合、”#808080”に変換します。

4.4.3.8. カレンダー日付情報国際化(b_m_day_info_i)

b_m_day_info_bに登録されたデータに対して、b_m_calendar_info_i_72 をもとにして登録します。

列名 設定内容
day_info_set_id b_m_calendar_info_i_72.calendar_id
day_info_id b_m_calendar_info_i_72.data_id
locale_id b_m_calendar_info_i_72.locale_id
day_info_name b_m_calendar_info_i_72.display_name
create_user_cd b_m_calendar_info_b_72.record_user_cd
create_date b_m_calendar_info_b_72.record_date
record_user_cd カラー変換しない場合、b_m_calendar_info_b_72.record_user_cd。カラー変換した場合、システム管理者ユーザコード。
record_date カラー変換しない場合、b_m_calendar_info_b_72.record_date。カラー変換した場合、現在日時。