Wir haben eine ASP.NET-Anwendung mit einer InfoPath-Formularkomponente, die InfoPath-Formulare mithilfe von InfoPath Forms Server an den Browser sendet. Anstatt die Formulare in SharePoint zu speichern, senden wir die XML-Formulardaten an einen ASP.NET-Webdienst, der die Daten als XML-Datentyp in SQL Server 2005 speichert. Das funktioniert einwandfrei, und wir haben keine Probleme beim Laden der XML-Daten zurück in das InfoPath-Formular.Laden alter XML-Daten in eine neue Version des InfoPath-Formulars
Unser Problem kommt, wenn wir versuchen, alte Daten (von Version 1 des Formulars) in eine neue Version des Formulars (Version 2) zu laden. Diese neue Version des Formulars (V2) hat beispielsweise ein neues Textfeldfeld. Da das V2-Feld in der V1-XML nicht vorhanden ist, sind sie in der V2-Form sichtbar, aber deaktiviert und können nicht gefüllt werden.
Unsere Frage ist, wie laden V1 XML-Daten in V2-Formulare, und haben Sie den Benutzer in der Lage, die Felder, die jetzt in V2 des Formulars vorhanden sind, zu vervollständigen.
Dieses Verhalten ist mit InfoPath Forms Server und in einer Formularbibliothek gespeicherten Formularen möglich. Wenn Sie die Formularvorlage aktualisieren, können Sie alte Formulare in der neuen Vorlage öffnen, die neuen Felder anzeigen und Daten in den neuen Feldern speichern. Wir müssen wissen, wie es programmgesteuert durchgeführt wird, wenn die XML-Formulardaten in SQL Server und nicht in einer Formularbibliothek gespeichert werden.
Die Upgrade.XSL ist das Element, das wir vermisst haben - dieses muss aufgerufen werden, wenn InfoPath Formulardaten für ein Formular öffnet, das älter als die aktuelle Version ist. Gibt es eine Möglichkeit, dieses XSL über das InfoPath-Objektmodell zu erhalten, anstatt es manuell zu extrahieren und eine Transformation für die alten Daten auszuführen? –