0

我在一家中型在线时尚公司工作,我们有一个非常大的报告,我们使用 FM 服务器端脚本导出,大约 75 个字段/15k 记录。

我遇到的问题,正如你想象的那样——这需要很长时间!我们有很多计算字段,在导出之前在脚本中执行查找、替换等操作,为了每天用新数据构建和更新报告,我还应该说明,还有很多来自其他表的相关数据出口。

我非常清楚这不会是一个快速的出口,但是如果有人对如何最大限度地减少出口时间有任何建议,我将不胜感激。目前我们正在导出为 CSV,那么例如 XLSX 会更快吗?

任何关于如何加快速度的建议都将受到欢迎!

谢谢你-S

4

2 回答 2

0

导出缓慢的原因可能是相关字段和您正在导出的任何未存储的计算。您可以通过使用缓存字段、非相关、非计算字段来解决此问题,这些字段在导出之前通过Replace Field Contents在服务器上执行的各种脚本步骤进行更新。

将脚本分成三个脚本,Find Records to ExportUpdate CachesExport Report。它们看起来像这样:

Find Records to Export

Go to Layout [ "LayoutWithFieldsToReplace" ]
Enter Find Mode [ Pause: Off ]
Set Field [ TABLE::field ; // find criterion for this field ]
Set Field [ ...
Set Error Capture [ On ]
Perform Find []

Update Caches

Perform Script [ Find Records to Export ]
Replace Field Contents [ TABLE::cache_1 ; RELATED::field ]
Replace Field Contents [ TABLE::cache_2 ; TABLE::unstored_calc ]
Replace Field Contents [ ...

Export Report

Perform Script on Server [ Update Caches ]
Perform Script [ Find Records to Export ]
Export Records [ ...

我不确定 FileMaker 是否已更改为要求,但我认为您需要替换内容的字段在替换期间需要在布局上。因此,请确保您导航到的布局具有它们,在上面的脚本中,它们将是TABLE::cache_1and TABLE::cache_2

于 2018-05-11T15:57:47.150 回答
0

有点笼统的问题,可能更适合 FileMaker 用户论坛。

即使对于 FileMaker 来说,15k 的记录也不算多。

CSV 会比 Excel 导出更快,但我认为这不是你的问题

尝试将您的导出分成多个阶段并记录在每个阶段花费的时间。这将显示您需要优化的阶段。

于 2018-05-02T13:18:30.987 回答