• 给外部人员(客户或者供应商联系人)发送消息步骤

  给外部人员发送消息,仅能通过用户企业自己的公众号对外发布消息。因此需要在系统门户配置公众号信息,然后再相应的系统中引用该公众号。

可以通过数据转换菜单,或者脚本的方式发送消息。 


1) 在业务系统中引用系统门户中定义的公众号(若使用拓跋公众号,系统门户中无需定义,这里直接使用即可)

在业务系统的微信公众号模块添加记录,必须保证appid与系统门户中配置的appid相同。 其他项目根据需要填写。 (若采用拓跋云公众号发送消息,必须使用拓跋公众号appid”



2) 添加微信消息主题,消息主题是用户希望获得通知的项目,其中主题类型,是系统能够自动生成的单据转换消息类型(数据集中查询的列值确定) ,因具体的业务系统而不同 


3)添加微信消息订阅分组,是消息主题的集合,用户通过订阅消息分组,订阅具体的消息主题。 明细中是本分组包含的所有主题。分组中指定了对应的公众号。




4) 在外部人员关联的档案中(客户或者供应商联系人),选择可订阅的消息分组,然后自动生成订阅id,外部人员可以凭借订阅id来订阅消息。  

订阅id是,系统识别码+','+分组代码+','+  用户代码,若修改用户代码,或者分组代码,订阅标识码变化,但是已有的订阅依然有效。 



5)引导外部人员订阅消息,


    在拓跋云公众号菜单中选择订阅消息,输入订阅id,进入选择主题,订阅说明中输入内容表明自己的身份,作为订阅者的名称保存。


系统中可以关闭分组,关闭主题,关闭订阅,关闭用户操作来停止消息订阅。 



  • 订阅类型

 在WXGROUP.SVR 中定义,用于明确系统中的消息分组类型。 每个分组类型对应一个数据集用于关联订阅者的身份。 

也就是说每个订阅者有明确的身份。 

<?xml version="1.0" encoding="GB2312"?>

<ATTRIBUTE attributeid="16600" ecode="SVR" createby="模型管理员" createtime="2023-05-23 09:18:33" modifyby="模型管理员" modifytime="2023-06-27 10:15:24" estatus="1" ename="微信消息订阅服务">

       <DEF>

               <ATTRIBUTE TYPE="DS/PR/PS/LR/LS" PROGID="WXTOPICS" SVRERI="" RELEASE="0~0~0" USERVERSION="1" createby="模型管理员" createtime="2023-05-23 09:18:33" modifyby="模型管理员" modifytime="2023-06-25 11:09:29" estatus="1" ENTITYID="9179" CODE="SVR" NAME="微信消息订阅服务" ID="16600" ENTITYNAME="微信消息分组">

                       <GROUP TYPE="XS" DATASET=".KHLXR.BROWSEDS" ALIAS="DEFAULT" PARAMNAME="ecode" USERIDFIELD="wxsubuserid"/>

                       TYPE 分组类型

                       DATASET  ALIAS 消息订阅者数据集

                       PARAMNAME  订阅者数据集中,订阅用户的代码参数,订阅标识中 (roomtype,groupcode,usercode )的usercod 作为参数值查询

                       USERIDFIELD  在订阅者数据集中,订阅者id的字段名称                        

                       <GROUP TYPE="CG" DATASET=".GYSLXR.BROWSEDS" ALIAS="DEFAULT" PARAMNAME="ecode" USERIDFIELD="wxsubuserid"/>

               </ATTRIBUTE></DEF>

       <MEMO></MEMO>

</ATTRIBUTE>


  • 消息发送单据的转换定义。

 1) DATA 属性定义

<?xml version="1.0" encoding="GB2312"?>

<ATTRIBUTE attributeid="16614" ecode="DATA" createby="模型管理员" createtime="2023-05-28 18:12:16" modifyby="模型管理员" modifytime="2023-06-27 10:15:41" estatus="1" ename="数据定义">

       <DEF>

               <ATTRIBUTE TYPE="PR" PROGID="" SVRERI="_PP.DAT.SVRDAT" RELEASE="0~0~0" USERVERSION="1" createby="模型管理员" createtime="2023-05-28 18:12:16" modifyby="模型管理员" modifytime="2023-06-25 11:09:46" estatus="1" ENTITYID="9180" CODE="DATA" NAME="数据定义" ID="16614" ENTITYNAME="订单进度通知">

                       <TABLES MAINTABLE="t_ddxxtz">

                               <TABLE CODE="t_ddxxtz" IDCOL="ddxxtzid"/>

                               <TABLE CODE="t_ddxxtzlxr" IDCOL="ddxxtzlxrid"/>

                       </TABLES>

                       <FIELDSEXP>

                               <ESTATUS EXPRESSION="FALSE=1~GRAY=7~TRUE=2"/>

                               <LOCKSTATUS EXPRESSION="TRUE=1~FALSE=0"/>

                               <CLOSESTATUS EXPRESSION="TRUE=1~FALSE=0"/>

                       </FIELDSEXP>

                       <FINALIZE FIELD="t_ddxxtz.trantime" DSERI="..BROWSEDS" FORMAT="DEFAULT" ALIAS="DEFAULT"/>

                       <COMMENT>

                               <ENABLE VALUE="TRUE" SET="TRUE"/>

                               <RESULT VALUE="点评,同意,不同意" SET="TRUE"/>

                               <DEL VALUE="24" SET="TRUE"/>

                       </COMMENT>

                       <TRANSFER ACTION="" INVISIBLE="SEND"></TRANSFER> 定义转换类型的活动

                       <SCRIPT>

                               <AUDIT>

                                       <AFT>

