我有一个使用SAP JCo 3库的Java应用程序.其中一个用例包括从SAP实例(R/3,ERP 6.0 EhP 7)接收IDoc文件并将其转换为XML.问题是,在转换过程中(由IDoc库执行),字段末尾的右侧空格会被修剪.显然,减少邮件大小.到目前为止,我还没有找到任何可以从Java端完成的配置.
在网上搜索,我从SAP方面找到了以下建议:
whiteSpace=preserve从XSD编辑器设置xml.fieldContentFormatting=nothing在发件人文件/ FTP适配器但是,我无法找到这些工具,也没有相应地配置它们.
我将非常感谢对这两种方法或任何其他解决方案的任何见解.
你知道使用JCo 3.x的任何体面的文档来源吗?
我能找到的大多数材料都已经过时,并且可以参考以前的版本(JCo 2.x).如果有人想知道,我找到的东西是:
这个是JCo 3,但仅涵盖基础知识:
我正在使用JCo库从Java调用SAP中的函数.到目前为止我的调用工作正常,但是当我在互联网上寻求帮助时,总会有一个JCoClient用于获取功能,进行提交等等.
但是JCO 3中不存在JCoClient类.
相反,我使用JCoDestination我用配置文件创建的实例.
JCoClient和JCoDestination有什么区别?为什么没有人谈论JCoDestination,但总是JCoClient?
我想将SAP程序(事务)的功能公开为BAPI.我需要调用报告并提供范围过滤器,以便绕过GUI.
有没有人有SUBMIT ... WITH ... ABAP构造的工作示例,或者有关如何完成我需要做的事情的其他建议?
所以,我刚刚被卷入涉及SAP的项目中.具体来说,我需要使用SAPs BAPI API从"客户端"SAP系统中提取大量信息.鉴于SAP是一个封闭的平台,我一直难以找到SAP和BAPI的人/事/地点/时间/方式的高级概述.特别
BAPI只是SOAP和/或XML-RPC的包装器,还是完全专有的通信格式?
是否有用于处理这些API的PHP扩展或库?
我已经看到了ABAP的首字母缩写词.它意味着什么,它适合什么?
在这一点上,我正在寻找可以给我10,000英尺视图的好资源.我意识到你可以花一辈子的时间来使用这些ERP系统,但仍然不了解整个事情.我只想要一个基本概述,这样我就可以和"客户"的SAP人员交谈,而不是一个完整的新手.
当在 BADi 中等于 'X' 时,使用带有 'WAIT' 参数的 'BAPI_TRANSACTION_COMMIT' 会产生什么影响?我应该期望 SAP 在 LUW 提交时提交数据吗?
我知道在“BAPI_TRANSACTION_COMMIT”内部,如果您指定参数“WAIT”=“X”,它会发生“COMMIT WORK”或“COMMIT WORK AND WAIT”。
我也知道在 BADi 中进行“COMMIT WORK”是不正确的,但是如果我通过 BAPI 使用“COMMIT WORK AND WAIT”?
这将按照注册的顺序和在公共数据库 LUW 中执行所有高优先级 (VB1) 更新功能模块。如果不指定添加 AND WAIT,则程序不会等到更新工作进程执行完毕(异步更新),而是在 COMMIT WORK 后立即恢复。但是,如果指定了添加 AND WAIT,则 COMMIT WORK 之后的程序处理将不会继续,直到更新工作进程执行了高优先级更新功能模块(同步更新)。
当所有高优先级更新功能模块都成功完成后,该语句将按照注册顺序一起执行低优先级(VB2)更新功能模块在一个公共数据库LUW中。
我的困惑出现是因为我们有一个 BADi 实现,其中调用了带有参数 'WAIT' = 'X' 的上述函数,并且我们发现了一个 SAP Notes,它禁止在该 BADi 中使用“COMMIT WORK”,但是它说“提交工作”而不是“提交工作并等待”。
所以我可以认为实现是正确的,因为当 LUW 完成时,数据将被提交......或不。任何意见?
我必须承认我不是SAP R/3编程方面的专家,因此这更像是一个基本问题.
有没有办法在SAP系统上获取可访问的RFC模块和/或表的列表?在互联网上的许多例子中,我发现了一个似乎可以在每个SAP系统上使用的RFC模块("SD_RFC_CUSTOMER_GET"),我想知道是否还有更多这些标准RFC模块可以使用.我可以轻松地在SAP系统中查询所有可用的SAP查询,但我找不到使用RFC模块或表格执行此操作的方法.在Google上搜索了几个小时之后,我甚至找不到这些RFC模块的列表...所以我错过了一些东西或者这是不可能的?
在此先感谢您的帮助.
我正在使用JCo库访问SAP标准BAPI。嗯,除了我使用TID(TransactionID)时RETURN表始终为空之外,其他所有内容也都可以正常工作。
当我仅删除TID时,我得到的RETURN表中填充有Warnings等。但是不幸的是,我需要对事务性BAPI使用TID,否则不会提交更改。
为什么使用TID时RETURN TABLE为空?
还是我必须将更改提交到事务性BAPI?
这是BAPI访问的伪代码:
import com.sap.conn.jco.*;
import org.apache.commons.logging.*;
public class BapiSample {
private static final Log logger = LogFactory.getLog(BapiSample.class);
private static final String CLIENT = "400";
private static final String INSTITUTION = "1000";
protected JCoDestination destination;
public BapiSample() {
this.destination = getDestination("mySAPConfig.properties");
}
public void execute() {
String tid = null;
try {
tid = destination.createTID();
JCoFunction function = destination.getRepository().getFunction("BAPI_PATCASE_CHANGEOUTPATVISIT");
function.getImportParameterList().setValue("CLIENT", CLIENT);
function.getImportParameterList().setValue("INSTITUTION", INSTITUTION);
function.getImportParameterList().setValue("MOVEMNT_SEQNO", "0001");
// Here we will then all parameters of the BAPI....
// ... …Run Code Online (Sandbox Code Playgroud) 我建立了到 SAP 服务器的连接,我想在我的 Java 程序中打印 BAPI 列表。我正在使用 sapjco3.jar。
有什么办法吗?
我需要通过标准BAPI调用连接到SAP Systems.我已经安装了JCo(sapjco3)并将.jar添加到Eclipse中的构建路径中.
但由于我是网络/服务器编程的初学者,我不知道如何在Eclipse和SAP系统之间建立连接......任何人都可以为此提供基本解决方案或一些想法吗?
谢谢你的问候!