Hi Lars,

I got the deposit submission upload thingy working, just some things left (I 
think/hope): the marcxml is generated without the 001 (record id - bibupload 
runs in -r mode in upload_record_sip() and fails because the recid was 
previously created) and 980 (collection information ["article", "book", 
"preprint", "report", etc] - which hides the record by default) fields.

I understood that the recid it's not supposed to be present in the new records' 
marcxml, but if I don't generate the recid (reserved_recid() and 
create_recid()) the workflow will fail when he gets to run_tasks().

I also understood (not quite sure if I'm right) that when we upload the new 
deposition, it will be generated a marcxml file from the json that the sip 
contained.

I checked the jsonalchemy.get_producer_rules() and it does not contain any rule 
for the 'recid', and so this is pobably why it's not being generated (from the 
json) along with the rest of the xml (on 
jsonalchemy.wrappers.legacy_export_as_marc()).

For the upload of new records to work peacefully we need to:

  *   add the 001 (adding rules for 'recid' in the producer rules?) and 980 
fields to the marcxml?
  *   add only the 980 field and always upload_record_sip() in -i mode?

Do we need the recid already reserved and created in the sips for the new 
records before the upload (since when a new record is inserted by bibupload a 
recid is created for that record)? If so, why?


This is my workflow (note that I'm only uploading new records and never editing 
existing submissions):

  1.  prefill_draft(draft_id='default'),
  2.  render_form(draft_id='default'),
  3.  prepare_sip(),
  4.  reserved_recid(),
  5.  create_recid(),
  6.  process_sip_metadata(process_recjson_new),
  7.  finalize_record_sip(),
  8.  upload_record_sip(),
  9.  run_tasks(update=False)

Sorry about the extensive reading.

Thanks in advance,
Pedro

Reply via email to