SAP R/3的接口方式主要粗高有RFC、IDOC、BAPI三种,本文要介绍的是相对比较简单的RFC(Romote Function Call,远程函数调用)。SAP系统RFC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。下面是RFC调用的模型:
本文主要不是讨论SAP R/3函数的开发,因为使用SAP的公司一般都有专门的ABAP开发人员。大家如果有机会接触ABAP平台,可以通过事务代码SE37进入ABAP开发平台梁碧的"函数编制器"进行函数开发测试。如图:
下面主要以VB为例介绍一下SAP接口RFC的开发思路。在SAP客户端SAP Gui Client安装的时候,注意选择安装附带的SDK包(最保险是选择完全安装)。RFC接口程序开发,主要用的是"SAP.Functions"这个控件,通过控件在外部程序模拟SAP Gui Client的用户登录和函数调用,然后返回函数的值。请看下面的程序片段和重点注解(尤其是test_Click()):
Private Sub Command1_Click()
' 定义R/3用户名和密码变量(用户名应由SAP管理员开运行函数的权限)
Dim logname As String * 22, password As String * 22
Call logonr3(logname, password) ' 调用SAP登录界面程序
If logflag Then ' 调用生产、开发系统开关
StatusBar1.Visible = True
StatusBar1.SimpleText = "正在登录SAP R/3系统..."
Dim R3AppServer As String, R3Client As String, R3SystemNo As String
If Form2.opPRD.Value Then
' 以下服务器参数请根据客户配置情况更改
R3AppServer = "10.3.1.4" ' 生产系统服务器IP
R3Client = "800" '生产系统集团代码
R3SystemNo = "00" '生产系统号
Else
R3AppServer = "10.3.3.1" ' 开发系统服务器IP
R3Client = "101"
R3SystemNo = "00"
End If
Unload Form2 ' 释放 Form2 , 所有控件及值不可用
Set Functions = CreateObject("Sap.Functions") ' 创建RFC的本地对象
Set Connect = Functions.Connection ' 设置连接
Connect.ApplicationServer = R3AppServer ' 赋值服务器IP
Connect.Client = R3Client ' 赋值SAP集团代码
Connect.Language = "ZH" ' 置SAP系统界面中文
Connect.User = Trim(logname) ' 赋值SAP登录用户名
Connect.password = Trim(password) ' 赋值SAP登录用户密码
Connect.SystemNumber = R3SystemNo ' 赋值SAP系统号
If Not Connect.Logon(0, True) Then ' 软件登录SAP并判断
MsgBox "登录SAP R/3失败,请重新登录!", vbOKOnly + vbExclamation, "系统提示"
Command1.SetFocus
Else ' 登录SAP成功
Command1.Enabled = False
Command2.Enabled = True
test.Enabled = True
End If
StatusBar1.SimpleText = ""
StatusBar1.Visible = False
End If
End Sub
Private Sub Command2_Click() ' 注销SAP登录
Connect.LogOff
Command2.Enabled = False
Command1.Enabled = True
test.Enabled = False
End Sub
Private Sub Command3_Click() ' 退出SAP接口演示程序
If Form1.Command2.Enabled Then
MsgBox "退出前请断开SAP R/3系统!", vbOKOnly + vbInformation, "系统提示"
Else
End
End If
End Sub
Private Sub Form_Load()
Command2.Enabled = False
test.Enabled = False
logoflag = False
End Sub
Private Sub test_Click() ' SAP RFC远程调用处理主演示
Dim GetCustomers As Object
Dim Customers As Object
Dim i As Integer
' 通过RFC接口远程运行SAP内部函数RFC_CUSTOMER_GET
' 赋要调用的SAP内建函数名
Set GetCustomers = Functions.Add("RFC_CUSTOMER_GET")
GetCustomers.Exports("KUNNR") = "0000000103" ' 向函数入口赋值(客户代码)
' 向函数入口赋查询表名称
Set Customers = GetCustomers.Tables("CUSTOMER_T")
If GetCustomers.Call Then ' 调用成功遍历显示客户所有信息条目
For i = 1 To Customers.rowcount
MsgBox Customers(i, "KUNNR")
Next i
Else
MsgBox " 搜索出错! 出错信息: " + GetCustomers.Exception
End If
End Sub
SAP的RFC调用是其接口技术中最简单和易用的一种方式,该方式开发比较简便,特别适合于外部报表开发,但对于大数据量的查询效率相对较低。大家在熟练掌握后,可以进一步学习高级的IDOC和BAPI接口开发技术。
sap vf03 如何打印出发票VF03 是显示出来SAP系统开出来的发票,跟实际的发票是两码事,你打印出来做啥。。。
当然你如果想SAP系统可以打印金税系统开出来的发票,需要自定义开发程序,还需要买插件才可以。
苏宁的普通发票上的订单号,在SAPGUI里输入tcode,VA03或VF03。前者是sap里的销售订单号码,后者是sap发票号码。估计是其中之一。
加完油后未打印出发票,怎样补打加完油后未打印出发票,怎样补打你有权利索取发票,加油站有义务开具发票,但不一定就是偷漏税。一是加油机有税控装置监控加油数量,二是加油站虽然不开票但申报纳税,因此说不一定。
打印出来的发票为什么右上角打印出发票类别和发票号
因为开票系统升级所致,原开票系统是84位密码文,升级后是108位的,发票上的框框放不下所以就在发票的右上角打印出来。
SAP出库如何打印出库单??你们开发了打印出库单的程序了吗?如果开发了可以输入TCODE进入打印程序打印。我是做ABAP的,只能从ABAP层面回答你的问题。
如何调整打印机使发票正确打印出来看你提出这个问题就知道你是个财务新手,你问的是用EPSON的针式打印机怎么把发票打印好是吧?刚刚我已告诉你怎么使用了,现告诉你怎么才能把发票打印好!你把打印机调到可打A4纸的格式.然后你是电脑开票是吧?你就用一张空白的发票去复印几份,一定要多复印几份,不友蔽可缩扩,然后裁剪跟这原空白敏告态发票一样大小。然后你就开发票,但先不用正版发票,先用已经裁好的复印发票去打印(电脑开票,可多次打印),直到你发票格式对准了,才放正版发票去打印,这样就不会浪费发票了!打印发票要用针式打印机,这样也好调距离! 再不明白我也没办法啦!
发票打印出来会有税率如何报销按发票总金额报销。
小规模纳税人开具的发票上是没有税率和税额的。可以报销,但是不可以做进项税抵扣。
发票如何打印?甘肃移动用户次月可前往自办营业厅,凭机主有效证件原件打印没有打印过的缴费月结发票。每月月结发票只能打印一次,如将打印的月结发票丢失,我方无法补打,只能查询月结桥源发票电子版明细。
发票如何批打印成批打印,是要花钱购买软件的,可以把系统发票或者信息直接倒出来,成批打印。
sap怎么打印装箱单,方法如下…1.SAP系统标准配置里面是好旅没有凭证打印的功能。
2.不管是单张打印还是批量打印,一般都是通过ABAP开发实现的。
3.可以把你需要打印的报表导到EXCEL,然后用VBA调适打印。
SAP,为“System Applications and Products”的简称,是SAP公司的产品—蔽袜兄—企业宏袭管理解决方案的软件名称。SAP公司(纽交所代码:SAP)成立于1972年。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)