`

向用友nc财务接口发送凭证

 
阅读更多
package com.nantian.nc;

import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.StringWriter;
import java.net.URL;
import java.net.URLConnection;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;

public class NCTest2 {
	public static void main(String[] args) {
		String urlStr = "http://192.168.0.68:80/service/XChangeServlet?account=0002&receiver=123";
		XmlBuilder builder = new XmlBuilder("F:/test1.xml");
		String xmlString=doc2string(builder.getDoc());
		System.out.println(xmlString);
		sendPingzheng(urlStr, xmlString);
	}

	public static Document sendPingzheng(String urlStr, String xmlString) {
		byte[] xmlData = xmlString.getBytes("utf-8");

		DataInputStream input = null;
		java.io.ByteArrayOutputStream out = null;
		Document d = null;
		try {
			
			URL url = new URL(urlStr);
			URLConnection urlCon = url.openConnection();
			urlCon.setDoOutput(true);
			urlCon.setDoInput(true);
			urlCon.setUseCaches(false);
			urlCon.setRequestProperty("Content-Type", "text/xml");
			urlCon.setRequestProperty("Content-length", String.valueOf(xmlData.length));
			DataOutputStream printout = new DataOutputStream(urlCon.getOutputStream());
			printout.write(xmlData);
			printout.flush();
			printout.close();
			input = new DataInputStream(urlCon.getInputStream());
			byte[] rResult;
			out = new java.io.ByteArrayOutputStream();
			byte[] bufferByte = new byte[256];
			int l = -1;
			int downloadSize = 0;
			while ((l = input.read(bufferByte)) > -1) {
				downloadSize += l;
				out.write(bufferByte, 0, l);
				out.flush();
			}
			rResult = out.toByteArray();
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = dbf.newDocumentBuilder();
			d = db.parse(new ByteArrayInputStream(rResult));
			
			String TaskAddr = d.getElementsByTagName("resultdescription").item(0).getFirstChild().getNodeValue();
			String resultcode = d.getElementsByTagName("resultcode").item(0).getFirstChild().getNodeValue();
			System.out.println("resultdescription:" + TaskAddr);
			System.out.println("resultcode"+resultcode);
			System.out.println(doc2string(d));
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				out.close();
				input.close();
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}
		return d;
	}

	// document转换为string
	public static String doc2string(Document doc) {
		StringWriter sw = null;
		try {
			sw = new StringWriter();
			Transformer serializer = TransformerFactory.newInstance().newTransformer();
			serializer.transform(new DOMSource(doc), new StreamResult(sw));
		} catch (TransformerConfigurationException e) {
			e.printStackTrace();
		} catch (TransformerFactoryConfigurationError e) {
			e.printStackTrace();
		} catch (TransformerException e) {
			e.printStackTrace();
		}
		return sw.toString();
	}
}

 xml文件操作类

package com.nantian.nc;

import java.io.File;
import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;


public class XmlBuilder {
	
	private String path = null;
	private Document doc = null;
	private Element root = null;
	private Logger logger = Logger.getLogger(getClass().getName());

	public XmlBuilder(String path) {
		this.path = path;
		init();
	}

	public void init() {
		buildDocument();
		buildRoot();
	}

	private void buildDocument() {
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		try {
			DocumentBuilder builder = factory.newDocumentBuilder();
			logger.debug("Construct document builder success.");
			doc = builder.parse(new File(path));
			logger.debug("Build xml document success.");
		} catch (ParserConfigurationException e) {
			logger.error("Construct document builder error:" + e);
		} catch (SAXException e) {
			logger.error("Parse xml file error:" + e);
		} catch (IOException e) {
			logger.error("Read xml file error:" + e);
		}
	}

	
	private void buildRoot() {
		root = doc.getDocumentElement();
	}

	public Document getDoc() {
		return doc;
	}

	public void setDoc(Document doc) {
		this.doc = doc;
	}

	public String getPath() {
		return path;
	}

	public void setPath(String path) {
		this.path = path;
	}

	
	public Element getRoot() {
		return root;
	}

	public void setRoot(Element root) {
		this.root = root;
	}
}

 

分享到:
评论

相关推荐

    用友NC财务软件数据导出方法.doc

    用友NC财务软件数据导出方法 用友NC财务软件是一款功能强大且广泛应用于企业财务管理的财务软件。随着企业数据的增加和复杂性,数据导出变得越来越重要。因此,本文将详细介绍用友NC财务软件数据导出方法,旨在帮助...

    用友NC接口解决方案

    ### 用友NC接口解决方案知识点概述 #### 一、接口总体介绍 - **接口概念**:接口是指不同软件系统间为了实现数据交换而定义的一种通信规范。本案例中的接口是为了解决用友NC系统与西安热工院设备监理系统之间的...

    用友和金蝶的财务凭证接口.rar_VB金蝶_凭证_用友_用友凭证_酒店的 API调用

    首先,"用友和金蝶的财务凭证接口"指的是这两款财务软件提供的编程接口,允许外部应用程序(如VB或PB)访问其内部功能,特别是涉及财务凭证的操作。凭证是财务系统的核心,记录了企业的经济业务,如收入、支出等。...

    NC6.5凭证接口说明

    单据类型:gl (gl代表总账凭证,NC接口的默认值,请勿修改) 凭证类别:记账凭证 (部分账套写着:记帐凭证,请登录NC系统确认) 外部凭证导入到:12200404 (这个代码是NC账套的代码,登录时可见) 接收单位编码:...

    用友NC接口解决方案和思路!

    此方案是解决用友NC与其他业务系统对接的资料,提供了现金的思想,并且实现了不同系统的数据共享和无缝连接。

    用友NC财务总帐系统操作流程

    "用友NC财务总帐系统操作流程" 用友NC财务总帐系统操作流程是指企业财务管理中的一系列操作流程,旨在规范企业财务管理,确保财务数据的准确性和一致性。该系统操作流程涵盖了财务总帐的初始化、业务流程、凭证操作...

    用友NC 57凭证XMl文件

    首先,我们要明确的是,用友NC 57凭证XML文件是一种数据交换格式,用于在不同系统间传输和导入财务凭证数据。XML(eXtensible Markup Language)是一种结构化语言,具有良好的可读性和可扩展性,非常适合用于数据...

    用友NC凭证导入XML中文说明

    用友NC凭证导入XML中文说明 <voucher_head>

    用友NC软件套打凭证账簿设置流程

    【用友NC软件套打凭证账簿设置流程详解】 用友NC是一款专业的财务管理软件,广泛应用于企业财务工作中。然而,很多用户在使用NC3.0、NC3.1、NC3.5、NC5.0版本时,对于如何打印记账凭证和账簿感到困惑。以下是一个...

    NC凭证接口解决方案和思路.doc

    《NC凭证接口解决方案和思路》 本方案针对的是NC(用友...综上所述,NC凭证接口解决方案通过深度集成,实现了业务系统与财务系统的高效协同,提升了企业的信息化水平,降低了运营成本,是现代企业财务管理的重要工具。

    用友NC凭证设置,如何进入模板设置界面,如何使用模板编辑器

    用友NC凭证设置是企业财务管理中非常重要的一部分,它提供了多种模板样式和编辑功能,帮助用户快速创建和编辑凭证模板。在这个指南中,我们将详细介绍如何进入模板设置界面,如何使用模板编辑器,并对模板进行设置和...

    用友NC5总账说明书

    用友NC5总账模块提供了凭证管理功能,允许用户管理和维护财务凭证。 1.2.4 财务折算 用友NC5总账模块提供了财务折算功能,允许用户进行财务折算和分析。 1.2.5 往来核销 用友NC5总账模块提供了往来核销功能,...

    明源与用友NC财务软件的对接.pdf

    总的来说,明源与用友NC的财务软件对接,通过自动化的数据传输和凭证生成,优化了财务流程,提升了财务管理的效率和准确性,减少了潜在的人为错误,同时也保障了数据的安全性。这种对接方式对于房地产企业来说,是一...

    用友NC财务共享服务中心解决方案.pdf

    用友NC财务共享服务中心解决方案.pdf

    凭证录入工具new_UFIDAvouchertool_用友_用友凭证_凭证_

    标题中的“凭证录入工具new_UFIDAvouchertool_用友_用友凭证_凭证_”表明这是一个专用于财务凭证录入的软件工具,其中“UFIDAvouchertool”可能是该工具的核心组件或者特定命名规则,而“用友”则暗示这与用友软件...

    明源与用友NC财务软件的对接.docx

    4. 接口设置:在业务参数设置中添加NC服务器的发送地址,设定对应公司,然后在财务接口中自定义摘要和凭证生成规则,例如诚意金、保证金、房款等不同类型的收支情况,都有相应的借贷摘要规则。 以销售系统与NC的...

    用友NC开发API字典

    《用友NC开发API字典》是一份专为开发者准备的重要参考资料,主要涵盖了在使用用友NC(U8+)系统进行二次开发时所涉及的各种应用程序接口(API)。API是软件之间的桥梁,允许不同的系统之间交换数据和执行操作,极大...

    用友NC65-uapstudio webservice开发配置说明文档

    用友NC65-uapstudio webservice开发配置说明文档 用友NC65-erp开发工具uapstudio进行开发webservice时,需要对开发工具进行必要的设置。以下是uapstudio中的webservice开发配置说明: 一、UAPStudio中的webservice...

    用友NC6.5安装金盘

    用友NC6.5是一款集成了财务管理、供应链管理、人力资源管理、客户关系管理等多个业务领域的综合企业管理软件。它为企业提供了一个全方位、多层次、多角度的企业管理信息化解决方案,帮助企业管理者实时掌握企业运营...

    用友NC3.1财务操作手册

    《用友NC3.1财务操作手册》是针对企业财务管理的一款详尽指南,它涵盖了用友NC3.1系统在财务领域的各项功能和操作流程。用友NC系列软件是中国本土领先的ERP解决方案,NC3.1版本是其在财务管理方面的重要升级,旨在...

Global site tag (gtag.js) - Google Analytics