問題タブ [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.
wso2 - wso2 esb を介して IDOC を SAP に送信する方法
以下のドキュメントを確認して構成しました。
https://docs.wso2.com/display/ESB481/SAP+統合
SAP と対話するためのプロトコルとして IDOC を使用する必要があります。IDOC 構造を持つプロキシを作成しましたが、そのプロキシをヒットしようとすると、無知なヌル ポインター例外が発生します。
エラーログ:
TID: [0] [ESB] [2016-07-07 08:20:22,543] WARN {org.apache.synapse.endpoints.EndpointContext} - サスペンド エンドポイント: sapidocendpoint - 現在のサスペンド期間: 30000ms - 次の再試行後: 木Jul 07 08:20:52 CLT 2016 {org.apache.synapse.endpoints.EndpointContext} TID: [0] [ESB] [2016-07-07 08:20:22,543] エラー {org.wso2.carbon.transport. sap.SAPTransportSender} - IDoc を EPR に送信中にエラーが発生しました: idoc:/sapdelts {org.wso2.carbon.transports.sap.SAPTransportSender} java.lang.NullPointerException at org.wso2.carbon.transports.sap.idoc.DefaultIDocXMLMapper org.wso2.carbon.transports.sap.idoc.DefaultIDocXMLMapper.getDocumentList(DefaultIDocXMLMapper.java:59) の .closeStream(DefaultIDocXMLMapper.java:68) org.wso2.carbon.transports.sap.SAPTransportSender.getIDocs(SAPTransportSender.java) の:163) org.wso2 で。carbon.transports.sap.SAPTransportSender.sendMessage(SAPTransportSender.java:103) at org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112) at 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 org.apache.synapse.core.axis2.Axis2SynapseEnvironment の .axis2.Axis2Sender.sendOn(Axis2Sender.java:59)。send(Axis2SynapseEnvironment.java:338) at org.apache.synapse.endpoints.AbstractEndpoint.send(AbstractEndpoint.java:333) at org.apache.synapse.endpoints.AddressEndpoint.send(AddressEndpoint.java:59) at 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) の processEntityEnclosureRequest(ServerWorker.java:411) 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.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: IDoc を EPR に送信中にエラーが発生しました: idoc:/sapdelts at org.apache.axis2.transport.base.AbstractTransportSender.handleException(AbstractTransportSender.java:226) org.wso2.carbon.transports.sap.SAPTransportSender.sendMessage(SAPTransportSender.java:136) で 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.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) at org.apache.synapse.transport.org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run で org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) で passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:411) (NativeWorkerPool.java:172) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) で java.lang.Thread で。 run(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) org.wso2.carbで
根本的な原因が何かを見つけることができず、
誰かがこれを手伝ってくれますか。
プロキシー:
authorization - IDoc の編集および (再) 処理の権限
既存の IDoc の編集と再処理へのアクセスによる不正なトランザクションのリスクを調査しています。
以下のシナリオでは、次の特性が適用されます。
- ユーザー Y は財務部門に所属しており、SAP の財務取引にアクセスできます。
- ユーザー Y が IDOC を作成しました (金融取引に関連)。
- ユーザー X は人事部に所属しており、SAP の財務取引にはアクセスできません。
- ユーザー X は、IDOCS を変更するための T コード レベルのアクセス権を持っています。
私の質問は、これらのシナリオのどれが正しいものであり、その背後にある技術的な理由は何ですか?
- IDOC/システムが IDOC 作成者 (この場合はユーザー Y) の権限をチェックするため、ユーザー X は既存の IDOC を編集して正常に再処理できます。
- ユーザー X は、既存の IDOC を編集して正常に再処理できます。これは、IDOC がキューにあり、追加の承認を確認しないためです。
- ユーザー X は既存の IDOC を編集できますが、IDOC/システムが IDOC チェンジャー (この場合はユーザー X) の権限をチェックするため、再処理することはできません。
java - SAP IDoc サーバーのモッキング
SAP JcoIDocServer を使用しています。
このサーバーへのテスト用のリクエストをモックできるかどうかを知りたいです。フレームワークはありますか、それとも独自に構築する必要がありますか?
java - 複数の宛先用の JCO IDOC サーバー
同じSAPシステム(ゲートウェイホストは同じ)上の複数の宛先に接続してIDocを受信できるIDOCサーバーを開発しています。複数の JCoServer インスタンスを実行する必要があるか、複数の宛先を持つ単一の JCoServer が必要かはわかりません。
jco.server.repository_destination
後者の場合、サーバー データを提供するときにプロパティを使用して宛先名を指定するパラメーターがあるのはなぜですか?
java - ポートの問題により、JCO Idoc サーバーがメッセージを受信できません
JCo 3 を使用して構築した Java ベースの idoc リスニング サーバーを使用しています。それを起動して sap システムから Idoc を送信すると、例外が発生します。
それが言うように、これはメッセージサーバーが利用できないためだと思い、SAPマシンにログインし、netstatを使用して開いているポートをチェックしました。
ポート 3600 はリッスンしていませんでしたが、ポート 7200 は msg_server.exe によって開かれていると報告されています。jco サーバー側マシンの /etc/services ファイルを に設定しましsapmsNSP 3600/tcp
たが、それを 7200 に変更しても、内部エラーを示す例外が発生します