Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BDC recording

Former Member
0 Likes
1,262

hi all

i have a requirement such that in BDC recording i need to take valuse from a file and put it up in the recording that was created by me in the se35 transaction...please help

vijay

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,222

HI Vijay ,

This program is for updating the text in MM02 Transaction... can refer the whole code..

&----


*& Report Z8JAYANT_ALV_TRANSACTION_MM02 *

*& *

&----


*& *

*& *

&----


REPORT Z8JAYANT_ALV_TRANSACTION_MM02 message-id z8jayant.

  • Name- Jayant kumar Sahu.

  • Description- Alv on transaction mm02 ; passing material no and entering the old material as legacy material, specifying the views in the alv itself.

  • Date- 06/10/2006.

  • Package- $tmp.

***************************************Type Pool.

type-pools: slis.

***************************************Defining the tables used.

tables: mara,makt.

**************************************Internal Table Declaration.

****Structure for material info.

types: begin of i_material,

matnr type matnr,

mtart type mtart,

maktx type maktx,

bismt type bismt,

matkl type matkl,

spart type spart,

pstat type pstat_d,

end of i_material.

****Internal table for material info.

data: it_material type standard table of i_material with header line.

****Internal table of type MBILDTAB.

data: it_mbildtab type standard table of mbildtab with header line.

****Structure for the Sequence of the views.

types: begin of i_sequence,

guifunc type guifunc,

idxbd type BILDTIDXBD,

end of i_sequence.

****Internal table for the Sequence.

data: it_sequence type standard table of i_sequence with header line.

****Internal table of type BDCDATA for BDC.

data: it_bdcdata like bdcdata occurs 0 with header line.

***************************************Data Declaration.

        • For the field Catalog.

data: it_fieldcat type slis_t_fieldcat_alv.

        • For the Event Catalog.

data: it_event type slis_t_event.

        • For material with 0's concatenated.

data: jay_matnR(18).

        • For material with legacy appended in it's front.

data: temp_matnr(30).

        • Data for temporary variable.

data: temp1(20),

temp2(20),

temp3(20),

temp4(20),

temp5(20),

temp6(20),

ok_account(1),

ok_basic(1),

ok_sales(1),

ok_purchase(1),

ok_atleastone(1).

****************************************Select Options.

select-options: s_matnr for mara-matnr.

start-of-selection.

*************************************Perform Statements.

*Perform for the Catalog.

perform zf_catalog using it_fieldcat.

*Perform For fetching data.

perform zf_select.

*Perform Event Include.

perform zf_event using it_event.

*Perform For the List Display.

perform zf_diplay.

&----


*& Form zf_catalog

&----


  • text

----


  • -->P_IT_FIELDCAT text

----


form zf_catalog using p_it_fieldcat type slis_t_fieldcat_alv.

data: l_fieldcat type slis_fieldcat_alv.

clear l_fieldcat.

*IT_MATERIAL-MATNR ======= MATERIAL NUMBER =======

L_FIELDCAT-COL_POS = '1'.

L_FIELDCAT-FIELDNAME = 'MATNR'.

L_FIELDCAT-TABNAME = 'IT_MATERIAL'.

L_FIELDCAT-OUTPUTLEN = 18.

L_FIELDCAT-KEY = 'X'.

L_FIELDCAT-REF_TABNAME = 'MARA'.

L_FIELDCAT-LZERO = 'X'.

L_FIELDCAT-JUST = 'C'.

L_FIELDCAT-SELTEXT_L = 'MATERIAL NUBMBER'.

L_FIELDCAT-SELTEXT_M = 'MATERIAL No.'.

L_FIELDCAT-SELTEXT_S = 'MATR. NO.'.

APPEND L_FIELDCAT TO P_IT_FIELDCAT.

clear l_fieldcat.

*IT_MATERIAL-MAKTX ======= MATERIAL DESCRIPTION =======

L_FIELDCAT-COL_POS = '2'.

L_FIELDCAT-FIELDNAME = 'MAKTX'.

L_FIELDCAT-TABNAME = 'IT_MATERIAL'.

L_FIELDCAT-OUTPUTLEN = 40.

