NC二开经验集合

1) 单点登录

 

    单点登陆到NC 客户端:

        1、得到key:
            http://服务器地址/service/ssoRegServlet?userCode=用户名
            例:
            http://127.0.0.1/service/ssoRegServlet?userCode=100003
            将返回key
        2、登陆:
            http://服务器地址/login.jsp?ssoKey=返回的key
            例:
            http://127.0.0.1/login.jsp?ssoKey=14272496986527836834697364732568       

 

    单点登陆到NC portal端:
        1、申请key:
            http://服务器地址/service/portalTaskSSORegServlet?userCode=拟登录账户
            例:
            http://127.0.0.1/service/portalTaskSSORegServlet?userCode=100003
           将返回key
        2、跳转Portal:
            http://服务器地址/portal/auth/申请到的key
            例:
    http://127.0.0.1/portal/auth/6260cf769d8e4abe93634cb235a5d6ac

       portalTaskSSORegServlet是自定义的servlet,portal的地址拼接好重定向访问

 

 

2)单据追溯不好使

流程信息获取、回写 中的来源单据类型和来源单据id配置上。

 

 

 

3)NC封装的BaseDAO()

insertVO()报错 表或视图不存在:

创建 PUB_OID 表

CREATE TABLE PUB_OID 
(     PK_CORP CHAR(4) NOT NULL ENABLE, 
         IDNUMBER CHAR(14), 
         TS CHAR(19) DEFAULT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'), 
         DR NUMBER(10,0) DEFAULT 0, 
         CONSTRAINT PK_PUB_OID PRIMARY KEY (PK_CORP)

)

updateVO()返回0:

字段值为 "" 空字符串,后台只判断了null类型,没有判断空字符类型 

 

 

4)NC接口方法执行报错,不回滚

upm接口文件配置

upm文件中的公共组件的 tx 事务属性, NONE表示没有事务,CMT表示容器管理的事务,BMT表示Bean管理的事务

upm文件配置说明

  组件分为公共组件和私有组件,分别在public段和private段:
<?xml version="1.0" encoding="gb2312"?>
<module  name="testEJB">
  <public>
    <component priority="0" singleton="true" remote="true" tx="NONE" >
      <interface>nc.itf.sample.IHelloPub</interface>
      <implementation>nc.impl.sample.HelloWorldPub</implementation>
    </component>  
  </public>
  <private>
    <component name="IHelloWorld" priority="0" singleton="false" >
      <implementation>nc.impl.sample.HelloWorldImpl</implementation>
    </component>
  </private>
</module>

公共组件的主要配置属性:
  name:组件的名称,如果没配,默认为第一个接口的名称,如果没有接口,为实现类的名称
  singleton:  是否为单例,默认为true
  remote: 是否能够被远程调用到,默认为false,远程组件必须要有接口
  tx: 事务属性, NONE表示没有事务,CMT表示容器管理的事务,BMT表示Bean管理的事务
  cluster: 标志组件的集群属性,默认为NORMAL,表示不是集群组件,SP表示为单点组件(必须有接口)
  supportAlias: 默认为false,表示是否能够按照接口进行查找组件
Ø  私有组件的配置属性
  除了没有remote,tx属性,其余属性都支持
 supportAlias建议为false,supportAlias为true只有在公共组件中才起作用

 

5)配置远程调试端口

NC开启远程调试端口,在sysConfig参数添加:

-agentlib:jdwp=transport=dt_socket,suspend=n,server=y,address=192.168.81.80:8000

 

 

6)NC6系列、NCC用户密码破解

1、修改密码前置脚本
    1.1、创建md5函数 或者 百度在线MD5加密
    CREATE OR REPLACE FUNCTION MD5(
    passwd IN VARCHAR2)
    RETURN VARCHAR2
    IS
    retval varchar2(32);
    BEGIN
    retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) ;
    RETURN retval;
    END;

2、普通用户密码破解
密码 = 【 U_U++--V】  加上 (用户pk+密码)进行md5加密后32位密文
密码校验类:
    2.1、修改密码
    select cuserid from sm_user where user_code = 'whz';
    update sm_user set user_password = concat('U_U++--V', lower(md5('1001A410000000070LQX'|| '123qwe'))) where user_code = 'whz' ;
    2.2、普通用户解锁
    delete sm_user_ex where user_id = (select cuserid from sm_user where user_code = 'whz') ;

