问题标签 [idoc]

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 投票
0 回答
438 浏览

wso2 - 如何通过 wso2 esb 将 IDOC 发送到 SAP

我浏览了以下文档并进行了配置:

https://docs.wso2.com/display/ESB481/SAP+Integration

我必须使用 IDOC 作为与 SAP 交谈的协议,创建具有 IDOC 结构的代理,但我尝试点击该代理,得到无能的空指针异常。

错误日志:

TID:[0] [ESB] [2016-07-07 08:20:22,543] WARN {org.apache.synapse.endpoints.EndpointContext} - 挂起端点:sapidocendpoint - 当前挂起持续时间为:30000 毫秒 - 下次重试:周四7 月 7 日 08:20:52 CLT 2016 {org.apache.synapse.endpoints.EndpointContext} TID:[0] [ESB] [2016-07-07 08:20:22,543] 错误 {org.wso2.carbon.transports. sap.SAPTransportSender} - 向 EPR 发送 IDoc 时出错:idoc:/sapdelts {org.wso2.carbon.transports.sap.SAPTransportSender} java.lang.NullPointerException at org.wso2.carbon.transports.sap.idoc.DefaultIDocXMLMapper .closeStream(DefaultIDocXMLMapper.java:68) 在 org.wso2.carbon.transports.sap.idoc.DefaultIDocXMLMapper.getDocumentList(DefaultIDocXMLMapper.java:59) 在 org.wso2.carbon.transports.sap.SAPTransportSender.getIDocs(SAPTransportSender.java :163) 在 org.wso2。carbon.transports.sap.SAPTransportSender.sendMessage(SAPTransportSender.java:103) 在 org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112) 在 org.apache.axis2.engine.AxisEngine.send( AxisEngine.java:442) 在 org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:185) 在 org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.executeImpl(DynamicAxisOperation.java: 167) 在 org.apache.axis2.client.OperationClient.execute(OperationClient.java:149) 在 org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:482) 在 org.apache.synapse.core .axis2.Axis2Sender.sendOn(Axis2Sender.java:59) 在 org.apache.synapse.core.axis2.Axis2SynapseEnvironment。发送(Axis2SynapseEnvironment.java:338)在 org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:333)在 org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59)在 org.apache .synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:114) 在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) 在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator .java:47) 在 org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) 在 org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:166) 在 org. org.apache.synapse.transport.passthru.ServerWorker 上的 apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)。org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) 的 processEntityEnclosingRequest(ServerWorker.java:411) org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java :172) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread. java:724) TID: [0] [ESB] [2016-07-07 08:20:22,546] 错误 {org.apache.synapse.core.axis2.Axis2Sender} - 发送消息 {org.apache. synapse.core.axis2.Axis2Sender} org.apache.axis2.AxisFault:向 EPR 发送 IDoc 时出错:idoc:/sapdelts at org.apache.axis2.transport.base.AbstractTransportSender.handleException(AbstractTransportSender.java:226) 在 org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112) 在 org.apache.axis2 的 org.wso2.carbon.transports.sap.SAPTransportSender.sendMessage(SAPTransportSender.java:136) .engine.AxisEngine.send(AxisEngine.java:442) 在 org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient.send(DynamicAxisOperation.java:185) 在 org.apache.synapse.core.axis2.DynamicAxisOperation$DynamicOperationClient .executeImpl(DynamicAxisOperation.java:167) 在 org.apache.axis2.client.OperationClient.execute(OperationClient.java:149) 在 org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:482) 在org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:59) 在 org.apache.synapse.core.axis2。Axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:338) 在 org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:333) 在 org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59) 在 org .apache.synapse.mediators.builtin.CallMediator.mediate(CallMediator.java:114) 在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) 在 org.apache.synapse.mediators.AbstractListMediator.mediate (AbstractListMediator.java:47) 在 org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) 在 org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:166) 在org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 在 org.apache.synapse.transport。passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:411) at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run (NativeWorkerPool.java:172) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread。运行(Thread.java:724) 原因:org.wso2.carbon.transports.sap.idoc.DefaultIDocXMLMapper.closeStream(DefaultIDocXMLMapper.java:68) 中的 java.lang.NullPointerException 在 org.wso2.carbon.transports.sap。 idoc.DefaultIDocXMLMapper.getDocumentList(DefaultIDocXMLMapper.java:59) 在 org.wso2.carbon.transports.sap.SAPTransportSender.getIDocs(SAPTransportSender.java:第163章)

