PHP在使用saprfc的时候,首先需要安装 saprfc 拓展,然后在引入saprfc.php类库,最后在使用。
 
一、PHP saprfc拓展的安装(Linux):
 
安装方法:
 
安装时需要 rfcsdk包 和 文件librfccm.so (可能需要自行去下载一下)
 
[root@down ~]# tar -zxf saprfc-1.4.1.tar.gz
[root@down ~]# cp -R saprfc-1.4.1 /usr/src
[root@down ~]# mkdir /opt/SAP
[root@down ~]# cp -R rfcsdk /opt/SAP/
[root@down ~]# cp librfccm.so /opt/SAP/rfcsdk/lib/
[root@down ~]# cd /usr/src/saprfc-1.4.1
[root@down saprfc-1.4.1]# export SAPRFC_DIR=/opt/SAP/rfcsdk/
[root@down saprfc-1.4.1]# export PATH=$SAPRFC_DIR/bin:$PATH
[root@down saprfc-1.4.1]# phpize
[root@down saprfc-1.4.1]# ./configure
[root@down saprfc-1.4.1]# make
[root@down saprfc-1.4.1]# make install
[root@down saprfc-1.4.1]# echo extension=saprfc.so >> /etc/php.d/saprfc.ini
[root@down saprfc-1.4.1]# echo extension=saprfc.so >> /etc/php.ini
[root@down saprfc-1.4.1]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
 
如果发现apache报Unable to load dynamic library '/usr/lib64/php/modules/saprfc.so' - libstdc++.so.5的错误,需要另外安装两个类库:
 
yum install -y compat-libstdc++-33
 
yum install -y libstdc++.so.5
 
安装好之后需要重启apache
 
给一个安装参考链接:linux环境下,saprfc拓展安装方法:https://blog.csdn.net/qq_40382264/article/details/80248482
 
二、代码示例:
<?php
// 需安装saprfc拓展,并引入saprfc类库
include 'saprfc.php';
// Create saprfc-instance
$sap = new saprfc(array(
"logindata"=>array(
"ASHOST" => '192.168.18.101',// application server,必须是IP
"SYSNR" => '00', // system number,固定 00
"CLIENT" => '140', // client,每个都不一样
"USER" => 'user1', // user,账号
"PASSWD" => 'password1', // password,密码
"CODEPAGE" => '6240', // chart set,编码,6420:简体中文
),
"show_errors" => true, // let class printout errors
"debug" => true // detailed debugging information
)
);
// Call-Function
$result=$sap->callFunction("YSD_TEST_TO400",// 函数名
array(
array("IMPORT", "IV_BEGTIME", '20181128'),// IMPORT传参,参数视接口而定
array("IMPORT", "IV_ENDTIME", '20181129'),
array("TABLE","TE_ORDERINFO",array()), // 返回值,参数视接口而定
)
);
//若数据返回成功
if($sap->getStatus() == SAPRFC_OK){
$data = isset($result['TE_ORDERINFO']) ? $result['ET_ORDERINFO'] : array();
//转码
foreach ($data as $key => $val){
foreach($val as $k => $v){
$data[$key][$k] = iconv('GB2312','UTF-8',$v);
}
}
var_dump($data); // 这个 $data 就是最终没有乱码的数据
}

