How to obtain PERNR during BDC with PA40

Greetings!
I recorded a PA40 session and am using the code in my program with success.  However, now I must make a call during the BDC code to a FM which requires the PERNR.  I'm not sure how to obtain the PERNR while the BDC code is executing.  I'm sure if I was doing it manually via PA40 I would be able to "see" the PERNR on the screens but I'm not sure how to obtain it while the BDC code is running.
Thanks in advance.
Snippet of code:
    PERFORM bdc_dynpro      USING 'MP000200'                '2010'.
    PERFORM bdc_field       USING 'BDC_CURSOR'              'Q0002-FATXT'.
    PERFORM bdc_field       USING 'BDC_OKCODE'              '=UPD'.
    PERFORM bdc_field       USING 'P0002-BEGDA'             lv_begda.
    PERFORM bdc_field       USING 'P0002-ENDDA'             '12319999'.
    PERFORM bdc_field       USING 'P0002-NACHN'             gt_enrollment-lname.
    PERFORM bdc_field       USING 'P0002-VORNA'             gt_enrollment-fname.
    PERFORM bdc_field       USING 'P0002-MIDNM'             gt_enrollment-mname.
    PERFORM bdc_field       USING 'Q0002-PERID'             gt_enrollment-ph_ssn.
    PERFORM bdc_field       USING 'P0002-GBDAT'             gt_enrollment-dob.

Rob:
Thanks for the reply.
The following two lines are the ones that my functional guy is telling me I need to change from hard-coded values to those from HR_BEN_GET_FROM_FEATURE_XXXX; however, this FM requires the PERNR.  It looks like the only option I have is to wait until the BDC is finished and then do a "MOD" operation via HR_INFOTYPE_OPERATION.  Suggestions?
    PERFORM bdc_field     USING 'P0171-BENGR'            '0002'.
    PERFORM bdc_field     USING 'P0171-BSTAT'            '0002'.