无法找到根本原因,

有人可以帮忙吗。

代理人:

0 投票
1 回答
594 浏览

java - 运行应用程序 JAR 时出现错误“服务器默认存储库目标 XXXX 无效”

我们有一个使用 DropWizard 制作的 Java 项目,它使用库 SAP JCO 和 SAP IDOC,当从 IDE 运行时它不会抛出任何错误,但是当它被打包到一个 jar 中并且我们尝试运行该 jar 时,我们会收到以下信息堆栈跟踪:

我们的 .jcoServer 文件如下所示:

我们的 .jcoDestination 文件如下所示:

当我们运行 jar 时,我们这样做:

目标和服务器共享相同的程序 ID,因为我们的 Java 应用程序从 ERP 发送和接收 iDoc,我们使用 IntelliJ 作为 IDE,从那里运行应用程序不会引发任何错误并且按预期工作。

这个问题有已知的原因吗?在 IDE 外运行 jar 时,是否需要特定参数才能运行?无法创建目标代理消息与NoSuchAlgorithmException错误有何关系?

0 投票
2 回答
1465 浏览

authorization - 编辑和(重新)处理 IDoc 的授权

我正在通过访问编辑现有 IDoc 并重新处理它们来调查未经授权交易的风险。

在以下场景中,以下特征适用:

  • 用户 Y 属于财务部门,可以访问 SAP 中的财务交易。
  • 用户 Y 已创建 IDOC(与金融交易相关)。
  • 用户 X 属于 HR 部门,无权访问 SAP 中的财务交易。
  • 用户 X 具有更改 IDOCS 的 T 代码级别访问权限。

我的问题是,这些场景中哪一个是正确的,其背后的技术原因是什么?

  1. 用户 X 可以编辑现有 IDOC 并成功重新处理它,因为 IDOC/系统检查了 IDOC 创建者(在本例中为用户 Y)的授权。
  2. 用户 X 可以编辑现有 IDOC 并成功重新处理它,因为 IDOC 在队列中并且不检查额外授权。
  3. 用户 X 可以编辑现有 IDOC,但不能重新处理它,因为 IDOC/系统会检查 IDOC 更改者(在本例中为用户 X)的授权。
0 投票
2 回答
344 浏览

java - 模拟 SAP IDoc 服务器

我正在使用 SAP JcoIDocServer。

我想知道是否可以模拟对该服务器的测试请求。有框架还是我必须自己构建?

0 投票
1 回答
1136 浏览

java - 用于多个目的地的 JCO IDOC 服务器

我正在开发一个 IDOC 服务器,它可以连接到同一 SAP 系统上的多个目标(网关主机将相同)并接收 IDoc。我不确定我是否需要运行多个 JCoServer 实例或具有多个目标的单个 JCoServer。

jco.server.repository_destination如果是后者,为什么在提供服务器数据时会有一个参数来使用属性指定目标名称?

0 投票
1 回答
1105 浏览

java - 由于端口问题,JCO Idoc 服务器无法接收消息

我有一个使用 JCo 3 构建的基于 java 的 idoc 侦听服务器。当我启动它并从 sap 系统发送一个 Idoc 时,它给了我一个异常。

正如它所说,我认为这是由于消息服务器不可用并登录到 sap 机器并使用 netstat 检查打开的端口。

端口 3600 未在侦听,但报告端口 7200 已被 msg_server.exe 打开。我已将我的 jco 服务器端机器的 /etc/services 文件设置为,sapmsNSP 3600/tcp但即使我将其更改为 7200,它也会给我异常说内部错误

0 投票
1 回答
593 浏览

interface - SAP 为什么 IDoc 有不同数量的段?

我是 IDocs 的新手,我仍在探索中。只是想知道为什么 IDocs 有不同数量的段?例如:在 WE02 中,我有这个 Outbound IDoc 编号 0001,它有 324 个段,而 Idoc 编号 0002 只有 26 个段。

我知道我们正在为 idocs 分配段,但为什么段数不同?我没有得到段分配。任何人都可以分享这个的相关链接吗?或解释..

提前致谢!

0 投票
1 回答
80 浏览

hybris - 更新 Hybris 中已创建材料的材料字段

您好,我们在 SAP ERP 中创建了一个材料,并将 IDoc 发送到 Hybris,但是当我们更改 SAP 中的一个字段时,它不会创建新的 idoc,并且在 Hybris 中不会生成更新。

