分类目录归档:ABAP

SAP ABAP 选择屏幕常用代码收集

 

字母加数字递增取号码段

 

 

 

BAPI 含增强字段(EXTENSIONIN)

    下面只是个人的一些浅显看法,如果有错误或者更好的方案,请指出。
1.找到对应的结构或者自己创建一个结构,(如果创建,必须有对应的关键字)
2.在结构中添加表增强的字段
3.EXTENSIONIN值设置
4.调用bapi
    以 BAPI_PO_CREATE1 为例:创建PO需要导入 “ZZ001” 字段
步骤1:

步骤2:
     系统一般都有定义对应的结构(将字段添加到结构中)
步骤3:传参

*——————增强字段—————*
  CLEAR :ls_header_ext ,ls_header_extx.
  ls_header_extzz001 lt_datazz001.
  ls_header_extxzz001 ‘X’.
  CLEARlt_extensionin.
  lt_extensioninstructure ‘BAPI_TE_MEPOHEADER’.
  lt_extensioninvaluepart1 ls_header_ext.
  APPEND lt_extensionin.

  CLEARlt_extensionin.
  lt_extensioninstructure ‘BAPI_TE_MEPOHEADERX’.
  lt_extensioninvaluepart1 ls_header_extx.
  APPEND lt_extensionin.
步骤4:调用BAPI

注:对步骤2进行补充,如果点:EXTENSIONIN “显示” 没有对应的结构,就需要去SE11里找或者自己创建
    例如:BAPI_GOODSMVT_CREATE
se11查找:BAPI_TE_*(增强表名)
    

创建销售订单时如何给增强字段赋值[BAPI_SALESORDER_CREATEFROMDAT2]

在使用bapi BAPI_SALESORDER_CREATEFROMDAT2创建销售订单时,可以通过extensionin参数给自定义的参数赋值。

2017-01-31_10-38-45

具体的使用方法可以通过点击Function module documentaion来查看,如下:

 

2017-01-31_10-44-09

下面举例说明:

在销售订单的行项目上的additional data a tab页上有5个自定义的增强字段,如下:

2017-01-31_10-46-23

对应表vbap中是如下几个字段,这些字段是通过append的方式加到vbap上的

2017-01-31_10-48-05

同样,这些自定义字段也要加到structure VBAPKOZ,BAPE_VBAP和 BAPE_VBAPX中,

2017-01-31_10-56-05

2017-01-31_10-58-05

2017-01-31_11-00-16

总结一下:

如果增强字段在销售订单抬头(vbak)上,则要将增强字段一并append到如下四个表/结构中:

  1.  VBAKKOZ
  2.  VBAKKOZX
  3.  BAPE_VBAK
  4.  BAPE_VBAKX

在行项目(vbap)上:

  1. VBAPKOZ
  2. VBAPKOZX
  3. BAPE_VBAP
  4. BAPE_VBAPX

在运货计划行(VBEP)上:

  1. VBEPKOZ
  2. BEPKOZX
  3. BAPE_VBEP
  4. BAPE_VBEPX

下面介绍如何向bapi中extensionin参数赋值数据,具体代码如下:

 

最后调用bapi BAPI_SALESORDER_CREATEFROMDAT2时将上面代码中填充好的m_it_extensionin内表传入就可以了。

 

 

SAP HANA学习资料大全

Check out this SDN blog if you plan to write HANA Certification exam

http://scn.sap.com/community/hana-in-memory/blog/2012/08/27/my-experience-on-hana-certification

Videos available at HANA Academy

http://www.saphana.com/community/resources/hana-academy

http://help.sap.com/hana/hana1_model_en.pdf

Google Custom search for SCN and SAP websites

http://www.google.com/cse/home?cx=013447253335410278659:k8ob9ipscwg

Site Search for SAP Community Network powered by Google. Find discussions (forums), blogs, documents, videos, topic spaces and the latest news found on SCN.

searches sites including: http://scn.sap.com, http://scn.sap.com, http://www.sdn.sap.com , http://help.sap.com, http://scn.sap.com/community/

http://www.google.com/cse/home?cx=013447253335410278659:k8ob9ipscwg

HANA on AWS

Getting Started with HANA on AWS – http://www.saphana.com/community/solutions/cloud-info/cloud/hana-platform-aws

Step by step instructions for setting up SAP HANA on AWS – http://scn.sap.com/docs/DOC-28294

HANA Overview

SAP HANA Appliance Software  document list (many locked docs) – http://help.sap.com/hana_appliance/

Whitepaper – Technical Overview SAP HANA – http://www.saphana.com/docs/DOC-1506 & http://www.saphana.com/docs/DOC-1507

Understanding HANA One – http://www.saphana.com/docs/DOC-2481

HANA One quick start – http://cloud.saphana.com/quickstart-aws-hana

HANA Technical White Paper – http://www.saphana.com/docs/DOC-2091http://www.saphana.com/servlet/JiveServlet/download/2091-7-7434/HANA%20technical%20white%20paper.pdf

Product Road Map – SAP HANA – http://www.saphana.com/docs/DOC-1636

Licensing / Pricing – http://www.saphana.com/docs/DOC-2080

SAP HANA Hardware Specifications & Product Availability Matrix (PAM) – http://www.saphana.com/docs/DOC-2382

Deep Dive into the SAP In-Memory Technology, Strategy, and Roadmap – http://www.saphana.com/docs/DOC-1437

HANA Deep Dive – http://www.saphana.com/docs/DOC-1257

Enterprise Architecture and HANA – http://www.saphana.com/docs/DOC-2541

Master Guide to HANA – http://www.saphana.com/docs/DOC-1311

Technical Operations Manual – SAP HANA – http://www.saphana.com/docs/DOC-1072

System Order – SAP HANA – http://www.saphana.com/docs/DOC-1213

Overall Installation Guide – SAP HANA 1.0 – http://www.saphana.com/docs/DOC-1040

Installation & Configuration Overview – SAP HANA – http://www.saphana.com/docs/DOC-1218

Installation, Implementation, Master Guides – http://www.saphana.com/docs/DOC-2102

