Email 如何使用Siebel服务器脚本发送长电子邮件?
简言之:当电子邮件正文超过40.960个字符时,如何使用Siebel的Email 如何使用Siebel服务器脚本发送长电子邮件?,email,siebel,Email,Siebel,简言之:当电子邮件正文超过40.960个字符时,如何使用Siebel的通信出站电子邮件buscomp发送电子邮件?我可以使用出站通信管理器BS(或另一个),但我也需要创建活动记录 在Siebel 7.8中,您可以通过几种不同的方式发送电子邮件: 按F9打开发送通信小程序,其中发送按钮调用基础BC通信出站电子邮件→ EmailSend方法:发送电子邮件并创建新的活动记录(S_EVT_ACT和S_EVT_MAIL表)。电子邮件正文没有长度限制 从服务器脚本中,可以使用。它也没有长度限制,但是它不会
通信出站电子邮件
buscomp发送电子邮件?我可以使用出站通信管理器
BS(或另一个),但我也需要创建活动记录
在Siebel 7.8中,您可以通过几种不同的方式发送电子邮件:
发送通信小程序
,其中发送按钮调用基础BC通信出站电子邮件
→ EmailSend
方法:发送电子邮件并创建新的活动记录(S_EVT_ACT
和S_EVT_MAIL
表)。电子邮件正文没有长度限制var psOut:PropertySet=TheApplication().NewPropertySet();
var psIn:PropertySet=TheApplication().NewPropertySet();
psIn.SetProperty(“处理模式”、“远程”);
psIn.SetProperty(“字符集”、“iso-8859-1”);
psIn.SetProperty(“CommProfile”,来源于);
psIn.SetProperty(“MsgToList”,至);
psIn.SetProperty(“MsgSubject”,主体);
psIn.SetProperty(“MsgHTMLBody”,body);
var bs:Service=TheApplication().GetService(“出站通信管理器”);
bs.InvokeMethod(“发送消息”,psIn,psOut);
EmailSend
方法来复制F9行为。问题是无法设置长度超过40.960个字符的显示电子邮件正文值,否则会出现SBL-DAT-00235
错误
var-bo:BusObject=TheApplication().GetBusObject(“服务请求”);
var bc:BusComp=bo.GetBusComp(“通信出站电子邮件”);
不列颠哥伦比亚省新记录(NewAfter);
SetFieldValue(“电子邮件格式”、“HTML/纯文本”);
bc.SetFieldValue(“电子邮件字符集”、“iso-8859-1”);
bc.SetFieldValue(“电子邮件发件人地址”,发件人);
bc.SetFieldValue(“电子邮件发件人名称”,发件人);
bc.SetFieldValue(“发送至行的电子邮件”,发送至);
bc.SetFieldValue(“描述”,主题);
bc.SetFieldValue(“显示电子邮件正文”,正文);//如果body.length>40960,则将失败
bc.WriteRecord();
bc.调用方法(“电子邮件发送”);
为什么我在显示电子邮件正文
中被限制为40.960个字符(这个数字来自哪里?),而F9小程序没有这个限制?我知道这个领域很特别;首先,该字段的最大长度为1.024.000(而不是40.960…)。为此,定义了(无值)。此外,它没有映射到任何列:它是一个计算字段,但没有计算表达式;我猜BC的CSSBCOutMail
类管理它。但是,无论我是从脚本还是从applet使用它,都应该是一样的。为什么不是,我应该在任何地方更改任何东西来启用它
我的要求是从服务器脚本发送长电子邮件,但我也需要创建活动记录。在调用出站通信管理器时,是否可以设置任何隐藏参数→ <代码>发送消息
,以便创建活动记录?或者,如果我使用bc.SetFieldValue(“显示电子邮件正文”,aVeryLongEmailBody),则可以使用任何方法避免错误代码>?我在Oracle支持网站上找到,它回答了一个类似的问题:
客户正在使用Outbound Communications Manager业务服务方法SendMessage从工作流发送电子邮件,并希望保留活动记录或查看使用此方法发送的电子邮件
他们提供的解决方法与我们使用的方法相同:使用Comm出站电子邮件创建活动记录。但是,它们使用入站电子邮件数据库操作
业务服务,而不是直接使用一个新记录和一组setfieldvalue进行操作:
var psOut:PropertySet=TheApplication().NewPropertySet();
var psIn:PropertySet=TheApplication().NewPropertySet();
psIn.SetProperty(“BusObj”,“邮件代理活动”);
psIn.SetProperty(“总线通信”、“通信出站电子邮件”);
psIn.SetProperty(“字段:描述”,主题);
psIn.SetProperty(“字段:显示电子邮件正文”,正文);
psIn.SetProperty(“字段:电子邮件发件人地址”,fromAddress);
psIn.SetProperty(“字段:电子邮件发件人名称”,fromProfile);
psIn.SetProperty(“字段:电子邮件至行”,至地址);
var bs:Service=TheApplication().GetService(“入站电子邮件数据库操作”);
bs.调用方法(“插入记录”,psIn,psOut);
var error=psOut.GetProperty(“ErrorMessage”);//”“如果一切顺利的话
var actId=psOut.GetProperty(“ID”);
这样做可以避免奇怪的40960个字符限制
如果有人需要它,显然在BS定义中还有一个UpdateRecord
方法。参数类似:BusObj
和BusComp
,Id
(要更新的记录的行Id),以及要更改的每个字段的字段:字段的名称