std.GetCPObjectIdxFulltext

This job returns the indexable content of a DMS object to the full-text indexer. The content is not returned as a data field but written into a temporary file on the server; the caller receives the path and transfers the file itself for reading.

The file contains the extracted full text together with the metadata required by the indexer (object IDs, path information, index field values, mime type) in a format understood by the full-text backend. The source of the full-text content is the osftcontent table.

The typical call context is the follow-up job after std.GetNextCPMessage and std.GetCPObjectInfo in the CP lifecycle.

This job is not listed in the official enaio® standard engine overview (std).

1. Input Parameters

Name Type Required Description

ObjectID

INT

Yes

Numeric ID of the DMS object the indexing input shall be produced for.

ObjectType

INT

Yes

Numeric object type ID. Used to embed the correct index field definitions and path information. Should match the actual object type — if unknown, it can be determined beforehand via std.GetCPObjectInfo.

Flags

INT

Yes

Reserved; always pass 0.

2. Output Files

Name Description

File list

Path and name of the temporary indexing file (one file per call, under a per-call freshly generated GUID). The caller is responsible for fetching the file through the regular file transfer layer and releasing it afterwards so the server can clean it up.

3. Return Value

(INT): 0 = job successful, otherwise error code. Even if no full-text content is currently available for the object in osftcontent, the call completes successfully — the resulting file then contains only the metadata without a full-text block. The caller detects this and reacts on the application level (typically: requests a rendition via std.CreateCPMessages with CreateRenditionMessages=true and sets osftslog.flag2 = 404, see value range flag2).

4. Notes

  • Read-only on the database side — no DB writes. However, a temporary file is created on the server; a result that is never fetched leaves dead files behind.

  • A new file with its own GUID is produced for every call — two successive calls for the same ObjectID return different paths with potentially identical content.

  • The job is intended for the full-text indexer service. Other worker services (e.g. the rendition cache) do not read full-text content through this path.

  • std.GetNextCPMessage — returns the ObjectID that typically feeds directly into this job (queues FULLTEXTIDX and FULLTEXTDOC)

  • std.GetCPObjectInfo — usually called immediately before, to decide via HasVolltextFile whether full-text content is available and which pipeline branch is responsible

  • std.CreateCPMessages — called by the indexer when the returned file contains no full-text block, to request a rendition

  • std.DispatchCPMessage — acknowledges the underlying CP message after the indexing is complete

  • std.CPRenditionChanged — triggers a re-indexing; this job is then called again, this time with a populated osftcontent