看到這個亂碼我還以爲是出了什麼異常,因爲系統拋出異常類是:RfcCommunicationException,到處找原因,搞得滿頭包。後面只好到正式環境試着用OA的數據開立請購單試試,結果系統提示開發執行單不存在,這才知道原因所在,因此對這個亂碼感到很費勁,於是解決之。
我們在調用RFC前的配置信息裏面可以規定編碼,如下紅字所示:
public class MyBackendConfig : IDestinationConfiguration
{
public RfcConfigParameters GetParameters(String destinationName)
{
if ("PRD_000".Equals(destinationName))
{
RfcConfigParameters parms = new RfcConfigParameters();
parms.Add(RfcConfigParameters.AppServerHost, "192.168.1.3");
parms.Add(RfcConfigParameters.SystemNumber, "00");
parms.Add(RfcConfigParameters.User, "MENGXIN");
parms.Add(RfcConfigParameters.Password, "×××");
parms.Add(RfcConfigParameters.Client, "888");
parms.Add(RfcConfigParameters.Language, "ZH");
parms.Add(RfcConfigParameters.PoolSize, "5");
parms.Add(RfcConfigParameters.MaxPoolSize, "10");
parms.Add(RfcConfigParameters.IdleTimeout, "60");
parms.Add(RfcConfigParameters.Codepage, "8300");
return parms;
}
else return null;
}
public bool ChangeEventsSupported()
{
return false;
}
public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged;
}
這樣規定了這個編碼爲8300(繁體),於是系統正確提示了信息:
關於這個Codepage的代碼含義,如下表:
至此,亂碼問題完全解決~
PS:.NET連接SAP系統專題 就到此結束了。歡迎各位朋友一起交流指正...