1.安装配置 Golang 环境
# 获取 golang 安装包
wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz
# 解压
tar -xvf go1.9.2.linux-amd64.tar.gz
# 源码安装
sudo mv go /usr/local/
# 设置 golang 路径
export GOROOT=/usr/local/go
export GOPATH=$HOME/Code/go
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
# 测试 golang 是否安装成功
mkdir -p $HOME/Code/go
mkdir -p $GOPATH/src/test
echo 'package main; import "fmt"; func main(){fmt.Println("Hello, Golang!")}' > $GOPATH/src/test/hello.go
go run $GOPATH/src/test/hello.go
2.配置 SAP SDK 依赖
# 进入到 Golang src
cd $GOPATH/src
# 克隆一个项目,项目中有 SAP SDK 依赖运行的 lib 包
git clone https://github.com/Sdu0/saprfc.git
# 创建 SAP SDK 系统目录
mkdir -p /usr/local/sap/nwrfcsdk
# 设置 SAP SDK 环境变量
export SAPNWRFC_HOME=/usr/local/sap/nwrfcsdk
# 复制刚才克隆下来的项目中的部分文件到 SAP SDK 系统目录中
cp -rp $GOPATH/src/saprfc/nwrfcsdk/* /usr/local/sap/nwrfcsdk/
# 创建系统静态资源链接库的配置文件
echo "/usr/local/sap/nwrfcsdk/lib" > /etc/ld.so.conf.d/nwrfcsdk.conf
# 手动刷新系统静态资源链接库信息
ldconfig -v
# 查看 SAP SDK 依赖是否安装成功(若能看到很多 *.so 说明已经成功)
ldconfig -p | grep sap
3.测试 SAP RFC 是否可以连接
package main
import (
"fmt"
"saprfc/helper"
"time"
)
func abapSystem() saprfc.ConnectionParameter {
// SAP RFC 的连接信息
return saprfc.ConnectionParameter{
Dest: "",
Client: "800",
User: "xxx",
Passwd: "xxxxxx",
Lang: "ZH",
Ashost: "127.0.0.1",
Sysnr: "00",
Saprouter: "",
}
}
func main() {
// 获取连接
c, err := saprfc.ConnectionFromParams(abapSystem())
if err != nil {
fmt.Printf("Connection Error: %#v \n", err)
}
// 传入参数
in_date, err := time.Parse("2006-01-02", "2019-07-01")
params := map[string]interface{}{
"IN_DATE": in_date,
}
// 调用接口
r, err := c.Call("ZMM_MATNR", params)
if err != nil {
fmt.Printf("Call Error: %#v \n", err)
}
// 输出结果
fmt.Printf("Response: %#v \n", r)
//关闭连接
c.Close()
}
End. 👻
参考链接: