cancel
Showing results for 
Search instead for 
Did you mean: 

How to Call a script inside a bdc programme

Former Member
0 Kudos

Hi,

Can anybody please tell me " How to Call a script inside a bdc programme"

Please tell me the steps also.

Regards

Prabhudutta

Message was edited by:

Prabhudutta Behera

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi, co means conains only..its a string comparison operator.i tried those things as well..but none is working....can ne body give the answer

Former Member
0 Kudos

I have one query.

i have a selection-screen...i have a select-options and a parameter...

now when user gives both the interval for ebeln say and file name...then data will be transferred to file......but when user doesnt give file name.....then it will display only the data based on his selection....but not transfer to flat file.....

i have written the code like this...

at selection-screen.

if p_fname co ' '.

perform display_data.

else.

perform transfer_data.

endif.

but none of the performs are working.....pls help.

former_member184551
Contributor
0 Kudos

I think its failing on the if condition.

what is p_fname co ' '.

Maybe u menat something else.

try if p_fname is not initial.

or if p_fname = ' '.

Former Member
0 Kudos

Hi Prabhu,

*&---------------------------------------------------------------------*
*& Report  ZUMA_EXAMPLE                                                *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZUMA_EXAMPLE                            .
*&---------------------------------------------------------------------*
* TABLES DECLARATION.
*&---------------------------------------------------------------------*
TABLES: T001W,MARA.
*&---------------------------------------------------------------------*
*DATA DECLARATIONS.
*&---------------------------------------------------------------------*
DATA : Z(40) TYPE C,
       V_MATNR LIKE MARA-MATNR,
       V_MTART LIKE MARA-MTART,
       V_MEINS LIKE MARA-MEINS,
       V_NTGEW LIKE MARA-NTGEW,
       V_BRGEW LIKE MARA-BRGEW,
       V_GEWEI LIKE MARA-GEWEI,
       V_VOLUM LIKE MARA-VOLUM,
       V_VOLEH LIKE MARA-VOLEH.
*&---------------------------------------------------------------------*
*INTERNAL TABLE DECLARATIONS.
*&---------------------------------------------------------------------*

DATA : BEGIN OF IT_13709_T001W OCCURS 0,
       PLANT LIKE T001W-WERKS,
       NAME LIKE T001W-NAME1,
       LAND LIKE T001W-LAND1,
       END OF IT_13709_T001W.

DATA: BEGIN OF IT_MATERIAL OCCURS 0,
       WERKS LIKE T001W-WERKS,
       MATNR LIKE MARC-MATNR,
       MAKTX LIKE MAKT-MAKTX,
       END OF IT_MATERIAL.
DATA: IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF IT_MARC OCCURS 0,
      MATNR LIKE MARA-MATNR,
      WERKS LIKE MARC-WERKS,
      PSTAT LIKE MARC-PSTAT,
      PRCTR LIKE MARC-PRCTR,
      MINLS LIKE MARC-MINLS,
      MAXLS LIKE MARC-MAXLS,
      NAME1 LIKE T001W-NAME1,
      END OF IT_MARC.

*&---------------------------------------------------------------------*
* SELECTION SCREEN.
*&---------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TXT-001.
SELECT-OPTIONS: S_PLANT FOR T001W-WERKS.
SELECTION-SCREEN END OF BLOCK B1.

*&---------------------------------------------------------------------*
* START OF SELECTION
*&---------------------------------------------------------------------*

START-OF-SELECTION.
  SELECT WERKS
         NAME1
         LAND1
         FROM T001W
         INTO TABLE IT_13709_T001W
         WHERE WERKS IN S_PLANT.
*&---------------------------------------------------------------------*
* END OF SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION.
  LOOP AT IT_13709_T001W.

    WRITE:/ '|',2 IT_13709_T001W-PLANT HOTSPOT ON,6
            '|',7 IT_13709_T001W-NAME,38
            '|',39 IT_13709_T001W-LAND,46 '|'.
    HIDE IT_13709_T001W-PLANT.
  ENDLOOP.
  WRITE:/ SY-ULINE(46).
