`
Jack Wu
  • 浏览: 891890 次
  • 来自: ...
社区版块
存档分类
最新评论

BAPI / RFC with Delphi(系列之六)--TSAPFunctions使用BAPI创建PO(有登录对话框的delphi源代码)

阅读更多

1、新建一个Form,并在form上添加下列控件

Component

Function

SAPFunctions1SAP ActiveX-component to connect RFC/BAPI
Button1Button to start the procedure
Panel1not 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;

 



分享到:
评论

相关推荐

    Delphi连接SAP(RFC)

    文件`6.TSAPFunctions使用BAPI创建PO(有登录对话框的delphi源代码).txt`和`8.TBAPIControl使用BUS2012建立PO(Delphi源代码).txt`中,可以看到如何使用BAPI函数来创建采购订单(PO),这是企业资源管理中的常见任务。...

    idoc 和 bapi 和 rfc 之间的区别

    在实际应用中,idoc、bapi 和 rfc 可以结合使用,例如使用 idoc 进行数据交换,然后使用 bapi 进行业务流程处理,最后使用 rfc 进行远程函数调用。 此外,ALE(Application Link Enabling)是 SAP 系统中的一种数据...

    SAP BAPI and RFC 使用总结

    SAP BAPI 和 RFC 使用总结 SAP R/3 系统提供了多种接口技术,其中最常用的是 RFC(Remote Function Call)、IDoc 和 BAPI。BAPI,全称为Business Application Programming Interface,实际上是 RFC 的一种特殊形式...

    SAP BAPI和RFC接口技术

    SAP BAPI和RFC接口技术 在SAP系统中,RFC(Remote Function Call)接口技术和BAPI(Business Application Programming Interface)接口技术是两个非常重要的技术概念。下面我们将对这两个技术进行详细的介绍。 RFC...

    SAP BAPI和RFC简介

    SAP BAPI(Business Application Programming Interface)是SAP业务框架中的关键组成部分,它们代表了组件边界上的可见接口,用于整合这些组件。BAPI的设计目的是为了实现SAP组件间以及SAP与非SAP组件间的集成和技术...

    凭证批导模板-SAP-ABAP-FI-BAPI清单案例教程-采购付款/销售收款-BAPI-ACC-DOCUMENT-POST

    SAP_ABAP_FI_BAPI清单案例教程——采购付款/销售收款_BAPI_ACC_DOCUMENT_POST_F-02

    RFC BAPI

    ### RFC BAPI:深入解析与应用 #### 一、引言 在SAP的世界里,BAPI(Business Application Programming Interface)扮演着至关重要的角色。它不仅作为SAP R/3系统与外部应用程序交互的主要接口,同时也是实现业务...

    固定资产导入模板-SAP-ABAP-FI-BAPI清单案例教程-固定资产创建-BAPI-FIXEDASSET-OVRTAKE

    固定资产导入模板——SAP_ABAP_FI_BAPI清单案例教程——固定资产创建_BAPI_FIXEDASSET_OVRTAKE

    Python库 | b2bapi-2.1.1-py3-none-any.whl

    Python库“b2bapi-2.1.1-py3-none-any.whl”是一个用于B2B(Business-to-Business)交互的Python模块,它提供了方便的API接口,允许开发者轻松地与B2B系统进行数据交换和业务流程自动化。这个whl文件是Python的轮子...

    用BAPI_PO_CHANGE修改(ME23N)PO出貨日期的方法

    ### 使用BAPI_PO_CHANGE修改(ME23N)采购订单(PO)出货日期的方法 在SAP系统中,采购订单(Purchase Order, PO)管理是供应链管理中的一个关键环节,涉及采购请求、供应商选择、合同谈判等多个流程。在实际业务操作...

    SAP BAPI & RFC Intro

    SAP BAPI(Business Application Programming Interface)是SAP系统中的一种关键组件,它构成了SAP Business Framework的核心部分,旨在促进SAP组件与非SAP组件之间的技术集成和业务数据交换。BAPIs作为组件边界上的...

    【测试】SAP 委外加工收货BAPI Demo

    三、委外PO的收货(这里使用BAPI_GOODSMVT_CREATE) *&---------------------------------------------------------------------* *& Report ZTEST_WWJG *& *&---------------------------------------------------...

    sap abap常用bapi

    17. BAPI_PO_CREATE1/BAPI_PO_CHANGE/BAPI_PO_GETDETAIL/BAPI_PO_RELEASE 这些BAPI分别用于创建、更改、获取和发布采购订单,属于SAP中的采购管理模块。 了解这些BAPI的用途后,SAP ABAP程序员在开发时可以根据具体...

    ABAP_RFC_BAPI培训教程.docx

    创建本地 RFC 需要使用事务代码 SE37。首先,输入一个以 "Z" 或 "Y" 开头的函数模块名称,通常推荐使用 "Z"。接着,定义函数组和描述,并根据需要创建新的函数组。如果需要将 RFC 保存到特定包中,可以通过 SE80 ...

    BAPI批量创建PO

    在这个场景中,我们关注的是使用BAPI批量创建采购订单(Purchase Orders,简称PO)。采购订单是企业进行采购活动的重要文档,它定义了供应商、物料、数量、价格等交易条件。 标题中的“BAPI批量创建PO”指的是通过...

    SAP中创建BAPI笔记

    创建BAPI的过程涉及到定义结构、创建函数模块或API方法、建立BAPI对象以及释放资源等多个步骤。下面将详细介绍SAP中创建BAPI的关键知识点。 ### 1. 创建BAPI的结构 创建BAPI的第一步是定义结构,这相当于为后续的...

    BAPI-ACC-DOCUMENT-POST 结构字段扩展

    ### BAPI-ACC-DOCUMENT-POST 结构字段扩展 #### 概述 在SAP系统中,`BAPI_ACC_DOCUMENT_POST` 是一个重要的业务应用程序接口(BAPI),用于执行财务凭证的过账处理。但在实际应用过程中,可能会遇到现有BAPI无法...

    Delphi通过BAPI连接SAP DEMO

    本文将详细介绍如何使用Delphi通过BAPI(Business Application Programming Interface)与SAP系统进行交互,以实现DEMO功能。 首先,BAPI是SAP提供的一种标准接口,允许外部系统与SAP内部业务逻辑进行通信。它封装...

Global site tag (gtag.js) - Google Analytics