Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7203078
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2007-08-24 14:27:10

REPORT z_scm_nacr_bdc .
INCLUDE bdcrecx1.
TABLES: b999,zscm_worktime.
DATA: BEGIN OF itab OCCURS 0 ,
        lifnr LIKE lfa1-lifnr,
      END OF itab.
DATA: BEGIN OF itab_log OCCURS 0,
        message(132) TYPE c,
      END OF itab_log.
DATA: day LIKE sy-datum.
PARAMETERS: p_mode LIKE ctu_params-dismode DEFAULT 'E' ,
            pri_all AS CHECKBOX . "全部打印
START-OF-SELECTION.
  PERFORM getdata.
  PERFORM bdc.
*---------------------------------------------------------------------*
*       FORM getdata                                                  *
*---------------------------------------------------------------------*
FORM getdata.
  day = sy-datum - 9 .
  SELECT lifnr INTO TABLE itab FROM zscmvendor
  WHERE date_from <= day AND
        date_to   >= sy-datum .
ENDFORM.
*---------------------------------------------------------------------*
*       FORM bdc                                                      *
*---------------------------------------------------------------------*
FORM bdc .
  PERFORM open_group.
  REFRESH bdcdata .
  CLEAR bdcdata .
  PERFORM bdc_dynpro  USING 'SAPMV13B'   '0100'.
  PERFORM bdc_field   USING 'BDC_CURSOR' 'RV130-KAPPL'.
  PERFORM bdc_field   USING 'BDC_OKCODE' '=ANTA'.
  PERFORM bdc_field   USING 'RV130-KAPPL' 'EF'.
  PERFORM bdc_field   USING 'RV13B-KSCHL' 'NEU'.
  PERFORM bdc_dynpro  USING 'SAPLV14A'   '0100'.
  PERFORM bdc_field   USING 'BDC_CURSOR' 'RV130-SELKZ(01)'.
  PERFORM bdc_field   USING 'BDC_OKCODE' '=WEIT'.
  PERFORM bdc_dynpro  USING 'RV13B999'   '1000'.
  PERFORM bdc_field   USING 'F001-LOW'   ''.
  PERFORM bdc_field   USING 'BDC_OKCODE' '=ONLI'.
  PERFORM bdc_dynpro  USING 'SAPMV13B'   '1999'.
  PERFORM bdc_field   USING 'BDC_OKCODE' '=MARL'.
  PERFORM bdc_dynpro  USING 'SAPMV13B'   '1999'.
  PERFORM bdc_field   USING 'BDC_OKCODE' '=ENTF'.
  PERFORM bdc_dynpro  USING 'SAPMV13B'   '1999'.
  PERFORM bdc_field   USING 'BDC_OKCODE' '=SICH'.
  SELECT SINGLE * FROM b999 .
  IF sy-subrc = 0.
    PERFORM bdc_transaction USING 'NACR'.
  ENDIF.
  CHECK NOT itab[] IS INITIAL.
  REFRESH bdcdata .
  CLEAR bdcdata .
  PERFORM bdc_dynpro  USING 'SAPMV13B'   '0100'.
  PERFORM bdc_field   USING 'BDC_CURSOR' 'RV130-KAPPL'.
  PERFORM bdc_field   USING 'BDC_OKCODE' '=ANTA'.
  PERFORM bdc_field   USING 'RV130-KAPPL' 'EF'.
  PERFORM bdc_field   USING 'RV13B-KSCHL' 'NEU'.
  PERFORM bdc_dynpro  USING 'SAPLV14A'   '0100'.
  PERFORM bdc_field   USING 'BDC_CURSOR' 'RV130-SELKZ(01)'.
  PERFORM bdc_field   USING 'BDC_OKCODE' '=WEIT'.
  PERFORM bdc_dynpro  USING 'RV13B999'   '1000'.
  PERFORM bdc_field   USING 'F001-LOW'   ''.
  PERFORM bdc_field   USING 'BDC_OKCODE' '=ONLI'.
  LOOP AT itab .
    PERFORM bdc_dynpro  USING 'SAPMV13B'     '1999'.
    PERFORM bdc_field   USING 'BDC_CURSOR'   'NACH-SPRAS(02)'.
    PERFORM bdc_field   USING 'BDC_OKCODE'   '/00'.
    PERFORM bdc_field   USING 'KOMB-LIFNR(02)'  itab-lifnr  .
    PERFORM bdc_field   USING 'NACH-PARVW(02)'  'VN'.
    PERFORM bdc_field   USING 'NACH-NACHA(02)'  '1'.
    PERFORM bdc_field   USING 'NACH-VSZTP(02)'  '3'.
    PERFORM bdc_field   USING 'NACH-SPRAS(02)'  'ZH'.
    PERFORM bdc_dynpro  USING 'SAPMV13B'   '1999'.
    PERFORM bdc_field   USING 'BDC_OKCODE'   '=NEWP'.
    PERFORM bdc_dynpro  USING 'SAPMV13B'   '1999'.
    PERFORM bdc_field   USING 'BDC_CURSOR'   'KOMB-LIFNR(01)'.
    PERFORM bdc_field   USING 'BDC_OKCODE'   '=KOMM'.
    PERFORM bdc_dynpro  USING 'SAPMV13B'   '0211'.
    PERFORM bdc_field   USING 'BDC_OKCODE'   '=BACK'.
    PERFORM bdc_field   USING 'NACH-LDEST'   'SAPLPD'.
    PERFORM bdc_field   USING 'NACH-DIMME'   'X'.
    PERFORM bdc_field   USING 'NACH-DELET'   'X'.
  ENDLOOP.
  PERFORM bdc_dynpro  USING 'SAPMV13B'   '1999'.
  PERFORM bdc_field   USING 'BDC_OKCODE'   '=SICH'.
  SELECT SINGLE * FROM zscm_worktime WHERE name = 'SCM'   AND
                                           date_from <= sy-datum AND
                                           date_end  >= sy-datum .
  IF sy-subrc = 0 AND pri_all = '' .  " 只有当SCM工作正常时才填入
    PERFORM bdc_transaction USING 'NACR'.
  ENDIF.
  PERFORM close_group.
ENDFORM.                    " bdc
 
*************************
相对于直接Call Trancaction的方法,只要前后各加一个函数,然后把Call Trancaction换成PERFORM bdc_transaction即可
 
Text symbols可以在程序ROCMBIRECORD中COPY
 
E00 Error opening dataset, return code:
I01 Session name
I02 Open session
I03 Insert transaction
I04 Close session
I05 Rtrn code =
I06 Error session created
S01 Session name
S02 User
S03 Keep session
S04 Lock date
S05 Processing mode
S06 Update session
S07 Generate session
S08 Call transaction
S09 Error sessn
S10 Nodata indicator
 
阅读(5003) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~