易飞9审核员接口分析

易飞审核员说明

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

审核元相关分析

DELPHI代码

uses
ComObj

//调用审核元方法
TransManager := CreateOleObject('TRANSMANAGER.TXNMANAGER');
//调用审核的方法
mResult := TransManager.Doit(mInitParam);
//相关参数说明
mAction:= VarArrayCreate([0,8],VarVariant);
mAction[1] //日志保存 N 不保存日志, Y保存日志
mAction[2] //审核状态执行 DO 执行   UNDO 取消执行。
mAction[3] //单别
mAction[4]  //单号 或者 底稿编号
mAction[5] // 序号或版本号
mAction[6]  //flag
mAction[7]  //审核日期
mAction[8]  //确认日期

mInitParam := VarArrayCreate([0,5],VarVariant);
mInitParam[0] := 'TXNMOCI03'; // 作业程序代号
mInitParam[1] := 8888; // 公司ID
mInitParam[2] := YFDEMO;  //数据库名称
mInitParam[3] := DS; //用户ID
mInitParam[4] := '';
mInitParam[5] := mAction ;

封装审核元接口

DELPHI代码

procedure TYFerpfrm.CallTransManager(SlipType,SlipCode,TransDate,ProID,CompanyID,UserId,TODO,ISModi,Ver:string);
var
  tmpmsg: string;
  k:Integer;
  mResultDesc:OleVariant;
  submResultDesc:OleVariant;
  mInitParam,mAction:OleVariant;
  mResult:Boolean;
  TransName:string;
