webservice接口调用OA方法

【背景】

    最近一直在做这样一个需求,在OA中写一个webservice接口,通过调用OA中更新的方法来同步上级主管,我们公司的OA系统是买的产品,一无所知的我就这样开启了无悔的探索寻求之路~
    首先是调试别人写好的内部webservice接口,外面是调不通的,因为开始的时候一直认为这个接口外面是可以访问的,后来又联系了写接口的那个伙计,搞了很长一段时间,但还是无果,最终才知道,这个接口外面是访问不通的~当听到这个消息之后,一脸懵B,继续前行~
    后来开始搞另外一个,嵌套在OA中的对外的接口,这个是可以访问的,因为针对于我们公司的机器人开发的这个接口,并且正在投入使用中~
    经过几个小时的探索之路,大概了解到了其中的访问方式,以及对应的结构,欣喜的小编就这样继续前行~

【剖析过程】

    对了,先让读者朋友看一下大概的一个结构图:
      新建一个普通的java工程,这个就不多说了,建立成如下相应的结构;其中synlinemanager以上的内容都是OA系统中规定好的结构;6.0为OA系统依赖的所有jar包。
   下面为controller中的内容(其中调用了OA中的方法进行业务逻辑的实现):
-
package com.seeyon.apps.synlinemanager.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.seeyon.ctp.common.AppContext;
import com.seeyon.ctp.common.controller.BaseController;
import com.seeyon.ctp.organization.bo.V3xOrgMember;
import com.seeyon.ctp.organization.manager.OrgManager;
import com.seeyon.ctp.organization.services.OrganizationServices;
import com.seeyon.ctp.util.annotation.NeedlessCheckLogin;

public class synlinemanagerController extends BaseController {
	
	private static final Log log = LogFactory.getLog(synlinemanagerController.class);
	

	@NeedlessCheckLogin
	 public String synlinemanager(HttpServletRequest request, HttpServletResponse response) throws Exception {

		String xml="";
      try { 
	    	OrgManager orgManager = (OrgManager) AppContext.getBean("orgManager");
	    	OrganizationServices syncServices = (OrganizationServices) AppContext.getBean("organizationServices");
	    	
	    	String loginname = request.getParameter("loginname");
	    	String ld = request.getParameter("id");
	    	  
	    	V3xOrgMember member = new V3xOrgMember(); 
	  		V3xOrgMember mem = new V3xOrgMember(); 
	  		member = orgManager.getMemberByLoginName(loginname);//根据登录名查询oa中的人员
	  		log.info(member.toString());
	  		log.info("========================");
	  		log.info(member.getProperties().toString());
	  		log.info("========================");
	  		log.info(member.getId());
	  		
	  		mem = orgManager.getMemberByLoginName(ld);//根据领导的登录名查询oa中的人员信息
	  		if (ld != null && !"".equals(ld)) {
	  			Map  map = new HashMap();
	  			map.put("reporter", mem.getId());
	  			member.setProperties(map);//setProperty();//加oa中字段的名称
	  		}	
	  		
	  		syncServices.updateMember(member);

			xml="我出来,一定是执行成功了~";
			
		} catch (Exception e) {
			 
		     xml = "报错之后应该打印的信息";
		      
			e.printStackTrace();
		}

      	log.info(xml);
      
		return "执行成功";
		
	}
	
	
}
-

    下面为spring-synlinemanager-controller.xml文件中的内容(为了实现外部调用,这里通过springmvc来实现的):
-
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName">
	<bean name="/synlinemanager.do" class="com.seeyon.apps.synlinemanager.controller.synlinemanagerController">
	 		
	</bean>
</beans>
-

    下面为pluginCfg.xml中的内容(这里是OA中对应的一个规则):
-
<?xml version="1.0" encoding="UTF-8"?> 
<plugin>
    <id>synlinemanager</id>
    <name>更新上级主管</name>
    <category>20170322</category>
</plugin>
-

    最后将建立好生成的.class文件以及.xml文件放到环境中对应的目录下,重启OA服务,就已经实现了相应的功能。

【成长记录】

    在路上的那些坎坷,其实有时候真的不能够切合实际的去表达出来,但是那份经历,也许可以称之为经验之路吧~
    因为要涉及和甲方公司的工程师进行沟通交流,在熟悉业务以及需求的同时,熟悉相关代码,并进行各种尝试以及测试工作~
    在这个过程中,我明白了,聆听的重要性,你既要当一个会聆听的人,更要在聆听的过程中找出主要矛盾。
    在这个过程中,我明白了,做一个事情就要紧抓自己的方向,在沟通交流过程中绝不能够让别人把你带的跑出去很远,要始终站在更高的立场,每一步都要思考自己最终的目标。