Studio Installation and Update Guide – SAP HANA In-memory Database SP04 – http://www.saphana.com/docs/DOC-1808

Server Installation and Update Guide – SAP In-Memory Database – http://www.saphana.com/docs/DOC-1031

Client Installation and Update Guide – SAP In-Memory Database 1.0 – http://www.saphana.com/docs/DOC-1032

Efficient Transaction Processing in SAP HANA Database – http://www.saphana.com/docs/DOC-2119

HANA for Developers

SAP HANA Developer Center in SAP Developer Center

http://scn.sap.com/community/developer-center/hana

The Road to HANA for Software Developers – http://scn.sap.com/docs/DOC-31723

SAP HANA SQL Reference Documentation – http://help.sap.com/hana/html/index.html

What’s New Release Notes – SAP HANA Appliance Software SPS 04 – What’s New – Release Notes.pdf

Technical Documents – SAP HANA – http://www.saphana.com/docs/DOC-2171

Master Guide – SAP HANA SPS4 – http://www.saphana.com/docs/DOC-1806

Security Guide – SAP HANA – http://www.saphana.com/docs/DOC-1067

Security Guide – SAP In-Memory Database – http://www.saphana.com/docs/DOC-1068

Security and Authentication – SAP HANA – http://www.saphana.com/docs/DOC-1223

Overview – SAP HANA Studio – http://www.saphana.com/docs/DOC-1217

Modeling Features – SAP HANA – http://www.saphana.com/docs/DOC-1216

SAP HANA Modelling Guide PDF – http://www.saphana.com/docs/DOC-1302

Implementing Calculation Views – SAP HANA Modeling – http://www.saphana.com/docs/DOC-1922

Aspects of the HANA-optimized InfoCube – http://www.saphana.com/docs/DOC-1363

SQL Script in Nutshell – http://www.saphana.com/videos/1038

SAP HANA Database – Partitioning and Distribution of Large Tables- http://help.sap.com/hana/hana_db_part_en.pdf

HANA Analytics and BI Tools including BOBJ

SAP_In-Memory_How BI will change_.pdf – http://www.saphana.com/docs/DOC-1238

Analytics Overview – Predictive Analytics with SAP HANA – http://www.saphana.com/docs/DOC-1955

Predictive Analysis Library Manual – http://www.saphana.com/docs/DOC-1402

Business Function Library Manual – http://www.saphana.com/docs/DOC-2378

Integrating R with HANA – http://help.sap.com/hana/hana_dev_r_emb_en.pdf

When SAP HANA met R – http://scn.sap.com/community/developer-center/hana/blog/2012/05/21/when-sap-hana-met-r–first-kiss

ABC CLASSIFICATION & C4.5 DECISION TREE – http://www.saphana.com/docs/DOC-1283

High level steps of using SAP HANA and BI 4.0 tools – http://www.saphana.com/docs/DOC-1556

Best Practices – Creating a universe on SAP HANA – http://www.saphana.com/docs/DOC-1682

Using SAP HANA Variables with SAP BusinessObjects BI 4.0 – http://www.saphana.com/docs/DOC-1688

Setting up end to end security for SAP HANA and BI4.0 – http://www.saphana.com/docs/DOC-2416

Installation Guide – SAP BusinessObjects Information Platform Services 4.0 Feature Pack 3 – http://www.saphana.com/docs/DOC-1036

What’s new guide – SAP BusinessObjects Analysis, edition for Microsoft Office 1.2 SP5 – http://www.saphana.com/docs/DOC-1684

What’s new guide – SAP BusinessObjects Business Intelligence platform 4.0 – http://www.saphana.com/docs/DOC-1685

User’s Guide – SAP BusinessObjects Web Intelligence 4.0 FP3 – http://www.saphana.com/docs/DOC-1065

User’s Guide – SAP BusinessObjects Web Intelligence Rich Client 4.0 FP3 – http://www.saphana.com/docs/DOC-1066

FAQ for IT – SAP BusinessObjects Explorer – http://www.saphana.com/docs/DOC-1756

SAP BusinessObjects Explorer on BW on HANA – http://www.saphana.com/docs/DOC-2099

Overview – Operational Reporting – http://www.saphana.com/docs/DOC-1618

HANA Clients for different Reporting tools and their relations ships – http://sapanalyticsguru.com/hana/hana-clients-for-different-reporting-tools-and-their-relations-ships/

Unstructured Data – http://www.saphana.com/docs/DOC-2118

Turbo Charge Big Data Analytics with SAP HANA and Hadoop – http://www.saphana.com/docs/DOC-2125

Data Services

Data Provisioning – SAP HANA – http://www.saphana.com/docs/DOC-1210

SAP HANA Information Composer V 1.0 – External Data Upload – http://www.saphana.com/docs/DOC-1552

Extractor-based Data Acquisition by SAP HANA Direct Extractor – http://www.saphana.com/docs/DOC-2301

Using the Direct Extractor Connection (DXC) – http://www.saphana.com/docs/DOC-2420

SAP BusinessObjects Data Services 4.1 – http://help.sap.com/bods

Installation Guide – SAP BusinessObjects Data Services XI 4.0 – http://www.saphana.com/docs/DOC-1038

How To… load SAP Business Suite data into SAP HANA using SAP BusinessObjects Data Services – http://www.saphana.com/docs/DOC-1354

Data Services Administrator’s Guide – SAP BusinessObjects – http://www.saphana.com/docs/DOC-1070

SAP System Landscape Transformation SLT – http://www.saphana.com/docs/DOC-2116

ETL – Extraction Transformation Loading – http://www.saphana.com/docs/DOC-2117

Installation Guide – Trigger-Based Data Replication SAP HANA – http://www.saphana.com/docs/DOC-1352

Overview Presentation – SAP LT Replication Server for SAP HANA – http://www.saphana.com/docs/DOC-1811

Whitepaper – LT Replication Server – http://www.saphana.com/docs/DOC-1334

Webinar: Replicating Data into the SAP HANA Database Using SAP LT Replication Server – http://www.saphana.com/docs/DOC-1145

