Table Maintenance events and field focus

Hi all,
In event 01(save data) of table maintenance, I have the code to ensure some fields are not left blank:
When testing the creation of table records in SM31, it gives me the error msg successfully, but after that greys out all fields in that row except the primary keys.
- My primary keys are already filled.
- The mandatory field that must be filled is not filled yet, but is greyed out after the error message is given.
How can I avoid this and set focus on the mandatory non-key field?
My code as follows:
***INCLUDE LZBUSICONNF03 .
FORM CHECKMANDATORYFIELDS.
  IF ZPWHPO_INC-HPO_NAME IS INITIAL.
*   Enter company code
    MESSAGE e100(ZBUSICONN_MSGCLASS).
  ENDIF.
* Validation of COMPANY_CODE
*  IF TABLEN-company_code IS INITIAL.
ENDFORM.

Hello,
To check on not key fields, you can modify the "Maintenance screens". There you can use the logic as in any other dialog program and add you own check in a PAI module.
Rgds,
JP

Similar Messages

  • How to use the table maintenance events for validating the input entries..?

    Hi,
    I have created a Z table with 6 fields in which all are KEY fields. All are of CHAR type. I have created the Table Maintenance Generator for the same. While maintaining the entries in the table, even though I maintain a blank entry for a field it is saving the entry. But, I don't want that way. All the fields are mandatory in my table. One should enter all the fields. Otherwise it should not allow to save the entry. So, I think it can be done using the Table Maintenance Events. can someone tell me how to use the Table Maintenance Events. and which event to use for my reuqirement and what is the logic to be written.
    Or Is there any other way to solve my problem.
    Please share your inputs. Thanks in advance.
    Best regards,
    paddu.

    In the table maintenance generator, Environment --> Modifications --> Events then a screen will be appear here,we need to create the Events.In the EVENTS screen, press new Entries, there give 01(Before Saving the Data in the Database) and give a name(This will become a PERFORM), then click the Editor pushbutton, this will be there at the right side of the entry, then a popup will be appear, you can create an include program, there inside of the include program write ur code.
    Here is documentation for Event 01(Before Saving the Data in the Database )
    Event 01: Before Saving the Data in the Database
    Use
    This event occurs before new, changed or deleted entries are written to the database. Other activities can be performed, for example:
    hidden entry processing
    fill hidden fields
    flag data to be written to hidden tables after the database change.
    To have the changes saved by the central maintenance dialog routines, SY-SUBRC must be set to 0 at the end of the routine.
    Realization
    This event has no standard routine. The following global data is available for the realization of the user routine:
    internal table TOTAL
    field symbols
    field symbols <ACTION> and <ACTION_TEXT>
    <STATUS>-UPD_FLAG
    If internal table data are to be changed before saving, t he changes should be made in both the internal table TOTAL and in the internal table EXTRACT.
    FORM abc.
    DATA: F_INDEX LIKE SY-TABIX. "Index to note the lines found
    LOOP AT TOTAL.
    IF <ACTION> = desired constant.
    READ TABLE EXTRACT WITH KEY <vim_xtotal_key>.
    IF SY-SUBRC EQ 0.
    F_INDEX = SY-TABIX.
    ELSE.
    CLEAR F_INDX.
    ENDIF.
    (make desired changes to the line TOTAL)
    MODIFY TOTAL.
    CHECK F_INDX GT 0.
    EXTRACT = TOTAL.
    MODIFY EXTRACT INDEX F_INDX.
    ENDIF.
    ENDLOOP.
    SY-SUBRC = 0.
    ENDFORM.
    Regards,
    Joy.

  • Field validation in table maintenance generator and input value grey out.

    i have created ztable with 3 fields as em_no,em_no and addrnumber.
    first two fields are custom fields but the third custom field need to validate the standard table adrc contains the value of the field addrnumber.
    i need the query of field validation query which we write in create entry events in table maintenance generator and also if we give wrong value for addrnumber in sm30 maintain table, the input field need not to be grey out for next entry...
    please help.

    Hi,
    create method -
    >before saving data.....write the logic between the method
    go to utilities->table maintanance ,,,after creating generator ---go to envirnment->modification->events.
    create event -.>.as zsave select event  type 1(before saving data to table) write code in include....
    consider data for field3 is 10 .
    lv_new = ztbr(table name)-field3.
    select field3  from ADRC(ZTABLE) into wa_new (TYPE ZTABLE) where field3 = lv_new.
    if sy-subrc = 0.
         working fine
         else.
        message  i888(sabapdocu) with 'data invalid'.
    endform.
    This will help u...
    Thank u.........

  • Problem with table maintenance event

    Hi Experts,
    In the table maintenance event 05 for a ztable, I have written logic to validate if few key fields and non key fields are not initial.
    If they are initial,need to throw an error message and it has to stay in the same screen.But right now it grays out the non key field.
    Tried the combination of events 01 and 05 it grays out the key field.
    Please let me know if there are any ways to achieve this without making modifications in the PBO or PAI of the ztable.
    Regards,
    Sridevi

    I have this exact problem, why is this thread 'closed'? Is there an answer provided somewhere?
    I have found a topic which shows an information message, which claims that the data is not saved.
    But it does save the data if you use an information message and blocks non-key fields when using an error message
    so this problem is still open for me.
    Does anybody have a solution?
    Ah an answer was indeed provided in another topic:
    Issuing an Error in Table Maintenance Event
    Edited by: Arno ter Horst on May 5, 2011 4:12 PM

  • Table maintenance events

    Hello,
    Does anyone has a code example of table maintenance events?
    I have a custom table ( zitab ) , with a maintenance view in SM30. I would like to use the table maintenance events for some authorisation check before the data is displayed, then, depending on the authorisation, display what the user is authorised to see. After data input, perform validation, if errors occur, inform the user what the problem is, if not, save in tha z table.
    Can this be done in sm30 or I need to write a new program?
    Thank you!

    Can someone please explain me why I have this short dump (before save event)?
    Error analysis
        The statement
          "MOVE src TO dst"
        requires the operands "dst" and "src" to be comvertible.
        Since this statement occurs in a Unicode program, the special
        convertibility rules for Unicode programs apply. In this case, the
        following rules have been broken:
    Source Code Extract
    Line  SourceCde
        1 ----
        2 ***INCLUDE LYTableF04 .
        3 ----
        4
        5 form before_save.
        6
        7 DATA: l_field_is_blank.
        8   DATA: BEGIN OF s_ytable.
        9           INCLUDE STRUCTURE ytable.
       10           INCLUDE STRUCTURE vimtbflags.
       11   DATA: END OF s_ytable.
       12
       13   LOOP AT total.
       14     CLEAR s_ytable.
    >>>>>     MOVE total TO s_table.
       16
       17   ENDLOOP.
       18
       19 endform.
    In all examples that i read on this forum this code works, I don't know why it fails for me.

  • Issuing an Error in Table Maintenance Event

    Hi,
    How can I issue an error in the table maintenance event without exiting the screen.
    When an event is triggered (Before Save), it will perform a check in the data changed or created. It will issue an error when the changes are not correct. But when I press enter or click on the check button, it will exit the table maintenance screen.
    What do I have to do in order to issue an error but will still go back to the table maintenance view.
    Making the message as information or type I, will not work because it will still save.

    Hi,
    I came to the same problem, maybe this will help someone.
    You can move check into view cluster event.
    1. load the view
         PERFORM vcl_set_table_access_for_obj
              USING 'view'
              CHANGING error_flag.
    2. assing to structure
         LOOP AT <vcl_total> INTO ls_view
    3. perform check, set VCL_STOP which will stop saving and will display message
         VCL_STOP = 'X'.
         MESSAGE ....

  • Extended Table Maintenance Events

    Can any give me information regarding Extended Table Maintenance Events .
    Thanks,
    zia

    Hi,
    Check out these links...
    /people/sudheer.cheedella/blog/2006/02/20/extracting-data-in-table-maintenance
    maintenance view event
    check this thread also..
    Re: Maintenance View Events
    Rgds,
    Prakashsingh

  • Events in Table Maintenance - How validate fields and deliver error message

    Simple transparent table.  I have generated one step table maintenance.  I use a view variant to make some fields display only.  I would like to use Events to provide some validation.  For example: If field STATUS = 'T', then field QUANTITY must be > 0.
    So far, I have tried events 05 and 21.  When the user tries to enter a new row, I can issue an error message that is returned to the screen.  The problem is that the screen is no longer typeable, i.e. the user cannot correct the error.  They have to exit and start over.
    Is there a different event or different coding I should provide to open up the screen for typing?

    Hi,
    Tried 'message type 'I' display like 'E''', in event 5 and 21. The non-key fields are now typeable but the validation is not enforced, i.e. you get a message that you must enter a QUANTITY but you can save the row without entering a QUANTITY.
    Yes I was afraid of that... that's why I would use the event 01 (with 05, if user still tries to save invalid entries, 01 will block). Normally when you get the error and press the ENTER key, you should get back to your table in edit mode... Well this is happening on my system...
    I'll let you know if I got a better idea...
    Kr,
    Manu.
    Edited by: Manu D'Haeyer on Nov 10, 2011 5:01 PM

  • ABAP Table Maintenance Events

    Hello All ,
    I have created the Table Maintenance with Events .
    When the user enter the sales order number  & item in the Txn code screen of the table  .The Event  05  triggers & pulls out information for Sales Order Customer ,Material ,Plant  & show it in the  screen .
    There are two more fields for user input Valid to & Valid from , the user now fills in these fields & then press Save button in the screen .
    Now He gets the Short dump related to duplicate entries .
    I checked the standard code & it  is trying to enter data into the Internal table
    MOD_ELEM_TAB  & since already the same entry exsist in this table so program dumps out .
    Kindly suggest the way to solve this issue .
    Best regards,
    Anurag Goel .

    Check with table primary keys and if you are creating same data again and again,
    then you will get short dump..
    so keep the validation like if record already exits then give message.
    else you want to create same data again and again then create one more field and it is like count (keep as primary key ).
    Reward Points if it is helpful
    thanks
    Seshu

  • Table maintenance events DUMP

    Hello GURU's
    i have a requirement to update the table tab1 entries into another table tab2 with user and date.
    In detail, wen a user enter some thing in table tab1, the
    table one shouls have these entries and also these entries should be updated in another table tab2 with two extra field user and date.
    I have create a 01 maintenance event for tab1 'before save',
    but I have this following dump. am doing this for the First time please suggest.
    Short text
        Dynpro does not exist
    What happened?
        Error in the ABAP Application Program
        The current ABAP program "SAPLYTEMP" had to be terminated because it has
        come across a statement that unfortunately cannot be executed.
    Error analysis
        The system attempted to use dynpro 0003 in program "SAPLYTEMP".
        This dynpro does not exist.
    Trigger Location of Runtime Error
        Program                                 SAPLYTEMP
        Include                                 LSVIMFX2
        Row                                     1.023
        Module type                             (FORM)
        Module Name                             PROCESS_DETAIL_SCREEN
    Source Code Extract
    ENDFORM.                    "naechster
    *&      Form  SET_MARK_ONLY
          Sets status flag if entry with index p_index is marked.
         -->P_index  EXTRACT-index
    FORM set_mark_only USING    p_index LIKE sy-tabix.
      DATA: rc LIKE sy-subrc.
      PERFORM check_marked USING p_index
                           CHANGING rc.
      IF rc = 0.
        <status>-mark_only = 'X'.
      ENDIF.
    ENDFORM.                               " SET_MARK_ONLY
          FORM PROCESS_DETAIL_SCREEN                                    *
    process detail screen call                                          *
    ---> MODE - C -> call mode (CALL SCREEN), S -> set mode (SET SCREEN)*
    FORM process_detail_screen USING value(mode) TYPE c.
      DATA: modulpool LIKE trdir-name,                          "#EC *
            no_input_happened(1) TYPE c,
            state_action(1) TYPE c.
      IF detail NE '0000'.
        IF mode EQ 'S'.
          SET SCREEN detail.
    >>>>   LEAVE SCREEN.
        ELSE.
          PERFORM vim_imp_call_screen USING detail.
        ENDIF.
          FORM VORIGER                                                  *
          NEXTLINE:   Index of current entry in table EXTRACT
          FIRSTLINE:  EXTRACT-index of first line shown on list screen
          L:          Line number of list screen, where entry was chosen
                      via F2
          LOOPLINES:  Number of step loop lines in list screen
    FORM voriger.
      DATA: rc LIKE sy-subrc, n TYPE i.

    Hi,
    Use this FM instead of Move statement.. In Unicode environments the left and right operands should be of same data type. to over come this you can use the below FM
       CALL FUNCTION 'HR_99S_COPY_STRUC1_STRUC2'
              EXPORTING
                  P_STRUCT1       = total
             IMPORTING
                 P_STRUCT2       = fs_zsdslsbud.

  • To find out the Table of Origin and Field in Table of Origin.

    Hi Experts,
    I am in the middle of completing someone else's documentation after a handover.
    Here are th columns that I need to update in the documentation:
    1) Field in Extraction Structure     2) Description of Field in the Extraction Structure 3) Table of Origin 4) Field in Table of Origin
    Most of them are already done. There are only four tables from which all these fields originate.
    Could you let me know how should I find out where a field has originated from.
    Thanks in Advance.
    Regards,
    Chandu.

    Hi,
    it will depend on the datasource: you'll to do the hereunder in the source system
    - if LO/LIS (2LIS....) you can goto LBWE, extract structure maintenance; in the filed selection screen you'll see e.g. "MCtttt ffffff text"; usually the tttt is the table and ffffff is the field. Cross check if the field is really in the table via SE11.
    - if generic, then goto RSO2 and then it will depend if it is a view/table/domain; double click on it or goto SE11; if infoset SQ01; if extract structure then you'll have to analyze the function module extractor ABAP code;
    - for others it will depend....
    hope this helps...
    Olivier.
    Message was edited by:
            Olivier Cora

  • Extended Table Maintenance Events - 22

    Dear Friends,
       I'm trying out writing the Event 22 - Go to Long Text Maintenance for Other Languages. I have written the code in the particular interface format:
    FORM xxxxxxx USING M_MODE
    CHANGING TEXT_WA MODIF.
       After activating also it is not appearing in the table maintenance. Please suggest something.
    Regards,
    Deva.

    Hi Divya,
    whenever you attatch event in the table maintenace, you have to take care of the  following points :
    1. The table and the function group should be activated.
    2. The form routine name should be the same what you entered in the column against the event number under the form routine ( t-code : se55).
    I did attatch the event no. 22 and it is activated ..and i can see in my table maintenance.
    Regards,
    Kunal.

  • Extended Table Maintenance Events 05: Original line when copy entry?

    Hello,
    in the Extended Table Maintenance <b>Events 05</b> I want to <b>copy</b> my own tables. For that I need to know not only the newly created line, but also the original line which was the template for the copy.
    I know this line is contained in table EXTRACT, but how do I identify it?
    Is there an index pointing to the "old" line inside EXTRACT?
    Is there a work area containing the old line?
    I thought workarea EXTRACT contains the old line and <TABLE1> the new line, but debugging proofed that both are the same.
    Any idea?
    Best regards,
    Cedric

    Any body can help me?

  • Reg. table maintenance generator and function group

    I am trying to create a table maintenance for a custom table. It is asking for a function group. Should I create a new function group for each table maintenance I generate?
    Thanks in advance for your input.

    Hi Krishen,
    You can also assign authorization groups to tables to avoid users accessing tables using general access tools (such as transaction SE16). A user requires not only authorization to execute the tool, but must also have authorization to be permitted to access tables with the relevant group assignments. For this case, we deliver tables with predefined assignments to authorization groups. The assignments are defined in table TDDAT; the checked authorization object is S_TABU_DIS.
    You can assign a table to authorization group Z000. (Use transaction SM30 for table TDDAT) A user that wants to access this table must have authorization object S_TABU_DIS in his or her profile with the value Z000 in the field DICBERCLS (authorization group for ABAP Dictionary objects).
    Please check this link for more info.
    http://help.sap.com/saphelp_nw04s/helpdata/en/52/67129f439b11d1896f0000e8322d00/content.htm
    Regards,
    Ferry Lianto

  • Table maintenance generator and Change pointers

    If a Ztable contains table maintenance generator, then the change pointers will not work?

    Hi Saraoja,
    If you want make active your change pointers for your Ztable, then in your Zfields, get into the Data element and click futher Characteristics tab, there you have one check box called  Change document, Check that box and activate your data element again.Now your Zfield changes will reflect in CDHDR and CDPOS.
    Thanks

Maybe you are looking for

  • What is the best way to open emails and attachments without using wifi?

    For I-phone and I-pad, what is the best way to open emails and attachments without using wifi?  I turned off wifi in my settings but my boss thinks there may be another way and a better way to use something else instead of wifi.  Any help would be ap

  • How to display image in the view

    hi friends I created one small webdynpro application it contains one default view. Now I want display one image on that view.(image is located in my local machine) i am new to webdynpro help me out. thanks ram.

  • Lost Content of Older E-mails

    I had problems with the e-mails not being deleted from server but made the change from "one week" to "one day" and back. It seems to be working now. All the text and links, date of sent is gone from many of my e-mails I've been retaining. I get a bla

  • Problems with CC desktop

    I am not able to open my cc desktop, it was fine yesterday, then today, keeps showing me the following error. I have just spent 2 hrs on chat and they gave up in the end as everything they tried didnt work!! Anybody got any ideas? I have unistalled i

  • Not able to install itune. getting 0x800000 error

    I try to install iTune on to a new purchase Dell Notebook. I can download the iTune and when I run the installation, I got this 0x800000 missing error and can not install. I am not sure what has hit me. Please help. Rgds, PChengws