在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → U8测试实例

U8测试实例

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:0.45M
  • 下载次数:103
  • 浏览次数:2484
  • 发布时间:2018-08-16
  • 实例类别:C#语言基础
  • 发 布 人:lvan2821
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 实例 测试

实例介绍

【实例简介】

【实例截图】

from clipboard

【核心代码】

//[新增或修改]调用示例

//如果是非门户的独立进程,请将U8SOFT\ufcomsql目录中的U8Login.dll替换为Debug版的Login。

//添加对Interop.U8Login.dll引用(在U8SOFT\Interop目录)
//添加对Interop.MSXML2.dll引用(在U8SOFT\Interop目录)

//添加对U8API框架三个类库引用(在U8SOFT\UFMOM\U8APIFramework目录):
//UFIDA.U8.U8APIFramework.dll
//UFIDA.U8.MomServiceCommon.dll
//UFIDA.U8.U8MOMAPIFramework.dll

//声明命名空间
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

//需要添加以下命名空间
using UFIDA.U8.MomServiceCommon;
using UFIDA.U8.U8MOMAPIFramework;
using UFIDA.U8.U8APIFramework;
using UFIDA.U8.U8APIFramework.Meta;
using UFIDA.U8.U8APIFramework.Parameter;
using MSXML2;

namespace U8APITest
{
    class Program
    {
        static void Main(string[] args)
        {
            //第一步:构造u8login对象并登陆(引用U8API类库中的Interop.U8Login.dll)
            //如果当前环境中有login对象则可以省去第一步
            U8Login.clsLogin u8Login = new U8Login.clsLogin();
            String sSubId = "DP";
            String sAccID = "(default)@999";
            String sYear = "2015";
            String sUserID = "demo";
            String sPassword = "DEMO";
            String sDate = "2015-01-11";
            String sServer = "localhost";
            String sSerial = "";
            if (!u8Login.Login(ref sSubId, ref sAccID, ref sYear, ref sUserID, ref sPassword, ref sDate, ref sServer, ref sSerial))
            {
                Console.WriteLine("登陆失败,原因:"   u8Login.ShareString);
                Marshal.FinalReleaseComObject(u8Login);
                return;
            }

            //第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数
            U8EnvContext envContext = new U8EnvContext();
            envContext.U8Login = u8Login;

            string connectionString = u8Login.UfDbName;
            ADODB.Connection conn = new ADODB.Connection();
            conn.Open(connectionString);
            conn.BeginTrans();

            //采购所有接口均支持内部独立事务和外部事务,默认内部事务
            //如果是外部事务,则需要传递ADO.Connection对象,并将IsIndependenceTransaction属性设置为false
            envContext.BizDbConnection = conn;
            envContext.IsIndependenceTransaction = false;

            //设置上下文参数
            envContext.SetApiContext("VoucherType", 1); //上下文数据类型:int,含义:单据类型,采购订单 1 
            envContext.SetApiContext("bPositive", true); //上下文数据类型:bool,含义:红蓝标识:True,蓝字
            envContext.SetApiContext("sBillType", ""); //上下文数据类型:string,含义:为空串
            envContext.SetApiContext("sBusType", "普通采购"); //上下文数据类型:string,含义:业务类型:普通采购,直运采购,受托代销

            //第三步:设置API地址标识(Url)
            //当前API:新增或修改的地址标识为:U8API/PurchaseOrder/VoucherSave
            U8ApiAddress myApiAddress = new U8ApiAddress("U8API/PurchaseOrder/VoucherSave");

            //第四步:构造APIBroker
            U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);

            //第五步:API参数赋值

            //给BO表头参数DomHead赋值,此BO参数的业务类型为采购订单,属表头参数。BO参数均按引用传递
            //提示:给BO表头参数DomHead赋值有两种方法

            //方法一是直接传入MSXML2.DOMDocumentClass对象
            MSXML2.DOMDocument domHead = new MSXML2.DOMDocument();
            domHead.load(@"c:\h.xml");
            broker.AssignNormalValue("DomHead", domHead);


            //给BO表体参数domBody赋值,此BO参数的业务类型为采购订单,属表体参数。BO参数均按引用传递
            //提示:给BO表体参数domBody赋值有两种方法

            //方法一是直接传入MSXML2.DOMDocumentClass对象
            MSXML2.DOMDocument domBody = new MSXML2.DOMDocument();
            domBody.load(@"c:\b.xml");
            broker.AssignNormalValue("domBody", domBody);


            //给普通参数VoucherState赋值。此参数的数据类型为int,此参数按值传递,表示单据状态:2新增,1修改,0非编辑
            broker.AssignNormalValue("VoucherState", 2);

