一括登録

  • 目的・用途

本機能は、著者DBの情報を一括登録する機能である。

  • 利用方法

管理者は本画面でインポート用のtsvファイルを取り込むことで、tsvファイル内の著者情報を一括で著者DBに登録することができる。

  • 利用可能なロール

ロール システム
管理者
リポジトリ
管理者
コミュニティ
管理者
登録ユーザー 一般ユーザー ゲスト
(未ログイン)
利用可否
  • 機能内容

(1) 一括登録画面の画面構成

  • 【Admin > 著者DB管理(Author Management) > 一括登録(Import)】 を選択すると表示される

  • 画面構成は以下の通り。3つのタブに分かれており、動作を進めることでタブが切り替わる。

# タブ名 機能概要
1 選択(Select) 著者DBのインポート用ファイル(tsv)を選択する
2 インポート(Import) インポートファイル内の著者情報の確認・登録をする
3 結果(Result) インポート結果を表示する

 【補足】
  ・タブの遷移の順番は「選択(Select)」→「インポート(Import)」→「結果(Result)」となる

「選択(Select)」タブ

  • 本タブは、ユーザが著者DBのインポート用ファイルを選択することができる。画面構成は以下の通り
# ボタン 概要
1 ファイル選択(Select File) ボタンを押下すると、ファイルのアップロードウィンドウを表示する。
ユーザは任意の著者DBのインポート用ファイルを選択する。
なお、選択できる形式は「tsv」ファイルのみとする。
2 次へ(Next) ボタンを押下すると、選択したファイルの形式(フォーマット)をチェックし、問題無ければ「インポート(Import)」タブへ自動遷移する。
エラーがある場合は、「選択(Select)」タブ上部に赤枠でエラーメッセージを表示し、「インポート(Import)」タブへ遷移はしない。
本ボタンの初期状態は非活性とする。
ユーザがファイルを選択後、活性化する。
  • ファイル未選択の場合は[ファイル選択(Select File)]ボタン下に「選択したファイル名(Selected file name)」というラベルをグレーで表示する。
    ファイル選択後、選択されたファイルのファイル名を表示する

  •  

「インポート(Import)」タブ

  • 本タブは、読み込んだ著者DBのインポート用ファイルの内容をチェックし、登録して良いかの確認を促すものである。画面構成は以下の通り
# ボタン 概要
1 インポート(Import) ボタンを押下すると、読み込んだ著者DBのインポート用ファイルの内容を登録する。ボタン押下後は、「インポート(Import)」タブへ自動遷移する。
読み込んだ著者DBのインポート用ファイルの内容にエラーがある場合は、本ボタンは非活性となる。
2 ダウンロード(Download) ボタンを押下すると、画面に表示されている著者のリストをTSV形式でダウンロードできる。
・文字コードはBOM無しUTF-8、改行コードはCR+LFとする。
BOM付きのファイルのダウンロードを行うと、先頭についているBOMを文字列として取り込むため、正しく情報のダウンロードが行われない場合がある。
・ファイル名は「Creator_Check_yyyymmdd.tsv」とする。
・画面上トリミングされている情報があっても、ファイルにはすべて出力される
  • 画面に読み込んだ著者DBのインポート用ファイルの「サマリー(Summary)」を以下のように表示する
# 項目名 概要
1 総計(Total) 読み込んだファイルの著者の数
2 New Creator 読み込んだファイルの内、新規登録となる著者の数
3 Update Creator 読み込んだファイルの内、更新の著者の数
4 Delete Creator 読み込んだファイルの内、削除となる著者の数
5 Result Error 内容のチェックでエラーとなった著者の数
  • 画面に表示される著者の詳細情報は以下の通り
# 項目名 概要
1 No. 読み込んだファイルの著者の通し番号を表示する。
2 WEKOID 読み込んだ著者のWEKO著者IDを表示する。
3 Full_Name 読み込んだ著者の姓と名を表示する。
姓と名の間はカンマ+スペース「姓, 名」で表示する。
4 Mail Address 読み込んだ著者のメールアドレスを表示する。
5 チェック結果(Check Result)