SAP LT Replication Server for SAP HANA SPS03 – http://www.saphana.com/docs/DOC-1335

Replicating SAP system tables in HANA using SLT – http://www.saphana.com/docs/DOC-2441

Security Guide – Trigger-Based Replication (SLT) SAP HANA – http://www.saphana.com/docs/DOC-1069

Security Guide – Log-Based Replication (SYBASE) SAP HANA – http://www.saphana.com/docs/DOC-1071

How to invoke SAP HANA stored procedures from Data Services – http://www.saphana.com/docs/DOC-2289

High Availability and Disaster Recovery

Introduction – SAP HANA Data Center Readiness – http://www.saphana.com/docs/DOC-2010

Introduction to High Availability for SAP HANA (NEW 11/27) – http://www.saphana.com/docs/DOC-2775

Readiness Guide – SAP HANA http://www.saphana.com/docs/DOC-1810

High Availability & Disaster Tolerance – SAP HANA – http://www.saphana.com/docs/DOC-1221

Update & Patching – SAP HANA – http://www.saphana.com/docs/DOC-1212

Manual Update Guide – SAP HANA 1.0 – http://www.saphana.com/docs/DOC-1051

Administration & Monitoring – SAP HANA – http://www.saphana.com/docs/DOC-1215

Administration Guide – SAP HANA In-Memory Database – http://www.saphana.com/docs/DOC-1073

Backup and Recovery Guide – SAP In-Memory Database – http://www.saphana.com/docs/DOC-1078

Database Persistence – SAP HANA – http://www.saphana.com/docs/DOC-1222 – also see 0102 – Foundation – Persistence in HANA.pdf

Performance

For real: Performance of the same SQL comparing Hana and another RDBMS – http://www.saphana.com/docs/DOC-2321

Whitepaper – SAP HANA Performance – http://www.saphana.com/docs/DOC-1647

Performance Test Report – SAP HANA – http://www.saphana.com/docs/DOC-1755

SAP HANA Performance: 100TB Performance Test Results – http://www.saphana.com/docs/DOC-2381

SAP HANA Memory Usage Explained – http://www.saphana.com/docs/DOC-2299

Scalability – SAP HANA – http://www.saphana.com/docs/DOC-2022

How to Delta Merge for SAP HANA – http://www.saphana.com/docs/DOC-2002

SAP HANA-System Tables and Monitor Views Reference – http://www.saphana.com/docs/DOC-1833

Query Performance – BW powered by SAP HANA – http://www.saphana.com/docs/DOC-1888

Performance tuning tip to accelerate first query request Video – http://www.saphana.com/videos/1075

SAP HANA SQL Optimizer Video – http://www.saphana.com/videos/1050

HANA and SAP BW

Strategic Direction and Evolution – Data Warehouse Solutions from SAP – http://www.saphana.com/docs/DOC-2164

SAP NetWeaver Business Warehouse 7.3, powered by SAP HANA – http://help.sap.com/nw73bwHANA

Overview – BW Powered by HANA – http://www.saphana.com/docs/DOC-1522

General Information for BW on HANA – http://www.saphana.com/docs/DOC-2100

How To Size SAP BW on HANA – http://www.saphana.com/docs/DOC-2531 & http://www.saphana.com/docs/DOC-2114

Mixed scenarios: BW on HANA and HANA datamart – http://www.saphana.com/docs/DOC-2771

EDW and HANA – http://www.saphana.com/docs/DOC-2110

Automated Processes for BW on HANA Migration – http://www.saphana.com/docs/DOC-2661

Installation, Implementation, Master Guides for BW on HANA – http://www.saphana.com/docs/DOC-2102

SAP NetWeaver 7.30 – BW Systemcopy ABAP – http://scn.sap.com/docs/DOC-12262

DBA Aspects – http://www.saphana.com/docs/DOC-2091

BW Housekeeping Tasks – http://www.saphana.com/docs/DOC-2770

Important Housekeeping Principles for keeping your SAP NetWeaver BW in good shape – http://scn.sap.com/docs/DOC-13132

Data Modeling – http://www.saphana.com/docs/DOC-2130

Reporting on HANA models in BW-on-HANA – http://www.saphana.com/docs/DOC-1463

Security / Authorization for HANA and BW – http://www.saphana.com/docs/DOC-2128

Upgrade / Migration for BW objects – http://www.saphana.com/docs/DOC-2113

Upgrade / Migration – General – http://www.saphana.com/docs/DOC-2112

Java Stack for BW on HANA – http://www.saphana.com/docs/DOC-2103

BW Planning Applications (IP) on HANA – http://www.saphana.com/docs/DOC-2144

ABAP and developing on BW on HANA – http://www.saphana.com/docs/DOC-2090

Mixed scenarios: BW on HANA and HANA datamart – http://www.saphana.com/docs/DOC-2771

Data Modeling – BW InfoProviders – http://www.saphana.com/docs/DOC-2129

BWA – SAP BW Accelerator vs HANA BW – http://www.saphana.com/docs/DOC-2098 & http://www.saphana.com/docs/DOC-1088

SAP First Guidance – SAP Netweaver BW 7.30 on HANA Inventory InfoCubes – http://scn.sap.com/docs/DOC-28525

HANA Based Solutions

What kinds of applications are being delivered on top of SAP HANA? – http://www.saphana.com/docs/DOC-1063

Overview – Rapid Marts – http://www.saphana.com/docs/DOC-1753

Period-End Closing – http://www.saphana.com/docs/DOC-1670

Pricing Analytics – http://www.saphana.com/docs/DOC-2436

Overview – SAP CO-PA Accelerator – http://www.saphana.com/docs/DOC-1206

Profitability Analysis CO-PA – http://www.saphana.com/docs/DOC-1672

Overview – Finance and Controlling Accelerator – http://www.saphana.com/docs/DOC-1619

Info providers and data sources – SAP ERP RDS for Accelerated Finance and Controlling – http://www.saphana.com/docs/DOC-1565

