如何使用SAP .Net连接器3创建并发送Idoc到SAP 3
问题描述:
我想使用SAP创建并发送idoc到SAP。网络连接器3.x.如何使用SAP .Net连接器3创建并发送Idoc到SAP 3
我有我的应用程序配置的RFC目标:
_rfcDestination = RfcDestinationManager.GetDestination(_destinationName);
但我不能找到如何创建和发送的IDoc任何例子。
任何人都可以提供一些关于如何创建和发送idoc的示例代码?
答
使用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