程序目的:检索SAP里定义的公司名单,然后获取每家公司的详细资料当用户选中一家公司时,在列表框中显示该公司的详细属性。最下面有源码下载地址。
try
{
//提供必要的登录参数和获得RfcDestination对象对应到SAP系统中,你要调用的fm。
RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination("DEV");
//使用RfcDestination对象的repository属性创建一个IRfcFunction对象为fm提供调用
RfcRepository SapRfcRepository = SapRfcDestination.Repository;
IRfcFunction BapiGetCompanyList = SapRfcRepository.CreateFunction("BAPI_COMPANY_GETLIST");
IRfcFunction BapiGetCompanyDetail = SapRfcRepository.CreateFunction("BAPI_COMPANY_GETDETAIL");
// 得到SAP定义的公司列表
BapiGetCompanyList.Invoke(SapRfcDestination);
IRfcTable CompanyTable = BapiGetCompanyList.GetTable("Company_List");
IRfcStructure RfcReturn = BapiGetCompanyList.GetStructure("RETURN");
// 遍历返回公司列表
for (int CompanyPtr = 0; CompanyPtr < CompanyTable.RowCount; CompanyPtr++)
{
CompanyTable.CurrentIndex = CompanyPtr;
string CompanyNumber = CompanyTable.GetString("COMPANY");
string Name1 = CompanyTable.GetString("NAME1");
BapiGetCompanyDetail.SetValue("COMPANYID", CompanyNumber);
// SAP定义公司的详细信息
BapiGetCompanyDetail.Invoke(SapRfcDestination);
IRfcStructure RfcReturnDetail = BapiGetCompanyDetail.GetStructure("RETURN");
IRfcStructure CompanyDetail = BapiGetCompanyDetail.GetStructure("COMPANY_DETAIL");
Company myCompany = new Company();
myCompany.CompanyNumber = CompanyNumber;
myCompany.Name1 = Name1;
myCompany.Name2 = CompanyDetail.GetString("Name2");
myCompany.City = CompanyDetail.GetString("City");
myCompany.Street = CompanyDetail.GetString("Street");
myCompany.PoBox = CompanyDetail.GetString("PO_BOX");
myCompany.PostalCode = CompanyDetail.GetString("POSTL_Cod1");
myCompany.Country = CompanyDetail.GetString("Country");
listBox1.Items.Add(myCompany);
}
if (listBox1.Items.Count > 0)
{
listBox1.SelectedIndex = 0;
propertyGrid1.SelectedObject = listBox1.SelectedItem;
}
}
catch (System.Exception ex)
{
MessageBox.Show(string.Concat("RfcDestinationManager exception: ", ex.Message), "RFC 客户示例出错", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
下载地址:http://download.csdn.net/detail/szlaptop/4635341