L_FIELDCAT-REF_TABNAME = 'MAKT'.

L_FIELDCAT-LZERO = 'X'.

L_FIELDCAT-JUST = 'C'.

L_FIELDCAT-SELTEXT_L = 'MATERIAL DESCRIPTION'.

L_FIELDCAT-SELTEXT_M = 'MATERIAL DESC.'.

L_FIELDCAT-SELTEXT_S = 'MATR. DESC.'.

APPEND L_FIELDCAT TO P_IT_FIELDCAT.

CLEAR L_FIELDCAT.

endform. " zf_catalog

&----


*& Form zf_select

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_select.

                    • SELECTING THE MATERIAL INFO FROM THE MARA TABLE.

SELECT MATNR

MTART

BISMT

MATKL

SPART

PSTAT INTO CORRESPONDING FIELDS OF TABLE IT_MATERIAL FROM MARA

WHERE MATNR IN S_MATNR.

                  • SELECTING THE MATERIAL DESCRIPTION FROM MAKT TABLE.

LOOP AT IT_MATERIAL.

SELECT MAKTX INTO (IT_MATERIAL-MAKTX)

FROM MAKT WHERE MATNR = IT_MATERIAL-MATNR.

MODIFY IT_MATERIAL.

ENDSELECT.

ENDLOOP.

endform. " zf_select

&----


*& Form zf_event

&----


  • text

----


  • -->P_IT_EVENT text

----


form zf_event using p_it_event TYPE SLIS_T_EVENT.

DATA: IT_EVENT TYPE SLIS_T_EVENT WITH HEADER LINE.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_IT_EVENT

EXCEPTIONS

LIST_TYPE_WRONG = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CLEAR IT_EVENT.

READ TABLE P_IT_EVENT WITH KEY NAME = SLIS_EV_USER_COMMAND INTO IT_EVENT.

IF SY-SUBRC = 0.

MOVE 'Z8_USER_COMMAND' TO IT_EVENT-FORM.

MODIFY P_IT_EVENT FROM IT_EVENT INDEX SY-TABIX TRANSPORTING FORM.

ENDIF.

endform. " zf_event

&----


*& Form zf_diplay

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_diplay .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'Z8_USER_COMMAND'

I_STRUCTURE_NAME = 'I_MATERIAL'

  • IS_LAYOUT =

IT_FIELDCAT = IT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = IT_EVENT

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = IT_MATERIAL

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

endform. " zf_diplay

*******************************************************************************************************

  • *

*******************************************************************************************************

  • *

*******************************************************************************************************

          • FORM USER COMMAND

FORM Z8_USER_COMMAND USING JAY_COMM TYPE SY-UCOMM

P_SELFIELD TYPE SLIS_SELFIELD.

CLEAR it_mbildtab.

REFRESH it_mbildtab.

CASE JAY_COMM.

          • EVENT ON DOUBLE CLICK.

WHEN '&IC1'.

IF P_SELFIELD-FIELDNAME = 'MATNR'. " TAKING MATERIAL NUMBER ON THE FIELD FOR DOUBLE CLICKING.

CLEAR JAY_MATNR.

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

EXPORTING

input = P_SELFIELD-VALUE

IMPORTING

OUTPUT = JAY_MATNR

EXCEPTIONS

LENGTH_ERROR = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

READ TABLE IT_MATERIAL WITH KEY MATNR = JAY_MATNR. " READING FROM THE INTERNAL TABLE WITH NEW MATERIAL NUMBER.

CLEAR TEMP_MATNR.

CONCATENATE 'LEGACY-' IT_MATERIAL-MATNR INTO TEMP_MATNR. " CONCATINATING LEGACY INFORMATION INTO TEMP FOR THE SCREEN INPUT IN THE MM02 TRANSACTION.

                    • IF MATERIAL TYPE IS FINISHED PRODUCT.

IF IT_MATERIAL-MTART = 'FERT'.

CLEAR it_mbildtab.

REFRESH it_mbildtab.

CALL FUNCTION 'SELECTION_VIEWS_FIND'

EXPORTING

bildsequenz = '21'

