Add or Update Bibliographic Record

Start Add or Update Bib Record Process

POST /api/.../workflow

This method allows the caller to add a new or update an existing bibliographic record. When used for update, if the MARC21 collection is not passed in, only the 'Display in PAC', 'Do not overlay' and 'Owner' columns will be updated.

The API will load the existing bib record and update.

Request Information

Parameters
Name Type Required Description
WorkflowRequest DtoWorkflowRequest Yes Define this parameter in the request body.
DtoWorkflowRequest
Property Type Nullable Description
WorkflowRequestType Int No Required. For add or update bib record, this must be set to 13.
TxnBranchID Int No Transacting branch ID.
TxnUserID Int No Transacting Polaris user ID.
TxnWorkstationID Int No Transacting workstation ID.
RequestExtension DtoWorkflowRequestExtension No An update bib record request requires a DtoAddOrUpdateBibRecordExtensionData object.
WorkflowReplies List of DtoWorkflowReply Yes It is possible to pass in a list of replies for automated processing.
DtoWorkflowRequestExtension
Property Type Nullable Description
WorkflowRequestExtensionType Int No For an add or update bib record request, the extension type must be a 12 (AddOrUpdateBibRecordData).
Data Object No This must be an extension data object of type DtoAddOrUpdateBibRecordExtensionData
DtoAddOrUpdateBibRecordExtensionData
Property Type Nullable Required Description
BibRecordIDIntNoNoBibliographic record ID. Only required if updating an existing bibliographic record.
IsTemplateBooleanNoYesIs this a bib template record? Default: false
IsNewRecordBooleanNoYesIs this a new bib record? Default: false
DisplayInPACBooleanNoNo
DoNotOverlayBooleanNoNo
RecordOwnerIDIntNoNo
RecordStatusIDIntNoNo
MARC21CollectionMARC21CollectionNoNo

Example: Update only header data

Request body
application/json, text/json
{
    "WorkflowRequestType":13,
    "TxnBranchID":"3",
    "TxnUserID":"1",
    "TxnWorkstationID":"1242",
    "WorkflowReplies":null,
    "RequestExtension":{
        "WorkflowRequestExtensionType":12,
        "Data":{
            "BibRecordID":"1126739",
            "IsTemplate":false,
            "IsNewRecord":false,
            "DisplayInPAC":false,
            "DoNotOverlay":false,
            "RecordOwnerID":"1",
            "RecordStatusID":1,
            "MARC21Collection":null
        }
    }
}
Response Information
<== Answer from server - If 'Display in PAC' is false
Server would like caller to prompt for more input. Display information is provided.
{
    "WorkflowRequestGuid":"7fc0c2b3-2ba8-42fa-81a6-9fb088fac31f",
    "WorkflowRequestType":13,
    "WorkflowStatus":-3,
    "Prompt":{
        "WorkflowPromptID":66,
        "Name":null,
        "Description":null,
        "WorkflowPromptType":1,
        "WorkflowPromptOptions":6,
        "DefaultPromptOption":5,
        "Title":"Display in PAC",
        "Message":"This record will no longer display in the online catalog. Do you want to continue saving ?",
        "AlternateMessage":"",
        "AlternateYesText":"",
        "AlternateNoText":"",
        "AlternateCancelText":"",
        "AlternateContinueText":"",
        "PromptExtension":null
    },
    "InformationMessages":[],
    "AnswerExtension":null,
    "CircTranType":0,
    "ReceiptType":0,
    "ReceiptUrl":"",
    "FineEReceiptSent":false
}
==> Caller sends a reply to the server indicating they want to continue (PromptResult=5).
PUT /api/.../workflow/7fc0c2b3-2ba8-42fa-81a6-9fb088fac31f
{
    "WorkflowPromptID": 66,
    "WorkflowPromptResult": 5,
    "ReplyValue": null,
    "ReplyExtension": null
}
Example: DtoWorkflowAnswer - The bibliographic record has been updated.
application/json, text/json
{
    "WorkflowRequestGuid":"7fc0c2b3-2ba8-42fa-81a6-9fb088fac31f",
    "WorkflowRequestType":13,
    "WorkflowStatus":1,
    "Prompt":null,
    "InformationMessages":[{
        "Type":1,
        "Title":"",
        "Message":"The bibliographic record has been updated."
    }],
    "AnswerExtension":null,
    "CircTranType":0,
    "ReceiptType":0,
    "ReceiptUrl":"",
    "FineEReceiptSent":false
}

