`

java与SAP集成回写单条记录模版(JCO3)

阅读更多

 

package com.tbsap.jcosap;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;

import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.ext.DestinationDataProvider;

public class SAPJCO {
	static String ABAP_AS_POOLED = "ABAP_PUBLIC_600_SAPJCO_POOL";     
    private static void createDataFile()   
    
    {     
    	Properties properties = new Properties();
    	properties.setProperty(DestinationDataProvider.JCO_ASHOST, "sapIP");
    	properties.setProperty(DestinationDataProvider.JCO_SYSNR,  "系统ID(00)");
    	properties.setProperty(DestinationDataProvider.JCO_CLIENT, "客户端");
    	properties.setProperty(DestinationDataProvider.JCO_USER,   "用户");
    	properties.setProperty(DestinationDataProvider.JCO_PASSWD, "密码");
    	properties.setProperty(DestinationDataProvider.JCO_LANG,   "预言");
        String name = ABAP_AS_POOLED;
        String suffix =  "jcoDestination";
        File cfg = new File(name+"."+suffix);     
        if(!cfg.exists())     
        {
            try     
            {     
                FileOutputStream fos = new FileOutputStream(cfg, false);     
                properties.store(fos, "for tests only !");     
                fos.close();     
            }     
            catch (Exception e)     
           {     
                throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);     
            }
        }
            
    }  
    public static JCoDestination getJcoConnection() throws JCoException{
    	
    	createDataFile();
    	return JCoDestinationManager.getDestination(ABAP_AS_POOLED);
    }
}

 

package com.topband.web.struts.action.supplier;

import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.actions.DispatchAction;
import com.sap.conn.jco.AbapException;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoParameterList;
import com.sap.conn.jco.JCoStructure;
import com.sap.conn.jco.JCoTable;
import com.tbsap.jcosap.SAPJCO;
import javax.servlet.http.HttpSession;

public class ItemAction extends DispatchAction{

    public ItemAction() {
        super();
    }
	public ActionForward ItemHXSAP(ActionMapping actionMapping,
                                 ActionForm actionForm,
                                 HttpServletRequest reuqest,
                                 HttpServletResponse response) {
		 Supplier supplierbean = new Supplier();
		 JCoDestination destination = null;
		 HttpSession session = reuqest.getSession(true);
		 Long userId = new Long(session.getAttribute("userId").toString()); //取当前用户的ID
	     Long orgId = new Long(session.getAttribute("orgId").toString()); //取当前用户的orgID
		 String itembo = reuqest.getParameter("itembo");  
		 String itemdesc = reuqest.getParameter("itemdesc");  
		 String wbitem = reuqest.getParameter("wbitem");    
		 String dw = reuqest.getParameter("dw"); 
		 String checkwl = reuqest.getParameter("checkwl"); 
		 String wlz = reuqest.getParameter("wlz"); 
		 String msgs = "";
		 String text = "";
		 PrintWriter out = supplierbean.getWriterOut(response);
		 SAPJCO sapjco = new SAPJCO(); 
			try
			{
				destination = sapjco.getJcoConnection();
					JCoFunction function = destination.getRepository().getFunction("BAPI_MATERIAL_SAVEDATA");
					JCoFunction function1 = destination.getRepository().getFunction("BAPI_TRANSACTION_COMMIT");
				if (function != null)
				{
					
					//JCoTable HEADDATA = function.getTableParameterList().getTable("HEADDATA");
					//JCoTable CLIENTDATA = function.getTableParameterList().getTable("CLIENTDATA");
					//JCoTable CLIENTDATAX = function.getTableParameterList().getTable("CLIENTDATAX");	
					//String lifnr = function1.getExportParameterList().getString("LIFNR");
					JCoTable MATERIALDESCRIPTION = function.getTableParameterList().getTable("MATERIALDESCRIPTION");
					JCoTable UNITSOFMEASURE = function.getTableParameterList().getTable("UNITSOFMEASURE");
					//JCoTable msg = function.getTableParameterList().getTable("RETURN"); 
				
					JCoParameterList paramList = function.getImportParameterList();
					JCoStructure HEADDATA =paramList.getStructure("HEADDATA");
					JCoStructure CLIENTDATA =paramList.getStructure("CLIENTDATA");
					JCoStructure CLIENTDATAX =paramList.getStructure("CLIENTDATAX");
					//HEADDATA.appendRow();
					System.out.println("A"+itembo);
					System.out.println("B"+itemdesc);
					System.out.println("C"+wbitem);
					System.out.println("D"+dw);
					System.out.println("E"+checkwl);
					if(itembo ==null || "null".equals(itembo)){
						HEADDATA.setValue("MATERIAL", "");
					}else{
						String itembo1 = itembo.trim();
						char[] itembo2 = itembo1.toCharArray();
						HEADDATA.setValue("MATERIAL",itembo2); 
					}
					HEADDATA.setValue("BASIC_VIEW","X");
					HEADDATA.setValue("IND_SECTOR","M");
					HEADDATA.setValue("MATL_TYPE","FERT");
					
					MATERIALDESCRIPTION.appendRow();
					MATERIALDESCRIPTION.setValue("LANGU_ISO","ZH");
					if(itemdesc ==null || "null".equals(itemdesc)){
						MATERIALDESCRIPTION.setValue("MATL_DESC", "");
					}else{
						String itemdesc1 = itemdesc.trim();
						char[] itemdesc2 = itemdesc1.toCharArray();
						MATERIALDESCRIPTION.setValue("MATL_DESC",itemdesc2); 
					}
					//CLIENTDATA.appendRow();
					if(dw ==null || "null".equals(dw)){
						CLIENTDATA.setValue("BASE_UOM", "");
					}else{
						String dw1 = dw.trim();
						char[] dw2 = dw1.toCharArray();
						CLIENTDATA.setValue("BASE_UOM",dw2); 
					}
					if(wbitem ==null || "null".equals(wbitem)){
						CLIENTDATA.setValue("EXTMATLGRP", "");
					}else{
						String wbitem1 = wbitem.trim();
						char[] wbitem2 = wbitem1.toCharArray();
						CLIENTDATA.setValue("EXTMATLGRP",wbitem2); 
					}
					if(checkwl ==null || "null".equals(checkwl)){
						CLIENTDATA.setValue("PROD_MEMO", "");
					}else{
						String checkwl1 = checkwl.trim();
						char[] checkwl12 = checkwl1.toCharArray();
						CLIENTDATA.setValue("PROD_MEMO",checkwl12); 
					}
					
					if(wlz ==null || "null".equals(wlz)){
						CLIENTDATA.setValue("MATL_GROUP", "");
					}else{
						String wlz1 = wlz.trim();
						char[] wlz2 = wlz1.toCharArray();
						CLIENTDATA.setValue("MATL_GROUP",wlz2); 
					}
					
					if(wlz ==null || "null".equals(wlz)){
						CLIENTDATA.setValue("MATL_GROUP", "");
					}else{
						String wlz1 = wlz.trim();
						char[] wlz2 = wlz1.toCharArray();
						CLIENTDATA.setValue("MATL_GROUP",wlz2); 
					}
					//CLIENTDATAX.appendRow();
					CLIENTDATA.setValue("BASIC_MATL","X");
					CLIENTDATAX.setValue("BASIC_MATL","X");
					CLIENTDATAX.setValue("MATL_GROUP","X");
					CLIENTDATAX.setValue("BASE_UOM","X");
					CLIENTDATAX.setValue("PROD_MEMO","X");
					CLIENTDATAX.setValue("EXTMATLGRP","X");
					UNITSOFMEASURE.appendRow();
					if(dw ==null || "null".equals(dw)){
						UNITSOFMEASURE.setValue("ALT_UNIT", "");
					}else{
						String dw1 = dw.trim();
						char[] dw2 = dw1.toCharArray();
						UNITSOFMEASURE.setValue("ALT_UNIT",dw2);
					}
					function.execute(destination);
					JCoStructure msg = function.getExportParameterList().getStructure("RETURN");
					//接受SAP 传出参数
					 //for (int i = 0; i < msg.getNumRows(); ++i){
						// msg.setRow(i);
						 msgs = msg.getString("TYPE");
						 text = msg.getString("MESSAGE");
						 System.out.println("值"+msgs); 
							System.out.println("值2"+text);
						 if(msgs=="S" || "S".equals(msgs)){
								JCoParameterList paramList1 = function1.getImportParameterList();
								paramList1.setValue("WAIT", "X");
							 function1.execute(destination);
						 }
					// }
						 out.print(msgs.concat(",").concat(text));  //反馈描述信息
				}
		}catch(AbapException e)     
        {    
        	destination = null;
         } catch (JCoException e) {
        	 destination = null;
			e.printStackTrace();
		}finally{
        	destination = null;
        }

		return null;
       
	}
	

}

 

 

package com.topband.web.struts.action.supplier;

import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.actions.DispatchAction;
import com.sap.conn.jco.AbapException;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoParameterList;
import com.sap.conn.jco.JCoTable;
import com.tbsap.jcosap.SAPJCO;
import com.topband.supplier.model.SupplierBean;
import javax.servlet.http.HttpSession;

public class zhugx01 extends DispatchAction{
    public zhugx01() {
        super();
    }
	public ActionForward LSHXSAP(ActionMapping actionMapping,
                                 ActionForm actionForm,
                                 HttpServletRequest reuqest,
                                 HttpServletResponse response) {
		  Supplier supplierbean = new Supplier();
		 JCoDestination destination = null;
		 HttpSession session = reuqest.getSession(true);
		 Long userId = new Long(session.getAttribute("userId").toString()); //取当前用户的ID
	     Long orgId = new Long(session.getAttribute("orgId").toString()); //取当前用户的orgID
		 String workid = reuqest.getParameter("id");  //流程记录ID
	     int type = Integer.parseInt(reuqest.getParameter("type"));        //类型
		 String zhz = reuqest.getParameter("zhz");     //账户组
		 String gysbh = reuqest.getParameter("gysbh");  //供应商编号
		 String sylx = reuqest.getParameter("sylx");  //使用类型
		 String suppliertype = reuqest.getParameter("supplier");  //使用类型
		 String msgs = "";
		 String text = "";
	     String cczzid = "";
		 String dj = "";
		 String zt = "";
		  PrintWriter out = supplierbean.getWriterOut(response);
		  SAPJCO sapjco = new SAPJCO(); 
			try
			{
				destination = sapjco.getJcoConnection();
			if(suppliertype == "L" || "L".equals(suppliertype)){
				SupplierBean lsbean = (SupplierBean)supplierbean.GetLSupplier(workid);
				int number = supplierbean.SelectLsfz(gysbh,lsbean.getCgzz());
				if(lsbean.equals("null") || lsbean ==null){
					out.print("E,没有找到信息记录不能回写SAP");  //反馈描述信息
				}else{
				 if(zhz == "Z001" || "Z001".equals(zhz) || zhz == "Z003" || "Z003".equals(zhz)){
						JCoFunction function1 = destination.getRepository().getFunction("ZMM_VENDOR_YC");
						
						JCoTable supplier1 = function1.getTableParameterList().getTable("ZTEMP_VENDOR");
						JCoTable msg1 = function1.getTableParameterList().getTable("ZMSGTAB1");
						JCoParameterList paramList = function1.getImportParameterList();
						supplier1.appendRow();
						zt = "原厂供应商";
						if(type == 0){
							//新建
							dj = "0";
							paramList.setValue("ZBZ","I");
						}else if(type == 1 && (sylx == "" || "".equals(sylx) || sylx == "0" || "0".equals(sylx))){
							//修改
							dj = "";
							paramList.setValue("ZBZ","U");
						}else if(type == 1 && (sylx == "D" || "D".equals(sylx))){
							//修改冻结
							dj = "D";
							paramList.setValue("ZBZ","D");
						}else if(type == 1 && (sylx == "J" || "J".equals(sylx))){
							//修改解冻
							dj = "J";
							paramList.setValue("ZBZ","J");
						}
						
						if(lsbean.getGysbh() ==null || "null".equals(lsbean.getGysbh()) ){
							supplier1.setValue("LIFNR", "");
						}else{
							String LIFNR1 = lsbean.getGysbh().trim();
							char[] LIFNR = LIFNR1.toCharArray();
							supplier1.setValue("LIFNR",LIFNR); 
						}
						
						if(lsbean.getCgzz() ==null || "null".equals(lsbean.getCgzz()) ){
							supplier1.setValue("ZEKORG", "");
						}else{
							 cczzid = supplierbean.Selectcgzz(lsbean.getCgzz());
							System.out.println("采购组织ID"+cczzid);
							
							char[] cgzz = cczzid.toCharArray();
							supplier1.setValue("ZEKORG",cgzz); 
						}
						if(lsbean.getSkzh() ==null || "null".equals(lsbean.getSkzh())){
							supplier1.setValue("ZYHZH", "");
						}else{
							String ZYHZH1 = lsbean.getSkzh().trim();
							char[] ZYHZH = ZYHZH1.toCharArray();
							supplier1.setValue("ZYHZH",ZYHZH); 
						}
						
						function1.execute(destination);
						String lifnr = function1.getExportParameterList().getString("LIFNR");
					
						 for (int i = 0; i < msg1.getNumRows(); ++i){
							 msg1.setRow(i);
							 msgs = msg1.getString("MSGTYP1");
							 text = msg1.getString("TEXT");
								System.out.println("值"+msgs); 
								System.out.println("值2"+text);
								
						 }
						 
						 if(msgs=="S" || "S".equals(msgs)){
							 
								out.print(msgs.concat(",").concat(text));  //反馈描述信息
							 if(number >0){
								 supplierbean.UpdateLsfz(lsbean,dj,zt,cczzid);
							 }else{
								 supplierbean.AddLsfz(lsbean,lifnr,userId,orgId,dj,zt,cczzid,null);
							 }
						 }else{
							 out.print(msgs.concat(",").concat(text));  //反馈描述信息
						 }
					} 
				}
			}
		}catch(AbapException e)     
        {    
        	destination = null;
         } catch (JCoException e) {
        	 destination = null;
			e.printStackTrace();
		}finally{
        	destination = null;
        }
		return null;
	}
	
}

 

分享到:
评论

相关推荐

    JAVA 调用SAP端接口的相关包(sapjco3.jar,sapjco3.dll,sapjcorfc.dll)

    JAVA 通过JCO调用SAP端接口的相关包(sapjco3.jar,sapjco3.dll,sapjcorfc.dll)打包下载

    java连接sap接口包sapjco3

    java连接sap系统需要通过sap javaconnect来连接,对于sapjco3.jar系列文件有32位与64位之分。 a)确定本机使用JDK版本,一般均为32位。 b)将相对应位数的sapjco3.dll文件拷贝至system32。 c)将相对应位数sapjco.jar...

    java和sap集成jco包

    NULL 博文链接:https://xz-struggle.iteye.com/blog/1841208

    sapjco3.dll结合sapjco3.jar包下载

    1.sapjco3.dll 需要与 sapjco3.jar 在同一目录 2.设置系统环境变量,将sapjco3所在目录加入系统环境变量 3.根据自己的操作系统版本选择对应的sapjco3包 32位系统 例如: 新建环境变量 变量名: JAVA_SAPJCO 变量...

    java连接sap接口包sapjco3 window36/64

    java连接sap系统需要通过sap javaconnect来连接,对于sapjco3.jar系列文件有32位与64位之分。 a)确定本机使用JDK版本,一般均为32位。 b)将相对应位数的sapjco3.dll文件拷贝至system32。 c)将相对应位数sapjco.jar...

    sapjco3 jar包

    1.sapjco3.dll 需要与 sapjco3.jar 在同一目录 2.设置系统环境变量,将sapjco3所在目录加入系统环境变量 例如: 新建环境变量 变量名: JAVA_SAPJCO 变量值: E:\sapjco3\sapjco3-win32 将新建的 JAVA_SAPJCO 环境...

    sapjco3 32位64位.dll+jar

    windows 环境设置 1.sapjco3.dll 需要与 sapjco3.jar 在同一目录 2.设置系统环境变量,将sapjco3所在目录加入系统环境变量 例如: 新建环境变量 变量名: JAVA_SAPJCO 变量值: E:\sapjco3\sapjco3-win32 将新建的 JAVA_...

    sapjco3.dll

    windows环境设置1.sapjco3.dll需要与sapjco3.jar在同一目录2.设置系统环境变量,将sapjco3所在目录加入系统环境变量例如:新建环境变量变量名:JAVA_SAPJCO变量值:E:\ sapjco3 \ sapjco3- win32将新建的JAVA_SAP...

    SAP官网最新版本 sapjco3.jar

    java连接sap的工具包,SAP官网最新版本sapjco3资源 内含sapjco3.dll 、sapjco3.jar等文件

    JAVA对接SAP接口使用sapjco3.dll跟jar文件

    JAVA对接SAP接口使用sapjco3.dll跟jar文件

    sapjco30/sapjco3.dll/sapjco3.jar SAP官网2017/7/18更新版本

    sapjco30 SAP官网2017/7/18更新版本,Windows64...因项目开发SAP RFC接口,使用sapjco3.dll/sapjco3.jar,而网上下载多个版本的sapjco3.dll都提示版本等级太低,最后从SAP官网上下载了2017/7/18更新的文件,使用后OK。

    SAPJCO3连接配置(sapjco3-linux_x64-3.0.10)

    1.将sapjco3.jar 文件复制至 $JAVA_HOME/lib/sapjco3.jar 2.将 libsapjco3.so 文件复制至 $JAVA_HOME/jre/lib/amd64/server/libsapjco3.so 3.设置环境变量 CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools....

    sapjco3-windows64-linux64 SAP社区完整版

    自己找了好久的资源,这里提供windows64位和linux64服务器版,sapjco版本为3.0.9,java连接sap系统需要通过sap javaconnect来连接,对于sapjco3.jar系列文件有32位与64位之分。 1)将相对应位数的sapjco3.dll文件拷贝...

    SAP官网最新linux、windows版 sapjco3.jar

    java连接sap的工具包,SAP官网最新版本sapjco3资源 内含sapjco3.dll 、sapjco3.jar等文件

    sapjco3压缩包下载

    sap编程接口.JCo3.0是Java语言与ABAP语言双向通讯的中间件。

    sapjco3.zip

    java 连接SAP相关的环境工具包。 sapjco3.dll sapjco3.jar

    SAP2021年6月版本sapjco3.1

    SAP2021年6月版本sapjco3.1, sapjco3.jar , sapjco3.dll ,均以包含。64X86,windowserver可使用。

    java sapjco3

    系统是64位,jdk 1.7 将sapjco3.dll复制到:C:\WINDOWS\system32、C:\Windows\SysWOW64 部署的时候放到 复制sapjco3.jar到apache-tomcat-6.0.13\lib,同时放入项目lib;

    SAP JCo2 to SAP JCo3

    How to Migrate from SAP JCo2 to SAP JCo3 and use SAP JCo3 in a Multi-Threaded Environment

Global site tag (gtag.js) - Google Analytics