如何使用SAP Nco 3.0向rfcTable添加字段?

时间:2012-04-05 15:44:19

标签: c# sap sap-connector

我无法理解文档,确实需要一个具体的例子。

我已经创建了目的地。在这里我定义了我的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”。

有什么方法吗?

1 个答案:

答案 0 :(得分:1)

您无法将列附加到表中,字段已定义。您需要向表中添加一行并填充该行的字段。这应该工作(虽然我现在无法测试):

IRfcTable ITEMDATATable = BapiIncomingInvoiceGetDetail.GetTable("ITEMDATA");
ITEMDATATable.Append();
ITEMDATATable.SetValue("SKU_ATM",myItemData.SKU_AMT);