Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8652

Re: CEWB - mass upload BOM

$
0
0

Hi ,

 

You can use below program.Essentialy you update STPO, STKO & MAST tables... that's all BOM is all about.... Mass upload or what ever.

 

 

 

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

*& Report  ZPPC0001

*&

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

REPORT  ZPPC0001  NO STANDARD PAGE HEADING LINE-SIZE 255.



DATA: BEGIN OF itab OCCURS 0,

        material(18TYPE c,

        plant(5TYPE c,

        usage(1TYPE c,

        date(10)   TYPE c,

        baseqty(25TYPE c,

        component(25TYPE c,

        qty(25TYPE c,

        meins(5) TYPE c,

        category(2TYPE c,

        opscrap(20TYPE c,

        netid(1TYPE c,

        compscrap(20TYPE c,

    END OF itab.



DATA: BEGIN OF jtab OCCURS 0,

        component(25TYPE c,

        qty(25TYPE c,

        category(2TYPE c,

        opscrap(20TYPE c,

        netid(1TYPE c,

        compscrap(20TYPE c,

        meins(5) TYPE c,

    END OF jtab.



DATA: count1 TYPE i.

DATA: ccount(4) TYPE c.

DATA: count TYPE i.

DATA: zcount(4) TYPE c.



DATAmaterial(18TYPE c,

       plant(5TYPE c,

       usage(1TYPE c,

       date(10)   TYPE c,

       baseqty(25TYPE c,

       meins(5) TYPE c.



DATA: param1(15) TYPE c.

DATA: param2(15) TYPE c.

DATA: param3(15) TYPE c.

DATA bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.



DATA: t_msgtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF i_t100 OCCURS 0.

        INCLUDE STRUCTURE t100.

DATA: END OF i_t100.



* S E L E C T I O N  S C R E E N

PARAMETERS: p_fname LIKE rlgrap-filename DEFAULT 'C:/bom.TXT'.

PARAMETERS: s_mode TYPE ctu_mode.



*R E P O R T     E V E N T S

START-OF-SELECTION.

  CALL FUNCTION 'WS_UPLOAD'

    EXPORTING

      codepage                = 'SDG'

      filename                = p_fname

      filetype                = 'DAT'

    TABLES

      data_tab                = itab

    EXCEPTIONS

      conversion_error        = 1

      file_open_error         = 2

      file_read_error         = 3

      invalid_type            = 4

      no_batch                = 5

      unknown_error           = 6

      invalid_table_width     = 7

      gui_refuse_filetransfer = 8

      customer_error          = 9

      no_authority            = 10

      OTHERS                  = 11.



  LOOP AT itab.

    material = itab-material.

    plant = itab-plant.

    usage = itab-usage.

    date = itab-date.

    baseqty = itab-baseqty.

    meins = itab-meins.



    MOVE-CORRESPONDING itab TO jtab.

    APPEND jtab.



    AT END OF  material.

      PERFORM bdc_dynpro      USING 'SAPLCSDI' '0100'.

      PERFORM bdc_field       USING 'BDC_CURSOR' 'RC29N-DATUV'.

      PERFORM bdc_field       USING 'BDC_OKCODE' '/00'.

      PERFORM bdc_field       USING 'RC29N-MATNR' material.

      PERFORM bdc_field       USING 'RC29N-WERKS' plant.

      PERFORM bdc_field       USING 'RC29N-STLAN' usage.

      PERFORM bdc_field       USING 'RC29N-DATUV' date.



      PERFORM bdc_dynpro      USING 'SAPLCSDI' '0110'.

      PERFORM bdc_field       USING 'BDC_CURSOR' 'RC29K-BMENG'.

      PERFORM bdc_field       USING 'BDC_OKCODE' '/00'.

      PERFORM bdc_field       USING 'RC29K-BMENG' baseqty.

      PERFORM bdc_field       USING 'RC29K-STLST' '1'.



      PERFORM bdc_dynpro      USING 'SAPLCSDI' '0111'.

      PERFORM bdc_field       USING 'BDC_CURSOR' 'RC29K-LABOR'.

      PERFORM bdc_field       USING 'BDC_OKCODE' '/00'.



      LOOP AT jtab.

        count = count + 1.

        zcount = count.

        CONDENSE zcount.

        CONCATENATE  'RC29P-IDNRK(0' zcount ')' INTO param1.

        CONCATENATE  'RC29P-MENGE(0' zcount ')' INTO param2.

        CONCATENATE  'RC29P-POSTP(0' zcount ')' INTO param3.



        PERFORM bdc_dynpro      USING 'SAPLCSDI' '0140'.

        PERFORM bdc_field       USING 'BDC_CURSOR'   param3.

        PERFORM bdc_field       USING 'BDC_OKCODE'   '/00'.

        PERFORM bdc_field       USING param1   jtab-component.

        PERFORM bdc_field       USING param2   jtab-qty.

        PERFORM bdc_field       USING param3   jtab-category.



        PERFORM bdc_dynpro      USING 'SAPLCSDI' '0130'.

        PERFORM bdc_field       USING 'BDC_OKCODE'   '/00'.

        PERFORM bdc_field       USING 'BDC_CURSOR'   'RC29P-AUSCH'.



        PERFORM bdc_field       USING 'RC29P-MEINS'   jtab-meins.

        PERFORM bdc_field       USING 'RC29P-AVOAU'   jtab-opscrap.

        PERFORM bdc_field       USING 'RC29P-NETAU'   'X'.

        PERFORM bdc_field       USING 'RC29P-AUSCH'   jtab-compscrap.



        PERFORM bdc_dynpro      USING 'SAPLCSDI' '0131'.

        PERFORM bdc_field       USING 'BDC_OKCODE'   '/00'.

        PERFORM bdc_field       USING 'BDC_CURSOR'   'RC29P-POTX1'.

        PERFORM bdc_field       USING 'RC29P-SANKA'   'X'.

      ENDLOOP.



      PERFORM bdc_dynpro      USING 'SAPLCSDI' '0140'.

      PERFORM bdc_field       USING 'BDC_OKCODE' '=FCBU'.



      CALL TRANSACTION 'CS01' USING bdcdata MODE s_mode

                              MESSAGES  INTO t_msgtab.



      REFRESH jtab.

      CLEAR: count , count1, ccount, zcount.

    ENDAT.

    REFRESH bdcdata.



  ENDLOOP.



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

*&      Form  bdc_dynpro

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

FORM bdc_dynpro USING program dynpro.

  CLEAR bdcdata.

  bdcdata-program = program.

  bdcdata-dynpro = dynpro.

  bdcdata-dynbegin = 'X'.

  APPEND bdcdata.

ENDFORM.                    "BDC_DYNPRO



*----------------------------------------------------------------------*

* Insert field *

*----------------------------------------------------------------------*

FORM bdc_field USING fnam fval.

  IF fval <> space.

    CLEAR bdcdata.

    bdcdata-fnam = fnam.

    bdcdata-fval = fval.

    APPEND bdcdata.

  ENDIF.

ENDFORM.                    "BDC_FIELD


Viewing all articles
Browse latest Browse all 8652

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>