设为首页 收藏本站
查看: 1211|回复: 0

[经验分享] SAP data migration: Create billing plan for sales

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-20 13:18:39 | 显示全部楼层 |阅读模式
  引用:翱翔云天
    report ZUP2
       no standard page heading line-size 255.
  
  
  *include bdcrecx1.
parameters: dataset LIKE RLGRAP-FILENAME.
PARAMETERS: P_MODE LIKE CTU_PARAMS-DISMODE DEFAULT 'E'.
*       Batchinputdata of single transaction
DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
*       messages of call transaction
DATA:   MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
*
*** Generated data section with specific formatting - DO NOT CHANGE  ***
data: begin of record,
        VBELN(030),
        POSNR(006),
        MLBEZ(005),
        WAERS(005),
        FAKSP(002),
        FAREG(001),
        FKSAF(001),
        FPTTP(002),
        FKARV(004),
        MLSTN(012),
        FPFIX(001),
        AFDAT(010),
        FPROZ(010),
        FAKWR(025),
      end of record.
DATA: ITAB LIKE STANDARD TABLE OF RECORD WITH HEADER LINE.
DATA: TEMP LIKE STANDARD TABLE OF RECORD WITH HEADER LINE.
*** End generated data section ***
start-of-selection.
perform UPLOAD_FILE.
CHECK NOT ITAB[] IS INITIAL.
SORT ITAB BY VBELN POSNR.
LOOP AT ITAB .
  RECORD = ITAB.
  TEMP = RECORD.
  APPEND TEMP.
* The first sales document, step into the first screen
  AT NEW VBELN.
    perform bdc_dynpro      using 'SAPMV45A' '0102'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAK-VBELN'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'VBAK-VBELN'
                                  record-VBELN.
  ENDAT.
* A new item input, follow the second screen
  AT END OF POSNR.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=POPO'.
    perform bdc_dynpro      using 'SAPMV45A' '0251'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-POSNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=POSI'.
    perform bdc_field       using 'RV45A-POSNR'
                                  RECORD-POSNR.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ITEM'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-POSNR(01)'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\05'.
*   Process the billing plan
    LOOP AT TEMP.
      perform bdc_dynpro      using 'SAPLV60F' '4001'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=ANLE'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'FPLT-AFDAT(02)'.
      perform bdc_field       using 'FPLT-AFDAT(02)'
                                    TEMP-AFDAT.
      perform bdc_field       using 'FPLT-MLBEZ(02)'
                                    TEMP-MLBEZ.
*      perform bdc_field       using 'FPLT-WAERS(02)'
*                                    TEMP-WAERS.
      perform bdc_field       using 'FPLT-FAKSP(02)'
                                    TEMP-FAKSP.
      perform bdc_field       using 'FPLT-FAREG(02)'
                                    TEMP-FAREG.
*      perform bdc_field       using 'FPLT-FKSAF(02)'
*                                    TEMP-FKSAF.
      perform bdc_field       using 'FPLT-FPTTP(02)'
                                    TEMP-FPTTP.
      perform bdc_field       using 'FPLT-FKARV(02)'
                                    TEMP-FKARV.
*      perform bdc_field       using 'FPLT-MLSTN(02)'
*                                    TEMP-MLSTN.
      perform bdc_field       using 'FPLT-FPFIX(02)'
                                    TEMP-FPFIX.
      perform bdc_field       using 'FPLT-FPROZ(02)'
                                    TEMP-FPROZ.
      perform bdc_field       using 'FPLT-FAKWR(02)'
                                    TEMP-FAKWR.
    ENDLOOP.
*   Leave to item screen
    perform bdc_dynpro      using 'SAPLV60F' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\01'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    CLEAR: TEMP,TEMP[].
  ENDAT.
* A sales docu end, save the changes
  AT END OF VBELN.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SICH'.
    perform bdc_dynpro      using 'SAPLSPO2' '0101'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=OPT1'.
    CALL TRANSACTION 'VA02' USING BDCDATA
                     MODE   P_MODE
                     UPDATE 'S'
                     MESSAGES INTO MESSTAB.
    read table messtab with key MSGTYP = 'E'.
    IF SY-SUBRC = 0.
      WRITE: / record-VBELN.
    ENDIF.
    CLEAR: BDCDATA,BDCDATA[].
  ENDAT.
ENDLOOP.
*&---------------------------------------------------------------------*
*&      Form  UPLOAD_FILE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_DATASET  text
*----------------------------------------------------------------------*
FORM UPLOAD_FILE.
  CALL FUNCTION 'WS_UPLOAD'
   EXPORTING
     FILENAME                      = DATASET
     FILETYPE                      = 'DAT'
    TABLES
      DATA_TAB                      = ITAB
   EXCEPTIONS
     CONVERSION_ERROR              = 1
     FILE_OPEN_ERROR               = 2
     FILE_READ_ERROR               = 3
     INVALID_TYPE                  = 4
     NO_BATCH                      = 5
     UNKNOWN_ERROR                 = 6
     INVALID_TABLE_WIDTH           = 7
     GUI_REFUSE_FILETRANSFER       = 8
     CUSTOMER_ERROR                = 9
     OTHERS                        = 10
            .
ENDFORM.                    " UPLOAD_FILE
*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  = PROGRAM.
  BDCDATA-DYNPRO   = DYNPRO.
  BDCDATA-DYNBEGIN = 'X'.
  APPEND BDCDATA.
ENDFORM.
*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
  IF FVAL <> SPACE.
    CLEAR BDCDATA.
    BDCDATA-FNAM = FNAM.
    BDCDATA-FVAL = FVAL.
    APPEND BDCDATA.
  ENDIF.
ENDFORM.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-116271-1-1.html 上篇帖子: [SAP ABAP开发技术总结]EXIT-COMMAND 下篇帖子: [SAP ABAP开发技术总结]字段符号FIELD-SYMBOLS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表