BDC  for actions PA40

Hi All,
I am going for a BDC in PA40 for hiring action.
Please guide me is it correct to go for BDC in PA40.
Thanks in advance.

Hi Albert,
I can only agree with Samuel. The only correct way to "create" a new employee is to use batch input.
You can modify the infogroup by using your own user group. Thus you can reduce the number of infotypes (table T588D) to meet exactly your batch input demands.
Please note, that in batch input no dynamic actions will be processed.
Regards
CHRIS

Similar Messages

  • Problem in BDC For Actions

    Hi All,
    I am making a BDC for IT0000.
    I have done the recording and developed a program for that.
    IT0105 is also there in info grouping for action.When I am executing the bdc in Foreground Processing the error is coming "No batch input data for screen MP010500 2000" for IT0105.
    When I am processing the program in background error is coming in the screen IT0105.But the screen displayed here for IT0105 shows different fields from what it shows in foreground processing.
    Can anyone help me out in solving the problem?

    Hi Sutapa,
    Try making the call transaction in mode 'E' and it will stop in the screen which is giving you the error. Some screens will come up only during the backend run(mode N). So in that case you need to write the code after seeing it in mode 'E' which all are the screens coming up.
    Cheers
    JK.

  • Bdc for pa40

    hi
    i am going to make bdc program for pa40 which is of hr module .
    i want to know whether bdc program will be similar or different for hr module .
    regards
    Rakesh singh

    hi rakesh,
    check this out....
    *include bdcrecx1.
    TABLES: t100.
          Type Declaration                                               *
    TYPES : BEGIN OF t_pa40,
    *----INFO TYPE 0000
           pernr       TYPE bapip0001-pernr,    "EMPLOYEE NUMBER
           einda       TYPE dats,
           begda(10)   TYPE c,    "start date
           plans(8)    TYPE c,    "POSITION
           massn(2)    TYPE c,    "Action Type
           massg(2)    TYPE c,    "reason for action
           werks(4)    TYPE c,    "PERSONAL AREA
           persg(1)    TYPE c,    "EMPLOYEE GROUP
           persk(2)    TYPE c,    "Employee Subgroup
    *----INFO TYPE 0002
           anrex(5)    TYPE c,    "Form of address text
           nachn(40)   TYPE c,    "Last Name
           vorna(40)   TYPE c,    "FIRST NAME
           inits(10)   TYPE c,    "INITIALS
           gesch(1)    TYPE c,    "gender key
           gbdat(10)   TYPE c,    "DATE OF BIRTH
           fatxt(1)    TYPE c,    "MARITAL STATUS,
          famdt(10)   TYPE c,    "DATE OF MARRIAGE,
    *----INFO TYPE 0001
           btrtl(4)    TYPE c,    "Personnel Subarea
           gsber(4)    TYPE c,    "Business Area
           abkrs(2)    TYPE c,    "Payroll Area
    *----INFO TYPE 0006
           anssa(4)    TYPE c,    "ADDRESS TYPE
           stras(60)   TYPE c,    "STREET
           locat(40)   TYPE c,    "2nd LINE ADDRESS
           pstlz(10)   TYPE c,    "POSTAL CODE
           ort01(40)   TYPE c,    "City
           telnr(14)   TYPE c,    "Telephone number
    *----INFO TYPE 0007
           schkz(8)    TYPE c,    "Work Schedule Rule
    *----INFO TYPE 0008
           trfar(2)    TYPE c,    "PAY SCALE TYPE,
           trfgb(2)    TYPE c,    "PAY SCALE AREA
           divgv(5)    TYPE c,    "Hours worked per payroll period
           trfgr(8)    TYPE c,    "Pay Scale Group
           trfst(2)    TYPE c,    "level
    *----EMPLOYEE WAGE_TYPES
           lga01(4)    TYPE c,    "Wage type-----LINE ITEM 1(5000)
           lga02(4)    TYPE c,    "Wage type-----LINE ITEM 2(5010)
           lga03(4)    TYPE c,    "Wage type-----LINE ITEM 3(5020)
           lga04(4)    TYPE c,    "Wage type-----LINE ITEM 4(5030)
           lga05(4)    TYPE c,    "Wage type-----LINE ITEM 5(5040)
    *----EMPLOYEE WAGE AMOUNTS
           bet01(13)   TYPE c,    "Wage Type Amount for Payments
           bet02(13)   TYPE c,    "Wage Type Amount for Payments
           bet03(13)   TYPE c,    "Wage Type Amount for Payments
           bet04(13)   TYPE c,    "Wage Type Amount for Payments
           bet05(13)   TYPE c,    "Wage Type Amount for Payments
    *----INFO TYPE 0009
           bankl(15)   TYPE c,    "BANK KEY
           bankn(18)   TYPE c,    "BANK ACCOUNT NUMBER
           zlsch(1)    TYPE c,    "Payment Method,
    *----info-587,588,185.
           tstid(4)    TYPE c,    "PF TRUST ID
           penid(4)    TYPE c,    "PENSION TRUST ID
           eepfn(20)   TYPE c,    "PF NUMBER,
           eepnn(20)   TYPE c,    "PENSION NUMBER
           eevpf(5)    TYPE c,    "Voluntary Provident fund
           evpfa(15)   TYPE c,    "Employee VPF Amount
           pnflg(1)    TYPE c,    "Contribution for Pension scheme flag
           ptxel(1)    TYPE c,    "Eligibility for PTax
           ictyp       LIKE p0185-ictyp,  "Id Type
           icnum       LIKE p0185-icnum,  "ID NUMBER
          auth1       LIKE p0185-auth1,  "Author
           END OF t_pa40.
          Internal table declaration                                     *
    DATA : i_pa40 TYPE TABLE OF t_pa40 WITH HEADER LINE.
          bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
      data definition
          Batchinputdata of single transaction
    DATA:   bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.
          messages of call transaction
    DATA:   messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
          error session opened (' ' or 'X')
    DATA:   e_group_opened.
          message texts
    DATA: l_mstring(480).
    DATA: l_subrc LIKE sy-subrc.
          Variables Declaration                                          *
    DATA: v_fname TYPE string,
          v_ftype(10) TYPE c VALUE 'ASC'.
          Constants Declaration                                          *
    CONSTANTS: m1 VALUE 'E',
               u1 VALUE 'S'.
          Selection screen                                               *
    PARAMETERS: p_fname TYPE rlgrap-filename.
          For F4                                                         *
    AT SELECTION-SCREEN  ON VALUE-REQUEST FOR p_fname.
      CALL FUNCTION 'F4_FILENAME'
        IMPORTING
          file_name = p_fname.
          start of selection                                             *
    START-OF-SELECTION.
      MOVE p_fname TO v_fname.
          GUI uploading                                                  *
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename            = v_fname
          filetype            = v_ftype
          has_field_separator = 'X'
        TABLES
          data_tab            = i_pa40.
      LOOP AT i_pa40.
        REFRESH bdcdata.
    *perform open_group.
          BDC recording                                                  *
        PERFORM bdc_dynpro      USING 'SAPMP50A' '2000'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'T529T-MNTXT(01)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=PICK'.
        PERFORM bdc_field       USING 'RP50G-PERNR'
                                      i_pa40-pernr.             "'77116'.
        PERFORM bdc_field       USING 'RP50G-EINDA'
                                      i_pa40-einda.        "'13.12.2007'.
        PERFORM bdc_field       USING 'RP50G-SELEC(01)'
                                      'X'.
        PERFORM bdc_dynpro      USING 'MP000000' '2000'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'PSPAR-PERSK'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPD'.
        PERFORM bdc_field       USING 'PSPAR-PERNR'
                                      i_pa40-pernr.        "'   77116'.
        PERFORM bdc_field       USING 'P0000-BEGDA'
                                      i_pa40-begda.        "'13.12.2007'.
        PERFORM bdc_field       USING 'P0000-ENDDA'
                                      '31.12.9999'.
        PERFORM bdc_field       USING 'P0000-MASSN'
                                      i_pa40-massn.             "'01'.
        PERFORM bdc_field       USING 'P0000-MASSG'
                                      i_pa40-massg.             "'01'.
        PERFORM bdc_field       USING 'PSPAR-PLANS'
                                      i_pa40-plans.        "'99999999'.
        PERFORM bdc_field       USING 'PSPAR-WERKS'
                                      i_pa40-werks.             "'1000'.
        PERFORM bdc_field       USING 'PSPAR-PERSG'
                                      i_pa40-persg.             "'1'.
        PERFORM bdc_field       USING 'PSPAR-PERSK'
                                      i_pa40-persk.             "'01'.
        PERFORM bdc_dynpro      USING 'MP000200' '2040'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'P0002-NATIO'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPD'.
        PERFORM bdc_field       USING 'P0002-BEGDA'
                                      i_pa40-begda.        "'13.12.2007'.
        PERFORM bdc_field       USING 'P0002-ENDDA'
                                      '31.12.9999'.
        PERFORM bdc_field       USING 'Q0002-ANREX'
                                      i_pa40-anrex.        "'Mr'.
        PERFORM bdc_field       USING 'P0002-NACHN'
                                      i_pa40-nachn.        "'eng'.
        PERFORM bdc_field       USING 'P0002-VORNA'
                                      i_pa40-vorna.        "'lish'.
        PERFORM bdc_field       USING 'P0002-INITS'
                                      i_pa40-inits.        "'E'.
        PERFORM bdc_field       USING 'P0002-GESCH'
                                      i_pa40-gesch.             "'1'.
        PERFORM bdc_field       USING 'P0002-SPRSL'
                                      'EN'.
        PERFORM bdc_field       USING 'P0002-GBDAT'
                                      i_pa40-gbdat.        "'19.09.1985'.
        PERFORM bdc_field       USING 'Q0002-FATXT'
                                      i_pa40-fatxt.        "'Marr.'.
        PERFORM bdc_field       USING 'P0002-NATIO'
                                      'IS'.
        PERFORM bdc_dynpro      USING 'MP000100' '2000'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'P0001-ABKRS'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPD'.
        PERFORM bdc_field       USING 'P0001-BEGDA'
                                      i_pa40-begda.        "'13.12.2007'.
        PERFORM bdc_field       USING 'P0001-ENDDA'
                                      '31.12.9999'.
        PERFORM bdc_field       USING 'P0001-BTRTL'
                                      i_pa40-btrtl.             "'1010'.
        PERFORM bdc_field       USING 'P0001-GSBER'
                                      i_pa40-gsber.             "'0001'.
        PERFORM bdc_field       USING 'P0001-ABKRS'
                                      i_pa40-abkrs.             "'01'.
        PERFORM bdc_field       USING 'P0001-PLANS'
                                      i_pa40-plans.        "'99999999'.
        PERFORM bdc_dynpro      USING 'MP000600' '2000'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'P0006-TELNR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPD'.
        PERFORM bdc_field       USING 'P0006-BEGDA'
                                      i_pa40-begda.        "'13.12.2007'.
        PERFORM bdc_field       USING 'P0006-ENDDA'
                                      '31.12.9999'.
        PERFORM bdc_field       USING 'P0006-STRAS'
                                      i_pa40-stras.        "'vs homes'.
        PERFORM bdc_field       USING 'P0006-LOCAT'
                                      i_pa40-locat.        "'k nagar'.
        PERFORM bdc_field       USING 'P0006-PSTLZ'
                                      i_pa40-pstlz.             "'522006'.
        PERFORM bdc_field       USING 'P0006-ORT01'
                                      i_pa40-ort01.        "'gnt'.
        PERFORM bdc_field       USING 'P0006-LAND1'
                                      'IN'.
        PERFORM bdc_field       USING 'P0006-TELNR'
                                      i_pa40-telnr.             "'2325161'.
        PERFORM bdc_dynpro      USING 'MP000600' '2000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/ENXT'.
        PERFORM bdc_dynpro      USING 'MP000700' '2000'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'P0007-SCHKZ'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPD'.
        PERFORM bdc_field       USING 'P0007-BEGDA'
                                      i_pa40-begda.        "'13.12.2007'.
        PERFORM bdc_field       USING 'P0007-ENDDA'
                                      '31.12.9999'.
        PERFORM bdc_field       USING 'P0007-SCHKZ'
                                      i_pa40-schkz.        "'CGEN'.
        PERFORM bdc_field       USING 'P0007-EMPCT'
                                      '  100,00'.
        PERFORM bdc_dynpro      USING 'MP000800' '2040'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'P0008-TRFAR'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPD'.
        PERFORM bdc_field       USING 'P0008-BEGDA'
                                      i_pa40-begda.        "'13.12.2007'.
        PERFORM bdc_field       USING 'P0008-ENDDA'
                                      '31.12.9999'.
        PERFORM bdc_field       USING 'P0008-TRFAR'
                                      i_pa40-trfar.             "'01'.
        PERFORM bdc_field       USING 'P0008-BSGRD'
                                      '100,00'.
        PERFORM bdc_field       USING 'P0008-TRFGB'
                                      i_pa40-trfgb.             "'01'.
        PERFORM bdc_field       USING 'P0008-DIVGV'
                                      i_pa40-divgv.             "'192,00'.
        PERFORM bdc_field       USING 'P0008-TRFGR'
                                      i_pa40-trfgr.        "'JRMGT'.
        PERFORM bdc_field       USING 'P0008-TRFST'
                                      i_pa40-trfst.             "'01'.
        PERFORM bdc_field       USING 'P0008-ANCUR'
                                      'INR'.
        PERFORM bdc_field       USING 'Q0008-IBBEG'
                                      '27.03.2008'.
        PERFORM bdc_field       USING 'P0008-WAERS'
                                      'INR'.
        PERFORM bdc_field       USING 'Q0008-LGART(01)'
                                      i_pa40-lga01.             "'5000'.
        PERFORM bdc_field       USING 'Q0008-LGART(02)'
                                      i_pa40-lga02.             "'5001'.
        PERFORM bdc_field       USING 'Q0008-LGART(03)'
                                      i_pa40-lga03.             "'5002'.
        PERFORM bdc_field       USING 'Q0008-LGART(04)'
                                      i_pa40-lga04.             "'5020'.
        PERFORM bdc_field       USING 'Q0008-LGART(05)'
                                      i_pa40-lga05.             "'5021'.
        PERFORM bdc_field       USING 'Q0008-BETRG(01)'
                                      i_pa40-bet01.        "'              5000'.
        PERFORM bdc_field       USING 'Q0008-BETRG(02)'
                                      i_pa40-bet02.        "'              5001'.
        PERFORM bdc_field       USING 'Q0008-BETRG(03)'
                                      i_pa40-bet03.        "'              5002'.
        PERFORM bdc_field       USING 'Q0008-BETRG(04)'
                                      i_pa40-bet04.        "'              5020'.
        PERFORM bdc_field       USING 'Q0008-BETRG(05)'
                                      i_pa40-bet05.        "'              5021'.
        PERFORM bdc_dynpro      USING 'MP000900' '2000'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'P0009-ZLSCH'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPD'.
        PERFORM bdc_field       USING 'P0009-BEGDA'
                                      i_pa40-begda.        "'13.12.2007'.
        PERFORM bdc_field       USING 'P0009-ENDDA'
                                      '31.12.9999'.
        PERFORM bdc_field       USING 'P0009-BNKSA'
                                      '0'.
        PERFORM bdc_field       USING 'Q0009-EMFTX'
                                      'lish eng'.
        PERFORM bdc_field       USING 'Q0009-BKPLZ'
                                      '522006'.
        PERFORM bdc_field       USING 'Q0009-BKORT'
                                      'gnt'.
        PERFORM bdc_field       USING 'P0009-BANKS'
                                      'IN'.
        PERFORM bdc_field       USING 'P0009-BANKL'
                                      i_pa40-bankl.        "'ICIC0000011'.
        PERFORM bdc_field       USING 'P0009-BANKN'
                                      i_pa40-bankn.             "'1403711'.
        PERFORM bdc_field       USING 'P0009-ZLSCH'
                                      i_pa40-zlsch.        "'T'.
        PERFORM bdc_field       USING 'P0009-WAERS'
                                      'INR'.
        PERFORM bdc_dynpro      USING 'MP002100' '2000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/ENXT'.
        PERFORM bdc_dynpro      USING 'MP002100' '2040'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/ENXT'.
        PERFORM bdc_dynpro      USING 'SAPLSPO1' '0200'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=YES'.
        PERFORM bdc_dynpro      USING 'MP002800' '2000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/ENXT'.
            If pf no and Pension no are given, then irrespective of       *
      the flat file Contribution for Pension scheme flag must be checked  *
        IF i_pa40-eepnn NE ' ' AND i_pa40-pnflg EQ ' '.
          PERFORM bdc_dynpro      USING 'MP058700' '2000'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                         '/ENXT'.
          PERFORM bdc_dynpro      USING 'SAPLSPO1' '0200'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                         '=YES'.
        ELSE.
          PERFORM bdc_dynpro      USING 'MP058700' '2000'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'P0587-EVPFA'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        'UPD'.
          PERFORM bdc_field       USING 'P0587-BEGDA'
                                        i_pa40-begda.        "'13.12.2007'.
          PERFORM bdc_field       USING 'P0587-ENDDA'
                                        '31.12.9999'.
          PERFORM bdc_field       USING 'P0587-TSTID'
                                        i_pa40-tstid.           "'RPF1'.
          PERFORM bdc_field       USING 'P0587-PENID'
                                        i_pa40-penid.           "'RPF1'.
          PERFORM bdc_field       USING 'P0587-EEPFN'
                                        i_pa40-eepfn.        "'XX/XXX/999999/999999'.
          PERFORM bdc_field       USING 'P0587-EEPNN'
                                        i_pa40-eepnn.        "'XXXXX/501'.
          PERFORM bdc_field       USING 'P0587-EEVPF'
                                        i_pa40-eevpf.           "'25'.
          PERFORM bdc_field       USING 'Q0587-EEPF2'
                                        'X'.
          PERFORM bdc_field       USING 'P0587-EVPFA'
                                        i_pa40-evpfa.        "'                 1250'.
          PERFORM bdc_field       USING 'Q0587-ERPF2'
                                        'X'.
          PERFORM bdc_field       USING 'Q0587-ERPN1'
                                        'X'.
          PERFORM bdc_field       USING 'P0587-PNFLG'
                                        i_pa40-pnflg.        "'X'.
        ENDIF.
        PERFORM bdc_dynpro      USING 'MP058800' '2000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/ENXT'.
        PERFORM bdc_dynpro      USING 'MP058800' '2000'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'P0588-BEGDA'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPD'.
        PERFORM bdc_field       USING 'P0588-BEGDA'
                                      i_pa40-begda.        "'13.12.2007'.
        PERFORM bdc_field       USING 'P0588-ENDDA'
                                      '31.12.9999'.
        PERFORM bdc_field       USING 'Q0588-PTXEL'
                                      i_pa40-ptxel.        "'X'.
        PERFORM bdc_dynpro      USING 'MP018500' '2240'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'P0185-BEGDA'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=UPD'.
        PERFORM bdc_field       USING 'P0185-BEGDA'
                                      i_pa40-begda.        "'13.12.2007'.
        PERFORM bdc_field       USING 'P0185-ENDDA'
                                      '31.12.9999'.
        PERFORM bdc_field       USING 'P0185-ICNUM'
                                      i_pa40-icnum.        "'AAAAA9999A'.
        PERFORM bdc_dynpro      USING 'SAPMP50A' '2000'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/EBCK'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RP50G-PERNR'.
    *perform bdc_transaction using 'PA40'.
        CALL TRANSACTION 'PA40' USING bdcdata
                                MODE m1
                                UPDATE u1
                                MESSAGES INTO messtab.
          Message Handling                                               *
        LOOP AT messtab.
          SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra
                                    AND   arbgb = messtab-msgid
                                    AND   msgnr = messtab-msgnr.
          IF sy-subrc = 0.
            l_mstring = t100-text.
            IF l_mstring CS '&1'.
              REPLACE '&1' WITH messtab-msgv1 INTO l_mstring.
              REPLACE '&2' WITH messtab-msgv2 INTO l_mstring.
              REPLACE '&3' WITH messtab-msgv3 INTO l_mstring.
              REPLACE '&4' WITH messtab-msgv4 INTO l_mstring.
            ELSE.
              REPLACE '&' WITH messtab-msgv1 INTO l_mstring.
              REPLACE '&' WITH messtab-msgv2 INTO l_mstring.
              REPLACE '&' WITH messtab-msgv3 INTO l_mstring.
              REPLACE '&' WITH messtab-msgv4 INTO l_mstring.
            ENDIF.
            CONDENSE l_mstring.
            WRITE: / messtab-msgtyp, l_mstring(250).
          ELSE.
            WRITE: / messtab.
          ENDIF.
        ENDLOOP.
          Success Check                                                  *
    if sy-subrc is initial.
    write : i_pa40-pernr, 'is created'.
    else.
    write : i_pa40-pernr, 'is not cretaed'.
    endif.
      ENDLOOP.
           Start new screen                                              *
    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 <> '' .
        CLEAR bdcdata.
        bdcdata-fnam = fnam.
        bdcdata-fval = fval.
        APPEND bdcdata.
      ENDIF.
    ENDFORM.                    "BDC_FIELD
    Regards,
    Arun.

  • Hr...bdc for pa40-salary increment

    HI FRIENDS..
    M NOT ABLE TO FETCH VALUES FOR TABLE CONTORL IN PA40 T.CODE FOR SALARY INCREMENT..
    ACT D PROBLEM IS..
    THE OLD SALARY SRTUCTURE IS DIFFERENG FROM CURRENT SALARY STRUCTURE IN EXCEL SHEET..
    DOES ANY1 HAVE THE BDC FOR SALARY INCREMENT ..?
    PLS HELP..
    PTS REWRDED FOR SURE..

    Hi,
      We never write BDC for PA40.
    Write it for PA30.
    Goto SHDB tcode and record for the required infotype.
    Or you can also use any of the following FM instead of BDc.
    HR_INFOTYPE_OPERATION
    HR_MAINTAIN_MASTERDATA.
    Refer
    https://forums.sdn.sap.com/click.jspa?searchID=4208189&messageID=3188548
    https://forums.sdn.sap.com/click.jspa?searchID=4208189&messageID=1552901
    Regards

  • Request  for sample Functional Specification for BDC to upload PA40 or PA30

    Hi Experts
    I need to Write a Functional specification to Guide My ABAP team member to write a BDC for uploading data in PA40.
    It would be great if somebody could spare me one .
    Thanks in advance
    Rajeev Chhabra
    <u>[email protected]</u>

    Hi Rajeev,
    Your company might be having standard format of FS.
    Writing a FS for a BDC is not that tough job. You need to provide some basic information such as the file structure to be used in BDC, Number of fields in the file, which fields on the screen need to be populated (you can get the fields technical name by doing F1 on the field).
    I think you can use this as a guideline to write your own FS.
    Regards,
    Atish

  • BDC for PA30 action hire is not creating entry in IT 1001

    Hello All,
       I created a BDC for to create hire action in system to create some dummy data, but its not creating entry in infotype 1001 for relation between person (P) and position (S). If i create entry in PA30 it create ebtry, if i try BDC in Dialog mode even then its not creating it.
      I read a lot about Dynamic action in this kind of issue but i seen table T588Z but there is no any insert dynamic action for IT 1001.
    Can anybody throw some light on the cause of the same.
    i tried to create same data with FM HR_MIANTAIN_MASTERDATA but i have to drop that idea becasue it was not able to crate record with empty PERNR field. if your answer is use this FM then please provide some working code as i searched a lot on the same issue but no any concrete proof on the same.
    appreciate any reply.
    Mani

    Hi,
    Are you getting any error?
    If not i think you have to lock the employee before creating an entry to the IT 1001 using FM
    'BAPI_EMPLOYEE_ENQUEUE'
    and create an entry to IT 1001 using BDC or HR_MIANTAIN_MASTERDATA
    and unlock an employee by using FM
    'BAPI_EMPLOYEE_DEQUEUE'
    Regards
    Krishna

  • BDC  for  Hiring a Employee through hiring action

    Hi Experts,
    We have done BDC for hiring action.
    We do have PA & OM integrated. T77S0 PLOGI ORGA "X".
    After hiring is compelted through BDC holder relationship is not appearing for position.
    But when we are individually hiring an employee, position is assigned to a holder.
    Please advice.
    Regards,
    IFF

    Hi,
    During BDC, the integration PA-OM is not processed... you have to run RHINTE00 report.
    Kr,
    m.

  • Creation of BDC for a part of process.

    Hi,
    We are creating a BDC for PA40 action. It has a series of Info Types which come one by one. Now our requirement is to skip the last Info Type and create a recording for the process. is this possible.
    We require this as the last Info type is Pensions Fund GB, this takes us through all the old records before we can make a new entry and the number of old records for different employees is different, hence no standard recording is possible. Can anyone suggesta way forward.
    Thank you,
    Arpita Arora

    Hi,
    In BDC program, when you are running the loop for each employee,You initially check the number of record for that employee in It0071 in that loop itself.
    in your code then write,
    Do N times.
    BDC recording to exit screen with OK_CODE = '/ENXT'
    enddo.
    This will be in the loop of each employee record.
    Thanks,
    Sutapa.

  • BDC for TCODE F150

    Hi Friends,
    I am facing problem while developing BDC for tcode F150. The last action i.e. scheduling for particular dunning date is not getting executed in my BDC.
    I am also pasting the end part of my BDC recording. Please review it and advise.
    PERFORM bdc_dynpro      USING 'SAPLF150_JOBS' '1000'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'F150V-STRZT'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=JOBS'.
      PERFORM bdc_field       USING 'F150V-STRDT'
                                    rdate.
      PERFORM bdc_field       USING 'F150V-XSTRF'
                                    'X'.
        select single SPLD into p_out from USR01 where bname = sy-uname.
      perform bdc_field       using 'ITCPO-TDDEST'
                                     p_out.
      CALL TRANSACTION 'F150'
    Thank you,
    Swapnil
    Edited by: Swapnil Tawade on Sep 22, 2008 3:15 PM

    Hi,
       If u want it for  some specific plants then before populating data  to bdcdata internal table  check the conditions for which the plant fields required values to be passed  and if the condition is satisfied then pass the plant field to bdcdata table . If the condition is not satisfied then dont pass that plant field to bdcdata table bcoz  if  u r not passing any field to bdcdata table then that field is going have default values.
    Regards,
    Shafi

  • BDC for MIGO for GR OutBound Delivery( A01 & R05 ) from Movement Type 107 to 109

    Hi,
    I am stuck with a very typical situation need all your expertise and advices for a solution.
    We are basically trying to create change the movement type from 107 to 109 through MIGO.
    I have made a BDC recording for MIGO ( because we would like to track each delivery specifically under shipment , I know that there is a BAPI which is there to do this but it works fine if we do the shipment with Purchase Order as input which dont want in that manner )
    Process:
    1. Creating Production Order
    2. Creating Purchase Order
    3. Creating STO
    4. Deliveries
    5. PGI for Deliveries
    6. Shipment for group of outbound Deliveries
    I have created a z program where i am passing shipment number in the selection screen.
    Then it would take all the deliveries for that shipment and pass each delivery to MIGO and process it and change the status from 107 to 109.
    Interesting part here is, the code works absolutely perfect only from my ID. But when I test from other ID it is not executing, so to check where is the problem I have added mess_tab to the CALL TRANSACTION to capture what message is been populated for my ID comparing with others
    Message Captured on Others ID's:
    MSGID: 00
    MSGNR: 344
    MSGV1: SAPLMIGO
    MSGV2: 1300
    Message Captured on MY ID:
    MSGID: MIGO
    MSGNR: 012
    MSGV1: 5000005802
    MSGV2: (empty)
    This is the problem this program is executing only on MY ID, rest all ID's it is not processing.
    We have cross verified with security and basis regarding any authorization issues but nothing came up.
    Please help me what could be the issue ( WHY it is processing successfully for my and WHY NOT for other ID's)
    Below is the main code :
    CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'                     " Converting Date format to DD/MM/YYYY
         EXPORTING
           DATE_INTERNAL            = sy-datum
         IMPORTING
           DATE_EXTERNAL            = lv_date_external
         EXCEPTIONS
           DATE_INTERNAL_IS_INVALID = 1
           OTHERS                   = 2.
           IF SY-SUBRC <> 0.                                     "#EC NEEDED
    * Implement suitable error handling here
           ENDIF.
    *   Validating input shipment number with database table VTTP
           SELECT VTTP~TKNUM
                  VTTP~TPNUM
                  VTTP~VBELN
             FROM VTTP INNER JOIN VTTK
             ON VTTP~TKNUM = VTTK~TKNUM
             INTO TABLE IT_VTTP
             WHERE VTTK~TKNUM = P_TKNUM
               AND VTTK~STDIS = 'X'.
           IF sy-subrc = 0.
    *   Validating all deliveries having same Delivery type or not
             SELECT * FROM likp INTO TABLE it_likp FOR ALL ENTRIES IN it_vttp WHERE vbeln = it_vttp-vbeln
                                                                                AND vbtyp = 'J'.
             IF sy-subrc = 0.
               CLEAR lv_lines.
               LOOP AT it_likp INTO wa_likp.
                 REFRESH:it_vbfa,BDCDATA.
    *   Validating if Delivery Type = 109 (GR already done), or Delivery Type = 107 (must process for GR )
                 SELECT * FROM vbfa INTO TABLE it_vbfa WHERE vbelv = wa_likp-vbeln
    *                                                AND vbtyp_v = 'J'
                                                         AND bwart = '109'.
                 IF sy-subrc = 0.
                   lv_flag1 = 'X'.
                 ELSE.
                   SELECT * FROM vbfa INTO TABLE it_vbfa WHERE vbelv = wa_likp-vbeln
    *                                                  AND vbtyp_v = 'J'
                                                           AND bwart = '107'.
                   IF sy-subrc NE 0.
                     MESSAGE 'No Deliveries with Movement Type "107" ' TYPE 'I'.
                   ELSE.
                     lv_flag2 = 'X'.
                     lv_lines = lv_lines + 1.
    **  BDC for MIGO
                     perform bdc_dynpro      using 'SAPLMIGO' '0001'.
                     perform bdc_field       using 'BDC_OKCODE'
                                                   '=OK_GO'.
                     perform bdc_field       using 'GODYNPRO-ACTION'
                                                   'A01'.
                     perform bdc_field       using 'GODYNPRO-REFDOC'
                                                   'R05'.
                     perform bdc_field       using 'GODEFAULT_TV-BWART'
                                                   '109'.
                     perform bdc_field       using 'BDC_CURSOR'
                                                   'GODYNPRO-OUTBOUND_DELIVERY'.
                     perform bdc_field       using 'GODYNPRO-OUTBOUND_DELIVERY'
                                                   wa_likp-vbeln. "'80019574'.
                     perform bdc_field       using 'GOHEAD-BLDAT'
                                                   lv_date_external. "'04/29/2015'.
                     perform bdc_field       using 'GOHEAD-BUDAT'
                                                   lv_date_external. "'04/29/2015'.
                     perform bdc_field       using 'GOHEAD-WEVER'
                                                   '1'.
                     perform bdc_dynpro      using 'SAPLMIGO' '0001'.
                     perform bdc_field       using 'BDC_OKCODE'
                                                   '=OK_POST1'.
                     perform bdc_field       using 'GODEFAULT_TV-BWART'
                                                   '109'.
                     perform bdc_field       using 'GOHEAD-BLDAT'
                                                   lv_date_external. "'04/29/2015'.
                     perform bdc_field       using 'GOHEAD-LFSNR'
                                                   wa_likp-vbeln. "'0080019574'.
                     perform bdc_field       using 'GOHEAD-BUDAT'
                                                   lv_date_external. "'04/29/2015'.
                     perform bdc_field       using 'GOHEAD-WEVER'
                                                   '1'.
                     perform bdc_field       using 'GODYNPRO-DETAIL_ZEILE'
                                                   '   1'.
                     perform bdc_field       using 'GOITEM-ERFME'
                                                   'EA'.
                     perform bdc_field       using 'GOITEM-ERFMG'
                                                   '1'.
                     perform bdc_field       using 'GOITEM-LSMNG'
                                                   '1'.
                     perform bdc_field       using 'GOITEM-LSMEH'
                                                   'EA'.
                     perform bdc_field       using 'GOITEM-MIGO_ELIKZ'
                                                   '1'.
                     perform bdc_field       using 'GOITEM-BWART'
                                                   '109'.
                     perform bdc_field       using 'GOITEM-LGOBE'
                                                   'RX Cross-docking'.
                     perform bdc_field       using 'BDC_CURSOR'
                                                   'GODYNPRO-DETAIL_TAKE'.
                     perform bdc_field       using 'GODYNPRO-DETAIL_TAKE'
                                                   'X'.
                     PERFORM bdc_dynpro      USING 'SAPLMIGO' '1300'.
                     PERFORM bdc_field       USING 'BDC_CURSOR'
                                                   'G_TIP_DONT_SHOW_AGAIN'.
                     PERFORM bdc_field       USING 'BDC_OKCODE'
                                                   '=OK_TIP_GO'.
                     PERFORM bdc_field       USING 'G_TIP_DONT_SHOW_AGAIN'
                                                   'X'.
    *& Avoid unncessary screens to populate while processing background.
                     LV_OPTIONS-DISMODE = 'N'.
                     LV_OPTIONS-UPDMODE = 'S'.
                     LV_OPTIONS-NOBINPT = 'X'.
                     CALL TRANSACTION 'MIGO' USING BDCDATA  OPTIONS FROM LV_OPTIONS MESSAGES INTO IT_MESSTAB1 .
                     WAIT UP TO 1 SECONDS.
                     DELETE IT_MESSTAB1 WHERE MSGTYP NE 'E'.
                     IF IT_MESSTAB1[] IS NOT INITIAL.
                       APPEND LINES OF IT_MESSTAB1 TO IT_MESSTAB.
                     ENDIF.
                   ENDIF.
                 ENDIF.
               ENDLOOP.
             ENDIF.
           ELSE.
             MESSAGE 'Shipment Number does not exists Or not Planned' TYPE 'E'.
           ENDIF.
         ELSE.
           MESSAGE 'Please insert Shipment Number' TYPE 'E'.
         ENDIF.
         IF lv_flag1 = 'X' AND lv_flag2 = 'X'.
           MESSAGE 'This shipment is processed with an inconsistent goods receipt' TYPE 'I'.
         ELSEIF lv_flag1 = 'X'.
           MESSAGE 'Shipment already been processed for these deliveries' TYPE 'I'.
         ELSEIF lv_flag2 = 'X'.
           lv_lines1 = lv_lines.
           CONDENSE lv_lines1 NO-GAPS .
           CONCATENATE lv_lines1 'Goods Receipt are posted for the shipment '
                  INTO lv_message SEPARATED BY space.
           MESSAGE  lv_message TYPE 'I'.
         ENDIF.
    * Display Messages from Message TAB.
         DELETE ADJACENT DUPLICATES FROM IT_MESSTAB.
         DATA:lv_msg TYPE string.
         LOOP AT IT_MESSTAB INTO WA_MESSTAB.
           CALL FUNCTION 'FORMAT_MESSAGE'
             EXPORTING
               ID        = WA_MESSTAB-MSGID
               NO        = WA_MESSTAB-MSGNR
               V1        = WA_MESSTAB-MSGV1
               V2        = WA_MESSTAB-MSGV2
               V3        = WA_MESSTAB-MSGV3
               V4        = WA_MESSTAB-MSGV4
             IMPORTING
               MSG       = lv_msg
             EXCEPTIONS
               NOT_FOUND = 1
               OTHERS    = 2.
           IF sy-subrc <> 0.
    * Implement suitable error handling here
           ENDIF.
           WRITE:/ lv_msg.
         ENDLOOP.
    *        Start new screen                                              *
       FORM BDC_DYNPRO USING PROGRAM DYNPRO.                 "#EC PF_NO_TYPE
         CLEAR BDCDATA.
         BDCDATA-PROGRAM  = PROGRAM.
         BDCDATA-DYNPRO   = DYNPRO.
         BDCDATA-DYNBEGIN = 'X'.
         APPEND BDCDATA.
       ENDFORM.
    *        Insert field                                                  *
       FORM BDC_FIELD USING FNAM FVAL.                       "#EC PF_NO_TYPE
         CLEAR BDCDATA.
         BDCDATA-FNAM = FNAM.
         BDCDATA-FVAL = FVAL.
         APPEND BDCDATA.
       ENDFORM.
    Thanks,
    Srini

    Hi Rob,
    Thanks for quick reply.
    I have checked the NOTE : 304122
    But there in the NOTE it says ( " BAPI, BAPI_GOODSMVT_CANCEL, BAPI_GOODSMVT_CREATE, CNTL_ERROR" )
    These BAPI's work perfectly for (purchase order as input type), but here out type is ( A01 & R05 ) we are giving DELIVERY NUMBER as input to MIGO.
    So for this scenario we cannot use those BAPI's mentioned in the NOTE.
    Also as stated earlier in the message interesting part is
    "The code works absolutely perfect only from my ID. But when I test from other ID it is not executing. Code is working exactly as expected ONLY to my ID. When i try to execute the same code from another's ID it is not working"
    So what do you think might be the issue?

  • Problem in doing BDC for XK01

    Hi all,
    i am doing BDC for XK01 with Line Item for Bank Details(Table Control..)
    With 3 Internal table
    IT_dummy to get the flat file
    IT_vend  for Header details
    IT_bank  for Item Details
    in this there is a Nested loop
    Loop at it_vend.
    perform bdc
    loop at it_bank.
    concatenate................
    endloop.
    endloop.
    because of the above nested loops..it's bit slow..
    & i am trying to do with a single internal table..
    The problem is..
    with the header data it's not picking all the item data(it's picking only one..)..help me in resolving the problem..
    Below the code..
    REPORT  ZMM_BDCTC1 NO STANDARD PAGE HEADING LINE-SIZE 255.
    PARAMETER:P_FILE TYPE RLGRAP-FILENAME.
    DATA BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF IT_DUMMY OCCURS 0,
          TYP,
          DES(255) TYPE C,
          END OF IT_DUMMY.
    DATA:DELIMITER VALUE ',',
         cnt(4) TYPE N,
         L_FNAM(30) TYPE C,
         FILENAME TYPE STRING.
    TYPES:BEGIN OF TY_FINAL,
          N(4) TYPE C,
          LIFNR TYPE RF02K-LIFNR,
          BUKRS TYPE RF02K-BUKRS,
          EKORG TYPE RF02K-EKORG,
          KTOKK TYPE RF02K-KTOKK,
          NAME1 TYPE LFA1-NAME1,
          SORTL TYPE LFA1-SORTL,
          LAND1 TYPE LFA1-LAND1,
          AKONT TYPE LFB1-AKONT,
          FDGRV TYPE LFB1-FDGRV,
          WAERS LIKE LFM1-WAERS,
          M(4) TYPE C,
          BANKS TYPE LFBK-BANKS,
          BANKL TYPE LFBK-BANKL,
          BANKN TYPE LFBK-BANKN,
          KOINH TYPE LFBK-KOINH,
          END OF TY_FINAL.
    DATA: IT_FINAL TYPE TABLE OF TY_FINAL,
          WA_FINAL TYPE TY_FINAL.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
       PROGRAM_NAME        = SYST-CPROG
       DYNPRO_NUMBER       = SYST-DYNNR
    IMPORTING
       FILE_NAME           = P_FILE.
         FILENAME = P_FILE.
         CALL FUNCTION 'GUI_UPLOAD'
           EXPORTING
             filename                      = FILENAME
            FILETYPE                      = 'ASC'
           tables
             data_tab                      = IT_DUMMY.
    START-OF-SELECTION.
    LOOP AT it_dummy.
        IF it_dummy-typ = 'H'.
          SPLIT  it_dummy-des AT delimiter INTO WA_FINAL-lifnr "Populating Header Table
                                                WA_FINAL-bukrs
                                                WA_FINAL-ekorg
                                                WA_FINAL-ktokk
                                                WA_FINAL-name1
                                                WA_FINAL-sortl
                                                WA_FINAL-land1
                                                WA_FINAL-akont
                                                WA_FINAL-fdgrv
                                                WA_FINAL-waers.
          WA_FINAL-N = WA_FINAL-N + 1.
          WA_FINAL-M = WA_FINAL-M + 1.
        ELSEIF it_dummy-typ = 'I'.
          SPLIT it_dummy-des AT delimiter INTO WA_FINAL-BANKS
                                               WA_FINAL-BANKL
                                               WA_FINAL-BANKN
                                               WA_FINAL-KOINH.
          APPEND WA_FINAL TO IT_FINAL.
        ENDIF.
      ENDLOOP.
    LOOP AT IT_FINAL INTO WA_FINAL.
    WRITE:/ WA_FINAL-N,
            WA_FINAL-LIFNR,
            WA_FINAL-BUKRS,
            WA_FINAL-EKORG,
            WA_FINAL-KTOKK,
            WA_FINAL-NAME1,
            WA_FINAL-SORTL,
            WA_FINAL-LAND1,
            WA_FINAL-AKONT,
            WA_FINAL-FDGRV,
            WA_FINAL-WAERS,
            WA_FINAL-M,
            WA_FINAL-BANKS,
            WA_FINAL-BANKL,
            WA_FINAL-BANKN,
            WA_FINAL-KOINH.
    ENDLOOP.
    data: WA_FINAL1 like line of IT_FINAL.
    clear WA_FINAL1.
    ******************BDC STARTS***********************
    CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
    CLIENT      = SY-MANDT
    GROUP       = 'ZMM_BDCTAB'
    KEEP        = 'X'
    USER        = SY-UNAME.
    Clear wa_final.
    LOOP AT IT_FINAL INTO WA_FINAL.
    WA_FINAL1 = WA_FINAL.
    CLEAR BDCDATA[].
    AT NEW N.
    cnt = 1.
    perform bdc_dynpro      using 'SAPMF02K' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-KTOKK'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  WA_FINAL1-LIFNR.
    perform bdc_field       using 'RF02K-BUKRS'
                                  WA_FINAL1-BUKRS.
    perform bdc_field       using 'RF02K-EKORG'
                                  WA_FINAL1-EKORG.
    perform bdc_field       using 'RF02K-KTOKK'
                                  WA_FINAL1-KTOKK.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-LAND1'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFA1-NAME1'
                                  WA_FINAL1-NAME1.
    perform bdc_field       using 'LFA1-SORTL'
                                  WA_FINAL1-SORTL.
    perform bdc_field       using 'LFA1-LAND1'
                                  WA_FINAL1-LAND1.
    perform bdc_dynpro      using 'SAPMF02K' '0120'. "ERROR CLEARED
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFBK-KOINH(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    ENDAT.
    *ENDON.
    IF WA_FINAL1-N = WA_FINAL1-M.
    CONCATENATE  'LFBK-BANKS(' cnt ')'  INTO L_FNAM.
    perform bdc_field       using L_FNAM
                                  WA_FINAL1-BANKS.
    CONCATENATE  'LFBK-BANKL(' cnt ')'  INTO L_FNAM.
    perform bdc_field       using L_FNAM
                                  WA_FINAL1-BANKL.
    CONCATENATE  'LFBK-BANKN(' cnt ')'  INTO L_FNAM.
    perform bdc_field       using L_FNAM
                                  WA_FINAL1-BANKN.
    CONCATENATE  'LFBK-KOINH(' cnt ')'  INTO L_FNAM.
    perform bdc_field       using L_FNAM
                                  WA_FINAL1-KOINH.
    *ENDDO.
    cnt = cnt + 1.
    ENDIF.
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFBK-BANKS(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPMF02K' '0210'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB1-FDGRV'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    *AT NEW LIFNR.
    perform bdc_field       using 'LFB1-AKONT'
                                  WA_FINAL1-AKONT.
    perform bdc_field       using 'LFB1-FDGRV'
                                  WA_FINAL1-FDGRV.
    perform bdc_dynpro      using 'SAPMF02K' '0215'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB1-ZTERM'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0220'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFB5-MAHNA'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0310'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFM1-WAERS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFM1-WAERS'
                                  WA_FINAL1-WAERS.
    perform bdc_dynpro      using 'SAPMF02K' '0320'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-LIFNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    AT END OF M.
    CALL FUNCTION 'BDC_INSERT'
    EXPORTING
    TCODE     = 'XK01'
    TABLES
    DYNPROTAB = BDCDATA.
    ENDAT.
    CLEAR WA_FINAL1.
    CLEAR WA_FINAL.
    ENDLOOP.
    CALL FUNCTION 'BDC_CLOSE_GROUP'.
    *********************BDC ENDS***********************
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
    IF FVAL <> NODATA.
        CLEAR BDCDATA.
        BDCDATA-FNAM = FNAM.
        BDCDATA-FVAL = FVAL.
        APPEND BDCDATA.
    ENDIF.
    ENDFORM.
    Flat File is..
    HAAA45,1000,1000,0002,NAME45,N,IN,31000,A1,USD
    IIN,1000,1021,Name45
    IIN,1000,1022,Name45
    HAAA50,1000,1000,0002,NAME50,N,IN,31000,A1,USD
    IIN,1000,1023,Name50
    IIN,1000,1024,Name50

    Regarding avoiding the loop I have a suggestion, though I have not tried this .
    SAP help says " Using the internal table bdc_tab, you can provide any number of screens of the called transaction with input and user actions. " .
    Above implies you can load all records in the itab bdc_tab when doing call transaction. Say, your bdc_tabl has 30 records for 1 pass of the transaction. You need to update 10 vendor records. You simply load up all 300 records into bdc_tab. After every 30 record loads, you simulate a 'SAVE' press in your program but do not leave the transaction. Rather you simulate the keystroke that takes you to the first screen of XK01 after the save if not aready there, and start loading up the next transaction.

  • Problem with uploading data from excel using BDC for tcode f-02

    Hi All,
    I am uploading data from excel using BDC for tcode f-02. The problem here is, while recording, the values of some fields are recording twice. I dont know why it's happening so. But if I run my abap program, I have to give those fields twice in my excel sheet. Otherwise data does not upload. But it is not the feasible way. We must give those fields once in excel. Please tell me, how I can solve the issue.
    With regards,
    Rosaline.

    Hi,
      in BDC each and every action is recording. If your press enter in same screen that also recorded once aging may be this is your case repeating field values will appear. we can solve the problem for repeat fields like below.
    suppose in your excel having repeated field X1 X2 X3 the X2 contains repeated field X3 means delete the X3 field.
    Now In your itab having X1 and X2 fields. While in the LOOP the ITAB pass the X2 field to repeated the fields.
    LOOP at ITAB to WA.
    CLEAR bdcdata_wa.
    bdcdata_wa-fnam = 'BDC_CURSOR'.
    bdcdata_wa-fval = 'RM08M-EBELN'.
    APPEND bdcdata_wa TO bdcdata_tab.
    CLEAR bdcdata_wa.
    bdcdata_wa-fnam = 'INVFO-BLDAT'.
    bdcdata_wa-fval = wa-X2." 1st time pass the X2 fields
    APPEND bdcdata_wa TO bdcdata_tab.
    CLEAR bdcdata_wa.
    bdcdata_wa-fnam = 'INVFO-BLDAT'.
    bdcdata_wa-fval = wa-X2." pass the same value to repeated field
    APPEND bdcdata_wa TO bdcdata_tab.
    Endloop.
    Hope you can understand.
    Regards,
    Dhina..

  • Error in Personnel Actions (PA40)

    Hi Mentors
    I'm new to the forum and just started learning SAP HCM
    Need your help in running Personnel Actions.
    I have setup the Personnel Actions using the following nodes from SPRO:
    1. User Group Dependency on Menus and Info Groups- Menu type G
    2. Info group modifier - IGMOD feature
    3. Define Infogroups
    4. Set up Personnel Actions
    5. Create Reasons for Personnel Actions
    6. User Group Dependency on Menus and Info Groups- Menu type M
    7. Change Action Menu
    Also, I have setup Internal Number Ranges and maintained NUMKR feature.
    ERROR:
    When I run the Personnel Actions (PA40) the system is not assigning the personnel number in IT0000. After saving this infotype, it moves to 'Create Actions' screen. Here the status bar displays the error as u201CNo infotype found. Maintain infogroup modifier/ user groupu201D
    Please guide.
    Thanks
    Bala

    hi,
    for your information
    menu type M should be 1(Actions) or any thing that you have defined.
    here you will give
    UGR seq.no action type action text
    xx     21     M1     Hiring
    xx     22     M2     xxxx
    xx     23     M3     xxxxx
    xx     24     M4     xxxx
    menu type G is Info group
    menu type M is Personnel action menu
    menu type G you will group the infotypes and make the infogroup. and this infogroup is inserted into menu type M(personnel actions menu)
    what ever the user group you have used in menu type M it should be at parameters in T.code : SU3
    and the MOLGA is country grouping. you have to input the MOLGA for which country you are doing this actions.
    because country country the infotype screen are different.
    hope this will help you,
    regards,
    mohammed

  • How to make a CATT for trans PA40 on ERP 5.0

    Hi I am trying to make a CATT or a batch input for transaction PA40 (Personnel Actions) on SAP ERP 5.0.
    Can anyone knows how to do that?
    Any suggestions will be appreciated...
    Thanks,
    Orlando

    any idea ?

  • Bdc for infotype 583

    Hi,
    I am trying to record a BDC for Infotype 0583 .
    During manual creation , i am taken to the Infortpe 8 screen from the infotype 583 screen.
    While recording through SHDB this is not happening. I am not taken to the Infotype 8 screen at all. The recording stops at the infotyp 0583 screen itself ,after I press the save buton.
    Need some help guys.....
    Regards,
    Salish

    check this sample program
    https://www.sdn.sap.com/irj/sdn/wiki?path=/pages/viewpage.action&pageid=13160
    Regards
    prabhu

Maybe you are looking for

  • Iphone 5S crashing after 8.3 update blue screen of death

    I have an iPhone 5S which is 90 days out of warranty.  I updated to 8.3 and the first issue I noticed was my music app.  When I play music it doesn't start off from the last song I played - I have to choose my songs again and restart my shuffled play

  • Week view and task list solutions? Solved: a way to sync notes to Mac.

    I've been using a Palm Tungsten T5 for years and routinely rely on the Palm's Calendar week view feature and task list. The week view is indispensable to see where I can fit in appointments. Are there any ways to achieve the same functionalities on t

  • Need Total of a Measure Constantly without aggregation

    Hallo Experts, I Need to show Total of a Measure Constantly without aggregation in Webi in one column. The requirement is to show following Supplier Name No. Deliveries Total Deliveries A 1 43 B 2 43 C 2 43 D 4 43 E 3 43 F 6 43 G 0 43 H 8 43 I 6 43 J

  • Submit Button Look and Location

    Right now in FormsCentral, we can only put the Submit button in four places (top, bottom, left, right) Is there a way to move it to a different position...like...in the middle of a page? Is there a way to configure the color or size or text of the FC

  • How tError: 150:30 "Licensing for this product has stopped working"

    How can I resolve this... Error: 150:30 "Licensing for this product has stopped working" (Popped up when I tried to open an emailed jpg with Photoshop CS4). Restarted computer (iMac OS 10.9.5). No go. Message directed me to contact Adobe. How do you