Analytical Banking – SAP HANA – http://www.saphana.com/docs/DOC-1972

Banking Transaction History & Spend Analysis – http://www.saphana.com/docs/DOC-1702

Liquidity Risk Management – http://www.saphana.com/docs/DOC-1768

Enterprise Risk Management – http://www.saphana.com/docs/DOC-2033

Real Time Enterprise Risk Reporting – http://www.saphana.com/docs/DOC-1704

Overview – Deposits Management for Transaction History Analysis – http://www.saphana.com/docs/DOC-1617

Real-Time Stress Testing Banking – http://www.saphana.com/docs/DOC-1974

Overview – SAP Smart Meter Analytics – http://www.saphana.com/docs/DOC-1131

Strategic Condition Management – http://www.saphana.com/docs/DOC-1689

Market Basket Analysis for Promotion Management – http://www.saphana.com/docs/DOC-1562

Scope – SAP ERP RDS for Accelerated Finance and Controlling with SAP HANA – http://www.saphana.com/docs/DOC-1579

ABAP实现粘贴板的操作,复制粘贴

BAP可以实现复制粘贴的操作
自己玩儿
项目里暂时用不到
在ABAP中的 CLASS :CL_GUI_FRONTEND_SERVICES中提供了两个方法来控制与剪贴板内容的导入导出,
分别是:CLIPBOARD_EXPORT和CLIPBOARD_IMPORT。
CLIPBOARD_EXPORT是将一个内表的内容导入到剪贴板中,示例程序如下:
复制

粘贴

CLIPBOARD_IMPORT是将剪贴板中的内容导入到一个定义好的内表当中,示例程序如下:

内表到粘贴板
itabtoclip

SAP OLE中常用的一些方法和属性

1.ole中如何保存和退出。
call method of sheetname ‘saveas’ exporting #1 = filepath #2 =1.
call method of applicationname ‘quit’.
2.给sheet重命名。
call method of sheetname ‘name’ = ‘sheetname’.
3.创建application.
call method of XXX ‘excel.application’.
4.设置XXX的显示模式。
set property of XXX ‘visible’ = 1. 前台运行。为0时表示为后台运行。
5.创建workbook.
CALL METHOD OF EXCEL ‘WORKBOOKS’ = WORKBOOK .
call method of workbook ‘ADD’.
6.在一个workbook中添加一个worksheet.
CALL METHOD OF applicationname ‘sheets’ = worksheet.
call method of worksheet ‘Add’ .
7.给单元格赋值。
CaLL METHOD OF EXCEL ‘CELLS’ = CELL
EXPORTING
#1 = 2
#2 = 2.
Set PROPERTY OF CELL ‘value’ = xxxx.
8.指定要被操作的sheet.
CALL METHOD OF applicationname ‘Worksheets’ = SHEET
EXPORTING
#1 = ‘sheet3’. 这里sheet3为要操作的sheet的名字。
call method of sheet ‘Activate ‘.
9.指定操作的单元格的范围。
CALL METHOD OF applicationname ‘Range’ = range
EXPORTING
#1 = ‘B2’
#2 = ‘c2’.
10. 如何操作范围内的单元格。
call method of range ‘select ‘. range也为已经定义好的ole2_object.
Set PROPERTY OF range ‘MergeCells’ = 0 . 合并单元格,0时不合并,1则合并。与前面一起使用
Set PROPERTY OF range ‘HorizontalAlignment’ = 10 .
Set PROPERTY OF range ‘VerticalAlignment’ = -4108 .
11.单元格内部属性的操作.
call method of cell ‘INTERIOR’ = int.
set property of int ‘ColorIndex’ = color. 颜色
set property of int ‘Pattern’ = pattern.
12.单元格内字体的操作.
call method of CELL ‘FONT’ = font.
set property of font ‘BOLD’ = bold.
set property of font ‘SIZE’ = size.
13.边框的操作.
call method of CELL ‘BORDERS’ = BORDERS
EXPORTING
#1 = ‘1’. 1-left 2-right 3-top 4-bottom
set property of borders ‘Linestyle’ = plinestyle .
set property of borders ‘Weight’ = pweight .
free object borders.
在此之前应该指定range.
14.复制与粘贴.
call method of sheet ‘copy’.
call method of sheet ‘paste’.
15.一点注意。
在操作sheet时,默认为上次操作的sheet.如果想更换,参考8。
16.一个问题。有时输入数据如111111111111111111,会显示为1E+17。
解决办法:
CALL METHOD OF h_excel ‘COLUMNS’ = columnObj
EXPORTING
#1 = 6. “the column number
SET PROPERTY OF columnObj ‘ColumnWidth’ = 10.
SET PROPERTY OF columnObj ‘NumberFormat’ = ‘@’.
17.打开一个workbook.
call METHOD OF workbook ‘Open’ EXPORTING #1 = filename+path.
18. 所有的操作方法都可以在sell—-表 oleload 中 查询到。
19. 执行宏。
CALL METHOD OF EXCEL ‘RUN’ EXPORTING #1 = ‘ZMACRO2’.
20.清除range 内容
CALL METHOD OF EXCEL ‘Range’ = RANGE
EXPORTING
#1 = tar_cell
#2 = tar_cell.
call METHOD of RANGE ‘ClearContents’.
21.合并单元格
CALL METHOD OF EXCEL ‘Range’ = RANGE
EXPORTING
#1 = sor_cell
#2 = tar_cell.
SET PROPERTY OF RANGE ‘MergeCells’ = 1.
22.缩小字体填充
SET PROPERTY OF range ‘ShrinkToFit’ = 0 .
note: 为0时取消缩小字体填充,为1时设置缩小字体填充。
note:
1.与ole相关的关键字存储在表oleload中。
2.如果有些ole方法不熟悉,可以利用vba录制宏来寻找相关的关键字。

SAP ABAP 反射,动态创建内表、结构、变量

1.14. 反射

