JAVA-调用RFC-传结构体-返回数据

<%@ page language="java" contentType="text/json; charset=UTF-8" pageEncoding="UTF-8" %>
<%@include file="/common.jsp"%>

<%
    // Configuration of SAP connection
    String JCO_HOST = "192.168.1.250";
    String JCO_SYNSNR = "00";
    String JCO_CLIENT = "000";
    String JCO_USER = "ddic";
    String JCO_PASSWD = "123456789qq";
    String JCO_LANG = "ZH";
    String JCO_POOL_CAPACITY = "30";
    String JCO_PEAK_LIMIT = "100";
    String JCO_SAPROUTER = "/H/192.168.1.250";
    JCO_SAPROUTER="";

    SapConn con = new SapConn(JCO_HOST, JCO_SYNSNR, JCO_CLIENT, JCO_USER, JCO_PASSWD, JCO_LANG, JCO_POOL_CAPACITY, JCO_PEAK_LIMIT, JCO_SAPROUTER);
    JCoDestination jCoDestination = SAPConnUtil.connect(con);


    JCoFunction function = jCoDestination.getRepository().getFunction("ZRFC_SD_ADD_CUSTOMER");
    JCoParameterList paramList = function.getImportParameterList();
    JCoStructure IS_CUSTOMER =paramList.getStructure("IS_CUSTOMER");



    IS_CUSTOMER.setValue("ZCUSTOMERID","990342");
    IS_CUSTOMER.setValue("ZCOMPANYNAME","深圳市海希五金电子有限公司");
    IS_CUSTOMER.setValue("ZCREATEDATE","2023-03-06");
    IS_CUSTOMER.setValue("ZSCOPE","金属制品批发");
    IS_CUSTOMER.setValue("ZUSERID","");
    IS_CUSTOMER.setValue("ZSEX","");
    IS_CUSTOMER.setValue("ZAP","");


    function.execute(jCoDestination);

    String R_NUMBER = function.getExportParameterList().getString("NUMBER");

    out.print(R_NUMBER);

    out.print(IS_CUSTOMER);
%>
package com.swift.oa;



import com.sap.conn.jco.*;

/**
 * @Author: Wriprin
 * @Date: 2022/11/25 17:20
 * @Version 1.0
 */
public class GetMaraInfo {
    public static void main(String[] args) throws JCoException {

        // Configuration of SAP connection
        String JCO_HOST = "192.168.1.250";
        String JCO_SYNSNR = "00";
        String JCO_CLIENT = "000";
        String JCO_USER = "ddic";
        String JCO_PASSWD = "123456789qq";
        String JCO_LANG = "ZH";
        String JCO_POOL_CAPACITY = "30";
        String JCO_PEAK_LIMIT = "100";
        String JCO_SAPROUTER = "/H/192.168.1.250";
        JCO_SAPROUTER="";

        SapConn con = new SapConn(JCO_HOST, JCO_SYNSNR, JCO_CLIENT, JCO_USER, JCO_PASSWD, JCO_LANG, JCO_POOL_CAPACITY, JCO_PEAK_LIMIT, JCO_SAPROUTER);
        JCoDestination jCoDestination = SAPConnUtil.connect(con);

        try {
            // 获取调用 RFC 函数对象
            JCoFunction func = jCoDestination.getRepository().getFunction("ZRFC");

            // 配置传入参数
            JCoParameterList importParameterList = func.getImportParameterList();
            importParameterList.setValue("NAME","Lucy");
            importParameterList.setValue("MATERIAL","A02");
            
            JCoTable cerTable = func.getTableParameterList().getTable("GT_PRITEM22");
            
            

            
            
            cerTable.appendRow();
            cerTable.setValue("PREQ_ITEM","10");
            cerTable.setValue( "MATERIAL","A08");
            cerTable.setValue( "PLANT","8010");
            cerTable.setValue( "QUANTITY","6666");
            
            
            cerTable.appendRow();
            cerTable.setValue("PREQ_ITEM","20");
            cerTable.setValue( "MATERIAL","A02");
            cerTable.setValue( "PLANT","8010");
            cerTable.setValue( "QUANTITY","555");
            
   
            
            // 调用并获取返回值
            func.execute(jCoDestination);
            

            
   
            String R_NUMBER = func.getExportParameterList().getString("NUMBER");
            
            JCoTable table = func.getTableParameterList().getTable("RETURN");
            
            for(int i=0;i<table.getNumRows();i++)
            {
                table.setRow(i);
                String ID= table.getString("ID");
                String TYPE = table.getString("TYPE");
                if(TYPE.equals("E"))
                {
                    String MESSAGE_V1 = table.getString("MESSAGE");
                    System.out.println(TYPE+"==>"+MESSAGE_V1+"==>"+ID);
                }
            }
            
            
            //System.out.println("ME51N返回采购申请单号===>"+R_NUMBER);
            
            
            
            
//            // 获取 内表 - ET_MARA
//            JCoTable maraTable = func.getTableParameterList().getTable("ET_MARA");
//
//            // 循环输出 Table 数据
//            for (int i = 0; i < maraTable.getNumRows(); i++) {
//                maraTable.setRow(i);
//
//                String matnr = maraTable.getString("MATNR");
//                String esdra = maraTable.getString("ERSDA");
//                String ernam = maraTable.getString("ERNAM");
//                String matkl = maraTable.getString("MATKL");
//                String meins = maraTable.getString("MEINS");
//
//                System.out.println("物料编号:" + matnr + " - 创建日期:" + esdra + " - 创建人:" + ernam + " - 物料组:" + matkl + " - 单位:" + meins);
//            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

posted @ 2023-07-04 00:00  往事只能回味---  阅读(341)  评论(0)    收藏  举报