Skip to Content
Author's profile photo Rakshith Gore

Enhancement of RF Screens – LMOB

There are various links in SCN, which guide us on the use of RF programming and the steps to follow while developing a custom program. But what if a standard screen from LMOB function group needs to be modified??

Here is the complete steps, which can be referred to add the customer fields to standard RF screen belongs to LMOB function group.

  • Get the Actual Screen Number based on Logical Screen Number in SPRO -> Logistic Execution -> Mobile Data Entry -> Define Screen Management

IMG.png

  • For Example, to enhance the RF screen of Pick and Pack (LM45 Transaction) the Logical Screen for Pick and Pack is ‘0650’. In the Define Screen Management (defined above) the actual screen number in Narrow Format (16X20) is ‘2650’ and Large Format(8X40) is ‘0650’

Screen Management_1.png

Screen Management_2.png

  • In the LMOB function group for every logical screen a dummy screen is available which contains the screen exit. The dummy screens can be identified as ‘1(logical screen). So for logical screen ‘650’ the dummy screen is ‘1650’.

Function Group_LMOB.png

The program mentioned in the green color is nothing but the user screen i.e the screen which has to be created in that program as a subscreen.

  • Now copy the narrow format screen ‘2650’ in the program ‘SAPLXLHU’ as custom screen ‘9650’ (Follow the naming standards of custom screen number 9(logical screen)).

Copy Screen.png

  • In the function group XLHU, screen 9650 gets created. Now remove the OK_CODE from ‘Element list’ tab and screen type is changed to ‘Subscreen’

Custom Screen.png

Element List.png

Flow Logic.png

  • Add the additional fields in the screen layout and populate those fields in PBO or get the values in PAI after a certain user action by capturing the SY-UCOMM.

Screen Painter.png

  • Now the subscreen ‘9650’ has to be embedded in the dummy screen 1650. To do this create a CMOD project and assign the enhancement component MWMRF650

SAP Enhancements.png

SAP Enhancements.png

Note: The enhancement component can be identified by using the F4 help in SMOD transaction. Use the package name as search criteria


  • Activate the CMOD project. The screen exit 1650 gets implemented.

CMOD Project.png

  • Now the custom screen ‘9650’ is configured in the Screen Management (SPRO) for the narrow format (16X20)

Screen Management.png

  • To run the RF transactions, the user must have a screen format configured in the LRFMD transaction.

LRFMD.png

Note: The Variant in the Screen Management and in the LRFMD transaction should be same.


  • Run the transaction LM45

Enhanced LM45.png

  • If the user doesn’t want the additional fields then remove the variant in LRFMD transaction

LRFMD.png

  • Now run the transaction LM45

LM45.png

Assigned Tags

      5 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Alejandro Bindi
      Alejandro Bindi

      Thank you very much for this!!

      I have to modify the standard LM45 as well so this post is invaluable, there's not much info around about this process, even the SAP help I've found is not detailed at all.

      I just have one question, I see the fields you added are ready for input (as I need), but the SAP help says "You can add fields that are available through standard transactions to the existing screens. Currently, these fields can only be used for display purposes.".

      Can you confirm there's no problem in adding custom editable fields?

      Again, many thanks!

      Author's profile photo Rakshith Gore
      Rakshith Gore
      Blog Post Author

      Basically, when you implement the exits and do the configuration like setting the variant to '1' in screen management  for your screen means you have defined a customer screen, not a standard one.
      So you can add the custom editable fields in your screen, there wont be any problems.

      Author's profile photo Alejandro Bindi
      Alejandro Bindi

      Excellent. I will try this approach.

      Thanks!

      Author's profile photo Alejandro Bindi
      Alejandro Bindi

      Hello Rakshith, I have a problem with which you may be able to help.

      Due to changing requirements I ended up leaving screen 0650 as standard (2650) and instead I'm creating a custom version for logical screen 0402, that is i'm copying phisical screen SAPLLMOB 2029 to SAPLXLRF 9402 as a subscreen so I'm able to add a pushbutton (which goes to another completely custom screen). So far so good.

      The problem I have is with the PBO logic of the custom subscreen. Because all the logic is now executed on the main (dummy) screen 1402, the custom subscreen is showing standard fields and buttons which should be hidden, focus is not set on the proper field, etc. The same problem I had with screen 0650, but on this one it is more notorious because it's more complex.

      My question, how to handle this? I tried replicating 2029 logic by creating a FORM which in turn PERFORMs al the logic of the modules, but I don't like this solution and I'm also not sure it is working entirely properly:

      * MODULE STATUS_SCREEN_GROUP3.  => Not applicable

      * MODULE TAP_DISPLAY.
         PERFORM tap_display    IN PROGRAM sapllmob IF FOUND.

      * MODULE SPECIAL_FIELD_OUTPUT.
         PERFORM set_gorup3     IN PROGRAM sapllmob IF FOUND.
         PERFORM set_gorup4     IN PROGRAM sapllmob IF FOUND.

      * MODULE DISABLE_PB_BQUIT.
         IF NOT ltap-kzqui IS INITIAL.
           PERFORM disable_pb   IN PROGRAM sapllmob IF FOUND
                                USING 'P_RLMOB-BQUIT'.
         ENDIF.

      * MODULE SET_VALUES.
         PERFORM table_size     IN PROGRAM sapllmob IF FOUND
                                USING    int_table_name
                                CHANGING tap_init_size init_tabix.
      * MODULE SET_CURSOR.
         PERFORM set_cursor_pos IN PROGRAM sapllmob IF FOUND
                                USING    line_no_step_loop
                                CHANGING screen_fcode current_field.

         PERFORM set_scroll     IN PROGRAM sapllmob IF FOUND
                                USING     tap_index tap_init_size tap_total_lines
                                CHANGING  temporary_index.
      * Not for HUM
         PERFORM set_verify_fields_single IN PROGRAM sapllmob IF FOUND.
         IF   current_field IS INITIAL.
           LOOP AT SCREEN.
             IF screen-invisible = option_off
                AND screen-input = option_on
                AND screen-group1 <> 1.
               SET CURSOR FIELD screen-name.
               EXIT.
             ENDIF.
           ENDLOOP.
         ENDIF.

      Another option would of course be to use just LOOP AT SCREEN and SET CURSOR statements to leave the custom subscreen in the same way, but this would not be dynamic as the standard is, so I'm not sure it's the proper solution either.

      Which is the way to do this? I find no information at all even on SAP support.

      Many thanks

      EDIT: Precisely, you can see the same problem on your blog screenshots: In your custom version of screen 0650 the "F1 Save" button is shown, while the standard version hides it.

      Author's profile photo ananthachari enjarapu
      ananthachari enjarapu

      Hi Rakshith,

      Thanks for sharing.

      Regards,

      E.Ananthachari