NCC1909新手开发记录
2019-12-30 本文已影响0人
把酒对牛
元数据
使用UAP助手正常生成元数据。如果编辑元数据的时候,IUAPStudio有卡顿现象,检查所有数据源是否都能正常连接。
发布应用
右键工程,NCCloud应用管理,根据提示一步一步生成应用即可。在应用注册中改模板有时候会遇到保存不进去的情况,可以手动去改数据表。常用数据表如下:
- 菜单
sm_apppmenureg
、sm_appmenuitem
- 应用
sm_appregister
、sm_appparam
- 页面
sm_apppage
- 模板
pub_page_templet
- 按钮
sm_appbutnregister
- 区域
pub_area
- 字段
pub_form_property
、pub_query_property
刚发布的应用就报错“不支持此种业务,请检查”很有可能是元数据的访问器类型没有改成NCVO。
前端配置
使用IUAPStudio生成应用之后,会在工程的hotwebs目录下生成对应的前端代码。如果是新单据,会新增一个单页应用src/sf/saleeventverification/sf010301
和一个多语src/sf/public/lang/standard/simpchn/SF010301.json
。
前端配置文件config.json
:
{
"buildEntryPath": [
"./src/sf/*/*/*/index.js",
"./src/pu/*/*/*/index.js" // 假如修改系统页面的源码,需要一起打包
],
"proxy":"http://127.0.0.1:8190", // 后端接口访问地址
"buildWithoutHTML": [ "uapbd/refer", "uap/refer" ], // 只需要被引用,不需要生成html
"devPort": 3006 // webpack服务器端口号
}
拉单配置
- 按钮组
把新增按钮替换成新增下拉按钮,不知道为什么,需要有Group1
和Group2
两个空白父按钮,下拉按钮才能正常显示,如下图所示:
新增下拉按钮.png - 拉单页面
每个单据都是一个单页应用,从代码上来看,拉单页面是是属于下游单据的;但是在应用注册里,拉单页面是配置在上游单据的。这样从逻辑上也讲得通,毕竟从业务上看,是拉的上游的单据,但是从前端来看,不可能因为拉个单就跳转到另一个单页应用里面去。 - 拉单查询
- 如果没有特殊要求,可以直接拿上游单据的查询来用
上游单据查询需要上游单据的权限,这时候有两种方法添加权限:一种是在后端authorize
配置文件中共享查询授权;另一种是前端pushTo
跳转的时候添加参数appcode
,这样在跳转拉单的时候就会自动去鉴权,但是pageid会随之改变,导致回退的时候获取模板报错,当然这种错误可以在回退页面的initTemplate
中为createUIDom
方法的第一个参数添加属性appcode
重置回来解决。 - 单独写个拉单查询
- 转单
- 定义转单信息实体
TransferInfo
,从前端请求中获取转单信息。 - 定义NC转单接口
IXXTransferService
,使用INCCloudQueryService
接口将TransferInfo
转换为IQueryScheme
,接下来就和NC6系列使用一样的方式拉单。 - 定义
TransferXXtoXXAction
用来处理请求,使用ServiceLocator
调用NC端接口IXXTransferService
,从request
中获取TransferInfo
作为参数传递。得到返回的下游单据后,用ExtBillCardOperator
等操作类转换成前端所需的数据格式并返回。 - 前端在下游单据的
initTemplate
中根据UrlParam
判断当前是否为拉单,如果是则调用相应后台接口,注意传递给后台的oid
是来源模板查询区oid,templetid
是当前模板pageid。