问题标签 [sapjco3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
344 浏览

sap - SAPJco 调用 BAPI_MATERIAL_DISPLAY

我试图从 SAP JCO 调用 BAPI_MATERIAL_DISPLAY 功能模块,这就是我传递输入参数的方式。

function.getImportParameterList().setValue("MATERIAL", "10");

从我的程序输出中我得到

材料10不存在或未被激活。

如果我使用 SAP 登录执行 BAPI_MATERIAL_DISPLAY,我将获得该条目。使用调试器我发现,

我的输入是 00000000000010。所以返回响应。

不知道,如何在 SAPJCO 中以适当的方式处理这个问题。

我直接从 SAPJCo 传递了值 00000000000010,这一次我收到一个错误,com.sap.conn.jco.JCoException: (104) JCO_ERROR_SYSTEM_FAILURE: Screen output without connection to user。

希望 SAP 正在打开一个弹出窗口。让我知道如何解决 SAPJCO 中的这两个问题

0 投票
2 回答
1217 浏览

java - Java SAP 通信

我必须使用 JCo3.0 从独立的 Java 应用程序连接到 SAP R/3 系统。据我了解,有两种方式可以连接 SAP 系统:

  • JCo 客户
  • JCo 服务器

现在我的应用程序从 SAP 系统发送和接收数据。我需要使用 JCo 客户端/服务器吗?

0 投票
1 回答
237 浏览

java - 调用 stop() 时 Jcoserver 状态更改为 STOPPING(不是 STOPPED)

我正在使用 SAPJco3.jar 使用 Java 连接到 SAP。然而,当我试图停止我的桥时,我得到了一些错误。

断开连接的代码是这样的:

我得到的错误是这样的:

当我试图停止网桥时,该网桥已经有一些连接处于活动状态,并且 jcoserver 的状态从 ALIVE -> STOPPING 更改,并且它永远不会停止。如果没有连接到服务器,它会毫无问题地进入状态 STOPPED。

任何人都可以为这个问题提供任何方向吗?有什么办法可以强行停桥吗?

谢谢!

0 投票
1 回答
1145 浏览

spring-boot - Docker 中的 Sap Java 连接器应用程序

我正在尝试使用 springboot 构建一个 sap java 连接器。要构建这个应用程序,我们需要 sapjco3.jar 和 sapjco3.so。

我正在使用 Hibersap 库并添加了 maven jar 依赖项。在文档中,它说要运行我们需要在 java 参数中传递 java.library.path={path to the .so file} 的应用程序。

该应用程序在 linux 中运行良好,但我面临:

当我尝试在 Docker 中运行时。

我已经在我的 dockerfile 中添加了这个。:

我正在尝试使用以下路径:

正如我所说,这在使用 dll 和 linux 的 windows 中工作,但在运行 linux 的 docker 中失败。

0 投票
1 回答
90 浏览

sap - 如何提取特定年份的 sap 数据

我正在尝试从 SAP 系统中提取 BSEG 数据。我想为 2018 年的字段 GJAHR 设置一个过滤器,以便提取该特定年份的数据。下面是代码片段: 

0 投票
0 回答
886 浏览

spring - 如何配置 Spring Boot 应用程序在 Eclipse STS 中运行

我有一个在 STS 中开发的 Spring Boot 应用程序,它通过 SAP Java 连接器连接到 SAP。该连接器位于一个 jar 中,其规则禁止重命名或重新打包存档。

由于应用程序必须在多个平台上运行,我在本地将 SAP JCO jar 重新打包到一组自定义依赖项中,如下所示:

sap-jco-api模块用于编译,其他用于执行。正确打包是在每个项目的基础上处理的,每次都配置maven-dependency-plugin插件。

对于有问题的 Spring Boot 应用程序,以下是 POM 的相关部分:

打包时,所有 SAP 依赖项都从生成的 jar 中排除,spring-boot-maven-plugin并且特定于平台的文件被复制到一个子目录中,该子目录通过MANIFEST Class-Path条目对最终 jar 可见。

这是 Maven 为该 POM 创建的目标文件夹:

结果 jar 在运行时按预期工作java -jar target\application.jar

问题出现在 STS(或 Eclipse)中,当我通过右键单击 ->Run As ->Spring Boot App 运行应用程序时,该项目似乎以默认方式打包 - 因此打包了 SAP jar - 并且执行中断:

我想我必须以某种方式在 IDE 中复制 Maven 配置,但我找不到这样做的方法。在“运行配置”中似乎没有办法做到这一点,该菜单命令似乎也没有运行 Spring Boot Maven 插件spring-boot:run目标,我可以在 POM 中进行配置。

这阻碍了我从 IDE 内部调试应用程序,而且我还被迫手动打包并从命令行运行它,从而减慢了开发速度。

我能做些什么?

0 投票
1 回答
574 浏览

android-studio - 找不到“libsapjco3.so”

使用 sapjco 连接到 SAP 时出现问题。这是错误消息:

java.lang.ExceptionInInitializerError: JCo 初始化失败并出现 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.ecowb.ecowb-IFzEAhc8t47wbNTPHHT6kw==/base.apk",压缩文件“/data/app/com.example.ecowb.ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_dependencies_apk.apk”,压缩文件“/data/app/com.example.ecowb.ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_resources_apk.apk”,压缩文件“/data/app/com.example.ecowb.ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_slice_0_apk.apk”,压缩文件“/data/app/com.example.ecowb.ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_slice_1_apk.apk”,压缩文件“/data/app/com.example.ecowb.ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_slice_2_apk.apk”,压缩文件“/data/app/com.example.ecowb。ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_slice_3_apk.apk”,压缩文件“/data/app/com.example.ecowb.ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_slice_4_apk.apk”,压缩文件“/data/app/com.example.ecowb. ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_slice_5_apk.apk”,压缩文件“/data/app/com.example.ecowb.ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_slice_6_apk.apk”,压缩文件“/data/app/com.example.ecowb. ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_slice_7_apk.apk”,压缩文件“/data/app/com.example.ecowb.ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_slice_8_apk.apk”,压缩文件“/data/app/com.example.ecowb. ecowb-IFzEAhc8t47wbNTPHHT6kw==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.ecowb.ecowb-IFzEAhc8t47wbNTPHHT6kw==/lib/arm64, /system/lib64,/system/vendor/lib64]]] 找不到“libsapjco3.so”

这是我的项目:

MainActivity.Java

这是我的 Gradle:

构建.gradle

0 投票
2 回答
2401 浏览

java - JCO_ERROR_RESOURCE:目标 ABAP_AS_WITHOUT_POOL 不存在...通过 JCo 连接时出错

我正在开发一个 Java 应用程序,该应用程序需要从位于 SAP 表中的 SAP 系统获取数据。我尝试使用 SAP Java 连接器 3.X 将 SW 与 SAP 连接,但我遇到了目的地问题。

我使用了 SAP Java 连接器附带的代码示例。

}

