mm02

5
Batch Input: Updating Material Master via BDC Contributed by Anon. Monday, 19 March 2007 This skeleton displays how to: - Determine all selection views available for user in the given transaction (MM01, MM02); - Prepare BDC to access required view; report z. constants: c_rows(2) type n value '18', " rows in view selection " window c_linen(20) type c value 'MSICHTAUSW-KZSEL( )'. data: w_tcode like sy-tcode, " Transaction code w_tkstatus like t130m-pstat, " SAP Transaction status w_anzgstatus like t130m-pstat, " Summary Display status w_t130m like t130m, " Transaction control: mat.master w_bilds like t133a-bilds, " Screen sequence w_dytxt like t133b-dytxt, " View description w_linex like sy-tabix, " View # in table w_line like sy-tabix, " View # on selection screen w_num like sy-tabix, w_matnr like mara-matnr, " Material w_mtart like mara-mtart, " Material type w_vpsta like mara-vpsta, " Material maintenance status w_pstat like t134-pstat. " Material type maintenance status data: begin of it_views occurs 30. include structure mbildtab. " Selection Views data: end of it_views. data: w_alnum(20) type c, " TC line f_pgdn. " PgDn Flag data: begin of i_bdc occurs 0. include structure bdcdata. data: end of i_bdc. parameters: material like mara-matnr obligatory memory id mat, view like t133a-auswg obligatory default '21', mm01 radiobutton group radi, mm02 radiobutton group radi, show_bdc as checkbox, showview as checkbox. ******************* start-of-selection. ******************* if not mm01 is initial. w_tcode = 'MM01'. "Create view else. w_tcode = 'MM02'. "Change view endif. * 1. Get Transaction Status and Transaction Screen Reference call function 'MATERIAL_INIT' exporting tcode = w_tcode kz_berprf = 'X' importing it130m = w_t130m tkstatus = w_tkstatus exceptions no_authority = 1 wrong_call = 2 kstatus_empty = 3 tkstatus_empty = 4 ERPGenie.COM ABAP Tips and Tricks Database http://erpgenie.com/abaptips Powered by Joomla for ERPGenie.COM! Generated: 9 July, 2014, 12:21

Upload: manu-xp

Post on 12-Jan-2016

217 views

Category:

Documents


4 download

DESCRIPTION

kkk

TRANSCRIPT

Page 1: mm02

Batch Input: Updating Material Master via BDC Contributed by Anon.Monday, 19 March 2007

This skeleton displays how to: - Determine all selection views available for user in the given transaction (MM01, MM02); - Prepare BDC to access required view; report z.

constants: c_rows(2) type n value '18', " rows in view selection " window c_linen(20) type c value 'MSICHTAUSW-KZSEL( )'.data: w_tcode like sy-tcode, " Transaction code w_tkstatus like t130m-pstat, " SAP Transaction status w_anzgstatus like t130m-pstat, " Summary Display status w_t130m like t130m, " Transaction control: mat.master w_bilds like t133a-bilds, " Screen sequence w_dytxt like t133b-dytxt, " View description w_linex like sy-tabix, " View # in table w_line like sy-tabix, " View # on selection screen w_num like sy-tabix, w_matnr like mara-matnr, " Material w_mtart like mara-mtart, " Material type w_vpsta like mara-vpsta, " Material maintenance status w_pstat like t134-pstat. " Material type maintenance statusdata: begin of it_views occurs 30. include structure mbildtab. " Selection Viewsdata: end of it_views.data: w_alnum(20) type c, " TC line f_pgdn. " PgDn Flagdata: begin of i_bdc occurs 0. include structure bdcdata.data: end of i_bdc.

parameters: material like mara-matnr obligatory memory id mat, view like t133a-auswg obligatory default '21', mm01 radiobutton group radi, mm02 radiobutton group radi, show_bdc as checkbox, showview as checkbox.

*******************start-of-selection.******************* if not mm01 is initial. w_tcode = 'MM01'. "Create view else. w_tcode = 'MM02'. "Change view endif.