            //该参数curID为OUT型参数,由于其数据类型为string,为一般值类型,因此不必传入一个参数变量。在API调用返回时,可以通过GetResult("curID")获取其值

            //该参数CurDom为OUT型参数,由于其数据类型为MSXML2.IXMLDOMDocument2,非一般值类型,因此必须传入一个参数变量。在API调用返回时,可以直接使用该参数
            MSXML2.IXMLDOMDocument2 CurDom = new MSXML2.DOMDocument();
            broker.AssignNormalValue("CurDom", CurDom);

            //给普通参数UserMode赋值。此参数的数据类型为int,此参数按值传递,表示模式,0:CS;1:BS
            broker.AssignNormalValue("UserMode", 0);

            //第六步:调用API
            if (!broker.Invoke())
            {
                //错误处理
                Exception apiEx = broker.GetException();
                if (apiEx != null)
                {
                    if (apiEx is MomSysException)
                    {
                        MomSysException sysEx = apiEx as MomSysException;
                        Console.WriteLine("系统异常:"   sysEx.Message);
                        //todo:异常处理
                    }
                    else if (apiEx is MomBizException)
                    {
                        MomBizException bizEx = apiEx as MomBizException;
                        Console.WriteLine("API异常:"   bizEx.Message);
                        //todo:异常处理
                    }
                    //异常原因
                    String exReason = broker.GetExceptionString();
                    if (exReason.Length != 0)
                    {
                        Console.WriteLine("异常原因:"   exReason);
                    }
                }
                //结束本次调用,释放API资源
                broker.Release();
                return;
            }

            //第七步:获取返回结果

            //获取返回值
            //获取普通返回值。此返回值数据类型为System.String,此参数按值传递,表示错误描述:空,正确;非空,错误
            System.String result = broker.GetReturnValue() as System.String;

            //获取out/inout参数值

            //获取普通OUT参数curID。此返回值数据类型为string,在使用该参数之前,请判断是否为空
            string curIDRet = broker.GetResult("curID") as string;

            //获取普通OUT参数CurDom。此返回值数据类型为MSXML2.IXMLDOMDocument2,在使用该参数之前,请判断是否为空
            //MSXML2.IXMLDOMDocument2 CurDomRet = Convert.ToObject(broker.GetResult("CurDom"));

            //结束本次调用,释放API资源
            broker.Release();

            Audit(u8Login, conn, curIDRet);

            conn.CommitTrans();

            return;
        }

        static string Audit(U8Login.clsLogin u8Login, ADODB.Connection conn, string id)
        {


            //////////////////////////////////////////

            //第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数
            U8EnvContext  envContext = new U8EnvContext();
            envContext.U8Login = u8Login;

            //采购所有接口均支持内部独立事务和外部事务,默认内部事务
            //如果是外部事务,则需要传递ADO.Connection对象,并将IsIndependenceTransaction属性设置为false
            envContext.BizDbConnection = conn;
            envContext.IsIndependenceTransaction = false;

            //设置上下文参数
            envContext.SetApiContext("VoucherType", 1); //上下文数据类型:int,含义:单据类型,采购订单 1 
            envContext.SetApiContext("bPositive", true); //上下文数据类型:bool,含义:红蓝标识:True,蓝字
            envContext.SetApiContext("sBillType", ""); //上下文数据类型:string,含义:为空串
            envContext.SetApiContext("sBusType", "普通采购"); //上下文数据类型:string,含义:业务类型:普通采购,直运采购,受托代销

            //第三步:设置API地址标识(Url)
            //当前API:审核订单的地址标识为:U8API/PurchaseOrder/ConfirmPO
            U8ApiAddress myApiAddress = new U8ApiAddress("U8API/PurchaseOrder/ConfirmPO");

            //第四步:构造APIBroker
            U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);

            //第五步:API参数赋值

            //给BO表头参数DomHead赋值,此BO参数的业务类型为采购订单,属表头参数。BO参数均按引用传递
            //提示:给BO表头参数DomHead赋值有两种方法

            MSXML2.DOMDocument domHead = GetDomHeadXml(u8Login, id);

            //方法一是直接传入MSXML2.DOMDocumentClass对象
            broker.AssignNormalValue("DomHead", domHead);

