DXL Import Bug für DateTime field kind="time"?

  • Hallo zusammen!
    In R6 ging/geht mein Code noch. Unter R7 nicht.


    Ich erzeuge (per DXL) ein Form und ein Datumsfeld, Anzeige "nur Zeit".
    Das fertige Form enthält zwar den richtigen Timepicker, aber egal was ich wähle, es zeigt das heutige Datum an.
    Das Export Tool zeigt mir exakt den gleichen XML-Code an, wenn ich das Form händisch erstelle.
    Witzigerweise (gleicher Export Code) verschwindet der Fehler, sobald ich den 2 Reiter der Feld-Properties aufrufe und dann speichere (zumindest für das eine Datumsfeld).


    Ich habe es mal mit einer angpassten 6er DTD probiert, gleiches Problem.


    Kann mir jemand den Bug bestätigen? Habe nix in den Hotfixes oder SPRs gefunden.


    Hier ein kleiner Bspl-Code auf das Wesentlichste gekürzt, daher bitte einfach mal ein leeres Form "0Test" anlegen und einen Ansichts-Aktionsbutton mit folgendem Inhalt drücken:


    Sub Click(Source As Button)
    Dim ns As New NotesSession
    Dim db As notesdatabase
    Dim vw As notesview
    Dim nc As NotesNoteCollection
    Dim doc As NotesDocument
    Dim exporter As notesdxlexporter
    Dim parser As notesdomparser
    Dim importer As notesdxlimporter
    Dim strID As String


    Set db = ns.CurrentDatabase
    Set nc = db.CreateNoteCollection(False)
    nc.SelectForms = True
    'Bitte ein leeres Form anlegen, ich erstelle keins, weil ich hier RTF-Copies mache, die in DXL nicht gehen...:
    nc.SelectionFormula = {$Title ="0Test"}
    Call nc.BuildCollection
    strID = nc.GetFirstNoteId
    Set doc= db.GetDocumentByID(strID)


    Set exporter = ns.CreateDXLExporter
    Set parser = ns.CreateDOMParser()
    Set importer = ns.CreateDXLImporter
    Call exporter.SetInput(doc)
    Call exporter.SetOutput(parser)
    Call parser.setOutput(importer)
    Call importer.SetOutput(db)
    importer.ReplaceDBProperties = False
    importer.DesignImportOption = DXLIMPORTOPTION_REPLACE_ELSE_CREATE
    importer.ReplicaRequiredForReplaceOrUpdate = False


    On Event PostDOMParse From parser Call ParseEvent
    Call exporter.process
    End Sub


    Sub ParseEvent(source As notesdomparser)
    Dim domdoc As notesDOMDocumentNode
    Dim NodeList As NotesDOMNodeList
    Dim parNode As NotesDOMElementNode
    Dim runNode As NotesDOMElementNode
    Dim fontNode As NotesDOMElementNode
    Dim fieldNode As NotesDOMElementNode
    Dim datetimeformatNode As NotesDOMElementNode
    '%REM


    Set domdoc = source.Document


    Set NodeList = domdoc.GetElementsByTagName("par")
    Set parNode = NodeList.GetItem(1)
    'Set runNode = domdoc.CreateElementNode("run")
    'Set fontNode = domdoc.CreateElementNode("font")
    'Call fontNode.SetAttribute("size", "10pt")
    'Call runNode.appendChild(fontNode)


    Set fieldNode = domdoc.CreateElementNode("field")
    Call fieldNode.SetAttribute("usenotesstyle", "false")
    'Call fieldNode.SetAttribute("height", "0.2500in")
    'Call fieldNode.SetAttribute("width", "0.7in")
    'Call fieldNode.SetAttribute("multiline", "true")
    'Call fieldNode.SetAttribute("borderstyle", "none") 'do not work in R6, not necessary in R7
    Call fieldNode.SetAttribute("type", "datetime")
    'Call fieldNode.SetAttribute("kind", "editable")
    Call fieldNode.SetAttribute("name", "MyDateTime")
    Call parNode.appendChild(fieldNode)
    Set datetimeformatNode = domdoc.CreateElementNode("datetimeformat")
    Call datetimeformatNode.setAttribute("show", "time")
    'Call datetimeformatNode.setAttribute("date", "yearmonthday")
    'Call datetimeformatNode.setAttribute("fourdigityearfor21stcentury", "true")
    Call datetimeformatNode.SetAttribute("time", "hourminute")
    'Call datetimeformatNode.setAttribute("zone", "never")
    Call fieldNode.appendChild(datetimeformatNode)


    '%END REM
    Call source.serialize


    End Sub



    Ich habe mal alles ausgeremt, was ich mal für nötig hielt...
    Macht sich jemand mal die Mühe? Wäre echt nett...
    Danke im Voraus...


    Mit fröhlichen Grüssen.

  • hmm, ich find hier keinen Edith-Button, also schreibe ich mal eine Antwort:


    Also, soviele Leser, so wenig Antworten:
    Ist die Frage unverständlich?
    Konnte das mal jemand nachvollziehen?


    Kurzanleitung:
    Neue db anlegen, leere Maske "0Test" anlegen, Script in Aktion kopieren in Default-Ansicht, Button drücken und im Designer Notesvorschau für das Form, im Notes-Client dann Time picken und stattdessen Datum erhalten.


    Datumsfeld löschen.


    Gleiches im 6er.


    sollte eine Zeit liefern.


    Oder kann mir jemand sagen, wo ich das als Bug melden kann ohne Warrant# oder Passport-Advantage-Vertrag?


    Irgendwelche Kommentare?


    Danke und Grüsse

    • Offizieller Beitrag

    ich glaube es bringt Dir nix, wenn ich Dir schreibe, dass ich das Problem nicht nachvollziehen kann, da ich noch 6.x verwende.


    Gruß
    Dirk


    %edit
    Mist jetzt habe ich es doch geschrieben.

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Ist doch schon mal ein Feedback.
    Sicher kannst Du mir aber sagen, wie ich meine Beiträge nachträglich editieren kann?


    Findnix & Raffnix


    Edith: und ich dachte schon ich wäre zu blöd den Button zu finden


    Danke!

    • Offizieller Beitrag

    geht nur eine bestimmte Zeit (15 Min glaube ich).


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein