将 XML 有效负载上传到多个 Exact Online 公司
Upload XML payload into multiple Exact Online companies
使用如下查询,您将获得 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 个时就不行了 divisions/companies。
如何直接将数据从 SQL 同时加载到多个 companies/divisions 而不是使用单独的 local eol batch import xml
语句和 use DIVISIONCODE
语句?
查询示例:
select 'Accounts0-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="'
...
您可以使用 UploadXMLTopics 中描述的以下语法通过一条语句上传到多个 companies/divisions:
insert into UploadXMLTopics@eol
( topic
, payload
, division_code
)
select topic
, filecontents
, division_code
from ...
即使一个或多个上传失败,插入也不会报告错误并处理所有 XML 条消息。
之后您可以使用以下命令查看结果:
select *
from UploadXMLTopics
SUCCESSFUL
列表示payload列是否加载成功
在RESULT
栏中可以找到Exact Online的return消息,例如:
<?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>
使用如下查询,您将获得 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 个时就不行了 divisions/companies。
如何直接将数据从 SQL 同时加载到多个 companies/divisions 而不是使用单独的 local eol batch import xml
语句和 use DIVISIONCODE
语句?
查询示例:
select 'Accounts0-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="'
...
您可以使用 UploadXMLTopics 中描述的以下语法通过一条语句上传到多个 companies/divisions:
insert into UploadXMLTopics@eol
( topic
, payload
, division_code
)
select topic
, filecontents
, division_code
from ...
即使一个或多个上传失败,插入也不会报告错误并处理所有 XML 条消息。
之后您可以使用以下命令查看结果:
select *
from UploadXMLTopics
SUCCESSFUL
列表示payload列是否加载成功
在RESULT
栏中可以找到Exact Online的return消息,例如:
<?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>