3、超级管理员用户密码破解
密码 = 【 U_U++--V】  加上 (用户pk+密码)进行md5加密后32位密文
密码校验类:nc.identityverify.pub.StaticPWDVerifier
超级管理员vo:nc.bcmanage.vo.SuperAdminVO
root用户默认pk=superadminpk00000000
super用户默认pk=superadminpk00000001

    3.1、修改密码
    update sm_super_user set password = concat('U_U++--V', lower(md5('superadminpk00000000'||'admin@123'))), oldpwd1 = concat('U_U++--V', lower(md5('superadminpk00000000'||'admin@123'))) where admcode = 'root' ;
    --修改密码结束 root密码为123qwe!@#
    3.2、账套管理员用户解锁
    update sm_super_user set islocked='N' where admcode='root';

 

8)NC uapws控制台初始密码
home\hotwebs\uapws\WEB-INF\config.xml  <login name = "administrator" password="ufsoft*12345"/>这行记录的是控制台账户密码,可修改



9)WAS服务器多数据源出现未知的异常

              系统日志包含XA错误:多数据源需要在was WebSphere控制台数据源配置为XA(分布式数据源,配置方式自行百度不再赘述)

 

10)  外部交换平台导入报错(具体错误忘记截图了)

          外部交换平台-xml中的子表编码对应主表元数据下的子表数组名

 

11) 元数据

            1、元数据升级不生效:将元数据版本号改成大于当前版本再升级

            2、元数据增加字段,用户定义属性找不到:系统管理员登陆-元数据过滤节点-勾选

 

12)NCv65环境开发环境启动无法改变默认80端口

          将sysconfig服务器配置名称改成servser,开发环境启动中间件就会按照sysconfig配置的端口启动tomcat。如果名称不是server默认使用80

13)交换平台日志参数设置可查看日志

update xi_paramconfig xp

set xp.iswritemiddlefile = 'Y', --记录中间文件

       xp.isbackupresponses = 'Y', --记录输入流

       xp.recordinputstream = 'Y', --回执文件后台备份

       xp.defaultaccount = '002', --账套(注意调整)

       xp.maxtransfersize = 3000, --单篇最大传输上限

       xp.outputencoding = 'UTF-8' --回执和导出文件编码格式

14)NC判断是否授权的方法

InitGroupQuery.isEnabled(InvocationInfoProxy.getInstance().getGroupId(), "***");

15)外部交换平台-如需增加单据类型 xx_busiprodef 手动insert

16)NC PK锁

出现pk锁可在系统监视器解锁,默认允许本人登录解锁本人用户。可在home\ierp\bin\lockconfig\pklock.properties  添加任意用户,可解锁全部用户pk锁。

添加规则,用户编码为一行,用户pk为一行:

hr06

1001A210000000091FQR

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
用友NC是一款非常常用的企业管理软件,通过二次开发可以对其进行定制和扩展,满足企业个性化的需求。 使用用友NC进行二次开发需要一些基础知识和技能。首先,需要具备Java编程基础,使用Java语言进行开发。其次,需要了解用友NC的架构和开发框架,包括模块化设计、基础数据结构和常用开发接口等。还需要掌握用友NC的数据库结构和相关开发工具,如Eclipse集成开发环境和用友NC Studio开发工具。 学习用友NC的二次开发,可以通过以下几个步骤实施: 1. 学习用友NC的基础知识:了解用友NC的功能和模块,掌握其基本操作和基础数据结构,为后续的开发做好准备。 2. 学习Java编程:掌握Java语言的基础知识和面向对象编程的概念,了解Java开发框架和相关工具,包括JDK、Eclipse等。 3. 学习用友NC的开发框架:深入学习用友NC的开发框架,了解其模块化设计和常用开发接口,掌握二次开发的基本原理和方法。 4. 实践开发项目:通过实际开发项目,锻炼自己的开发能力和解决问题的能力,掌握用友NC的二次开发技术和实践经验。 5. 持续学习和提升:用友NC的二次开发属于持续学习的过程,需要不断更新知识和技能,关注用友NC的新功能和技术,与同行交流经验和分享成果。 总之,用友NC的二次开发是一项具有挑战性的任务,但是通过学习和实践,可以掌握其开发技术和方法,为企业定制和扩展用友NC,提高企业管理效率和精确度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值