设为首页 收藏本站
查看: 599|回复: 0

[经验分享] Sap.net 连接使用实例

[复制链接]

尚未签到

发表于 2015-9-19 08:34:23 | 显示全部楼层 |阅读模式
private void SAPConnect()
        {
            /* this routine creates a proxy object, if one doesn't already
             * exist and creates the SAP connection if needed. It's called
             * before each SAP RFC call just in case */

            // create one proxy for all methods
            if (null == proxy)
            {
                proxy = new SAPProxy1();
            }
            if (false == g_IsConnected)
            {
                proxy.Connection =  new SAP.Connector.SAPConnection(this.destination1);   
                try {proxy.Connection.Open();}
                catch (Exception ex)
                {MessageBox.Show("Invalid SAP connection, please fix" + ex.ToString());}
            }                        
        } //SAPConnect()
private void SAPAsyncSearch()
        {
    /* this routine calls RFC_CUSTOMER_GET using .Net asynchronous
     * method invocation. When the function is completed asynchronously in SAP,
     * the function "myfunction" is called. */
            SAPConnect();
            myAsyncState = null;
            myCallback = new System.AsyncCallback(myFunction);
            asyncresult = null;
            try
            {
                asyncresult = proxy.BeginRfc_Customer_Get(g_custNo, g_custName, ref brfcknA1Table1, myCallback, myAsyncState);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error returned in Async search\n" + ex.ToString(), "SAP Async Search problem");
                return;
            }
        }

        private void myFunction(IAsyncResult ar)
        {
            /* this function gets called when rfc function is done executing
             * asynchronously. It reconnects the main form thread to the results */
            MessageBox.Show("async call is returned from SAP", "Asynchronous update status");
            try
            {
                proxy.EndRfc_Customer_Get(asyncresult, ref brfcknA1Table1);
            }
            catch(Exception ex)
            {
                MessageBox.Show("Exception occurred in async callback \n" + ex.ToString());
                return;
            }
            finally
            {
                proxy.Connection.Close();
                g_IsConnected = false;
            }
            
            if (0 < brfcknA1Table1.Count)
            {
                SetShowAllMenu(this.mainMenu1);
            }
                        
        } // myfunction

        private void SAPTableToXML()
        {
            /* this routine saves the SAP table from RFC_CUSTOMER_GET
             * into an XML file. It uses the save dialog control to ask the
             * user what file to save to. It creates the xml file by serializing the SAP Table (BRFCKna1Table) */
            
            // Use save dialog box to get the file to save into
            saveFileDialog1.ShowDialog();
            string file = saveFileDialog1.FileName;
            
            // serialize to xml
            XmlSerializer xs = new XmlSerializer(typeof(BRFCKNA1Table));
            System.Text.Encoding unicode = new System.Text.UnicodeEncoding();
            XmlTextWriter xtw = new XmlTextWriter(file, unicode);
            xs.Serialize(xtw, brfcknA1Table1);
            xtw.Close();
        
        } //SAPTableToXML

        private void ShowCustSelect()
        {
            /* this form gets the RFC_CUSTOMER_GET input
             * criteria. The criteria are Name and/or customer No. We need these values
             * before calling the RFC.
             */

            // show a dialog box to enter customer search selections
            frmCustomerSelection fc = new frmCustomerSelection(g_custNo, g_custName);
            fc.ShowDialog(this);

            // save the results to my variables for later use
            if (null != fc.Cust)
            {
                g_custName = fc.Cust.CustName;
                g_custNo = fc.Cust.CustNo;
                // we have selections now but not data so update menu status
                SetNoDataMenu();
                this.statusBar1.Text = "Customer selection: Name: " + g_custName + " number: " + g_custNo;
            }
        } //showCustSelec

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-115615-1-1.html 上篇帖子: SAP的权限知识培训笔记 下篇帖子: POJ 1149 PIGS【SAP】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表