BDC(Batch Data Conversion):在SAP系统里,由于某种原因,可能需要重复输入数据,(数据不同,但是操作是相同的,典型的情形就是切换系统的时候,旧系统的数据需要导入SAP),大致过程不外乎是这样: 输入一个t-code,
进入一个某个屏幕,然后输入一个值(有时还要加上一些附加的checkbox选项等),点执行或者确定按钮,
进入另一个屏幕,在某些字段输入值(也可能是标注checkbox选中或者不选中)或者修改这些字段里的值。

MODE 确定批输入的执行模式,有下面几个可选值:(执行模式常用的是A N)

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 更新模式,有下列可选值(更新模式常用的是S):

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

以消息举例,SE91 查看消息内容,消息类通常为 msgid ,消息编号为 msgnr

BDC里的部分 OKCODE

BDC OKCODE其实都是function code,对于处理一些BDC问题 非常有用,列出一些知道的 OKCODE

BDC_OKCODE 功能描述
=/00.  Enter
= /8  F8,Continue or Execute
=/11  F11,Post
=ENTE  回车
=SCHL  组织层次
=BILD   数据
=SELA   全选
=RESA  取消全选
=DEF/DEF_SAVE   保存
=P--   First Page
=P-    Previous Page
=P+   Next Page
=P++  Last Page
=AUSW  Select view
=MARK  Selection On/off
=ABBR/RW  删除
 =BU  保存
 =ENDE/%EX   Exit
=BACK/RW Back
=PICK Pick
=DLT Delete
=UPDA SAVE
=%PRI Print
=%SC Search
=%SC+ Find next
=FCNP 新插入一行item(像BOM的item那种)
=GO Continue
=/AB Go to overview
=ZK Go to additional information
=PI select cursor location
=STER Go to taxes

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

例:

 DATA : gc_mode   LIKE apqi-putactive VALUE 'N',gc_update LIKE apqi-putactive VALUE 'S'.  CALL TRANSACTION 'PA30' USING it_bdcdataMODE gc_modeUPDATE gc_updateMESSAGES INTO it_bdcmsg.*&---错误消息处理DATA:e_mess(50).CLEAR:e_mess.
*    LOOP AT i_messtab WHERE msgtyp = 'E' OR msgtyp = 'A'.LOOP AT it_bdcmsg INTO is_bdcmsg.CALL FUNCTION 'MESSAGE_TEXT_BUILD'EXPORTINGmsgid               = is_bdcmsg-msgidmsgnr               = is_bdcmsg-msgnrmsgv1               = is_bdcmsg-msgv1msgv2               = is_bdcmsg-msgv2msgv3               = is_bdcmsg-msgv3msgv4               = is_bdcmsg-msgv4IMPORTINGmessage_text_output = e_mess.MESSAGE e_mess TYPE 'S'.ENDLOOP.

BDC模式与OKCODE、 CALL TRANSACTION用法相关推荐

  1. CALL TRANSACTION用法

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

  2. 模式窗口window.showModalDialog()的用法

    模式窗口的用法 一.问题: 我想弹出一个窗口,然后在弹出的窗口里,选择或输入一些信息,要求这些信息返回到父页面. 建立父页面:a.htm <html> <head>     & ...

  3. mysql transaction用法,mysql的事务,隔离级别和锁用法实例分析

    本文实例讲述了mysql的事务,隔离级别和锁用法.分享给大家供大家参考,具体如下: 事务就是一组一起成功或一起失败的sql语句.事务还应该具备,原子性,一致性,隔离性和持久性. 一.事务的基本要素 ( ...

  4. 工厂模式 — 在项目中的用法

    很多工程都是有pc端和mobile端的,并且这里的mobile端并不是指移动端适应的效果,而是专门为mobile端编写的. 所以这样一个页面就会用到两套页面代码(pc端和mobile端),例如imoo ...

  5. 【干货】Redis在Java开发中的基本使用和巧妙用法

    Redis是一款高性能的内存数据结构存储系统,能够支持多种数据结构类型,如字符串.哈希.列表.集合.有序集合等,也能够支持高级功能,如事务.发布/订阅.Lua脚本等,具有高可用性.高并发性和可扩展性的 ...

  6. mysql事务处理用法与实例详解

    MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berkeley DB: ...

  7. 模板模式(TemplateMethod)和策略(StrategyMethod)模式

    2019独角兽企业重金招聘Python工程师标准>>> 模板模式和 策略模式使用场景类似,都是把算法进行封装,可以用分离高层算法和低层的具体实现细节.都允许高层算法独立于他的具体实现 ...

  8. 设计模式学习笔记——命令模式(Command)

    1.特点:将请求发送者与具体实现者解耦,可对请求排列.取消.重做,支持事务.(多请求,单处理) 2.概念:属于对象的行为模式[GOF95].命令模式又称为行动(Action)模式或交易(Transac ...

  9. mts模式_MTS的完整形式是什么?

    mts模式 MTS:Microsoft Transaction Server /移动电话服务/多通道电视声音 (MTS: Microsoft Transaction Server/ Mobile Te ...

  10. 简单工厂和策略模式结合

    商场促销活动:打折.满额返现等等 主函数对工厂模式和策略模式结合的调用: class Program     {         static void Main(string[] args)     ...

最新文章

  1. 知识图谱前沿跟进,看这篇就够了,Philip S. Yu 团队发布权威综述,六大开放问题函待解决!...
  2. ant 改变表格数据_学不会这几个操作,面试时千万别说自己精通数据分析
  3. 基于licode搭建webrtc服务器
  4. MybatisPlus实现逻辑删除
  5. (开源)XMind2TestCase一个高效的测试用例设计解决方案
  6. [转载] java构造函数初始化与执行顺序问题
  7. 3dmax2016的破解和安装
  8. 连接型CRM与社交型CRM、传统漏斗型CRM有什么区别?
  9. LaTeX代码: 下划线与删除线 ← 利用 ulem 宏包
  10. 关于ARP请求报文和ARP报文的源地址和目的地址
  11. sis最新ip地址2020入口一_2020云南高考成绩公布时间最新 云南高考查成绩方式入口大全...
  12. windows操作系统---1
  13. viso画图时如何让右侧显示设置形状格式栏
  14. AutoCAD Civil 3D-曲面-1、曲面创建
  15. 光纤网卡千兆和万兆、光口和电口之间的区别?与PC网卡、HBA卡的区别有哪些?
  16. XJOI 3679 一道有趣的题 求解求解
  17. 【渝粤题库】广东开放大学 电子商务职业技能 形成性考核
  18. 自我管理的29个工具
  19. 前所未有灾难性事件!韩国数据中心锂电池着火致互联网大瘫痪!
  20. SylixOS 共用中断号机制

热门文章

  1. SSH Remote forwarding的示例
  2. mysql最后一步装不上_mysql安装最后一步 安装不上
  3. python中从键盘输入的代码_Python中如何获取键盘输入
  4. 黑暗城堡 LibreOJ - 10064(SPFA)
  5. iPhone/iPad用iTunes“同步”不等于“备份”
  6. 关于OSGI中的Felix热插拔技术
  7. iOS 11 NSPhotoLibraryAddUsageDescription 错误的解决办法
  8. MySQL究竟是如何做到持久性的?
  9. LeetCode——1900. 最佳运动员的比拼回合(The Earliest and Latest Rounds Where Players Compete)[困难]——分析及代码(Java)
  10. 想成为挣钱的游戏程序员要经历多少阶段?