1. 避免 Destination configuration already initialized 錯誤
2. 展示如何把 IRfcTable 當作呼叫 RFC 的輸入參數
歷經
public IRfcTable TEST_B0001(string VBELN, string POSNR, string CHARG, string LFIMG) { IRfcTable IRetTable = null; HLBackendConfig hlConfig = new HLBackendConfig(); bool bRegistered = false; try { RfcDestinationManager.RegisterDestinationConfiguration(hlConfig); RfcDestination rfcDest = RfcDestinationManager.GetDestination("INIT_SAP"); RfcRepository rfcRepo = rfcDest.Repository; IRfcFunction IReader = rfcRepo.CreateFunction("TEST_B0001"); bRegistered = true; IRfcTable Itab = IReader.GetTable("IT_INPUT"); Itab.Append(); Itab[0].SetValue("VBELN", VBELN); Itab[0].SetValue("POSNR", POSNR); Itab[0].SetValue("CHARG", CHARG); Itab[0].SetValue("LFIMG", LFIMG); IReader.SetValue("IT_INPUT", Itab); IReader.Invoke(rfcDest); IRetTable = IReader.GetTable("ET_RETURN"); } catch (Exception ex) { throw ex; } finally { if (bRegistered) RfcDestinationManager.UnregisterDestinationConfiguration(hlConfig); } return IRetTable; }
沒有留言:
張貼留言