2017-09-28 4 views
0

anciantフォームを新しいバージョンで保存する方法。私は(フォームビルダ)を使用して、新しいフィールドを追加しました。その後 enter image description here enter image description here 、しかし、私はこのフォームが保存されて開いたとき:私は私たちのapplication.thisにフォームを保存した はビルダーとランナーに私のフォームの下の中のスクリーンショットです、私はフィールドが追加されていないことを発見した。 このスクリーンショットは、フォームの私の新しいバージョンを形成している:enter image description here を、これは私が持っていた結果である: enter image description hereORBEONでanciantフォームを新しいバージョンで保存する方法は?

EDIT Avernet @、私は、CRUDのAPIを使用し、私は2つを使用して手順に従っ

方法:

  1. は、最新のバージョン番号を課すことによって、フォームのXMLを取得します。

    => 2の代わりに古いバージョン1を入力した場合、エラーはありません。

  2. 古いバージョン

これは、エラーが発生したスタックトレースです:

|An Error has Occurred | |----------------------------------------------------------------------------------------------------------------------| |Fatal error: The markup in the document following the root element must be well-formed. | |----------------------------------------------------------------------------------------------------------------------| |Application Call Stack | |----------------------------------------------------------------------------------------------------------------------| |oxf:/ops/pfc/xforms-xml-submission.xpl |reading processor output | 111| |······················································································································| |element= | |name =data | |ref =instance | |----------------------------------------------------------------------------------------------------------------------| |oxf:/ops/pfc/xforms-xml-submission.xpl |reading processor output | 102| |······················································································································| |element= | |name =data | |id =raw-instance | |----------------------------------------------------------------------------------------------------------------------| |:/Users/fkammoun/AppData/Local/Temp/upload__5a2c8fe_15fbb88e967__8000_00000000.tmp| | 1| |----------------------------------------------------------------------------------------------------------------------| |Exception: org.orbeon.oxf.common.ValidationException | |----------------------------------------------------------------------------------------------------------------------| |org.orbeon.oxf.xml.XMLParsing$ErrorHandler |fatalError |XMLParsing.java | 221| |orbeon.apache.xerces.util.ErrorHandlerWrapper |fatalError | | | |orbeon.apache.xerces.impl.XMLErrorReporter |reportError | | | |orbeon.apache.xerces.impl.XMLErrorReporter |reportError | | | |orbeon.apache.xerces.impl.XMLErrorReporter |reportError | | | |orbeon.apache.xerces.impl.XMLScanner |reportFatalError | | | |.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher|dispatch | | | |n.apache.xerces.impl.XMLDocumentFragmentScannerImpl|scanDocument | | | |orbeon.apache.xerces.parsers.XML11Configuration |parse | | | |orbeon.apache.xerces.parsers.XML11Configuration |parse | | | |orbeon.apache.xerces.parsers.XMLParser |parse | | | |orbeon.apache.xerces.parsers.AbstractSAXParser |parse | | | |processor.generator.URLGenerator$URLResourceHandler|readXML |URLGenerator.java |1042| |org.orbeon.oxf.processor.generator.URLGenerator$1 |readImpl |URLGenerator.java | 545| |essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read |ProcessorOutputImpl.java | 257| |org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read |ProcessorOutputImpl.java | 394| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 262| |ssor.pipeline.PipelineProcessor$InternalTopOutput$1|run |PipelineProcessor.java | 535| |org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeParents |PipelineProcessor.java | 696| |org.orbeon.oxf.processor.pipeline.PipelineProcessor|access$400 |PipelineProcessor.java | 60| |cessor.pipeline.PipelineProcessor$InternalTopOutput|readImpl |PipelineProcessor.java | 531| |essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read |ProcessorOutputImpl.java | 257| |org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read |ProcessorOutputImpl.java | 394| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 262| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 266| |org.orbeon.oxf.processor.IdentityProcessor$1 |readImpl |IdentityProcessor.java | 33| |essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read |ProcessorOutputImpl.java | 257| |org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read |ProcessorOutputImpl.java | 394| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 262| |orbeon.oxf.processor.pipeline.PipelineProcessor$1$1|run |PipelineProcessor.java | 93| |org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren |PipelineProcessor.java | 679| |org.orbeon.oxf.processor.pipeline.PipelineProcessor|access$000 |PipelineProcessor.java | 60| |g.orbeon.oxf.processor.pipeline.PipelineProcessor$1|readImpl |PipelineProcessor.java | 91| |essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read |ProcessorOutputImpl.java | 257| |org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read |ProcessorOutputImpl.java | 394| |processor.pipeline.choose.ConcreteChooseProcessor$1|readImpl |ConcreteChooseProcessor.java | 126| |essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read |ProcessorOutputImpl.java | 257| |org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read |ProcessorOutputImpl.java | 394| |org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX |ProcessorImpl.java | 262| |orbeon.oxf.processor.pipeline.PipelineProcessor$1$1|run |PipelineProcessor.java | 93|

おかげで

+2

[mcve]を入力してください。 – izlin

答えて

0

これは設計によるもので、データベースfor which Orbeon Forms supports versioningを使用している場合、Orbeon Formsは新しいフォームを記入する際に使用されるフォーム定義のバージョンを追跡しています。そのデータを編集します。

これは、フォーム定義の新しいバージョンが以前のバージョンと互換性がない可能性があるために行われます。一般的に、古いバージョンのフォーム定義から新しいバージョンにデータを移行することは可能ですが、Orbeon Formsはこの移行を自動的に行う方法を認識していません。これが必要な場合は、データベースレベルで行う必要があります。

+0

ありがとうございます。はい、フォーム定義の古いバージョンのデータを新しいバージョンに移行する必要があります。日常のアクティビティに時間と経費を節約するために、以前に保存したデータを再利用できるようにしたいと考えています(たとえば、 、...)、Orbeonで保存された既存のファイルを複製します。フォーム定義が変更された場合(バグフィックス、エンハンスメント、...)、古いデータを再利用したいが新しいフォームバージョンを使用したい。だから、より正確にあなたの提案をすることができます«あなたはデータベースレベルでそれを行う必要があります。 »? XSL変換について考えましたか? – Lebki

+0

私はあなたの最善の策は、あなたが作る前に[CRUD API](https://doc.orbeon.com/form-runner/api/persistence/crud.html)を使って更新したいデータを読むことだと思います。同じCRUD APIを使用してXMLに変更を加え、それらを書き戻します。書いているとき、データを更新している新しいバージョンに 'Orbeon-Form-Definition-Version'を設定することができます。これがあなたのために働くかどうか私に知らせるでしょう。 – avernet

+0

あなたの応答のためにAvernetありがとう、私はそれを試してみると、それが動作するかどうか教えてあげるよ。 – Lebki

関連する問題