dvarelaccpcr / php-sapb1
SAP Business One PHP库,由blockshiftnetwork/php-sapb1分叉而来
Requires
- php: >=7.2.0
This package is auto-updated.
Last update: 2024-09-28 10:14:30 UTC
README
一个简单易用的PHP库,用于SAP Business One Service Layer API。
用法
创建一个数组来存储您的SAP Business One Service Layer配置详情。
$config = [ 'https' => true, 'host' => 'IP or Hostname', 'port' => 50000, 'sslOptions' => [ "cafile" => "path/to/certificate.crt", "verify_peer" => true, "verify_peer_name" => true, ], 'version' => 2 ];
创建一个新的Service Layer会话。
$sap = SAPClient::createSession($config, 'SAP UserName', 'SAP Password', 'Company');
静态的createSession()
方法将返回一个新的SAPClient
实例。SAPClient对象提供了一个service($name)
方法,该方法返回具有指定名称的新Service实例。使用此Service对象,您可以执行CRUD操作。
查询服务
Service类的queryBuilder()
方法返回一个新的Query实例。Query类允许您使用链式方法来筛选所需的服务。
以下代码示例展示了如何使用Orders服务过滤销售订单。
$sap = SAPClient::createSession($config, 'SAP UserName', 'SAP Password', 'Company'); $orders = $sap->getService('Orders'); $result = $orders->queryBuilder() ->select('DocEntry,DocNum') ->orderBy('DocNum', 'asc') ->limit(5) ->findAll();
findAll()
方法将返回一个与搜索条件匹配的记录集合。要使用id
返回特定记录,请使用find($id)
方法。
... $orders = $sap->getService('Orders'); $result = $orders->queryBuilder() ->select('DocEntry,DocNum') ->find(123456); // DocEntry value
根据服务,$id
可能是一个数值或一个字符串。如果您想了解哪个字段被用作服务的id,可以在Service对象上调用getMetaData()
方法,如下所示。
... $meta = $orders->getMetaData();
创建服务
以下代码示例展示了如何使用Service对象的create()
方法创建新的销售订单。
... $orders = $sap->getService('Orders'); $result = $orders->create([ 'CardCode' => 'BP Card Code', 'DocDueDate' => 'Doc due date', 'DocumentLines' => [ [ "ItemCode" => "Item Code", "Quantity" => 100, ] ] ]);
您必须提供创建销售订单所需的所有用户定义字段。如果成功,新创建的销售订单将作为一个对象返回。
更新服务
以下代码示例演示了如何使用Service对象的update()
方法更新服务。
... $orders = $sap->getService('Orders'); $result = $orders->update(19925, [ 'Comments' => 'Comment added here' ]);
请注意,update()方法的第一参数是要更新的实体的id
。在销售订单的情况下,id
是DocEntry字段。如果更新成功,则返回一个布尔值true。
添加头部信息
您可以通过在Service实例上调用headers()方法并传递一个包含头部信息的数组来指定oData头部。
... $orders = $sap->getService('Orders'); $orders->headers(['Prefer' => 'odata.maxpagesize=0']); $result = $orders->queryBuilder() ->select('DocEntry,DocNum') ->find(123456); // DocEntry value
更多示例和完整文档请访问https://syedhussim.com/sap-b1/php-sapb1-library-documentation-v1.html