begin
    mAction:= VarArrayCreate([0,8],VarVariant);
    mAction[0] :='';
    mAction[1] :='N'; //Y保存执行日志 ,N不保存执行日志
    if TODO='Y' then
    begin
      mAction[2] :='DO';  //DO 审核执行,UNDO 取消审核执行
    end
    else
    begin
      mAction[2] :='UNDO';  //DO 审核执行,UNDO 取消审核执行
    end;
    mAction[3] :=trim(SlipType);         //单别或者底稿编号
    mAction[4] :=trim(SlipCode);   //单号或者生效日期,为底稿编号时,这里为flag
    mAction[5] :=0;  //审核时为0,审核成功。 //录入发票审核时为1  //版本号,审核单据没有版本本号,所以为 0
    mAction[6] :='';             //flag
    mAction[7] :=trim(TransDate);

        //变更单单据处理。
    if ((ProID='COPI07') OR (ProID='PURI08') OR (ProID='MOCI11') OR (ProID='PURI13') OR (ProID='MOCI12')) then
    begin
      if (VarIsEmpty(Ver) or VarIsNull(Ver)) then
      begin
            msg:=trim(SlipType)+'-'+trim(SlipCode)+'-'+trim(Ver)+' '+'版本号或序号为空,无法审核!';
            mylogList.Add(msg);
            exit;

      end;
      mAction[5]:=trim(Ver);
      mAction[6] :=0;
      mAction[8] :=trim(TransDate);
    end;

    adoquery2.Connection:= ADOConnection1;
    adoquery2.Close;
    adoquery2.SQL.Clear;
    adoquery2.SQL.Text:='select MB001,MB002,MB003 from DSCMB where MB001 ='''+trim(CompanyID)+'''';
    adoquery2.Open;
    mInitParam := VarArrayCreate([0,5],VarVariant);
    mInitParam[0] := 'TXN'+UpperCase(trim(ProID)); // 作业代号
    mInitParam[1] := trim(adoquery2.fieldbyname('MB001').AsString); // 公司ID
    mInitParam[2] := trim(adoquery2.fieldbyname('MB003').AsString);  //数据库名称
    mInitParam[3] := trim(UserId); //用户ID
    mInitParam[4] := '';
    mInitParam[5] := mAction ;

    if ISModi='N' then  //连接审核元接口
    begin
     TransManager := CreateOleObject('TRANSMANAGER.TXNMANAGER');
    end
    else
    begin
    adoquery3.Connection:= ADOConnection1;
    adoquery3.Close;
    adoquery3.SQL.Clear;
    adoquery3.SQL.Text:='SELECT MC001,MC003,MC004 FROM DSCMC where MC001 = '''+UpperCase(trim(ProID))+'''';
    adoquery3.Open;
    mInitParam[0] := 'TXN'+UpperCase(trim(adoquery3.fieldbyname('MC004').AsString)); // 作业代号
    if trim(adoquery3.fieldbyname('MC003').AsString) ='TransModi_DPM.Class1' then
    begin
        TransName:='TRANSMANAGER.TXNMANAGER';
    end
    else
    begin
        TransName:=UpperCase(trim(adoquery3.fieldbyname('MC003').AsString));
    end;
    TransManager := CreateOleObject(TransName);
    end;


    if not (VarIsEmpty(TransManager) or VarIsNull(TransManager)) then
      begin
        try
            mResult := TransManager.Doit(mInitParam);
        except on E: Exception do
          begin
           mylogList.Add(E.Message);
           exit;
          end;
        end;
        if mResult =false then   //执行失败时反馈
        begin
         mResultDesc:=TransManager.ResultDesc;
         if (VarIsEmpty(mResultDesc) or VarIsNull(mResultDesc)) then  //判断是否有异常报错反馈内容,如果没有就直接输出结果报错。如果有就取报错数据进行组合
         begin
            if (VarIsEmpty(Ver) or VarIsNull(Ver)) then
            begin
              msg:=trim(SlipType)+'-'+trim(SlipCode)+' '+TransManager.ErrorDescript;
            end
            else
            begin
              msg:=trim(SlipType)+'-'+trim(SlipCode)+'-'+trim(Ver)+' '+TransManager.ErrorDescript;
            end;
            mylogList.Add(msg);
            exit;
         end
         else
         begin
          submResultDesc:= mResultDesc[2];
         end;
         adoquery4.Connection:= ADOConnection1;
         adoquery4.Close;
         adoquery4.SQL.Clear;
         adoquery4.SQL.Text:='SELECT TYPE,ID,MSG from MSGCHT where ID = '''+mResultDesc[1]+''' and TYPE= '''+mResultDesc[0]+'''';
         adoquery4.Open;
         tmpmsg:=adoquery4.fieldbyname('MSG').AsString;
         K := 0;
         msg:='';
         while Pos('%S',tmpmsg) > 0 do
         begin
          tmpmsg := StringReplace(tmpmsg,'%S', submResultDesc[K],[]);
          K:=K+1;
         end;

         if (VarIsEmpty(Ver) or VarIsNull(Ver)) then  //有版本号或者序号时,消息增加序号或版本号
         begin
           msg:=trim(SlipType)+'-'+trim(SlipCode)+' '+mResultDesc[0]+':'+mResultDesc[1]+'-'+tmpmsg;
         end
         else
         begin
           msg:=trim(SlipType)+'-'+trim(SlipCode)+'-'+trim(Ver)+' '+mResultDesc[0]+':'+mResultDesc[1]+'-'+tmpmsg;
         end;
        end
        else
        begin  //执行成功时反馈结果
          if (VarIsEmpty(Ver) or VarIsNull(Ver)) then
          begin
            msg:=trim(SlipType)+'-'+trim(SlipCode)+' '+TransManager.ErrorDescript;
          end
          else
          begin
            msg:=trim(SlipType)+'-'+trim(SlipCode)+'-'+trim(Ver)+' '+TransManager.ErrorDescript;
          end;
        end;
        mylogList.Add(msg);
      end;
    TmRet:=mResult;
end;

//调用方法
CallTransManager(单别,单号,审核日期,作业编号,公司ID,用户名,审核码,个案码,序号/版本号);

在这里插入图片描述

其它说明

以上接口分析只能完成一些常规单据(工单、采购单、销售单等)的审核,而无法实现特殊单据的审核,如(库存交易单、采购发票、DPM个案等),不知道需要配置哪些参数,有知道大神的还望可以告知。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 易飞erp是一款优秀的企业管理软件,其二次开发接口非常强大、灵活,能够满足各种企业业务的二次开发需求。易飞erp提供的二次开发接口包括Web API、数据对象API、JavaScript API等多种形式,用户可以根据自己的需求选择最合适的形式进行开发。使用易飞erp二次开发接口,可以方便地实现业务逻辑和界面定制功能,开发效率高,能够满足企业快速变化的业务需求。 Web API是易飞erp提供的重要的二次开发接口,通过Web API,用户可以方便地实现对软件中所有数据和业务逻辑的访问和操作。数据对象API和JavaScript API则更多的是帮助开发人员定制界面和进行数据处理。这些接口不仅提供了灵活的开发方式,而且易风erp还提供了完善的开发文档和范例,方便开发人员快速上手和开发易飞erp凭借其优秀的二次开发接口,已经成为了广大企业管理软件开发者的首选。通过易飞erp的二次开发接口,可以方便地实现各种业务需求,减少了开发人员的工作量和时间成本,提高了企业管理软件的开发效率和质量。 ### 回答2: 易飞ERP是一款企业管理软件,它提供了很多常用的管理模块,例如销售管理、采购管理、库存管理、财务管理等等。易飞ERP还提供了二次开发接口,可以帮助用户对其功能进行扩展和定制化。 易飞ERP的二次开发接口主要包括三个方面: 1. 数据接口:易飞ERP提供了RESTful API接口,可以方便地与其他系统进行数据交换和共享。 2. 插件接口:易飞ERP提供了插件接口,用户可以通过开发插件来扩展其功能。 3. 自定义字段接口:易飞ERP允许用户自定义字段,可以通过二次开发接口来实现自定义字段的功能。 对于企业来说,二次开发接口是非常有用的。通过二次开发接口可以满足企业的特定业务需求,实现个性化定制。特别是一些中小企业,由于业务量相对较小,所以很难找到一款完全符合其需求的ERP软件。此时引入二次开发接口可以帮助他们在易飞ERP的基础上进行个性化的定制。 总之,易飞ERP的二次开发接口提供了很好的扩展性和灵活性,可以满足不同企业的不同需求。对于开发者来说,也能够快速上手,并且易飞ERP提供了完善的开发文档和技术支持,协助开发者在开发过程中遇到的困难。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东枫落定

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值