2016-12-09 1 views
0

以下のようなクエリを使用すると、Exact Onlineに必要なXML形式で出力されます。複数の完全オンライン企業にXMLペイロードをアップロード

これらのXMLメッセージを使用して、ディスク上の多くのファイルに入れることができます。その後、

local export documents in filecontents to "c:\temp\in" filename column filename 

そして使用して正確なオンラインの電流分割にロード:

local eol batch import xml "Accounts" in "c:\temp\in\Accounts" success "c:\temp\success" fail "c:\temp\fail" 

これは1つの部門の罰金に動作しますが、ではないがあなたが100の部門/会社を積み込むとき。

個別のlocal eol batch import xmlステートメントとuse DIVISIONCODEステートメントを使用する代わりに、SQLから複数の企業/部門に同時にデータを直接ロードするにはどうすればよいですか?

クエリのサンプル:

select 'Accounts\010-Accounts.xml' 
     filename 
,  stg.fileprefix 
     || chr(13) 
     || '<Accounts>' 
     || xml 
     || chr(13) 
     || '</Accounts>' 
     || stg.filepostfix 
     filecontents 
from (select listagg 
       (chr(13) 
        || '<Account code="' 
        || xmlencode(custsupid) 
        || '" status="' 
... 

答えて

1

あなたはUploadXMLTopicsに説明するように、次の構文を使用して1文で複数の企業/部門にアップロードすることができます:

insert into [email protected] 
(topic 
, payload 
, division_code 
) 
select topic 
,  filecontents 
,  division_code 
from ... 

アップロードの一つ以上が故障した場合でもインサートはエラーを報告せず、すべてのXMLメッセージを処理しません。

あなたは後で使用して結果を見ることができます:

select * 
from UploadXMLTopics 

SUCCESSFULは、ペイロード列が正常にロードされたかどうかを示します。

<?xml version="1.0" encoding="utf-8"?> 
<eExact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="eExact-XML.xsd"> 
    <Messages> 
     <Message type="0"> 
      <Topic code="FinYears" node="FinYear" /> 
      <Date>2016-12-09T09:02:36</Date> 
      <Description>Kan boekjaar niet aanmaken: 2014 vanwege ontbrekende boekjaren. Het laagste boekjaar in Exact Online is 2016.</Description> 
     </Message> 
     <Message type="2"> 
      <Topic code="FinYears" node="FinYear"> 
       <Data key="2015" keyAlt="2015" /> 
      </Topic> 
      <Date>2016-12-09T09:02:37</Date> 
      <Description>Aangemaakt</Description> 
     </Message> 
    </Messages> 
</eExact> 
:あなたのような、正確なオンラインのリターン・メッセージを検索します RESULT列で

関連する問題