`
evangxli
  • 浏览: 230716 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Call Transaction - using

阅读更多
Call transaction 的时候,我们会用到using的条件,比如批量的录入等。
CALL TRANSACTION ta { [AND SKIP FIRST SCREEN] 
                    | [USING bdc_tab [bdc_options]] }. 

先看例子:
CALL TRANSACTION 'FD01' USING bdc_tab [bdc_options]. 
继续深入:
CALL TRANSACTION 'FD01' USING IT_DATA MODE 'N' UPDATE 'S' MESSAGE INTO IT_MSG.
上例说明,调用了T-Code FD01,执行这个tcode所用的数据来自内表IT_DATA,mode参数使用'N',说明使用tcode的时候不显示该tcode屏幕,update参数使用'S',说明同步执行更新,最后执行成功与否的message,会插入内表中。




1. 参数
CALL TRANSACTION - bdc_options

Syntax
... { {[MODE mode] [UPDATE upd]}
    | [OPTIONS FROM opt] }
    [MESSAGES INTO itab] ... .

Extras:
1. ... MODE mode

2. ... UPDATE upd

3. ... OPTIONS FROM opt

4. ... MESSAGES INTO itab

说明:1。 上面第三个代表1和2的集合,不能和第一,第二个放在一起执行。
2。 关于执行之后的subrc,如果等于0,执行成功,小于1000,执行这个tcode有错误,等于1001,说明批量录入的数据有问题〉。。
3。 学习sap,和其他一起,多看F1,有点像学习java的时候常看的标准...






下面是转的.
CALL TRANSACTION 'tcode' USING bdc_tab ... 是 ABAP 里提供的一个方便的执行批量输入的语句,使用它可以通过程序代码完成多个事务码的连续执行。

bdc_tab 这个批输入任务表的填写方式,网上有很多例子了,大家用到的时候可以搜索。用事务码 SHDB 可以生成填写这个表的内容,按照 ABAP 字典结构类型 BDCDATA 的定义对应填写就可以了。

下面详细介绍一下这种调用方式中的执行参数:

... { {[MODE mode] [UPDATE upd]}
    | [OPTIONS FROM opt] }
    [MESSAGES INTO itab] ... .



MODE 确定批输入的执行模式,有下面几个可选值:

执行模式   作用
"A" 显示所有输入屏幕,如果在 bdc_tab 中包含该屏幕的功能码,则会出现小窗口显示这个功能码。它也是默认值,如果指定不是下面的值,则都认为是 A。
"E" 只有在出现错误时才显示屏幕,用户可以修正数据,修正后程序可以继续处理。
"N" 不显示屏幕的静默模式。如果到达被调用事务的断点,则系统处理终止,并设置一些系统字段。sy-subrc 为 1001,sy-msgty 为 "S"、sy-msgid 为 "00"、sy-msgno 为 "344"、sy-msgv1 为 "SAPMSSY3"、sy-msgv2 为 "0131"。
"P" 不显示屏幕的调试模式。如果到达被调用事务的断点,则系统自动转到 ABAP 调试器,这种方式主要用于调试过程。




UPDATE 确定批输入的更新模式,有下面几个可选值:

更新模式 作用
"A" 异步更新。被调用程序的更新按照没有指定 COMMIT WORK 语句和 AND WAIT 附加的方式执行。也就是说,数据更新被放到更新队列里,由另一个专门的更新进程执行,主程序一旦提交数据就继续执行,而不管提交的更新是否执行完成。这种方式比较适合于用一个事务码大量更新指定数据,比如维护主数据等。
"S" 同步更新。被调用程序的更新按照指定了 COMMIT WORK 语句和 AND WAIT 附加的方式执行。也就是说,数据更新被放到更新队列里,由专门的更新进程执行,但是主程序会等到数据提交完成,返回结果信息后才继续执行。这种方式比较适合于数据一致性要求比较高,多个不同事务码的连续处理。
"L" 本地更新。被调用程序的更新按照执行 SET UPDATE TASK LOCAL 语句的方式执行。也就是说,数据更新在主程序所在的进程中完成,主程序必定等到被调用事务完成才继续执行。




OPTIONS FROM opt 则用一个参考 ABAP 字典中结构类型 CTU_PARAMS 的结构数据对象来传递参数,CTU_PARAMS 结构包含了 MODE 和 UPDATE 两个参数,并且还包含其它参数,结构如下:

DISMODE:显示模式,其值对应于前面介绍的 MODE 参数;
UPDMODE:更新模式,其值对应于前面介绍的 UPDATE 参数;
CATTMODE:CATT 模式,有三个值:" "、非 CATT 模式;"N"、CATT 模式但不对每个屏幕进行控制;"A"、CATT 模式并对每个屏幕进行控制;
DEFSIZE:是否使用屏幕的定义大小,有两个值:" "、不使用屏幕定义大小,即显示给用户的屏幕跟普通运行时一样,根据用户窗口大小而自动扩展到全屏;"X"、使用屏幕定义大小,即只用源程序中固定的屏幕大小,无论用户窗口如何;
RACOMMIT:英文原文(CALL TRANSACTION USING... is not completed by COMMIT),德文原文(COMMIT WORK ist kein Ende bei CALL TRANSACTION USING...),没看明白;
NOBINPT:调用事务码时,系统字段 sy-binpt 的值,有两个值:" "、在被调用事务执行时,系统字段 sy-binpt 的值为 "X";:"X"、在被调用事务执行时,系统字段 sy-binpt 的值为 " ";
NOBIEND:调用事务码完成后,系统字段 sy-binpt 的值,有两个值:" "、在被调用事务执行后,系统字段 sy-binpt 的值为 "X";:"X"、在被调用事务执行后,系统字段 sy-binpt 的值为 " "。

最后一个 MESSAGE INTO itab 是把执行过程中的消息都输入到内表 itab 中,itab 的结构必须是 ABAP 字典中结构 BDCMSGCOLL。
分享到:
评论

相关推荐

    CALL TRANSACTION USING... 参数祥解

    CALL TRANSACTION USING 参数详解 CALL TRANSACTION USING 语句是 ABAP 中提供的一个方便的执行批量输入的语句,使用它可以通过程序代码完成多个事务码的连续执行。BDC_TAB 是批输入任务表,网上有很多例子了,大家...

    ABAP系统变量

    3. sy-binpt (c, 1):在批处理输入会话中设置为“X”,在 ABAP 程序中调用 using CALL TRANSACTION USING。否则就是初始值。 4. sy-calld (c, 1):在一个调用序列中的第一个程序里为空字符串,否则为值“X”。在...

    微软内部资料-SQL性能优化3

    For example, suppose a transaction scanned a page using an S lock and then subsequently decided to perform a row level update. The row would obtain an X lock, but now the page would require an IX ...

    RFC10xx 内容,分析与详解

    RFC1027 - Using ARP to Implement Transparent Subnet Gateways RFC1028 - A Simple Gateway Monitoring Protocol RFC1029 - A MORE FAULT TOLERANT APPROACH TO ADDRESS RESOLUTION FOR RFC1030 - On Testing ...

    51SAP_ECC_ABAP_Unit 10-BDC .ppt

    其次,在处理批导入时,将准备好的数据组织成内表"BDCData",然后使用CALL TRANSACTION命令提交批导入,重复执行预设的操作。 BDC的执行方式有三种: 1. 前台(A)执行:在用户界面进行,可以实时查看结果,适合...

    CAMEL - Intelligent Networks for GSM, GPRS, UMTS Networks

    2.11 Using Signalling Point Code for Addressing in HPLMN 35 3 CAMEL Phase 1 37 3.1 Architecture for CAMEL Phase 1 37 3.1.1 Functional Entities 37 3.1.2 Information Flows 42 3.2 Feature Description 45 ...

    cli guide and Reference

    ### CLI (Call Level Interface) ... Understanding the basics of initialization, transaction processing, and SQL statement execution is crucial for effectively using DB2 CLI in application development.

    python django事务transaction源码分析详解

    在源码中,`transaction.atomic`方法首先检查`using`参数,如果它是一个可调用对象,那么它会被视为装饰器。否则,它会返回一个`Atomic`实例,用于作为上下文管理器。`Atomic`类继承自`ContextDecorator`,实现了`__...

    ABAP的系统字段,供参考

    - **说明**:当处理批处理输入会话或通过`CALL TRANSACTION USING`调用ABAP程序时,该字段会被设置为`"X"`。否则,它将保持初始值。这有助于确定当前处理的上下文。 ##### 4. `sy-calld` - **类型**:`C(1)` - **...

    Oracle DDL,DML,DCL,TCL 基础概念

    - 示例:`MERGE INTO employees USING (SELECT 101 AS id, '李四' AS name FROM dual) src ON (employees.id = src.id) WHEN MATCHED THEN UPDATE SET employees.name = src.name WHEN NOT MATCHED THEN INSERT (id...

    SAP_BDC_举例讲解

    3. 填完 bdcdata 以后,用 call transaction ‘XXXX’ using bdc…… 这个命令来真正的 commit 动作或者 call function 'BDC_INSERT' 在建立一个 session。 4. 并把执行的结果返回给 messtab 这个 Internal Table ...

    Genero BDL HB 2.0 简体中文版

    - **TRANSACTION**:确保一系列操作要么全部成功,要么全部失败。 - **EXECUTE**:批量执行SQL命令。 - **PUT...FLUSH**:批量插入数据。 ### 第九章:ARRAY的应用 #### ARRAY(数组) - 数组是存储相同类型数据的...

    SAP BDC技术 录屏

    调用事务码`MM02`并提交变更(`call transaction MM02 using BDC commit`). 3. 调用`BDC_Insert`函数模块,执行批量数据处理。 3. **数据验证**:确保所有数据均正确无误地被录入或更新。 #### 五、BDC技术的具体...

    Artech House - SMS and MMS Interworking in Mobile Networks

    1.5.2 Making a Telephone Call to a Mobile 22 1.6 GPRS Procedures: The Gc Interface 23 1.7 SMS Billing Records and Methods 23 1.7.1 SMS-MO CDRs 25 1.7.2 SMS-MT CDRs 26 1.8 Load Test of an SMSC 26 1.8.1...

    ORACLE数据库教程-SQL使用讲解.ppt

    - `CREATE TABLE table_name(Column1 datatype [default][not null] [primary key],[………,][constraint key_name primary key(column_list) [using index tablespace tablespace_name]])[tablespace tablespace_...

    实战SAP程序开发——从实例学SAP.ABAP编程1-12

    通过CALL TRANSACTION USING和REUSE_ALV_GRID_DISPLAY等函数调用来使用ALV,开发者可以自定义列头、排序、过滤等特性,为用户提供直观的数据查看和编辑功能。 5. **屏幕(Screens)**:在SAP GUI中,屏幕是用户与...

    ABAP最详细的开发规范

    - BTE (Business Transaction Event) 用于处理业务交易事件。 - 示例:特定的BTE增强实现。 #### 程序性能相关代码规范 **10.1 SQL语句** - 优化SQL查询,避免不必要的数据加载。 - 示例:使用索引、减少JOIN操作...

    mysql数据库的基本操作语法

    开始事务**: `START TRANSACTION;` **2. 提交事务**: `COMMIT;` **3. 回滚事务**: `ROLLBACK;` **4. 设置自动提交**: `SET AUTOCOMMIT 1 | 0;` #### 九、其他操作 **1. 注释** - **单行注释**: `#` 或 `--` - *...

Global site tag (gtag.js) - Google Analytics