*&---------------------------------------------------------------------*
* TOP OF PAGE
*&---------------------------------------------------------------------*
TOP-OF-PAGE.
  WRITE:/ SY-ULINE(46).
  WRITE:/ '|',2 'PLANT',6
          '|',7 'PLANT NAME',38
          '|',39 'COUNTRY',46 '|'.
  WRITE:/ SY-ULINE(46).
*&---------------------------------------------------------------------*
* AT LINE SELECTION
*&---------------------------------------------------------------------*
AT LINE-SELECTION.

  IF SY-LSIND = 1.
    GET CURSOR FIELD Z.
    IF Z = 'IT_13709_T001W-PLANT'.
      SELECT A~WERKS
             A~MATNR
             B~MAKTX
             INTO TABLE IT_MATERIAL
             FROM MARC AS A INNER JOIN MAKT AS B
             ON A~MATNR = B~MATNR
             WHERE A~WERKS = IT_13709_T001W-PLANT.
      WRITE:/ SY-ULINE(20).
      WRITE:/ '|',2 'PLANT',8
              '|',9 'PLANT NAME',20
              '|'.
      WRITE:/ SY-ULINE(20).
      WRITE:/ '|',2 IT_13709_T001W-PLANT,8
              '|',9 IT_13709_T001W-NAME,20
              '|'.
      WRITE:/ SY-ULINE(20).
      SKIP 4.
      WRITE:/ SY-ULINE(61).
      WRITE:/ '|',2 'MATERIAL NUMBER',20
              '|',21 'MATERIAL DESCRIPTION',61
              '|'.
      WRITE:/ SY-ULINE(61).
      LOOP AT IT_MATERIAL.
        WRITE:/ '|',2 IT_MATERIAL-MATNR HOTSPOT ON,20
                '|',21 IT_MATERIAL-MAKTX,61
                '|'.
        HIDE IT_MATERIAL-MATNR.
      ENDLOOP.
      WRITE:/ SY-ULINE(61).
    ENDIF.
  ELSEIF SY-LSIND = 2.
    V_MATNR = IT_MATERIAL-MATNR.
    CALL SCREEN 100.
  ENDIF.
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'ABC'.
*  SET TITLEBAR 'xxx'.

ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  M1_PBO  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE M1_PBO OUTPUT.
  MARA-MATNR = V_MATNR.
  SELECT MTART
         MEINS
         NTGEW
         BRGEW
         GEWEI
         VOLUM
         VOLEH
         FROM MARA
         INTO (V_MTART,V_MEINS , V_NTGEW , V_BRGEW , V_GEWEI , V_VOLUM , V_VOLEH)
         WHERE MATNR = V_MATNR.
  ENDSELECT.
  MARA-MTART = V_MTART.
  MARA-MEINS = V_MEINS.
  MARA-NTGEW = V_NTGEW.
  MARA-BRGEW = V_BRGEW.
  MARA-GEWEI = V_GEWEI.
  MARA-VOLUM = V_VOLUM.
  MARA-VOLEH = V_VOLEH.




