通过脚本将文档的文件夹导入容器字段



Im正在运行Filemaker Server 19和Filemaker 19客户端

我有一个管理文档模板的应用程序,即Word文档

每个文档模板主记录都包含有关该模板的信息,并连接到一个文档示例表,该表包含一个Word文档(模板(和一个PDF文档(使用时模板文件的输出,有点像邮件合并(。

我们最近更新了我支持的系统(不是Filemaker系统(,数百个Word模板已经更新。如果我必须在一个会话中执行一个或两个操作,那么将每个模板的最新版本拖动到Container字段非常简单;但最近我不得不非常快速地进行10s/100s的文档更新,以便将它们输入我们的系统。我已经把所有Word文档的副本放在Mac上的一个文件夹里了。它们都有一个唯一的名称和一个格式为1234doctemplate01的唯一模板id。因此,1234相当于我数据库中的文档模板ID,文件名也反映在数据库中的"模板名称"字段中。

因此,我的问题是如何构建一个脚本,一次遍历数据库一条记录,并检查每个记录的Mac文件夹,看看是否有匹配的文档名称,如果有,则将其粘贴/复制到适当的Container字段中

有人能给我建议吗?如果不太清楚,可以提供更多细节

我会做一些稍微不同的事情:

将文件夹中的所有文件导入到新表中(请参阅https://help.claris.com/en/pro-help/content/importing-folder.html)并根据匹配的模板ID或名称在该表和现有表之间创建关系。

然后,您可以循环任一表中的记录,如果找到匹配项,则替换现有容器中的数据。或者,您可以将其作为一个永久结构,将文件存储在相关记录中。

如果只使用Filemaker的内置工具(如果文件夹不在Documents文件夹中,则完全不可能(,按照您建议的方式进行操作会很尴尬。如果您使用插件(例如BaseElements(来读取文件夹的内容,可能会更容易一些。

您可以使用基本元素插件在具有的文件夹中选择多个文件

BE_FileSelectDialog 

或者检查是否存在带有的文件

BE_FileExists

然后循环列表,通过将每个文件插入容器

set field ["your_container" ; BE_FileImport ( $file )]

最新更新