読み込んだファイルの各著者について、インポートが可能かバリデーションチェックを実施する。
・エラーが無く、新規の著者の場合:「登録(Register)」と表示する
・エラーが無く、更新の著者の場合:「更新(Update)」と表示する
・削除する著者の場合:「削除(Delete)」と表示する
・バリデーションエラーがある場合:「エラー: XXXXX (ERROR: XXXXX)」とエラー内容を表示する

・登録は可能であるが、何らかの問題があるときは「警告(Warning)」と表示する。

  • 結果タブへ遷移する際は、[インポート(Import)]ボタンを押下することで自動的に遷移し、それ以外の方法で遷移することはできない。 

  • [インポート(Import)]ボタンは一度押下すると、ファイルを変更するまでは非活性となる。

「結果(Result)」タブ

  • 本タブは、インポートファイルで登録・更新・削除した著者の登録結果を表示する。画面構成は以下の通り 
# ボタン 概要
1 ダウンロード(Download) ボタンを押下すると、画面に表示されている著者のリストをTSV形式でダウンロードできる。
・文字コードはBOM無しUTF-8、改行コードはCR+LFとする
・ファイル名は「Creator_List_Download_yyyymmdd.tsv」とする
  • 画面に表示される著者のインポート結果は以下の通り
# 項目名 概要
1 No. 読み込んだファイルの著者の通し番号を表示する。
2 開始日(Start Date) 1著者に対して登録処理を開始した日時を表示する。
フォーマット:YYYY-MM-DD hh:mm:ss
3 終了日(End Date) 1著者に対して登録処理が完了した日時を表示する。
フォーマット:YYYY-MM-DD hh:mm:ss
4 WEKOID 読み込んだ著者のWEKO著者IDを表示する。
5 Full_name 読み込んだ著者の姓と名を表示する。
姓と名の間はカンマ+スペース「姓, 名」で表示する。
6 ステータス(Status) 登録した結果を表示する。
・「Register Success」:新規登録が完了した場合に表示
・「Update Success」:変更・更新登録が完了した場合に表示
・「Delete Success」:削除が完了した場合に表示
・「ERROR: XXXXX」:エラーが発生した場合に表示
  • 登録処理は、バックグラウンドで実行し、1著者毎にコミットしながら処理を進める

  • 登録情報は、著者のテーブルとESに登録する

  • 本タブを開いた状態で画面をリロードすることで、登録状況が更新されるものとする

  • 「選択(Select)」タブ,「インポート(Import)」タブへの遷移は可能とする。ただし、登録処理実行中は、各ボタンは非活性とする

(2) 入力ファイル

  • 入力ファイルはtsv形式で出力される

  • tsvファイルの構成は以下の通り

ヘッダ行

ラベル(英語)

ラベル(日本語)

データ行(著者1)

データ行(著者2)

  • 文字コードはUTF-8(BOM無し),改行コードはCR+LFとする

  • 1行目はヘッダ行とし、システム管理するものである。先頭に"#"が付いている

  • 2行目と3行目はラベルを表示し、TSV入力の補助をする。先頭に"#"が付いている

  • 4行目以降に著者の情報を入力する。1行1著者となる

  • 各ヘッダの情報は以下の通り