/*审核后发送模板消息*/

 domain.status(request,'SEND','get',param); 

 


                                       </AFT>

                               </AUDIT>

                       </SCRIPT>

               </ATTRIBUTE></DEF>

       <MEMO></MEMO>

</ATTRIBUTE>

2) 发送活动的定义

<?xml version="1.0" encoding="GB2312"?>

<ACTION actionid="18497" ecode="SEND" createby="模型管理员" createtime="2023-05-28 18:29:13" modifyby="模型管理员" modifytime="2023-06-27 10:15:41" estatus="1" ename="发送消息">

       <DEF>

               <ACTION DISABLECMDS="" INSTCOMMAND="" FLOW="" REFENTITY="" RIGHT="" ID="18497" CODE="SEND" NAME="发送消息" STATUS="1" createby="模型管理员" createtime="2023-05-28 18:29:13" modifyby="模型管理员" modifytime="2023-06-25 11:09:46" actionright="">

                       <TRANSFER CODE="SEND" PARAMNAME="ddxxtzid" PARAMVALUE="ddxxtzid" CAPTION="发送微信消息" CONDITION="" TYPE="WXMSG" TEMPLATEID="AslDnAEbn3qjnwvaWbv3iKtgERATvtHqgP_3IvGzZzI" EDITNEW="FALSE">

                               TEMPLATEID 微信消息id,

                               <DATASET CODE="MAIN" ERI="..MAIN" ALIAS="DEFAULT"> 消息数据集

                                       <FIELD SOURCE="_mppath" TARGET="_mppath"/> 连接的小程序路径可忽略

                                       <FIELD SOURCE="_appid" TARGET="_appid"/> appid 可以为空

                                       <FIELD SOURCE="_msgtype" TARGET="_msgtype"/> 消息类型,对应消息主题中的主题类型

                                       <FIELD SOURCE="keyword1" TARGET="keyword1" DATA="TRUE"/> 模板参数

                                       <FIELD SOURCE="keyword2" TARGET="keyword2" DATA="TRUE"/>模板参数

                                       <FIELD SOURCE="keyword3" TARGET="keyword3" DATA="TRUE"/>模板参数

                                       <FIELD SOURCE="keyword4" TARGET="keyword4" DATA="TRUE"/>模板参数

                               </DATASET>

                               <DATASET CODE="SUB" ERI="..SUB" ALIAS="DEFAULT"> 明细数据集

                                       <FIELD SOURCE="_userid" TARGET="_userid"/>  接受用户的userid

                                       <FIELD SOURCE="_result" TARGET="_result"/>    发送结果的保存字段

                               </DATASET>

                       </TRANSFER>

               </ACTION></DEF>

       <MEMO></MEMO>

</ACTION>

主数据集举例


  SELECT

 t_ddxxtz.ddxxtzid as ddxxtzid,

 t_ddxxtz.roomid as roomid,

 c_wldw.ename as keyword1,

 t_ddxxtz.ddjd as keyword2,

 t_ddxxtz.lxdh as keyword3,

 date_format( t_ddxxtz.trantime,'%Y年%m月%d日%H:%i') as keyword4,

 '' as _mppath,

 '' as _appid,

 'KH' as _msgtype

 FROM t_ddxxtz t_ddxxtz

 LEFT OUTER JOIN t_xsht t_xsht on (t_ddxxtz.xshtid = t_xsht.xshtid)

 INNER JOIN c_wldw c_wldw on (t_ddxxtz.wldwid = c_wldw.wldwid)</SQL>

