2012-04-05 4 views
1

私はドキュメントを理解することができず、具体的な例が本当に必要です。SAP Nco 3.0を使用してrfcTableにフィールドを追加するにはどうすればよいですか?

私は既に目的地を作成しました。ここで私は私のBAPIを定義します。

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

は、私の輸入を設定し、それを起動し、その後、私の輸出を取得する - のいずれかのテーブルです:

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

私は今、各アイテムにフィールドを追加しますテーブルITEMDATATABLEに設定し、その値を設定して、あとでBAPIが返すフィールドの1つであるかのように参照できます。誰も私にどのように教えてくれますか?

EDIT:さて、私はいくつかの進歩を遂げてきました。私は値を設定しようとすると、

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

は、しかし、私は「ロックされた構造BAPI_INCINV_DETAIL_ITEMに要素を追加できません」RfcInvalidStateExceptionを取得します。

これはどうしてですか?

答えて

1

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

IRfcTable ITEMDATATable = BapiIncomingInvoiceGetDetail.GetTable("ITEMDATA"); 
ITEMDATATable.Append(); 
ITEMDATATable.SetValue("SKU_ATM",myItemData.SKU_AMT); 
関連する問題