FileMaker - 使用php api编辑容器字段和从URL脚本插入

时间:2016-05-17 23:00:27

标签: php scripting filemaker

我使用php api添加/编辑/查看FileMaker数据库。我在Windows环境中使用Filemaker pro 14和FMS 14。

我在添加/编辑容器字段时遇到问题。尝试了以下链接中给出的解决方案:https://community.filemaker.com/thread/66165 这是成功的。 FM脚本是:

Goto Layout[ The layout that shows your container field ]
New Record/Request
Set Variable[$url ; Value:Get(ScriptParameter)]
Insert from URL [Select, No Dialog ; database_name::ContainerField ; $url]
Exit Script

我不想添加新记录。我在布局中有几个容器字段,因此它不是为每个字段添加记录的解决方案,我需要能够修改旧记录的容器字段。

我尝试按如下方式修改脚本:

Go to Layout ["products" (products)]
Go to Record/Request/Page [Last]
Open Record/Request
Set Variable [$url; Value: Get(ScriptParameter)]
Insert from URL [Select, No Dialog; products::brochure; $url]
Exit Script []

注意:(最后)参数只是实验性的。 php脚本如下:

$runscript = $fm->newPerformScriptCommand('products', 'addContainerData', 'http://link_to_uploded_file');
$result = $runscript->execute();

$ result返回成功,但文件未插入容器字段中。

有人指我使用“从URL插入”我必须指定一个记录ID。所以我做了以下事情: 将php脚本修改为:

$editCommand = $fm->newEditCommand('products', $recordID, $editedData);
$editCommand->setPreCommandScript('addContainerData', 'http://url_to_my_uploaded_file');
$result = $editCommand->execute();

和FM脚本(addContainerData)到

Set Variable [$url; Value: Get(ScriptParameter)]
Insert from URL [Select, No Dialog; products::brochure; $url]
Exit Script []

结果是成功但是没有将文件插入容器字段。

我错过了什么?怎么做才能将容器数据添加到新/旧记录?

1 个答案:

答案 0 :(得分:1)

可能的解决方法是使用PHP函数将文件编码为base 64,并将该值设置为FileMaker中的文本字段。在那里,您可以使用自动输入或脚本来获取基数64值并将其解码为容器字段。这适用于文件较小的文件。

相关问题