* 1. Get Transaction Status and Transaction Screen Reference call function 'MATERIAL_INIT' exporting tcode = w_tcode kz_berprf = 'X' importing it130m = w_t130m tkstatus = w_tkstatus exceptions no_authority = 1 wrong_call = 2 kstatus_empty = 3 tkstatus_empty = 4

ERPGenie.COM ABAP Tips and Tricks Database

http://erpgenie.com/abaptips Powered by Joomla for ERPGenie.COM! Generated: 9 July, 2014, 12:21

Page 2: mm02

aktyp_tcode_mismatch = 5 tcode_not_found = 6 material_article_mismatch = 7 others = 8. if sy-subrc <> 0. write: 'MATERIAL_INIT error code =', sy-subrc. exit. endif.

* 2. Get Material type and maintenance statuses select single matnr mtart vpsta from mara into (w_matnr, w_mtart, w_vpsta) where matnr = material. if sy-subrc <> 0. write: 'Material', material, 'not in material master'. exit. endif. select single pstat from t134 into w_pstat where mtart = w_mtart. if sy-subrc <> 0. write: 'Material type', w_mtart, 'not found'. endif.

* 3. Get Screen Sequence for Tcode/Material call function 'BILDSEQUENZ_IDENTIFY' exporting materialart = w_mtart tcode_ref = w_t130m-trref importing bildsequenz = w_bilds exceptions wrong_call = 1 not_found = 2 others = 3. if sy-subrc <> 0. write: 'BILDSEQUENZ_IDENTIFY error code =', sy-subrc. exit. endif.

* 4. Get Summary status (Transaction+Material+Material Type) call function 'ANZGSTATUS_SETZEN' exporting aktyp = w_t130m-aktyp marastatus = w_vpsta t134status = w_pstat tkstatus = w_tkstatus importing anzgstatus = w_anzgstatus exceptions anzgstatus_empty = 1 wrong_call = 2 others = 3. if sy-subrc <> 0. write: 'ANZGSTATUS_SETZEN error code =', sy-subrc. exit. endif.

* 5. Get all selection views: call function 'SELECTION_VIEWS_FIND' exporting bildsequenz = w_bilds pflegestatus = w_anzgstatus tables bildtab = it_views

ERPGenie.COM ABAP Tips and Tricks Database

http://erpgenie.com/abaptips Powered by Joomla for ERPGenie.COM! Generated: 9 July, 2014, 12:21

Page 3: mm02

exceptions call_wrong = 1 empty_selection = 2 others = 3. if sy-subrc <> 0. write: 'SELECTION_VIEWS_FIND error code =', sy-subrc. exit. endif.

* 5. Get view #: read table it_views with key auswg = view. if sy-subrc = 0. w_linex = sy-tabix. else. write: 'View', view, 'not found'. exit. endif.

* 6. Prepare BDC: if w_linex gt c_rows. w_line = w_linex - c_rows. f_pgdn = 'X'. endif. w_alnum = c_linen. w_alnum+17(2) = w_line.

if not mm01 is initial. perform bdc_mm01. else. perform bdc_mm02. endif.

*******************end-of-selection.******************* select single dytxt into w_dytxt from t133b where spras = sy-langu and bilds = w_bilds and auswg = view. if sy-subrc <> 0. clear w_dytxt. endif. describe table it_views lines w_num. write: / 'Screen sequence =', w_bilds, / 'Selection view', view, w_dytxt, / 'View Number = ', w_linex, / 'Selection views:', w_num. if not showview is initial. write: / '********* Table of views: *********'. loop at it_views. write / it_views. endloop. endif. if not show_bdc is initial. write: / '********* Table of BDC: *********'. loop at i_bdc. write / i_bdc. endloop. endif.

*&---------------------------------------------------------------------**& Form bdc_mm02*&---------------------------------------------------------------------*form bdc_mm02.

ERPGenie.COM ABAP Tips and Tricks Database

http://erpgenie.com/abaptips Powered by Joomla for ERPGenie.COM! Generated: 9 July, 2014, 12:21

