Data retrival from standard transaction

hi all,
i have to get the material list from stadard t-code ca80 i have debugged the program and the whole material list is in tmapl internal table so if any one can find me a solution thats ll be very helpful. and points are rewarded
thanks in advance
anupama

hi,
You can call transaction and send the data to it.
call transaction mm01 and skip first screen.
set parameter ID 'MAT' FIELD P_matnr.
Here you are passin gthe selection screen parameters to the standard transaction MM01 and skip the screen..
you start recording like in BDC and execute it here.
so you will be having the data in the internal table that you can update in the Database table.
Regards,
Madhavi

Similar Messages

  • Data retrival from standard transaction with in a report

    hi all,
    i have a requirement like i need to pass the selection screen selections  to a standard transaction ca80 and need to get the material list from there to my report for furthur processing. is it possible with bdc or a bapi for this.
    can anyone please help urgent its eating my brain. points awarded for solution
    thanks in advance
    anupama

    hi deep kammula,
    this is a sample code for your query just check. it may help you.
    all the best.
    reward me points if usefull.
    Sample HR Reports - Allocate Petrol Allowance
    Two ABAP HR Programs, which are interconnected, the first takes employee numbers which should not be given Petrol allowance and the other program gives the petrol allowance to employees.
    FIRST PRG
    REPORT  ZPETROL_EXCLUDE                         .
    TABLES SSCRFIELDS.
    SELECTION-SCREEN BEGIN OF SCREEN 100.
    SELECTION-SCREEN SKIP 9.
    PARAMETERS NUMBER(200) TYPE C.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN:
    BEGIN OF LINE,
      PUSHBUTTON 2(10) TEXT-001 USER-COMMAND PROC,
    END OF LINE.
    SELECTION-SCREEN END OF SCREEN 100.
    CALL SCREEN 100.
    AT SELECTION-SCREEN.
    CASE SSCRFIELDS.
    WHEN 'PROC'.
    SET PARAMETER ID: 'NUM' FIELD NUMBER.
    CALL TRANSACTION 'ZP_PALLOWANCE'.
    LEAVE TO SCREEN 0.
    ENDCASE.
    SECOND PRG
    REPORT  ZPR_PETROL_ALLOWANCE NO STANDARD PAGE
    HEADING                   .
    *-- Infotypes
    INFOTYPES : 0000, "Actions
                0002, "Personal Data
                0008. "Basic pay details
    *-- Tables
    TABLES : PERNR,   "Standard Selections for HR Master Data Reporting
             PC207,   "Payroll Results: Results Table
             PCL1,    "HR Cluster 1
             PCL2,    "HR Cluster 2
             T510,    "Pay scales
             T549A,   "Payroll areas
             T549Q,   "Payroll Periods
             PA0002.  "Personal details
    *-- Internal Tables
    *-- Internal Table Declaration For Holding The Data
    DATA: BEGIN OF INT_PETROL OCCURS 0,
            PERNR LIKE PA0008-PERNR,      "Personnel Number
            TRFST LIKE PA0008-TRFST,      "Pay Scale Level
            NAME(40),                     "Name of Employee
            PALLOWANCE TYPE P DECIMALS 2, "Petrol Allowance Amount
          END OF INT_PETROL.
    DATA: BEGIN OF PA0015_DATA OCCURS 0,
            PERNR LIKE PA0015-PERNR,
            BETRG LIKE PA0015-BETRG,
          END OF PA0015_DATA.
    DATA:BEGIN OF INT_PETROL2 OCCURS 0,
          PERNR LIKE PA0008-PERNR,      "Personnel Number
          VORNA LIKE PA0002-VORNA,      "First Name
          NACHN LIKE PA0002-NACHN,      "Last Name
          TRFST LIKE PA0008-TRFST,      "Pay Scale Level
          NAME(40),                     "Name of Employee
          PALLOWANCE TYPE P DECIMALS 2, "Petrol Allowance Amount
         END OF INT_PETROL2.
    DATA : TITLE TYPE LVC_TITLE.
    DATA:  BEGIN OF PER_NO OCCURS 0,
            PERNR LIKE PA0008-PERNR,
            TRFST LIKE PA0008-TRFST,
           END OF PER_NO.
    DATA: BEGIN OF MSG OCCURS 0,
          MSG1(100) TYPE C,
          END OF MSG.
    DATA: FLAG TYPE I VALUE '0',
          DIS_FLAG TYPE I VALUE '0'.
    DATA: INT_PETROL3 LIKE STANDARD TABLE OF INT_PETROL2 INITIAL SIZE 0
    WITH HEADER LINE.
    DATA: INT_PETROL1 LIKE STANDARD TABLE OF INT_PETROL INITIAL SIZE 0 WITH
    HEADER LINE.
    DATA: WA_PET_ALLOWANCE TYPE ZBPETROL_ALL.    "WORKAREA FOR INSERTING
    VALUES.
    *DATA: P_LGART1 LIKE T512T-LGART VALUE '0010'.  "CHANGE WAGE TYPE HERE
    DATA: P_LGART1 LIKE T512T-LGART VALUE '0077'.  "CHANGE WAGE TYPE HERE
    DATA: BEGIN OF INT_0015 OCCURS 0,
            PERNR(038),
            BEGDA(010),
            BETRG(018),
          END OF INT_0015.
    *--  Internal Table To Store Error Records.
    DATA: E_INT_0015 LIKE INT_0015 OCCURS 0 WITH HEADER LINE.
    *-- Batch Input Data of Single Transaction
    DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    *-- Internal Table For Export and Import Payroll Results
    DATA: INT_RGDIR LIKE PC261 OCCURS 0 WITH HEADER LINE,
          LGTXT LIKE T512T-LGTXT.
    DATA: BEGIN OF EMP_NO OCCURS 0,
            PERNR(4) TYPE C,
          END OF EMP_NO.
    DATA: BEGIN OF EMP_NO1 OCCURS 0,
            PERNR TYPE I,
          END OF EMP_NO1.
    DATA EMPNO LIKE STANDARD TABLE OF EMP_NO INITIAL SIZE 0.
    DATA EMPNO1 LIKE STANDARD TABLE OF EMP_NO1 INITIAL SIZE 0 WITH HEADER
    LINE.
    DATA LEN1 TYPE I.
    DATA: ERR  LIKE MESSAGE.
    DATA TEMP_NUM(200) TYPE C.
    *-- Includes
    *-- International Include
    INCLUDE RPC2CD09.  "Cluster CD data definition
    INCLUDE RPC2CA00.  "Cluster CA Data-Definition
    INCLUDE RPPPXD00.  "Data Definition buffer PCL1/PCL2 Buffer INCLUDE RPPPXD10.
    "Common part buffer PCL1/PCL2 INCLUDE RPPPXM00.  "Buffer Handling routine
    *-- Country Specific Include
    INCLUDE PC2RXIN0.  "Cluster IN data definition
    INCLUDE RPC2RX09.
    *-- ALV Declaration
    TYPE-POOLS : SLIS.
    DATA: INT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          INT_EVENTS TYPE SLIS_T_EVENT,
          INT_LAYOUT TYPE SLIS_LAYOUT_ALV,
          WS_EVENTS TYPE SLIS_ALV_EVENT,
          WS_REPID LIKE SY-REPID.
    *-- Initialization
    INITIALIZATION.
      WS_REPID = SY-REPID.
    *-- At Selection-Screen
    START-OF-SELECTION.
      SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
      SELECTION-SCREEN BEGIN OF LINE.
      SELECTION-SCREEN COMMENT 1(30) TEXT-002.
      SELECTION-SCREEN POSITION 33.
      PARAMETERS: P_RATE TYPE P DECIMALS 2.
      SELECTION-SCREEN END OF LINE.
      SELECTION-SCREEN END OF BLOCK B1.
      SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-003.
      SELECTION-SCREEN BEGIN OF BLOCK B3.
      PARAMETERS: P_UPLOAD AS CHECKBOX,
                  P_FG RADIOBUTTON GROUP G1,
                  P_BG RADIOBUTTON GROUP G1.
      SELECTION-SCREEN END OF BLOCK B3.
      SELECTION-SCREEN BEGIN OF BLOCK B4.
      PARAMETERS: P_DI AS CHECKBOX.
      SELECTION-SCREEN END OF BLOCK B4.
      SELECTION-SCREEN END OF BLOCK B2.
    AT SELECTION-SCREEN.
    *-- Wate Type Text
      SELECT SINGLE LGTXT INTO LGTXT FROM T512T WHERE SPRSL = 'E' AND
                                      MOLGA = '40' AND LGART = P_LGART1 .
    *-- Data Retrieval From Logical Database PNP
    GET PERNR.
      PROVIDE PERNR FROM P0000 VORNA NACHN FROM P0002 BETWEEN PN-BEGDA AND
    PN-ENDDA.
        INT_PETROL1-PERNR = P0000-PERNR.
        CONCATENATE P0002-VORNA P0002-NACHN INTO INT_PETROL1-NAME SEPARATED
    BY SPACE.
      ENDPROVIDE.
    *-- Clear Data
      CLEAR: RGDIR, INT_RGDIR.
      REFRESH: RGDIR, INT_RGDIR.
    *-- Read All The Payroll Runs For An Employee
      CD-KEY-PERNR = PERNR-PERNR.
      RP-IMP-C2-CU.
      CHECK RP-IMP-CD-SUBRC EQ 0.
    *-- Clear Data
      REFRESH: RT.
    Read IN Cluster.
      LOOP AT RGDIR WHERE FPBEG >= PN-BEGDA AND FPEND <= PN-ENDDA.
        MOVE-CORRESPONDING RGDIR TO INT_RGDIR.
        APPEND INT_RGDIR.
        CLEAR INT_RGDIR.
      ENDLOOP.
    Read the last record.
      SORT INT_RGDIR BY SEQNR DESCENDING.
      READ TABLE INT_RGDIR INDEX 1.
      RX-KEY-SEQNO = INT_RGDIR-SEQNR.
      RX-KEY-PERNR = PERNR-PERNR.
      RP-IMP-C2-IN.
      CHECK RP-IMP-IN-SUBRC EQ 0.
      READ TABLE RT WITH KEY LGART = P_LGART1.
      IF SY-SUBRC = 0.
        INT_PETROL1-PALLOWANCE = RT-BETRG.
      ENDIF.
      APPEND INT_PETROL1.
      CLEAR INT_PETROL1.
      SELECT TRFST PERNR
      INTO CORRESPONDING FIELDS OF TABLE PER_NO
      FROM PA0008
      WHERE TRFST LIKE 'L%'
      AND BET01 > 0.
      SORT PER_NO.
      DELETE ADJACENT DUPLICATES FROM PER_NO.
    *-- END-OF-SELECTION.
    END-OF-SELECTION.
      LOOP AT INT_PETROL1.
        READ TABLE PER_NO WITH KEY PERNR = INT_PETROL1-PERNR.
        IF SY-SUBRC = 0.
          INT_PETROL-TRFST = PER_NO-TRFST.
          MODIFY INT_PETROL1 FROM INT_PETROL TRANSPORTING TRFST.
        ENDIF.
      ENDLOOP.
      SORT INT_PETROL1.
      DELETE ADJACENT DUPLICATES FROM INT_PETROL1.
      CONCATENATE 'From'  '  :  ' PN-BEGDA6(2) '.' PN-BEGDA4(2) '.' PN-
    BEGDA+0(4)
      '   To' ' :  '  PN-ENDDA6(2) '.' PN-ENDDA4(2) '.' PN-ENDDA+0(4)
    INTO TITLE.
      IF P_DI = 'X'.    "TO DISPLAY PETROL ALLOWANCE ONLY
        IF PNPTIMRA = 'X'.      "CHECK OTHER PERIOD CHECKED
          DIS_FLAG = 1.
        ENDIF.
        IF PNPTIMR9 = 'X'.    "CHECK TO SEE CURRENT PERIOD SELECTED
    CASES - NO RATE GIVEN, RATE GIVEN
    CURRENT PERIOD UPLOADED BUT PAYROLL NOT WRITTEN SO NO RESULT FROM LDB
            SELECT RATE INTO P_RATE FROM ZBPETROL_ALL WHERE BEGDA = PN- BEGDA AND ENDDA = PN-ENDDA.
            ENDSELECT.
            IF SY-DBCNT = 0.
              MESSAGE I455(0) WITH 'NO PETROL RATE EXSISTS'.
            ELSE.
              FLAG = 1.
            ENDIF.  "OF SY-DBCNT
          IF P_RATE > 0 AND FLAG = 1. " PETROL RATE EXSISTS.
            SELECT PERNR SUM( BETRG ) INTO TABLE PA0015_DATA
            FROM PA0015
            WHERE BEGDA BETWEEN PN-BEGDA AND PN-ENDDA
            GROUP BY PERNR.
            SELECT APERNR ATRFST BVORNA BNACHN
            INTO CORRESPONDING FIELDS OF TABLE INT_PETROL3
            FROM PA0008 AS A
            INNER JOIN PA0002 AS B ON BPERNR = APERNR
            WHERE A~TRFST LIKE 'L%'
            AND A~BET01 > 0.
            SORT INT_PETROL3.
            DELETE ADJACENT DUPLICATES FROM INT_PETROL3.
            REFRESH INT_PETROL1.
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    employee name
              CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTO
    INT_PETROL2-NAME SEPARATED BY SPACE.
              MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.
            ENDLOOP.
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    one
    table to another table
              READ TABLE PA0015_DATA WITH KEY PERNR = INT_PETROL2-PERNR.
              IF SY-SUBRC = 0.
                INT_PETROL-PERNR = INT_PETROL2-PERNR.
                INT_PETROL-TRFST = INT_PETROL2-TRFST.
                INT_PETROL-NAME = INT_PETROL2-NAME.
                INT_PETROL-PALLOWANCE = PA0015_DATA-BETRG.
                APPEND INT_PETROL TO INT_PETROL1.
              ENDIF.
            ENDLOOP.
            DIS_FLAG = 1.
          ENDIF.  "P_RATE > 0 AND FLAG = 1.
          IF P_RATE > 0 AND FLAG = 0.  "CURRENT PERIOD AND DATA NOT UPLOADED
            SELECT APERNR ATRFST BVORNA BNACHN
            INTO CORRESPONDING FIELDS OF TABLE INT_PETROL3
            FROM PA0008 AS A
            INNER JOIN PA0002 AS B ON BPERNR = APERNR
            WHERE A~TRFST LIKE 'L%'
            AND A~BET01 > 0.
            SORT INT_PETROL3.
            DELETE ADJACENT DUPLICATES FROM INT_PETROL3.
            REFRESH INT_PETROL1.
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    employee name
              CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTO
    INT_PETROL2-NAME SEPARATED BY SPACE.
              MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.
            ENDLOOP.
            PERFORM GET_VALUE.  "TO CONVERT THE FIRST SCREEN PERNR INTO
    NUMBER FORMATE
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    one
    table to another table
              READ TABLE EMPNO1 WITH KEY PERNR = INT_PETROL2-PERNR.
              IF SY-SUBRC <> 0.
                INT_PETROL-PERNR = INT_PETROL2-PERNR.
                INT_PETROL-TRFST = INT_PETROL2-TRFST.
                INT_PETROL-NAME = INT_PETROL2-NAME.
                APPEND INT_PETROL TO INT_PETROL1.
              ENDIF.
            ENDLOOP.
            PERFORM CAL_ALLOWANCE.
          ENDIF.  " OF P_RATE > 0
          DIS_FLAG = 1.
        ENDIF.  " OF CURRENT PERIOD CHECK.
      ENDIF.  " OF CHECK DISPLAY.
    *----BDC
      IF P_UPLOAD = 'X'.
        IF PNPTIMRA = 'X'.      "CHECK OTHER PERIOD CHECKED
          MESSAGE I455(0) WITH 'Petrol Allowance cannot be uploaded'.
          LEAVE SCREEN.
        ENDIF.
        IF P_RATE > 0.
         IF P_RATE > 0 OR P_RATE = 0.
          IF PNPTIMR9 = 'X'.    "CHECK TO SEE CURRENT PERIOD SELECTED
            WA_PET_ALLOWANCE-BEGDA = PN-BEGDA.
            WA_PET_ALLOWANCE-ENDDA = PN-ENDDA.
            WA_PET_ALLOWANCE-RATE = P_RATE.
            WA_PET_ALLOWANCE-CURR = 'INR'.
            INSERT INTO ZBPETROL_ALL VALUES WA_PET_ALLOWANCE.
            SELECT A~PERNR A~TRFST B~VORNA B~NACHN
            INTO CORRESPONDING FIELDS OF TABLE INT_PETROL3
            FROM PA0008 AS A
            INNER JOIN PA0002 AS B ON B~PERNR = A~PERNR
            WHERE A~TRFST IN ('L1' , 'L2' , 'L3')
            AND A~BET01 > 0.
            SORT INT_PETROL3.
            DELETE ADJACENT DUPLICATES FROM INT_PETROL3.
            REFRESH INT_PETROL1.
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    employee name
              CONCATENATE INT_PETROL2-VORNA INT_PETROL2-NACHN INTO
    INT_PETROL2-NAME SEPARATED BY SPACE.
              MODIFY INT_PETROL3 FROM INT_PETROL2 TRANSPORTING NAME.
            ENDLOOP.
            PERFORM GET_VALUE.  "TO CONVERT THE FIRST SCREEN PERNR INTO
    NUMBER FORMATE
            LOOP AT INT_PETROL3 INTO INT_PETROL2.    "loop to transport
    one
    table to another table
              READ TABLE EMPNO1 WITH KEY PERNR = INT_PETROL2-PERNR.
              IF SY-SUBRC <> 0.
                INT_PETROL-PERNR = INT_PETROL2-PERNR.
                INT_PETROL-TRFST = INT_PETROL2-TRFST.
                INT_PETROL-NAME = INT_PETROL2-NAME.
                APPEND INT_PETROL TO INT_PETROL1.
              ENDIF.
            ENDLOOP.
            PERFORM CAL_ALLOWANCE.
            DIS_FLAG = 1.
            SORT INT_PETROL1.
            LOOP AT INT_PETROL1.
              MOVE: INT_PETROL1-PERNR TO INT_0015-PERNR,
              INT_PETROL1-PALLOWANCE TO INT_0015-BETRG.
              CONCATENATE PN-ENDDA6(2) PN-ENDDA4(2) PN-ENDDA+0(4) INTO
    INT_0015-BEGDA SEPARATED BY '.'.
              APPEND INT_0015.
              CLEAR INT_0015.
            ENDLOOP.
            LOOP AT INT_0015.
              PERFORM F_BDCDATA.
              IF P_FG = 'X'.
                CALL TRANSACTION 'PA30' USING BDCDATA MODE 'A' UPDATE 'S'.
              ELSE.
                CALL TRANSACTION 'PA30' USING BDCDATA MODE 'N' UPDATE 'S'.
              ENDIF.
    *-- Handling Error records.
              IF SY-SUBRC <> 0.
    *-- Handling Error Messages
                PERFORM ERROR_MSG.
                MOVE-CORRESPONDING INT_0015 TO E_INT_0015.
                APPEND E_INT_0015.
                CLEAR E_INT_0015.
              ENDIF.
              REFRESH BDCDATA.
            ENDLOOP.
    *-- Downloading Error Records.
            CALL FUNCTION 'GUI_DOWNLOAD'
              EXPORTING
                FILENAME = 'C:\Errors.Txt'
                FILETYPE = 'ASC'
              TABLES
                DATA_TAB = E_INT_0015.
    *-- Downloading Error Messages.
            CALL FUNCTION 'GUI_DOWNLOAD'
              EXPORTING
                FILENAME = 'C:\Err_Msg.Txt'
                FILETYPE = 'ASC'
              TABLES
                DATA_TAB = MSG.
          ENDIF.  " FOR CURRENT PERIOD
      ENDIF.
        ELSE.
          MESSAGE I455(0) WITH 'Enter Petrol Rate'.
          LEAVE TO SCREEN 0.
        ENDIF.    " FOR PETROL RATE
      ENDIF.    " FOR UPLOAD
      IF DIS_FLAG = 1.
        INT_LAYOUT-SUBTOTALS_TEXT = TEXT-004.
        INT_LAYOUT-TOTALS_TEXT = TEXT-004.
        INT_LAYOUT-ZEBRA = 'X'.
        PERFORM FILL_FIELDCAT.
        PERFORM GET_EVENTS_ALV.
        CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          EXPORTING
            I_CALLBACK_PROGRAM = WS_REPID
            IS_LAYOUT          = INT_LAYOUT
            IT_FIELDCAT        = INT_FIELDCAT[]
            I_DEFAULT          = 'X'
            I_SAVE             = 'X'
            IT_EVENTS          = INT_EVENTS
          TABLES
            T_OUTTAB           = INT_PETROL1
          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.
      ENDIF.
    *&      Form  GET_VALUE
          text
    FORM GET_VALUE.
      GET PARAMETER ID: 'NUM' FIELD TEMP_NUM.
      IF TEMP_NUM <> ''.
        LEN1 = STRLEN( TEMP_NUM ).
        PERFORM GET_PERNR.
        APPEND TEMP_NUM TO EMPNO.
        LOOP AT EMPNO INTO EMP_NO.
          CALL FUNCTION 'CHECK_AND_CONVERT_NUMERICS'
          EXPORTING
        DFELD              = ' '
            DMZEI              = ','
            DTYPE              = 'STRING'
        DYPNO              = ' '
            EFELD              = EMP_NO-PERNR
        FNAME              = ' '
        PROGR              = ' '
        IMP_DECIMALS       = '0'
          IMPORTING
        ERROR              =
           IFELD              = EMP_NO1-PERNR
           MESSG              = ERR
        MSGLN              =
          IF ( ERR-MSGID = '' ).
            APPEND EMP_NO1 TO EMPNO1.
            CLEAR EMP_NO1-PERNR.
          ELSE.
            MESSAGE I455(0) WITH 'Could not convert employee number'.
            LEAVE TO SCREEN 0.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    "GET_VALUE
    *&      Form  GET_PERNR
          text
    FORM GET_PERNR.
      SPLIT TEMP_NUM AT ',' INTO EMP_NO TEMP_NUM.
      APPEND EMP_NO TO EMPNO.
      CLEAR EMP_NO.
      SEARCH TEMP_NUM FOR ','.
      IF SY-SUBRC = 0.
        PERFORM GET_PERNR.
      ENDIF.
    ENDFORM.                    "GET_PERNR
    *&      Form  ERROR_MSG
          text
    -->  p1        text
    <--  p2        text
    FORM ERROR_MSG.
      IF SY-SUBRC <> 0.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            LANG = SY-LANGU
          IMPORTING
            MSG  = MSG-MSG1.
        APPEND MSG.
        CLEAR MSG.
      ENDIF.
    ENDFORM.                    "ERROR_MSG
    *&      Form  F_BDCDATA
          text
    FORM F_BDCDATA.
      PERFORM BDC_DYNPRO      USING 'SAPMP50A' '1000'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=INS'.
      PERFORM BDC_FIELD       USING 'RP50G-PERNR'
                                    INT_0015-PERNR.
      PERFORM BDC_FIELD       USING 'RP50G-TIMR6'
                                    'X'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'RP50G-CHOIC'.
      PERFORM BDC_FIELD       USING 'RP50G-CHOIC'
                                    '0015'.
      PERFORM BDC_DYNPRO      USING 'MP001500' '2000'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'Q0015-BETRG'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '/00'.
      PERFORM BDC_FIELD       USING 'P0015-LGART'
                                    '0077'.        "CHANGE WAGE TYPE HERE
    ALSO
      PERFORM BDC_FIELD       USING 'Q0015-BETRG'
                                    INT_0015-BETRG.
      PERFORM BDC_FIELD       USING 'P0015-WAERS'
                                    'INR'.
      PERFORM BDC_FIELD       USING 'P0015-BEGDA'
                                     INT_0015-BEGDA.
      PERFORM BDC_DYNPRO      USING 'MP001500' '2000'.
      PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                    'P0015-LGART'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=UPD'.
      PERFORM BDC_FIELD       USING 'P0015-LGART'
                                    '0077'.       "CHANGE WAGE TYPE HERE
    ALSO
      PERFORM BDC_FIELD       USING 'Q0015-BETRG'
                                    INT_0015-BETRG.
      PERFORM BDC_FIELD       USING 'P0015-WAERS'
                                    'INR'.
      PERFORM BDC_FIELD       USING 'P0015-BEGDA'
                                    INT_0015-BEGDA.
    ENDFORM.                    "F_BDCDATA
    *&      Form  BDC_DYNPRO
          text
         -->P_0732   text
         -->P_0733   text
    FORM BDC_DYNPRO  USING    VALUE(P_0732) TYPE C
                              VALUE(P_0733) TYPE C.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = P_0732.
      BDCDATA-DYNPRO   = P_0733.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.                    " BDC_DYNPRO
    *&      Form  BDC_FIELD
          text
         -->P_0755   text
         -->P_0756   text
    FORM BDC_FIELD  USING    VALUE(P_0755) TYPE C
                             VALUE(P_0756) TYPE C.
      CLEAR BDCDATA.
      BDCDATA-FNAM = P_0755.
      BDCDATA-FVAL = P_0756.
      APPEND BDCDATA.
    ENDFORM.                    " BDC_FIELD
    *&      Form  CAL_ALLOWANCE
          text
    FORM CAL_ALLOWANCE.
      LOOP AT INT_PETROL1 INTO INT_PETROL.
        IF INT_PETROL-TRFST = 'L1'.
          INT_PETROL-PALLOWANCE = P_RATE * 100.   "CHANGE TO SELECT WHEN
    DISPLAY
        ELSEIF INT_PETROL-TRFST = 'L2'.
          INT_PETROL-PALLOWANCE = P_RATE * 150.
        ELSEIF INT_PETROL-TRFST = 'L3'.
          INT_PETROL-PALLOWANCE = P_RATE * 150.
        ELSEIF INT_PETROL-TRFST = 'L4'.
    INT_PETROL-PALLOWANCE = P_RATE * 200.
        ELSEIF INT_PETROL-TRFST = 'L5'.
    INT_PETROL-PALLOWANCE = P_RATE * 250.
        ENDIF.
        MODIFY INT_PETROL1 FROM INT_PETROL TRANSPORTING PALLOWANCE.
      ENDLOOP.
    ENDFORM.                    "CAL_ALLOWANCE
    *&      Form  FILL_FIELDCAT
          text
    -->  p1        text
    <--  p2        text
    FORM FILL_FIELDCAT.
      INT_FIELDCAT-COL_POS = 1.
      INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
      INT_FIELDCAT-FIELDNAME = 'PERNR'.
      INT_FIELDCAT-SELTEXT_L = TEXT-005.
      INT_FIELDCAT-OUTPUTLEN = 10.
      INT_FIELDCAT-KEY = 'X'.
      APPEND INT_FIELDCAT.
      CLEAR INT_FIELDCAT.
      INT_FIELDCAT-COL_POS = 2.
      INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
      INT_FIELDCAT-FIELDNAME = 'NAME'.
      INT_FIELDCAT-SELTEXT_L = TEXT-006.
      INT_FIELDCAT-OUTPUTLEN = 25.
      INT_FIELDCAT-KEY = 'X'.
      APPEND INT_FIELDCAT.
      CLEAR INT_FIELDCAT.
      INT_FIELDCAT-COL_POS = 3.
      INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
      INT_FIELDCAT-FIELDNAME = 'TRFST'.
      INT_FIELDCAT-SELTEXT_L = TEXT-007.
      INT_FIELDCAT-OUTPUTLEN = 5.
      INT_FIELDCAT-KEY = 'X'.
      APPEND INT_FIELDCAT.
      CLEAR INT_FIELDCAT.
      INT_FIELDCAT-COL_POS = 4.
      INT_FIELDCAT-TABNAME = 'INT_PETROL1'.
      INT_FIELDCAT-FIELDNAME = 'PALLOWANCE'.
      INT_FIELDCAT-SELTEXT_L = TEXT-008.
      INT_FIELDCAT-OUTPUTLEN = 16.
      INT_FIELDCAT-KEY = 'X'.
      APPEND INT_FIELDCAT.
      CLEAR INT_FIELDCAT.
    ENDFORM.                    " FILL_FIELDCAT
    *&      Form  GET_EVENTS_ALV
          text
    -->  p1        text
    <--  p2        text
    FORM GET_EVENTS_ALV.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE     = 1
        IMPORTING
          ET_EVENTS       = INT_EVENTS[]
        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.
      READ TABLE INT_EVENTS INTO WS_EVENTS WITH KEY NAME =
    SLIS_EV_TOP_OF_PAGE.
      IF SY-SUBRC = 0.
        WS_EVENTS-FORM = 'TOP'.
        MODIFY INT_EVENTS FROM WS_EVENTS INDEX SY-TABIX.
      ENDIF.
    ENDFORM.                    " GET_EVENTS_ALV
    *&      Form  TOP-OF-PAGE
          text
    FORM TOP.
    *-- ALV Declarations
      DATA: WS_HEADER TYPE SLIS_T_LISTHEADER,
            WA_HEADER TYPE SLIS_LISTHEADER.
    *-- Title
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = TEXT-009.
      APPEND WA_HEADER TO WS_HEADER.
      CLEAR WA_HEADER.
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = TITLE.
      APPEND WA_HEADER TO WS_HEADER.
      CLEAR WA_HEADER.
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = ' '.
      APPEND WA_HEADER TO WS_HEADER.
      CLEAR WA_HEADER.
      WA_HEADER-TYP = 'H'.
      WA_HEADER-INFO = ' '.
      APPEND WA_HEADER TO WS_HEADER.
      CLEAR WA_HEADER.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          IT_LIST_COMMENTARY = WS_HEADER
          I_LOGO             = 'LOGO'.
    ENDFORM.                    "TOP-OF-PAGE
    regards
    karthik
    Edited by: KARTIKEYA (EDS-VZG) on May 5, 2008 1:41 PM

  • Data fetching from Standard tables or transaction to SAP PI

    Dear Friends !
         Good day ! How are you ? 
         I have one requirement , My client asks me to develop a solution in that I should get the data from standard SAP tables like EKKO, EKPO ( MM related ) etc..  and send it to PI system and then PI system sends it to third party system database system.
    We have current scenario is working fine,  I have abap proxy that I called in various  standard transaction codes ( MIRO, MIGO, etc ) ' Baddis just beforethe commit stament and it passed the data to SAP PI system and it sends to SQL system.
    but my client dont want me to use Baddis. Client wants  like u should read from those EKKO,EKPO tables as soon as you get new entry there and send it to PI system.  I have no clue How can I go further in that. Shall I use events ? but then question is same I need to trgger them somewere?  Is any one have idea  How I can send the data to PI system frm SAP standard tcodes and tables without using Baddis.
    Please reply me. your any help will be appreciated.
    Regards
    Naeem

    The current Approach of your development perfectly good approach,
    it is not possbiel to read data directly from SAP Tables, you have to use IDoc/RFC/Proxy,if you want to avoid BADI's then better to contact ABAP Team, they will help you different approches .
    But you have to use Porxy/IDoc/BAPI for sure.
    Regards,
    Raj

  • Calling custom dialog screen from Standard Transaction(user Exit)

    Hi, I'm calling Standard Transaction from a Custom Screen. I'm calling a custom screen again with in standard transaction (implemented custom screen thru user exits using macros). But when I click 'continue/cancel' in the custom screen, control is going back to main cutom screen rather go back to standard transaction. Could anyone please help me out how to come back to standard transaction from custom screen rather going back to main cutom screen.
    ***INCLUDE LZ_R_FORWARD_FORWARD_LOADI01 .
    *&      Module  USER_COMMAND_9000  INPUT
    MODULE user_command_9000 INPUT.
      CASE sy-ucomm.
        WHEN 'EXEC'.
          PERFORM validate_popup_data.
          IF flag_error_screen NE 'X'.
            MOVE-CORRESPONDING ZFFL_POPUP to var_ZFFL_POPUP.
            clear flag_return.
            SET SCREEN 0.
            LEAVE SCREEN.
          ENDIF.
        WHEN 'CANC'.
          flag_return = 'X'.
          SET SCREEN 0.
          LEAVE SCREEN.
        WHEN OTHERS.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_9000  INPUT
    *&      Module  exit_9000  INPUT
    MODULE exit_9000 INPUT.
      CASE sy-ucomm.
        WHEN 'CANC'.
    *      MOVE perf_flag TO lbpla_exist_flag.
          flag_return = 'X'.
          SET SCREEN 0.
          LEAVE SCREEN.
      ENDCASE.
    ENDMODULE.                 " exit_9000  INPUT
    Thanks in advance.

    Hi
    So the command SET SCREEN 0. LEAVE SCREEN. should "place" the program just after the calling of the popup so here:
    FUNCTION z_call_screen.
    * Call the Pop up screen
        CALL SCREEN 9000 STARTING AT 35 05.
    "<------------------------- The program should be here after going back from popup 9000
    ENDFUNCTION.
    Is it true?
    Max

  • COPY INFORMATION BUTTON FROM STANDARD TRANSACTION

    Hi!
    I want to copy the selection screen from the standard transaction QA07, and also I want to copy the information button that appers next to the excecution button.
    How can I copy that information button????
    Thanks a lot!!!!

    The report RQAAAS10 has the documentation and because of that documentation, the information button is coming on the QA07.
    To copy this documentation:
    Go to SE63
    R3 Objects > Long Texts
    Select the L5 > RE ( Reports, Function Groups, Logical Databases) node form the popup
    Enter Report RQAAAS10
    Select your languages and press Edit.
    Select the Fullscreen Button.
    Form the Fullscreen.. Text > Download.
    Now, in your program upload this documentation.
    By selecting the Text  > Upload in the documentation section.
    Regards,
    Naimesh Patel

  • Make purchase order lineu00B4s posting date visible from miro transaction

    I have tried to add purchase order line´s posting date from "spro-Materials Management- Logistics Invoice Verification-
    Incoming Invoice- Maintain Item List Variants" but I can´t.
    Is it possible?
    Thanks in advance.

    I just checked and you're right.  Amazing the posting date isn't included as std.
    This might help, you'll need a development.
    Screen Exit for MIRO transaction
    (If you want a screen variant based on existing available use tx OLMRLIST)
    Regards

  • Need Help in Data migration from standard 10g to standard to 11g RAC

    Hi,
    We are running an application in Standard 10g (Not RAC). Our service provider has installed a fresh standard 11g RAC and did not transfer the data from 10g to 11g RAC.
    I want to migrate the 10g data to 11g RAC.
    I wanted to know the followings
    1) Easy data transfer technique (Data Pump or RMAN) & How do I do that (Steps)
    2) How to backup the fresh 11g RAC (In case of errors in data transfer process to recover the base) (How to do)
    Appreciate your help as I only have average knowledge in DBA.
    Thanks.
    Jezee
    Edited by: 991554 on Mar 3, 2013 11:27 PM

    See the 11g Upgrade guide chapter "Moving Data Using Oracle Data Pump" http://docs.oracle.com/cd/E11882_01/server.112/e23633/expimp.htm#i262220
    See the 11g RAC Administration and Deployment Guide chapter "Managing Backup and Recovery" http://docs.oracle.com/cd/E11882_01/rac.112/e16795/backup.htm#i443637
    Get some training on 11g Grid Infrastructure and RAC
    Hemant K Chitale

  • Data retrival from XML nodes

    Hello all
    I have a xml file somthing like this
    - <lbs-server>
    - <location-results>
    - <error>
    <number>12</number>
    <information>Invalid credentials</information>
    <system method="NULL" />
    </error>
    </location-results>
    - <server-time>
    <date>13</date>
    <month>6</month>
    <year>2006</year>
    <hour>15</hour>
    <minute>10</minute>
    <second>4</second>
    </server-time>
    <server-interface>1.0.5 uguduwa</server-interface>
    </lbs-server>
    Can i use somthing like getNodeValue(lbs-server/location-results/error/number) to retrive the error number from the above structure. if this is possible or alternative please explain with a sample code cause i am bit new to this techonlogy.
    Thanks in advance
    Prash

    To retrive the error number from the XML file, you can use JDOM API, and say:
    Document doc = builder.build(XML_File_Name);
    Element root = doc.getRootElement();
    Element lr_elt = root.getChild("location-results");
    Element error_elt = lr_elt.getChild("error");
    Element number_elt = error_elt.getChild("number");
    String your_value = number_elt.getText();
    JDom has features of both SAX & DOM Parsers. You can find more info on Jdom at :
    http://www.javaworld.com/javaworld/jw-05-2000/jw-0518-jdom.html
    http://www.oreilly.com/catalog/jenut2/chapter/ch19.html#AUTOID-14859

  • Data Retrival from BSEG Table

    Hi,
    Can any one tell me how to retrive the partial payment accounting documents from BSEG table as I
    Can't use REBZG field of BSEG which is not a primary key ?
    Regards,
    Krishnam Raju

    Hi
    U need to get all payments and check if they are partial payment.
    I don't know which kind of items (vendor or customer) u need to control, but if u need to check the customer payments:
    - A) Select the payments from cleared items (BSAK table)
    - B) Check if the field  REBZG is filled
    Max

  • Data retrival from cluster table using BUFFER???????????

    Hi,
    i would like to retreive payroll results from it's allocated cluster tables using buffer.
    i donot know how to use BUFFER concept and it's statments.
    could anyone guide me in this topic?
    thanks
    theresita.j

    Hi theresita,
    i would like to retreive payroll results from it's allocated cluster tables .
    1. U want the remuneration (monthly salary )
    2. U won't get it DIRECTLY from any table.
    (Its stored in cluster format)
    3. Use this logic and FM.
    DATA: myseqnr LIKE hrpy_rgdir-seqnr.
    DATA : mypy TYPE payin_result.
    DATA : myrt LIKE TABLE OF pc207 WITH HEADER LINE.
    SELECT SINGLE seqnr FROM hrpy_rgdir
    INTO myseqnr
    WHERE pernr = mypernr
    AND fpper = '200409'
    AND srtza = 'A'.
    IF sy-subrc = 0.
    CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
    EXPORTING
    clusterid = 'IN'
    employeenumber = mypernr
    sequencenumber = myseqnr
    CHANGING
    payroll_result = mypy
    EXCEPTIONS
    illegal_isocode_or_clusterid = 1
    error_generating_import = 2
    import_mismatch_error = 3
    subpool_dir_full = 4
    no_read_authority = 5
    no_record_found = 6
    versions_do_not_match = 7
    error_reading_archive = 8
    error_reading_relid = 9
    OTHERS = 10.
    myrt[] = mypy-inter-rt.
    READ TABLE myrt WITH KEY lgart = '1899'.
    4. the internal table myrt
    will contain what u require.
    I dont think there is any buffering concept
    involved in cluster table.
    regards,
    amit m.

  • Data retrival from LDAP into SAP

    Hi All,
    I want to get the list of all the users and there relivent data from LDAP  server....
    How to do that from SAP...
    Thr are certain FM's availables ,i dont knw how to use them...
    If any one provide me with code ,i will be helpful...
    every answer will be awarded...
    Thnx
    Rohit

    HI
    LDAP_OBJECT_CREATE
    LDAP_OBJECT_DELETE
    LDAP_OBJECT_READ
    LDAP_OBJECT_SEARCH
    LDAP_OBJECT_UPDATE
    http://help.sap.com/saphelp_nw70/helpdata/en/0b/d82c4142aef623e10000000a155106/content.htm
    [Refer Page No 12 |https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/06187a32-0a01-0010-709b-e664a61eab08]
    Regards
    Pavan

  • [b]How to improve data retrival from a table?[/b]

    Hi,
    I have table with 600 million records having 8 fields and containing 30 days data.
    The table is partitioned with 10 segments. Each segments having equal updates or deletion.
    The table is indexed with a time field.
    While I am using a query to retrieve data for 14 days it takes around 9 hours(I was not using any order by or group by key word) by using the time field index.
    Could you please suggest any methods to improve the data retrieval?
    Thanks in advance

    Hi,
    You have data of 30 days, from them you want to retive 14 days, which is about 50% or 300M Rows. Why would you use an index to do that? A FTS would probably be much faster.
    Also could you please show the query itsel as well as the explain plan.
    Maurice

  • Get every update from standard transaction (PTMW)

    Hi guys,
    The main idea is to get an exit every time a user do updates or create new data.
    any badi, rfc or something that can help me?
    or do i need to search all the exits in the PTMW and search if the exit helps me?
    tks in advance.

    Hi,
    For BADI definition use SE18 and for implementation SE19.
    You want to check functionality of this BADI see documentaiton thru SE18.
    BADI
    aRs

  • Data retrival from PSA

    Dear All,
    We have SAP BW system at our place,
    There was some data related issue in SAP R/3 Side due to which Daily updates were unsuccessfull.
    We corrected the issue in SAP R/3 Side.
    and updated data using full uopdate, This might have deleted some data due to data replication or any other reason.
    Now i have reset it to delta update. and update process is running successfuly.
    But now i find data for some period is missing.
    Please help to resolve this issue.
    Regards,
    Gaurav

    Hi Gaurav,
    Find out selections for missing records.
    If you are using an infocube perform deletion for the above found selections However if you are using an ods/dso ( in overwrite mode ) no deletion is required .
    Create an infopackage, go to scheduler menu and select repair Full load:
    give the selections in the data selections tab , these selections should be similar to what used while deleting the records,
    Update mode Full
    Start the infopackage
    This is how we perform repair full request
    Hope this helps
    Please assign points if helpful
    Manish

  • Passing data from one transaction to another

    Hello ,
    I have internal table  as a result of user  selection on the selection screen of first transaction.
    Internal table can have any number of  lines that have to be processed in second transaction.
    How I can pass data ( list ) from first transaction to second one.
    Please advice
    Krsto

    Hi Krsto,
    Firstly i didnt understood the concept of transactions.
    U can pass the data of one views table selcted data into the other or to capture the data  .
    Try using these two methods
    1. Cal method get_selected_elements.
    2. Or else if u want whole table data to be captured then use Get_static_attributes_table
    I am sure by one of this methods yuor data will be passed.
    This methods are used for the table data selected will be captured and write the code accordingly as u wish
    regards,
    Sana.

Maybe you are looking for