• 脚本中发送消息,只能发送给系统用户

通过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);



  • 工作流脚本中的消息通知
    1. 消息组件的脚本中使用    inst.users(); 获得消息关联的所有用户(包括消息发送的指定用户,工作组中的用户和动态用户)
    2. 使用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