Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class SugarCRM:创建不带SOAP的带有附件的便笺?_Class_Attachment_Sugarcrm - Fatal编程技术网

Class SugarCRM:创建不带SOAP的带有附件的便笺?

Class SugarCRM:创建不带SOAP的带有附件的便笺?,class,attachment,sugarcrm,Class,Attachment,Sugarcrm,我在Lead Editview上有一个自定义按钮,当点击它时(通过AJAX)会生成一个发票号和一个带有相同编号的PDF 在下一步中,例程使用SOAP循环到Sugar并创建一个注释(连同PDF作为附件) 我的问题是我能否避免这个SOAP调用,并使用其他一些内部机制/类来做同样的事情?类似于 $invoice = new Note(); $invoice->create(....); ... 这可能吗?我在任何地方都找不到任何文档。。。所有的道路似乎都指向SOAP。如果您的Ajax调用正在执

我在Lead Editview上有一个自定义按钮,当点击它时(通过AJAX)会生成一个发票号和一个带有相同编号的PDF

在下一步中,例程使用SOAP循环到Sugar并创建一个注释(连同PDF作为附件)

我的问题是我能否避免这个SOAP调用,并使用其他一些内部机制/类来做同样的事情?类似于

$invoice = new Note();
$invoice->create(....);
...

这可能吗?我在任何地方都找不到任何文档。。。所有的道路似乎都指向SOAP。

如果您的Ajax调用正在执行db更新/保存操作,那么您可以在保存后使用
逻辑钩子

编辑:例如:您可以试用此代码,查看
/modules/Notes/Note.php

$note = new Note();
$note->modified_user_id = $current_user->id;
$note->created_by = $current_user->id;
$note->name = 'New';
$note->parent_type = "Accounts";
$note->parent_id = $bean->parent_id;
$note->description = $bean->description;
$note->save();
就附件而言,这有点棘手。Sugar希望附件是上载文件对象。查看
/modules/Notes/controller.php
函数
action\u save()
/include/upload\u file.php

$note = new Note();
$note->modified_user_id = $current_user->id;
$note->created_by = $current_user->id;
$note->name = 'New';
$note->parent_type = "Accounts";
$note->parent_id = $bean->parent_id;
$note->description = $bean->description;
$note->save();
HACK:这不是正确的方法,但它是有效的。只需对上面的代码稍加修改,巧妙地使用
move
功能,就可以使附件正常工作。Sugar将附件存储在
cache/upload
文件夹中,并带有所创建便笺的ID

$note->filename = "Yourfilename.txt" //your file name goes here
$note->file_mime_type = "text/plain"  // your file's mime type goes here
$new_note_id = $note->save();

move(your_file_location, cache/upload/$new_note_id)
//don't add a extension to cache/upload/$new_note_id


备注:未经测试的代码

你好,Anand,我知道after_save,我在几个地方使用它。然而,在本例中,我试图通过实例化一个NOTE对象并使用任何members方法来创建便笺并向其附加一个文件,而不是通过SOAP来创建便笺。谢谢Anand。错过了你的更新。我会尽快给你回复。代码看起来很有希望:)尝试了创建注释的部分。就像一个魔咒,可以节省一整条额外的肥皂往返行程谢谢你,伙计。将播放文件移动并让您知道。完美!你的文件黑客工作了100%-而不必乱动任何上传文件例程。干杯如果你还在的话,这是一个补充问题。您认为是否可以采用相同的方法创建包含此文件作为附件的草稿电子邮件?