2

我们在 Exact Online 中有几千家公司,其中一定比例的公司经营自己的会计并拥有自己的许可证。但是,每天都有一群公司在向 Exact 付款,因此他们的公司被封锁了。

对于所有公司,我们运行 Invantive Data Replicator 将所有 Exact Online 公司复制到 SQL Server 数据仓库中,以进行分析报告和持续监控。

SystemDivisions表中,state这样一个被封锁的公司的 仍然是 1(活跃)。它不会更改为 2(存档)或 0(即将到来)。过去也没有设定任何结束日期。

但是,当通过 Invantive SQL 的查询或直接从 Python 对此类受阻公司的查询使用 XML 或 REST API 时,会出现很多模糊的错误消息。

目前,我们必须每天单独打开每个在复制过程中出现错误的公司,并检查 Exact 的块是否导致错误以及原因是什么。

似乎没有办法检索被封锁公司的名单。

有替代方案吗?

4

1 回答 1

2

尽管不支持也不建议这样做,但您可以使用本机请求访问 Exact Online 中有限数量的屏幕。有传言说这不是所有屏幕都可以做到的。

不过,你很幸运。可以使用以下查询请求公司的冻结状态:

insert into NativePlatformScalarRequests(url, orig_system_group)
select /*+ ods(false) */ 'https://start.exactonline.nl/docs/SysAccessBlocked.aspx?_Division_=' || code
,      'BLOCK-DIV-CHECK-' || code
from   systemdivisions

create or replace table currentlyblockeddivisions@inmemorystorage
as
select blockingstatus
,      divisioncode
from   ( select regexp_replace(result, '.*<table class="WizardSectionHeader" style="width:100%;"><tr><th colspan="2">([^<]*)</th>.*', '$1', 1, 0, 'n') blockingstatus
         ,      replace(orig_system_group, 'BLOCK-DIV-CHECK-', '') divisioncode
         from   NativePlatformScalarRequests
         where  orig_system_group like 'BLOCK-DIV-CHECK-%'
       )
where  blockingstatus not like '%: Onbekend%'

请注意,当您在不同国家/地区运行时,需要替换带有“.nl”的超链接。搜索荷兰语术语“Onbekend”(英语中的“未知”)也是如此。

此查询运行数千个 HTTP 请求,每个请求屏幕都带有公司的阻塞状态。但是,当公司未被阻止时,屏幕会报告“未知”的原因。

这些具有“未知”原因的公司可能不会被阻止。剩下的就是。

于 2018-04-30T08:39:23.687 回答