ENDMODULE.                 " M1_PBO  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
  CASE SY-UCOMM.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'CHG'.
      IF ( MARA-MEINS = V_MEINS AND MARA-NTGEW = V_NTGEW AND MARA-BRGEW = V_BRGEW
         AND MARA-GEWEI = V_GEWEI AND MARA-VOLUM = V_VOLUM AND MARA-VOLEH = V_VOLEH ).
      PERFORM POPUP.
      ELSE.
        PERFORM CONVERSION.
        PERFORM GET_BDC_DATA.

      ENDIF.
  WHEN 'PRIN'.
  SELECT A~MATNR
         A~WERKS
         A~PSTAT
         A~PRCTR
         A~MINLS
         A~MAXLS
         B~NAME1
         INTO TABLE IT_MARC
         FROM MARC AS A INNER JOIN T001W AS B
         ON A~WERKS = B~WERKS
         WHERE MATNR = MARA-MATNR.
  PERFORM OPEN_FORM.
  PERFORM WRITE_FORM.
  PERFORM CLOSE_FORM.

  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Form  GET_BDC_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_BDC_DATA .
  PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0060'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RMMG1-MATNR'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=ENTR'.
  PERFORM BDC_FIELD       USING 'RMMG1-MATNR'
                                MARA-MATNR.
  PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '0070'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'MSICHTAUSW-DYTXT(01)'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=ENTR'.
  PERFORM BDC_FIELD       USING 'MSICHTAUSW-KZSEL(01)'
                                'X'.
  PERFORM BDC_DYNPRO      USING 'SAPLMGMM' '4004'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                'BU'.
  PERFORM BDC_FIELD       USING 'MAKT-MAKTX'
                                MARA-MTART.
  PERFORM BDC_FIELD       USING 'MARA-MEINS'
                                MARA-MEINS.
  PERFORM BDC_FIELD       USING 'MARA-MTPOS_MARA'
                                'NORM'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'MARA-VOLEH'.
  PERFORM BDC_FIELD       USING 'MARA-BRGEW'
                                MARA-BRGEW.
  PERFORM BDC_FIELD       USING 'MARA-GEWEI'
                                MARA-GEWEI.
  PERFORM BDC_FIELD       USING 'MARA-NTGEW'
                                MARA-NTGEW.
  PERFORM BDC_FIELD       USING 'MARA-VOLUM'
                                MARA-VOLUM.
  PERFORM BDC_FIELD       USING 'MARA-VOLEH'
                                V_VOLEH.
*perform bdc_transaction using 'MM02'.
  CALL TRANSACTION 'MM02' USING IT_BDCDATA MODE 'A' UPDATE 'S'.
  CLEAR IT_BDCDATA.
  REFRESH IT_BDCDATA.



ENDFORM.                    " GET_BDC_DATA
*&---------------------------------------------------------------------*
*&      Form  bdc_dynpro
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0450   text
*      -->P_0451   text
*----------------------------------------------------------------------*
FORM BDC_DYNPRO  USING    VALUE(P_0450)
                          VALUE(P_0451).
  IT_BDCDATA-PROGRAM = P_0450 .
  IT_BDCDATA-DYNPRO = P_0451.
  IT_BDCDATA-DYNBEGIN = 'X'.
  APPEND IT_BDCDATA.
  CLEAR IT_BDCDATA.

ENDFORM.                    " bdc_dynpro
*&---------------------------------------------------------------------*
*&      Form  bdc_field
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0520   text
*      -->P_0521   text
*----------------------------------------------------------------------*
FORM BDC_FIELD  USING    VALUE(P_0520)
                         VALUE(P_0521).
  IT_BDCDATA-FNAM = P_0520.
  IT_BDCDATA-FVAL = P_0521.
  APPEND IT_BDCDATA.
  CLEAR IT_BDCDATA.
ENDFORM.                    " bdc_field
*&---------------------------------------------------------------------*
*&      Form  CONVERSION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CONVERSION .
  CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
    EXPORTING
      INPUT                = V_VOLEH
*   LANGUAGE             = SY-LANGU
   IMPORTING
*   LONG_TEXT            =
     OUTPUT               = V_VOLEH
*   SHORT_TEXT           =
* EXCEPTIONS
*   UNIT_NOT_FOUND       = 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.                    " CONVERSION
*&---------------------------------------------------------------------*
*&      Form  POPUP
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM POPUP .
        CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT_LO'
         EXPORTING
           TITEL              = 'MATERIAL DETAILS ARE NOT CHANGED '
           TEXTLINE1          = 'MATERIAL IS NOT CHANGED'
*          TEXTLINE2          = ' '
*          TEXTLINE3          = ' '
           START_COLUMN       = 5
           START_ROW          = 6
                  .