CL_ABAP_TYPEDESCR
|–CL_ABAP_DATADESCR
|     |–CL_ABAP_ELEMDESCR
|     |–CL_ABAP_REFDESCR
|     |–CL_ABAP_COMPLEXDESCR
|         |–CL_ABAP_STRUCTDESCR
|         |–CL_ABAP_TABLEDESCR
|–CL_ABAP_OBJECTDESCR
|–CL_ABAP_CLASSDESCR
|–CL_ABAP_INTFDESCR

 

1.14.1.   TYPE HANDLE

handle只能是CL_ABAP_DATADESCR或其子类的引用变量,注:只能用于Data类型,不能用于Object类型,即不能用于CL_ABAP_ OBJECTDESCR,所以没有:

CREATE OBJECT dref TYPE HANDLE objectDescr.

 

1.14.2.  动态创建数据Data或对象Object

1.14.3.  动态创建基本类型变量、结构、内表

1.14.4.  类对象反射

输出:

image033

 

文章来自SAP师太技术博客

SAP BDT业务数据工具集的开发原理及应用实例

业务数据工具集BDT(Business Data Toolset)是一套集成的封装式的开发模型,主要用于维护复杂的主数据或简单的事务型数据。BDT除了包含对话界面的操作,同时还支持直接数据录入和函数操作。BDT集成了SAP的其他技术功能,如变更管理、基于字段组的输出控制、权限控制、存档功能。BDT还集成了与BW的接口程序,BDOC类型的接口程序、XIF类型的接口函数。BDT具有一整套的配置工具和核心控制程序,然后配合具有规范接口的基于事件的函数集合,允许快速规范开发自己的整套应用或者对现有的应用进行不同层次的配置和增强.这些增强不会涉及直接更改系统核心源代码,因而可以高效地利用这套模型的强大功能。BDT是在SAP CRM产品的集成业务伙伴对象和业务伙伴关系对象的实现过程中研制出来的,并完善了VET和EEWB两个工具。可视化配置工具VCTOfisual Configu—ration T001)实现了类似所见及所得的屏幕配置。因为该工具比较简单也有一定的局限性,本文不展开。简易增强工作台EEWB(Easy Enhancement Workbench)有增加新字段和创建新透明表两种模式。通过一个向导,在回答完所有问题后,系统会自动产生一系列的程序代码。可以对产生的程序做一些变更和完善,以满足个性化需要。

BDT代表了SAP规范化开发的一个方向。BDT成型后。在SAP内部被一些行业解决方案和主要合作伙伴积极采用,如银行业、保险业、房地产业、校园管理等领域的解决方案,所以应用BDT的机会越来越多了。但是目前国内的用户还很少,并且大多满足于使用其标准功能,而敢于采用BDT开发整套应用的还没有。

BIY的整套封装式模型包含大量的配置(IMG)、用户出口、程序、函数和工具。本文以核心概念和应用实例为主,具体的细节可以参照SAP手册。

1 基本概念

    1.1 基本概念

一个主数据由一个关键字来惟一地识别它。但是还有一些其他的标准来区分和约束它,这就是差异类型(Differentiation)。差异类型可以理解为一个组织架构或者其他的决定因素。它在创建该主数据的初始屏幕时就要确定,决定了后续的维护界面和内容。

应用对象是一类数据的抽象名,如业务伙伴(BUPA)、业务伙伴关系(BUPR)、银行账号(BKKA)、合同账号(FICA)。它被分配给差异类型。有些具体对象允许有多个差异类型实例,如业务伙伴有多个角色;有些具体对象只允许有一个差异类型实例。应用对象的操作模式如创建、修改、显示等以及其他的控制配置均和应用对象联系起来。需要定义应用对象关系之间允许的差异类型和缺省的差异类型。

    1.2 交互控制

    1.2.1 数据结构

BDT的主数据可以保存在很多个有相似关键字的透明表(数据库表)中。每个表都有相对应的读取和保存函数。同时有一批数据结构用于接口定义和屏幕输出。通过数据字典、检查表和搜索帮助可以方便地实现在线输入帮助和检查。

    1.2.2 屏幕控制

屏幕显示的基本要素是视图(View),实际上就是子屏幕。通过调用函数BUS_PBO和BUS_PAI实现PBO和PAl,并规范PBO和PAI的程序。主要的流程控制、屏幕显示以及各种检查和缺省都在视图的程序中。通常一个视图内的字段是一个字段组.通过基于字段组的输出控制配置功能实现基于不同条件下的屏幕输出控制。

几个视图组成一个块(Section)’块内也可以有流程控制。几个视图组成一个屏幕,如图l所示。

 视图结构

图1 视图结构

    屏幕次序定义了屏幕出现的次序,如图2所示。屏幕次序可以分成主屏幕次序和辅助屏幕次序。屏幕次序可以分给不同种类的对象,如不同角色的业务伙伴。每个屏幕和块都有标题,每个屏幕也对应一个功能码。BDT有标准的菜单,用户也可以增加功能码到菜单中。

屏幕次序

图2 屏幕次序

    1.2.3 程序逻辑

BDT的交互控制程序定义了大量的事件函数,流程图如图3所示,每一个事件对应一个函数,开发人员可以通过更改这些函数来控制交互过程。这些函数有明确的命名规范,为<应用>一<应用对象>_EVENT一<事件名>。这些函数被BDT的核心程序调用。

    1.2.4 其他

数据分割是BDT的一个重要概念。每一个应用对象都包含很多可以维护的数据,但并不是每一个主数据都允许显示和维护所有的字段。数据分割就是进行这样的区分。业务伙伴的角色就是数据分割,不同的角色有不同的主数据,同一个对象允许是多个角色。数据分割的方法是由应用对象决定的。

BDT中数据的保存并不是以屏幕为单位的。而是把数据保存在全局变量中,最后在DSAVE事件中保存。这样的机制甚至允许多个有关系的应用对象按一定的次序共同创建或共同取消。

2 客户项目中BDT的应用实例

某客需要对于业务伙伴的定义进行增强。首先创建角色最终用户,并进行字段增强。业务伙伴字段的增强采用EEWB的工具产生BDT的各种程序和函数,接着做一些简单的修改,然后通过业务伙伴的配置把它们合理地显示在屏幕上。

    2.1 运行EEWB和后续调整

