2017-03-24 9 views
0

産業用ソリューションで生成されたXMLデータは、XML APIを使用してExact Onlineにアップロードする新しいデータを使用して直接作成するか、UploadXmlTopicsテーブルを使用して正確なオンラインドライバ。XMLを正確なオンラインに最大サイズまたは応答時間を超えてアップロード

ただし、Exact Online XML APIには、およその制限があります。 10 MB /アップロードした場合でも、システムに負荷がかかるとロード時間が長くなることがあります。

ロード時間が10分を超えると、トランザクションの一部が適用され、部品が故障しています。タイムアウトを指定すると、ロードされているものが残っていることを示すメッセージは返されません。

XMLファイルは業界のソリューションによって自動的に生成されるため、変更できません。

XMLファイルをExact Onlineに確実にアップロードする最も良い方法は何ですか?

答えて

0

もちろん、XMLファイルを変更するのが最善ですが、さまざまな選択肢があります。まず、Exact Onlineのパフォーマンスは、日中と週末に異なることに注意してください。大量のデータをアップロードするのに最適な時間は、経験に基づいて、13:00〜23:00の間の日曜日です。

手動でアップロードする場合、XMLファイルを手作業で複数のXMLファイルに分割できます。常にメイントピックのパス/ eExact/TOPICに分割されます。

UploadXmlTopicsテーブルをアップロードする際、次の2つのアプローチを使用することができます正確なオンライン

のために計算されたアプローチは一つだけである

  • 計算
  • 自動

計算XMLのサイズは、古いバージョンで利用可能です。

  • メモリテーブルまたはファイルベースのテーブルでは、アップロードするXMLトピックごとにレコードを配置します。私は通常、列名として 'xml'という名前を付けます。
  • 次に使用して、インスタンスのために、あなたが必要とするどのように多くの断片を決定:

    select ceil(log(xmlsize/10000, 16)) + 1

    from (select sum(length(xml)) xmlsize from [email protected])

  • 最大フラグメントサイズで10000を交換してください。負荷の重い時は小さいものを選択し、週末の場合は1000000を選択してください。

  • は、例えば、使用結果を記憶:

    local define xmlaccountsparts "${outcome:0,0}"

  • そして次のようにUploadXmlTopicsに挿入する新しいXMLを構築:

    選択filenamepostfixを、XML LISTAGG、filenamepostfixを選択し(から( xml、 '')xml from(select substr(md5(xml)、1、$ {xmlaccountsparts})filenamepostfix 、xml from xmlaccounts @ inmemor グループfilenamepostfix によって )

  • ystorage )とUploadXMLTopicsを使用して正確なオンラインにこのペイロードを挿入します。

  • 効果的なことは、最初に、16を基数とする対数関数を使用して、必要なファイルの数を決定することです。次に、MD5を使用して、アップロードするXMLトピックごとにランダムに分布した16進数(16進数)の値を関連付けます。対数関数の結果に等しいMD5値の左側の文字の数を取って、それぞれがほぼ同じペイロードサイズを持つこの数のファイルを取得します。 XMLを再構築します。正確なオンライン

    新しいリリースのための

    自動XMLのサイズはあなたのために重い物を持ち上げるを行う自動フラグメントオプションを持っています。ロードされた断片を使用して照会することができ

    insert into [email protected] 
    -- 
    -- Upload seed data into Exact Online. 
    -- 
    (topic 
    , payload 
    , division_code 
    , orig_system_reference 
    , fragment_payload_flag 
    , fragment_max_size_characters 
    ) 
    select topic 
    ,  filecontents 
    ,  division_code 
    ,  filename 
    ,  true 
    ,  10000 /* This one is in characters. You can also specify in number. */ 
    from ... 
    

    select * 
    -- 
    -- Check results and reload. 
    -- 
    from [email protected] 
    

    をとのようになります。 Fragments XML uploaded to Exact Online

    のようなSQLを使用します

    関連する問題