2020-08-25 23:30发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
红木可以访问SAP表吗? 如果是这样,请您把我的方向正确。
此致
Chandu
嗨,Chandu
Redwood有JDBC定义,它们可以访问SAP AS的任何表。
请注意,SAP不建议直接更改数据库数据。
您将在JDBC进程服务器的许可证中需要一个空闲插槽。
您可以在文档中找到有关JDBC的大量信息。 请让我知道是否需要更多信息,并提及您当前正在运行的版本。
HP
您好,Valentijn Chandu ,
您应该可以使用XBPInterface.readTable。
在API文档中,您在左下角的XBPInterface上有一个此类的" readTable"方法 ,根据API文档:
java.util.Iterator readTable(java.lang.String tableName,java.lang.String分隔符,java.lang.String []列,java.lang.String [] whereClauses,int rowSkip,int rowCount)
读取给定SAP ABAP表的内容
tableName
定界符
|
columns
null
whereClauses
rowSkip
-1
rowCount
Iterator
TableRow
如果只想读取一个表,也可以通过使用Redwood脚本并调用XBP接口来实现。
这将允许直接通过RFC读取表。 如果您需要这样做,请告诉我,我有一些脚本可以做到这一点。
非常感谢Valentijn,我会尝试的,并让您知道并感谢HP。
以下代码从sap后端系统sapsys中读取表USR02(用您的sap系统替换)
它返回字段MANDT和BNAME并将输出打印到stdout.log
--------------------------------------------------- -----------------
导入java.util。*;
导入com.redwood.scheduler.api.model。*;
导入com.redwood.scheduler.api.connector.sap.rfc.scripting。*;
导入com.redwood.scheduler.api.connector.sap.rfc.scripting.xbp。*;
{
/**
*使用XBP接口从SAP后端系统中读取表。
*
*/
//定义要连接的SAP系统
SAPSystem sapsys = BusinessKeyLookup.getSAPSystemByBusinessKey(jcsSession," ");
//定义新的rfc对象
RfcConnectionManager saprfc =新的RfcConnectionManager(sapsys);
//调用XBP接口并执行readTable
saprfc.callXBP(new XbpWork()
public void performWork(final XbpInterface xbp)
for(Iterator it = xbp.readTable(" USR02"," |",new String [] {" MANDT"," BNAME"},new String [] {},0,-1); it.hasNext ();)
TableRow t =(TableRow)it.next();
jcsOut.println(t.toString());
}
});
--------------------------------------------------- -------------------------
亲切的问候,
Bas Valentijn
嗨
当我使用上面的脚本读取表USR02时,出现脚本引擎表达式错误。 但是当我改用自定义Z表时,它可以成功运行
有什么主意为什么会在某些表上显示错误但在其他表上却没有显示?
谢谢
最多设置5个标签!
嗨,Chandu
Redwood有JDBC定义,它们可以访问SAP AS的任何表。
请注意,SAP不建议直接更改数据库数据。
您将在JDBC进程服务器的许可证中需要一个空闲插槽。
您可以在文档中找到有关JDBC的大量信息。 请让我知道是否需要更多信息,并提及您当前正在运行的版本。
此致
HP
您好,Valentijn Chandu ,
您应该可以使用XBPInterface.readTable。
在API文档中,您在左下角的XBPInterface上有一个此类的" readTable"方法 ,根据API文档:
读取给定SAP ABAP表的内容
tableName
-ABAP表的名称定界符
-列定界符。 默认值为|
。columns
-具有应检索的列名的数组。 如果数组为空或null
,则检索所有列。whereClauses
-带有查询语句的where子句的数组。 如果数组为空或null
,则不应用where子句。rowSkip
-从结果集的开头跳过的行数,或者-1
获取完整的结果集rowCount
-要检索的行数,或-1
检索所有行 行Iterator
,其表行类型为TableRow
嗨,Chandu
如果只想读取一个表,也可以通过使用Redwood脚本并调用XBP接口来实现。
这将允许直接通过RFC读取表。 如果您需要这样做,请告诉我,我有一些脚本可以做到这一点。
非常感谢Valentijn,我会尝试的,并让您知道并感谢HP。
此致
Chandu
嗨,Chandu
以下代码从sap后端系统sapsys中读取表USR02(用您的sap系统替换)
它返回字段MANDT和BNAME并将输出打印到stdout.log
--------------------------------------------------- -----------------
导入java.util。*;
导入com.redwood.scheduler.api.model。*;
导入com.redwood.scheduler.api.connector.sap.rfc.scripting。*;
导入com.redwood.scheduler.api.connector.sap.rfc.scripting.xbp。*;
{
/**
*使用XBP接口从SAP后端系统中读取表。
*
*/
//定义要连接的SAP系统
SAPSystem sapsys = BusinessKeyLookup.getSAPSystemByBusinessKey(jcsSession,"");
//定义新的rfc对象
RfcConnectionManager saprfc =新的RfcConnectionManager(sapsys);
//调用XBP接口并执行readTable
saprfc.callXBP(new XbpWork()
{
public void performWork(final XbpInterface xbp)
{
for(Iterator it = xbp.readTable(" USR02"," |",new String [] {" MANDT"," BNAME"},new String [] {},0,-1); it.hasNext ();)
{
TableRow t =(TableRow)it.next();
jcsOut.println(t.toString());
}
}
});
}
--------------------------------------------------- -------------------------
亲切的问候,
Bas Valentijn
嗨
当我使用上面的脚本读取表USR02时,出现脚本引擎表达式错误。 但是当我改用自定义Z表时,它可以成功运行
有什么主意为什么会在某些表上显示错误但在其他表上却没有显示?
谢谢
一周热门 更多>