运行事务代码EEWB,进入简易增强工作台。创建针对业务伙伴的增强项目ZFVW—BUPA一01。针对定义的每一个视图创建一个子对象,运行一次向导。每一个视图对应一个字段集合和权限对象等,分得细有利于控制。至于屏幕的显示可以通过配置(IMG)来调整。

流程图

图3 流程图

        在本案例中,针对单选项或简单输入项,采用对表BUT000添加字段的方法。举例客户付款方式。在向导中定义字段名、字段类型、检查表名、抬头名、不需要有效期控制、需要BW集成,完成后系统会自动产生数据字典、数据结构、检查表、子屏幕(视图)、子屏幕的PBO和PAJ、针对于事件DLVEl、DSAVB、ISDST、ISSl.A andXCHNG的函数、直接操作的BAPI函数、现有BDOC自动扩展、在BW的数据源0BPARTNER增加字段。产生的程序属于自开发程序。

EEWB结束后,首先激活检查表的维护,然后使用事务代码SM30维护可选项。例如维护客户付款方式:00一其他;Ol一分期付款;02一全款;03一租赁购买;这样就形成了如图4的单选项。针对复杂的运用,可能需要修改和创建针对特定事件的函数,如扩展性检查等。

 客户付款方式选择界面

图4 客户付款方式选择界面

    在本案例中希望联系方式和方便联系时间是多选项。所以采用创建新透明表的方法。在向导中定义字段名、字段类型、检查表名、抬头名、不需要有效期、需要BW集成、需要BDOC集成,完成后系统会自动产生数据字典、数据结构、检查表、子屏幕(视图)、子屏幕的PBO和PAI、针对于事件DLVEl、DLVE2、DCHK、CHGDl、CHGIM、DSAVC、DSAVE、DTAKE、FCODE、ISDAT、ISSTA和XCHNG的函数,直接操作的BAPI函数、BDOC接口函数,归档函数、变更记录管理函数、在BW的数据源0BPARTNER增加字段。

系统产生的希望联系方式和方便联系时间只有一列,没有文本显示,通常需要修改系统产生的程序以改进显示效果。以希望联系方式为例说明如下。首先在产生的屏幕结构gty—dynpstruc中增加字段TEXT like ZTB0000YQJCXOT—text。

在产生的函数组的屏幕0100中增加输出元素:ZTBOOOOYQJCXOT—text。这样就调整好了子屏幕。接着在PAl中,当用户选择了希望访问方式后读取文本。

最后在函数ZZ06J—BUPA—PBO—Z06J0100中添加类例程序。

对于复杂的应用,需要修改和创建针对特定事件的函数,并且调整会比较多,例如和其他数据库表关联后读取数据和保存数据。如果要使用BW和BDOC,也需要根据SAP的手册傲一些配置和激活。

    2.2 区域菜单BUPT内的配置

区域菜单BUPT包含了所有BDT业务对象中业务伙伴和业务伙伴关系的配置,所以本文的路径都在区域菜单BUPT内。本案例的配置不牵涉到创建新的应用对象、应用和分割,但是所有配置菜单都在BUPT内。首先是配置屏幕的输出效果、参考和复制屏幕次序BUP001及其屏幕,创建自己的屏幕次序,如图5所示,

屏幕配置

图5 屏幕配置

    其中包含系统标准的屏幕和自定义及修改后的屏幕。SAP菜单路径为业务合作伙伴一控制一屏幕布局一部分,业务合作伙伴一控制一屏幕布局一屏幕,业务合作伙伴一控制一屏幕顺序。

定义业务伙伴视图:最终用户。其中定义了数据集和屏幕次序。SAP菜单路径为业务合作伙伴一控制一可分割一业务伙伴视图。

定义角色的基于字段组的输出控制。SAP菜单路径为IMG一交叉应用组件一SAP业务伙伴一业务合作伙伴一基本设置一字段分组一配置每个商业伙伴角色的字段属性。

定义角色最终用户的专用事务代码。这样可以提高最终用户的创建、修改、显示的速度。SAP菜单路径为业务合作伙伴一控制一应用程序事务。

3 校园管理解决方案中BDT应用实例

在校园管理的解决方案中,学生主数据也是一种业务伙伴。采取案例1中的方法产生和配置好业务伙伴学生后,根据行业特点做一些较深入的开发。

    3.1 更改初始化屏幕

业务伙伴创建时需要指定角色、种类、组、类型。但是对于学生主数据来说,这些概念有一定的扩展和转换。需要根据其他的一些要素来自动决定上述关键信息。于是需要定义一些配置表,开发函数PMIQ—BUPA—CREATE—STUDENT_BUF在BDT运行开始时被调用。屏幕次序中的初始化屏幕也需要改变。该函数的定义如下:

输入条件:学生的ID,操作类型(创建、修改、显示),有效期。

程序运行的结果是BDT的实例被创建,开始进入后续界面。

程序流程:

BDT_CLASS_INIT初始化BDT的分类
BDT_INSTANCE—CREATE创建BDT的实例
BDT_INSTANCE_ATTRIBUTES—SET定义操作类型和显示控制参数
BDT—HEADER—CHECK根据自定义的配置表和其他约束条件,推导出业务伙伴的角色、种类、组、类型
BUS—VALDT—SET进行有效期控制。创建时一定是当前日期。修改时可以定义当前日期或未来的日期,显示时任何日期都允许
BDT_DATA—READ读出相关的数据。在创建时作为缺省数据。在修改和显示时,是系统内一致的数据。

    3.2 创建自己的辅助屏幕次序