这是我从 NetBeans 得到的错误消息:

目标 ABAP_AS_WITHOUT_POOL 工作在目标 ABAP_AS_WITHOUT_POOL 上执行失败 com.sap.conn.jco.JCoException:(106)JCO_ERROR_RESOURCE:com.sap.conn.jco.rt.DefaultDestinationManager.update(DefaultDestinationManager.java:217) 中不存在目标 ABAP_AS_WITHOUT_POOL com.sap.conn.jco.rt.DefaultDestinationManager.searchDestination(DefaultDestinationManager.java:382) 在 com.sap.conn.jco.rt.DefaultDestinationManager.getDestinationInstance(DefaultDestinationManager.java:100) 在 com.sap.conn.jco。 JCoDestinationManager.getDestination(JCoDestinationManager.java:104) 在 jcotest2.CustomDestinationDataProvider.executeCalls(CustomDestinationDataProvider.java:92) 在 jcotest2.Main.main(Main.java:39)

构建成功(总时间:2 秒)

0 投票
1 回答
1702 浏览

java - 如何修复“JCO_ERROR_CONVERSION:无法将值从 java.lang.String 类型转换为 STRUCTURE”

我们在 SAP 中实现的功能之一无法正常工作。在 SAP 中,所有函数都正常工作并返回正确的值,但是,当在 Java JCo 中调用时,客户端需要一个结构而不是 String 或 int。从参数中提取结构时,它会给出一个结构,该结构具有两个未命名的列,每个列都没有要填充的字节长度。

我们在 SAP 中为输入参数“I_REZEPT”尝试了不同的数据类型,例如 int8 和 char12

Stacktrace: com.sap.conn.jco.ConversionException: (122) JCO_ERROR_CONVERSION: 无法在 com.sap.conn.jco.rt.AbstractRecord 的字段 I_REZEPT 中将值“1”从 java.lang.String 类型转换为 STRUCTURE。 createConversionException(AbstractRecord.java:436) 在 com.sap.conn.jco.rt.AbstractRecord.createConversionException(AbstractRecord.java:430) 在 com.sap.conn.jco.rt.AbstractRecord.setValue(AbstractRecord.java:2824)在 com.sap.conn.jco.rt.AbstractRecord.setValue(AbstractRecord.java:3933) 在 edu.hsalbsig.intellifarm.connector.sap.IntellifarmSapFunction.sollwerte(IntellifarmSapFunction.java:226) 在 edu.hsalbsig.intellifarm.connector .sap.IntellifarmSapFunction.execute(IntellifarmSapFunction.java:61) at edu.hsalbsig.intellifarm.connector.mqtt.IntellifarmMqttClient.messageArrived(IntellifarmqttClient.java:98) 在 org.eclipse.paho.client.mqttv3.internal.CommsCallback.handleMessage(CommsCallback.java:416) 在 org.eclipse.paho.client.mqttv3.internal.CommsCallback.deliverMessage(CommsCallback.java:513) 在 org .eclipse.paho.client.mqttv3.internal.CommsCallback.run(CommsCallback.java:213) 在 java.base/java.lang.Thread.run(Thread.java:834)


虽然从 SAP 调试功能看起来像这样

预期是这样的

0 投票
1 回答
219 浏览

java - 如何修复“尝试将字段 ID 添加到记录时的未知类型 -1”

我们正在编写一个 sapjco 客户端来自动化某些事情。但是,一个函数在初始化函数时似乎存在问题。其他功能块可以正确连接,但是这个在尝试连接时会崩溃。

该函数没有导入。但是我们也尝试了 import ,结果相同。所以添加一个似乎也不起作用

预期:函数的指针

结果:“尝试将字段 ID 添加到记录时出现未知类型 -1”