Example: Update marc data

Request body
application/json, text/json
{
  "WorkflowRequestType": 13,
  "TxnBranchID": "3",
  "TxnUserID": "1",
  "TxnWorkstationID": "1242",
  "WorkflowReplies": null,
  "RequestExtension": {
    "WorkflowRequestExtensionType": 12,
    "Data": {
      "BibRecordID": "1126739",
      "IsTemplate": false,
      "IsNewRecord": false,
      "DisplayInPAC": true,
      "DoNotOverlay": false,
      "RecordOwnerID": "1",
      "RecordStatusID": 1,
      "MARC21Collection": {
        "records": [
          {
            "id": 0,
            "leader": "|||||cam a22|||||uu 4500",
            "controlfields": [
              {
                "tag": "001",
                "data": "1126739",
                "position": 1
              },
              {
                "tag": "003",
                "data": "PolarisTest",
                "position": 2
              },
              {
                "tag": "005",
                "data": "20210123172217.0",
                "position": 3
              },
              {
                "tag": "008",
                "data": "171108|||||||||||||||||||||||||| |||||||",
                "position": 4
              }
            ],
            "datafields": [
              {
                "tag": "245",
                "ind1": "1",
                "ind2": "0",
                "subfields": [
                  {
                    "code": "a",
                    "data": "Test OTF Title 1000"
                  }
                ],
                "position": 5
              }
            ]
          }
        ]
      }
    }
  }
}
Response Information
Example: DtoWorkflowAnswer - The bibliographic record has been updated.
application/json, text/json
{
    "WorkflowRequestGuid":"00000000-0000-0000-0000-000000000000",
    "WorkflowRequestType":13,
    "WorkflowStatus":1,
    "Prompt":null,
    "InformationMessages":[{
        "Type":1,
        "Title":"",
        "Message":"The bibliographic record has been updated."
    }],
    "AnswerExtension":null,
    "CircTranType":0,
    "ReceiptType":0,
    "ReceiptUrl":"",
    "FineEReceiptSent":false
}

Possible Responses

Example: DtoWorkflowAnswer - Duplicate records found.
application/json, text/json
{
  "WorkflowRequestGuid": "e090eaf9-2abe-438e-ad1a-c0ef5db94e15",
  "WorkflowRequestType": 13,
  "WorkflowStatus": -3,
  "Prompt": {
    "WorkflowPromptID": 87,
    "Name": null,
    "Description": null,
    "WorkflowPromptType": 26,
    "WorkflowPromptOptions": 2,
    "DefaultPromptOption": 3,
    "Title": "Bibliographic Record Duplicate Detection Results",
    "Message": "",
    "AlternateMessage": "",
    "AlternateYesText": "Replace",
    "AlternateNoText": "Continue",
    "AlternateCancelText": "",
    "AlternateContinueText": "",
    "PromptExtension": {
      "WorkflowPromptExtensionType": 30,
      "Data": {
        "BibRecordID": 1331401,
        "Title": "Frog Face and the three boys",
        "Author": "Trembath, Don, 1963-",
        "PrimaryMARCTOMID": 1,
        "MARCTOMDescription": "Book",
        "NumberOfLinkedItems": 0,
        "RecordStatusID": 1,
        "RecordStatusDescription": "Final",
        "LaunchedFromSavingRecord": true,
        "DeletedRecord": false,
        "TitleNewRecord": "",
        "AuthorNewRecord": "",
        "OwnerNewRecord": "",
        "OwnerNewRecordID": 1,
        "BibReplacementRecords": [
          {
            "RecordID": 1331392,
            "RecordStatusID": 1,
            "RecordStatusDescription": "Final",
            "OwnerID": 1,
            "OwnerName": "RD-GIZMO 7.3 Development System",
            "Author": "Trembath, Don, 1963-",
            "Title": "Frog Face and the three boys",
            "FormatID": 1,
            "FormatDescription": "Book",
            "NumberOfLinkedItems": 3,
            "Reason": "LCCN;ISBN;Author/Title;Title/260 $c;Just Title and;Title/LCCN",
            "DoNotOverlay": true
          },
          {
            "RecordID": 1331393,
            "RecordStatusID": 1,
            "RecordStatusDescription": "Final",
            "OwnerID": 1,
            "OwnerName": "RD-GIZMO 7.3 Development System",
            "Author": "Trembath, Don, 1963-",
            "Title": "Frog Face and the three boys",
            "FormatID": 1,
            "FormatDescription": "Book",
            "NumberOfLinkedItems": 0,
            "Reason": "LCCN;ISBN;Author/Title;Title/260 $c;Just Title and;Title/LCCN",
            "DoNotOverlay": false
          }
        ],
        "CheckBibModifyPermission": false,
        "MaintainControlNumberEnabled": false
      }
    }
  },
  "InformationMessages": [],
  "AnswerExtension": null,
  "CircTranType": 0,
  "ReceiptType": 0,
  "ReceiptUrl": "",
  "FineEReceiptSent": false
}
Reply options for the duplicate records prompt are:
  • Yes - 2 (Replace)
  • No - 3 (Continue)
  • Cancel - 4 (Cancel)
