Check in Function if optional table is existing
Dear all
I have a function module where I have a table as optional parameter.
No I should be able to check if this table is existing or not. How can this be done?
I tried several things like try + catch but nothing worked. All lead in an exception when it is not given to the function.
Thank you
Herbert
Hello Herbert,
I assume you get a dump information like this:
>
> This error may occur if
> - you address a typed field symbol before it has been set with
> ASSIGN or
> - if you address a global function interface partameter, even
> though the relevent function module is not active,
> i.e. it is not in the list of active calls. You can get the list
> of active calls from the this short dump.
>
Thus access to optional parameters is not possible in case the function module has not been called. Sounds like you need to know which module is calling your exit. If there is no obvious way to do so possibly it would make sense to check for notes in the customer service system.
Best Regards
Klaus
Similar Messages
-
Checking the contents of update function module log table
Dear experts,
I created several CALL FUNCTION ... IN UPDATE TASK lines and is curious about the contents of the update function module log table. How can I see its contents?
Thanks in advance.
Regards,
HarisHi Hari,
Use transaction SM13. This gives all the details
To view the details in SM13 switch on Update debugging before you call your update function module.
In debugger Settings --> Display / change Debugger settings --> Use the check box "Update Debugging" --> Press save button
So after COMMIT WORK statement, debugging will start with the update function module
During this time check the entries in SM13
Once the update is complete the entries will be removed from SM13 (Unless there is a failure)
I am not sure if there is option to view records in SM13 for which update is complete (No authorization to change settings in SM13). So i cannot check this
Regards
Rajvansh
Edited by: Rajvansh Ravi on Jul 24, 2011 3:52 PM -
How to check if function module exist
Hi All!
Does anyone know how to check if function module, which name is provided by the user, exists?
I have to execute a function but when user provides a incrrect name - i receive a short dump. I would like to chceck if this function exists before execution and if not - warn user with message box.
Thanks
TomekREPORT z_tmtest MESSAGE-ID zz.
PARAMETER: a_fname LIKE tfdir-funcname.
PERFORM test_fun_exist USING a_fname.
FORM test_fun_exist *
Test FM Exists
FORM test_fun_exist USING f_funcname LIKE tfdir-funcname.
CALL FUNCTION 'OM_FUNC_MODULE_EXIST'
EXPORTING
function_module = f_funcname
EXCEPTIONS
not_existent = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e001.
ENDIF.
ENDFORM. -
How to check table have exists any views in oracle
hi,
how to check table have exists any views in oracleSELECT * FROM user_dependencies
WHERE type='VIEW'
AND referenced_type='TABLE'
AND referenced_name ='Your_Table_Name' You may use dba_dependencies to find views in different schema. -
Update partner function in KNVP table using FM sd_customer-maintain_all
Hi All,
I have to update Partner Function PARVW in KNVP table using FM sd_customer_maintain_all.
I had already created a BDC program for updating which is running successfully.
But my requirement is to create a BAPI using FM customermaintain_all.
Ex: Tcode VD02
KUNNR PARVW KUNN2
Old data 123 Z1 70006666
123 Z2 70007777
Req. output 123 Z1 70006666
123 Z1 70007777
PARVW Z2 should not exist after updation.
When updating, I am getting the error message to my inbox as
Error Info... F2 802: System error in table KNVP
The above error is triggered while committing work after execution of SD_CUSTOMER_MAINTAIN_ALL.
The options I tried while looping at internal table containing kunnr, parvw & kunn2
CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
EXPORTING
I_KNA1 = w_kna1
I_KNB1 =
I_KNVV = w_knvv
I_BAPIADDR1 =
I_BAPIADDR2 =
I_MAINTAIN_ADDRESS_BY_KNA1 = ' '
I_KNB1_REFERENCE = ' '
I_FORCE_EXTERNAL_NUMBER_RANGE = ' '
I_NO_BANK_MASTER_UPDATE = ' '
I_CUSTOMER_IS_CONSUMER = ' '
I_RAISE_NO_BTE = ' '
PI_POSTFLAG = 'X'
PI_CAM_CHANGED = ' '
PI_ADD_ON_DATA =
I_FROM_CUSTOMERMASTER = ' '
IMPORTING
E_KUNNR =
O_KNA1 =
E_SD_CUST_1321_DONE =
TABLES
T_XKNAS =
T_XKNBK =
T_XKNB5 =
T_XKNEX =
T_XKNVA =
T_XKNVD =
T_XKNVI =
T_XKNVK =
T_XKNVL =
T_XKNVP = I_XKNVP
T_XKNZA =
T_YKNAS =
T_YKNBK =
T_YKNB5 =
T_YKNEX =
T_YKNVA =
T_YKNVD =
T_YKNVI =
T_YKNVK =
T_YKNVL =
T_YKNVP = i_yknvp ***
T_YKNZA =
T_UPD_TXT =
EXCEPTIONS
CLIENT_ERROR = 1
KNA1_INCOMPLETE = 2
KNB1_INCOMPLETE = 3
KNB5_INCOMPLETE = 4
KNVV_INCOMPLETE = 5
KUNNR_NOT_UNIQUE = 6
SALES_AREA_NOT_UNIQUE = 7
SALES_AREA_NOT_VALID = 8
INSERT_UPDATE_CONFLICT = 9
NUMBER_ASSIGNMENT_ERROR = 10
NUMBER_NOT_IN_RANGE = 11
NUMBER_RANGE_NOT_EXTERN = 12
NUMBER_RANGE_NOT_INTERN = 13
ACCOUNT_GROUP_NOT_VALID = 14
PARNR_INVALID = 15
BANK_ADDRESS_INVALID = 16
TAX_DATA_NOT_VALID = 17
NO_AUTHORITY = 18
COMPANY_CODE_NOT_UNIQUE = 19
DUNNING_DATA_NOT_VALID = 20
KNB1_REFERENCE_INVALID = 21
CAM_ERROR = 22
OTHERS = 23.
IF sy-subrc eq 0.
Commit work and wait.
Endif.
All above tables have a field called KZ which has options
U-update
D-delete
I-insert
E- (I dont know)
Ex: T_XKNVP structure = KNVP Structure + Field KZ.
Documentation for this FM is not Available in English or German
1. I tried sending Z2 KZ as D first & Z1 with KZ as I with business partner of Z2 (KUNN2)
as single update.
Ex: T_XKNP table
KUNNR PARVW KUNN2 KZ
123 Z2 70007777 D
123 Z1 70007777 I
2. I tried it as a separate delete record and insert record i.e calling the FM twice .
3. I tried passing table T_YKNVP with old partner data + TXKNVP table new partner data
Ex: T_YKNP table
KUNNR PARVW KUNN2 KZ
123 Z2 70007777 U or space (I tried both one after another)
4. All combinations for field KZ are tried.
Please help me to overcome this problem.
I ) I need which parameters are to be passed to FM for updating partner function in KNVP table .
II) Do I need to pass structure I_KNA1 or I_KNVV to FM ? (Blank or with values corresponding to
partner function ).
III) Any sample code which can guide me.
Even a small hint or clue from you will certainly help me.
Thanks in Advance.
AJAXi have the same problem. I need to update the partner function PARVW thru a program that i created. I tried to use this FM but it didn't work. Anyone knows another FM that i can use to update the KNVP table?
-
How to convert select-options table into single field internal table
Hi,
My requirement is to convert select-options table into single internal table which has one field.
e.g. select-options: s_matnr for mara-matnr.
select-options table can have options 'BT',"EQ", "NE", "GE", "GT", "LE", "LT", "CP" etc. select-options table
have Sign:I ,Option:BT, Low: 1, High.10.The new internal table records should be 1,2,3,4,5,6,7,8,9,10.
Please suggest any function module available for this scenario in SAP.
Thanks,
Somi.
Edited by: somi reddy satti on Sep 15, 2009 3:18 PMHi Sowmya,
Here is the answer if I understand well of your question.
Data: begin of gt_mon OCCURS 0,
mon(2) TYPE n,
end of gt_mon.
Data: begin of gt_year OCCURS 0,
year(4) TYPE n,
end of gt_year.
Select-options: s_period FOR ptdw_pws_db-kmonth NO-EXTENSION
DEFAULT sy-datum(6)
TO sy-datum(6).
For example according to above statement period is 201110 is 201201.
Period field does n't exists in SAP for selection. If your selection is on date based on period which is given on the selection-screen then you need to convert the period to date by concatenating ( or using FM to convert )01 at the end of each period . You need to declare one range table for date to select the data from table.
loop at s_period.
gr_date-sign = s_period-sign.
gr_date-option = s_period-option.
COncatenate s_period-low
'01'
into gr_date-high.
COncatenate s_period-high
'01'
into gr_date-low
append gr_date.
ENDloop.
Thanks,
Satheesh -
How can I check if there is a table with the given name ?
I'm using 8i and 9i.
Could anybody teach me how to check if there is a table with a certain name in SQLPLUS without using SELECT
statement ?
I want to use the following logical procedure.
if exists "table_to_be_deleted" then drop table "table_to_be_deleted"
Or, is there any system table that I can check the names of tables like
count = select "table_to_be_deleted" from "an_oracle_system_table"
if ( count != 0 ) then drop table "table_to_be_deleted"
Thanks,
JohnJust create it, but be aware that DDLs can't be executed directly from Pl/Sql, so you'll have to use dynamic Sql, e.g. :
SQL> create table test(a number);
Table created.
SQL> begin
2 drop table test;
3 exception
4 when others then
5 null;
6 end;
SQL> /
drop table test;
ERROR at line 2:
ORA-06550: line 2, column 1:
PLS-00103: Encountered the symbol "DROP" when expecting one of the following:
begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe
SQL> ed
Wrote file afiedt.buf
1 begin
2 execute immediate 'drop table test';
3 exception
4 when others then
5 null;
6* end;
SQL> /
PL/SQL procedure successfully completed.
SQL>Now the table does not exist anymore, but further executions will not generate errors, due to the exception handler :
SQL> desc test
ERROR:
ORA-04043: object test does not exist
SQL> /
PL/SQL procedure successfully completed.
SQL> -
Capturing check box value into internal table
Hi all,
I am displaying the output including check box through following internal table.
The checkbox is displayed before every record.
<b>LOOP AT it_qals.
WRITE:/ it_qals-t_val AS CHECKBOX,
5 it_qals-werk,
12 it_qals-prueflos,
30 it_qals-matnr,
50 it_qals-charg,
62 it_qals-lagortchrg.
hide: it_qals .
ENDLOOP.</b>
I selected some of the records through check the checkboxes. when i click the <b>PUSHBUTTON TRANSFER</b>, those selected records only should transfer. i don't know how to modify the internal table with latest checkbox values. Initially checkbox values are blank.
Is there any solution except Function Module.
i would appreciate an earlier reply.
Regards
PrabhuHello,
Create one more table and transfer your entries into new table.
I have attached my code for you.
Regards,
Naimesh
REPORT ZTEST_NP NO STANDARD PAGE HEADING.
TABLES: MARA, MAKT.
DATA: BEGIN OF IT_MARA OCCURS 0,
MATNR LIKE MARA-MATNR,
MAKTX LIKE MAKT-MAKTX,
SEL,
END OF IT_MARA.
DATA: IT_MARA1 LIKE IT_MARA OCCURS 0 WITH HEADER LINE.
START-OF-SELECTION.
SET PF-STATUS 'ZTEST'.
PERFORM GET_DATA.
PERFORM WRITE_DATA.
TOP-OF-PAGE.
PERFORM HEADER.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'SELECT'.
PERFORM GET_DATA_SELECTED.
PERFORM WRITE_DATA_SELE.
WHEN 'SELALL'.
PERFORM SELECT_ALL.
SY-LSIND = 0.
PERFORM HEADER.
PERFORM WRITE_DATA.
WHEN 'DESEL'.
PERFORM DESELECT_ALL.
SY-LSIND = 0.
PERFORM HEADER.
PERFORM WRITE_DATA.
ENDCASE.
*& Form GET_DATA
FORM GET_DATA.
SELECT MATNR
INTO TABLE IT_MARA
FROM MARA
WHERE MATNR LIKE 'IN10020%'.
LOOP AT IT_MARA.
SELECT SINGLE MAKTX
INTO IT_MARA-MAKTX
FROM MAKT
WHERE MATNR = IT_MARA-MATNR
AND SPRAS = SY-LANGU.
MODIFY IT_MARA.
CLEAR IT_MARA.
ENDLOOP.
ENDFORM. " GET_DATA
*& Form WRITE_DATA
FORM WRITE_DATA.
ULINE /(50).
LOOP AT IT_MARA.
WRITE: / '|' NO-GAP, IT_MARA-SEL AS CHECKBOX NO-GAP,
'|' NO-GAP, (10) IT_MARA-MATNR NO-GAP,
'|' NO-GAP, (35) IT_MARA-MAKTX NO-GAP,
'|' NO-GAP.
ENDLOOP.
ULINE /(50).
ENDFORM. " WRITE_DATA
*& Form HEADER
FORM HEADER.
ULINE /(50).
WRITE: / '|' NO-GAP, (1) ' ' NO-GAP,
'|' NO-GAP, (10) 'Material' NO-GAP,
'|' NO-GAP, (35) 'Description' NO-GAP,
'|' NO-GAP.
ENDFORM. " HEADER
*& Form GET_DATA_SELECTED
FORM GET_DATA_SELECTED.
DATA: L_CNT TYPE I.
DO.
L_CNT = L_CNT + 1.
READ LINE L_CNT FIELD VALUE IT_MARA-MATNR INTO IT_MARA1-MATNR
IT_MARA-MAKTX INTO IT_MARA1-MAKTX
IT_MARA-SEL INTO IT_MARA1-SEL.
IF SY-SUBRC = 0.
IF IT_MARA1-SEL = 'X'.
APPEND IT_MARA1.
CLEAR IT_MARA1.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ENDFORM. " GET_DATA_SELECTED
*& Form WRITE_DATA_SELE
FORM WRITE_DATA_SELE.
PERFORM HEADER.
ULINE /(50).
LOOP AT IT_MARA1.
WRITE: / '|' NO-GAP, IT_MARA1-SEL AS CHECKBOX,
'|' NO-GAP, (10) IT_MARA1-MATNR NO-GAP,
'|' NO-GAP, (35) IT_MARA1-MAKTX NO-GAP,
'|' NO-GAP.
ENDLOOP.
ULINE /(50).
ENDFORM. " WRITE_DATA_SELE
*& Form SELECT_ALL
FORM SELECT_ALL.
LOOP AT IT_MARA.
IT_MARA-SEL = 'X'.
MODIFY IT_MARA.
CLEAR IT_MARA.
ENDLOOP.
ENDFORM. " SELECT_ALL
*& Form DESELECT_ALL
FORM DESELECT_ALL.
LOOP AT IT_MARA.
IT_MARA-SEL = ' '.
MODIFY IT_MARA.
CLEAR IT_MARA.
ENDLOOP.
ENDFORM. " DESELECT_ALL -
Your does not appear to me the option of Upgrade existing installation
Your does not appear to me the option of Upgrade existing installation to a clustered installation
I am installing sap 4,7 ext: 110 in cluster formed with Windows 2003 enterprise and SQL enterprise 2000, the manual of sap says to me that it installs SQL of local way in the node a of cluster, later mind to install service pack 3 in the node a, later mind to install sap in the node a, after that requests to me that realise upgrade of SQL with the Upgrade option existing installation to a clustered installation but that option does not appear to me qualifiedHere is a short (not necessarily complete) list of Cluster Option Requirements
- The SQL Server binaries are installed on a local non-
shared drive (Only Node A).
- The disc for the database files and the log file are
belongs to the SQL Server Cluster Group (MSSQL).
- On node B is no SQL Server with the same name (named
instance name or default instance name ) installed.
Check the registry on node B for the branches
HLM\SOFTWARE\Microsoft\Microsoft SQL Server
and
HLM\SOFTWARE\Microsoft\MSSQLServer
Deinstall the SQL Server on node B, if it exists and
delete the registry branches on node B, if they still
exists.
- The executing user for the setup has appropriate
rights on both nodes
(domain administrator).
- The SQL Server database files (master, msdb, etc.) are
on a shared disc.
- Node B is available via private and/or public net.
- The Cluster service is running on node A and on node B.
- You are using the right CD (not mat.number 51011908)
or have set the version by means of the .reg file
sqlverfix.reg (see node 377430).
- All needed discs (SQL DB, SQL Log, Quorum) are on
node A.
Please check all the requirements and run the cluster upgrade of SQL Server again.
Best regards
Clas -
Migrating Functions that return TABLE from SQL Server to Oracle
I have some functions in SQL Server that return a TABLE datatype. When these functions are moved to Oracle 9i using Migration Workbench, they give compilation errors. In the migrated function it says that the DDL stmt is passed to the ddl file, but the table is not created. I checked the ddl stmt for temporary tables and it is wrong. Its a create table stmt with no size for varchars and we can't even edit these stmts in the workbench.
Also the migrated function has the table name for return type, which doesn't works in Oracle. Oracle needs a datatype to be returned from Oracle.
How do we return a table from a function?Yes.
If you do not enclose the object names (table/view/index etc) in double-quotes, they are stored in uppercase format in the data dictionary.
If you enclose them in quotes, they are stored in the same case ans you entered. As such, while accessing such objects, you need to tell Oracle not to convert the names to uppercase, hence the requirement to supply the names in quotes. -
Drop the Rules of one table from existing bi directional replication setup
Hi All,
I have one small question on bi directional replication setup, Its regarding table add in existing replication setup.
What happened ,When we add a new table to existing replication setup if any reason table is not replicating between two database even we are not getting
any error in dba_apply_error ,then we have to remove the rules for that particular table and setup again. Some time what happened we got error "queue has
errors" i dont know the ORA number. But in that case what happened Apply process ABORETED and when we try to start the process it gives same error
("Queue has errors" ) and ABORTED again.
then on metalink for doc id 203225.1 .we have remove the whole replication Manually and setup again. It's horriable....
Could you please help that before drop the rules for particular table from exisitng bi directional replication setup then wht should we do ?
Do we need to unscheduled the propagation process and then drop the rules becuase i read on metalink that reason behind the error ,queue has errors
"negative rules drops while propagation process using the same rule set" .
Please Suggest!!!!!!!!!!
Many ThanksHow huge those tables?. If those are small tables use Oracle MINUS function to get the defference records.
-
How to achieve Check point functionality in SSIS with out using check point.
I got question from
interview!!! How
to achieve Check
point functionality in SSIS with out using check point. If package
fails it has to be re-run from the point that it failed instead
of rerunning the entire package.without
using check point.
Please
any one can explain step by step...Sorry you have failed your interview question. Good thing you remembered it, thought about it, and ask a question about it. The solution is actually very straightforward.
Create a table to store the state of your progress. Before each step read the table to find out where left off, then skip each completed step. After each step write to the table which step you have completed. A step can be anything, a task, a component,
a row, an import file, an export file. You don't have to use a table, it could also be a file, just something you can read and write, and does not disappear when your package stops.
If you find this difficult to comprehend, think of a checklist of things you do everyday and work from there. -
Create a new table from another table that exists ussing a stored procedure
Hi,
I want to know if is posibble to create a new table from another table that exists ussing a stored procedure. This new table is created from other table that exists in the DB.
(in the next code the table tbl1 exist into the schema of the DB, but temp_tbl1 does not exist, it must be created by the procedure)
create or replace procedute temp is
temp_tbl1 tbl1%TYPE; //the temp_tbl1 will have the same type of tbl1
begin
create table temp_tbl1 as (select * from tbl1);
end temp;
thanks very muchcat wrote:
Hello,
I think my problem is not about this grant, because if I execute this as an "anonymous procedure":
DECLARE
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE Abonus (id NUMBER, amt NUMBER)';
END;
It runs ok
But if I do:
CREATE OR REPLACE procedure temp as
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE Abonus (id NUMBER, amt NUMBER)';
END;
I have the error
ORA-01031: Insufficient privileges
ORA-06512: at "temp", line 3Anonymous blocks are treated as "Invoker's Rights" from a privilege perspective whereas stored programs by default are treated as "Definer's Rights". Therefore using anonymous blocks is not a valid test to check this.
The simplest form of checking this issue is by executing
SET ROLE NONE;and then to run your statement/code block in question interactively. Using this approach you get in your session the effective rights of a "Definer's Rights" stored program, i.e. only privileges that you got granted directly to your user.
You can revert to the default setting by issuing
SET ROLE ALL;For more information regarding this topic, read e.g. the documentation:
http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/subprograms.htm#LNPLS00809
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle (Open source Oracle GUI for Windows):
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/ -
Function module in table TADIR
Hi,
Table TADIR is a repository for all objects. However if I try to locate any function module(Object type = FUNC) in this table I dont get any entries. Why does this happen? Is there any other table which keeps a list of all function modules?
Thanks,
Saurabhhi,
check this table TFDIR...
<b>ENLFDIR</b> Additional Attributes for Function Modules -- this table contains FUNCTIONAL GROUP OF the particular function module..and other details
<b>reward points if it is useful..</b> -
Calling a remote enabled function module which does not exist in caller sys
Hi,
I have a a system ABC from which I am trying call a rfc enabled fm(Test) present in system XYZ.
The fm(Test) does not exist in the system ABC so I am getting generation errors and dumps.
Is there a way for me to call these remote enabled function modules which does not exist in the caller system without the obvious errors etc.
Is there any special way.
ThanksHi,
please check this sample:
REPORT zcallfm .
DATA: xv_return TYPE sysubrc.
CALL FUNCTION 'DOESNOTEXIST'
DESTINATION 'NOWHERE'
EXPORTING caller = sy-sysid
IMPORTING return = xv_return
EXCEPTIONS system_failure = 1
communication_failure = 2
OTHERS = 4.
It shouldn't throw any generation errors in your system!
Regards,
Klaus
Maybe you are looking for
-
How can I make my phone number active when viewing from a mobile device. My phone number is in my header in CSS
-
HI this is maqdoom ali I getting error while go to the execution of payment terms error no f5413. Best Regrt NASERK.
-
Sender JMS Connectivity not working
Hi All, We have developed a scenario where we have to pick messages from DTS JMS queue and we are using JMS provider with JNDI as the sender transport protocol. We have deployed the jar files given by the DTS team successfully in our XI 3.0 system an
-
Process order convertion problem
Hi All When I am converting the Planned Order to Process Order I am getting a error message Not able to determine the consumption account. Can anybody tell me how this problem can be solved. Is there anything I have to do in customizing Rregards Dhan
-
Raw camera support in photoshop 10 for the panasonic fz200
when will photoshop 10 support my new panasonic fz200 for raw camera efforts??