BAPI 相关介绍资料

更新时间:2024-05-02 09:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

BAPI—百度百科

BAPI(business application programming interface)是面向对象程序设计方法中的一组程序接口。它允许程序员通过SAP将第三方软件整合成R/3专有产品。为了完成一些特殊的商业任务,如上传交易数据等,R/3系统中内置了BAPI。 ABAP中有关BAPI的介绍

1.BAPI – business application programming interface 2.它实际上是一种特殊的Remote Function Modules (RFC)是为了提供使用外部程序来进行交易活动

3.它提供的基于企业目标(Business Object) 技术的接口应用界面 4.SAP采用了Object-oriented技术,逻辑定义了SAP R/3系统的所有功能目标,并且将所有的目标(Objects) 和BAPIs存储于企业对象库(Business Objects Repository).

5.SAP R/3 企业目标的目标类型(Object Type) 相当于目标设计语言中类(Class) 的概念,其定义结构由以下几部分组成:基本数据,接口界面,键(Key Fields),方法(Methods),特征(Attributes),事件(Events) --如何创建BAPI程序

1.定义BAPI Structure (Structure不能在BAPI中重复使用,因为一旦BAPI被释放,其Structure被冻结) 2.创建FUNCTION MODULE

每个BAPI必须有自己的Function Group,Function Group属性必须为RFC

3.创建Business Object

4.使用BAPI WIZARD创建API Method 这样BAPI可以被外部程序调用 5.Function Module符合BOR Method 4.释放BAPI Function Module, 释放Business Object Type, 释放BAPI作为BOR的一种Method

SAP BAPI

BAPI是 Business Application Programming Interface的缩写. BAPI是SAP以外程序访问SAP内部数据和程序的标准方式 ?

BAPI在SAP系统内部以Function Modulede的方式实现.所有的BAPI Function都

- 支持Remote Function Call (RFC) - 处理过程中不激活对话窗口 ?

BAPI是被定义为Business Object Repository(BOR)中的SAP Business Object类型或SAP interface类型的方法,并且以Function Module方式实现的. 这种定义和实现分离的方式是我们可以通过2中方式访问BAPI. - 通过面向对象的方法调用BOR中的BAPI - 通过RFC直接调用Function Module

FI/ BAPI 常用 收藏

——阿土的SAP专栏

总帐会计: (比较简单全部测试通过,关帐时使用)

Line item of document for ledger with summary table GL F: BAPI_GLX_GETDOCITEMS

Closing balance of G/L account for chosen year F: BAPI_GL_GETGLACCBALANCE

Closing balance of G/L account for current year F: BAPI_GL_GETGLACCCURRENTBALANCE

Posting period balances for each G/L account F: BAPI_GL_GETGLACCPERIODBALANCES

应付帐款: (比较简单全部测试通过,按照公司代码,供应商代码和起至时间来查询)

读取已清算科目行项目

F: BAPI_AP_ACC_GETBALANCEDITEMS

读取当前余额

F: BAPI_AP_ACC_GETCURRENTBALANCE

读取关键日期余额

F: BAPI_AP_ACC_GETKEYDATEBALANCE

读取未清科目项

F: BAPI_AP_ACC_GETOPENITEMS

读取科目余额

F: BAPI_AP_ACC_GETPERIODBALANCES

读取科目过帐

F: BAPI_AP_ACC_GETSTATEMENT

应收款: (比较简单,传入值,没有要求输入内表类型的;;按照公司代码,供应商代码和起至时间来查询)

确定主数据

F: BAPI_CR_ACC_GETDETAIL

确定最高催款级别

F: BAPI_CR_ACC_GETHIGHESTDUNNINGL

确定最旧的未清项目

F: BAPI_CR_ACC_GETOLDESTOPENITEM

确定 OI 结构

F: BAPI_CR_ACC_GETOPENITEMSSTRUCT

确定贷方帐户的信用状态

F: BAPI_CREDIT_ACCOUNT_GET_STATUS