If replace records (Yes=2) is selected, the ReplaceRecordsReplyData (WorkflowReplyExtensionType=18) object is used in the reply extension:
application/json, text/json
{
    "WorkflowPromptID": 87,
    "WorkflowPromptResult": 2,
    "ReplyValue": null,
    "ReplyExtension": {
        "WorkflowReplyExtensionType": 18,
        "Data": {
            "RecordToMaintainID": 0,
            "RecordIDs": [1331393]
        }
    }
}

If a new bib record is being added and duplicates exist, the caller may choose to maintain an existing records ID by supplying 'RecordToMaintainID'.


Example: DtoWorkflowAnswer - Errors Found With Records To Replace.
application/json, text/json
{
  "WorkflowRequestGuid": "344b6791-a299-4557-aa5e-702a523ad161",
  "WorkflowRequestType": 13,
  "WorkflowStatus": -3,
  "Prompt": {
    "WorkflowPromptID": 148,
    "Name": null,
    "Description": null,
    "WorkflowPromptType": 50,
    "WorkflowPromptOptions": 6,
    "DefaultPromptOption": 5,
    "Title": "Errors Found With Records To Replace",
    "Message": "No selected records can be replaced. Do you want to continue?",
    "AlternateMessage": "",
    "AlternateYesText": "",
    "AlternateNoText": "",
    "AlternateCancelText": "",
    "AlternateContinueText": "",
    "PromptExtension": {
      "WorkflowPromptExtensionType": 44,
      "Data": {
        "ShowCheckbox": false,
        "CheckboxText": null,
        "IsChecked": false,
        "Columns": [
          {
            "Name": "Record ID",
            "Key": "RecordID",
            "Type": "Text"
          },
          {
            "Name": "Reason",
            "Key": "Reason",
            "Type": "Text"
          }
        ],
        "Data": [
          {
            "RecordID": 1331392,
            "Title": "Frog Face and the three boys",
            "Reason": "Bibliographic record 1331392 has been protected from overlay and cannot be replaced."
          }
        ],
        "ObjectType": 2,
        "ObjectIDPropertyName": "RecordID"
      }
    }
  },
  "InformationMessages": [],
  "AnswerExtension": null,
  "CircTranType": 0,
  "ReceiptType": 0,
  "ReceiptUrl": "",
  "FineEReceiptSent": false
}

HTTP Response Codes

Code Description
200 OK. Success

Required Permissions

Permission IDs found here.

    AccessCatalogingSubsystem_Allow
    BibliographicRecords_Access
    BibliographicRecords_Create: If owner branch is changed
    BibliographicRecords_Modify