我尝试在vtiger中设置工作流程,以便在发票具有特定状态后将发票导出为pdf。
要做到这一点,我正在考虑使用"调用自定义函数"。有一个documentation on it,但不清楚,例如:where /哪个文件注册事件管理器?
我还发现the same questions实际上是由另一个人提出并解决的,但当我在帖子中打开链接时,它指示我找不到页面"错误。
答案 0 :(得分:2)
require_once 'include/utils/utils.php';
require 'modules/com_vtiger_workflow/VTEntityMethodManager.inc';
$emm = new VTEntityMethodManager($adb);
//$emm->addEntityMethod("Module Name","Label", "Path to file" , "Method Name" );
$emm->addEntityMethod("Invoice", "Update Inventory", "include/InventoryHandler.php", "handleInventoryProductRel");
在php文件中添加这些代码行替换为您的模块名称,标签,路径,方法名称,并将文件添加到vtiger实例,运行该文件。它将添加到数据库表“com_vtiger_workflowtasks_entitymethod”中。您现在可以在特定模块的工作流程部分中使用您的调用自定义函数。
答案 1 :(得分:0)
根据“之前的答案”完成所有操作
<?php
require_once 'include/utils/utils.php';
require 'modules/com_vtiger_workflow/VTEntityMethodManager.inc';
$emm = new VTEntityMethodManager($adb);
#addEntityMethod("Module", "LABEL", "FILENAME", "FUNCTION_NAME");
$emm->addEntityMethod("Accounts", "Update Account","modules/Accounts/updateAccountData.php", "updateAccountData");
?>
2-此文件由http://IP/registerworkflow.php执行 我可以在自定义脚本中看到更新帐户 3-创建简单功能
<?php
function updateAccountData($entity){
$file = '/tmp/people.txt';
$current = file_get_contents($file);
$current .= "John Smith\n";
file_put_contents($file, __LINE__.':'.print_r($current, true)."\r\n");
}
?>
4文件/tmp/people.txt由我和777 chmod创建 5-添加了电子邮件发送以测试工作流程已执行 (因此第一步执行更新帐户功能第二封电子邮件) 但是奇怪的是我可以接收电子邮件,但脚本不能将数据放入测试文件