我正在考虑编辑第一个 idoc 并重新发送它,因为我不熟悉 Hybris 中的 CSV 更新。

可以这样做,新的idoc会覆盖material字段吗?

谢谢你。

0 投票
2 回答
1515 浏览

.net - SAP .Net 连接器 3.0 - 如何从非 SAP 系统发送 idoc?

我正在尝试使用 .Net 连接器将数据发送到 SAP 系统。我已经能够很容易地向 RFC 功能模块发送调用,但似乎没有任何方法可以直接发送标准 Idoc。这很奇怪,因为 Idocs 应该是与 SAP 对话的标准通信工具。

有没有人发现是否/如何做到这一点?

0 投票
1 回答
1807 浏览

tomcat - 如何更改hybris数据中心的默认凭据

我已经用 hybris 配置了数据中心。但我必须将 datahub local.properties 中的默认密码从 nimda 更改为 Hybris123。我使用 openssl 来加密密码。在发布 idoc 时,我收到以下错误。

Tomcat日志:

2017-09-20 16:30:44,639 [DEBUG] [chdcciDefaultExportClient] 从发布到目标系统的响应状态:HybrisCore,200

2017-09-20 16:30:46,364 [INFO] [chdssAuthenticationFailureApplicationListener] 收到用户 [admin] 的 GET 请求 /core-publications/2/Company.txt - 由 org.springframework.security.authentication.BadCredentialsException 引起的身份验证失败:错误证书

混合日志:

[32mINFO [TaskExecutor-master-130-Task [8798452351926]] [ImpexDataImportClient] 来自http://localhost:8181/datahub-webapp/v1/core-publications/2 的响应状态:401 [[1;31mERROR [TaskExecutor-master -130-Task [8798452351926]] [ClientRetryListener] 无法与http://localhost:8181/datahub-webapp/v1/core-publications/2 [m java.lang.IllegalStateException: 无法与http://通信本地主机:8181/datahub-webapp/v1/core-publications/2 在 com.hybris.datahub.core.rest.client.ImpexDataImportClient.returnImportResultWithRetry(ImpexDataImportClient.java:107) ~[datahubadapterserver.jar:?] 在 com.hybris.datahub.core.rest.client.ImpexDataImportClient.lambda$1(ImpexDataImportClient .java:87) ~[datahubadapterserver.jar:?] at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:263) [spring-retry-1.1.1.RELEASE.jar:?] at org. springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:154) [spring-retry-1.1.1.RELEASE.jar:?] 在 com.hybris.datahub.core.rest.client.ImpexDataImportClient.returnImportResult(ImpexDataImportClient. java:86) [datahubadapterserver.jar:?] 在 com.hybris.datahub.core.facades.impl.DefaultItemImportFacade.callbackToDataHub(DefaultItemImportFacade.java:105) [datahubadapterserver.jar:?] 在 com.hybris.datahub.core.facades.impl.DefaultItemImportFacade.importItems(DefaultItemImportFacade.java:58) [datahubadapterserver.jar:?] 在 com.hybris.datahub.core.tasks.ItemImportTaskRunner.run(ItemImportTaskRunner .java:48) [datahubadapterserver.jar:?] at com.hybris.datahub.core.tasks.DefaultDataHubTaskExecutionStrategy.run(DefaultDataHubTaskExecutionStrategy.java:33) [datahubadapterserver.jar:?] at de.hybris.platform.task.impl .DefaultTaskService.processTask(DefaultTaskService.java:1505) [processingserver.jar:?] 在 de.hybris.platform.task.impl.DefaultTaskService.process(DefaultTaskService.java:1409) [processingserver.jar:?] 在 de.hybris .platform.task.impl.DefaultTaskService.processInTenant(DefaultTaskService.java:1378) [processingserver.jar:?] 在 de.hybris.platform.task。impl.DefaultTaskService$5.run(DefaultTaskService.java:1257) [processingserver.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_121] at java.util.concurrent .ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_121] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121] 引起:java.lang.IllegalStateException : 未经授权的回应未经授权的回应未经授权的回应http://localhost:8181/datahub-webapp/v1/core-publications/2 at com.hybris.datahub.core.rest.client.ImpexDataImportClient.returnImportResultWithRetry(ImpexDataImportClient.java:100) ~[datahubadapterserver.jar:?] ... 15 更多 [1;31mERROR [TaskExecutor-master-130-Task [8798452351926]] [ClientRetryListener] 原因:来自http://localhost:8181/datahub-webapp/v1/core-publications/2的未经授权的响应。