pflegestatus = IT_MATERIAL-PSTAT

tables

bildtab = it_mbildtab

EXCEPTIONS

CALL_WRONG = 1

EMPTY_SELECTION = 2

OTHERS = 3

.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

clear it_sequence.

refresh it_sequence.

loop at it_mbildtab.

if it_mbildtab-guifu = 'SP01' OR it_mbildtab-guifu = 'SP04' OR it_mbildtab-guifu = 'SP24'.

it_sequence-guifunc = it_mbildtab-guifu.

it_sequence-idxbd = it_mbildtab-idxbd.

append it_sequence.

endif.

endloop.

clear: temp1, temp2, temp3, temp4, temp5, temp6.

ok_basic = 'N'.

ok_sales = 'N'.

ok_account = 'N'.

ok_atleastone = 'N'.

loop at it_sequence. " Views to be passed when transaction mm02 is passed.

if it_sequence-guifunc = 'SP01'.

concatenate 'MSICHTAUSW-KZSEL(' it_sequence-idxbd into temp1.

concatenate temp1 ')' into temp2.

ok_basic = 'Y'.

ok_atleastone = 'Y'.

elseif it_sequence-guifunc = 'SP04'.

concatenate 'MSICHTAUSW-KZSEL(' it_sequence-idxbd into temp3.

concatenate temp3 ')' into temp4.

ok_basic = 'Y'.

ok_atleastone = 'Y'.

elseif it_sequence-guifunc = 'SP24'.

concatenate 'MSICHTAUSW-KZSEL(' it_sequence-idxbd into temp5.

concatenate temp5 ')' into temp6.

ok_basic = 'Y'.

ok_atleastone = 'Y'.

endif.

endloop.

if ok_atleastone = 'Y'.

perform bdc_dynpro using 'SAPLMGMM' '0060'.

perform bdc_field using

'RMMG1-MATNR'

P_SELFIELD-VALUE.

  • PERFORM BDC_FIELD USING 'MARA-MATNR'

  • P_SELFIELD-VALUE.

*

*

perform bdc_field using 'BDC_OKCODE'

'=AUSW'.

perform bdc_dynpro using 'SAPLMGMM' '0070'.

if ok_basic = 'Y'.

perform bdc_field using temp2 'X'.

endif.

if ok_sales = 'Y'.

perform bdc_field using temp4 'X'.

endif.

if ok_account = 'Y'.

perform bdc_field using temp6 'X'.

endif.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0080'. "POP-UP WINDOW ASKING FOR ORGANIZATION-LEVEL DETAILS--

PERFORM BDC_FIELD USING 'BDC_CURSOR' " -- ( WHEN SALES VIEW IS SELECTED)

'RMMG1-WERKS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

  • perform bdc_field using 'BDC_CURSOR'

  • 'MAKT-MAKTX'.

*

*

perform bdc_field using 'MAKT-MAKTX'

it_material-maktx.

perform bdc_field using 'MARA-BISMT'

TEMP_MATNR.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=SP04'.

IF ok_sales = 'Y'.

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'. "SALES SCREEN

PERFORM BDC_FIELD USING 'MARA-MATKL'

IT_Material-MATKL.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=SP24'.

ENDIF.

IF ok_account = 'Y'.

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0081'. "POP-UP WINDOW ASKING FOR SOME DETAILS --

PERFORM BDC_FIELD USING 'BDC_CURSOR' " -- ( WHEN ACCOUNTING VIEW IS SELECTED)

'RMMG1-WERKS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_FIELD USING 'RMMG1-WERKS'

'ABC1'.

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'. "ACCOUNTING SCREEN

PERFORM BDC_FIELD USING 'MARA-SPART'

IT_Material-SPART.

ENDIF.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=BU'.

perform bdc_transaction using 'MM02'.

ENDIF.

endif.

endif.

ENDCASE.

ENDFORM. "Z8_USER_COMMAND.

&----


*& Form bdc_dynpro

&----


  • text

----


  • -->P_0661 text

  • -->P_0662 text

----


form bdc_dynpro using PROGRAM DYNPRO.

CLEAR IT_BDCDATA.

