1

我看不懂文档,真的需要一个具体的例子。

我已经创建了目的地。在这里,我定义了我的 BAPI:

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

设置我的导入,调用它,然后获取我的导出 - 其中一个是表:

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

我现在想为表 ITEMDATATable 中的每个项目添加一个字段并设置它的值,以便以后可以引用它,就好像它是 BAPI 返回的字段之一一样。谁能告诉我怎么做?

编辑:好的,我已经取得了一些进展:

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 回答