`

saprfc的更多相关文章

  1. php5.2通过saprfc扩展远程连接sap730成功案例

    公司刚上sap系统,由于资金有限,sap与其它系统的数据交换需要公司内部实现.于是,领导决定入库申请流程需要在sap与OA系统里实现电子签核流,重担果然落到我的身上.好在我只负责OA,还一位同事负责s ...

  2. PEAR安装

    看到PEAR章节,提到安装PEAR需要go-pear.bat,我机器上的PHP(v7.0.8)目录下,并没有go-pear.bat这个文件,网上查了一遍,怎么说的都有,最后还是在官网上找到解决方案. ...

  3. Linux的一个暴力破解工具九头蛇hydra

    首先还是书写本文的 参考档:http://www.cnblogs.com/mchina/archive/2013/01/01/2840815.html 工具介绍:原文为官方英文解释本人给翻译下 数量最 ...

  4. [转]Linux下的暴力密码破解工具Hydra详解

    摘自:http://linzhibin824.blog.163.com/blog/static/735577102013144223127/ 这款暴力密码破解工具相当强大,支持几乎所有协议的在线密码破 ...

  5. 实战项目:通过当当API将订单抓取到SAP(二)

    上一篇博客,我们引用了log4net 这个.这里简单介绍下,为什么引用这个. log4net是记录程序日志信息的,是一个功能著名的开源日志记录组件.利用log4net可以方便地将日志信息记录到文件.控 ...

  6. ABAP-1-会计凭证批量数据导入本地ACCESS

    公司会计凭证导入ACCESS数据库,需要发送给审计,原先的方案是采用DEPHI开发的功能(调用函数获取会计凭证信息,然后INSERT到ACCESS数据表),运行速度非常慢,业务方要求对该功能进行优化, ...

  7. 外购半成品回写PR时将同一供应商同一编码的PR合并数量回写

    '); --PR 净需求 '); ---加上PR回写逻辑后 '); ---加上PR回写逻辑后 ') order by item; ---最终回写去SAP的数据 ) as LGORT ,'SAPRFC' ...

  8. SO\PR\MO\排产回写的数据如下

    QTYOPEN(WMENG).EDATU(promised_mat_availdate).... insert into OUT_ORDER_RES ' ; --PR 净需求 ' ; ---加上PR回 ...

  9. 物料没加DUMMY

    会加入DUMMY的表 IN_ITEM,IN_ITEM_SITE,IN_SALES_ORDER 加入DUMMY的存储过程名为SAP_MATERIAL_SO. FP_CHANGE_MO_ROUTING的第 ...

随机推荐

  1. .pyc是个什么 python的执行过程

    1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言, ...

  2. 第十三节:HttpHander扩展及应用(自定义扩展名、图片防盗链)

    一. 自定义扩展名 1. 前言 凡是实现了IHttpHandler接口的类均为Handler类,HttpHandler是一个HTTP请求的真正处理中心,在HttpHandler容器中,ASP.NET ...

  3. [物理学与PDEs]第1章习题12 Coulomb 规范下电磁场的标势、矢势满足的方程

    试给出在 Coulomb 规范下, 电磁场的标势 $\phi$ 与矢势 ${\bf A}$ 所满足的方程. 解答: 真空中的 Maxwell 方程组为 $$\bee\label{1_10_12:eq} ...

  4. FTP主动及被动模式效果图

  5. 16、使用limit offset 分页时,为什么越往后翻越慢?如何解决?

    在mysql中limit可以实现快速分页,但是如果数据到了几百万时我们的limit必须优化才能有效的合理的实现分页了,否则可能卡死你的服务器哦. 当一个表数据有几百万的数据的时候成了问题! 如 * f ...

  6. 新加坡100M带宽,国内延迟70ms,仅800元

    ▇ 新加坡100M带宽,延迟80msE3_8G_1TB_100M_5IP_800元促:E3_32G_1TB SSD_1200元 ▇ 马来西亚,独享带宽,延迟70msL5630_16G_1TB_15M_ ...

  7. StringBuffer/StringBuilder总结

  8. 仿stl+函数模板

    #include<iostream> using namespace std; template<class T> void output(T begin, T end) { ...

  9. Linux的错误码表

    Linux的错误码表(errno table): _ 124 EMEDIUMTYPE_ Wrong medium type_ 123 ENOMEDIUM__ No medium found_ 122 ...

  10. asp.net MVC路由配置总结

    URL构造 命名参数规范+匿名对象 routes.MapRoute(name: "Default",url: "{controller}/{action}/{id}&qu ...