diff --git a/docs/spec/base/admin/ADMIN_10_2.md b/docs/spec/base/admin/ADMIN_10_2.md
index a7ca701f..68c9d4fe 100644
--- a/docs/spec/base/admin/ADMIN_10_2.md
+++ b/docs/spec/base/admin/ADMIN_10_2.md
@@ -154,6 +154,8 @@
- from-until:「Change List」ごとに対象日
- フォーマット:YYYY-MM-DDThh:mm:ssZ
+
+ - 設定値WEKO_SEARCH_FIX_ACCESSRIGHTSがTrueの場合、エンバーゴの期間が終了した日付がupdatedの日付より新しいレコードは、エンバーゴ期間終了日が対象日に該当する。
- 「Change List一覧」のサンプル
@@ -259,6 +261,8 @@
- from-until:「Change Dump」ごとに対象日
- フォーマット:YYYY-MM-DDThh:mm:ssZ
+
+ - 設定値WEKO_SEARCH_FIX_ACCESSRIGHTSがTrueの場合、エンバーゴの期間が終了した日付がupdatedの日付より新しいレコードは、エンバーゴ期間終了日が対象日に該当する。
- 「Change Dump一覧」のサンプル
diff --git a/docs/spec/base/admin/ADMIN_14_12.md b/docs/spec/base/admin/ADMIN_14_12.md
index fc3e9e90..faa05d89 100644
--- a/docs/spec/base/admin/ADMIN_14_12.md
+++ b/docs/spec/base/admin/ADMIN_14_12.md
@@ -429,6 +429,10 @@
- 入力できる内容やボタン押下時の動作は 新規作成 の記載内容を参照
+ - weko_search_ui/config.py: WEKO_SEARCH_FIX_ACCESSRIGHTSがTrueの場合
+ - 作成・編集を実行時に、修正表示されるAccess Rightsに合わせた集計クエリに切り替わる
+ - access Rightsの修正表示については[メタデータ表示](../user/USER_3_1.md#メタデータ表示)の「Access Rightsの表示について」参照
+
エラーメッセージ
- ファセット登録・編集時において、\[保存(Save)\]ボタン押下時にエラーチェックを行い、不適切なデータ登録をしないように制御を行う。
diff --git a/docs/spec/base/admin/ADMIN_2_4.md b/docs/spec/base/admin/ADMIN_2_4.md
index 8088bbb3..af130a0b 100644
--- a/docs/spec/base/admin/ADMIN_2_4.md
+++ b/docs/spec/base/admin/ADMIN_2_4.md
@@ -320,6 +320,7 @@
| .publish_status | .PUBLISH_STATUS | アイテムの公開/非公開を指定する。public/privateのいずれかを設定する。必須項目。 |
| .feedback_mail[0] | .FEEDBACK_MAIL[0] | フィードバックメールの送信先メールアドレスを指定する。複数指定可。 |
| .request_mail[0] | .REQUEST_MAIL[0] | リクエストメールの送信先メールアドレスを指定する。複数指定可。 |
+| .researchmap_linkage | .RESEAECHMAP_LINKAGE | Researchmapへの連携フラグ |
| .item_application.workflow | .ITEM_APPLICATION
.WORKFLOW | コンテンツファイルがない場合の利用申請のワークフローIDを指定する。 |
| .item_application.terms | .ITEM_APPLICATION.TERMS |コンテンツファイルがない場合の利用規約IDを指定する。この列のデータ行にterm_freeが入力された場合、利用規約を自由入力として.item_application.terms_descriptionが表示される。 |
| .item_application
.terms_description | .ITEM_APPLICATION
.TERMS_DESCRIPTION | コンテンツファイルがない場合の利用規約(自由入力)を指定する。 |
@@ -1946,6 +1947,15 @@ DOIを指定したアイテムについて、指定された項目が各DOI付
英語:「ERROR:The specified provinding user policy does not exist in the system」
日本語:「エラー:指定する利用規約はシステムに存在しません。」
+ - weko_search_ui/config.py: WEKO_SEARCH_FIX_ACCESSRIGHTSがTrueに設定されている場合
+ - accessRigthsの修正条件にインポートするメタデータ情報が該当する場合、修正後のAccess Rightsの値でアイテムが登録される
+ - Access Rights:embargoed accessの場合
+ 1. コンテンツファイルのアクセスにopen_restrictredが存在する場合、restricted accessに修正される
+ 2. 1を満たさずコンテンツファイルのアクセスがopen_date、日付が未来である場合embargoed accessに修正される
+ 3. 1,2を満たさずコンテンツファイルのアクセスがopen_loginが存在する場合、restricted accessに修正される
+ 4. すべてのコンテンツファイルが「open_access」または「アクセスがopen_date,日付が処理日以前」である場合open accessに修正される
+ 5. 1~4を満たさない場合、embargoed accessのままとなる
+
## 更新履歴
| 日付 | GitHubコミットID | 更新内容 |
diff --git a/docs/spec/base/api/API_02_OAIPMH.md b/docs/spec/base/api/API_02_OAIPMH.md
index b8af4300..43dd4f1f 100644
--- a/docs/spec/base/api/API_02_OAIPMH.md
+++ b/docs/spec/base/api/API_02_OAIPMH.md
@@ -65,6 +65,8 @@ https://[host]/oai?verb=GetRecord&metadataPrefix=jpcoar_2.0&identifier=https://d
```
+- WEKO_SEARCH_ACCESSRIGHTがTrueの場合、エンバーゴ期間が終了した日付とレコードの更新日を比較して新しい日付がdatestampに出力される。
+- 上記以外はrecords_metadataテーブルのupdatedが出力される。
idDoesNotExist の例。
@@ -277,6 +279,8 @@ identifier:アイテムに利用可能なメタデータフォーマットが
```
+- WEKO_SEARCH_ACCESSRIGHTがTrueの場合、エンバーゴ期間が終了した日付とレコードの更新日を比較して新しい日付がdatestampに出力される。
+- 上記以外はrecords_metadataテーブルのupdatedが出力される。
#### 処理概要
diff --git a/docs/spec/base/other/RESEARCHMAP_LINKAGE.md b/docs/spec/base/other/RESEARCHMAP_LINKAGE.md
new file mode 100644
index 00000000..614d2c97
--- /dev/null
+++ b/docs/spec/base/other/RESEARCHMAP_LINKAGE.md
@@ -0,0 +1,435 @@
+# API連携によるレコード追加機能
+
+## 目的・用途
+
+本機能は、WEKO3のシステム内で登録した公開状態のアイテムのレコードを、researchmapで提供されているAPIを利用してresearchmapの業績情報に追加するための機能である。この機能により、事前に利用機関毎にJSTが発行したAPIキーを使用して、API キーに紐づいた機関に所属する一般会員の業績情報の更新を行うことが出来る。
+
+## 利用方法
+celeryのタスクとして、researchmapへの業績情報の登録処理が実行される。
+定期的に(例:一日一回)、バッチ処理により実行される。
+
+## 利用可能なロール
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+| 利用可否 |
+× |
+× |
+× |
+× |
+× |
+× |
+
+
+
+
+※バッチ処理により定期的に実行される。
+
+## 機能内容
+
+- タスクをscripts/instance.cfgのCELERY_BEAT_SCHEDULEに記載し、参照する。
+
+- 処理キューにレコードIDが入っているアイテムに対して、連携を行う。処理キューに処理を予約するには、「ItemRegistrationにてCRIS連携の機関チェックボックスをONにして登録し、アイテム登録が完了したとき」「連携フラグをTRUEにしてインポートし、登録完了したとき」([インポート](../admin/ADMIN_2_4.md)を参照)のいずれかのタイミングで行える。
+
+- Celeryによりバッチ処理として、連携機能がONの場合、WEKOに登録されているアイテムのデータをresearchmapへ業績情報として追加する。
+
+ - 機能のON/OFFは設定ファイルに定義する。
+
+ - ResearchmapがCRIS連携に指定されているアイテムがキューに入っている場合、そのアイテムをresearchmapへの業績情報登録を行う。ただし、そのアイテムが公開状態であること、「著者」「コントリビュータ」欄(attribute_nameがcreator, contributor)に著者が登録されており、その著者の著者DBにresearchmapへのparmalinkが登録されている必要がある。また、researchmap側の設定としても、対象機関の下にある著者であり、公開状態にあることなど、連携を許可される設定下にある必要がある。(researchmap側の設定については、researchmapの連携API仕様書「3.10 研究者情報、代理人情報における取得・更新範囲」を参照のこと)
+
+ - 登録対象アイテムの公開状態を確認する。
+
+ - 対象レコードのrecord_metadataのpublish_status, publish_dateを既存のメソッドを用いて確認する。(返り値True: public, False: private)
+
+ - 対象レコードが登録されているインデックスの公開状態を既存のメソッドを用いて確認する。(返り値True: public, False: private)
+
+ - ファイルが添付されている場合は、ファイル情報の公開状態を既存のメソッドを用いて確認する。(返り値True: ダウンロード可能, False: ダウンロード不可)
+
+ - 確認結果が公開状態であれば、著者情報を確認する。
+ アイテムのrecord_metadataを確認し、researchmapへ業績情報として登録できる入力データを作成する。
+
+ - 確認結果が非公開状態であれば、researchmapへの業績情報のレコード追加処理は行わない。
+
+ - 登録対象アイテムのrecord_metadataのjsonに、nameIdentifiersを持つ著者情報のデータがあるか確認する。
+
+ - attribute_nameがcreator, contributorの項目にnameIdentifiersを持つ著者情報がある場合、 CRISシステムの種別によって登録する著者情報の確認を行う。
+
+ - CRISシステムの種別がresearchmapの場合、nameIdentifierSchemeとしてresearchmapの会員ID(user_id)が設定されているかどうか確認する。
+
+ - researchmapの会員ID(user_id)が設定されている場合、該当のアイテムをデータ連携対象とする。
+
+ - 特定の作成者識別子Scheme (CRISシステムの種別がresearchmapの場合はresearchmap Member ID)と対応する作成者識別子の著者の業績情報として、連携用データの作成を行う。
+
+ - researchmapの会員ID(user_id) を持つ複数の著者情報が連携対象のアイテムに登録されている場合、それぞれの著者の業績情報として連携用データの作成を行う。
+
+ - 連携対象著者のresearchmap会員IDをそれぞれuser_idとして指定し、複数の業績情報を登録する。
+
+ - authorsのフィールドがある業績種別(論文: published_papers, MISC: misc, 書籍等出版物: books_etc)の業績として登録する場合、著者(authors)のフィールドの項目に、登録対象の会員ID以外の著者情報も含むデータを登録する。
+
+ - 業績種別が受賞:awardsの業績として登録する場合、受賞者(winners) のフィールドの項目に、登録対象の会員ID以外の著者情報も含むデータを登録する。
+
+ - 業績種別が講演・口頭発表等:presentationの業績として登録する場合、講演者(presenters) のフィールドの項目に、登録対象の会員ID以外の著者情報も含むデータを登録する。
+
+ - 業績種別がWorks:worksの業績として登録する場合、発表者(creators) のフィールドの項目に、登録対象の会員ID以外の著者情報も含むデータを登録する。
+
+ - 業績種別が共同研究・競争的資金等の研究課題:research_projectsの業績として登録する場合、担当研究者(investigators) のフィールドの項目に、登録対象の会員ID以外の著者情報も含むデータを登録する。
+
+ - 業績種別が産業財産権: industrial_property_rightsの業績として登録する場合、 発明者/考案者/創作者(inventors) のフィールドの項目に、登録対象の会員ID以外の著者情報も含むデータを登録する。
+
+ - nameIdentifiersを持つ著者情報がない場合、データの連携処理は行わない。
+
+ - アイテムの登録データから業績情報として登録できる入力データを作成する。
+
+ - 登録対象のアイテムのメタデータをjpcoarmappingスキーマに対応した状態で既存のメソッドを用いて取得する。
+
+ - 対象レコードのファイルのメタデータは既存のメソッドを用いて、公開、または公開日が過去日のメタデータのみ取得する。
+
+ - CRISシステムの種別がresearchmapの場合、登録項目(必須、任意)は、researchmapの業績種別と登録対象アイテムの資源タイプのデータの対応付けを定義したJSONを参照し、対応する項目の登録されている値を登録する。
+
+ - 資源タイプと researchmapの業績種別の対応表は別に添付する。
+
+ - WEKOの登録アイテムのメタデータとresearchmapへの登録の際のメタデータを、 JPCOARスキーママッピングを利用して対応付ける。
+
+ - 登録アイテムのWEKOの資源タイプと対応するresearchmap業績種別のフィールドに、 JPCOARのスキーママッピングと対応付けてマッピングを行い、対応するメタデータを登録する。
+
+ - マッピング情報のうち、jpcoar_mappingの指定する設定値を持つ項目をデータ連携対象とする。
+
+ - 連携対象アイテムのrecords_metadataを取得する。
+
+ - researchmapの対象の業績種別のフィールドの値に、jpcoar_mappingスキーマ形式で取得したアイテムのメタデータの対応する項目の値を、設定ファイルを利用して対応付け、登録するメタデータのJSONを作成する。
+
+ - 一つのJSONを作成する際に含まれる業績情報のデータの件数は、1アイテム分とする。
+
+ - 最大件数を越えた場合、次のJSONデータを作成する。
+
+ - JSONの例
+ ```json
+ {"insert": {"type": "published_papers", "user_id": "xx"}, "merge":
+ {"paper_title":{"ja": "XXXXX", "en": "XXXXX"},"publication_date":"2011-10-10","publication_name":{"ja": "XXXXX", "en": "XXXXX"}}}
+ ```
+
+ - ※ 1 リクエストあたりの JSON の最大サイズは、10MB。
+
+ - ※ 1 行に1 業績、あるいは1 研究者のデータを記載する。不要な改行を含んでいる場合、エラーが発生する。プロフィール等でデータに改行を含む場合、¥n で記載する必要がある。
+
+ - ※ 以下の文字をデータ中に含める場合は、「\」でエスケープする。「"」であれば「\\"」と記載する。
+
+ | エスケープ表記 | 説明 |
+ | -------------- | ------------------------------------- |
+ | \\" | ダブルクォーテーション |
+ | \\\\ | バックスラッシュ |
+ | \n | 改行 |
+ | \uXXXX | 4 桁の16 進数で表記されたUnicode 文字 |
+
+ - researchmapへの成果物登録の際の業績種別とJPCOARスキーマの資源タイプの対応表は、設定ファイルで変更可能とする。
+
+ - メタデータにJPCOARスキーマとの対応関係がない場合、該当のメタデータは登録しない。
+
+ - 登録するアイテムのメタデータの取得が出来なかった場合は、該当のメタデータを登録しない。
+
+ - 新たにアクセストークンを取得する。アクセストークンの取得処理の流れは以下。
+
+ - JWTを作成する。
+
+ - JWTを用いてトークンAPI リクエストを送信し、アクセストークンを取得する。
+
+ - アクセストークンの取得に失敗し場合、リトライする。
+
+ - リトライにX回失敗した場合、エラーメッセージをログに記録し業績情報登録処理を終了する。(Xは設定ファイルより取得する。デフォルトは5とする)
+
+ - JWTを作成する。
+
+ - 既存のJWT作成ライブラリを利用する。(jpadilla/pyjwt)
+
+ - 有効期限は2分とする。(推奨値)設定ファイルで値を管理する。
+
+ - 利用機関で機関毎に事前に取得しているAPIキーのクライアントIDを保持する。
+
+ - APIキーのクライアントIDの変数および、JWTの署名に用いる秘密鍵はAdminSettingsから取得する。
+
+ - APIキーのクライアントIDを使用してJSON Web トークン(JWT)を作成する。
+
+ - 各 header、claim の内容についてはresearchmapの連携API仕様書を参照のこと
+
+ - JWTを用いてトークンAPI リクエストを送信し、アクセストークンを取得する。
+
+ - APIのリクエストは設定ファイルに定義し、CRISシステムの種別毎に該当する形式を利用できるようにする。
+
+ - APIリクエスト時にエラーレスポンスが返ってきた場合、そのエラー内容によって処理を行う。
+
+ - APIリクエスト時に再送信によって解消する可能性があるエラーレスポンスが返ってきた場合、トークンAPI リクエストを再度送信する。
+
+ - リトライ回数は設定ファイルで定義し、変更可能とする。(デフォルト値:5回)
+
+ - 最後の再実行時にエラーが返ってきた場合は、失敗をCRIS連携結果テーブルに書き戻し、ステータスコードとエラーログを出力し、業績情報の登録処理を終了する。
+
+ - APIリクエスト時にJWTの再作成によって解消する可能性があるエラーレスポンスが返ってきた場合、 JWTの再作成後、トークンAPI リクエストを再度送信する。
+
+ - リトライ回数は設定ファイルで定義し、変更可能とする。(デフォルト値:5回)
+
+ - 最後の再実行時にエラーレスポンスが返ってきた場合は、失敗をCRIS連携結果テーブルに書き戻し、ステータスコードとエラーログを出力し、業績情報の登録処理を終了する。
+
+ - 再送信により解消しないエラーレスポンスが返ってきた場合は、失敗をCRIS連携結果テーブルに書き戻し、ステータスコードとエラーログを出力し、業績情報の登録処理を終了する。
+
+ - エラー表に記載のないその他のエラーレスポンスが返ってきた場合は、ステータスコードとエラーログを出力し、業績情報の登録処理を終了する。
+
+ - エラー時レスポンス表
+ アクセス時に返すエラー理由と内容
+
+ - アクセストークンを利用して、WEKOの登録アイテムに関するメタデータをresearchmapの業績情報に登録する前の整合性チェックのリクエストAPIを呼び出す。
+
+ - リクエスト
+ GET
+
+ - パラメータ
+
+
+
+
+
+
+
+
+
+
+
+
+ | check |
+ 整合性チェックのみ行うかどうか |
+ パラメーター(GET)に「check」(または、check=1)を記載すると、入力チェックのみ実行され、その結果を確認できます。その場合、「一括更新結果確認」の API より確認します。check を指定しなくても入力チェックを行い、1 件でもエラーがあった場合、更新処理は行いません。 |
+
+
+ | id |
+ 一括更新 ID |
+ 「check」パラメーターをつけ、入力チェックのみ行ったデータは、本 API のレスポンスより取得される
+ bulk_url を用いてインポートを実行できます。対象は、 check の API を実行し、その結果が確認できる状態であれば、実行できます。 |
+
+
+
+
+ - 入力チェックの結果、エラーが発生したデータについては登録対象外として、登録時のリクエストの入力データから除外する。
+
+ - 該当のアイテムのresearchmap連携フラグは-2(連携エラー)とする。
+
+
+ - アクセストークンを利用して、WEKOの登録アイテムに関するメタデータをresearchmapの業績情報に登録するリクエストAPIを呼び出す。
+
+ - リクエスト
+ POST or PUT https://api.researchmap.jp/\_bulk
+
+ - パラメータ (POST BODY(JSON))例
+ ```json
+ {"insert": {"type": "published_papers", "user_id": "xx"}, "merge":
+ {"paper_title":{"ja": "XXXXX", "en": "XXXXX"},"publication_date":"2011-10-10","publication_name":{"ja": "XXXXX", "en": "XXXXX"}}}
+ ```
+
+ - ※ 1 リクエストあたりの JSON の最大サイズは、10MB。
+
+ - ※ 1 行に1 業績、あるいは1 研究者のデータを記載する。不要な改行を含んでいる場合、エラーが発生する。プロフィール等でデータに改行を含む場合、¥n で記載する必要がある。
+
+ - ※ 以下の文字をデータ中に含める場合は、「\」でエスケープする。「"」であれば「\\"」と記載する。
+
+ | エスケープ表記 | 説明 |
+ | -------------- | ------------------------------------- |
+ | \\" | ダブルクォーテーション |
+ | \\\\ | バックスラッシュ |
+ | \n | 改行 |
+ | \uXXXX | 4 桁の16 進数で表記されたUnicode 文字 |
+
+ - 情報が更新可能な範囲は、API キーに紐づいた機関に所属する一般会員。(researchmapのAPI設計書記載の仕様)
+
+ - 各研究者の権限設定、機関の権限設定によって利用可否が決定される。(researchmapのAPI設計書記載の仕様)
+
+ - 登録処理の際に、 researchmap側の設定や登録情報の状態によりエラーとなったアイテムについては、 researchmapへの連携フラグを-2(連携エラー)として設定する。
+
+ - 登録対象アイテムのrecord_metadataに登録されている、研究者のresearchmapの会員ID(user_id)を指定して業績情報の登録を行う。
+
+ - researchmapへの業績情報登録時の類似性チェックについては、デフォルト設定はメタデータ補完とする。
+
+ - 類似データのマージに関するアクションの設定値は、パラメータ化して機関毎に変更可能とする。(設定値の種類については「アクションの種類」参照)
+ scripts/instance.cfgに保持し、リクエスト時に送信するJSONデータを作成する際に利用する。
+
+ - 類似データのマージに関するアクションの設定値がない場合は、類似データマージ(類似データ優先)のアクションを指定する。
+
+ - アクションの種類
+
+
+
+
+
+
+
+
+
+
+
+
+ insert
+ (merge 指定) |
+ マージ
+ (追加・更新) |
+ 指定ドキュメントがない場合、新規登録。追加・更新を行おうとしている会員の業績リスト中に類似ドキュメントがあればエラーとなります。 |
+
+
+ insert
+ (similar_merge指定)
+ priority=input_data |
+ 類似データマージ(入力データ優先) |
+ 「マージ」と基本的には同じですが、追加・更新を行おうとしている会員の業績リスト中に類似ドキュメントがあった場合、入力データ(または、入力データを指定ドキュメントとマージしたもの)を優先させ、類似ドキュメントをマージします。
+ ※ 業績情報のみ指定可能。
+ ※ 入力データの項目に存在しない項目のみ、類似ドキュメントの値を補完することになります。
+ ※ 類似業績とマージした際は、本人による登録であっても承認状態を「承認済-自動」とします(「却下」可能にするため)。
+ ※ 研究者、代理人ではsimilar_merge 指定はできません。 |
+
+
+ insert
+ (similar_merge指定)
+ priority=similar_data |
+ 類似データマージ(類似データ優先) |
+ 「マージ」と基本的には同じですが、追加・更新を行おうとしている会員の業績リスト中に類似ドキュメントがあった場合、類似ドキュメントを優先させ、入力データ(または、入力データを指定ドキュメントとマージしたもの)をマージします。
+ ※ 業績情報のみ指定可能。
+ ※ 類似ドキュメントの項目に存在しない項目のみ、入力データの値を補完することになります。
+ ※ 類似業績とマージした際は、本人による登録であっても承認状態を「承認済-自動」とします(「却下」可能にするため)。 |
+
+
+ insert(force 指定) |
+ 入力データ強制追加 |
+ 「マージ」と基本的には同じですが、類似ドキュメントがあった場合でも、別業績として扱い強制的に新規登録を行います。ただし、類似ドキュメントが機関以外(本人相当)によって登録/更新されている場合は、追加することができません。
+ ※ 業績情報のみ指定可能。
+ ※ 多用すると、同じ会員リスト中に類似業績が増え続けます。通常の「merge」指定でエラーになり、類似業績と分けてどうしても登録したい場合のみご利用ください。 |
+
+
+
+
+ - APIリクエスト時にエラーレスポンスが返ってきた場合、そのエラー内容によって処理を行う。
+
+ - APIリクエスト時に再送信によって解消する可能性があるエラーレスポンス(通信エラー・アクセストークン期限切れ等)が返ってきた場合、業績情報登録リクエストを再度送信する。(アクセストークンを再取得する)
+
+ - リトライ回数は設定ファイルで定義し、変更可能とする。(デフォルト値:5回)
+
+ - 最後の再実行時にエラーが返ってきた場合は、ステータスコードとエラーログを出力し、業績情報の登録処理を終了する。
+
+ - 業績情報の登録処理を終了する場合、アイテムのresearchmap連携フラグは、0(未連携)のままとする。
+
+ - APIリクエスト時にアクセストークンの再作成によって解消する可能性があるエラーレスポンスが返ってきた場合、 アクセストークンの再作成後、業績情報登録リクエストを再度送信する。
+
+ - リトライ回数は設定ファイルで定義し、変更可能とする。(デフォルト値:5回)
+
+ - 最後の再実行時にエラーレスポンスが返ってきた場合は、ステータスコードとエラーログを出力し、業績情報の登録処理を終了する。
+
+ - 業績情報の登録処理を終了する場合、アイテムのresearchmap連携フラグは、0(未連携)のままとする。
+
+ - 再送信により解消しないエラーレスポンスが返ってきた場合は、ステータスコードとエラーログを出力し、業績情報の登録処理を終了する。
+
+ - 業績情報の登録処理を終了する際に、該当アイテムのresearchmap連携フラグは、0(未連携)のままとする。
+
+ - JSONのサイズエラーなど、エラー表に記載のないその他のエラーレスポンスが返ってきた場合は、ステータスコードとエラーログを出力し、業績情報の登録処理を終了する。
+
+ - 登録処理中に一部のアイテムで登録エラーが発生した場合、該当アイテムの業績情報登録処理を行わず、次の対象アイテムの業績情報登録処理に進む。(researchmapAPI仕様)
+
+ - 登録処理中に再実行により解消しないエラーが発生したアイテムのresearchmap連携フラグは、-2(連携失敗)とする。
+
+ - 登録処理中にエラーが発生したアイテムのresearchmap連携フラグは、0(未連携)のままとする。
+
+ - エラー時レスポンス表
+ アクセス時に返すエラー理由と内容について説明します。
+
+ - 共通バリデーションエラー レスポンス表
+ ※ 一括更新で返却するレスポンスコードはバリデーションエラーの場合、200 を返します(各行のエラーが全体のレスポンスコードに影響を及ぼさない)。
+
+ - 一括更新時バリデーションエラーは304は成功として扱い、それ以外は失敗として扱う。(researchmapの連携API仕様書「3.1.4一括更新時バリデーションエラー レスポンス表」を参照のこと)
+
+ - 業績情報の一括更新結果の確認を行う。
+
+ - リクエスト
+ GET https://api.researchmap.jp/\_bulk_results
+
+ - パラメーター(GET)
+
+
+
+
+
+
+
+
+
+
+
+
+ | id |
+ 一括更新ID(必須) |
+ 「研究者情報、代理人情報一括更新」のレスポンスにて取得したID。 |
+
+
+ | display_type |
+ 成功 or 失敗のどちらのリストを表示するか |
+ success: 正常に登録されたリストを表示(or 正常にチェック終了になったもの)
+ error: エラーリストを表示
+ デフォルト: error |
+
+
+ | next |
+ 次ページを表示するかどうか |
+ 「next=xxx」指定。
+ <インポート結果>
+ json の最終行の"no", "line"を「_」区切りで指定するとxxx 以降のデータが出力されます。例えば「next=1_30」であれば、1 ファイル目の 31 行目からの結果が表示されます。
+ <API の更新結果>
+ 行数: 指定した行数の続きからデータを取得します。
+ "true": 前回取得した続きからデータを取得します。(next パラメーターを指定し、値を指定しない場合も、前回取得した続きからデータ取得します。)
+ 前のページを取得したい場合は、再度、next を指定せず取得する必要があります(1 ページから再取得)。
+ ただし、next パラメーターを利用せずに、ある一定期間過ぎますと、有効期限切れとなりエラーとなります。 |
+
+
+ | limit |
+ ページあたりの一括更新結果件数 |
+ デフォルト: 1000 件。最大:3000 件。
+ ※ 最大値をこえた指定をした場合、3000 として出力されます。 |
+
+
+
+
+ - 失敗が1件以上あった場合は、そのアイテムへの送信は失敗として扱う。
+
+ - 業績情報の一括更新結果を基に、データ連携済みのアイテムおよび、登録時にエラーが発生したアイテムのresearchmap連携フラグ(CRIS連携結果テーブルのsucceedカラム)を変更する。
+
+ - statusが completion「完了」の場合、該当行のアイテムのresearchmap連携フラグを「成功」にする。
+
+ - statusが error「エラー」の場合、response項目のerrorを参照し、発生したエラーが再実行で解消しない類のエラーである場合、該当行のアイテムのresearchmap連携フラグを「失敗」とする。
diff --git a/docs/spec/base/user/USER_1_2.md b/docs/spec/base/user/USER_1_2.md
index a3b00d9f..7f9eeebf 100644
--- a/docs/spec/base/user/USER_1_2.md
+++ b/docs/spec/base/user/USER_1_2.md
@@ -261,6 +261,12 @@
geopoint_JA_1 |
geo_distance |
+
+| 27 |
+アクセス権
+(Access Rights) |
+チェックボックス |
+
@@ -590,18 +596,25 @@
|
-| 24 |
+25 |
float_JA_1 |
float_range |
float_range1 |
|
-| 25 |
+26 |
geopoint_JA_1 |
geo_point |
geo_point1 |
|
+
+| 27 |
+アクセス権
+(Access Right) |
+Keyword |
+Access Right |
+ |
diff --git a/docs/spec/base/user/USER_3_1.md b/docs/spec/base/user/USER_3_1.md
index 0941faf5..efc6b899 100644
--- a/docs/spec/base/user/USER_3_1.md
+++ b/docs/spec/base/user/USER_3_1.md
@@ -141,6 +141,15 @@
- 【Administration \> アイテムタイプ管理(ItemTypes) \> メタデータ (Metadata) 画面】の言語のサブプロパティの"Show List"のチェックを非活性とする。
+ - Access Rightsの表示について
+ - weko_search_ui/config.py: WEKO_SEARCH_FIX_ACCESSRIGHTSがTrueに設定されている場合、Access Rightsは以下の条件で表示される
+ - Access Rights:embargoed accessの場合
+ 1. ファイルのアクセスにopen_restrictredが存在する場合、restricted accessで表示される
+ 2. 1を満たさずファイルのアクセスがopen_date、日付が未来である場合embargoed accessで表示される
+ 3. 1,2を満たさずファイルのアクセスがopen_loginが存在する場合、restricted accessで表示される
+ 4. すべてのファイルが「open_access」または「アクセスがopen_date,日付が処理日以前」である場合open accessで表示される
+ 5. 1~4を満たさない場合、embargoed accessのままとなる
+
2 Permalink欄の表示について
- アイテム詳細画面にPermalinkをラベル無しで表示する。
diff --git a/docs/spec/base/user/USER_3_7.md b/docs/spec/base/user/USER_3_7.md
index 3bb8f1fc..9370ee6b 100644
--- a/docs/spec/base/user/USER_3_7.md
+++ b/docs/spec/base/user/USER_3_7.md
@@ -106,7 +106,10 @@
updatedの日付のマッピングは、Getrecord、ListRecord、ListIdentifierのheaderにおいて、「datestamp=record.updated,」が使用されており、invenio\_records.api.get\_recordからDBのupdatedを取得している。
-
+
+ 設定値WEKO_SEARCH_FIX_ACCESSRIGHTSがTrueの場合、エンバーゴを考慮したupdatedが出力される。
+ AccessRightsがembargoed accessからopen accessに修正される場合、ファイルの公開日とDBのupdatedを比較して、新しい日付がupdatedとして出力される。
+
jpcoarスキーマガイドラインに記載されている以下の項目は不要となる
- datacite:date dateType="Created"
diff --git a/docs/spec/base/user/USER_4_6.md b/docs/spec/base/user/USER_4_6.md
index a02a2c56..30c1cc1b 100644
--- a/docs/spec/base/user/USER_4_6.md
+++ b/docs/spec/base/user/USER_4_6.md
@@ -32,6 +32,11 @@ Item Registrationの一部として、画面上の入力欄でメタデータを
- 公開日(PubDate)
- フィードバックメール送信先(Feedback Mail Destination)
+- researchmap連携フラグ
+ - アイテム登録を行う際に、「researchmapデータ連携フラグ」の設定エリアを表示する。
+ - researchmapデータ連携フラグの登録データを、temp_metadataに登録して管理する。
+ - チェックボックスによりフラグを表示する。
+
- 日付のフォーマットで定義されるプロパティまたは属性に対して、3つのフォーマット(YYYY-MM-DD、YYYY-MM、YYYY)が入力できる
- 入力方法はカレンダー入力、または手入力である
- デフォルト値はサーバ日付(/api/admin/get_server_date)を利用する
@@ -47,6 +52,7 @@ Item Registrationの一部として、画面上の入力欄でメタデータを
- 「検索」ボタンを押すと、【Administration > 著者DB管理(Author Management) > 編集(Edit)】で登録された著者DB一覧を表示する
- [入力(import)] ボタンを押すと、選択した著者情報をメタデータの各エリアに入力する
- 「Add Author」ボタンを押すと、著者登録画面が表示され著者情報を登録することができる(登録すると著者DB管理画面にも反映される)
+ - 作成者識別子の選択肢にresearchmapを追加し、会員と1対1のID(parmalink)のデータを管理する。
- コミュニティ管理者、登録ユーザーの場合は著者登録画面のコミュニティ選択欄の選択肢にアクティビティを作成したコミュニティを加える。
- アイテム作成時、作成者識別子は編集不可となる。
- アイテム編集時、作成者識別子"WEKO"のデータ部分はユーザーでの編集は不可とする(作成者識別子Scheme, 作成者識別子URI, 作成者識別子はグレーアウトする)。それ以外の識別子は変更可能となる。
@@ -54,6 +60,15 @@ Item Registrationの一部として、画面上の入力欄でメタデータを
- アイテムとの紐づけを行わない(解除する)場合は、「作成者」パネル内の各入力エリアの右上にある[×]で紐づけを解除する
- アイテムで個別に編集した作成者の項目は、Adminの著者DBには反映されない。
なお、アイテムで個別に編集した後に著者DBから著者を取り込むと、個別編集した項目は上書きされる
+
+- weko_search_ui/config.py: WEKO_SEARCH_FIX_ACCESSRIGHTSがTrueに設定されている場合
+ - 入力したメタデータが以下のaccessRigthsの修正条件に該当する場合、修正後のAccess Rightsの値でアイテムが登録される
+ - Access Rights:embargoed accessの場合
+ 1. ファイルのアクセスにopen_restrictredが存在する場合、restricted accessに修正される
+ 2. 1を満たさずファイルのアクセスがopen_date、日付が未来である場合embargoed accessに修正される
+ 3. 1,2を満たさずファイルのアクセスがopen_loginが存在する場合、restricted accessに修正される
+ 4. すべてのファイルが「open_access」または「アクセスがopen_date,日付が処理日以前」である場合open accessに修正される
+ 5. 1~4を満たさない場合、embargoed accessのままとなる
### 2. アイテムのメタデータを自動入力できる
@@ -250,4 +265,3 @@ Item Registrationの一部として、画面上の入力欄でメタデータを
|2025/01/01|09c6391d2ed1bae053fee9f8dfc98e95e1e1b87f|v1.0.7a2|
|2024/04/14|cd0183f59a16928be2511e33e4495a3376f143c9|v1.0.6 |
|2023/08/31|353ba1deb094af5056a58bb40f07596b8e95a562|初版作成|
-