UDN-企业互联网技术人气社区

板块导航

浏览  : 132
回复  : 1

[技术分享] Client端获取不到交易类型怎么办,及如何使用参数注册_黑分

[复制链接]
uec_Q9et04vxAz的头像 楼主
发表于 2018-7-7 11:39:29 | 显示全部楼层 |阅读模式
本帖最后由 uec_Q9et04vxAz 于 2018-7-7 11:48 编辑

适用于NC6系列,问题描述:
1、有的产品的单据在设计时并未考虑到交易类型对单据的影响因素,导致单据很难被扩展成多个功能节点,影响到用户的实际使用。所以这时候需要给单据增加交易类型拆分的功能。
2、用户需要在某个单据上增加一些个性化的内容,这时候就需要给每个单据设置不同的参数,但是又希望只使用一个XML并且在只修改Client端少量代码的情况下实现需求。

解决方法:
一般来说,无论是Action还是编辑前后事件,在XML文件中,都会被注入一个model,基本上所有的model都继承自AbstractAppModel,所以我们可以通过model来获取交易类型,这个交易类型实际上是在“功能注册”节点中的参数注册,注册到单据中的。
核心代码如下:
Object transtype=((ToftPanelAdaptorEx)getModel().getContext().getEntranceUI()).getParameter("transtype");


这里的getModel()获取到的实际上就是你的Action或者BeforeCardEdit、AfterCardEdit……之类的Client端被注入进去的model对象(如果没有getModel方法,则查看一下“功能注册”中对应单据的XML里面有没有),如果你能直接获ToftPanelAdaptorEx对象,直接调用即可。

transtype参数在进行交易类型添加并发布成节点之后,会自动创建到功能的参数注册中

WechatIMG377.jpeg


最后,记得判断一下获得到的值是否为空,避免在下一步使用的时候出现空指针异常。

漫谈:
1、可以注册一个类的Class限定名,利用反射来做更多的事情。
2、可以注册一个简短的Json或XML值(要考虑长度问题),放入更多的结构化数据内容。
3、可以注册一个IP地址或wsdl或Restful地址,实现客户端级别的外部数据交换的动态配置。

—— 用友网络股份有限责任公司(黑龙江分公司) 客户化开发部 杨若瑜 20180707

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部