私は、ECC から中間ドキュメント (IDoc) を受け取り、iDoc を ECC に渡す Java アプリケーションに取り組んでいます。
私たちのアプリケーションは、ECC と他のシステムの間の橋渡しのように機能し、アプリケーションによってディスクに保存された IDoc を ECC から受け取ります。バックグラウンド プロセスは、IDoc を含むファイルが保存され、後で送信されるファイル システムの場所をチェックします。 HTTP リクエストを介して他の宛先に送信します。また、アプリケーションはこれらの他のシステムと通信して、ファイルにも保存されている情報を取得し、バックグラウンド プロセスで情報を読み取り、ECC に送信される IDoc を構築します。
アプリケーションが ECC から IDoc を受信すると、ECC に確認 IDoc を送信します。ECC に送信するときも同様の処理が必要です。つまり、Java アプリケーションが IDoc をアプリケーションに送信するときに、ECC に ALE 確認を送信してもらいます。 IDoc が正しく送信された場合、アプリケーションは、送信されたバッチを履歴フォルダーに安全に移動できることを認識します。確認で問題があったことが示されている場合は、IDoc の送信をもう一度試行する必要があります。
Java アプリケーションに確認を送信するように ECC を構成するにはどうすればよいでしょうか?
Java から ECC に送信するために使用するコードは次のとおりです。
try {
destination= JCoDestinationManager.getDestination(PROGID);
iDocRepository = JCoIDoc.getIDocRepository(destination);
tid = destination.createTID();
iDocFactory = JCoIDoc.getIDocFactory();
} catch (JCoException e) {
e.printStackTrace();
}
List<Invoic02> invoic02s = new ArrayList<>();
EDI_DC40 edi_dc40 = IdocUtil.generateIdocControlRecordObject(IdocUtil.invoiceIdocType, IdocUtil.invoiceMsgType);
for(InvoiceIdoc invoicIdoc : invoices){
Invoic02 invoic02 = new Invoic02();
invoicIdoc.setBEGIN("1");
invoicIdoc.setEDI_DC40(edi_dc40);
invoic02.getInvoiceIdoc().add(invoicIdoc);
}
String invoicesIdocString = XmlParser.objectToXmlString(invoices, Invoic02.class);
try {
IDocXMLProcessor processor= iDocFactory.getIDocXMLProcessor();
IDocDocumentList iDocList=processor.parse(iDocRepository, invoicesIdocString.toString());
JCoIDoc.send(iDocList, IDocFactory.IDOC_VERSION_DEFAULT, destination, tid);
} catch (JCoException e) {
e.printStackTrace();
} catch (IDocParseException e) {
e.printStackTrace();
}
着信 IDOC をリッスンするには、プライベート ライブラリを使用しますが、JCO IDOC ライブラリも使用します。
JCO IDOC ライブラリを使用して、送信された IDOC のステータスをチェックできますか? または、受信したすべての IDOC の確認を送信するように ECC を構成する方法はありますか?