金蝶创建webservice接口和调用

article/2025/8/26 20:49:59

注意:因为文件缺失webservice这部分是以3个功能来描述的

webservice金蝶有标准接口可以在金蝶社区找到文档,自己写一个webservice接口需要在金蝶bos设计开发工具matedata目录下新建一个功能。

注意:功能命名结尾要以Facade结尾

功能建完后再到 方法里面完成方法的命名、返回值、参数命名、参数类型的设置。

完成后再右键方法名先发布功能再发布webservice(发布webservice时要勾选参数) 

接着在java模块刷新解决方案,会自动生成对应的controllerbean等文件,将发布出来的webservice文件导入 到对应的目录下

找到新建功能对应的controllerbend(功能名加controllerbean)

在controllerbean内重写webservice方法 

@Overrideprotected String _getUsernamEas(Context ctx, String IdCard){System.out.println("IdCard:"+IdCard);JSONObject js = new JSONObject();JSONArray jsonArray = new JSONArray();if(IdCard == null){js.put("statue", false);js.put("msg", "身份证号为空!");return js.toString();} else {PersonCollection personInfo = null;try {personInfo = PersonFactory.getLocalInstance(ctx).getPersonCollection(" where idCardNo = '" + IdCard + "'");} catch (BOSException e) {// TODO Auto-generated catch blocke.printStackTrace();js.put("statue", false);js.put("msg", "身份证号不存在");return js.toString();}String number=null;UserCollection userInfo=null;if ( personInfo.size()>0) {String id=personInfo.get(0).getId().toString();try {userInfo = UserFactory.getLocalInstance(ctx).getUserCollection(" where person = '" + id + "'");} catch (BOSException e) {// TODO Auto-generated catch blocke.printStackTrace();}//查询number,即用户的usernameif(userInfo.size()>0){number= userInfo.get(0).getNumber();js.put("number", number);}else{js.put("statue", false);js.put("msg", "eas系统中该用户不存在");return js.toString();}}else {js.put("statue", false);js.put("msg", "身份证号:"+"'"+IdCard+"'不存在");return js.toString();}}return js.toString();}

接着就是编写demo测试接口

启动bos开发工具进入http://localhost:56898/ormrpc/services链接查找创建的webservice

调用EAS webservice示例

访问http://EAS的IP: 端口/ormrpc/services,下载调用wsdl

  

打开eclipse新建一个项目点击右键选择New下的Other(快捷键Ctrl+N)

点击Other,选择 Web Service包下的 Web Service Client点击Next

点击 Next 进入Web Services

  

新建一个java类直接调用

测试类代码

package test;

import java.rmi.RemoteException;

import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Stub;

import client.WSContext;

import deptfacade.client.WSInvokeException;

import localhost.ormrpc.services.EASLogin.EASLoginProxy;

import localhost.ormrpc.services.EASLogin.EASLoginProxyServiceLocator;

import localhost.ormrpc.services.WSDeptFacade.WSDeptFacadeSrvProxy;

import localhost.ormrpc.services.WSDeptFacade.WSDeptFacadeSrvProxyServiceLocator;

public class TestInterfaceFacade {

    public static void main(String[] args) {

         EASLoginProxyServiceLocator locator = new EASLoginProxyServiceLocator();

         EASLoginProxy proxy = null;

         try {

         proxy = locator.getEASLogin();

//          用户名,密码,固定值eas,861数据中心编码,固定值L2,2是orcale数据库

            WSContext wscontext=proxy.login("eas", "kdesa", "eas", "861", "L2", 2);

            System.out.println(wscontext.getSessionId());

            if(wscontext.getSessionId()!=null&&wscontext.getSessionId()!="") {

                Dept(wscontext);      

            } else {

                System.out.println("登录EAS失败,请确认登录信息是否正确");

            }

           

        } catch (Exception e) {

            e.printStackTrace();

        }finally {

            if(proxy != null) {

                try {

                   proxy.logout("user", "kduser", "eas", "861");

                } catch (RemoteException e) {

                   e.printStackTrace();

                }

            }

        }

        }

   

//  部门接口

    private static void Dept(WSContext wscontext) throws ServiceException, WSInvokeException, RemoteException {

        WSDeptFacadeSrvProxyServiceLocator dLocator=new WSDeptFacadeSrvProxyServiceLocator();

        WSDeptFacadeSrvProxy dProxy=dLocator.getWSDeptFacade();

        ((Stub)dProxy).setHeader("http://login.webservice.bos.kingdee.com", "SessionId",wscontext.getSessionId());

//      调用部门编码number

        String dresults=dProxy.query("10910");

        System.out.println(dresults);

    }

}


http://chatgpt.dhexx.cn/article/pRKKOfWC.shtml

相关文章

BOS金蝶云星空开发简单账表

一.BOS创建简单账表: 1.左键单击左上角文件->新建。 2.选择简单账表,输入名称,编号,点击确定,创建简单账表。 3.选择过滤条件框,输入名称,编号,点击确定。 二.Visual Studio…

金蝶插件开发理解

(1)金蝶软件 金蝶是一家从事企业管理,从事财务,供应链,仓库等等的软件公司 金蝶的软件可以分成两部分: 1,BOS模块,配置开发模块 2,前端界面模块 3,后端可以通过配置和写插件的形式开…

金蝶二开感受

小白感受篇 最近换工作,公司使用金蝶系统来作为公司的财务中台,因此与金蝶云星空结缘。 说说我的感受、以及对金蝶二开的理解。后面我应该也会不定时更新我对金蝶的看法以及新的感受。 在我没有真正接触金蝶前,我只知道有些比较知名的软件…

金蝶EAS开发 第一弹:了解开发工具与基本使用(上)

毕业前夕,我来到了一家物流公司实习,为本公司做系统.我被分配的是用金蝶做财务系统的二次开发,没有文档的帮助真的让我头皮发麻,还好同事很热心,一直在帮助我,不然要上手这玩意还真的很有难度.入职已经两个星期了,我觉得好记性不如烂笔头,今天开始我准备尽量将学到的知识记录下…

金蝶插件开发

1、报表开发 报表开发需要表头表体两个插件,表头继承AbstractReportFormPlugin类,表体继承AbstractReportListDataPlugin类,其中列表的数据需要显示,则主要靠的是AbstractReportListDataPlugin子类实现query(&#xf…

金蝶BOS开发入门

金蝶BOS开发入门 金蝶BOS开发工具介绍 解决方案相当于一个JAVA项目,而BOS开发工具是开发解决方案的技术平台。它可以新建一个解决方案,或者从本地或者远程导入一个已有的解决方案,具体操作后续会讲到。 界面介绍和简单使用 简单&#xff…

金蝶EAS开发笔记

1.界面介绍 1. 新建业务单位,若无需求,默认选用财务组织。 2. 在项目路径下的\metadata\com\kingdee\eas\custom\bill 可改单据名称。 3. 标准:默认先在用户自定义下面建立报表(rpt)、基础资料(basedata)和业务单据(bill),即在…

测试用例设计方法——因果图法

1.因果图  1.1考虑所有输入/输出条件的相互制约关系以及组合关系  1.2考虑输入条件之间的依赖关系;  1.3再根据分析的关系来转化为判定表的规则 2.条件与结果之间的关系  2.1恒等  2.2非(~)  2.3或(V)  2.4与 3…

实验4、黑盒测试:因果图法及测试用例设计

实验4、黑盒测试:因果图法及测试用例设计 一、实验目的 1、掌握因果图的概念。 2、掌握因果图测试用例设计法。 二、实验任务 以下三个任务、至少完成一个 1、某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一…

【测试入门】测试用例经典设计方法 —— 因果图法

01、因果图设计测试用例的步骤 1、分析需求 阅读需求文档,如果User Case很复杂,尽量将它分解成若干个简单的部分。这样做的好处是,不必在一次处理过程中考虑所有的原因。没有固定的流程说明究竟分解到何种程度才算简单,需要测试…

【测试】根据因果图法设计饮料售卖机的测试用例

【测试】根据因果图法设计饮料售卖机的测试用例 因果法设计测试用例的步骤: ① 分析所有可能的输入和可能的输出 ② 找出输入与输出之间的对应关系 ③ 画出因果图 ④ 把因果图转换成判定表 ⑤ 把判定表对应到每一个测试用例 产品说明: 有一个处理单价为…

软件测试用例设计方法-因果图法

边界值法是等价类划分法的补充,所以,它们是一对搭档。 那么,判定表法有没有它的搭档呢? 答案是,有的。那就是本篇文章分享的用例设计方法—— 因果图法 。 定义 因果图法: 用来处理等价类划分和边界值考…

测试用例设计方法---因果图法

学习目标 掌握因果图法的核心 掌握因果图的基本符号了解因果图的画法 1、什么是因果图法 因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适用于检查程序输入条件的各种组合情况 2、因果图法的核心 因 、 果 1、所谓的原因就是输入,所谓的结果就…

因果图法设计测试用例

等价类划分法、边界值分析法及错误推断法在对输入条件的考虑中并未重视输入条件的组合。事实上,当输入条件存在若干种可能的组合时,必须对这些组合加以考虑,以证实测试程序在某种输入组合的情况下恩能否完成规格说明书中预先规定的功能&#…

通俗的讲,Java后端到底是干什么的?语言工程师到底是啥?你是工程师吗?

新手程序员通常会走入一个误区 就是认为学习了一门语言,就可以称为是某某语言工程师了。但事实上真的是这样吗?其实并非如此。 今天我们就来聊一聊,Java 开发工程师到底开发的是什么东西。准确点来说,Java后端到底在做什么&…

Web开发从前端、后端、编程语言、到框架的初学指南

[导读] 作为一篇Web开发初学者指南,本文从学习什么出发到如何专攻。从前端、后端,到编程语言,再到框架,或许对打算进军Web开发的您有所帮助。如果你正在阅读这篇文章,你可能是对Web开发有某种兴趣,甚至你开…

数据库与后端语言

什么是数据库 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期储存在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 什么是后端语言 后端语言,在Web应用中实际上就是向前端提供需要显示网页内容的数据,这些数据大多…

前端和后端分别是什么?

从技术工具来看: 前端:常见的 html5、JavaScript、jQuery... 后端:spring、tomcet、JVM,MySQL... 毕竟,如果这个问题问一个老后端,他掰掰手指可以给你罗列出一堆的名词来,比如设计模式、数据库…

前端 语言

前端语言 名称简介用法网址CSSCSS 是一种描述 HTML 文档样式的语言。CSS 描述应该如何显示 HTML 元素https://www.w3school.com.cn/css/index.aspCSS3CSS3 是最新的 CSS 标准。操作https://www.runoob.com/css3/css3-tutorial.htmlScss/SassScss是CSS的预处理器,一…

前后端语言简析

目录 什么HTML语言? 什么是CSS语言&#xff1f; 什么是Javascript语言&#xff1f; 什么是PHP语言&#xff1f; 什么是Mysql语言&#xff1f; 什么HTML语言? 作用&#xff1a;定义的是【网站显示的内容】。 表现形式&#xff1a;<标签名>内容</标签名> …