IT_BDCDATA-PROGRAM = PROGRAM.

IT_BDCDATA-DYNPRO = DYNPRO.

IT_BDCDATA-DYNBEGIN = 'X'.

APPEND IT_BDCDATA.

endform. " bdc_dynpro

&----


*& Form BDC_FIELD

&----


  • text

----


  • -->P_0786 text

  • -->P_0787 text

----


form BDC_FIELD using fnam fval.

CLEAR IT_BDCDATA.

IT_BDCDATA-FNAM = FNAM.

IT_BDCDATA-FVAL = FVAL.

APPEND IT_BDCDATA.

endform. " BDC_FIELD

&----


*& Form bdc_transaction

&----


  • text

----


  • -->P_0821 text

----


form bdc_transaction using TCODE.

CALL TRANSACTION TCODE USING IT_BDCDATA MODE 'N' UPDATE 'L'.

endform. " bdc_transaction

Regards,

Jayant

9 REPLIES 9
Read only

Former Member
0 Likes
1,222

Hi Vijay,

You can upload the file in the Application layer first thru

Transaction :

CG3Z is the transaction to upload data from Presentation server to Application server.

CG3Y is the transaction to upload data from Application server toPresentation server.

And then perform ,,, Open Dataset and Close dataset for bringing it in the internal table and then pass the internal table value to the recording that you have done ....by looping at that internal tabel...

Regards,

Jayant.

Read only

0 Likes
1,222

hi

if u dont mind cn u send an example code

Read only

Former Member
0 Likes
1,222

Hi Vijay,

Use FM 'GUI_UPLOAD' to upload file into an internal table.

Loop at itab.

write ur recording code.

In place of hard code data.write fields of table like

itab-matnr............

endloop.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = 'C:\Documents and Settings\hgoyal\Desktop\Z8MARC_DATA.txt'

FILETYPE = 'ASC'

  • HAS_FIELD_SEPARATOR = ' '

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

tables

data_tab = IT_MATPLANT

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.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

loop at IT_MATPLANT

perform bdc_dynpro using 'SAPLMGMM' '0060'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-MATNR'.

perform bdc_field using 'BDC_OKCODE'

'=AUSW'.

perform bdc_field using 'RMMG1-MATNR'

IT_MATPLANT-MATNR.

perform bdc_transaction using 'MM02'.

endloop.

Regards,

Hemant

Read only

0 Likes
1,222

HI HEMANT

can u pkease give me the code within the loop at itab.....please

vijay

Read only

Former Member
0 Likes
1,222

hi Vijay ...

This is how you upload from the Application layer to INternal table ... please change the extension according to you file extension..

u have to open the application server file for reading, and then read the file into an internal table

OPEN DATASET W_FILENAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.

DO.

READ DATASET W_FILENAME INTO W_CSV.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

SPLIT W_CSV AT ',' INTO TABLE T_CSV.

ENDDO.

CLOSE DATASET W_FILENAME.

Also can refer to this site...

http://www.howforge.com/how-to-read-data-from-application-server-to-internal-table-in-abap-4

Regards,

Jayant

Read only

Former Member
0 Likes
1,223

HI Vijay ,

This program is for updating the text in MM02 Transaction... can refer the whole code..

&----


*& Report Z8JAYANT_ALV_TRANSACTION_MM02 *

*& *

&----


*& *

*& *

&----


REPORT Z8JAYANT_ALV_TRANSACTION_MM02 message-id z8jayant.

  • Name- Jayant kumar Sahu.

  • Description- Alv on transaction mm02 ; passing material no and entering the old material as legacy material, specifying the views in the alv itself.

  • Date- 06/10/2006.

  • Package- $tmp.

***************************************Type Pool.

type-pools: slis.

***************************************Defining the tables used.

tables: mara,makt.

**************************************Internal Table Declaration.

****Structure for material info.

types: begin of i_material,

matnr type matnr,

mtart type mtart,

maktx type maktx,

bismt type bismt,

matkl type matkl,

spart type spart,

pstat type pstat_d,

end of i_material.

****Internal table for material info.

data: it_material type standard table of i_material with header line.

****Internal table of type MBILDTAB.

