0% found this document useful (0 votes)
30 views3 pages

Me 51

This document describes a program that uses BDC calls to populate purchase order requisition data from an uploaded file into SAP. It loops through the uploaded data, calls the necessary dynpro screens and populates the fields to automatically generate purchase orders.

Uploaded by

Suresh Katam
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views3 pages

Me 51

This document describes a program that uses BDC calls to populate purchase order requisition data from an uploaded file into SAP. It loops through the uploaded data, calls the necessary dynpro screens and populates the fields to automatically generate purchase orders.

Uploaded by

Suresh Katam
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

*-----------------------------------------------------------------------------*& Program Name : YBDC *& Author : Sarves Sombhatla *& Date : 07/02/2009 *& Description : BDC table

control using the new line button on the GUI status *-----------------------------------------------------------------------------REPORT ybdc. *" Type declarations................................................... TYPES: BEGIN OF type_s_purord, state(1) TYPE c, knttp TYPE eban-knttp, eeind TYPE d, werks TYPE eban-werks, ekgrp TYPE eban-ekgrp, txz01 TYPE eban-txz01, menge TYPE eban-menge, meins TYPE eban-meins, matkl TYPE eban-matkl, preis TYPE eban-preis, kostl TYPE cobl-kostl, END OF type_s_purord. *" Data declarations................................................... DATA: fs_purord TYPE type_s_purord. DATA: fs_bdcdata TYPE bdcdata. DATA: w_line TYPE i VALUE 1, " Line Counter w_num(2) TYPE n, " Numeric w_loop(2) TYPE n, " Total number of Items w_var(20) TYPE c, " Variable Character w_date TYPE char10. " Date Variable * Internal table to hold data of Purchase Order Requisition DATA: t_purord LIKE STANDARD TABLE OF fs_purord. * Internal table to hold data of Screen Information DATA: t_bdcdata LIKE STANDARD TABLE OF fs_bdcdata. *START-OF-SELECTION EVENT START-OF-SELECTION. PERFORM upload. PERFORM prcreate. *&---------------------------------------------------------------------* *& Form upload *&---------------------------------------------------------------------* FORM upload . CALL METHOD cl_gui_frontend_services=>gui_upload EXPORTING filename = 'C:\Temp.notepad.txt' has_field_separator = 'X' CHANGING data_tab = t_purord EXCEPTIONS file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 unknown_error = 7 bad_data_format = 8 header_not_allowed = 9 separator_not_allowed = 10 header_too_long = 11 unknown_dp_error = 12 access_denied = 13 dp_out_of_memory = 14 disk_full = 15 dp_timeout = 16 not_supported_by_gui = 17 error_no_gui = 18

OTHERS = 19. IF sy-subrc <> 0. WRITE:/ sy-subrc. ENDIF. ENDFORM. " FORM UPLOAD *&---------------------------------------------------------------------* *& Form PRCREATE *&---------------------------------------------------------------------* FORM prcreate . LOOP AT t_purord INTO fs_purord. IF fs_purord-state = 'H'. ADD 1 TO w_line. CLEAR w_num. PERFORM bdc_dynpro USING 'SAPMM06B' '0100'. PERFORM bdc_field USING 'EBAN-BSART' 'NB'. PERFORM bdc_field USING 'EBAN-KNTTP' fs_purord-knttp. WRITE fs_purord-eeind TO w_date. PERFORM bdc_field USING 'RM06B-EEIND' w_date. PERFORM bdc_field USING 'EBAN-WERKS' fs_purord-werks. PERFORM bdc_field USING 'EBAN-EKGRP' fs_purord-ekgrp. PERFORM bdc_field USING 'EBAN-MATKL' fs_purord-matkl. PERFORM bdc_field USING 'BDC_OKCODE' '=AB'. ENDIF. " IF FS_PURORD-STATE ... IF fs_purord-state = 'I'. w_num = w_num + 01. w_loop = w_loop + 1. IF w_num > 02. w_num = 02. PERFORM bdc_dynpro USING 'SAPMM06B' '0106'. * -------------> The following BDC_OKCODE will allow you to go to the second * line of the table control every time you press it. PERFORM bdc_field USING 'BDC_OKCODE' 'NP'. ENDIF. " IF W_NUM > 02 PERFORM bdc_dynpro USING 'SAPMM06B' '0106'. CONCATENATE 'EBAN-TXZ01' '(' w_num ')' INTO w_var. PERFORM bdc_field USING w_var fs_purord-txz01. CONCATENATE 'EBAN-MENGE' '(' w_num ')' INTO w_var. PERFORM bdc_field USING w_var fs_purord-menge. CONCATENATE 'EBAN-MEINS' '(' w_num ')' INTO w_var. PERFORM bdc_field USING w_var fs_purord-meins. PERFORM bdc_field USING 'BDC_OKCODE' '=KN'. PERFORM bdc_dynpro USING 'SAPMM06B' '0102'. PERFORM bdc_field USING 'EBAN-PREIS' fs_purord-preis. PERFORM bdc_field USING 'BDC_OKCODE' '=KN'. PERFORM bdc_dynpro USING 'SAPMM06B' '0505'. PERFORM bdc_field USING 'BDC_OKCODE' '=KWE'. PERFORM bdc_dynpro USING 'SAPLKACB' '0002'. PERFORM bdc_field USING 'COBL-KOSTL' fs_purord-kostl. PERFORM bdc_field USING 'BDC_OKCODE' '=ENTE'. w_line = w_line + 1. ENDIF. " IF FS_PURORD-STATE ... CLEAR fs_purord. READ TABLE t_purord INTO fs_purord INDEX w_line. IF fs_purord-state = 'H' OR fs_purord-state IS INITIAL. PERFORM bdc_dynpro USING 'SAPMM06B' '0106'. PERFORM bdc_field USING 'BDC_OKCODE' '=MALL'. PERFORM bdc_dynpro USING 'SAPMM06B' '0106'. PERFORM bdc_field USING 'BDC_OKCODE' '=BU'. CALL TRANSACTION 'ME51' USING t_bdcdata MODE 'N'. REFRESH t_bdcdata. ENDIF. " IF FS_PURORD-STATE ... ENDLOOP. " LOOP AT T_PURORD... ENDFORM. " FORM PRCREATE *&---------------------------------------------------------------------* *& Form BDC_DYNPRO *----------------------------------------------------------------------* FORM bdc_dynpro USING value(pv_prog) TYPE any value(pv_dynp) TYPE any. CLEAR fs_bdcdata. fs_bdcdata-program = pv_prog. fs_bdcdata-dynpro = pv_dynp. fs_bdcdata-dynbegin = 'X'. APPEND fs_bdcdata TO t_bdcdata. ENDFORM. " FORM BDC_DYNPRO *&---------------------------------------------------------------------*

*&

Form BDC_FIELD

*----------------------------------------------------------------------* FORM bdc_field USING value(pv_fnam) TYPE any value(pv_fval) TYPE any. CLEAR fs_bdcdata. fs_bdcdata-fnam = pv_fnam. fs_bdcdata-fval = pv_fval. CONDENSE fs_bdcdata-fval. APPEND fs_bdcdata TO t_bdcdata. ENDFORM. " FORM BDC_FIELD

You might also like