我无法理解文档,确实需要一个具体的例子。
我已经创建了目的地。在这里我定义了我的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”。
有什么方法吗?
答案 0 :(得分:1)
您无法将列附加到表中,字段已定义。您需要向表中添加一行并填充该行的字段。这应该工作(虽然我现在无法测试):
IRfcTable ITEMDATATable = BapiIncomingInvoiceGetDetail.GetTable("ITEMDATA");
ITEMDATATable.Append();
ITEMDATATable.SetValue("SKU_ATM",myItemData.SKU_AMT);