data: it_mbildtab type standard table of mbildtab with header line.

****Structure for the Sequence of the views.

types: begin of i_sequence,

guifunc type guifunc,

idxbd type BILDTIDXBD,

end of i_sequence.

****Internal table for the Sequence.

data: it_sequence type standard table of i_sequence with header line.

****Internal table of type BDCDATA for BDC.

data: it_bdcdata like bdcdata occurs 0 with header line.

***************************************Data Declaration.

        • For the field Catalog.

data: it_fieldcat type slis_t_fieldcat_alv.

        • For the Event Catalog.

data: it_event type slis_t_event.

        • For material with 0's concatenated.

data: jay_matnR(18).

        • For material with legacy appended in it's front.

data: temp_matnr(30).

        • Data for temporary variable.

data: temp1(20),

temp2(20),

temp3(20),

temp4(20),

temp5(20),

temp6(20),

ok_account(1),

ok_basic(1),

ok_sales(1),

ok_purchase(1),

ok_atleastone(1).

****************************************Select Options.

select-options: s_matnr for mara-matnr.

start-of-selection.

*************************************Perform Statements.

*Perform for the Catalog.

perform zf_catalog using it_fieldcat.

*Perform For fetching data.

perform zf_select.

*Perform Event Include.

perform zf_event using it_event.

*Perform For the List Display.

perform zf_diplay.

&----


*& Form zf_catalog

&----


  • text

----


  • -->P_IT_FIELDCAT text

----


form zf_catalog using p_it_fieldcat type slis_t_fieldcat_alv.

data: l_fieldcat type slis_fieldcat_alv.

clear l_fieldcat.

*IT_MATERIAL-MATNR ======= MATERIAL NUMBER =======

L_FIELDCAT-COL_POS = '1'.

L_FIELDCAT-FIELDNAME = 'MATNR'.

L_FIELDCAT-TABNAME = 'IT_MATERIAL'.

L_FIELDCAT-OUTPUTLEN = 18.

L_FIELDCAT-KEY = 'X'.

L_FIELDCAT-REF_TABNAME = 'MARA'.

L_FIELDCAT-LZERO = 'X'.

L_FIELDCAT-JUST = 'C'.

L_FIELDCAT-SELTEXT_L = 'MATERIAL NUBMBER'.

L_FIELDCAT-SELTEXT_M = 'MATERIAL No.'.

L_FIELDCAT-SELTEXT_S = 'MATR. NO.'.

APPEND L_FIELDCAT TO P_IT_FIELDCAT.

clear l_fieldcat.

*IT_MATERIAL-MAKTX ======= MATERIAL DESCRIPTION =======

L_FIELDCAT-COL_POS = '2'.

L_FIELDCAT-FIELDNAME = 'MAKTX'.

L_FIELDCAT-TABNAME = 'IT_MATERIAL'.

L_FIELDCAT-OUTPUTLEN = 40.

L_FIELDCAT-REF_TABNAME = 'MAKT'.

L_FIELDCAT-LZERO = 'X'.

L_FIELDCAT-JUST = 'C'.

L_FIELDCAT-SELTEXT_L = 'MATERIAL DESCRIPTION'.

L_FIELDCAT-SELTEXT_M = 'MATERIAL DESC.'.

L_FIELDCAT-SELTEXT_S = 'MATR. DESC.'.

APPEND L_FIELDCAT TO P_IT_FIELDCAT.

CLEAR L_FIELDCAT.

endform. " zf_catalog

&----


*& Form zf_select

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_select.

                    • SELECTING THE MATERIAL INFO FROM THE MARA TABLE.

SELECT MATNR

MTART

BISMT

MATKL

SPART

PSTAT INTO CORRESPONDING FIELDS OF TABLE IT_MATERIAL FROM MARA

WHERE MATNR IN S_MATNR.

                  • SELECTING THE MATERIAL DESCRIPTION FROM MAKT TABLE.

LOOP AT IT_MATERIAL.

SELECT MAKTX INTO (IT_MATERIAL-MAKTX)

FROM MAKT WHERE MATNR = IT_MATERIAL-MATNR.