            //第六步:调用API
            if (!broker.Invoke())
            {
                //错误处理
                Exception apiEx = broker.GetException();
                if (apiEx != null)
                {
                    if (apiEx is MomSysException)
                    {
                        MomSysException sysEx = apiEx as MomSysException;
                        Console.WriteLine("系统异常:"   sysEx.Message);
                        //todo:异常处理
                    }
                    else if (apiEx is MomBizException)
                    {
                        MomBizException bizEx = apiEx as MomBizException;
                        Console.WriteLine("API异常:"   bizEx.Message);
                        //todo:异常处理
                    }
                    //异常原因
                    String exReason = broker.GetExceptionString();
                    if (exReason.Length != 0)
                    {
                        Console.WriteLine("异常原因:"   exReason);
                    }
                }
                //结束本次调用,释放API资源
                broker.Release();
                return "error";
            }

            //第七步:获取返回结果

            //获取返回值
            //获取普通返回值。此返回值数据类型为System.String,此参数按值传递,表示错误描述:空,正确;非空,错误
            string result = broker.GetReturnValue() as System.String;

            //结束本次调用,释放API资源
            broker.Release();

            return result;

        }

        static MSXML2.DOMDocument GetDomHeadXml(U8Login.clsLogin login, string id)
        {
            
            //第二步:构造环境上下文对象,传入login,并按需设置其它上下文参数
            U8EnvContext envContext = new U8EnvContext();
            envContext.U8Login = login;

            //采购所有接口均支持内部独立事务和外部事务,默认内部事务
            //如果是外部事务,则需要传递ADO.Connection对象,并将IsIndependenceTransaction属性设置为false
            //envContext.BizDbConnection = new ADO.Connection();
            //envContext.IsIndependenceTransaction = false;

            //设置上下文参数
            envContext.SetApiContext("VoucherType", 1); //上下文数据类型:int,含义:单据类型,采购订单 1 
            envContext.SetApiContext("bPositive", true); //上下文数据类型:bool,含义:红蓝标识:True,蓝
            envContext.SetApiContext("sBillType", ""); //上下文数据类型:string,含义:为空串
            envContext.SetApiContext("sBusType", "普通采购"); //上下文数据类型:string,含义:业务类型:普通采购,直运采购,受托代销

            //第三步:设置API地址标识(Url)
            //当前API:装载单据的地址标识为:U8API/PurchaseOrder/GetVoucherData
            U8ApiAddress myApiAddress = new U8ApiAddress("U8API/PurchaseOrder/GetVoucherData");

            //第四步:构造APIBroker
            U8ApiBroker broker = new U8ApiBroker(myApiAddress, envContext);

            //第五步:API参数赋值

            //给普通参数strWhere赋值。此参数的数据类型为System.String,此参数按值传递,表示过滤条件串
            broker.AssignNormalValue("strWhere", "poid = "   id);

            //给普通参数varVoucherID赋值。此参数的数据类型为System.String,此参数按值传递,表示单据主表ID
            broker.AssignNormalValue("varVoucherID", "");

            //给普通参数strLocateWhere赋值。此参数的数据类型为System.String,此参数按值传递,表示定位条件串
            broker.AssignNormalValue("strLocateWhere", "");

            //第六步:调用API
            if (!broker.Invoke())
            {
                //错误处理
                Exception apiEx = broker.GetException();
                if (apiEx != null)
                {
                    if (apiEx is MomSysException)
                    {
                        MomSysException sysEx = apiEx as MomSysException;
                        Console.WriteLine("系统异常:"   sysEx.Message);
                        //todo:异常处理
                    }
                    else if (apiEx is MomBizException)
                    {
                        MomBizException bizEx = apiEx as MomBizException;
                        Console.WriteLine("API异常:"   bizEx.Message);
                        //todo:异常处理
                    }
                    //异常原因
                    String exReason = broker.GetExceptionString();
                    if (exReason.Length != 0)
                    {
                        Console.WriteLine("异常原因:"   exReason);
                    }
                }
                //结束本次调用,释放API资源
                broker.Release();
                return null;
            }

            //第七步:获取返回结果

            //获取返回值
            //获取普通返回值。此参数的数据类型为System.String,此参数按引用传递,表示错误描述:空,正确;非空,错误
            System.String result = broker.GetReturnValue() as System.String;

            //获取out/inout参数值

            //out参数DomHead为BO对象(表头),此BO对象的业务类型为采购订单。BO参数均按引用传递,具体请参考服务接口定义
            //如果要取原始的XMLDOM对象结果,请使用GetResult("DomHead") as MSXML2.DOMDocument
            MSXML2.DOMDocument DomHeadRet = broker.GetResult("DomHead") as MSXML2.DOMDocument;

            //结束本次调用,释放API资源
            broker.Release();
            
            return DomHeadRet;
        }

    }
}

标签: 实例 测试

实例下载地址

U8测试实例

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警