天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 875|回复: 2

[已解决] 存储过程在平台中执行无效

[复制链接]
常州易龙信息 发表于 2013-4-28 09:49:45 | 显示全部楼层 |阅读模式
本帖最后由 spiral 于 2013-4-28 17:08 编辑

  1. set ANSI_NULLS ON
  2. set QUOTED_IDENTIFIER ON
  3. go


  4. ALTER PROCEDURE [dbo].[SP_upBaoXiao]
  5. @PID nvarchar(200),@name nvarchar(200),@state nvarchar(200),@PRes nvarchar(1000) output
  6. AS
  7. BEGIN
  8. begin transaction
  9. begin try  
  10.         SET NOCOUNT ON;
  11. ---///////////////////////////
  12. if(@state='部门主管审批')
  13.   begin
  14.         update tlk_财务报销 set item_部门主管=@name where id=@PID;
  15.   end

  16. if(@state='项目主任审批')
  17.   begin
  18.         update tlk_财务报销 set item_项目主任=@name where id=@PID;
  19.   end


  20. if(@state='行政部审批')
  21.   begin
  22.         update tlk_财务报销 set item_行政部=@name where id=@PID;
  23. end

  24. if(@state='财务部审批')
  25.   begin
  26.         update tlk_财务报销 set item_财务部=@name where id=@PID;
  27.   end

  28.                
  29. end try
  30. begin catch
  31.         SELECT @PRes=ERROR_MESSAGE()
  32.    print @PRes
  33. end catch
  34. if @PRes is not null
  35. begin
  36.         set @PRes ='error'
  37. rollback transaction
  38. end
  39. else
  40. begin
  41.         set @PRes='ok'
  42.         commit transaction
  43. end
  44. END
复制代码
存储过程

  1. function upbaoxiao(pid,name,state){
  2.   //获取连接
  3.   var Ret = "error";
  4.    var conn = getConnection(getApplication());
  5.   var cs = null;
  6.   try {
  7.    cs = conn.prepareCall("{call SP_upBaoXiao(?,?,?,?)}");
  8.    cs.setString(1,pid);
  9.    cs.setString(2,name);
  10.    cs.setString(3,state);
  11. $PRINTER.println("***************************First+Ret***");
  12.    cs.registerOutParameter(4, Packages.java.sql.Types.CHAR);
  13.    cs.execute();
  14.    Ret = cs.getString(4);
  15.    $PRINTER.println("***************************Ret***"+Ret);
  16.   } catch (e) {
  17.   } finally {
  18.    try {
  19.     if(cs != null){
  20.      cs.close();
  21.     }
  22.     if(conn != null){
  23.      conn.close();
  24.     }
  25.    } catch (ex) {
  26.    }
  27.   }
  28.   return Ret;
  29. }
复制代码
函数库调用

  1. #include "dbexlib"
  2. var pid=getId();
  3. var name=getWebUser().getName();
  4. var doc = getCurrentDocument();
  5. var state = doc.getStateLabel();

  6. var deps=getdetps();
  7. println(pid+"==========PID");
  8. println(name+"==========name");
  9. println(state+"=========state");



  10. var irt=upbaoxiao(pid,name,state);
  11. println(irt+"==============IRT");
  12.                 if (irt=="error"){
  13.                         createAlert("获取请求协办人失败!");
  14.                 }
复制代码
平台执行
spiral 发表于 2013-4-28 10:06:35 | 显示全部楼层
因为该问题比较复杂,我这边需要点时间确认定位问题,有进展后会通过帖子告知
spiral 发表于 2013-4-28 17:08:10 | 显示全部楼层
楼主反馈,把调用脚本移动到动作执行后脚本中,问题得到解决,本帖关闭

原因是存储过程对数据库进行了修改,但是系统又进行一次保存,因此看上去执行不生效

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 22:34

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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