Hallo zusammen,
wir haben aktuell ein Migrationsprojekt, bei dem wir per ecmind_blue_client in Version 0.5.8 Anfragen gegen ein enaio 9.0 SP1 (letzter verfügbarer Hotfixstand) absetzen.
Konkret geht es darum, dass wir alle Dokumente in einem Schrank ermitteln wollen, die sich innerhalb eines Ordners mit einem bestimmten Aktenzeichen befinden. Dazu machen wir eine kombinierte Anfrage mit entsprechender Suchbedingung.
Das Anfrage-XML aus der Jobüberwachung sieht wie folgt aus:
Rückgabewert: 0 == 0x0
=== 12 Eingabeparameter ===
DateFormat (1) = %Y-%m-%d
Encoding (1) = UTF-8
FileInfo (2) = 0
Flags (2) = 0
FollowDocLink (2) = 0
GarbageMode (2) = 0
MaxHits (1) = None
Offset (2) = 0
PageSize (2) = 1000
RequestType (1) = LOL
Status (2) = 0
XML (6, xml) =
<DMSQuery>
<Archive>
<ObjectType internal_name="AktenordnerDokument">
<Fields field_schema="DEF">
<Field internal_name="BETREFF"/>
<Field internal_name="BEARBEITUNGSSTATUS"/>
<Field internal_name="STICHWORTE"/>
<Field internal_name="DOKUMENTDATUM"/>
<Field internal_name="ERSTELLER"/>
<Field internal_name="DATEITYP"/>
<Field internal_name="IZ"/>
<Field internal_name="UZ"/>
<Field internal_name="NACHRICHTVOM"/>
<Field internal_name="BESTAETIGT_VON"/>
<Field internal_name="BESTAETIGT_AM"/>
<Field internal_name="Locked"/>
<Field internal_name="MAIL_FROM"/>
<Field internal_name="MAIL_TO"/>
<Field internal_name="MAIL_CC"/>
<Field internal_name="MAIL_SENT"/>
<Field internal_name="MAIL_SUBMIT_TIME"/>
<Field internal_name="MAIL_DIGEST"/>
<Field internal_name="AZ"/>
<Field internal_name="OBJECT_ID" system="1"/>
<Field internal_name="SDSTA_ID" system="1"/>
<Field internal_name="SDREG_ID" system="1"/>
<Field internal_name="OBJECT_MAIN" system="1"/>
</Fields>
<Conditions>
<ConditionObject internal_name="Aktenordner">
<FieldGroup operator="OR">
<FieldCondition internal_name="FileReference" operator="=">
<Value>042.02</Value>
</FieldCondition>
</FieldGroup>
</ConditionObject>
</Conditions>
</ObjectType>
</Archive>
</DMSQuery>
Die Rückgabe sieht so aus:
Count (2) = 974
TotalHits (2) = 1701
XML (6, xml) =
<DMSContent format="LOL" output_language="0" version="9.0.780.18346" timestamp="2023-03-20T09:31:46" user="XXX" station="N1RRZN301" instance="MigrationCLI">
<Archive name="Aktenordner" id="6" osguid="4BEA70684F6148A2A6960246CF16196E">
<ObjectType name="Dokument" id="262147" maintype="4" cotype="3" osguid="BBE648068A194CFB98CE07C778D35969" internal_name="AktenordnerDokument" type="DOCUMENT" modul="MULTIDOC" table="object12">
<Rowset>
...
</Rowset>
<Statistics startpos="0" pagesize="1000" total_hits="974"/>
</ObjectType>
</Archive>
<Messages/>
</DMSContent>
Seltsam ist für uns hierbei, dass er in der Anfrage 1701 TotalHits ausgibt, aber lediglich 974 Objekte zurück gibt.
Vergleich man das Verhalten mit einer kombinierten Anfrage im enaio Client (mit identischer Anmeldung und Autostern deaktiviert) gibt der Client folgende Anzahl an Dokumenten aus.
Das aus der Jobüberwachung gefischte SQL-Select des Clients:
select distinct(d.id),d.feld49,d.feld51,d.datum2,d.id,d.zeitstempel,d.version,d.links,d.systemid,d.foreignid,d.flags,d.lockuser,d.haupttyp,d.anzahl,d.medium_doc,d.signstate,d.mimetypeid,d.feld57 from object12 d,stamm7 o,sdrel x where x.stamm_id = o.id and x.object_id = d.id and (((o.feld20 = '042.02'))) and (d.deleted=0 or d.deleted is NULL) and (x.deleted=0 or x.deleted is NULL) and (o.deleted=0 or o.deleted is NULL)
Das mit Eingabeparameter Sql=1
im lol_query
zurückgegebene SQL-Select:
SELECT DISTINCT d.id , d.feld51, d.feld49, d.feld50, d.datum2, d.feld58, d.feld57, d.feld55, d.feld54, d.datum1, d.feld104, d.feld105, d.zahl1, d.feld62, d.feld61, d.feld60, d.feld93, d.datum3, d.feld109, d.feld46, d.id, x.stamm_id, x.register, d.haupttyp FROM object12 d, sdrel x, stamm7 o WHERE x.object_id=d.id AND (x.deleted=0 OR x.deleted is NULL) AND x.stamm_id = o.id AND (d.deleted is NULL or d.deleted=0) AND (o.deleted is NULL or o.deleted=0) AND (o.feld20 = '042.02') ORDER BY 1
Versuche diverse Parameter, wie max_hits
, page_size
und offset
mitzugeben, blieben ebenfalls erfolglos…
Ist dieses unterschiedliche Verhalten bekannt oder irgendwie erklärbar?
Habt ihr eine Idee, wie man über den ecmind_blue_client ggf. doch an alle Dokumente kommen könnte?
Ich würde ansonsten die Entwicklungs-VM auf enaio Version 9.10 / 10.10 anheben und das Verhalten erneut testen.
Danke vorab und viele Grüße
Benjamin