Similar Messages

  • How to populate PERNR while posting with BAPI_ACC_INVOICE_RECEIPT_POST

    HI,
    I am not able to pass Personal Number(PERNR) while posting with BAPI_ACC_INVOICE_RECEIPT_POST. Is there any enhancement which will help to solve this.
    << Moderator message - Everyone's problem is important. But the answers in the forum are provided by volunteers. Please do not ask for help quickly. >>
    Regards,
    Sini
    Edited by: Rob Burbank on Nov 2, 2011 12:04 PM

    Hi,
    I am faceing this problem in standard program which is sa AirPlus Invoice Record (LARS).
    NEME:RPR_AIRP_LRS_TO_FI.
    Please help on this..
    Regards,
    Srini

  • How to obtain a perfect line with this kind of scientific data graphs?

    In a lab the students get this kind of graphs to later be processed in an axial system:  a grayed pencil draw, very delicate, with all the imperfections in weight, intensity, etc.
    We need to obtain an uniform line (a solid one, without gray variations, same weight, etc)
    Autotrace seems the best tools although the results appear a little irregular.
    What could be the best approach as we have hundreds to process?
    Beginning with the scanning (more resolution?) and procesing firstly in Photoshop?
    Thank you.

    Your pink line looks exaclty like the first image you posted. Did you possibly swap the cyan and magenta colors in the legend (cyan looks less bumpy so so guessign that is actually you bezier path)?
    If the legend is swapped, then you should see the path is off immediately after using make work path in photoshop. If the dpi of your scan is high enough (eg: a of minimum1000 pixels in each direction, and tolerance setting is low enough, you should get better resutls.

  • MN05 vs SCOT: How to obtain mail status messages (with SP 8)?

    Since we've installed SP 8, we don't receive E-mail status messages anymore.
    In MN05 we always had two communication strategies (defined by "Doc Type/Purch. Org/Vendor") :
    Vendor 1 (ex.: 123hotmail.com)
    Send status/Requested statuts is set to "Return All Statuses"
    send statuts/Status by Mail is set to "All Statuses"
    SCOT is currently set to "not expecting any receipt confirmation or exceptions".
    If we add « hotmail.com » in the domain exception list, our users will receive a status message for everything that is sent to this domain.
    But the goal is to receive status message only for the two vendors defnied in the comm. strategy.
    Any idea?

    I made this test...
    In SCOT,  I added this address as an exception: 123<at>hotmail.com.
    Then in ME9F, I edit my message to the vendor 123<at>hotmail.com... And I receive a receipt confirmation, good.
    Then I edit a message to the vendor 789<at>hotmail.com... And I receive a receipt confirmation too, that's the problem...

  • HT1688 how can i register my phone with apple to obtain my 1 year warranty

    how can i register my phone with apple to obtain my 1 year warranty

    The one year standard hardware warranty comes with iPhone. No registration required.
    If you have purchased AppleCare Protection Plan (APP) or AppleCare Protection Plan Plus (APP+) during the purchase of your iPhone, it is Auto-Registered if you purchased it at the Apple Retail Store or Apple Online Store.
    If you purchased the boxed APP or APP+ from Apple or any reseller, you will need to go to supportprofile.apple.com and sign in with your AppleID username and Password.
    You will need to register your Serial Number (found on iPhone Box or in Settings>General>About) and then register your APP or APP+ with the slip of paper that came in white box with the red Apple Logo.
    Hope this helps!

  • How can we handle dateformat from diff countries into india in bdc with out

    hi
    experts can u help me pz
    how can we handle dateformat from diff countries into india in bdc with out chnaging system parameters while uploading.
    i.e flatfile date is germanformat
         target date is indianformat.
    thanks and regords.

    use WRITE statement to format date.. along with extension ...
    DD/MM/YY
    or
    DD/MM/YYYY

  • How to create bdc with table control

    hi all.
    please some body tell me how to create bdc with table control
    or suggest any www with screen shots
    thanks in advance ,
    aparna

    Hi AParna,
    Its very Simple.
    ALl you have to do is set up a counter based on the number of lines in the tabke. when the counter reaches the number of lines in the table hit the next page button which is at the top of every screen in SAP.
    Please refer to the following BDC program I had developed using Table control,
    this is for ME01 transaction.
      LOOP AT T_EORD_HED.
        SELECT SINGLE * FROM MARA WHERE MATNR = T_EORD_HED-MATNR.
        IF SY-SUBRC = 0.
          PERFORM BDC_DYNPRO      USING 'SAPLMEOR' '0200'.
          PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                        'EORD-MATNR'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM BDC_FIELD       USING 'EORD-MATNR'
                                        T_EORD_HED-MATNR.       "'58335'.
          PERFORM BDC_FIELD       USING 'EORD-WERKS'
                                        T_EORD_HED-WERKS.       "'0253'.
          L_COUNT = 1.
          LOOP AT T_EORD WHERE MATNR = T_EORD_HED-MATNR
                           AND WERKS = T_EORD_HED-WERKS.
            SELECT SINGLE * FROM LFA1 WHERE LIFNR = T_EORD-LIFNR.
            IF SY-SUBRC = 0.
    * Look into the if condition below
              IF L_COUNT = 010.
                L_COUNT = 1.
                PERFORM BDC_DYNPRO      USING 'SAPLMEOR' '0205'.
                PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'EORD-MATNR'.
                PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                       '=NS'.
                L_COUNT = L_COUNT + 1.
              ENDIF.
              PERFORM BDC_DYNPRO      USING 'SAPLMEOR' '0205'.
              PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                            'EORD-AUTET(01)'.
              PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                            '/00'.
              CONCATENATE 'EORD-VDATU' '(' L_COUNT ')' INTO OPR_FIELD.
              WRITE SY-DATUM TO T_EORD-VDATU.
              PERFORM BDC_FIELD       USING OPR_FIELD
                                            T_EORD-VDATU.
              CONCATENATE 'EORD-BDATU' '(' L_COUNT ')' INTO OPR_FIELD.
              WRITE T_EORD-BDATU TO V_BDATU.
              PERFORM BDC_FIELD       USING OPR_FIELD
                                            V_BDATU.
              CONCATENATE 'EORD-LIFNR' '(' L_COUNT ')' INTO OPR_FIELD.
              PERFORM BDC_FIELD       USING OPR_FIELD
                                            T_EORD-LIFNR.
              CONCATENATE 'EORD-EKORG' '(' L_COUNT ')' INTO OPR_FIELD.
              PERFORM BDC_FIELD       USING OPR_FIELD
                                            '0001'.
              CONCATENATE 'EORD-RESWK' '(' L_COUNT ')' INTO OPR_FIELD.
              PERFORM BDC_FIELD       USING OPR_FIELD
                                            T_EORD-RESWK.
              WRITE T_EORD-MEINS TO V_MEINS.
              CONCATENATE 'EORD-MEINS' '(' L_COUNT ')' INTO OPR_FIELD.
              PERFORM BDC_FIELD       USING OPR_FIELD
                                            V_MEINS.
    *          CONCATENATE 'EORD-EBELN' '(' L_COUNT ')' INTO OPR_FIELD.
    *          PERFORM BDC_FIELD       USING 'OPR_FIELD'
    *                                        T_EORD-EBELN.
              CONCATENATE 'EORD-EBELP' '(' L_COUNT ')' INTO OPR_FIELD.
              PERFORM BDC_FIELD       USING OPR_FIELD
                                            T_EORD-EBELP.
              IF T_EORD-FLIFN NE SPACE OR T_EORD-FRESW NE SPACE OR
                 T_EORD-FEBEL NE SPACE.
                CONCATENATE 'RM06W-FESKZ' '(' L_COUNT ')' INTO OPR1_FIELD.
                PERFORM BDC_FIELD       USING OPR1_FIELD
                                              'X'.
              ENDIF.
              IF T_EORD-NOTKZ <> ''.
                CONCATENATE 'EORD-NOTKZ' '(' L_COUNT ')' INTO OPR_FIELD.
                PERFORM BDC_FIELD       USING OPR_FIELD
                                              'X'.
              ENDIF.
              CONCATENATE 'EORD-AUTET' '(' L_COUNT ')' INTO OPR_FIELD.
              PERFORM BDC_FIELD       USING OPR_FIELD
                                            T_EORD-AUTET.
              L_COUNT = L_COUNT + 1.
            ENDIF.
          ENDLOOP.
          PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                        'EORD-MATNR'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '=BU'.
          CALL TRANSACTION 'ME01' USING I_BDCDATA
                        MODE UP_MODE
    *                     optIONS  FROM l_opt
                        MESSAGES INTO I_BDCMSGCOLL.
          PERFORM FORMAT_OUTPUT.
        ENDIF.
      ENDLOOP.

  • How to obtain Encore with Premiere CS6?

    How to obtain Encore with Premiere CS6?

    CS5-thru-CC PPro/Encore tutorial list http://forums.adobe.com/thread/1448923 may help
    For help with using/learning Encore, go to https://forums.adobe.com/community/encore/content
    The bottom section of the tutorial link above has several Adobe links, and other information, on downloading Premiere Pro CS6 and the bundled Encore CS6, and the TWO ADDED downloads for the Encore library content, to author a DVD or BluRay... and the tutorial list includes learning how to use Encore... pay particular attention to the picture in reply 3 at this link - https://forums.adobe.com/thread/1516173 (picture first posted by Ann Bens and reposted by Stan Jones)

  • How to capture F4 help during bdc recording

    Hello All,
    I need one help to solve one of the requrimkents..
    In transaction Co02, user have to add the compoenents manually..but before user adds the components manually, i need to call the transaction co02, then i have do F4 help and fill the data for the user and then user will handle it manually...
    So till F4 help and filling the data in F4 help, i need to do through my program using bdc...when i try to do, F4 help is not captured in my recording..
    So please help me how to capture F4 help during BDC recording.
    Thanks in advance
    Sangeetha

    HI Sangeetha,
    I have one question for you!!!!
    Capturing F4 help  in BDC recording is secondary thing. First, If you want the user to select the value from the F4 help, then in that case user will have to run the BDC program in the foreground mode which is not possible and time consuming if your file is having more records (say >100). Then in that case will you prompt the user every time for selecting the component values, as many records there will be in the file to be uploaded??? I think it is not a way of handling or capturing the component values. I would prefer that pass the component values in the file which has to be uploaded.
    Please let me know if you still have some doubts on the same.
    Thanks
    VJ

  • How to set up Airport Extreme with Charter ARRIS Modem TM902A for the first time for WIRELESS.

    How to set up Airport Extreme with Charter ARRIS Modem TM902A for the first time for WIRELESS.
    When Charter Tech goes to your site, have them connect the modem up, but do not connect the modem to your iMAC or MacBook Pro.  What you want to do is connect the Airport Extreme to the iMac or MacBook Pro first with the Ethernet Cable. You have to do this to configure via Airport Utility to set up the Base Station Name & Base Station Password.
    You will then create/configure a Wireless Network, create your Wireless Password that will be entered on each of your Devices, example, Apple Tv, your iPhone, etc., you want to allow access to your Wireless Network you are creating.
    Wireless Security will be -> WPA/WPA2 personal or just WPA2
    Enter the Wireless Password you want
    Verify the Wireless Password (enter it again)
    After it is created you will see it on the Airport Utility window with the name you created for it and to the left, will be a Dot (circle that will be yellow).
    Next you then want to unplug the power to the Airport Extreme, and then take the end of the Ethernet cable you unplugged from the iMac or Lap top MacBook Pro and connect it to the back of the Modem.
    Next unplug the power cord from the modem and wait about 5 minutes, then plug the power back into the Arris Modem and wait until all lights come back on the modem wait
    about 5 minutes, then plug the power cord back to the Airport Extreme and you will see it the light blinking yellow.  Wait about 5 to 10 minutes, during this time Restart you IMAC or MacBook Pro, and once it is back up click on the Airport Utility and you should see on the Airport Utility screen.
    For INTERNET to the left the light should be green and you should see the Airport Extreme also appear and the light to the left on the screen should also be green.  If they are, you then should be able to click on the Wireless Symbol on top of bar of the screen and click to select the Wireless Network Name you created.
    If you Do Not See the light (Icon) next to INTERNET turn Green, or if you see the Internet Light Green, but the Light (Icon) next to the Airport Extreme is yellow, unplug the power again to the modem and unplug the power again to the Airport extreme and wait about 15 minutes or up to 30 minutes. Then plug the power cord back to the modem wait till all the lights light up then, plug the power cord back into the Airport Extreme and Restart your iMAC or MacBook Pro.
    The Airport Extreme light should change from yellow to green. Open up the Airport Utility to see what the indicators are showing they should both be green.  Again select Wireless network you created under the Wireless Icon on the top right of the screen. Open Safari and see if you are able to Route to a web page or the apple site should appear.
    WHAT TO DO IF YOUR AIRPORT EXTREME WAS PREVIOUSLY SET UP FOR USE WITH ANOTHER CARRIERS ROUTER OR MODEM.
    NOTE:  If you already had your Airport Extreme connected for example, I previously had ATT Uverse and the Airport Extreme was connected to the Wireless Router Model 3801HGV, I disabled the Uverse Wireless and used the Airport Extreme for the Wireless signal in bridge mode, as the Airport extreme Signal is much stronger than the Uverse router, and I was able to obtain a Wireless signal with the Airport Extreme way much better with no signal loss which was very very frustrating with the Uverse router.
    Anyhow if you had it hooked up like this, now that you will be using it with the Charter ARRIS Modem TM902A, you will need to reset the Airport Extreme to clear out the old data it has in memory, with the previous set up otherwise it will not work. Trust me I spent 6 hours trying to make it work reading all Apple Support Community questions and answers relating to this type issue/problem others have been having trying to get their set up working. I tried all the tips, and I finally decided just to see if by chance I would be able to connect with someone with Charter Tech support who might be familiar with Apple to be able to assist me and by luck I did.  He told me why it was not working and was all due the previous configuration with the ATT Uverse router was still in memory with the Airport Extreme. Finally it was 10:30 PM when I decided to call Charter Tech Support and I had been working on this since 3:00 pm pacific. I did not call them earlier as all the post I read said they never received any good help from Charter. After calling them I finished up by 11:00 PM and was able to finally connect Apple Tv, iMac, iPhones and Macbook Pro. We love our Apple Product and Happy all is connected with the new
    Internet Provider Charter. I must say the speed is way way much better than it ever was with AT&T Uverse. 
    THIS IS WHAT YOU WILL NEED TO DO:
    First you will need to unplug the Airport Extreme, then by taking the tip of a pen or paper clip end you need to push the reset button on the back of the Airport Extreme and hold it
    down and at the same time plug the power cord back into the Airport Extreme count to 5 or 10 then release the reset button. Then once he light in front of the Airport Extreme stops blinking you need to plug the Ethernet cable from the Airport Extreme to your iMAC or Macbook Pro, and restart which ever one you have, then open the Airport Utility once it is back up.  If you see airport extreme pop up with the old network name or it shows and yellow triangle click on the Airport Extreme ICON it will not let you configure it but will ask if you want to get rid of it or remove and just do it.  Then Again restart your iMAC or MacBook Pro, open up Airport Utility again, and on the top left you should see under “Other Airport Base Stations” the MAC ID for the Airport Extreme.
    You will then create/configure a Wireless Network, create your Wireless Password that will be entered on each of your Devices, example, Apple TV, your iPhone, etc., you want to allow access to your Wireless Network you are creating.
    Wireless Security will be -> WPA/WPA2 personal or just WPA2
    Enter the Wireless Password you want
    Verify the Wireless Password (enter it again)
    After it is created you will see it on the Airport Utility window with the name you created for it and to the left, will be a Dot (circle that will be yellow).
    Next you then want to unplug the power to the Airport Extreme, and then take the end of the Ethernet cable you unplugged from the iMac or Lap top MacBook Pro and connect it to the back of the Modem.
    Next unplug the power cord from the modem and wait about 5 minutes, then plug the power back into the Arris Modem and wait until all lights come back on the modem wait
    about 5 minutes, then plug the power cord back to the Airport Extreme and you will see it the light blinking yellow.  Wait about 5 to 10 minutes, during this time Restart you IMAC or MacBook Pro, and once it is back up click on the Airport Utility and you should see on the Airport Utility screen.
    For INTERNET to the left the light should be green and you should see the Airport Extreme also appear and the light to the left on the screen should also be green.  If they are, you then should be able to click on the Wireless Symbol on top of bar of the screen and click to select the Wireless Network Name you created.
    If you Do Not See the light (Icon) next to INTERNET turn Green, or if you see the Internet Light Green, but the Light (Icon) next to the Airport Extreme is yellow, unplug the power again to the modem and unplug the power again to the Airport extreme and wait about 15 minutes or up to 30 minutes. Then plug the power cord back to the modem wait till all the lights light up then, plug the power cord back into the Airport Extreme and Restart your iMAC or MacBook Pro.
    The Airport Extreme light should change from yellow to green. Open up the Airport Utility to see what the indicators are showing they should both be green.  Again select Wireless network you created under the Wireless Icon on the top right of the screen. Open Safari and see if you are able to Route to a web page or the apple site should appear.

    I just got a Charter Modem. Model TM822. While I was moving, my Airport Extreme was still at my old place.
    I have a Linksys WRT320N I used for the initial Charter setup.
    I can get my Airport to work here, but the Internet light on the Modem flashes Yellow.
    Hasn't caused any issues so far but one thing I did notice.
    On the Linksys there were 3 DNS servers listed.
    The Airport Extreme only lists 2 and i don't see where I could add another, only change whats already there.
    I tried everything above, but light on modem still flashes yellow.
    I have the technicians cell phone. Told me "that shouldn't be" and gave the same advice listed above.
    I'll break down and call Charter one day, see if it's on their end. NSA tracking may need a reset LMAO.

  • How to obtain the row data in the component datatable?

    if I want to edit a row data, and then know which row is edited in the component datatable, and how to do?
    How to obtain the row data in the component datatable, and update it to database, not simplely edit a simple table
    Any ideas? Thanks

    Thank you very much for your help Alexander !
    It's quite confusing when you leave Struts and try to adapt your projects for JSF for the first time...
    I wanted to click on a row with a "onMouseClick" on the TR tag like I used to do in Struts/JSTL. But it seems to be impossible in a dataTable.
    Ok then. I've added a column at the end of the row with an icon.
    But eventually I didn't need to declare link parameters.
    In my BackingBean I did like this :
    public String selectEventForUpdate() throws IllegalAccessException, InvocationTargetException {
            PortletAgenda event = (PortletAgenda) JSFUtils.getInRequestMap("event");
            BeanUtils.copyProperties(this, event);
            return null;
       }JSFUtils.getInRequestMap(...) is a method I wrote in a util object :
    public static Object getInRequestMap(String name) {
            Object res = null;
            Map requestMap=FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
            if (requestMap!=null) {
                res=requestMap.get(name);
            return res;
    }  " event " is the name of the item in my dataTable list.
    My backingBean has the same attributes as "event".
    So when the page is reloaded I have a backingBean full with the selected properties to edit/update.
    Thanks to your reply I realized that putting this form in the middle of the dataTable seems to be impossible.
    So I put this form in a floating DIV in front of the table with a shadow.
    It works :o) !
    But I'm a little bit disapointed to be honest...
    I used to build my web applications with Struts and JSTL and doing this kind of interface was really easy.
    I've decided 3 days ago to convert into JSF because the "GUI Layer" seemed to be improved.
    But now I realize that I cannot put a onMouseOver and onMouseClick on a row and I cannot display a different row in the middle of a table....
    I think it's a shame because there is a facet for header and footer.
    And it would be great if we could create our own personal facet that appears only if a condition is true.
    For exemple " if the current item id is the same as the request parameter id then display the following facet content ....... (with a panel group and a form inside to update the row) "
    It's easy to do that with JSTL thanks to c:forEach and c:if but it seems to be impossible to use JSTL tags like this during the dataTable iteration.
    And JSF tags seems to have no logical tags like " if " or loops that can be nested in dataTable.
    I really need to realize this interface (you click on a row then an edit form appears where you clicked).
    Do I have to write a component myself that extends dataTable?
    Do you know if writing such a component is hard to do for a beginner like me?
    (I've juste discovered JSF 3 days ago and I've used Struts/JSTL for 2 years til now)
    I'd be glad to have much advices from you about that.
    Regards

  • BDC With table Control

    Dear All .
    can you give me some idea how to do BDC with tbale Control . Any documentation on the same or some simple example .

    Handling Table Control in BDC
    An example abap program of handling Table Control during bdc programming.
    REPORT zmm_bdcp_purchaseorderkb02
           NO STANDARD PAGE HEADING LINE-SIZE 255.
                    Declaring internal tables                            *
    *-----Declaring line structure
    DATA : BEGIN OF it_dummy OCCURS 0,
             dummy(255) TYPE c,
           END OF it_dummy.
    *-----Internal table for line items
    DATA :  BEGIN OF it_idata OCCURS 0,
              ematn(18),      "Material Number.
              menge(13),      "Qyantity.
              netpr(11),      "Net Price.
              werks(4),       "Plant.
              ebelp(5),       "Item Number.
            END OF it_idata.
    *-----Deep structure for header data and line items
    DATA  :  BEGIN OF it_me21 OCCURS 0,
               lifnr(10),      "Vendor A/c No.
               bsart(4),       "A/c Type.
               bedat(8),       "Date of creation of PO.
               ekorg(4),       "Purchasing Organisation.
               ekgrp(3),       "Purchasing Group.
               x_data LIKE TABLE OF it_idata,
             END OF it_me21.
    DATA  :  x_idata LIKE LINE OF it_idata.
    DATA  :  v_delimit VALUE ','.
    DATA  :  v_indx(3) TYPE n.
    DATA  :  v_fnam(30) TYPE c.
    DATA  :  v_count TYPE n.
    DATA  :  v_ne TYPE i.
    DATA  :  v_ns TYPE i.
    *include bdcrecx1.
    INCLUDE zmm_incl_purchaseorderkb01.
                    Search help for file                                 *
    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.
    START-OF-SELECTION.
           To upload the data into line structure                        *
      CALL FUNCTION 'WS_UPLOAD'
        EXPORTING
          filename = p_file
          filetype = 'DAT'
        TABLES
          data_tab = it_dummy.
        Processing the data from line structure to internal tables       *
      REFRESH:it_me21.
      CLEAR  :it_me21.
      LOOP AT it_dummy.
        IF it_dummy-dummy+0(01) = 'H'.
          v_indx = v_indx + 1.
          CLEAR   it_idata.
          REFRESH it_idata.
          CLEAR   it_me21-x_data.
          REFRESH it_me21-x_data.
          SHIFT it_dummy.
          SPLIT it_dummy AT v_delimit INTO it_me21-lifnr
                                           it_me21-bsart
                                           it_me21-bedat
                                           it_me21-ekorg
                                           it_me21-ekgrp.
          APPEND it_me21.
        ELSEIF it_dummy-dummy+0(01) = 'L'.
          SHIFT it_dummy.
          SPLIT it_dummy AT v_delimit INTO it_idata-ematn
                                           it_idata-menge
                                           it_idata-netpr
                                           it_idata-werks
                                           it_idata-ebelp.
          APPEND it_idata TO it_me21-x_data.
          MODIFY it_me21 INDEX v_indx.
        ENDIF.
      ENDLOOP.
                    To open the group                                    *
      PERFORM open_group.
            To populate the bdcdata table for header data                *
      LOOP AT it_me21.
        v_count = v_count + 1.
        REFRESH it_bdcdata.
        PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0100',
                                        ' ' 'BDC_CURSOR'  'EKKO-LIFNR',
                                        ' ' 'BDC_OKCODE'  '/00',
                                        ' ' 'EKKO-LIFNR'  it_me21-lifnr,
                                        ' ' 'RM06E-BSART' it_me21-bsart,
                                        ' ' 'RM06E-BEDAT' it_me21-bedat,
                                        ' ' 'EKKO-EKORG'  it_me21-ekorg,
                                        ' ' 'EKKO-EKGRP'  it_me21-ekgrp,
                                        ' ' 'RM06E-LPEIN' 'T'.
        PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0120',
                                        ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                        ' ' 'BDC_OKCODE'  '/00'.
        MOVE 1 TO v_indx.
    *-----To populate the bdcdata table for line item data
        LOOP AT it_me21-x_data INTO x_idata.
          CONCATENATE 'EKPO-EMATN(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-ematn.
          CONCATENATE 'EKPO-MENGE(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-menge.
          CONCATENATE 'EKPO-NETPR(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-netpr.
          CONCATENATE 'EKPO-WERKS(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-werks.
          v_indx = v_indx + 1.
          PERFORM subr_bdc_table USING:  'X' 'SAPMM06E'    '0120',
                                         ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                         ' ' 'BDC_OKCODE'  '/00'.
        ENDLOOP.
        PERFORM subr_bdc_table USING:    'X' 'SAPMM06E'    '0120',
                                         ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                         ' ' 'BDC_OKCODE'  '=BU'.
        PERFORM bdc_transaction USING 'ME21'.
      ENDLOOP.
      PERFORM close_group.
                      End of selection event                             *
    END-OF-SELECTION.
      IF session NE 'X'.
    *-----To display the successful records
        WRITE :/10  text-001.          "Sucess records
        WRITE :/10  SY-ULINE(20).
        SKIP.
        IF it_sucess IS INITIAL.
          WRITE :/  text-002.
        ELSE.
          WRITE :/   text-008,          "Total number of Succesful records
                  35 v_ns.
          SKIP.
          WRITE:/   text-003,          "Vendor Number
                 17 text-004,          "Record number
                 30 text-005.          "Message
        ENDIF.
        LOOP AT it_sucess.
          WRITE:/4  it_sucess-lifnr,
                 17 it_sucess-tabix CENTERED,
                 30 it_sucess-sucess_rec.
        ENDLOOP.
        SKIP.
    *-----To display the erroneous records
        WRITE:/10   text-006.          "Error Records
        WRITE:/10   SY-ULINE(17).
        SKIP.
        IF it_error IS INITIAL.
          WRITE:/   text-007.          "No error records
        ELSE.
          WRITE:/   text-009,          "Total number of erroneous records
                 35 v_ne.
          SKIP.
          WRITE:/   text-003,          "Vendor Number
                 17 text-004,          "Record number
                 30 text-005.          "Message
        ENDIF.
        LOOP AT it_error.
          WRITE:/4  it_error-lifnr,
                 17 it_error-tabix CENTERED,
                 30 it_error-error_rec.
        ENDLOOP.
        REFRESH it_sucess.
        REFRESH it_error.
      ENDIF.
    CODE IN INCLUDE.
    Include           ZMM_INCL_PURCHASEORDERKB01
    DATA:   it_BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
    DATA:   it_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA:   E_GROUP_OPENED.
    *-----Internal table to store sucess records
    DATA:BEGIN OF it_sucess OCCURS 0,
           msgtyp(1)   TYPE c,
           lifnr  LIKE  ekko-lifnr,
           tabix  LIKE  sy-tabix,
           sucess_rec(125),
         END OF it_sucess.
    DATA: g_mess(125) type c.
    *-----Internal table to store error records
    DATA:BEGIN OF it_error OCCURS 0,
           msgtyp(1)   TYPE c,
           lifnr  LIKE  ekko-lifnr,
           tabix  LIKE  sy-tabix,
           error_rec(125),
         END OF it_error.
           Selection screen
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS session RADIOBUTTON GROUP ctu.  "create session
    SELECTION-SCREEN COMMENT 3(20) text-s07 FOR FIELD session.
    SELECTION-SCREEN POSITION 45.
    PARAMETERS ctu RADIOBUTTON GROUP ctu.     "call transaction
    SELECTION-SCREEN COMMENT 48(20) text-s08 FOR FIELD ctu.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(20) text-s01 FOR FIELD group.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS group(12).                      "group name of session
    SELECTION-SCREEN COMMENT 48(20) text-s05 FOR FIELD ctumode.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS ctumode LIKE ctu_params-dismode DEFAULT 'N'.
    "A: show all dynpros
    "E: show dynpro on error only
    "N: do not display dynpro
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 48(20) text-s06 FOR FIELD cupdate.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS cupdate LIKE ctu_params-updmode DEFAULT 'L'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(20) text-s03 FOR FIELD keep.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS: keep AS CHECKBOX.       "' ' = delete session if finished
    "'X' = keep   session if finished
    SELECTION-SCREEN COMMENT 48(20) text-s09 FOR FIELD e_group.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS e_group(12).             "group name of error-session
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 51(17) text-s03 FOR FIELD e_keep.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS: e_keep AS CHECKBOX.     "' ' = delete session if finished
    "'X' = keep   session if finished
    SELECTION-SCREEN END OF LINE.
    PARAMETERS:p_file LIKE rlgrap-filename.
      at selection screen                                                *
    AT SELECTION-SCREEN.
    group and user must be filled for create session
      IF SESSION = 'X' AND
         GROUP = SPACE. "OR USER = SPACE.
        MESSAGE E613(MS).
      ENDIF.
      create batchinput session                                          *
    FORM OPEN_GROUP.
      IF SESSION = 'X'.
        SKIP.
        WRITE: /(20) 'Create group'(I01), GROUP.
        SKIP.
    *----open batchinput group
        CALL FUNCTION 'BDC_OPEN_GROUP'
          EXPORTING
            CLIENT = SY-MANDT
            GROUP  = GROUP
            USER   = sy-uname.
        WRITE:/(30) 'BDC_OPEN_GROUP'(I02),
                (12) 'returncode:'(I05),
                     SY-SUBRC.
      ENDIF.
    ENDFORM.                    "OPEN_GROUP
      end batchinput session                                             *
    FORM CLOSE_GROUP.
      IF SESSION = 'X'.
    *------close batchinput group
        CALL FUNCTION 'BDC_CLOSE_GROUP'.
        WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),
                (12) 'returncode:'(I05),
                     SY-SUBRC.
      ELSE.
        IF E_GROUP_OPENED = 'X'.
          CALL FUNCTION 'BDC_CLOSE_GROUP'.
          WRITE: /.
          WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).
        ENDIF.
      ENDIF.
    ENDFORM.                    "CLOSE_GROUP
           Start new transaction according to parameters                 *
    FORM BDC_TRANSACTION USING TCODE TYPE ANY.
      DATA: L_SUBRC LIKE SY-SUBRC.
    *------batch input session
      IF SESSION = 'X'.
        CALL FUNCTION 'BDC_INSERT'
          EXPORTING
            TCODE     = TCODE
          TABLES
            DYNPROTAB = it_BDCDATA.
        WRITE: / 'BDC_INSERT'(I03),
                 TCODE,
                 'returncode:'(I05),
                 SY-SUBRC,
                 'RECORD:',
                 SY-INDEX.
      ELSE.
        REFRESH it_MESSTAB.
        CALL TRANSACTION TCODE USING it_BDCDATA
                         MODE   CTUMODE
                         UPDATE CUPDATE
                         MESSAGES INTO it_MESSTAB.
        L_SUBRC = SY-SUBRC.
        WRITE: / 'CALL_TRANSACTION',
                 TCODE,
                 'returncode:'(I05),
                 L_SUBRC,
                 'RECORD:',
                 SY-INDEX.
      ENDIF.
      Message handling for Call Transaction                              *
      perform subr_mess_hand using g_mess.
    *-----Erzeugen fehlermappe
      IF L_SUBRC <> 0 AND E_GROUP <> SPACE.
        IF E_GROUP_OPENED = ' '.
          CALL FUNCTION 'BDC_OPEN_GROUP'
            EXPORTING
              CLIENT = SY-MANDT
              GROUP  = E_GROUP
              USER   = sy-uname
              KEEP   = E_KEEP.
          E_GROUP_OPENED = 'X'.
        ENDIF.
        CALL FUNCTION 'BDC_INSERT'
          EXPORTING
            TCODE     = TCODE
          TABLES
            DYNPROTAB = it_BDCDATA.
      ENDIF.
      REFRESH it_BDCDATA.
    ENDFORM.                    "BDC_TRANSACTION
         Form  subr_bdc_table                                            *
          text
         -->P_0220   text                                                *
         -->P_0221   text                                                *
         -->P_0222   text                                                *
    FORM subr_bdc_table  USING      VALUE(P_0220) TYPE ANY
                                    VALUE(P_0221) TYPE ANY
                                    VALUE(P_0222) TYPE ANY.
      CLEAR it_bdcdata.
      IF P_0220 = ' '.
        CLEAR it_bdcdata.
        it_bdcdata-fnam     = P_0221.
        it_bdcdata-fval     = P_0222.
        APPEND it_bdcdata.
      ELSE.
        it_bdcdata-dynbegin = P_0220.
        it_bdcdata-program  = P_0221.
        it_bdcdata-dynpro   = P_0222.
        APPEND it_bdcdata.
      ENDIF.
    ENDFORM.                    " subr_bdc_table
         Form  subr_mess_hand                                            *
          text                                                           *
         -->P_G_MESS  text                                               *
    FORM subr_mess_hand USING  P_G_MESS TYPE ANY.
      LOOP AT IT_MESSTAB.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID     = it_messtab-msgid
            LANG   = it_messtab-msgspra
            NO     = it_messtab-msgnr
            v1     = it_messtab-msgv1
            v2     = it_messtab-msgv2
          IMPORTING
            MSG    = P_G_MESS
          EXCEPTIONS
            OTHERS = 0.
        CASE it_messtab-msgtyp.
          when 'E'.
            it_error-error_rec   =  P_G_MESS.
            it_error-lifnr       =  it_me21-lifnr.
            it_error-tabix       =  v_count.
            APPEND IT_ERROR.
          when 'S'.
            it_sucess-sucess_rec =  P_G_MESS.
            it_sucess-lifnr      =  it_me21-lifnr.
            it_sucess-tabix      =  v_count.
            APPEND IT_SUCESS.
        endcase.
      ENDLOOP.
      Describe table it_sucess lines v_ns.
      Describe table it_error  lines v_ne.
    ENDFORM.                    " subr_mess_hand

  • Please help!!!  How to obtain UIData instance?

    Hi,
    I have an <h:dataTable> tag on a .jsp which has its value bound to a backing bean property of a concrete implementation of DataModel.
    In the backing bean, I'd like to set the "First" property of the corresponding UIData component, but I don't know how to obtain a reference to the UIData object with just a reference to the DataModel object. How can I do this?
    Thanks and much appreciated,
    Eric.

    Hi Yuki,
    Great suggestions! Thanks.
    I'm experimenting with using component binding, and it seems to be a very promising solution. I wonder what are the reasons you hate it? Anything I have to watch out for?
    Btw, one difference I notice when using component binding is that the get() method for the component is NOT called during a postback to the same view, as opposed to using value binding where the get() method is called. Is this to be expected and why is that?
    Thanks,
    Eric.

  • How to obtain the license for the mentioned products.

    Hi All,
    Please help me in below licensing issues.
    1) Our functional team got the below error while accessing "Job Scheduling Workbench".
    Error: The Workbench is inaccessible because Oracle Manufacturing Scheduling has not been licensed. Please work with your Account Manger to purchase the license.
    2) Another error message while accessing the navigation Flow Manufacturing --> Product Sync --> Flow Routings
    Error: APP-BOM 20972: You cannot access this form
    Cause: You do not have a license for Oracle Flow Manufacturing.
    Action: Obtain a license for Oracle Flow Manufacturing.
    Please guide me how to obtain the license for the above products.
    Environment: eBS R12.1.3 on Linux 5.8
    Regards,
    Siva

    Thanks for providing the document. I follow the document and get back to you for any issues.
    Regards,
    Siva.

  • How to setup Security during installation

    Hi Experts,
       Please let me know how to achieve "Setting up security for service-level accounts (page 12 in SAP BPC 5.1 Master Install Guide)"... I have created 3 users in my windows server 2003:
                 1.Administrator (member of Administrators group in server 2003)
                 2.SysAdmin (member of Administrators group in server 2003)
                 3.student (member of Users group in server 2003)
    Please let me know whether\how the System Admin ID matches with the SystemAdmin role in the BPC 5.1 and how the Admin ID matches with the PrimaryAdmin role in the BPC 5.1.
    I am installing using SysAdmin ID which is a member of Administrators group on my machine.
    I have also got License file from Service Market Place for SAP BPC 5.1 where and how should I use this file ??
    Thank You,
    Sudhakar Kuricheti

    What I normally do during an installation, is to create one user whith which I do the complete installation.This user should pass the following requirements:
    u2022 The user must preferably be a domain user. It can be a local user on the server, but not in a production environment.
    u2022 The user must be a local administrator on the SAP BPC server and in the case of a multi-server installation on all the servers in the environment.
    u2022 This user will have to be part of the Remote Desktop users group as well because it is the only user that will be able to perform certain actions on the SAP BPC server through the SAP BPC Server Manager for example backups and restores of application sets.
    u2022 Please note, this user can be reset through the server manager but because it is normally also used to start the SAP BPC COM+ components, certain services and many tasks within the application, it is of utmost importance that this user must be configured carefully before the start of the installation.
    Then I instal SQL 2005 in mixed mode (so with a SA account). When finished installing SQL 2005 I run the SAP BPC setup, where I specify the same user as I used for the SQL 2005 installation for all 3 fields where usernames can be filled in.
    Regarding the license file, this can be located anywhere on your server where it does not get deleted. Mostly during my installations I make a folder on the C drive called something like C:/BPC License File and put it there. The license file should be specified in the third step (first select install BPC on SQL2005, then next on the first screen containing some warnings about closing all other windows applications).
    Edited by: Tim Vierhout on Sep 2, 2008 8:11 AM

Maybe you are looking for

  • Catch error in BPM process

    I'm working with 11g. I have a BPM process and I want catch the system errors to redirect the work flow at a subprocess or in the particular form that can help external users I have tried with "evant subprocess" but don't work (BUG fix in only for PS

  • Budgeting Process Steps

    Hi,   As far as i can comprehend from budgeting textbooks, the few major steps involved in coming up with a detailed budget involved (regardless of software at this moment): 1) study external and internal factors, 2) C level people (CFO, CEO..) come

  • Error code 5103 "Unable to Play" with rental movies! Please help!!

    I have a PC with Windows 7. iTunes 10.5.2. I purchased 2 rental movies and have downloaded them a few times now. But when I press "Play" I get the error code 5103 - Unable to Play. This has been going on for 2 weeks. Please help!!!!

  • Downloaded ios6 to iPhone4s and now emails won't come through?

    Updated iPhone with ios6 and my emails will not come through now

  • Photos automatically rotate

    hi everyone, i have about 400 photos i took when i was on a trip and when ever i open them up fully in iphoto the all rotate 90 degress to the right. anyone know how to fix this? thank you