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;
}
}
java与SAP集成回写单条记录模版(JCO3)
最新推荐文章于 2022-09-04 18:19:22 发布