1、新建一个Form,并在form上添加下列控件
Component | Function |
SAPFunctions1 | SAP ActiveX-component to connect RFC/BAPI |
Button1 | Button to start the procedure |
Panel1 | not relevant! |
2、源代码如下(使用BAPI_PO_CREATE函数创建PO)
unit PO_Create;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, OleCtrls, SAPFunctionsOCX_TLB, ExtCtrls;
type
TForm1 = class(TForm)
SAPFunctions1: TSAPFunctions;
Button1: TButton;
Panel1: TPanel;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Funct,
Header,
POItems,
Schedules,
ItemsRow,
SchedulesRow: Variant;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var MLDText : String;
begin
Button1.Enabled:=false;
Panel1.Caption := 'RFC ist running, please wait.....';
(* define function *)
Funct := sapFunctions1.add('BAPI_PO_CREATE');
(*** define tables, use structures of the dictionary ***)
(* table for the purcaseorder header *)
Header := funct.exports('PO_HEADER');
(* table of the purcaseorder items *)
POItems := funct.tables.item('PO_ITEMS');
(* table of the schedules *)
Schedules := funct.tables.item('PO_ITEM_SCHEDULES');
(*** filling the PO_Header-table ***)
(* purcasing document type *)
Header.Value[2] := 'NB ' ;
(* purcasing document category *)
Header.Value[3] := 'F' ;
(* purcasing organisation *)
Header.Value[5] := '600' ;
(* purcasing group *)
Header.Value[6] := '610' ;
(* vendor account number, on numeric values don't *)
(* forget the leading zeroes!!! *)
Header.Value[8] := '0099000123';
(*** filling the PO_Items-table ***)
(* add new row to the table *)
ItemsRow := POItems.rows.add;
(* item number of purcasing document *)
ItemsRow.Value[2]:='00010';
(* material-number, on numeric values don't forget *)
(* the leading zeros !!! *)
ItemsRow.Value[5]:='000000000000001161';
(* storage location *)
ItemsRow.Value[11]:='100';
(* plant *)
ItemsRow.Value[17]:='0001';
(* netprice in purcasing document, *)
(* in document currency *)
ItemsRow.Value[21]:='10,00';
(*** filling the PO_Items_Schedules-table ***)
(* add new row to the table *)
SchedulesRow := Schedules.rows.add;
(* item number of purcasing document *)
SchedulesRow.Value[1]:='00010';
(* category of delivery date *)
SchedulesRow.Value[3]:='1';
(* item delivery date *)
SchedulesRow.Value[4]:='30.05.2000';
(* scheduled quantity *)
SchedulesRow.Value[6]:='10';
(*** call function ***)
if not funct.call then
(* on error show message *)
showMessage(funct.exception)
else
begin
(* show number of the purcaseorder *)
MLDText:= funct.imports('PURCHASEORDER');
MessageDlg('purcaseorder '+MLDText+' created.',
MTInformation,[mbOK],0);
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...
SAP BAPI(Business Application Programming Interface)是SAP业务框架中的关键组成部分,它们代表了组件边界上的可见接口,用于整合这些组件。BAPI的设计目的是为了实现SAP组件间以及SAP与非SAP组件间的集成和技术...
SAP_ABAP_FI_BAPI清单案例教程——采购付款/销售收款_BAPI_ACC_DOCUMENT_POST_F-02
### RFC BAPI:深入解析与应用 #### 一、引言 在SAP的世界里,BAPI(Business Application Programming Interface)扮演着至关重要的角色。它不仅作为SAP R/3系统与外部应用程序交互的主要接口,同时也是实现业务...
固定资产导入模板——SAP_ABAP_FI_BAPI清单案例教程——固定资产创建_BAPI_FIXEDASSET_OVRTAKE
Python库“b2bapi-2.1.1-py3-none-any.whl”是一个用于B2B(Business-to-Business)交互的Python模块,它提供了方便的API接口,允许开发者轻松地与B2B系统进行数据交换和业务流程自动化。这个whl文件是Python的轮子...
### 使用BAPI_PO_CHANGE修改(ME23N)采购订单(PO)出货日期的方法 在SAP系统中,采购订单(Purchase Order, PO)管理是供应链管理中的一个关键环节,涉及采购请求、供应商选择、合同谈判等多个流程。在实际业务操作...
SAP BAPI(Business Application Programming Interface)是SAP系统中的一种关键组件,它构成了SAP Business Framework的核心部分,旨在促进SAP组件与非SAP组件之间的技术集成和业务数据交换。BAPIs作为组件边界上的...
三、委外PO的收货(这里使用BAPI_GOODSMVT_CREATE) *&---------------------------------------------------------------------* *& Report ZTEST_WWJG *& *&---------------------------------------------------...
17. BAPI_PO_CREATE1/BAPI_PO_CHANGE/BAPI_PO_GETDETAIL/BAPI_PO_RELEASE 这些BAPI分别用于创建、更改、获取和发布采购订单,属于SAP中的采购管理模块。 了解这些BAPI的用途后,SAP ABAP程序员在开发时可以根据具体...
创建本地 RFC 需要使用事务代码 SE37。首先,输入一个以 "Z" 或 "Y" 开头的函数模块名称,通常推荐使用 "Z"。接着,定义函数组和描述,并根据需要创建新的函数组。如果需要将 RFC 保存到特定包中,可以通过 SE80 ...
在这个场景中,我们关注的是使用BAPI批量创建采购订单(Purchase Orders,简称PO)。采购订单是企业进行采购活动的重要文档,它定义了供应商、物料、数量、价格等交易条件。 标题中的“BAPI批量创建PO”指的是通过...
创建BAPI的过程涉及到定义结构、创建函数模块或API方法、建立BAPI对象以及释放资源等多个步骤。下面将详细介绍SAP中创建BAPI的关键知识点。 ### 1. 创建BAPI的结构 创建BAPI的第一步是定义结构,这相当于为后续的...
### BAPI-ACC-DOCUMENT-POST 结构字段扩展 #### 概述 在SAP系统中,`BAPI_ACC_DOCUMENT_POST` 是一个重要的业务应用程序接口(BAPI),用于执行财务凭证的过账处理。但在实际应用过程中,可能会遇到现有BAPI无法...
本文将详细介绍如何使用Delphi通过BAPI(Business Application Programming Interface)与SAP系统进行交互,以实现DEMO功能。 首先,BAPI是SAP提供的一种标准接口,允许外部系统与SAP内部业务逻辑进行通信。它封装...