一括登録
目的・用途
本機能は、著者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) | 読み込んだファイルの各著者について、インポートが可能かバリデーションチェックを実施する。 ・登録は可能であるが、何らかの問題があるときは「警告(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 | 更新内容 |
---|---|---|
|
353ba1deb094af5056a58bb40f07596b8e95a562 | 初版作成 |
|
V0.9.27 |