Start networking and exchanging professional insights

Register now or log in to join your professional community.

Follow

How to create view in bdc?

user-image
Question added by Emad Mohammed said abdalla , ERP & IT Software, operation general manager . , AL DOHA Company
Date Posted: 2015/01/11
Vinod Jetley
by Vinod Jetley , Assistant General Manager , State Bank of India

Well here is an example for you to see how the views are dealt with in BDC's...

***************************************************** ****This is a BDC for Semi finished Materials******** report ZBDC_SEMIFIN        no standard page heading line-size255. include bdcrecx1. Tables: Mara,"General Material Data         mard,"Storage Location Data for Material         mvke,"Sales Data for Material         Makt,"Material Descriptions         marc,"Plant Data for Material         mbew,"Material Valuation         rlgrap."Program Fields/Screen Fields for SAPLGRAP Data: begin of ITAB occurs0,"Internal table for Semi-Finished Material *  Initial data       matnr like mara-matnr,  "Material Code       mbrsh like mara-mbrsh,  "Industry Data       mtart like mara-mtart,  "Material Type *  Org Data       Werks like marc-werks,  "Plant       lgort like mard-lgort,  "Storage Location       vkorg like mvke-vkorg,  "Sales Orgnization       vtweg like mvke-vtweg,  "Distribution Chanel *  Basic1       Maktx Like makt-maktx,  "Description       meins like mara-meins,  "Uom       matkl like mara-matkl,  "Material Group       BISMT LIKE MARA-BISMT, " Old Material Number       spart like mara-spart,  "Division       brgew(7),"like mara-brgew,  "Gross Weight       gewei like MARA-GEWEI,  "Weight Unit       ntgew(7)," like mara-ntgew,  "Net Weight * Purchasing        MAKTL LIKE MARA-MATKL, "Material Group        ekwsl like MARA-EKWSL, " Purchasing Value Key        ekgrp like MARC-EKGRP, " Purchasing Group *  Mrp1       disgr like MARC-DISGR,  "Mrp Group *     ekgrp like MARC-EKGRP,  "Purchasing group       dismm like MARC-DISMM,  "Mrp Type       dispo like MARC-DISPO,  "Mrp Controller       disls like MARC-DISLS,  "Lot Size        BSTMI like MARC-BSTMI,       BSTMA like MARC-BSTMA,       BSTRF like MARC-BSTRF,       BSTFE like MARC-BSTFE, *  Mrp2       beskz like MARC-BESKZ,  "Procurement type       lgpro like MARC-LGPRO,  "Production Storage Location       dzeit(3),"like MARC-DZEIT,  "In house Production time       plifz(3),"like MARC-PLIFZ,  "Planned delivery time       fhori(3),"like MARC-FHORI,  "Sched margin key       eisbe like MARC-EISBE,  "Safety stock *  Mrp3       PERKZ LIKE MARC-PERKZ,       vrmod like MARC-VRMOD,  "Consumption mode       vint1(3)," like MARC-VINT1,  "Backward Consumption period       vint2(3),"like MARC-VINT2,  "Forward Consumption period       mtvfp like MARC-MTVFP,  "Availability Check *  Mrp4       sbdkz like MARC-SBDKZ,  "Individual/ Collective       SAUFT like MARC-SAUFT,  "Repetitive Manufacturing       SFEPR like MARC-SFEPR,  "REM Profile *  Work Scheduling View       ausme like MARC-AUSME,  "Unit of issue       FEVOR LIKE MARC-FEVOR, "Production Scheduler       SFCPF like MARC-SFCPF, "Production Scheduler Profile       umren(5)," like RMMZU-UMREN,  "Val for base uom       umrez(5) ,"like RMMZU-UMREz,  "Value for uo issue * Accounting1       bklas like MBEW-BKLAS,  "Valuation Class       vprsv like MBEW-VPRSV,  "Price Control Indicator       verpr(7)," like MBEW-VERPR,  "Value/Price       STPRS like MBEW-STPRS, *COSTING      EKALR LIKE MBEW-EKALR," With qty str      LOSGR like MARC-LOSGR, " Costing Lot size     end of ITAB. ********************************************************** Data: W_record type  I,  "Record Allready exists.       w_trecord type I. "Total record processed start-of-selection. perform upload.        "Upload Data from Text File Perform Open_group.    "Create a session clear : w_record,w_trecord. perform semi. "Create Semi Finish Materials if w_trecord gt0 or w_record gt0.   perform batch_job. endif. perform close_group.   "Close session FORM SEMI. loop at ITAB. *   Check for material in master  *************************       select single * from mara where matnr eq ITAB-matnr.          if sy-subrc ne0.           w_trecord = w_trecord +1. *Initial Screen perform bdc_dynpro      using 'SAPLMGMM' '0060'. perform bdc_field       using 'BDC_CURSOR'                               'RMMG1-MTART'. perform bdc_field       using 'BDC_OKCODE'                               '=AUSW'. perform bdc_field       using 'RMMG1-MATNR'                               ITAB-MATNR. perform bdc_field       using 'RMMG1-MBRSH'                               'M'. perform bdc_field       using 'RMMG1-MTART'                               'HALB'. ***********************Views********************************** *Select Views perform bdc_dynpro      using 'SAPLMGMM' '0070'. perform bdc_field       using 'BDC_CURSOR'                               'MSICHTAUSW-DYTXT(17'. perform bdc_field       using 'BDC_OKCODE'                               '/00'. perform bdc_field       using 'MSICHTAUSW-KZSEL(01)'                                'X'. perform bdc_field       using 'MSICHTAUSW-KZSEL(09)'                               'X'. perform bdc_field       using 'MSICHTAUSW-KZSEL(12)'                               'X'. perform bdc_field       using 'MSICHTAUSW-KZSEL(13)'                               'X'. perform bdc_field       using 'MSICHTAUSW-KZSEL(14)'                               'X'. perform bdc_field       using 'MSICHTAUSW-KZSEL(15)'                               'X'.. perform bdc_field       using 'MSICHTAUSW-KZSEL(17)'                               'X'. ***********************Views********************************** *perform bdc_dynpro      using 'SAPLMGMM' '0070'. *perform bdc_field       using 'BDC_CURSOR' *                              'MSICHTAUSW-DYTXT(01)'. *perform bdc_field       using 'BDC_OKCODE' *                              '/00'. *perform bdc_dynpro      using 'SAPLMGMM' '0070'. *perform bdc_field       using 'BDC_CURSOR' *                              'MSICHTAUSW-DYTXT(17)'. *perform bdc_field       using 'BDC_OKCODE' *                              '/00'. *perform bdc_field       using 'MSICHTAUSW-KZSEL(17)' *                              ITAB-KZSEL_17_011. *perform bdc_dynpro      using 'SAPLMGMM' '0070'. *perform bdc_field       using 'BDC_CURSOR' *                              'MSICHTAUSW-DYTXT(01)'. *perform bdc_field       using 'BDC_OKCODE' *                              '/00'. *perform bdc_dynpro      using 'SAPLMGMM' '0070'. *perform bdc_field       using 'BDC_CURSOR' *                              'MSICHTAUSW-DYTXT(13)'. *perform bdc_field       using 'BDC_OKCODE' *                              '=ENTR'. *perform bdc_field       using 'MSICHTAUSW-KZSEL(13)' *                              ITAB-KZSEL_13_012. *Org Data perform bdc_dynpro      using 'SAPLMGMM' '0080'. perform bdc_field       using 'BDC_CURSOR'                               'RMMG1-LGORT'. perform bdc_field       using 'BDC_OKCODE'                               '=ENTR'. perform bdc_field       using 'RMMG1-WERKS'                               ITAB-WERKS. perform bdc_field       using 'RMMG1-LGORT'                               ITAB-LGORT. *Basic1 perform bdc_dynpro      using 'SAPLMGMM' '4004'. perform bdc_field       using 'BDC_OKCODE'                               '=SP09'. perform bdc_field       using 'MAKT-MAKTX'                               ITAB-MAKTX. perform bdc_field       using 'MARA-MEINS'                               ITAB-MEINS. perform bdc_field       using 'MARA-MATKL'                               ITAB-MATKL. perform bdc_field       using 'MARA-BISMT'                               ITAB-BISMT. perform bdc_field       using 'MARA-SPART'                               ITAB-SPART. perform bdc_field       using 'MARA-MTPOS_MARA'                               'NORM'. perform bdc_field       using 'BDC_CURSOR'                               'MARA-NTGEW'. perform bdc_field       using 'MARA-BRGEW'                               ITAB-BRGEW. perform bdc_field       using 'MARA-GEWEI'                               ITAB-GEWEI. perform bdc_field       using 'MARA-NTGEW'                               ITAB-NTGEW. *Purchasing perform bdc_dynpro      using 'SAPLMGMM' '4000'. perform bdc_field       using 'BDC_OKCODE'                               '=SP12'. perform bdc_field       using 'MAKT-MAKTX'                               ITAB-MAKTX. perform bdc_field       using 'MARA-MEINS'                               ITAB-MEINS. perform bdc_field       using 'MARC-EKGRP'                               ITAB-EKGRP. perform bdc_field       using 'MARA-MATKL'                               ITAB-MATKL. perform bdc_field       using 'BDC_CURSOR'                               'MARA-EKWSL'. perform bdc_field       using 'MARA-EKWSL'                               ITAB-EKWSL. *MRP1 perform bdc_dynpro      using 'SAPLMGMM' '4000'. perform bdc_field       using 'BDC_OKCODE'                               '=SP13'. perform bdc_field       using 'MAKT-MAKTX'                               ITAB-MAKTX. perform bdc_field       using 'MARA-MEINS'                               ITAB-MEINS. perform bdc_field       using 'MARC-EKGRP'                               ITAB-EKGRP. perform bdc_field       using 'MARC-DISMM'                               ITAB-DISMM. perform bdc_field       using 'MARC-DISPO'                               ITAB-DISPO. perform bdc_field       using 'BDC_CURSOR'                               'MARC-DISLS'. perform bdc_field       using 'MARC-DISLS'                               ITAB-DISLS. IF ITAB-DISLS EQ 'EX'   . perform bdc_field       using 'MARC-BSTMI'                               ITAB-BSTMI."MIN LOT SIZE perform bdc_field       using 'MARC-BSTMA'                               ITAB-BSTMA."MAX LOT SIZE perform bdc_field       using 'MARC-BSTRF'                               ITAB-BSTRF."RNDING ELSEIF ITAB-DISLS EQ 'FX'. perform bdc_field       using 'MARC-BSTFE'                               ITAB-BSTFE. ENDIF. *MRP2 perform bdc_dynpro      using 'SAPLMGMM' '4000'. perform bdc_field       using 'BDC_OKCODE'                               '=SP14'. perform bdc_field       using 'MAKT-MAKTX'                               ITAB-MAKTX. perform bdc_field       using 'MARC-BESKZ'                               ITAB-BESKZ. perform bdc_field       using 'MARC-LGPRO'                               ITAB-LGPRO. perform bdc_field       using 'MARC-DZEIT'                               ITAB-DZEIT. perform bdc_field       using 'MARC-PLIFZ'                               ITAB-PLIFZ. perform bdc_field       using 'MARC-FHORI'                               ITAB-FHORI. perform bdc_field       using 'BDC_CURSOR'                               'MARC-EISBE'. perform bdc_field       using 'MARC-EISBE'                               ITAB-EISBE. *MRP3 perform bdc_dynpro      using 'SAPLMGMM' '4000'. perform bdc_field       using 'BDC_OKCODE'                               '=SP15'. perform bdc_field       using 'MAKT-MAKTX'                               ITAB-MAKTX. perform bdc_field       using 'MARC-PERKZ'                               ITAB-PERKZ. perform bdc_field       using 'MARC-VRMOD'                               ITAB-VRMOD. perform bdc_field       using 'MARC-VINT1'                               ITAB-VINT1. perform bdc_field       using 'MARC-VINT2'                               ITAB-VINT2. perform bdc_field       using 'BDC_CURSOR'                               'MARC-MTVFP'. perform bdc_field       using 'MARC-MTVFP'                               ITAB-MTVFP. *MRP4 perform bdc_dynpro      using 'SAPLMGMM' '4000'. perform bdc_field       using 'BDC_OKCODE'                               '=SP17'. perform bdc_field       using 'MAKT-MAKTX'                               ITAB-MAKTX. perform bdc_field       using 'MARC-SBDKZ'                               ITAB-SBDKZ. perform bdc_field       using 'BDC_CURSOR'                               'MARC-SFEPR'. perform bdc_field       using 'MARC-SAUFT'                               ITAB-SAUFT. perform bdc_field       using 'MARC-SFEPR'                               ITAB-SFEPR. *Work Scheduling perform bdc_dynpro      using 'SAPLMGMM' '4000'. perform bdc_field       using 'BDC_OKCODE'                               '=SP24'. perform bdc_field       using 'MAKT-MAKTX'                               ITAB-MAKTX. perform bdc_field       using 'BDC_CURSOR'                               'MARC-SFCPF'. perform bdc_field       using 'MARA-MEINS'                               ITAB-MEINS. perform bdc_field       using 'MARC-FEVOR'                               ITAB-FEVOR. perform bdc_field       using 'MARC-LGPRO'                               ITAB-LGPRO. perform bdc_field       using 'MARC-SFCPF'                               ITAB-SFCPF. perform bdc_field       using 'MARC-DZEIT'                               ITAB-DZEIT. *Check for Conversation Factor           if ITAB-MEINS ne iTAB-ausme and iTAB-umren gt 0                                       and iTAB-umrez gt 0.           perform bdc_dynpro      using 'SAPLMGMM' '0510'.           perform bdc_field       using:                                   'BDC_OKCODE'    '=ENTR',                                   'RMMZU-UMREN'   ITAB-UMREN,                                   'RMMZU-UMREZ'   ITAB-UMREZ.         endif. perform bdc_field       using 'MARC-LGPRO'                               itab-LGPRO. perform bdc_field       using 'MARC-DZEIT'                               itab-DZEIT. *Accounting perform bdc_dynpro      using 'SAPLMGMM' '4000'. perform bdc_field       using 'BDC_OKCODE'                               '=SP26'. perform bdc_field       using 'MAKT-MAKTX'                               ITAB-MAKTX. perform bdc_field       using 'MARA-MEINS'                               ITAB-MEINS. perform bdc_field       using 'MARA-SPART'                               ITAB-SPART. perform bdc_field       using 'BDC_CURSOR'                               'MBEW-STPRS'. perform bdc_field       using 'MBEW-BKLAS'                               ITAB-BKLAS. perform bdc_field       using 'MBEW-VPRSV'                               ITAB-VPRSV. perform bdc_field       using 'MBEW-STPRS'                               ITAB-STPRS. IF ITAB-VPRSV = 'S'. perform bdc_field       using 'MBEW-STPRS' "FILLS STD PRICE                               ITAB-VERPR. ELSEIF ITAB-VPRSV ='V'. perform bdc_field       using 'MBEW-VERPR' "FILLS VALUE                               ITAB-VERPR. ENDIF. *Cost Estimate perform bdc_dynpro      using 'SAPLMGMM' '4000'. perform bdc_field       using 'BDC_OKCODE'                               '=BU'. perform bdc_field       using 'MAKT-MAKTX'                               ITAB-MAKTX. perform bdc_field       using 'BDC_CURSOR'                               'MARC-PRCTR'. perform bdc_field       using 'MARA-MEINS'                               ITAB-MEINS. perform bdc_field       using 'MBEW-EKALR'                               ITAB-EKALR. perform bdc_field       using 'MARC-LOSGR'                               ITAB-LOSGR. perform bdc_transaction using 'MM01'. REFRESH BDCDATA. *  *************************************************************     else.          w_record = w_record +1.     endif. ENDLOOP. ENDFORM. form Upload. CALL FUNCTION 'UPLOAD'  EXPORTING    CODEPAGE                      = ' '    FILENAME                      = ' '    FILETYPE                      = ' '   TABLES     DATA_TAB                      = ITAB  EXCEPTIONS    CONVERSION_ERROR              =1    INVALID_TABLE_WIDTH           =2    INVALID_TYPE                  =3    NO_BATCH                      =4    UNKNOWN_ERROR                 =5    GUI_REFUSE_FILETRANSFER       =6    OTHERS                        =7. ENDFORM. form batch_job.     uline.       format color col_heading.         if w_trecord gt0.         Write:/ 'Background Job has been Created for ',               w_trecord right-justified, 'Semi-Fin',80 ''.         write:/ 'Please follow the following steps to run this job',                                                           80 ''.         write:/ 'as listed below.',80 ''.         format color col_normal.         skip.         write:/05 '1.Goto Transaction SM35',80 ''.         write:/05 '2.Select your Session Name',80 ''.         write:/05 '3.Click On Execute Button',80 ''.        endif.        if w_record gt0.          format color col_negative.          write:/ w_record ,'records already existed',80 ''.          format color off.        endif.     uline. endform.

Do you need help in adding the right keywords to your CV? Let our CV writing experts help you.