BAPI: 取余额项目: 客户

F: BAPI_AR_ACC_GETBALANCEDITEMS

BAPI: 取实际余额: 客户

F: BAPI_AR_ACC_GETCURRENTBALANCE

BAPI: 取关键日期余额: 客户

F: BAPI_AR_ACC_GETKEYDATEBALANCE

BAPI: 取未清项: 客户

F: BAPI_AR_ACC_GETOPENITEMS

BAPI: 取余额: 客户

F: BAPI_AR_ACC_GETPERIODBALANCES

BAPI: 取科目报表: 客户

F: BAPI_AR_ACC_GETSTATEMENT

读取客户销售范围

F: BAPI_CUSTOMER_GETSALESAREAS

银行会计:

取消支付请求

F: BAPI_PAYMENTREQUEST_CANCEL

支付请求的创建

F: BAPI_PAYMENTREQUEST_CREATE

列出支付请求

F: BAPI_PAYMENTREQUEST_GETLIST

支付请求状态的确定

F: BAPI_PAYMENTREQUEST_GETSTATUS

过帐预制凭证请求

F: BAPI_PAYMENTREQUEST_POST

批准支付的支付请求

F: BAPI_PAYMENTREQUEST_RELEASE

开始支付的支付请求

F: BAPI_PAYMENTREQ_STARTPAYMENT

资产全计核算

更改资产

F: BAPI_FIXEDASSET_CHANGE

创建资产

F: BAPI_FIXEDASSET_CREATE

使用值创建资产 (初始历史遗留数据传输) F: BAPI_FIXEDASSET_OVRTAKE_CREATE

资产的明细信息

F: BAPI_FIXEDASSET_GETDETAIL

选定资产的信息

F: BAPI_FIXEDASSET_GETLIST

检查资本记帐

F: BAPI_ASSET_POSTCAP_CHECK

记帐资本总额

F: BAPI_ASSET_POSTCAP_POST

检查资产报废

F: BAPI_ASSET_RETIREMENT_CHECK

记帐资产报废

F: BAPI_ASSET_RETIREMENT_POST

检查资产购置

F: BAPI_ASSET_ACQUISITION_CHECK

记帐资产购置

F: BAPI_ASSET_ACQUISITION_POST

特殊用途分类帐:

特殊目的分类帐: 选择科目的总计记录 F: BAPI_SL_GETTOTALRECORDS

总帐科目

检查总帐科目是否存在

F: BAPI_GL_ACC_EXISTENCECHECK

总帐科目明细

F: BAPI_GL_ACC_GETDETAIL

每个公司代码总帐科目的清单 F: BAPI_GL_ACC_GETLIST

会计核算--会计接口

会计核算:冲销凭证

F: BAPI_ACC_ACT_POSTINGS_REVERSE

会计:核算冲销

F: BAPI_ACC_DOCUMENT_REV_CHECK

会计: 过帐凭证

F: BAPI_ACC_DOCUMENT_POST

会计:过帐冲销

F: BAPI_ACC_DOCUMENT_REV_POST

会计:总帐科目记帐

F: BAPI_ACC_GL_POSTING_CHECK

会计: 检查一般总分类帐科目过帐的冲销 F: BAPI_ACC_GL_POSTING_REV_CHECK

会计:总帐科目记帐

F: BAPI_ACC_GL_POSTING_POST

会计核算: 过帐一般总帐过帐冲销 F: BAPI_ACC_GL_POSTING_REV_POST

会计销售订单

会计:检查销售订单

F: BAPI_ACC_SALES_ORDER_CHECK

会计:记帐销售订单

F: BAPI_ACC_SALES_ORDER_POST

会计核算:冲销凭证

F: BAPI_ACC_ACT_POSTINGS_REVERSE

会计: 过帐票据凭证冲销 (OAG: LOAD RECEIVABLE) F: BAPI_ACC_BILLING_REV_POST

会计: 检查货物移动 (OAG: POST JOURNAL) F: BAPI_ACC_GOODS_MOVEMENT_CHECK