需要根据一批已经创建完成的屏幕组成一个辅助屏幕次序,这些屏幕采用制表页的形式出现,并增加了一些自己的逻辑,所以采用自编程序调用BDT的程序的方法。函数PMIQ—BUPA—BDT_SCREEN—NAVIGATE用来控制屏幕的切换。这个函数调用了函数BDT_FUNCTION—NAVIGATE:它指定了屏幕号、屏幕类型、光标位置。BDT_SCREEN—ATIRIBUTES—GET:使用它激活了一些按钮等。这个函数用于屏幕的PBO。创建函数PMIQ—BUPA—BDT—SCREEN—PBO来控制PBO,该函数调用了函数BDT_SCREEN—PBO—PROCESS。创建函数PMIQ—BUPA—BDT_SCREEN_SEL_PBO,在PBO中它调用函数BDT_SCKEEN_SELECT_PBO得到BIYI”子屏幕号,然后再调用函数组BUSS中对应屏幕的PBO函数。创建函数PMIQ—BUPA—OK_CODE_SET,由这个函数把OK—CODE传递给BDT。

创建函数PMIQ—BUPA—BDT—SCREEN—SEL_PAI,在PAI中调用函数BDT_SCREEN_S;ELECT_PAl得到BDT子屏幕号,然后再调用函数组BUSS中对应屏幕的PAI函数。

  3.3 函数PMIQ—BUPA—BDT—SUBSCREEN—PAl

这是主要的PAI函数。它首先得到了光标的位置,处理完BDT的PAl函数后处理其他的功能码。用户退出BDT时,停止BDT实例。

    3.4 主数据保存

因为在学生主数据保存的同时。需要创建学生财务账号。所以在BDT事件DSAVB、DSAVC、DSAVE完成后,再调用一个函数去创建学生财务账号。

BDT是一个封装式的应用开发模型。它包含大量的配置(IMG)、用户出口、程序、函数和工具,并且单纯的开发可能看不到效果或者对其他逻辑产生影响,BDT确实是一个有效的、复杂的工具。从SAP正在开发和完善的行业解决方案中大量采用BDT可见一斑。有些企业和SAP合作伙伴采用SAP系统平台开发自己特有的局部解决方案,BDT是一个可以考虑的工具。对于其他应用开发平台供应商而言,它也是一个可以借鉴的开发模型。

HR-infotype增强笔记

一、create infotype.(pm30,个人相关数据)
1.创建的infotype必须是9开头的,即9xxx,举例:9111.
2.创建ps结构.(TCode se11). ex: ps9111.
3.pm01 创建infotype.
在infotype no.中填入要创建的infotype,这里是9111。点右侧的创建图标。
4.填入infotype号及描述,添加time constraint,添加 single screen.并save.退出。
5。如果想修改相关信息,pm01—infotype号–infotype characteristics–修改相关信息–save.
6.pa30.在最下方填入infotype号,上面填入人员号–创建–进入屏幕可看到刚才创建的infotype屏幕。上面为系统标准屏,下面为自定义的参数。
7。可以在信息类型中创建纪录。
8。se11,在数据库表中填pa9111,执行,可以查看刚刚创建的纪录。

一、create infotype (po10,与组织相关的数据)
1.创建的infotype必须是9开头的,即9xxx,举例:9999.
(1).
2.创建pt结构.(TCode se11). ex: pt9999.
3.ppci 创建infotype.填入信息类型号,点create.
进入下一界面,选字段信息类型,创建即可。
4. 创建完毕后,hrp9999中只存入了一个tabnr号,而真正的数据可以通过tabnr号从hrt9999中获取。
(2).
2.创建hri结构. ex:hri9998.
3.ppci 创建infotype.填入信息类型号,点create.
进入下一界面,选表信息类型,创建即可。
4.数据存储在hrp9999中。
二、 enhance infotype.
1.pm01–选第三个enhance infotype–选ci_include–创建
2。进入了ci_pxxxx. 填入增强的字段.—–activate.(可能需要等几秒钟)
3.提示warning ,不必关注,退出即可.
4.pm01,填入刚才增强的infotype,点创建,不停的enter直到完成即可。
5。pa30.查看增强的字段。
6。如果信息类型已经被增强了,则第一步不用创建,edit即可。后面步骤一样,直到第5步。
7。se11,在数据库表中填paxxxx,执行,可以查看刚刚创建或修改的纪录。

三、增强字段的自定义输入输出属性。
1。sm30–t588m–mod.pool(mpxxxx00)–screen(刚才创建的为2000)–设置相应字段属性

四、生成的程序名为zpxxxx00.
五、查看v_t582a可以查看infotype的属性。
六、增强的字段如果想设置下拉菜单,可以在数据元素的domain中的value里指定。
七、pm01时,选第一个用于雇员信息,即pa.第二个用于招聘,即pb.
以下为组织管理与人事管理增强时相应信息的对照:
tcode structure table screen program maintance table
OM ppci hrixxxx hrpxxxx mpxxxx00 t777i(sm30)
ptxxxx hrtxxxx
PA pm01 psxxxx paxxxx 2000/3000 mpxxxx00 t588m(sm30)

组织管理
八、po10—-组织管理维护
在自己创建的infotype里维护数据,完毕进se11–hrpxxxx–可以查看自己维护的数据。

九、组织管理—-t777i中的维护
类似t588m中的维护,进入后new entries,对time constraint 和 screen 进行维护。

对于9开头的已经被创建的OM infotype,如果想增强,可以修改hrixxxx.但屏幕的属性不知道怎么改,目前比较笨的一种方法是se51直接去屏幕里修改。

对于系统已有的om infotype,增强时填入infotype号,选第三个extend infotype,点all 增强,点edit/change 修改。
增强后的程序名为zpxxxx00,屏幕为200。

表t582c的用法,暂时不知道:include screens for infotypes.
t588m: infotype screen control.
t777i: change view infotypes.

1,infotype是四位数字编码,通常,

4nnn for applicant,
1nnn for OM,
2nnn for time,
0nnn for HR master data, sometimes for applicant data
9nnn reserved for customizing

2,每个infotype nnnn 需要至少两个structure:PSnnnn+Pnnnn, 和一个transparental table: PAnnnn(或PBnnnn for applicant), 这些数据需要在Data Dictionary中定义,PM01没有这功能(看来俺是误入歧途了, developing infotype还是Abaper的事)

3,infotype的module pool组成维护界面的主程序, 主程序为MPnnnn00,主程序还包含四个includes(不懂)