子数据集举例

  SELECT

 t_ddxxtzlxr.ddxxtzlxrid as ddxxtzlxrid,

 t_ddxxtzlxr.sendresult as _result,

 t_ddxxtzlxr.modifytime as modifytime,

 t_ddxxtzlxr.eversion as eversion,

 c_dwlxr.wxsubuserid as _userid 

 FROM t_ddxxtzlxr t_ddxxtzlxr

 INNER JOIN c_dwlxr c_dwlxr on (t_ddxxtzlxr.dwlxrid = c_dwlxr.dwlxrid)

 INNER JOIN as_wxsubuser on (as_wxsubuser.wxsubuserid = c_dwlxr.wxsubuserid)

 WHERE ( t_ddxxtzlxr.ddxxtzid = :ddxxtzid )</SQL>





定制步骤

1)主题类型,在WXTOPIC.DATA中指定主题类型

       <DEFINFO EXPRESSION="KH=订单进度通知"/>

2)订阅类型,在 WXGROUP.SVR 指定订阅类型

       <GROUP TYPE="CG" DATASET=".GYSLXR.BROWSEDS" ALIAS="DEFAULT" PARAMNAME="ecode" USERIDFIELD="wxsubuserid"/>

3)  定义发送的单据实体,定义数据转换,公众号中增加模板消息 

<TRANSFER ACTION="" INVISIBLE="SEND"></TRANSFER>

                       <SCRIPT>

                               <AUDIT>

                                       <AFT>

/*发送模板消息*/

 domain.status(request,'SEND','get',param); 

 


                                       </AFT>

                               </AUDIT>

                       </SCRIPT>




<?xml version="1.0" encoding="GB2312"?>

<ACTION actionid="18497" ecode="SEND" createby="模型管理员" createtime="2023-05-28 18:29:13" modifyby="模型管理员" modifytime="2023-06-27 10:15:41" estatus="1" ename="发送消息">

       <DEF>

               <ACTION DISABLECMDS="" INSTCOMMAND="" FLOW="" REFENTITY="" RIGHT="" ID="18497" CODE="SEND" NAME="发送消息" STATUS="1" createby="模型管理员" createtime="2023-05-28 18:29:13" modifyby="模型管理员" modifytime="2023-06-25 11:09:46" actionright="">

                       <TRANSFER CODE="SEND" PARAMNAME="ddxxtzid" PARAMVALUE="ddxxtzid" CAPTION="发送微信消息" CONDITION="" TYPE="WXMSG" TEMPLATEID="AslDnAEbn3qjnwvaWbv3iKtgERATvtHqgP_3IvGzZzI" EDITNEW="FALSE">

                               <DATASET CODE="MAIN" ERI="..MAIN" ALIAS="DEFAULT">

                                       <FIELD SOURCE="_mppath" TARGET="_mppath"/>

                                       <FIELD SOURCE="_appid" TARGET="_appid"/>

                                       <FIELD SOURCE="_msgtype" TARGET="_msgtype"/>

                                       <FIELD SOURCE="keyword1" TARGET="keyword1" DATA="TRUE"/>

                                       <FIELD SOURCE="keyword2" TARGET="keyword2" DATA="TRUE"/>

                                       <FIELD SOURCE="keyword3" TARGET="keyword3" DATA="TRUE"/>

                                       <FIELD SOURCE="keyword4" TARGET="keyword4" DATA="TRUE"/>

                               </DATASET>

                               <DATASET CODE="SUB" ERI="..SUB" ALIAS="DEFAULT">

                                       <FIELD SOURCE="_userid" TARGET="_userid"/>

                                       <FIELD SOURCE="_result" TARGET="_result"/>

                               </DATASET>

                       </TRANSFER>

               </ACTION></DEF>

       <MEMO></MEMO>

</ACTION>



工作流中, 脚本发送订阅消息

var lssub = system.store(".DDJDTZ.SUB","DEFAULT","ddxxtzid",flow.tranid());

var lsmain  =  flow.mainstore();

    var lstopic =lsmain.fv(0,'as_wxtopic_ecode');

    var lswldw  =lsmain.fv(0,'c_wldw_ename');

    var ltrantime = lsmain.fv(0,'trantime');

    var ldh = lsmain.fv(0,'lxdh');

    var list = new List();

    var lrows = lssub.rows(),i,l = lrows.size();

    for(i=0;i<l;i++ ){

        list.add(lssub.fv(i,'_userid'));

    }

    var lMsg = request.createWxMsg("AslDnAEbn3qjnwvaWbv3iKtgERATvtHqgP_3IvGzZzI");

    lMsg.addProp('first','首先说明');

    lMsg.addProp('keyword1',lswldw);

    lMsg.addProp('keyword2',flow.shortmemo());

    lMsg.addProp('keyword3',ldh);

    lMsg.addProp('keyword4',ASUtilsDate.formatdt(ltrantime,'yyyy年MM月dd日hh:mm'));

    request.sendWxMsgSub("wx57e64f27146325ed",lstopic,lMsg,list);

Created with the Personal Edition of HelpNDoc: Benefits of a Help Authoring Tool