0% found this document useful (0 votes)
103 views

MIGO Code

The report loads data from a file into internal tables, uses BAPI calls to create goods movements in SAP, and writes the results to an output file. It reads a source file specified by the user using GUI_UPLOAD, loops through the records to call BAPI_GOODSMVT_CREATE for each, handling errors, and writes the results to a file using GUI_DOWNLOAD.
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
103 views

MIGO Code

The report loads data from a file into internal tables, uses BAPI calls to create goods movements in SAP, and writes the results to an output file. It reads a source file specified by the user using GUI_UPLOAD, loops through the records to call BAPI_GOODSMVT_CREATE for each, handling errors, and writes the results to a file using GUI_DOWNLOAD.
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

*&---------------------------------------------------------------------*

*& Report ZMIGO_CREATE


*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zmigo_create.

CONSTANTS :code TYPE char2 VALUE '01'.

TYPES: BEGIN OF gt_file,


bldat TYPE bldat,
budat TYPE budat,
matnr TYPE matnr,
erfmg TYPE mb_erfmg,
bwart TYPE bwart,
exbwr TYPE exbwr,
werks TYPE werks,
lgobe TYPE lgobe,
END OF gt_file,
gt_t_file TYPE TABLE OF gt_file.

TYPES: BEGIN OF lty_rsult,


MBLNR TYPE MBLNR,
TYPE TYPE BAPI_MTYPE,
MESSAGE TYPE BAPI_MSG,
END OF lty_rsult.

DATA: wa_header TYPE bapi2017_gm_head_01,


gV_Code TYPE bapi2017_gm_code,
i_item TYPE TABLE OF bapi2017_gm_item_create,
wa_item TYPE bapi2017_gm_item_create,
i_ret TYPE TABLE OF bapiret2,
wa_ret TYPE bapiret2,
gt_file TYPE gt_t_file,
gw_file TYPE gt_file,
gt_file_t TYPE TABLE OF lty_rsult,
gw_file_t TYPE lty_rsult,
v_matdoc TYPE BAPI2017_GM_HEAD_RET-MAT_DOC,
v_file TYPE string.

PARAMETERS: p_file TYPE rlgrap-filename.

at SELECTION-SCREEN ON VALUE-REQUEST FOR P_file.


CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_file
.

START-OF-SELECTION.
PERFORM f_get_data_from_file.
PERFORM f_load.
PERFORM f_download.
*&---------------------------------------------------------------------*
*& Form f_get_data_from_file
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM f_get_data_from_file .
CLEAR: v_file.
v_file = p_file.

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
filename = v_file
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
tables
data_tab = gt_file
* CHANGING
* ISSCANPERFORMED = ' '
* 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
* OTHERS = 17
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form f_load
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM f_load .

LOOP AT gt_file INTO gw_file.


CLEAR:v_matdoc,wa_header,wa_item.
REFRESH i_item.
wa_header-pstng_date = gw_file-bldat.
wa_header-doc_date = gw_file-budat.
wa_item-material = gw_file-matnr. "Material
wa_item-plant = gw_file-werks."Plant
wa_item-stge_loc = gw_file-lgobe."Storage Location
wa_item-entry_qnt = gw_file-bwart. "Qty
wa_item-amount_lc = gw_file-exbwr. "Externally entered posting amount in local
currency
wa_item-mvt_ind = ' '.
wa_item-move_type = gw_file-bwart.

APPEND wa_item TO i_item.


CLEAR wa_item.

CALL FUNCTION 'BAPI_GOODSMVT_CREATE'


EXPORTING
goodsmvt_header = wa_header
goodsmvt_code = code
IMPORTING
materialdocument = v_matdoc
TABLES
goodsmvt_item = i_item
return = i_ret.

READ TABLE i_ret INTO wa_ret with key type = 'E'.

IF sy-subrc = 0.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'


* IMPORTING
* RETURN =
.

MOVE-CORRESPONDING gw_file to gw_file_t.


APPEND gw_file_t TO gt_file_t.
CLEAR gw_file_t.
else.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'


EXPORTING
WAIT = 'X'
* IMPORTING
* RETURN =
.
gw_file_t-MBLNR = v_matdoc.
gw_file_t-type = 'S'.
gw_file_t-MESSAGE = 'Success'.
APPEND gw_file_t TO gt_file_t.
CLEAR gw_file_t.
ENDIF.

ENDLOOP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form f_download
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM f_download .

DATA: lv_down TYPE string.


CLEAR:lv_down.
CONCATENATE v_file 'rseult.txt' INTO lv_down.

CALL FUNCTION 'GUI_DOWNLOAD'


EXPORTING
* BIN_FILESIZE =
filename = lv_down
FILETYPE = 'ASC'
APPEND = 'X'
* WRITE_FIELD_SEPARATOR = ' '
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = ' '
* WRITE_LF = 'X'
* COL_SELECT = ' '
* COL_SELECT_MASK = ' '
* DAT_MODE = ' '
* CONFIRM_OVERWRITE = ' '
* NO_AUTH_CHECK = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = ' '
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE
* SHOW_TRANSFER_STATUS = ABAP_TRUE
* VIRUS_SCAN_PROFILE = '/SCET/GUI_DOWNLOAD'
* IMPORTING
* FILELENGTH =
tables
data_tab = gt_file_t
* FIELDNAMES =
* EXCEPTIONS
* FILE_WRITE_ERROR = 1
* NO_BATCH = 2
* GUI_REFUSE_FILETRANSFER = 3
* INVALID_TYPE = 4
* NO_AUTHORITY = 5
* UNKNOWN_ERROR = 6
* HEADER_NOT_ALLOWED = 7
* SEPARATOR_NOT_ALLOWED = 8
* FILESIZE_NOT_ALLOWED = 9
* HEADER_TOO_LONG = 10
* DP_ERROR_CREATE = 11
* DP_ERROR_SEND = 12
* DP_ERROR_WRITE = 13
* UNKNOWN_DP_ERROR = 14
* ACCESS_DENIED = 15
* DP_OUT_OF_MEMORY = 16
* DISK_FULL = 17
* DP_TIMEOUT = 18
* FILE_NOT_FOUND = 19
* DATAPROVIDER_EXCEPTION = 20
* CONTROL_FLUSH_ERROR = 21
* OTHERS = 22
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy