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;
}
沒有留言:
張貼留言