рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде SAP ERP рдХреЗ рдПрдХреАрдХрд░рдг рдХреЗ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо SAP рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Microsoft .NET рдХреЗ рд▓рд┐рдП SAP рдХрдиреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдЯрд░реНрдорд┐рдирд▓ (TSD) рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рд░реНрд╡рд░ рдкрд░ Microsoft рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реВрдЪрдирд╛ рд╕рд░реНрд╡рд░ (IIS) рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдЬреИрд╕реЗ рдХрд┐рд╕реА рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░реЗрдЧрд╛, рдШрдЯрдХ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рддрдХрдиреАрдХ C # рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ asp.net рд╣реИред
рдПрд╕рдПрдкреА рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдореЙрдбреНрдпреВрд▓ (рдПрдлрдПрдо) рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкреИрд░рд╛рдореАрдЯрд░ "рд░рд┐рдореЛрдЯ рдореЙрдбреНрдпреВрд▓" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

рдлрд╝рдВрдХреНрд╢рди рдорд╛рди I_WERKS рдлрд╝реИрдХреНрдЯрд░реА рд▓реЗрддрд╛ рд╣реИ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ TAB рд▓реМрдЯрд╛рддрд╛ рд╣реИ:
FUNCTION Y_GET_MATNR_PRICE IMPORTING VALUE(I_WERKS) TYPE WERKS_D TABLES TAB LIKE YSOUT_PRICE EXCEPTIONS NO_DATA NO_VKORG.
рд╣рдо SQL рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ IIS рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдПрдХ рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВрдЧреЗ:

Asp.net рднрд╛рдЧреЛрдВ рдореЗрдВ C # рдореЗрдВ рд╣рдо Microsoft .NET рдХреЗ рд▓рд┐рдП SAP рдХрдиреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
SAP рдХрдиреЗрдХреНрдЯрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛:
public class MyBackendConfig : IDestinationConfiguration { SaalutDataClasses1DataContext context; public RfcConfigParameters GetParameters(String destinationName) { if (context == null) context = new SaalutDataClasses1DataContext(); if ("AEP".Equals(destinationName)) { var settingsSP = (from s in context.SettingsSAPERPTbls select s).FirstOrDefault(); RfcConfigParameters parms = new RfcConfigParameters(); parms.Add(RfcConfigParameters.Name, settingsSP.SystemID); parms.Add(RfcConfigParameters.AppServerHost, settingsSP.MessageServerHost); if (settingsSP.LogonGroup != null || settingsSP.LogonGroup != "") parms.Add(RfcConfigParameters.LogonGroup, settingsSP.LogonGroup); parms.Add(RfcConfigParameters.SystemID, settingsSP.SystemID); parms.Add(RfcConfigParameters.SystemNumber, settingsSP.SystemNumber); if (settingsSP.SAPRouter != null || settingsSP.SAPRouter != "") parms.Add(RfcConfigParameters.SAPRouter, settingsSP.SAPRouter); parms.Add(RfcConfigParameters.User, settingsSP.SAPUser); parms.Add(RfcConfigParameters.Password, settingsSP.SAPPassword); parms.Add(RfcConfigParameters.Client, settingsSP.Client); parms.Add(RfcConfigParameters.Language, "en"); parms.Add(RfcConfigParameters.PoolSize, "5"); parms.Add(RfcConfigParameters.MaxPoolSize, "10"); parms.Add(RfcConfigParameters.IdleTimeout, "600"); return parms; } else return null; } public bool ChangeEventsSupported() { return false; } public event RfcDestinationManager.ConfigurationChangeHandler ConfigurationChanged; }
SAP ERP рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ FM Y_GET_MATNR_PRICE (c #) рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:
RfcDestinationManager.RegisterDestinationConfiguration(cfg);
рд╣рдо рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ SQL рд╕рд░реНрд╡рд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЪрд┐рдкрдХрд╛рддреЗ рд╣реИрдВ:
int i = 0; foreach (IRfcStructure elem in detail) { string matnr = elem[0].GetString(); double kbetr = elem[1].GetDouble(); string kschl = elem[2].GetString(); string assort = elem[3].GetString(); SAPPriceTbl np = new SAPPriceTbl(); np.MATNR = matnr; np.KBETR = kbetr; np.KSCHL = kschl; np.ASSORT = assort; context.SAPPriceTbls.InsertOnSubmit(np); if (i == 100) { context.SubmitChanges(); i = 0; } i++; } context.SubmitChanges();
рд╣рдо рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдЯрд░реНрдорд┐рдирд▓ (TSD) рдХреЗ рд▓рд┐рдП Visual Studio рдореЗрдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЯреАрдПрд╕рдбреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдмрд╛рд░рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ, рдиреЗрддреНрд░рд╣реАрди рдЯреАрдПрд╕рдбреА рд╕реНрдХреНрд░реАрди рдкрд░ рдореВрд▓реНрдп рдХреА рдХреАрдордд рдХреЗ рд╕рд╛рде рдХреАрдордд рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рд▓реЙрдЧ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

рдЯреНрд░реЗрдбрд┐рдВрдЧ рдлреНрд▓реЛрд░ рдкрд░ рдореВрд▓реНрдп рдЯреИрдЧ рдкрддреНрд░рд┐рдХрд╛ рдХрд╛ рдЧрдарди, рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рдФрд░ рдореВрд▓реНрдп рдЯреИрдЧ рдмрджрд▓реЗрдВред
тЖТ рдлреБрд▓ C # рдХреЛрдб GitHub рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
GitHub рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░реНрдг SAP рдлрд╝рдВрдХреНрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреЛрдб
Microsoft .NET рдФрд░ C # рдХреЗ рд▓рд┐рдП SAP рдХрдиреЗрдХреНрдЯрд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрдкрдХреЛ SAP ERP рд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред