设为首页收藏本站

SAP Best Business Solution

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2107|回复: 0

NCo3.0会话管理

[复制链接]

24

主题

24

帖子

206

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
206
发表于 2017-2-15 13:13:45 | 显示全部楼层 |阅读模式
SAP接口编程之 NCo3.0系列(06) : 会话管理
http://blog.csdn.net/stone0823/article/details/54146812


Public Shared Sub ExampleSimpleCall()
            Dim rfcdest As RfcDestination = RfcDestinationManager.GetDestination(ABAP_APP_SERVER)
            Dim repo As RfcRepository = rfcdest.Repository
            '设置目前与SAP系统的连接为独占模式,后续函数调用在同一个Session
            RfcSessionManager.BeginContext(rfcdest)
            Try
                Dim func As IRfcFunction = rfcdest.Repository.CreateFunction("BAPI_BATCH_CREATE")
                func.SetValue("MATERIAL", "000000000000001000")
                func.SetValue("PLANT", "3100")
                Dim BATCHATTRIBUTES As IRfcStructure = func.GetStructure("BATCHATTRIBUTES")
               BATCHATTRIBUTES.SetValue("LASTGRDATE", DateTime.Now.ToString("yyyyMMdd"))
                func.SetValue("BATCHATTRIBUTES", BATCHATTRIBUTES)
                func.Invoke(rfcdest)
                Dim IcBatch As String = func.GetString("BATCH")
                'Dim IcBatch As String ="0100551225"
                Dim poQty As Integer
                Dim CustomerCode As String
                Dim LotNo As String
                Dim Device As String
                Dim TrackingNo As String
                Dim SequenceNo As String
                poQty = "981"
                CustomerCode = "12536"
                LotNo = "D9SN5.1$1:3"
                Device = "GP565NGBG"
                TrackingNo = "U3100001"
                SequenceNo = "U31-0000004"
                Dim funCGSMVT As IRfcFunction = rfcdest.Repository.CreateFunction("BAPI_GOODSMVT_CREATE")
                Dim bapiCommit As IRfcFunction = repo.CreateFunction("BAPI_TRANSACTION_COMMIT")
                Dim GOODSMVT_HEADER As IRfcStructure = funCGSMVT.GetStructure("GOODSMVT_HEADER")
               GOODSMVT_HEADER.SetValue("PSTNG_DATE", DateTime.Now.ToString("yyyyMMdd"))
               GOODSMVT_HEADER.SetValue("DOC_DATE", DateTime.Now.ToString("yyyyMMdd"))
                funCGSMVT.SetValue("GOODSMVT_HEADER", GOODSMVT_HEADER)
                Dim GOODSMVT_CODE As IRfcStructure = funCGSMVT.GetStructure("GOODSMVT_CODE")
               GOODSMVT_CODE.SetValue("GM_CODE", "01")
                funCGSMVT.SetValue("GOODSMVT_CODE", GOODSMVT_CODE)
                Dim GOODSMVT_ITEM As IRfcTable = funCGSMVT.GetTable("GOODSMVT_ITEM")
               GOODSMVT_ITEM.Insert()
               GOODSMVT_ITEM.CurrentRow.SetValue("MATERIAL", "000000000000001000")
               GOODSMVT_ITEM.CurrentRow.SetValue("PLANT", "3100")
               GOODSMVT_ITEM.CurrentRow.SetValue("STGE_LOC", "TA99")
               GOODSMVT_ITEM.CurrentRow.SetValue("BATCH", IcBatch)
                GOODSMVT_ITEM.CurrentRow.SetValue("MOVE_TYPE", "501")
               GOODSMVT_ITEM.CurrentRow.SetValue("MVT_IND", "")
               GOODSMVT_ITEM.CurrentRow.SetValue("ENTRY_QNT", poQty)
                'GOODSMVT_ITEM.Insert()
                funCGSMVT.SetValue("GOODSMVT_ITEM", GOODSMVT_ITEM)
               funCGSMVT.Invoke(rfcdest)
                Dim expTable As IRfcTable = funCGSMVT.GetTable("RETURN")
                If expTable.RowCount > 0 Then
                    Dim Revaule As String = expTable.GetValue(0)
                    If Revaule = "E" Then
                        Console.WriteLine("Error asbelow:")
                        Console.WriteLine(expTable.GetString("MESSAGE"))
                    Else
                        Console.WriteLine("ok")
                    End If
                Else
                   bapiCommit.Invoke(rfcdest)
                    Console.WriteLine("ok")
                End If
            Finally
                '重设会话状态,释放连接
                RfcSessionManager.EndContext(rfcdest)
            End Try
        End Sub






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



QQ|Archiver|手机版|小黑屋|www.sapbbs.com    

GMT+8, 2019-4-23 14:52 , Processed in 1.071619 second(s), 28 queries .

声明:本站严禁任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

本站内容由网友原创或转载,如果侵犯了您的合法权益,请及时联系处理!© admin@sapbbs.com

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