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 java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
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.whir.common.util.DataSourceBase;

public class SupplierBatchAction extends DispatchAction{
	
    public SupplierBatchAction() {
        super();
    }
    
    public ActionForward GetBatchSAP(ActionMapping actionMapping,
            ActionForm actionForm,
            HttpServletRequest reuqest,
            HttpServletResponse response) {
    	 DataSourceBase dsb = new DataSourceBase();
 	     Connection conn = null;
 	     Statement stmt = null;
 	     String sql =null;
 	  java.sql.ResultSet rs =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 supplierbh = reuqest.getParameter("bh");  //供应商编号
	 String order = reuqest.getParameter("order");     //采购订单
	 String item = reuqest.getParameter("item");  //行项目
	 String itembm = reuqest.getParameter("itembm");  //行项目
	 String supplierpc = reuqest.getParameter("pc");  //供应商批次
	 String scdate = reuqest.getParameter("scdate");  //生产日期
	 JCoDestination destination = null;
	 Supplier supplierbean = new Supplier();
	 String msgs = "";
	 String text = "";
	 SAPJCO sapjco = new SAPJCO(); 
		try
		{
			destination = sapjco.getJcoConnection();
						JCoFunction function1 = destination.getRepository().getFunction("ZGET_VENDOR_PC");
						
						JCoParameterList paramList = function1.getImportParameterList();
						JCoTable msg1 = function1.getTableParameterList().getTable("ZMSGTAB1");
						
						if(supplierbh ==null || "null".equals(supplierbh) ){
							paramList.setValue("LIFNR", "");
						}else{
							char[] bh = supplierbh.toCharArray();
							paramList.setValue("LIFNR",bh); 
						}
						
						if(supplierpc ==null || "null".equals(supplierpc) ){
							paramList.setValue("VENDOR_BATCH", "");
						}else{
							char[] supplierpc1 = supplierpc.toCharArray();
							paramList.setValue("VENDOR_BATCH",supplierpc1); 
						}
						
						if(order ==null || "null".equals(order) ){
							paramList.setValue("EBELN", "");
						}else{
							char[] order1 = order.toCharArray();
							paramList.setValue("EBELN",order1); 
						}
						
						if(item ==null || "null".equals(item) ){
							paramList.setValue("EBELP", "");
						}else{
							char[] item1 = item.toCharArray();
							paramList.setValue("EBELP",item1); 
						}
						
						if(itembm ==null || "null".equals(itembm) ){
							paramList.setValue("MATNR", "");
						}else{
							char[] itembm1 = itembm.toCharArray();
							paramList.setValue("MATNR",itembm1); 
						}
						
						if(scdate ==null || "null".equals(scdate)){
							paramList.setValue("PRODUCED_DATE", "");
						}else{
							char[] scdate1 = scdate.toCharArray();
							paramList.setValue("PRODUCED_DATE",scdate1); 
						}
						System.out.println("*数量*******"+msg1.getNumRows());
						function1.execute(destination);
						System.out.println("********************************");
						String tbbatch = function1.getExportParameterList().getString("TB_BATCH");
						//String tbbatch1 = function1.getExportParameterList().getString("TB_BATCH1");
					
						 for (int i = 0; i < msg1.getNumRows(); ++i){
							 msg1.setRow(i);
							 msgs = msg1.getString("MSGTYP1");
							 text = msg1.getString("TEXT");
								
						 }
						  PrintWriter out = supplierbean.getWriterOut(response);
						 if(msgs=="S" || "S".equals(msgs)){
							 
								out.print(msgs.concat(",").concat(tbbatch));//.concat(","+tbbatch1+""));  //反馈描述信息
								 try {
						  	    	  conn = dsb.getDataSource().getConnection();
						  	          stmt = conn.createStatement();
						  	       String cgzzkey = "";
						  	   sql = "insert into whir$batchno(whir$batchno_ID,whir$batchno_OWNER,whir$batchno_ORG,whir$batchno_bh," +
						  	   		"whir$batchno_pc,whir$batchno_order,whir$batchno_item,whir$batchno_scrq,whir$batchno_tb)" +
						  	   		"values(hibernate_sequence.nextval,"+userId+","+orgId+"," +
							  	  	""+ (supplierbh==null?"null":("'"+supplierbh+"'")) +"," +
						    		""+ (supplierpc==null?"null":("'"+supplierpc+"'")) +"," +
						    		""+ (order==null?"null":("'"+order+"'")) +"," +
						    		""+ (item==null?"null":("'"+item+"'")) +"," +
						    		""+ (scdate==null?"null":("'"+scdate+"'")) +"," +
						    		""+ (tbbatch==null?"null":("'"+tbbatch+"'")) +" )";
						   			//""+ (tbbatch1==null?"null":("'"+tbbatch1+"'")) +")";
						  	           stmt.execute(sql);
						  			}catch (Exception ex) {
						  		          System.out.println(" whir$batchno sql:"+sql);
						  			         ex.printStackTrace();
						  			     } finally {
						  			         try {
						  			             conn.close();
						  			         } catch (SQLException ex1) {
						  			         }
						  			     }
							
						 }else{
							 out.print(msgs.concat(",").concat(text));  //反馈描述信息
						 }
		}catch(AbapException e)     
        {    
        	destination = null;
         } catch (JCoException e) {
        	 destination = null;
			e.printStackTrace();
		}finally{
        	destination = null;
        }
	 
	 return null; 
    }
    
    
    


}
 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值