消息发送
- 脚本中发送消息,只能发送给系统用户
通过request对象的两个方法
- public int sendWxMsgUser(String asAppId,Long aUserId,ObjTemplateMsg aMsg)
发送消息给用户,返回发送的消息id,如果userid,为null,表示直接发送消息,消息中必须携带openid,
成功返回1 失败0
- public int sendWxMsgWorkgroup(String asAppId,Long aWorkgroupID,ObjTemplateMsg aMsg)
发送消息给工作组,返回成功发送的用户数量
- public int sendWxMsg(String asAppId,ObjTemplateMsg aMsg)
在消息中指定openid发送消息 ,成功返回1 失败0
- public ObjTemplateMsg createWxMsg(String asTemplateId)
创建消息对象
- 微信模板消息对象
public class ObjTemplateMsg {
public String touser; //openid 目标用户,这里可以忽略,若没有指定userid必须指定此属性
public String template_id;//"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", 模板id 见微信公众号设置,必须提供
public String url;//http://weixin.qq.com/download, 点击打开订单网页,可以为空
public ObjMp miniprogram = new ObjMp(); 点击代开的小程序信息,可以为空
public String client_msg_id;//":"MSG_000001",//防重入id。对于同一个openid + client_msg_id, 可以为空
public void addProp(String asKey,String asValue,String color) { } //根据模板确定// 属性,值和颜色
public void addProp(String asKey,String asValue) { }//根据模板确定//属性,值
}
public static class ObjMp {//小程序信息
public String appid;//:打开小程序的id
public String pagepath;//:"pages/index/index?foo=bar" 打开小程序的路径
}
- 通过元数据定义,单据转换模式发送消息
类似单据转换定义在DATA属性下的活动。
<TRANSFER ACTION="WXTZ" INVISIBLE=""></TRANSFER>
DATA 属性中设定转化活动,放在ACTION菜单可见,放在INVISIBLE中菜单不可见,可以通过脚本调用
转化活动定义如下
<?xml version="1.0" encoding="GB2312"?>
<ACTION actionid="17803" ecode="WXTZ" createby="模型管理员" createtime="2022-10-09 22:05:32" modifyby="模型管理员" modifytime="2022-10-12 20:24:31" estatus="1" ename="微信通知">
<DEF>
<ACTION DISABLECMDS="" INSTCOMMAND="" FLOW="" REFENTITY="" RIGHT="">
<TRANSFER CODE="WXTZ" PARAMNAME="zcywid" PARAMVALUE="zcywid" CAPTION="业务申请审批通知" CONDITION="" TYPE="WXMSG" TEMPLATEID="FbmCzNo3vmV3GZ-U4gu-VdF_md8H6sBePxY_ZMM0G9Q" TOALL="TRUE" EDITNEW="FALSE">
<DATASET CODE="MAIN" ERI="..WXMSGDS" ALIAS="DEFAULT">
<FIELD SOURCE="_urlpath" TARGET="_urlpath"/>
<FIELD SOURCE="_mppath" TARGET="_mppath"/>
<FIELD SOURCE="_clientid" TARGET="_clientid"/>
<FIELD SOURCE="_tranid" TARGET="_tranid"/>
<FIELD SOURCE="_result" TARGET="_result"/>
<FFIELD SOURCE="_appid" TARGET="_appid"/>
<FIELD SOURCE="first" TARGET="first" DATA="TRUE"/>
<FIELD SOURCE="first_color" TARGET="first_color"/>
<FIELD SOURCE="keyword1" TARGET="keyword1" DATA="TRUE"/>
<FIELD SOURCE="keyword2" TARGET="keyword2" DATA="TRUE"/>
<FIELD SOURCE="keyword2_color" TARGET="keyword2_color"/>
<FIELD SOURCE="keyword3" TARGET="keyword3" DATA="TRUE"/>
<FIELD SOURCE="keyword4" TARGET="keyword4" DATA="TRUE"/>
<FIELD SOURCE="keyword5" TARGET="keyword5" DATA="TRUE"/>
<FIELD SOURCE="remark" TARGET="remark" DATA="TRUE"/>
</DATASET>
<DATASET CODE="SUB" ERI="..BROWSEDS" ALIAS="DEFAULT">
<FIELD SOURCE="_userid" TARGET="_userid"/>
</DATASET>
</TRANSFER>
</ACTION></DEF>
<MEMO></MEMO>
</ACTION>
- TOALL 是否发送给所有订阅者
- 中数据集必须为MAIN 子数据集必须为SUB,如果TOALL='TRUE'可以不包含SUB数据集
- 必须包含的字段固定字段
- _mppath";//可以为空 点击消息打开的小程序的路径
- _urlpath";//可以为空 点击消息打开网页的url
- _clientid";//可以为空 客户消息id字段,防止重复发送
- _tranid"; //可以为空 业务id,用于记录在发送结果表as_wxtopicresult的tranid字段
- _result ;//用于构造消息发送的结果描述字段值
- _appid //可以为空 公众号id字段
- _userid"; //目标用户id 来自于表 as_wxsubuser
- 脚本发送模板消息举例
var lMsg = request.createWxMsg('FbmCzNo3vmV3GZ-U4gu-VdF_md8H6sBePxY_ZMM0G9Q');
lMsg.addProp('first','首先说明')
lMsg.addProp('keyword1','key1')
lMsg.addProp('keyword2','key2')
lMsg.addProp('keyword3','key3')
lMsg.addProp('keyword4','key4')
lMsg.addProp('keyword5','key5')
lMsg.addProp('remark','备注说明这里是')
request.sendWxMsgUser("wx57e64f27146325ed",request.parser().userid(),lMsg);
- 脚本调用消息转换方发送消息
system.service("YWSQ.DATA").status(request,"WXTZ","get",flow.tranid);
- 工作流脚本中的消息通知
- 在消息组件的脚本中使用 inst.users(); 获得消息关联的所有用户(包括消息发送的指定用户,工作组中的用户和动态用户)
- 使用request.sendWxMsgUser(String asAppId,Long aUserId,ObjTemplateMsg aMsg) 来发送消息
举例 :
var lMsg = request.createWxMsg('FbmCzNo3vmV3GZ-U4gu-VdF_md8H6sBePxY_ZMM0G9Q');
lMsg.addProp('first','首先说明')
lMsg.addProp('keyword1','关键词1')
lMsg.addProp('keyword2','关键词2')
lMsg.addProp('keyword3','key3')
lMsg.addProp('keyword4','key4')
lMsg.addProp('keyword5','key5')
lMsg.addProp('remark','备注说明这里是')
request.sendWxMsgUser("wx57e64f27146325ed",inst.users(),lMsg);
Created with the Personal Edition of HelpNDoc: Free iPhone documentation generator