MODIFY IT_MATERIAL.

ENDSELECT.

ENDLOOP.

endform. " zf_select

&----


*& Form zf_event

&----


  • text

----


  • -->P_IT_EVENT text

----


form zf_event using p_it_event TYPE SLIS_T_EVENT.

DATA: IT_EVENT TYPE SLIS_T_EVENT WITH HEADER LINE.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_IT_EVENT

EXCEPTIONS

LIST_TYPE_WRONG = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CLEAR IT_EVENT.

READ TABLE P_IT_EVENT WITH KEY NAME = SLIS_EV_USER_COMMAND INTO IT_EVENT.

IF SY-SUBRC = 0.

MOVE 'Z8_USER_COMMAND' TO IT_EVENT-FORM.

MODIFY P_IT_EVENT FROM IT_EVENT INDEX SY-TABIX TRANSPORTING FORM.

ENDIF.

endform. " zf_event

&----


*& Form zf_diplay

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form zf_diplay .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'Z8_USER_COMMAND'

I_STRUCTURE_NAME = 'I_MATERIAL'

  • IS_LAYOUT =

IT_FIELDCAT = IT_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = IT_EVENT

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = IT_MATERIAL

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

endform. " zf_diplay

*******************************************************************************************************

  • *

*******************************************************************************************************

  • *

*******************************************************************************************************

          • FORM USER COMMAND

FORM Z8_USER_COMMAND USING JAY_COMM TYPE SY-UCOMM

P_SELFIELD TYPE SLIS_SELFIELD.

CLEAR it_mbildtab.

REFRESH it_mbildtab.

CASE JAY_COMM.

          • EVENT ON DOUBLE CLICK.

WHEN '&IC1'.

IF P_SELFIELD-FIELDNAME = 'MATNR'. " TAKING MATERIAL NUMBER ON THE FIELD FOR DOUBLE CLICKING.

CLEAR JAY_MATNR.

CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'

EXPORTING

input = P_SELFIELD-VALUE

IMPORTING

OUTPUT = JAY_MATNR

EXCEPTIONS

LENGTH_ERROR = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

READ TABLE IT_MATERIAL WITH KEY MATNR = JAY_MATNR. " READING FROM THE INTERNAL TABLE WITH NEW MATERIAL NUMBER.

CLEAR TEMP_MATNR.

CONCATENATE 'LEGACY-' IT_MATERIAL-MATNR INTO TEMP_MATNR. " CONCATINATING LEGACY INFORMATION INTO TEMP FOR THE SCREEN INPUT IN THE MM02 TRANSACTION.

                    • IF MATERIAL TYPE IS FINISHED PRODUCT.

IF IT_MATERIAL-MTART = 'FERT'.

CLEAR it_mbildtab.

REFRESH it_mbildtab.

CALL FUNCTION 'SELECTION_VIEWS_FIND'

EXPORTING

bildsequenz = '21'

pflegestatus = IT_MATERIAL-PSTAT

tables

bildtab = it_mbildtab

EXCEPTIONS

CALL_WRONG = 1

EMPTY_SELECTION = 2

OTHERS = 3

.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

clear it_sequence.

refresh it_sequence.

loop at it_mbildtab.

if it_mbildtab-guifu = 'SP01' OR it_mbildtab-guifu = 'SP04' OR it_mbildtab-guifu = 'SP24'.

it_sequence-guifunc = it_mbildtab-guifu.

it_sequence-idxbd = it_mbildtab-idxbd.

append it_sequence.

endif.

endloop.

clear: temp1, temp2, temp3, temp4, temp5, temp6.

ok_basic = 'N'.

ok_sales = 'N'.

ok_account = 'N'.

ok_atleastone = 'N'.

loop at it_sequence. " Views to be passed when transaction mm02 is passed.

if it_sequence-guifunc = 'SP01'.

concatenate 'MSICHTAUSW-KZSEL(' it_sequence-idxbd into temp1.

concatenate temp1 ')' into temp2.

ok_basic = 'Y'.

ok_atleastone = 'Y'.

elseif it_sequence-guifunc = 'SP04'.

