LSMW/eCATT/BDC

LSMW
Legacy System Migration Workbench (T-code: LSMW)

      LSMW, 是SAP推荐用来从旧的系统或非SAP系统把大批量或周期性的数据迁移到SAP的主力工具,类似于eCATT/sCATT,其优点可以在一个Session中处理大批量数据,并灵活易学易用。如果用BDC和eCATT只能根据定制好的画面输入参数。一旦没有这个值系统就会报错。比喻我们根据业务对FI Account Document或者主数据一些参数作了扩展,一旦参数缺失或者不匹配,不得不终止Session,通过SM35手动去更正或者重新录屏。LSMW具有一般的通用性,他导入模板的设计过程包括15个步骤,每个都是独立的单元并可进行单独的更新和修改,而不影响其它的模块只需作一些调整作出相应mapping,将必要的数据指定对应的字段就可行了,无需额外的编码。
      当然,LSMW局限在于只能导入固定类型的主数据,如Customer/Vendor Master,Material Master,Financial Document, G/L Account。如果是自定义的ABAP程序来导入主数据就行不通了。同样做了一个FI Account Document的例子,对出现重复的统计的Line Item时显得也不是特别得心应手。

 

eCATT
extended Computer Aided Test Tool(T-code:SECATT)

      eCATT是SAP自带的功能测试工具,主要目标用来作SAP业务流程的自动化测试,每个测试都会生成一个详细的日志来显示测试流程和测试结果。和CATT相比,CATT操作简单,类似于BDC的录屏功能,用于常用的简单业务数据导入,基本已被eCATT完全取代。除了CATT功能之后,eCATT主要应用于基于GUI Windows/Gui Java自动化测试,同时也为外部工具提供了第三方接口(获BC-eCATT授权)。所有的测试脚本,无能是eCATT自已生成的还是外部工具的他们都应该具有相同的数据对象类型,与SAP结合在一起并保存在相同的位置。在R/3的功能测试中,eCATT录屏功能简单实用,测试脚本、测试数据、系统数据分别存放,可重复使用,并附有详细测试报告以及纠错功能,作为自带工具简单实用。对于WEB方面的测试的话就要借用第三方的测试软件,如知名的Mercury的QTP。

 

BDC

Batch Data Conversion (T-code: SHDB)

BDC同样是通过SHDB把用户一次性的业务操作记录全部记录下,然后供用户使用。开发人员可以生成程序构建数据源。只要存在重复的业务操作,自然会想到BDC录屏。

 

实事上无论上面几种可供重复业务操作的技术,每次只能根据录屏的定制,作为开发人员只要在项目的前期分析明确,下面的SAP自带程序其灵活性比BDC来得更为直接。例如创建FI Account Document:

1, RFBIBL00

 submit rfbibl00 and   return
                  with  ds_name  = v_bdcfile
                  with  fl_check = space
                  with  os_xon   = space
                  with  callmode =  lv_mode
                  with  max_comm = '1000'
                  with  pa_xprot = space
                  with  xlog     = 'X'. " xpop/xlog/xinf

  if lv_mode = 'B' and sy-batch = 'X'.
    submit  rsbdcsub with mappe  = c_sessn
                     with von    = sy-datum
                     with bis    = sy-datum
                     with fehler = space
                     and return.
  endif.

 

2,POSTING_INTERFACE_DOCUMENT

  call function 'POSTING_INTERFACE_DOCUMENT'
    exporting
      i_tcode  = 'FB01'
    importing
      e_subrc  = lv_subrc
      e_msgid  = lv_msgid
      e_msgty  = lv_msgty
      e_msgno  = lv_msgno
      e_msgv1  = lv_msgv1
      e_msgv2  = lv_msgv2
      e_msgv3  = lv_msgv3
      e_msgv4  = lv_msgv4
    tables
      t_ftpost =  it_ftpost
      t_fttax   =  it_fttax
      t_blntab =  it_xblntab
    exceptions
      others   = 1.

  call function 'FORMAT_MESSAGE'
    exporting
      id        = lv_msgid
      lang      = sy-langu
      no        = lv_msgno
      v1        = lv_msgv1
      v2        = lv_msgv2
      v3        = lv_msgv3
      v4        = lv_msgv4
    importing
      msg       = lv_msg
    exceptions
      not_found = 1
      others    = 2.

*   Posting successfully
    if sy-subrc = 0 and lv_msgty = 'S'.
      it_success_list-docno        = lv_msgv1.
      it_success_list-message     = lv_msg.
      append it_success_list.
*   Failed Posting
    elseif  not lv_msgty is initial .
      it_error_list-message    =  lv_msg.
      append it_error_list.
    endif.

  refresh:  it_ftpost,
              it_fttax,
              it_xblntab.

POSTING_INTERFACE_START用于FI FM的开始,可以设置Session名称

POSTING_INTERFACE_END 提交FI FM,遇错则可以通过SM35纠正。

 

3 IDOC

通过配制ALE运用SAP自带的生成IDOC数据的FM也可实现

 call function 'IDOC_CREATE_ON_DATABASE'
      exporting
        idoc_status                 = wa_edids
        error_occured             = l_error_occured
      tables
        idoc_data                    = it_edidd
      changing
        idoc_control               = wa_edidc
      exceptions
        idoc_input_inconsistent   = 1
        others                           = 2 .

实事上LSMW与RFBIBL00, BDC与POSTING_INTERFACE_DOCUMENT如果看其实现代码,你会发现他们是相似的。当然,写这样的代码大部分时间主要是花费在数据转换上面。

FWOS_CURRENCY_DECIMALS_READ: 货币的小数点位数确认

CONVERT_DATE_TO_EXTERNAL:           转换成外部日期格式

USR01-DCPFM:                                       用户数据小数点(英文句号/逗号)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值