Csharp ile SQL üzerinden veri çekerek SAP’ye veri aktarma nasıl yapılır?

SAP ile etkileşime geçmek için SAP .NET Connector’ü kullanabiliriz. Bu, C# gibi .NET dilleri ile SAP ERP sistemleri arasında veri alışverişi yapmamızı sağlar. İlk olarak, SAP .NET Connector’ünü indirip yüklemeniz gerekecek. Ardından, aşağıdaki gibi bir C# betiği oluşturarak SQL’den veri çekip SAP’e aktarabilirsiniz:

using System;
using SAP.Middleware.Connector;
using System.Data.SqlClient;
using System.Data;

namespace SQLToSAP
{
    class Program
    {
        static void Main(string[] args)
        {
            // SQL Server bağlantı dizesi
            string sqlConnectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";

            // SAP bağlantı bilgileri
            RfcConfigParameters sapConfig = new RfcConfigParameters();
            sapConfig.Add(RfcConfigParameters.AppServerHost, "SAP_Application_Server_Hostname");
            sapConfig.Add(RfcConfigParameters.SystemNumber, "SAP_System_Number");
            sapConfig.Add(RfcConfigParameters.User, "SAP_Username");
            sapConfig.Add(RfcConfigParameters.Password, "SAP_Password");
            sapConfig.Add(RfcConfigParameters.Client, "SAP_Client");
            sapConfig.Add(RfcConfigParameters.Language, "EN");

            // SAP RFC bağlantısı oluştur
            RfcDestination sapDestination = RfcDestinationManager.GetDestination(sapConfig);
            RfcRepository repo = sapDestination.Repository;

            try
            {
                // SQL'den veri çekme
                DataTable dataTable = new DataTable();
                using (SqlConnection sqlConnection = new SqlConnection(sqlConnectionString))
                {
                    sqlConnection.Open();
                    SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM TableName", sqlConnection);
                    adapter.Fill(dataTable);
                }

                // SAP'e veri aktarma
                IRfcFunction rfcFunction = repo.CreateFunction("BAPI_FUNCTION_NAME");
                // BAPI'ye gerekli parametreleri aktar
                // Örnek:
                // rfcFunction.SetValue("PARAMETER_NAME", value);

                // SAP RFC çağrısı yapma
                rfcFunction.Invoke(sapDestination);

                Console.WriteLine("Veri SAP'e aktarıldı.");
            }
            catch (RfcCommunicationException ex)
            {
                Console.WriteLine("SAP ile iletişim hatası: " + ex.Message);
            }
            catch (RfcLogonException ex)
            {
                Console.WriteLine("SAP giriş hatası: " + ex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Bir hata oluştu: " + ex.Message);
            }
        }
    }
}

Bu kod örneği, SQL Server’dan veri alır ve daha sonra SAP ERP sistemine bu verileri aktarır. Ancak, kodun çalışması için SAP .NET Connector kurulu olmalıdır ve SAP bağlantı bilgilerini doğru şekilde doldurmalısınız.

Kodun nasıl çalıştırılacağına gelince, öncelikle Visual Studio veya başka bir C# geliştirme ortamını açın. Ardından, bir C# projesi oluşturun ve yukarıdaki kodu proje dosyanıza yapıştırın. SAP .NET Connector’ü projenize eklemeyi unutmayın. Projeyi derleyip çalıştırdığınızda, SQL’den veri çekilir ve SAP ERP sistemine aktarılır.

Bu adımlar sizin için yeterli olmalı, ancak herhangi bir sorunuz varsa, sormaktan çekinmeyin!

Yazıyı beğendiyseniz paylaşabilirsiniz. Okuduğunuz için teşekkür ederim.