step 1, active the E-mail Transports in Admin Console,
step 2, configure a message type and make it a record in the profile table,
insert into msgtypes(msgtype_id,msgtdir,name,viewname,description) values((select max(msgtype_id)+1 from msgtypes),1,'EmailToFriend','EmailToFriendView','Email Content to a friend about what you want to recommand');
insert into profile(profile_id,store_id,devicefmt_id,transport_id,msgtype_id,usersview,lowpriority,highpriority,archivemsg) values((select min(profile_id)-1 from profile),0,-3,1,(select max(msgtype_id) from msgtypes),'N',0,3,0);
step 3, configure the struts,(here the forward jsp can be changed to a specific format jsp)
<forward className="com.ibm.commerce.struts.ECActionForward" name="EmailToFriendView/10151/-3" path="/Test/TestOutput.jsp">
<set-property property="implClassName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/>
<set-property property="interfaceName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommand"/>
</forward>
<action path="/EmailToFriendView" type="com.ibm.commerce.struts.BaseAction">
</action>
step 4, Configure the access control for EmailToFriendView
insert into acaction ( acaction_id, action) values ( (select min(acaction_id) - 1 from acaction), 'EmailToFriendView');
insert into acactactgp (acaction_id, acactgrp_id) values ( (select acaction_id from acaction where action = 'EmailToFriendView'), (select acactgrp_id from acactgrp where groupname = 'AllSiteUsersViews'));
step 5, Customize SendEmailCmd to record data in msgstore table.
接口:
package com.petco.commerce.endeca.commands;
import com.ibm.commerce.command.ControllerCommand;
public interface SendEmailCmd extends ControllerCommand { public static final String CLASSNAME = SendEmailCmd.class.getName(); static final String defaultCommandClassName= CLASSNAME+"Impl"; public void setMsgName(String msgName); public void setEmail(String email); public void setSubject(String subject); public void setSender(String sender); }
|
实现类:
package com.petco.commerce.endeca.commands;
import com.ibm.commerce.command.CommandContext; import com.ibm.commerce.command.ControllerCommandImpl; import com.ibm.commerce.datatype.TypedProperty; import com.ibm.commerce.exception.ECException; import com.ibm.commerce.messaging.outboundservice.Messaging; import com.ibm.commerce.ras.ECTrace; import com.ibm.commerce.ras.ECTraceIdentifiers;
public class SendEmailCmdImpl extends ControllerCommandImpl implements SendEmailCmd {
private String msgName; private String email; private String subject ; private String sender ;
@Override public boolean isGeneric() { // TODO Auto-generated method stub return super.isGeneric(); }
@Override public void setRequestProperties(TypedProperty reqProperties) throws ECException { // TODO Auto-generated method stub super.setRequestProperties(reqProperties); }
@Override public void performExecute() throws ECException { // TODO Auto-generated method stub super.performExecute(); String methodName = "performExecute"; ECTrace.entry(ECTraceIdentifiers.COMPONENT_EXTERN, this.getClass() .getName(), methodName); //Test code segment begin // String email = "TestEmailContent"; // String userId = "-1000"; // CommandContext cmdClone = (CommandContext) getCommandContext().clone(); // cmdClone.setLanguage(getCommandContext().getLanguage()); // cmdClone.setLanguageId(getCommandContext().getLanguageId()); // cmdClone.setLocale(getCommandContext().getLocale()); // cmdClone.setStoreId(getStoreId()); // Messaging m = new Messaging("EmailToFriend", getStoreId()); // m.setConfigData("subject", "Email to friend"); // m.setConfigData("sender", ""); // m.setConfigData("recipient", email); // // TypedProperty prop = new TypedProperty(); // prop.put("userId", userId); // prop.put("email",email); // m.compose(null, cmdClone, prop); // m.sendTransacted(); //Test code segment end //Real code segment begin CommandContext cmdClone = (CommandContext) getCommandContext().clone(); cmdClone.setLanguage(getCommandContext().getLanguage()); cmdClone.setLanguageId(getCommandContext().getLanguageId()); cmdClone.setLocale(getCommandContext().getLocale()); cmdClone.setStoreId(getStoreId()); Messaging m = new Messaging(getMsgName(), getStoreId()); m.setConfigData("subject", getSubject()); m.setConfigData("sender", getSender()); m.setConfigData("recipient", getEmail());
TypedProperty prop = new TypedProperty(); prop.put("userId", getCommandContext().getUserId()); prop.put("email",getEmail()); m.compose(null, cmdClone, prop); m.sendTransacted(); //Real code segment end ECTrace.exit(ECTraceIdentifiers.COMPONENT_EXTERN, this.getClass() .getName(), methodName); }
@Override public void validateParameters() throws ECException { // TODO Auto-generated method stub super.validateParameters(); }
public String getMsgName() { return msgName; }
public void setMsgName(String msgName) { this.msgName = msgName; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public String getSubject() { return subject; }
public void setSubject(String subject) { this.subject = subject; }
public String getSender() { return sender; }
public void setSender(String sender) { this.sender = sender; }
}
|
相关推荐
无线服务模块(WiSM)和WCS的配置指南
WCS Socket Server 完成以下功能:控制消息的发送/接收、解析收到的消息内容并发送给 WCS、将从 WCS 收到的需要发送给客户消息服务的消息整理发送、监视通讯异常并报警。 WCS 是一个功能强大且灵活的自动化仓库管理...
//WMS->WCS 发送任务 //{"cmd":101,"seq":1,"task_id":888,"src_station":1,"dest_station":1,"src_rack":1,"src_col":2,"src_row":3,"dest_rack":4,"dest_col":5,"dest_row":6,"weight":1,"barcode":"0000000000"} ...
通过Socket通信,WCS可以实时获取PLC的状态信息,发送控制指令,并接收反馈,确保整个仓储系统的高效运行。 **知识点详解:** 1. **WCS(Warehouse Control System)**:仓储控制系统是自动化仓库的核心组成部分,...
2. **数据传输**:连接建立后,WCS可以将命令或数据封装成TCP数据包,通过套接字发送给设备。设备接收到数据后,解包执行相应操作,并可能返回执行结果或状态信息。 3. **关闭连接**:完成通讯任务后,双方通过四次...
1. 设备控制:WCS需能够通信并控制各种仓库设备,如通过TCP/IP协议进行通讯,发送指令启动、停止、定位等操作。 2. 任务调度:根据库存状态和订单需求,WCS需智能规划设备的作业路径和顺序,以最小化搬运时间,提高...
在TIA Portal 2016中,用户可以方便地配置WCS-PNG210与S7-1200的通信参数,创建网络拓扑,并实现设备之间的数据交换,如读取传感器数据、发送控制命令等。 4. 西门子S7-1200 PLC S7-1200是西门子一款紧凑型PLC,...
3. **设备控制**:与AGV、RGV、ASRS等硬件设备进行实时通信,发送指令,控制其动作。 4. **状态监控**:监控所有设备的工作状态,及时发现并处理异常,保证系统稳定运行。 5. **数据采集与分析**:收集各类作业数据...
### CISCO WCS 产品配置指导及案例分析 #### 一、CISCO Wireless Control System (WCS) 概览 CISCO WCS(Wireless Control System)是CISCO为管理无线网络而设计的一套全面且功能强大的解决方案。该系统通过提供一...
OPC服务器是提供数据的设备或软件,而OPC客户端则从服务器获取数据,这样的架构使得WCS可以轻松地从各个设备收集实时状态信息并发送控制指令。 AGV(Automated Guided Vehicle)是自动化物流系统中的移动机器人,...
从给定的信息来看,主要涉及的是智能立体仓储设备WCS(Warehouse Control System)系统的研发相关内容。下面将根据标题、描述及部分无法完全识别的内容来详细阐述相关知识点。 ### 智能立体仓储设备WCS系统研发 ##...
《AP-WLC-WCS操作手册》是一份详细指导如何管理和操作无线网络设备的文档,主要涉及Autonomous AP(胖AP)和LightWeight AP(瘦AP)以及与之配套的无线控制器(WLC)和无线网络控制系统(WCS)。本文将深入解析其中...
通过高效的PLC与WCS之间的数据交互,WCS能够实时地向输送线PLC发送任务指令,使仓库操作能够迅速响应。这一过程确保了货物的按时入库、出库以及在仓库内部的有效移动,从而显著提升了整个物流系统的任务执行效率。 ...
### Web Coverage Service (WCS) – OGC 官方协议文档概述 #### 一、WCS与OGC的关系 Web Coverage Service(WCS)是一种由Open Geospatial Consortium(OGC)制定的标准协议,用于在网络上发布和获取地理空间覆盖...
综上所述,WCS2702电流检测传感器是一种高精度的电流测量设备,通过理解其工作原理、掌握操作流程和运用AT指令集,用户可以有效地利用该传感器监测电流状态,并根据需求进行定制化配置。提供的压缩包资源对于深入...
无论是在上位机向PLC发送指令,还是PLC向上位机报告状态,WCS和物流设备之间的通讯协议都由以下四部分组成: 1. **头字节**:单个字节0x28,用于标识一条消息的开始。 2. **尾字节**:单个字节0x29,用于标识一条...
### Cisco WCS 6.0 新功能及日常使用介绍 #### 一、Cisco WCS 6.0 概述 Cisco WCS (Wireless Control System) 6.0 是一款由思科系统公司开发的强大无线网络管理软件,它为用户提供了对整个无线局域网(WLAN)的...
这篇博客文章“修改WCS文件上传刷新间隔时间”似乎关注的是如何调整WCS服务的配置,以便改变数据上传后服务自动刷新的时间间隔。 在实际应用中,WCS可能被用于实时或近实时的数据更新场景,如气象观测数据、环境...
private OpcClient _Opc; private string OpcServerName = McConfig.Instance.OpcServerName; private string OpcServerHost = McConfig.Instance.OpcServerHost; private string ...WCS程序输送线OPC通信
在 WCS 系统中,通过 SOCKET 实现AGV与服务器之间的实时通信,例如发送指令、接收状态反馈、更新车辆位置等。开发者需要了解TCP/IP协议栈的工作原理,以及如何在客户端和服务器端创建和管理 SOCKET 连接。 【运输车...