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
 
二、代码示例:
  1. <?php
  2. // 需安装saprfc拓展,并引入saprfc类库
  3. include 'saprfc.php';
  4. // Create saprfc-instance
  5. $sap = new saprfc(array(
  6. "logindata"=>array(
  7. "ASHOST" => '192.168.18.101',// application server,必须是IP
  8. "SYSNR" => '00', // system number,固定 00
  9. "CLIENT" => '140', // client,每个都不一样
  10. "USER" => 'user1', // user,账号
  11. "PASSWD" => 'password1', // password,密码
  12. "CODEPAGE" => '6240', // chart set,编码,6420:简体中文
  13. ),
  14. "show_errors" => true, // let class printout errors
  15. "debug" => true // detailed debugging information
  16. )
  17. );
  18. // Call-Function
  19. $result=$sap->callFunction("YSD_TEST_TO400",// 函数名
  20. array(
  21. array("IMPORT", "IV_BEGTIME", '20181128'),// IMPORT传参,参数视接口而定
  22. array("IMPORT", "IV_ENDTIME", '20181129'),
  23. array("TABLE","TE_ORDERINFO",array()), // 返回值,参数视接口而定
  24. )
  25. );
  26. //若数据返回成功
  27. if($sap->getStatus() == SAPRFC_OK){
  28. $data = isset($result['TE_ORDERINFO']) ? $result['ET_ORDERINFO'] : array();
  29. //转码
  30. foreach ($data as $key => $val){
  31. foreach($val as $k => $v){
  32. $data[$key][$k] = iconv('GB2312','UTF-8',$v);
  33. }
  34. }
  35. var_dump($data); // 这个 $data 就是最终没有乱码的数据
  36. }

`

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. [SDOI2006] 保安站岗

    题目链接 第一遍不知道为什么就爆零了…… 第二遍改了一下策略,思路没变,结果不知道为什么就 A 了??? 树形 DP 经典问题:选择最少点以覆盖树上所有点(边). 对于本题,设 dp[i][0/1][ ...

  2. Sobel 边缘检测算子

    转自:http://blog.csdn.net/xiaqunfeng123/article/details/17302003 Sobel 算子是一个离散微分算子 (discrete different ...

  3. Javaweb学习笔记——(二十七)——————泛型、泛型的通配符、反射泛型信息、反射注解、注解

    泛型     1.泛型类:具有一个或多个类型变量的类,称之为泛型类 class A<T>{ } 2.在创建泛型实例时,需要为其类型变量赋值 A<String> a = new ...

  4. 常见的游戏AI技术对比(FSM,HFSM,BT,GOAP,HTN,Utilitay,机器学习)

    最近研究的内容,比较懒还没写文章,先占个坑,过几天补

  5. error: no matching function for call to 'std::exception:exception(const char[16])'

    环境:codeblocks 语言:C++ 在执行:throw new exception("queue is empty.");时 遇到问题:error: no matching ...

  6. Django 内置分页器

    先导入Django内置的分页器 在商品列表页或者购物车列表页导入 在渲染list.html导入 然后在views后台渲染方法写入 打开list页面结果

  7. 题解-CodeChef IOPC14L Sweets Problem

    Problem CodeChef-IOPC14L 题目概要:给定 \(n\) 种糖果且给定每种糖果的数量 \(A_i\),\(Q\) 组询问,每次问选出 \(S\) 个糖果的方案数(模\(10^9+7 ...

  8. ubuntu 32/64 bit

    https://askubuntu.com/questions/454253/how-to-run-32-bit-app-in-ubuntu-64-bit how to run 32-bit app ...

  9. Mysql --创建用户和授权,备份

    权限管理 我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作.包括select.update.delete.update.grant等操作.那么一般情况在公司之后DBA工程师会创建一个 ...

  10. 【原创】大数据基础之CM5(Cloudera Manager)+CDH5离线安装

    CM/CDH 5.16.1 CM官方:https://www.cloudera.com/products/product-components/cloudera-manager.html CDH官方: ...