本文来自CSDN博客,转载请标明出处:

http://blog.csdn.net/chfeijj/archive/2008/09/09/2906112.aspx

SAP 事务码 描述(中英文) 收藏 事务码 描述(中英文)

SM01 Lock transactions 锁定事务

BCHK DE example (SAP tournaments) DE举例(SAP竞赛) FAX1 BC sample SAP DE 2.1 BC 示例 SAP DE 2.1

FAX2 BC sample 2 SAP DE 2.1 BC样品 2SAP DE 2.1 SFAX BC Sales BC销售 ST01 System Trace 系统轨迹

ST11 Display Developer Traces 开发轨迹显示

STDA Debugger display/control (server) 调试 显示/控制 (服务器) STDC Debugger output/control 调试 输出/控制

STDU Debugger display/control (user) 调试 显示/控制 (用户) @@D Debugger -> Documentation 调试程序 -> 文档 @@E Debugger -> ABAP Editor 调试程序 -> ABAP 编辑器

@@O Debugger -> Repository Browser 调试程序 -> 仓库浏览器 @@S Debugger -> Screen Painter 调试程序 -> 屏幕制作器 ICON Display Icons 显示图标

SAMT ABAP Program Set Processing ABAP 程序集处理 SICK Installation Check 安装检查

SLIN ABAP: Extended Program Check ABAP: 扩展程序检查 SM28 Installation Check 安装检查

SM58 Asynchronous RFC Error Log 异步 RFC 错误日志

SM59 RFC Destinations (Display/Maintain) RFC终点(显示/维护)

SMT1 Trusted Systems (Display <-> Maint.) 信赖系统 (显示 <-> 维护) SMT2 Trusting systems (Display <->Maint.) 信任系统 (显示 <->维护) SSMT Modification 2.2 --> 3.0 修改 2.2 --> 3.0

ST22 ABAP/4 Runtime Error Analysis ABAP/4 运行时错误分析

SUB% Internal call: Submit via commnd fld 内部调用: 通过命令 fld 提交 SYNT Display Syntax Trace Output 显示语法跟踪输出 SE33 Context Builder 环境生成程序

SE30 ABAP Runtime Analysis ABAP 实时分析

LOPI LOOP AT internal ABAP table 内部 ABAP/4 表格中的循环 LOPJ LOOP AT internal ABAP table 内部 ABAP/4 表格中的循环 RJ10 Test Batch Input (large) 测试批输入(大量) RJ11 Test Batch Input (large) 测试批输入(大量) SHDB Record batch input 记录批输入 SM35 Batch Input Monitoring 批输入监控 CLJP Specify Japanese calender 指定日语日历

SE73 SAPscript font maintenance (revised) SAPscript 字体维护(修订的) SE74 SAPscript format conversion SAPscript 格式转化 SE75 SAPscript Settings SAPscript 设置

SE76 SAPscript: Form Translation SAPscript: 翻译格式 SE77 SAPscript Translation Styles SAPscript 翻译样式 SO10 SAPscript: Standard Texts SAPscript:标准文本 SE71 SAPscript form SAP脚本格式 SE72 SAPscript styles SAPscript 样式

SARP Reporting (Tree Structure): Execute 报表(树结构):执行 SART Display Report Tree 显示报表树

SERP Reporting: Change Tree Structure 报表:修改树结构 SA38 ABAP reporting ABAP 报表

SA39 SA38 for Parameter Transaction SA38为参数传送 SAR0 Display Standard Reporting Tree 显示标准报告树 SC38 Start Report (Remote) 启动报表程序(远程)

SE32 ABAP/4 Text Element Maintenance ABAP/4 文本元素维护 SM38 Queue Maintenance Transaction 队列维护事务 SRCN Delete country-specific reports 删除指定国家报表 SQ00 ABAP/4 Query: Start Queries ABAP/4 询问: 开始询问 SQ01 ABAP/4 Query: Maintain Queries ABAP/4 询问: 维护询问