concatenate 'MSICHTAUSW-KZSEL(' it_sequence-idxbd into temp3.

concatenate temp3 ')' into temp4.

ok_basic = 'Y'.

ok_atleastone = 'Y'.

elseif it_sequence-guifunc = 'SP24'.

concatenate 'MSICHTAUSW-KZSEL(' it_sequence-idxbd into temp5.

concatenate temp5 ')' into temp6.

ok_basic = 'Y'.

ok_atleastone = 'Y'.

endif.

endloop.

if ok_atleastone = 'Y'.

perform bdc_dynpro using 'SAPLMGMM' '0060'.

perform bdc_field using

'RMMG1-MATNR'

P_SELFIELD-VALUE.

  • PERFORM BDC_FIELD USING 'MARA-MATNR'

  • P_SELFIELD-VALUE.

*

*

perform bdc_field using 'BDC_OKCODE'

'=AUSW'.

perform bdc_dynpro using 'SAPLMGMM' '0070'.

if ok_basic = 'Y'.

perform bdc_field using temp2 'X'.

endif.

if ok_sales = 'Y'.

perform bdc_field using temp4 'X'.

endif.

if ok_account = 'Y'.

perform bdc_field using temp6 'X'.

endif.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0080'. "POP-UP WINDOW ASKING FOR ORGANIZATION-LEVEL DETAILS--

PERFORM BDC_FIELD USING 'BDC_CURSOR' " -- ( WHEN SALES VIEW IS SELECTED)

'RMMG1-WERKS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

  • perform bdc_field using 'BDC_CURSOR'

  • 'MAKT-MAKTX'.

*

*

perform bdc_field using 'MAKT-MAKTX'

it_material-maktx.

perform bdc_field using 'MARA-BISMT'

TEMP_MATNR.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=SP04'.

IF ok_sales = 'Y'.

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'. "SALES SCREEN

PERFORM BDC_FIELD USING 'MARA-MATKL'

IT_Material-MATKL.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=SP24'.

ENDIF.

IF ok_account = 'Y'.

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0081'. "POP-UP WINDOW ASKING FOR SOME DETAILS --

PERFORM BDC_FIELD USING 'BDC_CURSOR' " -- ( WHEN ACCOUNTING VIEW IS SELECTED)

'RMMG1-WERKS'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_FIELD USING 'RMMG1-WERKS'

'ABC1'.

PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4000'. "ACCOUNTING SCREEN

PERFORM BDC_FIELD USING 'MARA-SPART'

IT_Material-SPART.

ENDIF.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=BU'.

perform bdc_transaction using 'MM02'.

ENDIF.

endif.

endif.

ENDCASE.

ENDFORM. "Z8_USER_COMMAND.

&----


*& Form bdc_dynpro

&----


  • text

----


  • -->P_0661 text

  • -->P_0662 text

----


form bdc_dynpro using PROGRAM DYNPRO.

CLEAR IT_BDCDATA.

IT_BDCDATA-PROGRAM = PROGRAM.

IT_BDCDATA-DYNPRO = DYNPRO.

IT_BDCDATA-DYNBEGIN = 'X'.

APPEND IT_BDCDATA.

endform. " bdc_dynpro

&----


*& Form BDC_FIELD

&----


  • text

----


  • -->P_0786 text

  • -->P_0787 text

----


form BDC_FIELD using fnam fval.

CLEAR IT_BDCDATA.

IT_BDCDATA-FNAM = FNAM.

IT_BDCDATA-FVAL = FVAL.

APPEND IT_BDCDATA.

endform. " BDC_FIELD

&----


*& Form bdc_transaction

&----


  • text

----


  • -->P_0821 text

----


form bdc_transaction using TCODE.

CALL TRANSACTION TCODE USING IT_BDCDATA MODE 'N' UPDATE 'L'.

endform. " bdc_transaction

Regards,

Jayant

Read only

Former Member
0 Likes
1,222

hi alll

i need to crerate the program from SHDB...but anyways ur answers very helpful thank u....please look into my post as i have a problem again

vijay

Read only

Former Member
0 Likes
1,222

jj

Read only

Former Member
0 Likes
1,222

jj