# ヘッダ項目 ラベル(日本語) ラベル(英語) 概要
1 pk_id WEKO ID WEKO ID WEKO3の著者ID(author_link)を入力する
2 authorNameInfo[0...n].familyName Family Name 著者の姓を入力する
3 authorNameInfo[0...n].firstName Given name 著者の名を入力する
4 authorNameInfo[0...n].language 言語 Language 著者の言語を入力する
5 authorNameInfo[0...n].nameFormat フォーマット name Format 著者の姓名のフォーマットを入力する
※現状(SP67時点)は「familyNmAndNm」固定
6 authorNameInfo[0...n].nameShowFlg 姓名・言語 表示/非表示 Name Display 著者の姓名と言語の表示/非表示を入力する
表示する: "Y"
表示しない: "N"
7 authorNameInfo[0...n].idType 外部著者ID 識別子 Identifier Scheme 外部著者IDの識別子を入力する
8 authorNameInfo[0...n].authorId 外部著者ID URI Identifier URI 外部著者IDの値を入力する
9 authorNameInfo[0...n].authorIdShowFlg 外部著者ID 表示/非表示 Identifier Display 外部著者IDの表示/非表示を入力する
表示する: "Y"
表示しない: "N"
10 emailInfo[0...n].email メールアドレス Mail Address 著者のメールアドレスを入力する
11 is_deleted 削除フラグ Delete Flag 著者を削除する場合に "D" と入力する

 【補足】
  ・繰り返し項目とする場合はヘッダ行の各項目名の後ろに [1], [2], ..., [N] と入力する。
   ※1つ目の項目名には [0] が記載されている。
  ・WEKO ID, Delete Flagは繰り返し記載することはできない。
  ・姓名のフォーマットの値が空欄の場合は「familyNmAndNm」の値を固定でシステムが登録する。

  ・コンテンツのファイルサイズが空欄の場合はシステムが登録する。

(3) エラーチェック

  • 本画面でチェックしているエラー内容は以下の通り
