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),
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)},
supplementalDiagnostics [4] IMPLICIT
SEQUENCE OF DiagRec OPTIONAL}
END