このコードがあなたの役に立つと願っています。 ここでは、テーブルにデータを書き込むBAPIに値を渡しています。
string strBapi = strBAPI;
DataTable tblShipTo = null;
DataTable myTable = new DataTable("tblTest");
DataRow dr = myTable.NewRow();
myTable.Columns.Add("Num1", typeof(int));
myTable.Columns.Add("Num2", typeof(int));
myTable.Columns.Add("Num3", typeof(int));
dr["Num1"] = 1;
dr["Num2"] = 2;
dr["Num3"] = 3;
myTable.Rows.Add(dr);
dr = myTable.NewRow();
dr["Num1"] = 5;
dr["Num2"] = 6;
dr["Num3"] = 7;
myTable.Rows.Add(dr);
int i = -1;
DataColumn col;
object obj = null;
try
{
ConnectorFuntions cf = new ConnectorFuntions();
IRfcFunction bapiTEST = _rfcDest.Repository.CreateFunction(strBapi);
RfcStructureMetadata metaData = _rfcDest.Repository.GetStructureMetadata("ZBAPI_A_STRU_ORDER_CLICK");
IRfcStructure structImport = metaData.CreateStructure();
IRfcTable tblInput = bapiTEST.GetTable("IMPORT");
foreach (DataRow dr1 in myTable.Rows)
{
IRfcStructure myStructRow = metaData.CreateStructure();
i++;
foreach (DataColumn column in myTable.Columns)
{
obj = dr1[column];
myStructRow.SetValue(column.ToString(), obj);
}
tblInput.Append(myStructRow);
}
RfcSessionManager.BeginContext(_rfcDest);
bapiTEST.Invoke(_rfcDest);
なぜ、BDCではなく.NETを使用しますか? –
バッチ・ロードを実行しようとしているのか、トランザクション・データをロードしようとしていますか?あなたが話しているデータベースはあなたのSAPシステムとは別ですか?私は、.NET要件が何であるかについて完全にはっきりしていません。 – Esti