1

ドキュメントを理解できず、具体的な例が本当に必要です。

宛先はすでに作成済みです。ここで BAPI を定義します。

IRfcFunction BapiIncomingInvoiceGetDetail = SapRfcRepository.CreateFunction("BAPI_INCOMINGINVOICE_GETDETAIL");

インポートを設定し、それを呼び出して、エクスポートを取得します。そのうちの 1 つはテーブルです。

IRfcTable ITEMDATATable = BapiIncomingInvoiceGetDetail.GetTable("ITEMDATA");

テーブル ITEMDATATable の各項目にフィールドを追加し、その値を設定して、BAPI によって返されるフィールドの 1 つとして後で参照できるようにします。誰でも方法を教えてもらえますか?

編集:さて、私はいくつかの進歩を遂げました:

RfcFieldMetadata newField = new RfcFieldMetadata("SKU_AMT",0,0,0);
ITEMDATATable.CurrentRow.Metadata.AddField(newField);
ITEMDATATable.SetValue("SKU_AMT",myItemData.SKU_AMT);

ただし、値を設定しようとすると、RfcInvalidStateException「ロックされた STRUCTURE BAPI_INCINV_DETAIL_ITEM に要素を追加できません」が発生します。

これを回避する方法はありますか?

4

1 に答える 1

1

テーブルに列を追加することはできません。フィールドは既に定義されています。テーブルに行を追加し、その行のフィールドに入力する必要があります。これはうまくいくはずです(ただし、今はテストできません):

IRfcTable ITEMDATATable = BapiIncomingInvoiceGetDetail.GetTable("ITEMDATA");
ITEMDATATable.Append();
ITEMDATATable.SetValue("SKU_ATM",myItemData.SKU_AMT);
于 2012-04-06T17:08:02.113 に答える