0

使用如下查询,您将获得 Exact Online 所需的 XML 格式的输出。

这些 XML 消息可以使用以下方法放入磁盘上的许多文件中:

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

然后使用以下命令加载到 Exact Online 的当前部门:

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

这适用于一个部门,但在加载 100 个部门/公司时就不行了。

如何直接将 SQL 中的数据同时加载到多个公司/部门,而不是使用单独的local eol batch import xml语句和use DIVISIONCODE语句?

查询样本:

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="'
...
4

1 回答 1

1

您可以使用UploadXMLTopics中所述的以下语法,通过一个语句上传到多个公司/部门:

insert into UploadXMLTopics@eol
( topic
, payload
, division_code
)
select topic
,      filecontents
,      division_code
from   ...

即使一个或多个上传失败,插入也不会报告错误并处理所有 XML 消息。

之后您可以使用以下命令查看结果:

select *
from   UploadXMLTopics

该列SUCCESSFUL指示有效负载列是否已成功加载。

RESULT栏目中你会看到Exact Online的返回信息,例如:

<?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>
于 2016-12-09T08:09:43.203 回答