关于java 通过rfc接口获取sap中的数据,tableParams返回的是二维的数据吗,还有如何获取其中的值

2024-05-15

1. 关于java 通过rfc接口获取sap中的数据,tableParams返回的是二维的数据吗,还有如何获取其中的值

JCO.ParameterList tableParams = function.getTableParameterList();是指获得RFC中Tables参数列表,再用tableParams.getTable()方法可以获得JCoTable table,获得具体数据表需要利用table.firstRow()、table.nextRow();table.getString();table.getDouble()等方法遍历取得个字段的值,getFieldCount()和getNumRows()可以分别获得table的列数和行数。

关于java 通过rfc接口获取sap中的数据,tableParams返回的是二维的数据吗,还有如何获取其中的值

2. 如何实现SAP的RFC函数调用

RFC仍然是一个FM可以和FM一样调用,一种是使用关键字 
CALL FUNCTION func DESTINATION dest parameter_list. 
调用

3. 验证外部系统是否成功调用SAP RFC的方法有几种

对方系统的数据库是SQLserver,从对方数据库取数据不存在问题,测试时已经输出, 最开始时发现数据无法传输的原因是与SAP系统的链接总断,修改程序为传两条数据, 重新链接一次SAP系统,可以传输部分数据了,但出现上面提到的错误。

验证外部系统是否成功调用SAP RFC的方法有几种

4. SAP中能查询到外部程序调用RFC的日志记录吗

作用:
         1.实现复杂的业务处理,比较abap语言实现困难的
         2.与外部系统做接口,比较当SAP做业务时触发外部作业
         3.从外部获取数据,前题是SAP为主动
         4.SAP与外部语言的无关性
          5.例如SAP与生鲜磅称的接口,当SAP做收货,称重量时,用这种方法调用外部程序,把重量反回SAP系统。very good!

5. 调用SAP 怎么向RFC传表参数

在TABLES这个页签上设置就好。名字可以自定义,参考的结构要在SE11定义。

调用SAP 怎么向RFC传表参数

6. 有没有工具可以调用sap rfc 接口

RFC接口,其他语言写的程序都是可以调用的。

7. java如何调用webservice接口

Java调用WebService可以直接使用Apache提供的axis.jar自己编写代码,或者利用Eclipse自动生成WebService Client代码,利用其中的Proxy类进行调用。理论上是一样的,只不过用Eclipse自动生成代码省事些。
1、编写代码方式:
package com.yudun.test;
import java.rmi.RemoteException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.PrefixedQName;
import org.apache.axis.message.SOAPHeaderElement;
import com.cezanne.golden.user.Exception;
import com.cezanne.golden.user.UserManagerServiceProxy;
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
import javax.xml.rpc.ServiceException;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;

public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException
  {
     //标识Web Service的具体路径
   String endpoint = "WebService服务地址";
     // 创建 Service实例
    Service service = new Service();   
     // 通过Service实例创建Call的实例
    Call call = (Call) service.createCall();
    //将Web Service的服务路径加入到call实例之中.
    call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置
   // 由于需要认证,故需要设置调用的SOAP头信息。   
    Name headerName = new PrefixedQName( new QName("发布的wsdl里的targetNamespace里的url", "string_itemName") ); 
          org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName); 
          header.addTextNode( "blablabla" ); 
          call.addHeader(header);
          
//    SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("发布的wsdl里的targetNamespace里的url", "SoapHeader");   
//    soapHeaderElement.setNamespaceURI("发布的wsdl里的targetNamespace里的url");   
//    try  
//    {   
//        soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");   
//    }   
//    catch (SOAPException e)   
//    {   
//        e.printStackTrace();   
//    }   
//    call.addHeader(soapHeaderElement);  
    //调用Web Service的方法
          org.apache.axis.description.OperationDesc oper;
          org.apache.axis.description.ParameterDesc param;
          oper = new org.apache.axis.description.OperationDesc();
          oper.setName("opName");
          param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
          param.setOmittable(true);
          oper.addParameter(param);
          param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
          param.setOmittable(true);
          oper.addParameter(param);
          param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
          param.setOmittable(true);
          oper.addParameter(param);
          oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
          oper.setReturnClass(java.lang.String.class);
          oper.setReturnQName(new javax.xml.namespace.QName("", "return"));
          oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
          oper.setUse(org.apache.axis.constants.Use.LITERAL);
          oper.addFault(new org.apache.axis.description.FaultDesc(
                        new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "Exception"),
                        "Exception",
                        new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "Exception"), 
                        true
                       ));
   call.setOperation( oper );
   call.setOperationName(new javax.xml.namespace.QName("发布的wsdl里的targetNamespace里的url", "opName"));
    //调用Web Service,传入参数
   String res = ( String ) call.invoke( new Object[]("arg0","arg1"));
   System.out.println("===============");
   return res;
  }
/**
  * @param args
  */
 public static void main(String[] args) {
  try {
   System.out.println(getResult());
  } catch (MalformedURLException e) {
   e.printStackTrace();
  } catch (RemoteException e) {
   e.printStackTrace();
  } catch (ServiceException e) {
   e.printStackTrace();
  } catch (SOAPException e) {
   e.printStackTrace();
  }
    }
}

2、利用Eclipse自动生成WebService client代码就容易多了:(由于还不会发图片,就用语言描述了,大家酬和看吧。。。)
首先,new project,选择other,在输入框中输入Web Service Client,选中搜索后的结果,点击Next,在Service definition中输入 WebService的发布地址,点击Finish
这样,WebService Client代码已经生成好了。
接下来写一个Test类,在main函数中输入如下代码:

String endpoint = "服务器的WebService的地址";
 YourWebServiceNameProxy umsp = new YourWebServiceNameProxy (endpoint);
 try {
 String resultStr = umsp.opMethod("arg0","arg1");
 System.out.println(resultStr);
 } catch (Exception e) {
 System.out.println("异常");
 e.printStackTrace();
} catch (RemoteException e) {
 System.out.println("RemoteException异常");
 e.printStackTrace();
}
如果还有疑问的话还有视频,如果对你有帮助请采纳!

java如何调用webservice接口

8. java连接上sap後,如何调用rfc的参数?

用function.getImportParameterList().getString("REQUTEXT")和function.getImportParameterList().getString("REQUTEXT")就可以获取RFC输入和输出参数,REQUTEXT为RFC中的输入参数名,REQUTEXT为输出参数名
最新文章
热门文章
推荐阅读