Das Feld fld_Test ist ein bearbeitbares Feld Typ Kontrollkästchen, Formel für Auswahl verwenden und fld_TestChoice (Mehrfachfeld) ist vorgegeben, außerdem Felder bei Schlüsselwortänderung aktualisieren. Aber auch eine Änderung und Vereinfachung an dieser Stelle bringt keine Verbesserung.
Jetzt habe ich noch festgestellt das der Fehler nur auftritt, wenn lediglich der if Zweig
If (TestItem Is Nothing) Then
Set TestItem=docOfUiDoc.ReplaceItemValue("fld_Test", Mid(docOfUiDoc.fld_TestChoice(i), Instr(docOfUiDoc.fld_TestChoice(i),"|")+1))
Set TestItem = docOfUiDoc.getFirstItem("fld_Test")
durchlaufen wird, sind in fld_TestChoice mehrere Werte und wird dadurch auch der Else Zweig durchlaufen funktioniert alles perfekt und alle Werte sind auch nach dem uidoc.save erhalten.
Daraufhin habe ich gedacht das es vielleicht durch das AppendTextList besser wird und habe auch wenn fld_TestChoice nur einen Wert enthält den selben Wert einfach nocheinmal angehangen:
If (TestItem Is Nothing) Then
Set TestItem=docOfUiDoc.ReplaceItemValue("fld_Test", Mid(docOfUiDoc.fld_TestChoice(i), Instr(docOfUiDoc.fld_TestChoice(i),"|")+1))
Set TestItem = docOfUiDoc.getFirstItem("fld_Test")
TestItem.appendToTextList(Mid(docOfUiDoc.fld_TestChoice(i), Instr(docOfUiDoc.fld_TestChoice(i),"|")+1))
Beim Debuggen sieht man nun das das Item zwei Values bekommt (im Backend) sobald man dann ein uidoc.save macht ist nur noch einer der beiden Werte erhalten. Eigentlich ist das ja genau das was ich auch erreichen möchte, nur traue ich mich nicht so recht die Sache so zu programmieren, weil das ja bedeuten würde das ich absichtlich einen Bug hineinprogrammiere, nur um einen anderen (IBM? Bug) zu vermeiden, den ich bis jetzt aber nicht mal richtig verstehe.