SQ02 ABAP/4 Query: Maintain Funct. Areas ABAP/4 查询: 维护功能区 SQ03 ABAP/4 Query: Maintain User Groups ABAP/4 查询: 维护用户组 SQ07 ABAP/4 Query: Language Comparison ABAP/4 查询:语言比较 SE11 ABAP/4 Dictionary Maintenance ABAP/4 字典维护 SE12 ABAP/4 Dictionary Display ABAP/4 字典显示 SE80 Repository Browser 资源库浏览器 SE81 Application Hierarchy 应用层次 SE82 Application Hierarchy 应用层次 SEU Repository Browser 资源库浏览器

SE39 Splitscreen Editor: Program Compare 分屏编辑器: 程序比较 SE38 ABAP Editor ABAP 编辑器

SE40 MP: Standards Maint. and Translation MP:标准维护和翻译 SE41 Menu Painter 菜单制作

SE43 Maintain Area Menu 保持区域菜单

本文来自CSDN博客,转载请标http://blog.csdn.net/chfeijj/archive/2007/10/24/1842094.aspx

关于BAPI

(2007-06-11 15:41:33)

出处明:

1 BAPI的优点 bapi是面向对象的设计; bapi是固定的,一般不能修改;

bapi可以被sap内部部件和非sap程序使用; bapi的成功和错误信息始终通过RETURN返回; bapi可以被许多开发平台使用; 2 何时该考虑使用BAPI设计程序

用VB/JAVA?C++等语言编写非SAPGUI程序访问和处理sap数据; SAP不同部件之间通讯;

与非sap程序或者老系统交换数据: 使用异步通信分发数据如:ALE

可以通过SAP Business Connector or Internet Application Components 与因特网程序集成;

3 关于RETURN

RETURN用于BAPI返回错误和成功的消息,它可以是

BAPIRETURN,BAPIRETURN,BAPIRET1,BAPIRET2和BAPIRET2_FIX中的一种类型.这些结构一般都包括以下字段:

TYPE CHAR 1 S= success message E = error message W = warning message I = information message A = termination message (abort) ID CHAR 20 Message ID The structure BAPIRET2 takes into account the name space extension for the message class as of Release 4.0. If you want messages to be compatible with earlier R/3 Releases, use the message classes before Release 4.0. NUMBER MESSAGE NUMC 3 CHAR 220 Message number Full message text from the message table. All variables (in fields Message_V1 to Message_V4) have been replaced with text. MESSAGE_V1 MESSAGE_V2 MESSAGE_V3 MESSAGE_V4 CHAR 50 Fields for the variable texts of the message

4 BAPI的程序框架 Log on

(Source code) Call BAPI (Source code) Call BAPI (Source code)

Call BAPI BapiService.TransactionCommit() (Source code) Call BAPI (Source code) Call BAPI (Source code)

Call BAPI BapiService.TransactionCommit() (Source code) Log off 5 相关函数

'BALW_BAPIRETURN_GET2':取生成返回消息 CALL FUNCTION 'BALW_BAPIRETURN_GET2' EXPORTING TYPE = 'E' CL = 'BC_BOR'

SORT it_payroll-inter-rt BY lgart ASCENDING.

LOOP AT it_payroll-inter-rt INTO st_payroll WHERE lgart = '1001'. \基础工资 it_tab-paym = it_tab-paym + st_payroll-betrg. ENDLOOP.

LOOP AT it_payroll-inter-rt INTO st_payroll WHERE lgart = '1002'. \岗位工资 it_tab-paym = it_tab-paym + st_payroll-betrg. ENDLOOP.

LOOP AT it_payroll-inter-rt INTO st_payroll WHERE lgart = '1003'. \房贴 it_tab-paym = it_tab-paym + st_payroll-betrg. ENDLOOP.

LOOP AT it_payroll-inter-rt INTO st_payroll WHERE lgart = '1004'. \车贴 it_tab-paym = it_tab-paym + st_payroll-betrg. ENDLOOP.

