Update Extended Service

ASN.1 Definition

April 21, 1998
revised October 30, 1998

ESFormat-Update
{Z39-50-extendedService Update (5)} DEFINITIONS ::=
BEGIN
IMPORTS DiagRec, InternationalString
FROM Z39-50-APDU-1995;
Update ::= CHOICE{
    esRequest      [1] IMPLICIT SEQUENCE{
       toKeep         [1] OriginPartToKeep,
       notToKeep      [2] OriginPartNotToKeep},
    taskPackage    [2] IMPLICIT SEQUENCE{
                       originPart     [1]
                                   OriginPartToKeep,
                       targetPart     [2] TargetPart}}

OriginPartToKeep ::= SEQUENCE{
  action            [1] IMPLICIT INTEGER{
                      recordInsert   (1),
                      recordReplace  (2),
                      recordDelete   (3),
                      elementUpdate  (4),

The following line is added to this definition as an amendment to Z39.50-1995. See Amendment AM0003: Revised Update ES Definition.


                       specialUpdate     (5)},

  databaseName      [2] IMPLICIT InternationalString,
  schema            [3] IMPLICIT
                         OBJECT IDENTIFIER OPTIONAL,
  elementSetName    [4] IMPLICIT
                         InternationalString OPTIONAL,


The following line is added to this definition as an amendment to Z39.50-1995. See Amendment AM0003: Revised Update ES Definition. This is added October 1998 as previous version unintentionally omitted it.



      actionQualifier     [5]  IMPLICIT EXTERNAL OPTIONAL}






OriginPartNotToKeep ::= SuppliedRecords

TargetPart ::= SEQUENCE{
  updateStatus        [1] IMPLICIT INTEGER{
                          success (1),
                          partial (2),
                          failure (3)},
  globalDiagnostics   [2] IMPLICIT SEQUENCE OF
                              DiagRec OPTIONAL,
                    -- These are non-surrogate
                    -- diagnosticsrelating to the task,
                    -- not to individual records.
  taskPackageRecords  [3] IMPLICIT SEQUENCE OF
TaskPackageRecordStructure
                    -- There should be a
                    -- TaskPackageRecordStructure
                    -- for every record supplied.
                    -- The target should create
                    -- such a structure for every
                    -- record immediately upon
                    -- creating the task package
                    -- to include correlation
                    -- information and status.
                    -- The record itself would not
                    -- be included until processing
                    -- for that record is complete.
               }

-- Auxiliary definitions for Update
SuppliedRecords ::= SEQUENCE OF SEQUENCE{
  recordId     [1] CHOICE{
                 number  [1] IMPLICIT INTEGER,
                 string  [2] IMPLICIT
                             InternationalString,
                 opaque  [3] IMPLICIT
                              OCTET STRING} OPTIONAL,
  supplementalId [2] CHOICE{
                 timeStamp       [1] IMPLICIT
                                      GeneralizedTime,
                 versionNumber   [2] IMPLICIT
                                   InternationalString,
                 previousVersion [3] IMPLICIT
                                     EXTERNAL} OPTIONAL,
  correlationInfo   [3] IMPLICIT CorrelationInfo OPTIONAL,
  record            [4] IMPLICIT EXTERNAL}

CorrelationInfo ::= SEQUENCE{
            -- origin may supply one or both for any record:
  note [1] IMPLICIT InternationalString OPTIONAL,
  id   [2] IMPLICIT INTEGER OPTIONAL}

TaskPackageRecordStructure ::= SEQUENCE{
     recordOrSurDiag  [1] CHOICE {
                    record     [1] IMPLICIT EXTERNAL,
                      -- Choose 'record' if
                      -- recordStatus is 'success', and
                      -- elementSetName was supplied.


In the following, "surrogateDiagnostics" replaces "diagnostic", and "IMPLICIT SEQUENCE OF DiagRec" replaces "DiagRec", as an amendment to Z39.50-1995. See Amendment AM0003: Revised Update ES Definition.


                  surrogateDiagnostics   [2] IMPLICIT
                              SEQUENCE OF DiagRec
                         -- Choose 'SurrogateDiagnostics', if
                         -- RecordStatus is failure.
                                } OPTIONAL,


                -- The parameter recordOrSurDiag
                    -- will thus be omitted only if
                    -- 'elementSetName' was omitted and
                    -- recordStatus is 'success'; or
                    --if record status is 'queued'
                    -- or in 'process'.
     correlationInfo [2] IMPLICIT
                         CorrelationInfo OPTIONAL,
                    -- This should be included
                    -- if it was supplied by the origin.
     recordStatus    [3] IMPLICIT INTEGER{
                      success   (1),
                      queued    (2),
                      inProcess (3),
                      failure   (4)},

The following is added to this definition as an amendment to Z39.50-1995. See Amendment AM0003: Revised Update ES Definition.


      supplementalDiagnostics   [4] IMPLICIT
		SEQUENCE OF DiagRec OPTIONAL}

END