# チェックするタブ チェック内容 処理 エラーメッセージ(日) エラーメッセージ(英) 備考
1 選択(Select) tsvファイルの形式のチェック
#1: 選択したファイルがtsvファイルでは無い、またはtsvファイルの文字コードがUTF-8では無い
#3: tsvファイルの形式のエラー(タブ無し, ヘッダ行無し)
ERROR TSVファイルを読み込めませんでした。ファイル形式がTSVであること、またそのファイルがUTF-8でエンコードされているかを確認してください。 The TSV file could not be read. Make sure the file format is TSV and that the file is UTF-8 encoded.
2 選択(Select) ヘッダ行だけの空レコードになっている ERROR インポートのデータがありません。 There is no data to import.
3 選択(Select) ヘッダの間違いからメタデータキーが重複している ERROR 以下のメタデータキーが重複しています。
{1}
The following metadata keys are duplicated.
{1}
{1}: メタデータキー名
4 選択(Select) tsvに指定された項目とDBの項目が一致していない ERROR 指定された項目とDBの項目が一致しません。
{1}
Specified item does not consistency with DB item.
{1}
{1}: 項目名
5 選択/インポート
(Select/Import)
Celeryが動いていない状態 ERROR Celeryは動いていません。 Celery is not running.
6 選択/インポート
(Select/Import)
自分の端末にインポートを実行しているうちに、インポートを実行する ERROR インポートを実行中です。 Import is in progress.
7 選択/インポート
(Select/Import)
他の端末でインポートを実行している ERROR 他の端末でインポートを実行中です。 Import is in progress on another device.
8 インポート(Import) 他の著者情報を入力されたが、idTypeとauthorIdのいずれかを入力されていない状態 ERROR {}は必須項目です。 {} is required item.
9 インポート(Import) #4 著者が一意に定まらない(存在しないWEKO ID (author_link)
#5 削除対象の著者がDBに存在しない
ERROR 指定されたWEKO IDが存在していません。 Specified WEKO ID does not exist.
10 インポート(Import) #6 言語の指定でDBに存在しない言語を入力する
#8 ヘッダ項目#5の姓名・言語 表示/非表示で"Y","N"以外を入力する
#9 ヘッダ項目#8の外部著者識別子 表示/非表示で"Y","N"以外を入力する
ERROR {1}は{2}のいずれかを設定してください。 {1} should be set by one of {2}. {1}: language, nameShowFlg, authorIdShowFlg
{2}: 言語の一覧、"Y","N"
11 インポート(Import) #10 ヘッダ項目#10の削除フラグで"D"以外を入力する
#13 姓名のフォーマットの値が「familyNmAndNm」以外の値
ERROR {1}は{2}を設定してください。 {1} should be set by one of {2}. {1}: is_deleted, nameFormat
{2}: "D"、"familyNmAndNm"
12 インポート(Import) ID PrefixでDBに存在しない識別子を入力する ERROR 指定された外部著者ID 識別子'{1}'が存在していません。 Specified Identifier Scheme '{1}' does not exist. {1}:外部著者ID 識別子
13 インポート(Import) TSVファイルの中に重複するデータがある ERROR TSVファイルの中に重複するデータがあります。 There is duplicated data in the TSV file. 各レコードがマルチタスクで実行されているので、後勝ちで2番目のデータを上書きするのが難しい(重複する場合にどのレコードで更新されるか定まらない)。WARNING→ERRORに変更し、2つ目以降は更新されないようにする
14 インポート(Import) 外部著者識別子がDBに存在している WARNING 外部著者識別子がDBに存在しています。
{1}
External author identifier exists in DB.
{1}
{1}:外部著者識別子
15 選択/インポート/結果
(Select/Import/Result)
サーバ内部エラー(ネットワークの問題、予期しない例外など)が発生した ERROR サーバ内部エラー Internal server error
16 結果(Result) 登録成功 INFO 登録成功 Register Success
17 結果(Result) 更新成功 INFO 更新成功 Update Success
18 結果(Result) 削除成功 INFO 削除成功 Delete Success
19 結果(Result) エラーが発生したため、インポートに失敗した ERROR インポートに失敗しました。 Failed to import.
20 インポート(Import) 削除済みの著者について、tsvに該当の著者情報を指定して更新した WARNING 指定された著者は削除済です。tsvの内容で著者情報を更新しますが、著者は削除されたままです。 The specified author has been deleted. Update author information with tsv content, but author remains deleted as it is.
21 インポート/結果
(Import/Result)
アイテムに紐づいている著者を削除した ERROR アイテムがリンクしているため、指定された著者は削除できません。 The author is linked to items and cannot be deleted. 英語のメッセージが既存
日本語のメッセージを新規追加
22 インポート(Import) 存在しないインデックスにインポートしようとした ERROR 指定された{}はシステムに存在しません。 The specified {} does not exist in system.
22 インポート(Import) ERROR ロールの権限が足りずこのインデックスにアイテム登録ができません。 Your role cannot register items in this index.
  • 処理の「エラー」は登録不可、「ワーニング」は登録可能とする。

(4) その他

  • バックグラウンドでインポート処理を実行する。

  • 著者情報は論理削除とする。

  • 著者DBのインポート機能により、著者DBを更新/削除した際は、紐づくアイテムの著者情報までは更新を行わない。

  • 関連モジュール

  • weko-authors

  • 処理概要

  • ファイル選択を押下し、任意のtsvファイルを選択したのちに[次へ(Next)]ボタンを押下することでweko_authors.admin.ImportView.check_import_fileが呼び出されファイルの内容のバリデーションチェックが行われる。問題がなければファイルの内容をjson形式で返し、インポート画面へと自動で遷移する。

  • インポート画面で、[インポート(import)]ボタンを押下することで、weko_authors.task.import_authorが呼び出され、その中でweko_authors.util.import_author_to_systemが呼ばれ、db内のauthorsテーブルの情報が更新される。問題なく更新されるとweko_authors.admin.check_import_statusが呼び出され結果画面に表示される情報を取得し、自動で結果画面に遷移する。

  • 更新履歴

日付 GitHubコミットID 更新内容

2023/08/31

353ba1deb094af5056a58bb40f07596b8e95a562 初版作成

2023/11/11

V0.9.27

results matching ""

    No results matching ""