【感受】

    不断前行的路上会遇到很多的事情,那些都是一个成长的过程,不断努力就OK了~~
### 回答1: 泛微oa是一种常用的办公自动化软件,它可以通过WebService接口进行调用WebService接口是一种基于Web的技术,可以使不同的应用程序之间进行数据交互和通信。 调用泛微OAWebService接口需要以下步骤: 1. 确定要调用WebService接口的地址。通常情况下,泛微OAWebService接口地址为"http://[oa域名]/ServiceForAndroid.asmx"。可以在泛微OA的官方文档或者相关的技术资料中找到接口地址。 2. 创建一个调用WebService接口的客户端。可以使用Java、.NET等编程语言来创建客户端。根据不同的编程语言和开发平台,创建客户端的方式也会有所不同。 3. 根据需要调用接口方法,将参数传递给相应的接口方法。每个接口方法都有相应的功能或者操作,可以根据需求选择合适的方法进行调用。 4. 调用WebService接口方法,并获取返回结果。根据接口的返回值类型不同,可以通过相应的方式获取返回结果。 5. 对返回结果进行处理和解析。根据返回结果的不同格式和数据结构,可以对返回结果进行相应的处理和解析,以便后续的业务逻辑操作或者展示。 需要注意的是,调用泛微OAWebService接口需要提供相应的权限和认证。通常情况下,需要提供访问接口的用户名和密码。 以上是关于如何对泛微OAWebService接口进行调用的简要介绍。具体的调用方式和操作细节可以参考泛微OA的官方文档或者相关的技术资料。 ### 回答2: 泛微OA是一种常用的企业办公自动化系统,它提供了丰富的功能和扩展性,其中包括了Webservice接口调用Webservice是一种基于Web服务标准的接口调用方式,可以实现不同系统之间的数据交互和功能扩展。 在使用泛微OAWebservice接口进行开发和调用时,首先需要了解OA系统提供的接口文档和功能接口,以便清楚接口的使用方法和参数格式。接口文档通常包含了接口的名称、输入参数、输出参数等信息,开发人员可以根据需要对接口进行调用和测试。 接口调用的步骤大致如下: 1. 确定需要调用接口名称:根据业务需求,确定需要调用接口名称。 2. 创建Webservice客户端:在开发环境中创建Webservice客户端,用于与OA系统的接口进行通信。 3. 设置Webservice接口的访问地址:根据OA系统提供的接口地址、命名空间等信息,进行配置。 4. 构造请求参数:根据接口文档中定义的输入参数,构造相应的请求参数。 5. 调用接口方法:通过Webservice客户端调用相应的接口方法,将请求参数传递给OA系统。 6. 处理响应结果:接收到OA系统返回的响应结果后,根据接口文档中定义的输出参数进行处理和解析。 7. 处理异常情况:在接口调用过程中,可能会发生各种异常情况,需要进行相关的异常处理。 总的来说,泛微OA Webservice接口调用是一种方便灵活的方式,可以实现企业业务系统与OA系统之间的数据交互和功能扩展。通过了解接口文档和按照规范进行开发,可以有效地调用和管理接口,提高工作效率和系统的整合性。 ### 回答3: 泛微OA是一款功能强大的企业管理软件,具有开放的Web服务接口,可以实现与其他系统的数据交互和集成。通过调用泛微OAWeb服务接口,可以实现各种功能,如创建、修改和删除数据,查询数据,以及执行各种操作。 泛微OAWeb服务接口使用SOAP(简单对象访问协议)协议进行通信,通过HTTP或HTTPS进行数据传输。开发者可以使用各种编程语言,如Java、C#等,通过SOAP协议调用泛微OAWeb服务接口。 使用泛微OAWebService接口,需要先通过身份验证获得访问权限。在调用接口之前,需要传递正确的用户名和密码进行认证,以确保只有授权的用户能够访问和操作数据。 接口调用时,需要传递特定的参数和数据格式,根据接口文档提供的方法和参数进行调用。例如,如果要创建一个新的公文,可以调用CreateDoc方法,传递相应的参数,如公文标题、内容等。调用接口后,会返回相应的结果,通过接口返回的数据可以进行进一步的处理和操作。 在进行接口调用时,需要注意接口的安全性和性能。在传递参数和数据时,要进行数据校验和过滤,确保数据的准确性和完整性。同时,要注意调用接口的频率和并发性,避免对系统性能造成负担。 总之,泛微OAWebService接口提供了一种方便、灵活的方式与泛微OA系统进行集成和数据交互。开发者可以根据自己的需求,通过调用接口实现各种功能和操作。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

创业之路&下一个五年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值