OA与NC系统集成接口开发方案目录目录.......................................................................14单点登录...................................................................24.1注册登录key访问接口....................................................................................................24.2访问NC-EHR业务功能...................................................................................................25.代办事项列表信息..........................................................36单一代办事项信息展示.......................................................34单点登录由OA系统客户端提供登录参数,到OA服务器,OA服务端通过的web服务方式向NC服务端注册申请登录key,OA服务端将登录key作为响应结果返回到的OA客户端,作为之后访问NC-EHR系统的依据。步骤说明源系统目的系统1最终用户登录请求OA客户端OA服务端2登录key申请OA服务端NC服务3访问NC服务OA客户端NC服务4.1注册登录key访问接口通过NC提供的机制。OA客户端使用HTTP协议GET或POST方式向指定的地址提交如下格式的参数,注册用于访问NC-EHR系统的登录key.()参数意义accountcode帐套编码workdate工作日期language登录语言usercode用户编码pwd密码key生成的唯一key。4.2访问NC-EHR业务功能一旦注册完成,可直接使用=注册所使用key略过登录界面,直接进入NC主界面。5.代办事项列表信息NC提供以webservice方式获取代办事项信息列表的接口OA系统根据webservice接口和对应的用户信息,得到用户所对应的代办事务信息列表,展现到OA系统中。传到NCservice接口的参数信息包括:代办单据PK,用户pk,单据类型,主题,发送人。数据获取方式如%Stringendpoint==newService();Callcall=(Call)service.createCall();StringuserPk=0001AA100000000033W6;//nc用户的pkcall.setTargetEndpointAddress(newjava.net.URL(endpoint));call.setOperationName(readNCPeding);call.addParameter(userPK,XMLType.XSD_STRING,ParameterMode.IN);call.setReturnType(XMLType.SOAP_ARRAY12);String[][]ret=(String[][])call.invoke(newObject[]{userPk});%6单一代办事项信息展示NC系统提供以webservice方式获取指定代办事项的接口。指定访问参数。在NC系统中打开指定代办事项。传到NCservice接口的参数信息包括:NC用户主键,代办事务信息PK。数据获取展示方式如%@taglibprefix=curi=@pagecontentType=text/html;charset=UTF-8%%@pageimport=java.net.URL%%@pageimport=java.net.URLConnection%%@pageimport=java.net.HttpURLConnection%%@pageimport=java.util.Enumeration%%@pageimport=java.util.*%scriptLANGUAGE=JavaScriptfunctionshow(str){alert(str);this.close();}/***打开被集成的NC系统的某个节点*@paramfuncode被打开节点的节点号*/functionopenNCNode(参数值,key,DNS){try{execNCAppletFunction(com.nc.ui.webservice.open.OpenClient,openMsgPanel,参数值,key,DNS);}catch(error){}};/****@paramargStr调用类的参数String*@paramisNcJob是否是打开NC待办事务节点.*/functionexecNCAppletFunction(className,methodName,argStr,key,DNS){try{varncFrame=document.getElementById(ncf);//此处注意gateUrl的key参数是根据单点登录情况动态形成的vargateUrl=DNS+/login.jsp?key=+key;alert(key);if(ncFrame==null)ncFrame=initNCFrame(gateUrl);waitLoadNCApplet(className,methodName,argStr);}catch(error){}}functionwaitLoadNCApplet(className,methodName,argStr){varapplet=null;try{varncFrame=document.getElementById(ncf);if(ncFrame!=null)applet=ncFrame.contentWindow.document.applets[NCApplet];alert(opnencapplet);}catch(error){showErrorDialog(getappleterror:+error.name+:+error.message);return;}if(applet==null){setTimeout(waitLoadNCApplet('+className+','+methodName+','+argStr+'),100);return;}alert(opened);openNCApplet(argStr);};functionopenNCApplet(argStr){try{varnf=document.getElementById(ncf);if(nf!=null){//alert(ncIFrameok);}else{alert(ncIFramenull);}varncapplet;//alert(nf.src);ncapplet=nf.contentWindow.document.applets[NCApplet];//alert(ncapplet);if(ncapplet!=null){//alert(ncappletok);}else{alert(ncappletnull);}//ncapplet.callNC(nc.bs.webservice.open.OpenClient,openMsgPanel,);ncapplet.callNC(com.nc.ui.webservice.open.OpenClient,openMsgPanel,);alert(callok);}catch(error){}};functioninitNCFrame(url){varframeID=ncf;varframe=document.createElement(iframe);frame.id=frameID;frame.style.position=relative;frame.style.left=0;frame.style.top=0;frame.style.width=0;frame.style.height=0;frame.frameBorder=0;frame.width=0;frame.height=0;//frame.desingMode=off;frame.src=url;document.body.appendChild(frame);returnframe;};/***当portlet初次进入View时需要调用此方法将过时的iframe信息清除掉.*/functionclearNCFrame(){varframeID=ncf;varncFrame=$(frameID);if(ncFrame!=null){ncFrame.src=;ncFrame.parentNode.removeChild(ncFrame);}}/scripthtmlhead/head%Randomrd=newRandom();inti=rd.nextInt(100)+1;//为该用户设置一个默认操作帐套,可能需要根据项目的实际情况进行修改//如果用户已经通过认证,该方法会取得用户的用户名URLurl=newURL(=+i+&accountcode=dacc&language=simpchn&usercode=zhwj&pwd=1&pkcorp=1001);URLConnectionuc=url.openConnection();uc.setDoOutput(true);HttpURLConnectionhttpconn=(HttpURLConnection)uc;Stringstr_return=httpconn.getResponseMessage();//当注册中心成功注册了用户本次登录的用户信息时,将会返回“OK”if(str_return.equals(OK)){out.println(start______);out.println(scriptlanguage=\javascript\openNCNode('参数值','+i+','+)/script);}out.println(end___);%/html