GetDocumentAbstract API¶
OBSOLETE -" This API is retained for backward compatibility only. Use
GetDocumentAbstract1for new integrations.GetDocumentAbstract1returns a consistent XML structure for both success and error cases; this API does not.
Returns the full-text abstract (indexed text content) of a specified version of a document.
Endpoint¶
Methods¶
-
GET
/srv.asmx/GetDocumentAbstract?AuthenticationTicket=...&Path=...&VersionNumber=... -
POST
/srv.asmx/GetDocumentAbstract(form data) -
SOAP Action:
http://tempuri.org/GetDocumentAbstract
Parameters¶
| Parameter | Type | Required | Description |
|---|---|---|---|
AuthenticationTicket |
string | Yes | Authentication ticket obtained from AuthenticateUser. |
Path |
string | Yes | Full infoRouter path to the document (e.g. /Finance/Reports/Q1-Report.pdf), or a short document ID path (~D{id} or ~D{id}.ext). |
VersionNumber |
int | Yes | Version number to retrieve the abstract for. Pass 0 for the published version, or for the latest version when the document has never been published. Must be 0 or a version number in the modern format (--- 1,000,000). Values between 1 and 999,999 are rejected with an error. |
Version Number Format¶
infoRouter uses a large-integer version numbering scheme where version numbers pack a major, a minor and a revision into one integer as major * 1000000 + minor * 1000 + revision, so the first version is 1000000 and the second is 1000001 - not 2000000, which would be major version 2. Pass 0 to get the published version's abstract, or the latest version's when the document has never been published.
Response¶
Warning: The success and error responses use different XML structures -" this inconsistency is the primary reason this API is considered obsolete. See
GetDocumentAbstract1for a consistent response format.
Success Response¶
On success, the abstract text is returned inside an <abstract> child element:
<response success="true" error="">
<abstract AppliedById="3" AppliedBy="SYSTEM" DateApplied="2024-03-15T14:32:07.000Z">This document covers the Q1 2024 financial results including
revenue figures, expense breakdowns, and year-over-year comparisons...</abstract>
</response>
| Element / Attribute | Description |
|---|---|
success |
"true" on success. |
error |
Empty string on success. |
<abstract> |
Child element containing the full-text abstract (indexed content) of the requested document version. Carries the author as attributes - see below. |
Who wrote the abstract¶
The element carries the author, in the same three attributes
GetPropertySets uses on its <Log> node and
GetDocumentSummary uses on its <Value>.
| Attribute | Meaning |
|---|---|
AppliedById |
ID of the user recorded against the abstract. Use this to identify them - a username is a label, not a key. |
AppliedBy |
Their display name. |
DateApplied |
When the abstract was written, in universal format. |
An abstract is always produced by the server - from the email parser or the content index, never
typed - so in practice this is the system account. It is read from the stored row rather than
assumed, which is why all three are absent on an abstract written before the author was
recorded, and on a - where there is none.
Error Response¶
On any error, a flat <response> element is returned without the <abstract> child:
This structural difference between success (has <abstract> child) and error (flat element with only attributes) is what the obsolete warning refers to.
Required Permissions¶
The calling user must have at least read access to the document. The abstract is extracted from the full-text search index; if the document has not been indexed, the returned abstract may be empty.
Example¶
GET Request¶
GET /srv.asmx/GetDocumentAbstract
?AuthenticationTicket=3f2504e0-4f89-11d3-9a0c-0305e82c3301
&Path=/Finance/Reports/Q1-2024-Report.pdf
&VersionNumber=0
HTTP/1.1
POST Request¶
POST /srv.asmx/GetDocumentAbstract HTTP/1.1
Content-Type: application/x-www-form-urlencoded
AuthenticationTicket=3f2504e0-4f89-11d3-9a0c-0305e82c3301
&Path=/Finance/Reports/Q1-2024-Report.pdf
&VersionNumber=0
SOAP Request¶
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="http://tempuri.org/">
<soap:Body>
<tns:GetDocumentAbstract>
<tns:AuthenticationTicket>3f2504e0-4f89-11d3-9a0c-0305e82c3301</tns:AuthenticationTicket>
<tns:Path>/Finance/Reports/Q1-2024-Report.pdf</tns:Path>
<tns:VersionNumber>0</tns:VersionNumber>
</tns:GetDocumentAbstract>
</soap:Body>
</soap:Envelope>
JavaScript¶
Every call answers XML with HTTP 200, success or not, so success is the thing to branch on and
errorCode is the number to report.
async function call(action, params) {
const response = await fetch(`/srv.asmx/${action}?${new URLSearchParams(params)}`);
const root = new DOMParser()
.parseFromString(await response.text(), 'text/xml')
.documentElement;
if (root.getAttribute('success') !== 'true') {
throw new Error(`${root.getAttribute('errorCode')}: ${root.getAttribute('error')}`);
}
return root;
}
Reads the indexed text of one document version, in an <abstract> element.
const root = await call('GetDocumentAbstract', {
authenticationTicket: ticket,
Path: '/Finance/Reports/Q1.pdf',
VersionNumber: 0 // 0 means the published version
});
const element = root.querySelector('abstract');
console.log(element.textContent,
element.getAttribute('AppliedBy'),
element.getAttribute('DateApplied'));
The only difference between the two is the element name. GetDocumentAbstract writes the text
into <abstract>, which is what it has always done; GetDocumentAbstract1 writes the identical text,
with the identical attributes, into <Value> - the element the rest of the API uses for a single
returned value. Same parameters, same content, same author attributes. Prefer the numbered one in new
code and keep reading <abstract> in anything already written against it.
Notes¶
-
This API is obsolete. Use
GetDocumentAbstract1for all new integrations. -
The abstract text is sourced from the full-text search index. If the document has not been indexed, the abstract may be empty.
-
VersionNumber=0retrieves the abstract for the published version of the document, or for its latest version when it has never been published. -
Version numbers between
1and999,999are rejected. Use0for the published version, or a number a document actually carries - the first version is1000000and the second1000001. -
Both full infoRouter paths and short document ID paths (
~D{id}or~D{id}.ext) are accepted for thePathparameter.
Related APIs¶
-
GetDocumentAbstract1 - Preferred replacement with consistent XML response structure
-
GetDocument - Get full document metadata and properties
-
GetDocumentVersions - Get the version history list for a document
Error Codes¶
The errorCode values this operation returns, checked against a running server:
errorCode |
When |
|---|---|
4010 |
the ticket is expired or unknown, or there is no ticket at all |
4041 |
no document at that path - including a folder path, and one the caller may not see |
HTTP 400 |
a required string parameter was empty; refused by model binding, so there is no error document |
A call with no ticket signs in as the anonymous user, so a document in a library flagged as anonymous can be read without authenticating.
| Error | Description |
|---|---|
[900] Authentication failed |
Invalid or missing authentication ticket. |
[901] Session expired or Invalid ticket |
The ticket has expired or does not exist. |
| Document not found | The specified path does not resolve to an existing document. |
| Invalid version number | VersionNumber is between 1 and 999,999 (must be 0 or --- 1,000,000). |
SystemError:... |
An unexpected server-side error occurred. |