新CAT/ILLシステムサーバ実装仕様

Last Update: 2023.10.31
未実装項目
実装仕様書中の項目の中に未実装の項目がありますので注意して下さい。
  1. CATPプロトコルの実装
  2. CATPフィールド制限値
  3. マルチレコードにおけるレコードデリミタの定義
  4. GETHANDLEメソッドにおけるrequest-headerのAuthentication-infoフィールド
  5. SEARCHメソッドにおけるresponse-headerのDatabase-namesフィールド
  6. SERVERPROCEDURECALL(SPC)メソッドの実装仕様
  7. Edit-Type
  8. データベース名定義
  9. データベースフィールド定義
  10. ステータスコードとリーズンフレーズ
  11. 警告成功(ステータスコード=300)
  12. 業務用システムと教育用システムの区別
  13. ストップワードの取り扱い
  14. SEARCHメソッドの前方一致
  15. SEARCHメソッド,SCANメソッドのValueのエスケープシーケンス
  16. SCANメソッドの正規表現について
  17. ILLに関するデータベースを指定した場合の各メソッドの注意点
  18. FRAME内であるレコードが削除され、その削除レコード以降をRETRIEVEした場合の注意点

  1. CATPプロトコルの実装
    CATPプロトコルのRequestは、HTTPプロトコル1.0以上で定義される Full-RequestのPOSTメソッドのObject-Bodyに実装すること。
    CATPプロトコルのResponseは、HTTPプロトコル1.0以上で定義される Full-ResponseのObject-Bodyに実装する。
  2. CATPフィールド制限値
  3. マルチレコードにおけるレコードデリミタの定義 (CATP 3.5 参照)
     boundary          =   "NACSIS-CATP"
    
     Multi-record      =   1*(Record-delimiter Record) Close-delimiter
     Record-delimiter  =   "--" boundary CRLF
     Close-delimiter   =   "--" boundary "--" CRLF
     boundary          =   0*69( bchar | SP ) bchar
                            ; boundaryはMulti-record内で同一とする
     bchar             =   DIGIT | ALPHA | "'" | "(" | ")" | "+"
                           | "_" | "," | "-" | "." | "/" | ":" | "=" | "?"
  4. GETHANDLEメソッドにおけるrequest-headerのAuthentication-infoフィールド (CATP 4.1.1.2 参照)
    1. Authentication-infoのCATP定義

      クライアントに対するユーザの認証情報を指定する。

       Authentication-info  =  "Authenticate" ":" Authenticate CRLF
       Authenticate         =  text
    2. Authentication-infoの実装
       "Authenticate" ":" ユーザ登録名 "," 確認キーワード CRLF
      1. ユーザ登録名
        エンドユーザに割り当てられた新CATサービスのユーザ登録名を指定する
      2. 確認キーワード
        ユーザ登録名に対応する確認キーワード(パスワード)を指定する
  5. SEARCHメソッドにおけるresponse-headerの Database-namesフィールド  (CATP 4.4.2.2 参照)

    クライアントが指定したデータベース名(リスト)をそのまま返す。

  6. SERVERPROCEDURECALL(SPC)メソッドの実装仕様
  7. Edit-Type  (CATP 4.4.1.2, 4.5.1.2, 4.6.1.2 参照)

    Edit-Typeを下表のように定義する。

    項番 Edit-Type 意味
    1 "0" レコード情報なし
    2 "1" 簡略情報用レコードフィールド群
    3 "2" 詳細情報用レコードフィールド群
    4 "3" 未定義
    5 "4" 未定義
    6 "5" 未定義
    7 "6" 未定義
    8 "7" 未定義
    9 "8" 未定義
    10 "9" 全レコードフィールド群
  8. データベース名定義
  9. データベースフィールド定義
  10. ステータスコードとリーズンフレーズ
  11. 警告成功(ステータスコード=300)
    BOOK,RECON,SERIALのINSERT,UPDATE時に以下の条件のレコードが存在する場合、警告成功とする。
    INSERT,UPDATE対象のファイル リクエストレコードの状態 条件
    BOOK,RECON ISBNまたはXISBNあり ISBNKEYが同一の他のレコードが存在する。
    ISBNまたはXISBNなし FTITLEKEYが同一の他のレコードが存在する。
    SERIAL ISSNまたはXISSNあり ISSNKEYが同一の他のレコードが存在する。
    ISSNまたはXISSNなし FTITLEKEYが同一の他のレコードが存在する。
  12. 業務用システムと教育用システムの区別
    業務用システムと教育用システムは接続先によって区別する。また、 GETHANDLE時に取得できるハンドル番号とその他のメソッドで使用できる ハンドル番号は以下の様に区別される。
  13. ストップワードの取り扱い
    検索キー中にストップワードが存在する場合、検索処理は行わずに、 エラーレスポンスを返す。
    エラーレスポンスのステータスコードは、「422(Invalid Object body)」、リーズンフレーズの埋め字にエラーの原因となったCATPフィー ルド名を含める。
    ストップワード一覧は、 目録システム利用マニュアル 第8版を参照。
  14. SEARCHメソッドの前方一致
    前方一致を使用するには*(ASTERISK:2A)を使用する。
  15. SEARCHメソッド,SCANメソッドのValueのエスケープシーケンス
    \(YEN SIGN:5C)を使用する。エスケープの対象になるのは

    \(YEN SIGN:5C)
    "(QUOTATION MARK:22)
    *(ASTERISK:2A)

  16. SCANメソッドの正規表現について
    SCANメソッドは正規表現を使用することができる。
    エスケープシーケンスは\(YEN SIGN:5C)を使用する。
    詳しくは、「SCANメソッドの正規表現」 を参照して下さい。
  17. ILLに関するデータベースを指定した場合の各メソッドの注意点
    1. SEARCHメソッド
      1. 検索対象ILLレコードは自館レコードのみとする。
      2. データベースは複数指定可能。但し、依頼館側DBと受付館側DBは同時に指定できない
      3. 所蔵グループフィールドにおいて、受付館では他館の所蔵情報を見ることはできない。
    2. RETRIEVEメソッド
      1. 所蔵グループフィールドにおいて、受付館では他館の所蔵情報を見ることはできない。
    3. INDEXLISTメソッド
      1. 依頼館状態別インデックス、受付館状態別インデックスフィールドのみを対象とする。
  18. FRAME内であるレコードが削除され、その削除レコード以降をRETRIEVEした場合の注意点
    1. FRAME内であるレコードが削除され、その削除レコード以降をRETRIEVEした場合、元々のFRAME内のレコード位置は変わらない(詰めて返戻しない)。
    2. FRAME内で所蔵レコードを削除した場合、その削除レコードをRETRIEVEした場合、空の所蔵レコードが返戻されるが、そのDBNAMEは、一律[PREBOOK]で返戻される。