View | Details | Raw Unified | Return to bug 37538
Collapse All | Expand All

(-)a/misc/bin/connexion_import_daemon.pl (-38 / +206 lines)
Lines 32-75 GetOptions( Link Here
32
32
33
if ( $help || !$config ) {
33
if ( $help || !$config ) {
34
    print <<EOF
34
    print <<EOF
35
$0 --config=my.conf
35
OCLC Import Daemon
36
Parameters :
36
37
  --daemon | -d  - go to background; prints pid to stdout
37
This script hosts a server which listens for connections from an OCLC Connexion
38
  --config | -c  - config file
38
client or WorldShare Record Manager.
39
  --help   | -?  - this message
39
40
The records are forwarded to Koha by sending a request to the handler at 
41
`/cgi-bin/koha/svc/import_bib` on the staff interface of the configured Koha 
42
instance. The request is authenticated using the credentials of a Koha staff 
43
user.
44
45
See the documentation for the `import_bib` endpoint at
46
https://wiki.koha-community.org/wiki/Koha_/svc/_HTTP_API#POST_.2Fsvc.2Fimport_bib .
47
The `import_bib` endpoint is being phased out. This script should be rewritten 
48
to use the newer REST API instead.
49
50
If you have multiple Koha instances, run a separate instance of this script for 
51
each one, using a different port and different credentials for each one.
52
53
Usage:
54
  $0 --config=my.conf
55
56
Command line options:
57
  --daemon | -d  - Run in the background. Prints the process ID to stdout.
58
  --config | -c  - Specify the config file to use. Required.
59
  --help   | -?  - Print this message.
40
60
41
Config file format:
61
Config file format:
42
  Lines of the form:
62
  Each line has the form:
43
  name: value
63
    NAME: VALUE
44
64
  For example:
45
  # comments are supported
65
    port: 5500
46
  No quotes
66
47
67
  Empty parameters look like this:
48
  Parameter Names:
68
    NAME:
49
  host     - ip address or hostname to bind to, defaults all available
69
  For example:
50
  port     - port to bind to, mandatory
70
    overlay_framework:
51
  log      - log file path, stderr if omitted
71
52
  debug    - dumps requests to the log file, passwords inclusive
72
  Values should not be quoted.
53
  koha     - koha intranet base url, eg http://librarian.koha
73
54
  user     - koha user, authentication
74
  Lines starting with # are treated as comments.
55
  password - koha user password, authentication
75
56
  match          - marc_matchers.code: ISBN or ISSN
76
  Parameters:
57
  overlay_action - import_batches.overlay_action: replace, create_new or ignore
77
    host
58
  overlay_framework - if overlaying records - move to a new framework, if blank will use default
78
      The IP address or host name to bind to (that is, listen on).
59
                      if not included it will use the framework of the existing record
79
      Defaults to 0.0.0.0, that is, listen on all interfaces.
60
  nomatch_action - import_batches.nomatch_action: create_new or ignore
80
61
  item_action    - import_batches.item_action:    always_add,
81
    port
62
                      add_only_for_matches, add_only_for_new or ignore
82
      The port to bind to (that is, listen on).  Typically 5500.
63
  import_mode    - stage or direct
83
      This must be different from the port used by any other service on the 
64
  framework      - to be used if import_mode is direct, if blank, will use default
84
      same machine.
65
  connexion_user      - User sent from connexion client
85
      Required.
66
  connexion_password  - Password sent from connexion client
86
67
87
    log
68
  Note: If connexion parameters are not defined request authentication will not be checked
88
      The path to the log file.
69
  You should specify a different user for connexion to protect the Koha credentials
89
      Logs are written to stderr if omitted.
70
90
71
  All process related parameters (all but ip and port) have default values as
91
    debug
72
  per Koha import process.
92
      Dumps all incoming requests to the log file.
93
      WARNING: This includes the connexion user's password, if it is  part of 
94
      the request.
95
      Use 1 for on and 0 for off.
96
      Defaults to 0 (off).
97
98
    koha
99
      The base URL of the staff interface for your Koha instance, for example,
100
      http://librarian.koha
101
      When this script is running on the same machine as the Koha instance, and
102
      you have dedicated port for the Koha staff interface, you can use 
103
      http://localhost:port here. Otherwise, use the URL you would use when 
104
      accessing the Koha staff interface through a browser.
105
      Required.
106
107
    user
108
      The Koha user used for logging in to the staff interface for the Koha 
109
      instance.
110
      Required.
111
112
    password
113
      The password of the Koha user.
114
      Required.
115
116
    connexion_user
117
      The user name expected to be sent by the connexion client with every 
118
      request.
119
      If set, also set `connexion_password`. In this case, request 
120
      authentication will be checked.
121
      If omitted, also omit `connexion_password`. In this case, request 
122
      authentication will not be checked, and anyone with access to the port 
123
      opened by this script will be able to send records into the 
124
      Koha instance.
125
126
    connexion_password
127
      The password expected to be sent by the connexion client with every 
128
      request.
129
      WARNING: Do NOT use the same password as the Koha user password.
130
131
    import_mode
132
      Where the imported records should go. See the explanation below.
133
      Available values:
134
        stage
135
          The records will be imported into the staging area (reservoir) 
136
          at /cgi-bin/koha/tools/manage-marc-import.pl into a batch called
137
          `(webservice)`.
138
          The records will also show up below the catalog results in the staff
139
          interface when doing a "cataloging search" at
140
          /cgi-bin/koha/cataloguing/addbooks.pl?q=...
141
        direct
142
          The records will be imported directly into the catalog. They will 
143
          show up in all catalog searches as soon as the indexing catches up.
144
      Defaults to `stage`.
145
146
    match
147
      Which code to use for matching MARC records when deciding whether to add
148
      or replace a record.
149
      Corresponds to the "Matching rule applied" field at 
150
      /cgi-bin/koha/tools/manage-marc-import.pl?import_batch_id=...
151
      Available options:
152
        ISBN
153
          Use the International Standard Book Number (MARC 020\$a)
154
        ISSN
155
          Use the International Standard Serial Number (MARC 022\$a)
156
        KohaBiblio
157
          Use the Koha biblio number (MARC 999\$c)
158
      See `C4::Matcher`.
159
160
    overlay_action
161
      What to do when the incoming record matches a record already in the 
162
      catalog.
163
      Corresponds to the "Action if matching record found" field at 
164
      /cgi-bin/koha/tools/manage-marc-import.pl?import_batch_id=...
165
      Available values:
166
        replace
167
          Replace the existing record with the incoming record.
168
        create_new
169
          Create a new record alongside the existing record.
170
        ignore
171
          Discard the incoming record.
172
173
    nomatch_action
174
      What to do when the incoming record does not match any record in the 
175
      catalog.
176
      Corresponds to the "Action if no match found" field at 
177
      /cgi-bin/koha/tools/manage-marc-import.pl?import_batch_id=...
178
      Available values:
179
        create_new
180
          Create a new record.
181
        ignore
182
          Discard the incoming record.
183
184
    item_action
185
      What to do when the incoming MARC record contains one or more items 
186
      embedded in field 952.
187
      Corresponds to the "Item processing" field at 
188
      /cgi-bin/koha/tools/manage-marc-import.pl?import_batch_id=...
189
      Available values:
190
        always_add
191
        add_only_for_matches
192
        add_only_for_new
193
        replace
194
        ignore
195
196
    framework
197
      The cataloging framework to use when no match was found in the catalog 
198
      (that is, when adding a new record).
199
      Defaults to the default framework configured at 
200
      /cgi-bin/koha/admin/biblio_framework.pl
201
202
    overlay_framework
203
      The cataloging framework to use when a match was found in the catalog 
204
      (that is, when replacing an existing record).
205
      Corresponds to the "Replacement record framework" field at 
206
      /cgi-bin/koha/tools/manage-marc-import.pl?import_batch_id=...
207
      You have three options here:
208
        Do not specify this parameter.
209
          The default framework configured at 
210
          /cgi-bin/koha/admin/biblio_framework.pl is used.
211
        Specify this parameter without a value, that is, `overlay_framework:`.
212
          The new record will use the same framework as the record being 
213
          replaced.
214
        Specify this parameter with a value, for example,
215
          `overlay_framework: my_framework`.
216
          The new record will use the specified framework.
217
218
Explanation of `import_mode`:
219
- When using `direct`, each request will create a new batch and import the 
220
  batch immediately.
221
- When using `stage`, each request will cause records to be added to an 
222
  existing batch.
223
- The batch name is always `(webservice)`.
224
- If you change `import_mode` from `stage` to `direct` after some records 
225
  have already been staged, the next request will cause all records in that
226
  batch to be imported into the catalog, not just the records from the latest
227
  request.
228
- These config parameters define the settings of the batch that is created, 
229
  whether or not it is imported immediately:
230
  - `match`
231
  - `overlay_action`
232
  - `nomatch_action`
233
  - `item_action`
234
  - `framework`
235
  - `overlay_framework`
236
- If one or more of these parameters are changed, a new batch is created with
237
  the new settings, and any new records are added to that batch instead of to
238
  the old one.
239
- If you stage a record that cannot be imported then all future imports will 
240
  be stuck until that batch is cleaned and deleted.
241
73
EOF
242
EOF
74
        ;
243
        ;
75
    exit;
244
    exit;
Lines 294-300 exit; Link Here
294
        $in =~ m/(.)$/;
463
        $in =~ m/(.)$/;
295
        my $lastchar = $1;
464
        my $lastchar = $1;
296
        my ( $xml, $user, $password, $local_user );
465
        my ( $xml, $user, $password, $local_user );
297
        my $data = $in;    # copy for diagmostic purposes
466
        my $data = $in;    # copy for diagnostic purposes
298
        while () {
467
        while () {
299
            my $first = substr( $data, 0, 1 );
468
            my $first = substr( $data, 0, 1 );
300
            if ( !defined $first ) {
469
            if ( !defined $first ) {
301
- 

Return to bug 37538