FileMaker - 使用 php api 编辑容器字段并从 URL 脚本插入
FileMaker - editing container field using php api and Insert from URL script
我正在为 adding/editing/viewing FileMaker 数据库使用 php api。我在 windows 环境中使用 Filemaker pro 14 和 FMS 14。
我遇到了 adding/editing 容器字段的问题。尝试了下面link中给出的解决方案: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 returns 成功,但文件未插入容器字段。
有人向我指出,要使用 "Insert from 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 []
结果也是成功的,但是没有将文件插入容器字段。
我错过了什么?如何才能将容器数据添加到 new/old 记录?
一种可能的解决方法是使用 PHP 函数将文件编码为 base 64,并将该值设置为 FileMaker 中的文本字段。到达那里后,您可以使用自动输入或脚本来获取 base 64 值并将其解码为容器字段。这尤其适用于文件较小的文件。
我正在为 adding/editing/viewing FileMaker 数据库使用 php api。我在 windows 环境中使用 Filemaker pro 14 和 FMS 14。
我遇到了 adding/editing 容器字段的问题。尝试了下面link中给出的解决方案: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 returns 成功,但文件未插入容器字段。
有人向我指出,要使用 "Insert from 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 []
结果也是成功的,但是没有将文件插入容器字段。
我错过了什么?如何才能将容器数据添加到 new/old 记录?
一种可能的解决方法是使用 PHP 函数将文件编码为 base 64,并将该值设置为 FileMaker 中的文本字段。到达那里后,您可以使用自动输入或脚本来获取 base 64 值并将其解码为容器字段。这尤其适用于文件较小的文件。