LOOP AT it_payroll-inter-rt INTO st_payroll WHERE lgart = '1004'. \书报费 it_tab-paym = it_tab-paym + st_payroll-betrg. ENDLOOP.

MODIFY it_tab.

IF it_tab-slmax <> it_tab-slmin.

it_tab-avem = ( it_tab-paym - it_tab-slmin ) / ( it_tab-slmax - it_tab-slmin ). ENDIF.

MODIFY it_tab.

* “现薪资”-“所属职级最低薪资”)/(”所属职级最高薪资”-“所属职级最低薪资”)

ENDLOOP.

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chfeijj/archive/2009/09/11/4542618.aspx

BADI 收藏

BADI作为SAP的第三代用户出口,他的应用也越来越广泛,但如何找到合适的badi是许多abap程序员的困惑。我这里就介绍一下我个人的应用的经验,供大家参考。

1、badi对象的信息存储在SXS_INTER, SXC_EXIT, SXC_CLASS 和SXC_ATTR 这四个表中(参见SECE包);

2、sap程序都会调用cl_exithandler=>get_instance来判断对象是否存在,并返回实例;其实get_instance就是对上述几个表和他们的视图(V_EXT_IMP 和 V_EXT_ACT)进行查询和搜索。

3、基于这个机理,我查用ST05来监控一个TCODE来跟踪,然后选择查找有关上述几个表和视图的操作,就可获得相关BADI。

4、se18 查找接口,se19 实现接口就可以实现用户增强。 示例:用LE_SHP_DELIVERY_PROC控制跨月Cancel

METHOD IF_EX_LE_SHP_DELIVERY_PROC~CHANGE_DELIVERY_HEADER . data : thismonth(2) type c.

data : wa_likp type line of SHP_LIKP_T.

data : wa_log type line of SHP_BADI_ERROR_LOG_T. clear ct_log[],thismonth.

thismonth = sy-datum+4(2). \這一個月的月份 loop at it_xlikp into wa_likp.

check IS_V50AGL-WARENAUSG_STORNO ='X'.\代表作GI cancel if wa_likp-WADAT_IST+4(2) < thismonth. wa_log-VBELN = cs_likp-vbeln. wa_log-MSGTY = 'E'. \錯誤訊息

wa_log-MSGID = 'ZDN_ERROR'. \這一個class要自己建 wa_log-MSGNO = '001'.

append wa_log to ct_log. \寫入 endif. endloop.

ENDMETHOD.

BADI的实现步骤。

A.BADI定义

1.SE18。

2.输入要创建的BADI的名字,点击\。

3.输入BADI的描述性文本,在\选项卡上输入接口的名字,也可以采用SAP建议的接口的名字。同时,BADI类也会被创建。

例如:对于BADI \,SAP会建议\作为接口的名字,\作为类的名字。

4.保存BADI。

5.双击接口的名字,会跳转到Class Builder界面,在这里你可以定义接口的方法。

6.保存并激活接口。

B.在应用程序中调用BADI

1.声明一个BADI接口的参考引用变量。

例如:DATA exit_ref TYPE REF TO zif_ex_test.

2.调用类CL_EXITHANDLER的静态方法GET_INSTANCE,将返回一个请求对象的实例。

例如:

CALL METHOD CL_EXITHANDLER=>GET_INSTANCE CHANGING instance = exit_ref。

3.现在你可以调用BADI的所有方法了

C.BADI实现

1.SE19。

2.输入BADI实现的名字,点击\。

3.输入BADI定义的名字。

4.输入实现的描述性文本,在\选项卡上输入实现类的名字。可以采用SAP建议的名字。

例如:\,SAP会建议\。

5.保存实现。

6.双击某一方法名会跳转到Class Builder界面,在这里你可以添加代码来重定义接口方法。

7.激活实现。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chfeijj/archive/2008/04/01/2235159.aspx

本文来源:https://www.bwwdw.com/article/jg4g.html

Top