使用NCo向SAP系統提交idoc的一種方式是功能模塊IDOC_INBOUND_ASYNCHRONOUS
。功能模塊有幾個包含你的idoc數據的表參數。表IDOC_CONTROL_REC_40
包含控制記錄,IDOC_DATA_REC_40
包含idoc數據段。
IDOC_DATA_REC_40
包含稱爲SDATA
的字段。該字段包含idoc段數據作爲單個連接字符串,其中固定字段長度爲。
var fnc = destination.Repository.CreateFunction("IDOC_INBOUND_ASYNCHRONOUS");
var controlTable = fnc.GetTable("IDOC_CONTROL_REC_40");
var dataTable = fnc.GetTable("IDOC_DATA_REC_40");
// control segment
controlTable.Append();
controlTable.CurrentRow.SetValue("TABNAM", "EDI_DC40 ");
...
// here you add the data segments
dataTable.Append();
dataTable.CurrentRow.SetValue(...);
fnc.Invoke(destination);
的IDOC數據建設,爲IDOC_DATA_REC_40-SDATA
,必須在你的代碼手工完成 - 你需要知道的字段長度,包括位數的數字領域。可能有辦法從SAP系統獲取這些信息並在代碼中使用它,但我從來沒有嘗試過。
SAP NCo 3.0沒有任何內置的IDOC處理功能集,如Java版本或某些類似ERP連接的API所構建的功能集。無需SAP NCo即可完成此操作的一種方法是通過HTTP,您可以在本文中看到它,http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/01/14/post-idoc-to-sap-erp-over-http-from-any-application你將需要你的基礎來幫助你使用合作伙伴配置文件等,但是你可以發佈真正的XML到Web服務並生成和IDOC。 – Bearcat9425