起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: wenjinshi

[结贴] JUSTEP150018,执行Action错误. For input string: "null" ,保存数据失败

[复制链接]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35949
发表于 2015-7-28 17:41:00 | 显示全部楼层
把data的data-type设置为xml,然后把控制台报错的action的整个节点发一下

json的不好可视化不容易看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

6

主题

24

帖子

81

积分

初级会员

Rank: 2

积分
81
QQ
 楼主| 发表于 2015-7-28 17:59:18 | 显示全部楼层
jishuang 发表于 2015-7-28 17:41
把data的data-type设置为xml,然后把控制台报错的action的整个节点发一下

json的不好可视化不容易看看 ...

<actions><action direct-execute="false" process="/RH/RH/process/kwn_makevoh/kwn_makevohProcess" activity="mainActivity" action-flag="__action_0__" executor="PSN01" execute-context="" name="saveKWN_MAKEVOH_MAction" accept="application/xml, text/xml, */*"><parameters xmlns:xbiz="http://www.justep.com/xbiz#"><parameter name="table"><xbiz:table><rows><userdata name="model">/RH/RH/data</userdata><userdata name="id-column-name">KWN_MAKEVOH_M</userdata><userdata name="id-column-type">String</userdata><userdata name="id-column-define">KWN_MAKEVOH_M</userdata><userdata name="userdata">whereVersion</userdata><userdata name="relations">KWN_MAKEVOH_M.version,KWN_MAKEVOH_M.CREATE_DD,KWN_MAKEVOH_M.VOH_DD,KWN_MAKEVOH_M.CREATER,KWN_MAKEVOH_M.BIL_DD_B,KWN_MAKEVOH_M.BIL_DD_E,KWN_MAKEVOH_M.BIL_ID,KWN_MAKEVOH_D.VOH_NO,KWN_VOHMOD_M.BIL_NAME</userdata><userdata name="relation-types">Integer,DateTime,Date,String,Date,Date,String,Integer,String</userdata><userdata name="relation-alias">version,CREATE_DD,VOH_DD,CREATER,BIL_DD_B,BIL_DD_E,BIL_ID,VOH_NO,BIL_NAME</userdata><userdata name="sys.rowid">KWN_MAKEVOH_M</userdata><userdata name="concept">KWN_MAKEVOH_M</userdata><userdata name="concept-alias">KWN_MAKEVOH_M</userdata><userdata name="update-mode">whereVersion</userdata><row id="54DB720B11DB4CCDBE923EB58AC3AF1B" original-id="54DB720B11DB4CCDBE923EB58AC3AF1B"><userdata name="recordState">new</userdata><cell original-value="0">0</cell><cell original-value="2015-07-28T17%3A58%3A03.911Z" changed="1">2015-07-28T17%3A58%3A03.911Z</cell><cell original-value="" changed="1">2015-07-28</cell><cell original-value="system" changed="1">system</cell><cell original-value="" changed="1">2015-07-01</cell><cell original-value="" changed="1">2015-07-28</cell><cell original-value="" changed="1">3011</cell><cell original-value="" changed="1"/><cell original-value="" changed="1"/></row></rows></xbiz:table></parameter></parameters></action><action content-type="application/json" accept="application/json, text/javascript, */*"><![CDATA[{"process":"/RH/RH/process/kwn_makevoh/kwn_makevohProcess","activity":"mainActivity","actionFlag":"__action_1__","executor":"PSN01","executeContext":"","action":"saveKWN_MAKEVOH_DAction","parameters":{"table":{"@type":"table","userdata":{"relationAlias":"BIL_ID,BIL_NO,CUS_NO,CUS_NAME,VOH_NO,fMID,space-column,version,CTEXT,VOH_DD","relationTypes":"String,String,String,String,Integer,String,Object,Integer,String,Date","idColumnType":"String","sys.rowid":"KWN_MAKEVOH_D","idColumnDefine":"KWN_MAKEVOH_D","idColumnName":"KWN_MAKEVOH_D","relations":"KWN_MAKEVOH_D.BIL_ID,KWN_MAKEVOH_D.BIL_NO,KWN_MAKEVOH_D.CUS_NO,KWN_MAKEVOH_D.CUS_NAME,KWN_MAKEVOH_D.VOH_NO,KWN_MAKEVOH_D.fMID,EXPRESS,KWN_MAKEVOH_D.version,KWN_MAKEVOH_D.CTEXT,KWN_MAKEVOH_D.VOH_DD","model":"/RH/RH/data","updateMode":"whereVersion","concept":"KWN_MAKEVOH_D","conceptAlias":"KWN_MAKEVOH_D"},"rows":[{"userdata":{"id":{"value":"2DE1B243DF6B4E969EC8692FDEF2622C","originalValue":null,"changed":null},"recordState":"new"},"BIL_ID":{"value":"3011","originalValue":"3011","changed":"1"},"BIL_NO":{"value":"00000006","originalValue":"00000006","changed":"1"},"CUS_NO":{"value":"000483","originalValue":"000483","changed":"1"},"CUS_NAME":{"value":"广州市辰骐仪器有限公司                                                          ","originalValue":"广州市辰骐仪器有限公司                                                          ","changed":"1"},"VOH_NO":{"value":"","originalValue":"","changed":"1"},"fMID":{"value":"54DB720B11DB4CCDBE923EB58AC3AF1B","originalValue":"54DB720B11DB4CCDBE923EB58AC3AF1B","changed":"1"},"space-column":{"value":"","originalValue":"","changed":"1"},"version":{"value":0,"originalValue":0,"changed":"0"},"CTEXT":{"value":"","originalValue":"","changed":"1"},"VOH_DD":{"value":"2015-07-28","originalValue":"","changed":"1"}}]}},"translateParameter":null}]]></action></actions>
java.lang.IllegalArgumentException: argument type mismatch
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:592)
        at com.justep.system.action.Engine.invokeActions(Native Method)
        at com.justep.system.action.Engine.invokeActions(Unknown Source)
        at com.justep.business.server.BusinessServer.doAction(Unknown Source)
        at com.justep.business.server.BusinessServer.doExcute(Unknown Source)
        at com.justep.business.server.BusinessServer.excute(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.execService(Unknown Source)
        at com.justep.business.server.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at com.justep.x.bs.BusinessServerServlet.service(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:595)
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35949
发表于 2015-7-29 09:26:38 | 显示全部楼层
主从表的保存吧?
把从data的data-type也设置为xml的

或者不要两个同时修改,修改其中一个看看是那个data报错的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

6

主题

24

帖子

81

积分

初级会员

Rank: 2

积分
81
QQ
 楼主| 发表于 2015-7-29 09:29:55 | 显示全部楼层
jishuang 发表于 2015-7-29 09:26
主从表的保存吧?
把从data的data-type也设置为xml的

是从表报错。我试了从表明细那里不选择内容,输表头内容就可以保存。
回复 支持 反对

使用道具 举报

6

主题

24

帖子

81

积分

初级会员

Rank: 2

积分
81
QQ
 楼主| 发表于 2015-7-29 09:31:15 | 显示全部楼层
jishuang 发表于 2015-7-29 09:26
主从表的保存吧?
把从data的data-type也设置为xml的

我发给你的控制台报错信息是我已经把主从表data-type都设置成xml的了
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35949
发表于 2015-7-29 11:33:59 | 显示全部楼层
从表是json的,不是xml的,应该是从表的action自己重写什么地方不对,可以参考http://wex5.com/X5Knowledge/know ... 7E477D74DA165B.html
看看是不是那个地方设置错了
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

6

主题

24

帖子

81

积分

初级会员

Rank: 2

积分
81
QQ
 楼主| 发表于 2015-7-29 13:35:25 | 显示全部楼层
jishuang 发表于 2015-7-29 11:33
从表是json的,不是xml的,应该是从表的action自己重写什么地方不对,可以参考http://wex5.com/X5Knowledge ...

从表的action是这样的,你帮忙看看,谢谢!
public static int saveKWN_MAKEVOH_D(Table table,String concept,List<DataPermission> insertRange,List<DataPermission> deleteRange,List<DataPermission> updateRange,String readOnly,String notNull,String dataModel,String fnModel)  throws NamingException, SQLException {                java.sql.Connection conn = com.justep.model.ModelUtils.getConnectionInTransaction("/RH/RH/data");
                java.sql.PreparedStatement createtemptable = conn.prepareStatement(" IF EXISTS (select * from tempdb..sysobjects where id=object_id('tempdb..##makevoh_d_kwn'))        DROP TABLE ##makevoh_d_kwn select * into ##makevoh_d_kwn from  KWN_MAKEVOH_D where 1=2");
                createtemptable.execute();
                Iterator<Row> rows = table.iterator();
                while (rows.hasNext()) {
                        Row row = rows.next();
                        String fid = row.getString("KWN_MAKEVOH_D");
                        String fmid = row.getString("fMID");
                        int version = row.getInt("version");
                        String bil_id = row.getString("BIL_ID");
                        String bil_no = row.getString("BIL_NO");
                        String cus_no = row.getString("CUS_NO");
                        String cus_name = row.getString("CUS_NAME");
                        String ctext = row.getString("CTEXT");
                        Date voh_dd = row.getDate("VOH_DD");
                       
                        java.sql.PreparedStatement inserttemptable = conn.prepareStatement("insert into ##makevoh_d_kwn (fID, fMID, version, BIL_ID, BIL_NO,CUS_NO,CUS_NAME,CTEXT,VOH_DD) values (?,?,?,?,?,?,?,?,?) ");
                        inserttemptable.setString(1,fid);
                        inserttemptable.setString(2, fmid);
                        inserttemptable.setInt(3,version);
                        inserttemptable.setString(4, bil_id);
                        inserttemptable.setString(5, bil_no);
                        inserttemptable.setString(6, cus_no);
                        inserttemptable.setString(7, cus_name);
                        inserttemptable.setString(8, ctext);
                        inserttemptable.setDate(9, voh_dd);
                        inserttemptable.execute();
                }

                java.sql.CallableStatement proc = conn.prepareCall("{ call proc_makvoh_kwn() }");
                proc.execute();

        Iterator<Row> rows1 = table.iterator();
                while (rows1.hasNext()) {
                        Row row1 = rows1.next();
                        String fid = row1.getString("KWN_MAKEVOH_D");
                        PreparedStatement updateMAKEVOH_D = conn.prepareStatement("select fid,VOH_NO,CTEXT from ##makevoh_d_kwn where fid=?");
                        updateMAKEVOH_D.setString(1,fid);
                        ResultSet rs = updateMAKEVOH_D.executeQuery();
                        while (rs.next()) {
                        int voh_no =rs.getInt("VOH_NO");
                        String ctext =rs.getString("CTEXT");
                        row1.setValue("VOH_NO",voh_no);
                        row1.setValue("CTEXT",ctext);
                    }
                }
               
                return BizData.save(table, concept, insertRange, deleteRange, updateRange, readOnly, notNull, dataModel, fnModel);
               
        }


QQ图片20150729133315.png

这个是界面,从表数据是选择进来,然后点保存就出错

这个是界面,从表数据是选择进来,然后点保存就出错
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35949
发表于 2015-7-29 15:32:59 | 显示全部楼层
单看代码是看不出什么问题的,要调试才知道
参考http://bbs.wex5.com/forum.php?mo ... 4&pid=164929261
java代码调试看一下具体到那个参数出错的
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

6

主题

24

帖子

81

积分

初级会员

Rank: 2

积分
81
QQ
 楼主| 发表于 2015-7-30 01:12:12 | 显示全部楼层
jishuang 发表于 2015-7-29 15:32
单看代码是看不出什么问题的,要调试才知道
参考http://bbs.wex5.com/forum.php?mod=redirect&goto=find ...

调试半天,还是没搞懂。不怎么会调试。
这是重写的action.还是提示错误USTEP150018, 执行Action出错, argument type mismatch,保存数据失败!。这个参数类型不匹配,是跟概念的数据类型不匹配吗?

public static int saveKWN_MAKEVOH_D(Table table, String concept, List<DataPermission> insertRange, List<DataPermission> deleteRange,
                                List<DataPermission> updateRange, String readOnly, String notNull, String dataModel, String fnModel)
               
                        throws NamingException, SQLException
                {
                java.sql.Connection conn = com.justep.model.ModelUtils.getConnectionInTransaction("/RH/RH/data");
                java.sql.PreparedStatement createtemptable = conn.prepareStatement(" IF EXISTS (select * from tempdb..sysobjects where id=object_id('tempdb..##makevoh_d_kwn'))        DROP TABLE ##makevoh_d_kwn select * into ##makevoh_d_kwn from  KWN_MAKEVOH_D where 1=2");
                createtemptable.execute();
                Iterator<Row> rows = table.iterator();
                while (rows.hasNext()) {
                        Row row = rows.next();
                        String fid = row.getString("KWN_MAKEVOH_D");
                        String fmid = row.getString("fMID");
                        int version = row.getInt("version");
                        String bil_id = row.getString("BIL_ID");
                        String bil_no = row.getString("BIL_NO");
                        String cus_no = row.getString("CUS_NO");
                        String cus_name = row.getString("CUS_NAME");
                        String ctext = row.getString("CTEXT");
                        Date voh_dd = row.getDate("VOH_DD");
                       
                        java.sql.PreparedStatement inserttemptable = conn.prepareStatement("insert into ##makevoh_d_kwn (fID, fMID, version, BIL_ID, BIL_NO,CUS_NO,CUS_NAME,CTEXT,VOH_DD) values (?,?,?,?,?,?,?,?,?) ");
                        inserttemptable.setString(1,fid);
                        inserttemptable.setString(2, fmid);
                        inserttemptable.setInt(3,version);
                        inserttemptable.setString(4, bil_id);
                        inserttemptable.setString(5, bil_no);
                        inserttemptable.setString(6, cus_no);
                        inserttemptable.setString(7, cus_name);
                        inserttemptable.setString(8, ctext);
                        inserttemptable.setDate(9, voh_dd);
                        inserttemptable.execute();
                }

                java.sql.CallableStatement proc = conn.prepareCall("{ call proc_makvoh_kwn() }");
                proc.execute();

        Iterator<Row> rows1 = table.iterator();
                while (rows1.hasNext()) {
                        Row row1 = rows1.next();
                        String fid = row1.getString("KWN_MAKEVOH_D");
                        PreparedStatement updateMAKEVOH_D = conn.prepareStatement("select fid,VOH_NO,CTEXT from ##makevoh_d_kwn where fid=?");
                        updateMAKEVOH_D.setString(1,fid);
                 ResultSet rs = updateMAKEVOH_D.executeQuery();
                        while (rs.next()) {
                        int voh_no =rs.getInt("VOH_NO");
                        String ctext =rs.getString("CTEXT");
                        row1.setValue("VOH_NO",voh_no);
                        row1.setValue("CTEXT",ctext);
                    }
                }
               
                return BizData.save(table, concept, insertRange, deleteRange, updateRange, readOnly, notNull, dataModel, fnModel);
               
        }

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35949
发表于 2015-7-30 09:51:17 | 显示全部楼层
看你的需求应该不需要重写saveAction
可以在saveAction的执行前事件中对table的数据进行修改
可以参考http://bbs.wex5.com/forum.php?mo ... 6&pid=164970552

平台带的/BIZ/demo/actions/logic/action/standardActionExtend.action.m中saveDEMO_BookViewAction、saveDEMO_BookXMLProcedure都是重写saveAction,可以参考
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-28 21:07 , Processed in 0.063743 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表