How to delete a table maintainance generator from a table ?
Hi all ,
I' ve created a table maintainance generator for a table now i ve added some key field to it hence i want to recreate a table maintainance generator for that
but while creating it again a message is showing" function group cannot be editable "
and the previous screen is appearing
already i ve tried to delete but same message is coming ...(from menu bar)
pls solve the issue...
Regards
Sachhi
solved......
Edited by: Sachhidananda Tripathy on Mar 2, 2009 8:40 AM
Similar Messages
-
How to delete master data of materials from sap tables
how to delete master data of materials from sap tables...its needed now.
i know its not recommended but still we need to do this. give me the best possible approach.
regards,
suneethaHi,
I would suggest you not to write your own code to delete the entries.
BAPI_MATERIAL_DELETE, this would mark all materials selected for deletion. But still the material would exist in SAP.
Another solution: Delete a material manually and in another session execute the transaction SM04. This would display the tables which get locked when you do the operation, Then you can write your own code to delete the material numbers from all the related tables.
Regards
Subramanian -
How to delete the fist 10 recods from a table ? The problem is real.
Hi,
the code below shows that deleting a records using a cursor works well, if your table is out of a environment, but if you are using a environment the things goes different. Please help me, what i am doing wrong ?
This code is the most clean code i now to do.
// THE CODE (BEGIN).
// BDBTEST.cpp : Clean code.
#include "X:\include\berkeleydb\db_cxx.h"
#define DWORD unsigned long int
#define UINT unsigned int
#define DB_ENV_PATH "Z:\\Test"
#define DB_FULL_NAME "Z:\\Test\\Test.db"
typedef struct STRTEST
DWORD dwID;
char caTxt[64];
} strTest;
// Functions.
int compare_int ( Db *dbp,
const Dbt *a,
const Dbt *b);
void Save();
void Load();
void DeleteAll();
// Global variables.
DbEnv *g_penvDbEnv;
Db *g_pdbTest;
Dbc *g_pdbcCursor;
Dbt g_dbtTestKey;
Dbt g_dbtTestData;
UINT g_ui32ENVOpenFlags;
char g_caError[256];
int g_iResult;
// Main function.
int main(int argc, char* argv[])
g_penvDbEnv = NULL;
g_pdbTest = NULL;
// First we run without environment (NO ERROR USING g_pdbcCursor->Del(0)).
remove(DB_FULL_NAME);
Save();
Load();
DeleteAll();
Load();
// Now we run with environment ("Dbc::del: Invalid argument" (err_ = 22) - ERROR USING g_pdbcCursor->Del(0)).
try
g_penvDbEnv = new DbEnv(0);
if(g_penvDbEnv == NULL)
return 0;
catch(DbException &e)
sprintf(g_caError, "ERRO -> DSDBBD: %s\n", e.what());
return 0;
// Set the normal flags for a transactional subsystem. Note that
// we DO NOT specify DB_RECOVER.
g_ui32ENVOpenFlags = DB_CREATE | // If the environment does not exist, create it.
DB_INIT_LOCK | // Initialize locking.
DB_INIT_LOG | // Initialize logging.
DB_INIT_MPOOL | // Initialize the cache.
DB_THREAD | // Free-thread the env handle.
DB_INIT_TXN; // Initialize transactions.
// Open/Create environment.
try
// Environment settings.
g_iResult = g_penvDbEnv->set_encrypt("1234", DB_ENCRYPT_AES);
g_iResult = g_penvDbEnv->set_lg_bsize (1024 * 256); // LOG MEMORY FILE MAX SIZE.
g_iResult = g_penvDbEnv->set_cachesize(0, 1024 * 512, 0);
g_iResult = g_penvDbEnv->set_flags (DB_AUTO_COMMIT, 1);
g_iResult = g_penvDbEnv->set_flags (DB_LOG_AUTOREMOVE, 1);
g_iResult = g_penvDbEnv->set_lg_max (1025 * 1024); // LOG FILE MAX SIZE.
// Open the environment with full transactional support.
g_iResult = g_penvDbEnv->open(DB_ENV_PATH, g_ui32ENVOpenFlags, 0);
catch(DbException &e)
sprintf(g_caError, "ERRO -> DSDBBD: %s\n", e.what());
return 0;
remove(DB_FULL_NAME);
Save();
Load();
DeleteAll(); // Error goes here.
Load();
g_penvDbEnv->close(0);
delete g_penvDbEnv;
g_penvDbEnv = NULL;
return 0;
void Save()
int i;
int iResult;
DWORD dwID;
strTest sttTest;
if(g_penvDbEnv == NULL)
g_pdbTest = new Db(NULL, 0);
else
g_pdbTest = new Db(g_penvDbEnv, 0);
// Setting databases flags (Just use with environment).
g_pdbTest ->set_flags(DB_CHKSUM | DB_ENCRYPT);
if(g_penvDbEnv == NULL)
g_pdbTest ->set_encrypt("1234", DB_ENCRYPT_AES);
g_pdbTest->set_bt_compare(compare_int);
g_iResult = g_pdbTest->open(NULL, DB_FULL_NAME, NULL, DB_BTREE, DB_CREATE | DB_THREAD, 0);
dwID = 1;
for(i=0;i<100;i++)
sttTest.dwID = dwID;
sprintf(sttTest.caTxt, "ID = %04u", sttTest.dwID);
g_dbtTestKey .set_data((void*) &sttTest.dwID);
g_dbtTestKey .set_size(sizeof(DWORD));
g_dbtTestData .set_data((void*) &sttTest);
g_dbtTestData .set_size(sizeof(sttTest));
iResult = g_pdbTest->put(0, &g_dbtTestKey, &g_dbtTestData, DB_NOOVERWRITE);
dwID++;
g_pdbTest->sync(0);
g_pdbTest->close(0);
delete g_pdbTest;
g_pdbTest = NULL;
void Load()
strTest *psttTest;
if(g_penvDbEnv == NULL)
g_pdbTest = new Db(NULL, 0);
else
g_pdbTest = new Db(g_penvDbEnv, 0);
// Setting databases flags (Just use with environment).
g_pdbTest ->set_flags(DB_CHKSUM | DB_ENCRYPT);
if(g_penvDbEnv == NULL)
g_pdbTest ->set_encrypt("1234", DB_ENCRYPT_AES);
g_pdbTest->set_bt_compare(compare_int);
g_iResult = g_pdbTest->open(NULL, DB_FULL_NAME, NULL, DB_BTREE, DB_CREATE | DB_THREAD, 0);
// Get a cursor
g_pdbTest->cursor(NULL, &g_pdbcCursor, 0);
// Iterate over the database, retrieving each record in turn.
while((g_iResult = g_pdbcCursor->get(&g_dbtTestKey, &g_dbtTestData, DB_NEXT)) == 0)
// Get temp struct.
psttTest = (strTest*) g_dbtTestData.get_data();
g_pdbcCursor->close();
g_pdbTest->close(0);
delete g_pdbTest;
g_pdbTest = NULL;
void DeleteAll()
strTest *psttTest;
try
if(g_penvDbEnv == NULL)
g_pdbTest = new Db(NULL, 0);
else
g_pdbTest = new Db(g_penvDbEnv, 0);
// Setting databases flags (Just use with environment).
g_pdbTest ->set_flags(DB_CHKSUM | DB_ENCRYPT);
if(g_penvDbEnv == NULL)
g_pdbTest ->set_encrypt("1234", DB_ENCRYPT_AES);
g_pdbTest->set_bt_compare(compare_int);
g_iResult = g_pdbTest->open(NULL, DB_FULL_NAME, NULL, DB_BTREE, DB_CREATE | DB_THREAD, 0);
// Get a cursor
g_pdbTest->cursor(NULL, &g_pdbcCursor, 0);
// Iterate over the database, retrieving each record in turn.
while((g_iResult = g_pdbcCursor->get(&g_dbtTestKey, &g_dbtTestData, DB_NEXT)) == 0)
// Get temp struct.
psttTest = (strTest*) g_dbtTestData.get_data();
g_iResult = g_pdbcCursor->del(0);
catch (DbException &dbe)
sprintf(g_caError,
"%s",
dbe.what());
g_pdbcCursor->close();
g_pdbTest->close(0);
delete g_pdbTest;
g_pdbTest = NULL;
int compare_int(Db dbp, const Dbt a, const Dbt *b)
int iReturn;
DWORD dwKey1;
DWORD dwKey2;
dwKey1 = 0;
dwKey2 = 0;
iReturn = 0;
dwKey1 = *((DWORD*) a->get_data());
dwKey2 = *((DWORD*) b->get_data());
if(dwKey1 > dwKey2)
iReturn = 1;
else
if(dwKey1 < dwKey2)
iReturn = -1;
return iReturn;
// THE CODE (END).
Thanks,
DelNetoHi all
I solved it. No documentation about it, but the solution is to use transaction.
Just use this DeleteAll function that all works fine.
void DeleteAll()
strTest *psttTest;
DbTxn *pTxn;
try
pTxn = NULL;
g_pdbTest = NULL;
if(g_penvDbEnv == NULL)
g_pdbTest = new Db(NULL, 0);
else
g_pdbTest = new Db(g_penvDbEnv, 0);
// Setting databases flags (Just use with environment).
g_pdbTest ->set_flags(DB_CHKSUM | DB_ENCRYPT);
if(g_penvDbEnv == NULL)
g_pdbTest ->set_encrypt("1234", DB_ENCRYPT_AES);
g_pdbTest->set_bt_compare(compare_int);
g_iResult = g_pdbTest->open(NULL, DB_FULL_NAME, NULL, DB_BTREE, DB_CREATE | DB_THREAD, 0);
if(g_penvDbEnv == NULL)
g_pdbTest->cursor(NULL, &g_pdbcCursor, 0);
else
// Get a cursor.
g_penvDbEnv->txn_begin(NULL, &pTxn, 0);
g_pdbTest->cursor(pTxn, &g_pdbcCursor, 0);
// Iterate over the database, retrieving each record in turn.
while((g_iResult = g_pdbcCursor->get(&g_dbtTestKey, &g_dbtTestData, DB_NEXT)) == 0)
// Get temp struct.
psttTest = (strTest*) g_dbtTestData.get_data();
g_iResult = g_pdbcCursor->del(0);
g_pdbcCursor->close();
if(g_penvDbEnv != NULL)
pTxn->commit(0);
catch (DbException &dbe)
sprintf(g_caError,
"%s",
dbe.what());
g_pdbcCursor->close();
if(g_penvDbEnv != NULL)
pTxn->abort();
g_pdbTest->close(0);
delete g_pdbTest;
g_pdbTest = NULL;
Thanks to all readers,
DelNeto -
How to delete duplicate data that generated from csv file??
The thing i have done is that i red all the data in the csv file without removing the duplicate data and display it.. For where i should have a known number of index (about 13), my main file should have 13 records no duplicate values. and how can my Java program update the corresponding record in the main file each time an index is updated??
Hope somebody can assist me on this..it would be really helpful for me...
Thank you.
-Rao-
Edited by: reemarao on Apr 1, 2010 3:58 AMHi Sudhir,
In case you have edit access in your system carry out the following procedure:
1. Create an export datasource on your cube.
2. Now create the update rules to your cube using the datamart Infosource.
3. In the update rules multiply all the key figures by
-1.
4. Now create an infopackage and give the request id of the duplicate request as selection.
5. Load the datamart request and do the data validation.
If you do not ahve edit access there is no other alternative you would have to delete all the data and reconstruct the requests that you need.
Bye
Dinesh -
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? -
Date field is missing in the Table maintainance generator
Hi,
A table is created. A date field is there in that table. I tried to create a table maintainance generator for this table using 2 screens. Table maintainance generator is created. But when I go to SM30 , I am unable to see this <b>DATE</b> field in the SM30 , in the first screen. But when I go to maintainance screen , I am able to see this field. This particularly happening with date field.
Could you please help me.
Regards,
Satyago to se11 and type the table what you want.
utilities, table maintenance generator.
you config the options that you need.
press F6 and go to sm30.
its only this.
Regards -
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. -
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.
-
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. -
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 -
How to delete All E-Mail Address from XD02...?
Dear All,
How to Delete the multiple Email address from XD02 for a cutomer while recording BDC?
or is there an other way like BAPI or else let me know..
regards...
Dharmeshhi,
i have no system in the moment but try:
to read table adr6 before and mark the entries in table control of your dynpro and delete it (i think you must delete it single)
A. -
How to delete a READ ONLY file from Directory
Hi Friends,
how to delete a READ ONLY file from Directory , file is in my system only.
Please help me .
note: its read only file.
Thank you.
Karthik.hI,
try with this statement.
delete dataset <datasetname>.
this will definitely work.
Regards,
Nagaraj -
Hello.
I need help deleting videos, tv shows, and movies downloaded from itunes. I have followed the instructions to delete from the macbook, I selected the videos I wanted to delete and right clicked to delete. Nothing happens. When I double click on the video it still starts playing. I also followed the instructions to delete the videos from the iphone by swiping from left to right with nothing happening. I opened the videos on the ipad and there is no edit selection like in the instructions on the support page. Can you please tell me how to permanently remove this content so it doesn't try to copy from each device when I want to back up the Iphone and Ipad to my macbook. Thank you.Hi Shawninglewood,
Welcome to the Support Communities!
The article below may be able to help you with this.
How to delete content you've downloaded from the iTunes Store, App Store, iBooks Store, or Mac App Store
http://support.apple.com/kb/HT5772
Cheers,
- Judy -
How to delet the credit card details from apple id account
how to delet the credit card details from apple id account
On your computer's iTunes you should be able to edit your payment info by going into the Store > View Account menu option and logging into your account, and on your account's details page there should be a payment link. If you are doing it on your phone then tap on your id in Settings > iTunes & App Store and tap on 'View Apple ID' on the popup and log into your account - that should also give you a payments link on your account's page.
Changing payment info : Change or remove your payment information from your iTunes Store account (Apple ID)
If you don't get the 'none' option on the payment details screen : Why can’t I select None when I edit my Apple ID payment information?
Maybe you are looking for
-
FTP and DHCP Server on Windows Server 2012
Our company recently bought several Dell Wyse R10L Devices from another company. We can use these to make remote connections to a remote server but we have a problem when we use two monitors. The picture stretches across two monitors. On the official
-
hi! Deploying an application on WL7 I get this error: <i>java.lang.NullPointerException: Start server side stack trace: java.lang.NullPointerException at weblogic.utils.enumerations.FileEnumeration.getNextFile (FileEnumeration.java(Compiled Code
-
My Macbook is running on OS 10.5.8. However, I forgot my admin password. I would like to find out if I can use OS 10.6 CD to reset the admin password while upgrading OS? Also, will all my files be still present after upgrade??
-
Help. I recently downloaded the latest software update for on my Apple TV (per the prompt Apple TV gave us). Ever since downloading the update, we cannot access movies, play movies, or access iTune store. We can play YouTube videos so the problem
-
Magic Mouse affecting Wi-Fi Connexion
Hello, I recently bought the Magic Mouse but I have a big problem with it... I downloaded and installed the "Wireless Mouse Software Update 1.0 for Snow Leopard", then shifted from my wired mighty mouse to my brand new Magic Mouse. The mouse works gr