1、新建一个Form,并在form上添加下列控件
Component | Function |
SAPLogonControl1 | SAP ActiveX-Component to logon to the system |
|
SAPBAPIControl1 | SAP ActiveX-Component to connect to BAPI |
Button1 | Button to start the procedure |
Button2 | Button to logon |
Panel1-3 | Elements to display messages |
2、源代码如下(BUS2012建立PO)
unit best;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, OleCtrls, SAPBAPIControlLib_TLB, ExtCtrls, Grids,
SAPLogonCtrl_TLB;
type
TForm1 = class(TForm)
SAPBAPIControl1: TSAPBAPIControl;
Button1: TButton;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Button2: TButton;
SAPLogonControl1: TSAPLogonControl;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Connection,Mat,Header,Ret,Schedul,Item : Variant;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
(* select BusinessObject *)
Mat:= SAPBapiControl1.GetSAPObject('BUS2012');
(* define structures *)
Header := SAPBapiCcontrol1.dimAs (Mat,'CreateFromData','PoHeader');
Schedul:= SAPBapiCcontrol1.dimAs (Mat,'CreateFromData','PoItemSchedules');
Item := SAPBapiCcontrol1.dimAs (Mat,'CreateFromData','PoItems');
Ret := SAPBapiCcontrol1.dimAs (Mat,'CreateFromData','Return');
(* purchaseorder header data's *)
Header.value ('DOC_TYPE') := 'NB';
Header.value ('DOC_CAT') := 'F';
Header.value ('PURCH_ORG'):= '10';
Header.value ('PUR_GROUP'):= '10';
Header.value ('VENDOR') := '0010000999';
(* data for position 00010 *)
Item.Rows.Add;
Item.Value (1,'PO_ITEM') := '00010';
Item.Value (1,'PUR_MAT') := '000000000000000017';
Item.Value (1,'STORE_LOC') := '100';
Item.Value (1,'PLANT') := '1000';
Item.Value (1,'NET_PRICE') := '10,00';
(* schedules for position 00010 *)
Schedul.Rows.Add;
Schedul.Value (1,'PO_ITEM') := '00010';
Schedul.Value (1,'DEL_DATCAT') := '1';
Schedul.Value (1,'DELIV_DATE') := '20.09.2000';
Schedul.Value (1,'QUANTITY') := '10';
(* data for position 00020 *)
Item.Rows.Add;
Item.value (2,'PO_ITEM') := '00020';
Item.value (2,'PUR_MAT') := '000000000000001161';
Item.value (2,'STORE_LOC') := '100';
Item.value (2,'PLANT') := '1000';
Item.value (2,'NET_PRICE') := '10,00';
(* schedules for position 00020 *)
Schedul.Rows.Add;
Schedul.Value (2,'PO_ITEM') := '00020';
Schedul.Value (2,'DEL_DATCAT') := '1';
Schedul.Value (2,'DELIV_DATE') := '20.09.2000';
Schedul.Value (2,'QUANTITY') := '10';
(* call the method CreateFromData *)
Mat.CreateFromData (PoHeader := Header,
SkipItemsWithError := ' ',
PoItems := Item,
PoItemSchedules := Schedul,
Return := Ret);
(* Errors are saved in the structure Ret *)
if Ret.RowCount > 0 then
begin
Panel1.Caption:= Ret.Value (1,'TYPE');
Panel2.Caption:= Ret.Value (1,'MESSAGE');
end
(* If the method was calles without errors, *)
(* display the number of the purchaseorder *)
else Panel2.Caption:= Mat.PurchaseOrder;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
(* Logon to the system *)
Connection := SAPLogoncontrol1.newConnection;
Connection.User := Ansiuppercase(Edit1.text);
Connection.System := 'IDS';
Connection.Client := '800';
Connection.ApplicationServer := 'SAPIDES';
Connection.SystemNumber := '00';
Connection.Password := Edit2.text;
Connection.Language := 'DE' ;
SAPLogonControl1.Enabled := false;
if Connection.LogOn(0,true) = True then
begin
ShowMessage('Logon O.K.');
Button1.Enabled:= true;
(* assign the existing connection to the *)
(* component SAPBapiControl1 *)
SapBapiControl1.Connection:=Connection;
end
else
begin
ShowMessage('Error on logon :-(((');
end;
end;
end.
分享到:
相关推荐
文件`6.TSAPFunctions使用BAPI创建PO(有登录对话框的delphi源代码).txt`和`8.TBAPIControl使用BUS2012建立PO(Delphi源代码).txt`中,可以看到如何使用BAPI函数来创建采购订单(PO),这是企业资源管理中的常见任务。...
在实际应用中,idoc、bapi 和 rfc 可以结合使用,例如使用 idoc 进行数据交换,然后使用 bapi 进行业务流程处理,最后使用 rfc 进行远程函数调用。 此外,ALE(Application Link Enabling)是 SAP 系统中的一种数据...
SAP BAPI 和 RFC 使用总结 SAP R/3 系统提供了多种接口技术,其中最常用的是 RFC(Remote Function Call)、IDoc 和 BAPI。BAPI,全称为Business Application Programming Interface,实际上是 RFC 的一种特殊形式...
SAP BAPI和RFC接口技术 在SAP系统中,RFC(Remote Function Call)接口技术和BAPI(Business Application Programming Interface)接口技术是两个非常重要的技术概念。下面我们将对这两个技术进行详细的介绍。 RFC...
要访问和管理BAPI,SAP提供了一个专门的BAPI仓库,可以通过事务代码BAPI进入。在这里,用户可以查看、测试和使用BAPI,进行相关的开发和配置工作。 总之,SAP BAPI是实现企业系统集成和数据交换的重要工具,它的...
SAP_ABAP_FI_BAPI清单案例教程——采购付款/销售收款_BAPI_ACC_DOCUMENT_POST_F-02
Python库“b2bapi-2.1.1-py3-none-any.whl”是一个用于B2B(Business-to-Business)交互的Python模块,它提供了方便的API接口,允许开发者轻松地与B2B系统进行数据交换和业务流程自动化。这个whl文件是Python的轮子...
### RFC BAPI:深入解析与应用 #### 一、引言 在SAP的世界里,BAPI(Business Application Programming Interface)扮演着至关重要的角色。它不仅作为SAP R/3系统与外部应用程序交互的主要接口,同时也是实现业务...
为了访问和管理BAPI,SAP提供了BAPI仓库,可以通过事务代码`BAPI`进行访问。在这里,用户可以找到所有可用的BAPIs,查看其属性、调用示例和相关的技术信息。BAPI属性通常包括接口定义、输入/输出参数、错误处理等。 ...
### 使用BAPI_PO_CHANGE修改(ME23N)采购订单(PO)出货日期的方法 在SAP系统中,采购订单(Purchase Order, PO)管理是供应链管理中的一个关键环节,涉及采购请求、供应商选择、合同谈判等多个流程。在实际业务操作...
固定资产导入模板——SAP_ABAP_FI_BAPI清单案例教程——固定资产创建_BAPI_FIXEDASSET_OVRTAKE
三、委外PO的收货(这里使用BAPI_GOODSMVT_CREATE) *&---------------------------------------------------------------------* *& Report ZTEST_WWJG *& *&---------------------------------------------------...
ABAP_RFC_BAPI 培训教程详细解读 SAP R/3 系统提供了多种接口技术,其中 RFC(Remote Function Call)和 BAPI(Business Application Programming Interface)是常用的两种。RFC 主要分为本地 RFC 和远程 RFC,而 ...
17. BAPI_PO_CREATE1/BAPI_PO_CHANGE/BAPI_PO_GETDETAIL/BAPI_PO_RELEASE 这些BAPI分别用于创建、更改、获取和发布采购订单,属于SAP中的采购管理模块。 了解这些BAPI的用途后,SAP ABAP程序员在开发时可以根据具体...
本文将详细介绍如何使用Delphi通过BAPI(Business Application Programming Interface)与SAP系统进行交互,以实现DEMO功能。 首先,BAPI是SAP提供的一种标准接口,允许外部系统与SAP内部业务逻辑进行通信。它封装...
DELPHI SAP PACK 是一个专为Delphi开发者设计的组件包,它允许程序通过RFC (Remote Function Call) 和BAPI (Business Application Programming Interface) 与SAP系统进行交互,而无需安装完整的SAP GUI。这一组件包...
### BAPI-ACC-DOCUMENT-POST 结构字段扩展 #### 概述 在SAP系统中,`BAPI_ACC_DOCUMENT_POST` 是一个重要的业务应用程序接口(BAPI),用于执行财务凭证的过账处理。但在实际应用过程中,可能会遇到现有BAPI无法...
ABAP 高级开发RFC BAPI
这个名为"SAP资料集有ABAP-PP-MM-RFC-BAPI-JCO等.rar"的压缩包文件包含了多个与SAP相关的学习资料,涵盖了许多关键模块和技术,包括ABAP编程、生产计划(PP)、物料管理(MM)、远程功能调用(RFC)、业务对象接口...