Download SAP Data Dengan RFC & C# WCF Web Service dan SQL Server Part2 - Hallo sahabat Dev-Create, Pada Artikel yang anda baca kali ini dengan judul Download SAP Data Dengan RFC & C# WCF Web Service dan SQL Server Part2, kami telah mempersiapkan artikel ini dengan baik untuk anda baca dan ambil informasi didalamnya. mudah-mudahan isi postingan Artikel .Net, Artikel C#, Artikel SAP, Artikel SAP ABAP, Artikel Web Service, yang kami tulis ini dapat anda pahami. baiklah, selamat membaca.

Judul : Download SAP Data Dengan RFC & C# WCF Web Service dan SQL Server Part2
link : Download SAP Data Dengan RFC & C# WCF Web Service dan SQL Server Part2

Baca juga


Download SAP Data Dengan RFC & C# WCF Web Service dan SQL Server Part2

Ok melanjutkan postingan saya Sebelumnya untuk membuat wcf web service dengan Visual Studio 2015. langsung saja buka Visual Studio-nya dan buat project baru


Setelah membuat project baru, selanjutnya kita tambahkan libarary RFC Connector kedalam project dengan cara klik kanan pada References->Add Reference


lalu pilih sapnco.dll dan sapnco_util.dll, untuk library nya bisa di download DISINI


kemudian kita tambahkan satu class baru kedalam project dengan nama rfc_Connector


dan didalam class rfc_Connector kita implement interface IDestinationConfiguration dan jangan lupa import name space SAP.Middleware.Connector 




lalu pada bagian RfcConfigParameters tambahkan source code berikut :



lalu kita tambahkan dataset baru kedalam project :




kemudian kita tambahkan table adapter didalam dataset, ikuti gambar berikut untuk menambah table adapter














Kemudian kita tambahkan satu class baru lagi kedalam project dengan nama GlobalData



tambahkan global.asax




Buka file IService1 dan tambah source code berikut :


Buka file Service1.svc dan implement interface yang sudah kita tambahkan pada Iservice1 dan tambahkan name space seperti pada gambar


setelah kita implement interface maka akan terbentuk sebuah method baru dengan nama Download_ZMARA




Berikut Source Code lengkap didalam Service1.svc

string message;
        string status;
        public string Download_ZMARA(string matnr)
        {
            try
            {
                IRfcFunction getDataSAP = GlobalData.rfcRepository.CreateFunction("ZDLMARA");
                getDataSAP.SetValue("P_MATNR", matnr);

                try
                {
                    getDataSAP.Invoke(GlobalData.rfcDestination);
                }
                catch (Exception ex)
                {

                    if (ex.Message.Contains("DATA_NOT_FOUND"))
                    {
                        status = "sukses";
                    }
                    else
                    {
                        status = "gagal";
                    }


                    message = "SAP ZDLMARA ";
                    message += ex.Message;
                    return message;
                }


                IRfcTable IT_MARA = getDataSAP.GetTable("IT_MARA");
                DataSet1 dsUniversal = new DataSet1();

                DataTable dtMARA = dsUniversal.Tables["ZMARA"];

                dtMARA = CreateDataTable(dtMARA, IT_MARA);

                SqlConnection con = GetSQLConn();
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }
                SqlTransaction transaction = con.BeginTransaction();

                SqlCommand command = new SqlCommand("SP_Update_ZMARA", con);
                command.Transaction = transaction;
                command.Parameters.Add(new SqlParameter("@tblZmara", SqlDbType.Structured));
                command.Parameters["@tblZmara"].Value = dtMARA;
                command.Parameters["@tblZmara"].TypeName = "zmaraType";

                command.CommandType = System.Data.CommandType.StoredProcedure;
                command.CommandTimeout = 600000;
                int result = command.ExecuteNonQuery();

                transaction.Commit();
                transaction.Dispose();
                IT_MARA.Clear();
                message = "Download data completed. ";
                message += "ZMARA :" + dtMARA.Rows.Count + " rows. ";
            }
            catch (Exception x)
            {
                return x.Message;
            }

            return message;
        }


        public string GetAppSetting(string key)
        {
            try
            {
                return ConfigurationManager.AppSettings[key];
            }
            catch (Exception)
            {
                return "";
            }
        }

        public SqlConnection GetSQLConn()
        {
            string ConnString = GetAppSetting("ConnString");
            SqlConnection koneksi = new SqlConnection(ConnString);
            return koneksi;
        }

        rfc_Connector konstruktor = new rfc_Connector();

        //function for register to SAP server
        public void Register()
        {

            if (RfcDestinationManager.IsDestinationConfigurationRegistered())
            {
                rfc_Connector konstruktor = new rfc_Connector();
                RfcDestinationManager.UnregisterDestinationConfiguration(konstruktor);
            }
            RfcDestinationManager.RegisterDestinationConfiguration(konstruktor);

        }

        public static DataTable CreateDataTable(DataTable dt, IRfcTable rfcTable)
        {
            foreach (IRfcStructure row in rfcTable)
            {
                DataRow newRow = dt.NewRow();
                for (int element = 0; element < rfcTable.ElementCount; element++)
                {
                    RfcElementMetadata metadata = rfcTable.GetElementMetadata(element);
                    var nrow = newRow[element];
                    var rrow = row.GetString(metadata.Name);
                    newRow[element] = row.GetString(metadata.Name);

                }
                dt.Rows.Add(newRow);
            }

            return dt;

        }

Configurasi web config






sampai disini web service sudah bisa kita jalankan dan coba download data sap, kita cek apakah data berhasil masuk ke database SQL Server atau tidak.


tambahan sedikit, jika menemukan error kurang lebih seperti gambar berikut :


cara mengatasinya adalah masuk ke regedit :
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\WebProjects
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\WebProjects

terus double klik Use64BitIISExpress lalu ruba nilai 0 jadi 1 kemudia restart visual studio dan IIS lalu jalankan kembali web service nya.


ok cukup sekian sharing kali ini semoga bermanfaat. :D, yang berminat project lengkapnya bisa tulis email dikolom komentar :D


Demikianlah Artikel Download SAP Data Dengan RFC & C# WCF Web Service dan SQL Server Part2

Sekianlah artikel Download SAP Data Dengan RFC & C# WCF Web Service dan SQL Server Part2 kali ini, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sampai jumpa di postingan artikel lainnya.

Anda sekarang membaca artikel Download SAP Data Dengan RFC & C# WCF Web Service dan SQL Server Part2 dengan alamat link https://dev-create.blogspot.com/2018/09/download-sap-data-dengan-rfc-c-wcf-web.html