易飞审核

易飞审核员说明

易飞所有的单据审核都是调用审核元进行审核的,但是该审核员接口又没有开放,所以只能通过一些老的代码中分析出审核员接口及功能。使用该审核员接口主要是可以与其它系统集成实现单据的审核。

1、审核员相关分析

 1 uses
 2 ComObj
 3 
 4 //调用审核元方法
 5 TransManager := CreateOleObject('TRANSMANAGER.TXNMANAGER');
 6 //调用审核的方法
 7 mResult := TransManager.Doit(mInitParam);
 8 //相关参数说明
 9 mAction:= VarArrayCreate([0,8],VarVariant);
10 mAction[1] //日志保存 N 不保存日志, Y保存日志
11 mAction[2] //审核状态执行 DO 执行   UNDO 取消执行。
12 mAction[3] //单别
13 mAction[4]  //单号 或者 底稿编号
14 mAction[5] // 序号或版本号
15 mAction[6]  //flag
16 mAction[7]  //审核日期
17 mAction[8]  //确认日期
18 
19 mInitParam := VarArrayCreate([0,5],VarVariant);
20 mInitParam[0] := 'TXNMOCI03'; // 作业程序代号
21 mInitParam[1] := 8888; // 公司ID
22 mInitParam[2] := YFDEMO;  //数据库名称
23 mInitParam[3] := DS; //用户ID
24 mInitParam[4] := '';

