Table maintainance Validations
Hi Friends,
I have created a table maintenance for a field and i want to validated the entries made by the user. How can i do that?
Message was edited by: Suhas Saha
hi
u need to loop the generic table TOTAL and chek which kind of action is aasigned to certain record:
LOOP AT TOTAL.
CHECK <ACTION> = NEUER_EINTRAG.
*-------> New record
READ TABLE EXTRACT WITH KEY TOTAL.
ENDLOOP.
The value stored in <ACTION> indicates if the record is new or changed
Max
Similar Messages
-
In table maintainance generator
hi
in table maintainance generator, how to validate the data entered in the table. If it is only with the events, how?hi,
you can validate the data in tables, after generating a table maintanance generator.
Environment->Modification->Events.
After providing the subroutine name you can go to editor( click on icon provided just besides the form routine) and write the logic for validation.
for example, if changes are to be made to the data of particular controlling area, a check has to be made if the user is authorised to make changes. Below is a sample code that would give you an idea.
Sample code:
*& Form auth_check_save
Checks that the user has the correct authorisations to Change
details of Controlling Area. If not error message is to be
displayed on the screen.
form auth_check_save.
Data Declaration
Types
types: begin of ty_valtab,
kokrs(4) type c,
actvt(2) type c,
end of ty_valtab,
begin of ty_fieldtab,
fieldname(10) type c,
end of ty_fieldtab.
Internal Tables
data: lt_valtab type standard table of ty_valtab,
lt_fieldtab type standard table of ty_fieldtab,
Structures
ls_valtab type ty_valtab,
ls_fieldtab type ty_fieldtab,
ls_costele type ztf_costele,
Variables
l_status type zss_rfc_status,
l_st(1) type c.
Constants
constants : c_0(1) type c value '0',
c_01(2) type c value '01',
c_02(2) type c value '02',
c_06(2) type c value '06',
c_authobj(10) type c value 'Z_KOKRS',
c_error(5) type c value 'ERROR',
c_partial(7) type c value 'PARTIAL',
c_kokrs(5) type c value 'KOKRS',
c_actvt(5) type c value 'ACTVT'.
clear l_status.
ls_fieldtab-fieldname = c_kokrs.
append ls_fieldtab to lt_fieldtab.
clear ls_fieldtab.
ls_fieldtab-fieldname = c_actvt.
append ls_fieldtab to lt_fieldtab.
clear ls_fieldtab.
loop at total.
if <action> eq neuer_eintrag.
move total to ls_costele.
ls_valtab-kokrs = ls_costele-kokrs.
ls_valtab-actvt = c_01.
append ls_valtab to lt_valtab.
clear ls_valtab.
elseif <action> eq aendern.
move total to ls_costele.
ls_valtab-kokrs = ls_costele-kokrs.
ls_valtab-actvt = c_02.
append ls_valtab to lt_valtab.
clear ls_valtab.
elseif <action> eq geloescht.
move total to ls_costele.
ls_valtab-kokrs = ls_costele-kokrs.
ls_valtab-actvt = c_06.
append ls_valtab to lt_valtab.
clear ls_valtab.
endif.
endloop.
Authorization Check
call function 'ZAUTH_CHECK'
exporting
PIM_REPID =
pim_auth_obj = c_authobj
PIM_FIELD_TABNAME =
PIM_CHECKALL =
importing
pex_status = l_status
tables
pex_val_tab = lt_valtab
pim_field_tab = lt_fieldtab
exceptions
no_input = 1
others = 2.
if l_status = c_error. "Authorization Check
message under class: zmessclass
message e000(zmessclass) with text-e02. "You have no authorization
"for table maintenance
elseif l_status = c_partial.
loop at total.
if <action> ne space.
move total to ls_costele.
read table lt_valtab with key kokrs = ls_costele-kokrs
transporting no fields.
if sy-subrc <> c_0.
delete table total.
delete table extract.
endif.
endif.
endloop.
message e400(zmessclass). "All the entries could not be saved
"because of restricted authorization
endif. "End of Authorization Check
endform. "auth_check_save
The above code should be written in event 01 : Before saving the data in the database
Regards,
Farheen -
Disable delete button in Table Maintainance Generator
Hello all,
How to disable delete button in Table maintainance generator???Hi Maya,
It is very interesting question. If you debug your table maintenance screen, the program of table maintenance screen will not have statically defined pf status. So you cannot exclude delete functionalities using the below statement.
SET PF-STATUS <the GUI status> EXCLUDING 'DELE'.
For viewing pf status SAP has programmed in dynamic manner using this FM VIEW_SET_PF_STATUS.
Before calling above FM you need to exclude delete function. Follow the following step for achieving this
Go to sm30. Put your table name and press on maintain push button. It will display table entries in maintenance screen.
Go to system->status
Click on program name.
Go to your flow logic of you table maintenance screen number.
It will have following code in flow logic
PROCESS BEFORE OUTPUT.
MODULE LISTE_INITIALISIEREN.
LOOP AT EXTRACT WITH CONTROL
TCTRL_ZMAINTAIN CURSOR NEXTLINE.
MODULE LISTE_SHOW_LISTE.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
MODULE LISTE_BEFORE_LOOP.
LOOP AT EXTRACT.
MODULE LISTE_INIT_WORKAREA.
CHAIN.
FIELD ZMAINTAIN-MATNR .
FIELD ZMAINTAIN-KUNNR .
FIELD ZMAINTAIN-LIFNR .
MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
ENDCHAIN.
FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
CHAIN.
FIELD ZMAINTAIN-MATNR .
MODULE LISTE_UPDATE_LISTE.
ENDCHAIN.
ENDLOOP.
MODULE LISTE_AFTER_LOOP.
Add new module in PBO for excluding delete function. ex module set_pf.
PROCESS BEFORE OUTPUT.
****here I added my own code for excluding delete function
****begin of addion
module set_pf.
****end of addition
MODULE LISTE_INITIALISIEREN.
LOOP AT EXTRACT WITH CONTROL
TCTRL_ZMAINTAIN CURSOR NEXTLINE.
MODULE LISTE_SHOW_LISTE.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
MODULE LISTE_BEFORE_LOOP.
LOOP AT EXTRACT.
MODULE LISTE_INIT_WORKAREA.
CHAIN.
FIELD ZMAINTAIN-MATNR .
FIELD ZMAINTAIN-KUNNR .
FIELD ZMAINTAIN-LIFNR .
MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
ENDCHAIN.
FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
CHAIN.
FIELD ZMAINTAIN-MATNR .
MODULE LISTE_UPDATE_LISTE.
ENDCHAIN.
ENDLOOP.
MODULE LISTE_AFTER_LOOP.
*****inclule one line of code for excluding delete fucion
module set_pf output.
MOVE 'DELE' TO excl_cua_funct-function. COLLECT excl_cua_funct.
endmodule.
Basically sap fetching status dynamically from program SAPLSVIM using FM VIEW_SET_PF_STATUS. Status name is EULG.
Please donu2019t hardcode anything by using set pf status statment, you just add one line of code the PBO by creating new module.
Let me know if you need any help .
Cheers.
Regards,
Peranandam -
How to get customer name automatically in table maintainance generator
Hi all,
I am having a table maintainance generator in which ship to party is the primary key, i need to add another column customer name
fetched from KNA1, i tried using the event
5.new entries creation, creating a new perform
but the code which i am writing gives an error "Statement in accessible".
Kindly help.Hi Manohar,
Thanks for your help, Its working now.
Issue resolved. -
Maintain Validity Date for Documents
Hi
Any Idea how can we put and maintain Validity Dates for any Document uploaded in DMS Server.
Validity Dates here means (Documents cannot be used if validty is over)
I could not find any option in CV01* T-Codes.
RegardsDear Prasant,
You can also do this solution also if you find it OK.
1. Create a Class with "Validaty Date" as characteristics. Assign this Charac to class. Assign this class to doc Type. This charac should not be editable to any one except creator.
2. Create a program with BAPI " Set Status" ( Check the name). which will run in background to check the validity date of Document. If the validity date is reached the BAPI will change the status to "S" as stated by Chritoph.
This will help user to manually tracked which documents have exceded the validity date. You can also genegrate report and mail it to particular user that what documents have been set to Status "S".
Hope I have provided a valid solution as I have tried similar kind of functionality with changing a characteristics with Date.
With warm Regards
Mangesh Pande -
"Recording Routine" in Table maintainance generator
Hi All,
I have a problem with View J_3RFV_F4VERS. Currently i am not able to change the entries in this View through SM30. Currently in the Table maintainance generator of this view "Standard recording Routine" is selected as Recording Routine.
But when i change this to "no, or user, recording Routine", i am able to change the entries of this view through SM30.
I would like to know the impact of selecting the alternative Recording Routine.
Please throw some light on this issue.
Regards,
Navin.You can simply press F1 on the radiobuttins in the table maintanence of a table.
It is all explained there.
Basically it normally follows the mandant settings, so if the setting in your mandant is, no changes allowed, then you can't change it.
The normal route for updating this table is to change it in your DEV system transport and test it in QA and finally transport it to PRD.
Regards, rob -
Transporting table and table maintainance generator
Hi,
Can i transport the table and table maintainace generator and function group of the table with in single request or not.
One more thing is when i transport the table maintainance generator,will the entries also be transport to another system or not.
Thanks in advance,
SureshHi Suresh,
Go to SE54-> Utilities-> Total Transport. The following things are transported.
The total transport transports the complete maintenance dialog:
authorization group
authorization group assignment
control entry
events
function groups
maintenance objects
variants
Content wont be transported it seems.
Thanks & Regards,
Nagaraj Kalbavi -
Dear Experts,
I hv created a ztable containing following fields.
MANDT MANDT Primary Key
ZVEHICLE ZSDVEHICLE Primary Key
ZDCODE ZDCODE Primary Key
ZOUT_DATE ZDATUM Primary Key
ZOUT_TIME ZOUT_TIMS Primary Key
ZOUT_READING ZMTR_READ
ZIN_DATE ZDATUM_IN
ZIN_TIME ZIN_TIMS
ZIN_READING ZMTR_READ
ZSTATUS ZSTAT ( IN , OUT values possible)
ZREMARKS ZCHAR50
Now i m trying to create a Table Maintainance Generator And the Problem is following two fields are not visible in TMC.
ZIN_DATE ZDATUM_IN
ZIN_TIME ZIN_TIMS
But if i add another field with other data type ( other than time and date), that field is visible.
And if i include above two field in primary key, then only it is visible.
Is ther any restriction with time and date format field with TMC.
Any idea.
thansks in advance.
JaspalHi Jaspal,
There are two maintenance types available while creating a table maintenance generator.
1. One step
2. Two step
If the TMG is built in one-step, then all the fields (both key and non-key fields) will be displayed in a single screen. So, all your fields will get displayed.
Whereas if the TMG is built in two-step, the key fields will be displayed in a single screen and further details will be displayed in another screen. In this table, you have set the fields 'ZOUT_DATE' and 'ZOUT_TIME' as primary key. so it will be displayed in one screen and the non-key fields will be displayed in the second screen. So, if the fields 'ZIN_DATE' and 'ZIN_TIME' were to be dispalyed in the first screen, make it as a primary key.
Thanks and Regards,
Priya -
Table Maintainance Generator Updation problem
Hello,
I am having the problem related to table maintainence generator updation.
I am fetching the data in table maintainance generator from Standard table.
Now the problem is that, if I fetch some records ; some records are updated properly but some records are not.
Please suggest the solution.
Thanks.
Swati.>
Swati Khandelwal wrote:
> Hello All.
> Thanks for your reply.
> The field which is not updating is not the key field.
>
> Thanks.
> Swati
It does't matter.
But the fields is not updating you need to check its key in table whether it is exsist?
I'm yes it is there.
One more thing i would like to confirm are you using Update or modify? -
Problem in table maintainance generator
Hi,
I have a requirement in table maintainance generator i.e. when I clcik on se11,enter the table name and then click on new entries ,my table control that I see on the screen will have some entries that were entered earlier.
But in my case the entire table control has to be blank when I click on new entries and it should be in output mode only.So please can someone tell me how I can clear the entries .Which event should I use for this?
Another requirement is that for my table maintaianance generator,I have been asked to remove on field from the table control and place it above the table control as a text field.Now this text field is a key field.When I enter some value in this text field and click on enter,it should give me the values corresponding to this key field.Please can someone help me out with this?Which event should I use for this?
Regards,
Sushanth H.S.Hi Sushant,
Considering there are considerable modifications to your table maintenance I would suggest you create a small module pool transaction for your requirement with a table control and code the flow logic (PBO/PAI) yourself.
For the DB update, you can use the SQL commands. Since it would be an alternative to the table maintenance for a single table, I think the database update part wouldnt be complex to handle at all.
You would need a table control same as the one in the maintenance however a wizard will make that job very easy for you.
Finally, assign a transaction to your module pool and you are good to go.
This is in my opinion not a complex development and also would be easier than trying to modify a SAP generated table maintenance, because adding a text field on top etc. would be drastic changes which cannot be accomplished by events alone.
Cheers. -
Need to disable delete icon in over view screen (table maintainance)
In the overview screen (transaction se 54 -> generated object -> overview screen) in table maintainance i need to disable the delete icon.
Anyone can please help me in it.Hi,
check the program name for the transaction and create a screen exit for the same.
Also u can go for copying the code in customer namespace and then add ur own functionality to dactivate or remove the delete function.
Pls reward points for the answer.
Regards,
Ameet -
Drop down list for a field in table maintainance
Hi,
I have created a table maintainance for ztable. I need a drop down list for field so that user can select values present in the list while giving entries.
I can not use fixed values in domain, because feild length is more and it wont fit into fixed values.
I am trying to use VRM_SET_VALUES FM but not getting output. Can any one help me on this.
Thank you,
Regards,
Kusuma K.TYPE-POOLS: vrm. Include this in your program
DATA: l_name TYPE vrm_id,
l_list TYPE vrm_values,
l_value LIKE LINE OF l_list.
LOOP AT it_paym INTO w_paym.
l_value-key = w_paym-pay_method.
l_value-text = w_paym-text.
APPEND l_value TO l_list.
ENDLOOP.
l_name = 'Table-field'. change it as per your requirement this has to be perfect
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = l_name
values = l_list
EXCEPTIONS
id_illegal_name = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Hope it helps you,
Abhijit G. Borkar -
Reg : table maintainance genarator
what is the purpose of table maintainance generator ?
can you tell me in details ?Hi Selva,
With the help of the table maintenance generator, you are able to maintain the ENTRIES of the table in SM30 transaction.
It can be set in transaction SE11 - Tools - Table maintenance generator.
Table maintenance Generator is used to manually input values using transaction sm30
follow below steps
1) go to se11 check table maintenance check box under attributes tab
2) utilities-table maintenance Generator-> create function group and assign it under
function group input box. Also assign authorization group default &NC& .
3) Select standard recording routine radio in table table maintenance generator to move table
contents to quality and production by assigning it to request.
4) Select maintenance type as single step.
5) maintenance screen as system generated numbers this dialog box appears when you click on create button
6) save and activate table
One step, two step in Table Maintenance Generator
Single step: Only overview screen is created i.e. the Table Maintenance Program will have only one screen where you can add, delete or edit records.
Two step: Two screens namely the overview screen and Single screen are created. The user can see the key fields in the first screen and can further go on to edit further details.
SM30 is used for table maintenance(addition or deletion of records),
For all the tables in SE11 for which Table maintenance is selected , they can be maintained in SM30
Sm30 is used to maintain the table ,i.e. to delete ,insert or modify the field values and all..
It creates the maintenance screen for u for the particular table as the maintenance is not allowed for the table..
In the SE11 delivery and maintenance tab, keep the maintenance allowed..
Then come to the SM30 and then enter the table name and press maintain..,
Give the authorization group if necessary and give the function group and then select maintenance type as one step and give the screen numbers as system specified..
Then create,,,
Then u will able to see the maintenance view for the table in which u can able to insert and delete the table values...
We use SM30 transaction for entering values into any DB table.
First we create a table in SE11 and create the table maintenance generator for that Table using (utilities-> table maintenance generator) and create it.
Then it will create a View.
After that from SM30, enter the table name and Maintain, create new entries, change the existing entries for that table.
Check this blog for more information on extracting data in table maintenance.
/people/sudheer.cheedella/blog/2006/02/20/extracting-data-in-table-maintenance
check these links --
http://help.sap.com//saphelp_470/helpdata/EN/a7/5133ac407a11d1893b0000e8323c4f/frameset.htm
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/abap/how%20to%20implement%20events%20in%20table%20maintenance.doc
http://help.sap.com/saphelp_nw04/helpdata/en/cf/21ed2d446011d189700000e8322d00/content.htm
http://help.sap.com/saphelp_46c/helpdata/en/a7/5133ac407a11d1893b0000e8323c4f/frameset.htm
Hope this resolves your query.
<b>Reward all the helpful answers.</b>
Regards -
How to get serial no automatically in table maintainance generator
Hello Experts,
I am building table maintainance generator in that i want the serial number shold be displayed or generated for new entry automatically.
please mind this, i am going to put more that one entry at single time and my serial number field is primary key in table .
Thanks,
GauravIn table maintenance we can add an event during new entries creation, in that add code to read the table for the last entry and increment one to it. Hence whenever a new entry is created serial number value is generated.
-
Events in table maintains genrator
hi gurus,
events in table maintains generator.....
regards,
praveenWhile creating the tables, sometimes we may need to update the table fields in the background
Lets take an example, if create a table with 10 fields in those 10 fields there are 2 fields which are User name and the Date, these 2 fields should update automatically when a record Inserted/Updated in the table.
For this, we need to create a table maintenance generator for that table. There in the table maintenance generator we have an option to create EVENTS.
In the table maintenance generator, Environment --> Modifications --> Events then a screen will be appear here,we need to create the Events, for updating the fields create 05(Creating a new entry) and 21(Fill hidden fields) .
In the EVENTS screen, press new Entries, there give 05 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 the below code
form CREATE_ENTRY.
TABLE-USERNAME = sy-uname.
TABLE-CHANGED_ON = sy-datum.
endform.
Then in the events screen enter 21 and give the form name as HIDDEN_FIELDS, then press the editor button, then in the editor
form HIDDEN_FIELDS.
TABLE-USERNAME = sy-uname.
TABLE-CHANGED_ON = sy-datum.
update TABLE.
endform.
This CREATE_ENTRY Perform will be triggered for every new entry and the HIDDEN_FIELDS fields will be triggered for every changed value in the table, so the Fields USERNAME and the CHANGED_ON fields will be updated automatically when a new record inserted into the table or an existed record changes through the table maintenance generator.
If you want any more functions, and then look at the events, you can press the F4 and look at the description of the event, then you come to know how to use and where to use.
Check these links
http://help.sap.com/saphelp_nw04s/helpdata/en/91/ca9f0ea9d111d1a5690000e82deaaa/content.htm
http://abapliveinfo.blogspot.com/2007/12/events-in-table-maintenance-in-sap.html
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/8129f164-0a01-0010-2a8e-8765287250fc
Regards,
Maybe you are looking for
-
IPhone 5s Recent Call List Limit
What is the Recent Call List Limit for an iPhone 5s? Can you view the entire Recent Call List Limit from the screen? Today, as I would delete a call from the list, an older call would appear at the bottom of the list. Thanks!
-
Need help with container display / states
Greetings! I am trying to use states to change the contents of a canvas which is the second of two within a tab navigator. Buttons trigger functions to change the state and change the selectedIndex of the navigator to the second tab. The functions wo
-
Can I prepopulate a Word document or PDF?
This application is for a home health agency. There is an extensive form that needs to be filled out periodically called a CMS-485. There are tons of fields and lots of formatting to the document. I currently have the document in Word format. We main
-
How to create an f4 help which includes create button in that screen. So that i can create a record that does not exist in source table
-
Return symbol pops up after every use of the return key.
As I type in Appleworks word processing, the return symbol appears. I've searched Help with no success. I must have accidently made that happen, but I can't locate a place to change it. Thanks in advance for your help.