BAPI / RFC with Delphi(系列之八)--TBAPIControl使用BUS2012建立PO(Delphi源代码)

本文主要是介绍BAPI / RFC with Delphi(系列之八)--TBAPIControl使用BUS2012建立PO(Delphi源代码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

ComponentFunction
SAPLogonControl1SAP ActiveX-Component to logon to the system
SAPBAPIControl1SAP ActiveX-Component to connect to BAPI
Button1Button to start the procedure
Button2Button to logon
Panel1-3Elements 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.



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1541437


这篇关于BAPI / RFC with Delphi(系列之八)--TBAPIControl使用BUS2012建立PO(Delphi源代码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/836467

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言