25 mInitParam[5] := mAction ;
  1 procedure TYFerpfrm.CallTransManager(SlipType,SlipCode,TransDate,ProID,CompanyID,UserId,TODO,ISModi,Ver:string);
  2 var
  3   tmpmsg: string;
  4   k:Integer;
  5   mResultDesc:OleVariant;
  6   submResultDesc:OleVariant;
  7   mInitParam,mAction:OleVariant;
  8   mResult:Boolean;
  9   TransName:string;
 10 begin
 11     mAction:= VarArrayCreate([0,8],VarVariant);
 12     mAction[0] :='';
 13     mAction[1] :='N'; //Y保存执行日志 ,N不保存执行日志
 14     if TODO='Y' then
 15     begin
 16       mAction[2] :='DO';  //DO 审核执行,UNDO 取消审核执行
 17     end
 18     else
 19     begin
 20       mAction[2] :='UNDO';  //DO 审核执行,UNDO 取消审核执行
 21     end;
 22     mAction[3] :=trim(SlipType);         //单别或者底稿编号
 23     mAction[4] :=trim(SlipCode);   //单号或者生效日期,为底稿编号时,这里为flag
 24     mAction[5] :=0;  //审核时为0,审核成功。 //录入发票审核时为1  //版本号,审核单据没有版本本号,所以为 0
 25     mAction[6] :='';             //flag
 26     mAction[7] :=trim(TransDate);
 27     mAction[8] :='';
 28         //变更单单据处理。
 29     if ((ProID='COPI07') OR (ProID='PURI08') OR (ProID='MOCI11') OR (ProID='PURI13') OR (ProID='MOCI12')) then
 30     begin
 31       if (VarIsEmpty(Ver) or VarIsNull(Ver)) then
 32       begin
 33             msg:=trim(SlipType)+'-'+trim(SlipCode)+'-'+trim(Ver)+' '+'版本号或序号为空,无法审核!';
 34             mylogList.Add(msg);
 35             exit;
 36 
 37       end;
 38       mAction[5]:=trim(Ver);
 39       mAction[6] :=0;
 40       mAction[8] :=trim(TransDate);
 41     end;
 42 
 43     adoquery2.Connection:= ADOConnection1;
 44     adoquery2.Close;
 45     adoquery2.SQL.Clear;
 46     adoquery2.SQL.Text:='select MB001,MB002,MB003 from DSCMB where MB001 ='''+trim(CompanyID)+'''';
 47     adoquery2.Open;
 48     mInitParam := VarArrayCreate([0,5],VarVariant);
 49     mInitParam[0] := 'TXN'+UpperCase(trim(ProID)); // 作业代号
 50     mInitParam[1] := trim(adoquery2.fieldbyname('MB001').AsString); // 公司ID
 51     mInitParam[2] := trim(adoquery2.fieldbyname('MB003').AsString);  //数据库名称
 52     mInitParam[3] := trim(UserId); //用户ID
 53     mInitParam[4] := '';
 54     mInitParam[5] := mAction ;
 55 
 56     if ISModi='N' then  //连接审核元接口
 57     begin
 58      TransManager := CreateOleObject('TRANSMANAGER.TXNMANAGER');
 59     end
 60     else
 61     begin
 62     adoquery3.Connection:= ADOConnection1;
 63     adoquery3.Close;
 64     adoquery3.SQL.Clear;
 65     adoquery3.SQL.Text:='SELECT MC001,MC003,MC004 FROM DSCMC where MC001 = '''+UpperCase(trim(ProID))+'''';
 66     adoquery3.Open;
 67     mInitParam[0] := 'TXN'+UpperCase(trim(adoquery3.fieldbyname('MC004').AsString)); 
 68     TransName:=UpperCase(trim(adoquery3.fieldbyname('MC003').AsString));
 69 
 70     TransManager := CreateOleObject(TransName);
 71     end;
 72 
 73 
 74     if not (VarIsEmpty(TransManager) or VarIsNull(TransManager)) then
 75       begin
 76         try
 77             mResult := TransManager.Doit(mInitParam);
 78         except on E: Exception do
 79           begin
 80            mylogList.Add(E.Message);
 81            exit;
 82           end;
 83         end;
 84         if mResult =false then   //执行失败时反馈
 85         begin
 86          mResultDesc:=TransManager.ResultDesc;
 87          if (VarIsEmpty(mResultDesc) or VarIsNull(mResultDesc)) then  //判断是否有异常报错反馈内容,如果没有就直接输出结果报错。如果有就取报错数据进行组合
 88          begin
 89             if (VarIsEmpty(Ver) or VarIsNull(Ver)) then
 90             begin
 91               msg:=trim(SlipType)+'-'+trim(SlipCode)+' '+TransManager.ErrorDescript;
 92             end
 93             else
 94             begin
 95               msg:=trim(SlipType)+'-'+trim(SlipCode)+'-'+trim(Ver)+' '+TransManager.ErrorDescript;
 96             end;
 97             mylogList.Add(msg);
 98             exit;
 99          end
100          else
101          begin
102           submResultDesc:= mResultDesc[2];
103          end;
104          adoquery4.Connection:= ADOConnection1;
105          adoquery4.Close;
106          adoquery4.SQL.Clear;
107          adoquery4.SQL.Text:='SELECT TYPE,ID,MSG from MSGCHT where ID = '''+mResultDesc[1]+''' and TYPE= '''+mResultDesc[0]+'''';
108          adoquery4.Open;
109          tmpmsg:=adoquery4.fieldbyname('MSG').AsString;
110          K := 0;
111          msg:='';
112          while Pos('%S',tmpmsg) > 0 do
113          begin
114           tmpmsg := StringReplace(tmpmsg,'%S', submResultDesc[K],[]);
115           K:=K+1;
116          end;
117 
118          if (VarIsEmpty(Ver) or VarIsNull(Ver)) then  //有版本号或者序号时,消息增加序号或版本号
119          begin
120            msg:=trim(SlipType)+'-'+trim(SlipCode)+' '+mResultDesc[0]+':'+mResultDesc[1]+'-'+tmpmsg;
121          end
122          else
123          begin
124            msg:=trim(SlipType)+'-'+trim(SlipCode)+'-'+trim(Ver)+' '+mResultDesc[0]+':'+mResultDesc[1]+'-'+tmpmsg;
125          end;
126         end
127         else
128         begin  //执行成功时反馈结果
129           if (VarIsEmpty(Ver) or VarIsNull(Ver)) then
130           begin
131             msg:=trim(SlipType)+'-'+trim(SlipCode)+' '+TransManager.ErrorDescript;
132           end
133           else
134           begin
135             msg:=trim(SlipType)+'-'+trim(SlipCode)+'-'+trim(Ver)+' '+TransManager.ErrorDescript;
136           end;
137         end;
138         mylogList.Add(msg);
139       end;
140     TmRet:=mResult;
141 end;
142 
143 //调用方法
144 CallTransManager(单别,单号,审核日期,作业编号,公司ID,用户名,审核码,个案码,序号/版本号);

 

支持.net,java自动审核

 

摘自:https://blog.csdn.net/dycp125/article/details/133881943

 

posted @ 2025-04-30 14:53  浪潮  阅读(68)  评论(0)    收藏  举报