4,infotype有至少三个screen: initial screen, single screen, list screen. 另外可以用alternative screen来代替single或list secreen, 一个infotype可以有多个screen来满足不同需求, 例如, 不同国家.

initial screen用作HR和infotype本身的technical interface, 通过assign给infotype的dialog module进入. screen 1000是所有infotype的initial screen. initial screen只在后台处理,无法显示.

single screen是user和SAP的界面, 通常为screen 2000, 可以自定义single screen, 号码是2900-2999,

list screen用于显示所有的某个personnel在某个infotype的历史记录, 默认为screen 3000

infotype screen control用来调整screen以适应不同的功能(create,change,display,delimit,—)和针对不同的数据内容(某个ESG下的employee不应该有某个field)(—guess: SAP把很多东西都做group, 连delere,display等这样的操作,也定义成constant, 并组成modification group), 同时, modification group的screen control优先级, 低于table T588M

5,dialog module作为HR transaction和infotype之间的界面,名称必须为RP_nnnn,

infotype nnnn 通过 dialog module RP_nnnn 进入 module pool MPnnnn00 的 screen 1000

6,infotype characteristics,(table T582A,View V_T582A), 保存关于time constraint, start date, screen, dialog module等基本信息

相关table,
T582S: further infotype text,
T777D: infotype dialog/database assginment,
T591A: subtype characteristics
T591S: subtype text

Master Data 员工主数据
PA10 Personnel File
PA20 Display HR Master Data
PA30 Maintain HR Master Data
PA40 Personnel Events
PA41 Change Hiring Data
PA42 Fast Data Entry for Events
PRMD Maintain HR Master Data
PRMF Travel Expenses: Feature TRVFD
PRML Set Country Grouping via Popup
PRMM Personnel Events
PRMO Travel Expenses: Feature TRVCO
PRMP Travel Expenses: Feature TRVPA
PRMS Display HR Master Data
PRMT Update Matchcode
PSO3 Infotype overview
PSO4 Individual maintenance of infotypes

Time Management 时间管理
PA51 Display Time Data
PA53 Display Time Data
PA61 Maintain Time Data
PA62 List Entry of Additional Data
PA63 Maintain Time Data
PA64 Calendar Entry
PA70 Fast Data Entry
PA71 Fast Entry of Time Data
PBAB Maintain vacancy assignments
PT01 Create Work Schedule
PT02 Change Work Schedule
PT03 Display Work Schedules

Payroll 薪酬管理
PC00 Run Payroll
PC10 Payroll menu USA
PE00 Starts Transactions PE01,PE02,PE03
PE01 Schemas
PE02 Calculation Rules
PE03 Features
PE04 Create functions and operations
PE51 HR form editor
PRCA Payroll calendar
PRCT Current Settings
PRCU Printing Checks USA
PRD1 Create DME
SM31 Maintain Tables
SM12 Locked Secessions
TSTC Table lookup
SPR0 IMG
SE16 Data Browser (Table reports)
PP03 PD Tables
PP0M Change Org Unit
P013 Maintain Positions
PO03 Maintain Jobs

Benefits 福利计划
PA85 Benefits – Call RPLBEN11
PA86 Benefits – Call RPLBEN07
PA87 Benefits – Call RPLBEN09
PA89 COBRA Administration
PA90 Benefits Enrollment – Individual
PA91 Benefits – Forms
PA92 Benefits Tables – Maintain
PA93 Benefits Tables – Display
PA94 Benefits – Access Reporting Tree
PA95 Benefits IMG – Jump to Views
PA96 Benefits reporting
PA97 Salary Administration – Matrix
PA98 Salary Administration
PA99 Compensation Admin. – rel.changes
PACP HR-CH: Pension fund, interface

General/Reporting 报表
PM00 Menu for HR Reports
PM01 Dialogs in HR – Create custom infotypes
PRF0 Standard Form
PSVT Dynamic Tools Menu
PAR1 Flexible employee data
PAR2 Employee list

PD – Organizational Management 组织管理和个人发展
PP0M Change Org Unit
PO03 Maintain Jobs
PO13 Maintain Position
PO10 Maintain Organizational Unit
PP01 Maintain Plan Data (menu-guided)
PP02 Maintain Plan Data (Open)
PP03 Maintain Plan Data (event-guided)
PP05 Number Ranges
PP06 Number Range Maintenance: HRADATA
PP07 Tasks/Descrīptions
PP69 Choose Text for Organizational Unit
PP90 Set Up Organization
PPO1 Change Cost Center Assignment
PPO2 Display Cost Center Assignment
PPO3 Change Reporting Structure
PPO4 Display Reporting Structure
PPO5 Change Object Indicators (O/S)
PPO6 Change Object Indicators O/S
PPOA Display Menu Interface (with dyn.)
PPOC Create Organizational Unit
PPOM Maintain Organizational Plan
PPOS Display Organizational Plan
PQ01 Events for Work Center
PQ02 Events for Training Program
PQ03 Events for Job
PQ04 Events for Business Event Type
PQ06 Location Events
PQ07 Resource Events
PQ08 Events for External Person
PQ09 Events for Business Event Group
PQ10 Events for Organizational Unit
PQ11 Events for Qualification
PQ12 Resource Type Events
PQ13 Events for Position
PQ14 Events for Task
PQ15 Events for Company
PSO5 PD: Administration Tools
PSOA Work Center Reporting
PSOC Job Reporting
PSOG OrgManagement General Reporting
PSOI Tools Integration PA-PD
PSOO Organizational Unit Reporting
PSOS Position Reporting
PSOT Task Reporting

Recruitment 招募
PB10 Init.entry of applicant master data
PB20 Display applicant master data
PB30 Maintain applicant master data
PB40 Applicant events
PB50 Display applicant actions
PB60 Maintain applicant actions
PB80 Evaluate vacancies
PBA0 Evaluate advertisements
PBA1 Applicant index
PBA2 List of applications
PBA3 Applicant vacancy assignment list
PBA4 Receipt of application