Page 4: mm02

* for example, Accounting View 1 (21)

perform dynpro using:*goto MM02 - Change Mateial (Initial screen) 'X' 'SAPLMGMM' '0060', ' ' 'BDC_CURSOR' 'RMMG1-MATNR', ' ' 'RMMG1-MATNR' w_matnr,*goto Select View(s) screen ' ' 'BDC_OKCODE' '=AUSW'.

if f_pgdn = 'X'. perform dynpro using:*goto Select View(s) screen 'X' 'SAPLMGMM' '0070',*scroll down ' ' 'BDC_OKCODE' '=P+'. endif.

perform dynpro using:*goto Select View(s) screen 'X' 'SAPLMGMM' '0070', ' ' w_alnum 'X',*Select Accounting1 view ' ' 'BDC_OKCODE' '=ENTR'.

perform dynpro using:*goto Select Plant screen 'X' 'SAPLMGMM' '0080', ' ' 'BDC_CURSOR' 'RMMG1-WERKS', ' ' 'RMMG1-WERKS' 'P123', "for example ' ' 'BDC_OKCODE' '=ENTR'.

perform dynpro using:*goto Accounting1 view 'X' 'SAPLMGMM' '4000',** change data fields here ....**save ' ' 'BDC_OKCODE' 'BU'.

endform. " bdc_mm02

*&---------------------------------------------------------------------**& Form bdc_mm01*&---------------------------------------------------------------------*form bdc_mm01.* for example, Accounting View 1 (21)

perform dynpro using:*goto MM01 - Create Mateial (Initial screen) 'X' 'SAPLMGMM' '0060', ' ' 'RMMG1-MATNR' w_matnr, ' ' 'RMMG1-MBRSH' 'H', "for example ' ' 'RMMG1-MTART' w_mtart,*goto Select View(s) screen ' ' 'BDC_OKCODE' '=AUSW'.

* Selection of views perform dynpro using: 'X' 'SAPLMGMM' '70', ' ' 'BDC_OKCODE' '=RESA', "Deselect all 'X' 'SAPLMGMM' '70'. "continue selection screen

if f_pgdn = 'X'.

ERPGenie.COM ABAP Tips and Tricks Database

http://erpgenie.com/abaptips Powered by Joomla for ERPGenie.COM! Generated: 9 July, 2014, 12:21

Page 5: mm02

perform dynpro using: ' ' 'BDC_OKCODE' '=P+', "Page select screen forward 'X' 'SAPLMGMM' '70'. "continue selection screen endif. perform dynpro using: ' ' w_alnum 'X', "Accounting 1 ' ' 'USRM1-SISEL' 'X', "Create Views ' ' 'BDC_OKCODE' '=ENTR'.

perform dynpro using:*goto Select Plant screen 'X' 'SAPLMGMM' '080', ' ' 'RMMG1-WERKS' 'P123', "for example ' ' 'BDC_OKCODE' '=ENTR'.

perform dynpro using:*goto Accounting1 view 'X' 'SAPLMGMM' '4000',** populate data fields here ....**Save ' ' 'BDC_OKCODE' '=BU'.

endform. " bdc_mm01

*---------------------------------------------------------------------** FORM DYNPRO **---------------------------------------------------------------------** Fills BDC data table **---------------------------------------------------------------------** --> PI_DYNBEGIN Screen start flag in ** --> PI_NAME Field name in ** --> PI_VALUE Field value in **---------------------------------------------------------------------*form dynpro using pi_dynbegin pi_name pi_value.

clear i_bdc. if pi_dynbegin = 'X'. move: pi_name to i_bdc-program, pi_value to i_bdc-dynpro, 'X' to i_bdc-dynbegin. else. move: pi_name to i_bdc-fnam, pi_value to i_bdc-fval. endif. "pi_dynbegin append i_bdc.endform. "dynpro

ERPGenie.COM ABAP Tips and Tricks Database

http://erpgenie.com/abaptips Powered by Joomla for ERPGenie.COM! Generated: 9 July, 2014, 12:21