ENDFORM.                    " POPUP
*&---------------------------------------------------------------------*
*&      Form  OPEN_FORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM OPEN_FORM .
CALL FUNCTION 'OPEN_FORM'
 EXPORTING
*   APPLICATION                       = 'TX'
*   ARCHIVE_INDEX                     =
*   ARCHIVE_PARAMS                    =
*   DEVICE                            = 'PRINTER'
*   DIALOG                            = 'X'
   FORM                              = 'ZUMA_SCRIPTS'
*  LANGUAGE                          = SY-LANGU
*   OPTIONS                           =
*   MAIL_SENDER                       =
*   MAIL_RECIPIENT                    =
*   MAIL_APPL_OBJECT                  =
*   RAW_DATA_INTERFACE                = '*'
*   SPONUMIV                          =
* IMPORTING
*   LANGUAGE                          =
*   NEW_ARCHIVE_PARAMS                =
*   RESULT                            =
 EXCEPTIONS
   CANCELED                          = 1
   DEVICE                            = 2
   FORM                              = 3
   OPTIONS                           = 4
   UNCLOSED                          = 5
   MAIL_OPTIONS                      = 6
   ARCHIVE_ERROR                     = 7
   INVALID_FAX_NUMBER                = 8
   MORE_PARAMS_NEEDED_IN_BATCH       = 9
   SPOOL_ERROR                       = 10
   CODEPAGE                          = 11
   OTHERS                            = 12
          .
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.                    " OPEN_FORM
*&---------------------------------------------------------------------*
*&      Form  WRITE_FORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM WRITE_FORM .
CALL FUNCTION 'WRITE_FORM'
 EXPORTING
   ELEMENT                        = 'HEADER'
   FUNCTION                       = 'SET'
   TYPE                           = 'BODY'
   WINDOW                         = 'MAIN'
* IMPORTING
*   PENDING_LINES                  =
 EXCEPTIONS
   ELEMENT                        = 1
   FUNCTION                       = 2
   TYPE                           = 3
   UNOPENED                       = 4
   UNSTARTED                      = 5
   WINDOW                         = 6
   BAD_PAGEFORMAT_FOR_PRINT       = 7
   SPOOL_ERROR                    = 8
   CODEPAGE                       = 9
   OTHERS                         = 10
          .
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_MARC.
PERFORM WRITE_FORM_2.
ENDLOOP.


ENDFORM.                    " WRITE_FORM
*&---------------------------------------------------------------------*
*&      Form  CLOSE_FORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CLOSE_FORM .
CALL FUNCTION 'CLOSE_FORM'
* IMPORTING
*   RESULT                         =
*   RDI_RESULT                     =
* TABLES
*   OTFDATA                        =
 EXCEPTIONS
   UNOPENED                       = 1
   BAD_PAGEFORMAT_FOR_PRINT       = 2
   SEND_ERROR                     = 3
   SPOOL_ERROR                    = 4
   CODEPAGE                       = 5
   OTHERS                         = 6
          .
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.                    " CLOSE_FORM
*&---------------------------------------------------------------------*
*&      Form  WRITE_FORM_2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM WRITE_FORM_2 .
CALL FUNCTION 'WRITE_FORM'
 EXPORTING
   ELEMENT                        = 'BODY'
   FUNCTION                       = 'SET'
   TYPE                           = 'BODY'
   WINDOW                         = 'MAIN'
* IMPORTING
*   PENDING_LINES                  =
 EXCEPTIONS
   ELEMENT                        = 1
   FUNCTION                       = 2
   TYPE                           = 3
   UNOPENED                       = 4
   UNSTARTED                      = 5
   WINDOW                         = 6
   BAD_PAGEFORMAT_FOR_PRINT       = 7
   SPOOL_ERROR                    = 8
   CODEPAGE                       = 9
   OTHERS                         = 10
          .
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.                    " WRITE_FORM_2

plz look into this. plz reward if helpful

Thanks,

Suma.

Former Member
0 Kudos

Hi,

You need to write the BDC program then look at the below link to write a Script program

Regards

Sudheer