How to collect number of execution of functions in S12?
I can not find these info and I think it is important for performation tuning.
It is said that "tcov" will do that, however, it seems there is no tcov for linux?
Thanks,
Ethan
I also would like to see call count information in analyzer.
It can be used in the following situations:
1. In order to find the most called functions. Project developers should know that even a small change in these functions can cause performance regression. And vice versa: even small optimizations of the functions can significantly improve program performance.
2. In order to understand why function consumes so much time. Two variants are possible here:
a) The function is small (and fast) but is called very many times. In this case the performance should probably be improved by optimizing the function.
b) The function is called several times but is very slow. In this case the performance should probably be improved by both optimizing the function and reducing the number of calls to this function.
Currently, I'm investigating a performance regression in a program and would like to know, why a function "A" started to consume more time in a newer version of the program. Whether it's now called more times and I should investigate the functions which call to "A" or it's called the same number of times and I should investigate the functions which are called by "A" and the function "A" itself.
Thanks.
Similar Messages
-
Tracking the execution of Function Modules
Hi there,
for ABAP reports there is an enhancement S38MREP1 'Exit at Start report' in transaction CMOD available which could be used e. g. to track the execution at least of executable programs (TRDIR-SUBC = 1); limitation: it is executed before the selection screen, so no guarantee that a certain program is really submitted afterwards.
Is there something similar available in release 4.5B (or in any higher release?) or how can I track the execution of function modules in the customer name space in a smart way?
Thanks in advance for any support,
PeterExpanding a bit on Seigfried's post, you could write a little function module with with a parameter which would be function module name and it would update a custom table everytime it is executed.
Put this function call at the end of the function module that you want to log.
call function 'Z_LOG_FUNCTION_EXECUTION'
exporting
fcname = 'Z_THE_NAME_OF_THE FUNCTION'.
The code inside this function module could be something like this.
ztable-fcname = fcname.
ztable-uname = sy-uname.
ztable-datum = sy-datum.
ztable-uzeit = sy-uzeit.
insert ztable.
Regards,
Rich Heilman -
How to find the number of executions of a sql oracle 10g
Is there any script handy which is useful to get the number of executions of a sql in particualr time in a rac environment.
A lot depends on what time period you're trying to count the executions over...
In V$SQL, there is a column EXECUTIONS that will count the number of executions since the SQL statement was loaded into the shared pool, which may be too long a period or too short a period for your question.
If you are trying to get historical information and you have licensed the performance & tuning pack so that you can get the AWR, you could query the DBA_HIST_SQLSTAT table over an appropriate set of SNAP_ID's to get the totals for an arbitrary period of time.
Justin -
How to change the elements number in Number To Boolean Array Function VI
Hi, I'm working on using the DAQ digital output to control the digital input of a DAC, and I used the Number To Boolean Array Function. VI to convert the number to a Boolean array. The maximum number should be 4096, therefore it should consist of 12 elements.
For the description of the VI, it says Boolean array returns an array of 8, 16, 32, or 64 elements, depending on the number of bits in the integer. Therefore, I change the number of the channels in task to 16, but it still doesn't work. Any suggesitions are greatly appreciated.
Thanks!
Possible reason(s):
Write cannot be performed, because the number of channels in the data does not match the number of channels in the task.
When writing, supply data for all channels in the task. Alternatively, modify the task to contain the same number of channels as the data written.
Number of Channels in Task: 12
Number of Channels in Data: 32
Task Name: _unnamedTask<1B>
Solved!
Go to Solution.
Attachments:
DAC test.vi 47 KBOnce you have the boolean array, you can resize it using array tools. For example you can use "reshape array" with a lenght of 12 to trim the array to 12 booleans elements (you can also use array subset).
LabVIEW Champion . Do more with less code and in less time . -
How to find number of lines in an internal table
Dear all,
how to find number of records present in an internal table.DESCRIBE TABLE
Syntax
DESCRIBE TABLE itab [KIND knd] [LINES lin] [OCCURS n].
Extras:
1. ... KIND knd
2. ... LINES lin
3. ... OCCURS n
Effect
This statement determines some properties of the internal table itab and assigns them to the specified variables. The various additions enable you to determine the table type, the number of currently filled rows and the initial memory requirement.
In addition, the system fields sy-tfill and sy-tleng are filled with the current number of table rows and the length of a table row in bytes.
Notes
For detailed information about an internal table, you should use the methods of RTTS of the DESCRIBE TABLE statement.
Without the specification of an addition, the statement DESCRIBE TABLE only sets the system fields sy-tfill and sy-tleng.
Addition 1
... KIND knd
Effect
The table type of the internal table itab is determined and a corresponding one-digit identification is assigned to the data object knd. A character-type data type is expected for the data object. The identifications are "T" for standard tables, "S" for sorted tables and "H" for hashed tables. These values are also defined as constants sydes_kind-standard, sydes_kind-sorted, and sydes_kind-hashed in the type group SYDES.
Addition 2
... LINES lin
Effect
The current number of table rows of the internal table itab is determined and is assigned to the data object lin.The data type i is expected for the data object.
Note
As of release 6.10, the current number of rows of an internal table can also be determined using the in-built function lines.
Addition 3
... OCCURS n
Effect
The initial memory requirement defined during the creation of the internal table with the addition INITIAL SIZE or the obsolete addition OCCURS is determined and assigned to the data object n. The data type i is expected for the data object.
Example
Descending sorting of a generically typed internal table in a subprogram. Since sorted tables cannot be sorted in a descending order, the table type is checked to avoid an exception that cannot be handled.
TYPE-POOLS sydes.
FORM sort_descending CHANGING itab TYPE ANY TABLE.
DATA tabkind(1) TYPE c.
DESCRIBE TABLE itab KIND tabkind.
IF tabkind = sydes_kind-standard OR
tabkind = sydes_kind-hashed.
SORT itab DESCENDING.
ELSEIF tabkind = sydes_kind-sorted.
MESSAGE '...' TYPE 'E'.
ELSE.
MESSAGE '...' TYPE 'E'.
ENDIF.
ENDFORM.
DESCRIBE FIELD INTO
Note
This statement is for internal use only.
It cannot be used in application programs.
Syntax
DESCRIBE FIELD dobj INTO td.
Effect
All characteristics of the field f, its components , sub-components etc. are displayed in the field td (type description). td has to be of the type SYDES_DESC, defined in Type Group SYDES. Because of this, the type group SYDES must be integrated into the ABAP-program with a TYPE-POOLS statement .
The structure SYDES_DESC has two table-type components TYPES and NAMES:
In TYPES, the tree structure of the type belonging to f is displayed. The components of a node are stored in the table TYPES in a continuous manner. Beginning and end of the line area that represents the components are stored in TYPES-FROM and TYPES-TO. The reference to the superior node can be found in TYPES-BACK. If no superior resp. subordinate node exists, then this is marked by the value 0 (For the relevance of further components, refer to the following sections).
The names of components, types etc. are not stored directly in TYPES. Instead, the components TYPES-IDX_... hold an index in the name table NAMES. The value 0 indicates that there is no reference to the name table.
NAMES contains the possibly fragmented names in the component NAMES-NAME. If a name continues in the following line, this is indicated by an asterisk ('*') in the component NAMES-CONTINUE.
The type description table (TYPES) not only stores information about the tree structure but also further information about the type of f resp. its components. This includes especially all information that can be determined using the usual additions to DESCRIBE FIELD. In detail, TYPES contains the following columns:
IDX_NAME
Component Name
IDX_USER_TYPE
Name of a user-defined type, i.e., a type that was defined through its TYPES-statement. Derived types (... TYPE A-B) and structures from the ABAP-Dictionary are not considered to be user-defined types.
CONTEXT
For user-defined types only: The context, in which the type is defined. Possible values are defined in the constant SYDES_CONTEXT of the type group SYDES. Please only use these constants to carry out a comparison. In detail, we distinguish between the following type contexts:
SYDES_CONTEXT-PROGRAM: Program-global type
SYDES_CONTEXT-FORM : FORM-local type
SYDES_CONTEXT-FUNCTION: FUNCTION-local type
SYDES_CONTEXT-METHOD : METHOD-local type
IDX_CONTEXT_NAME
For user-defined types only:
With a local context: The name of the FORM or FUNCTION, whose type was defined. The name of the associated program is then the first entry in the name table.
With a global context: The name of the program in which the type was defined.
IDX_EDIT_MASK
Conversion routine from the ABAP-Dictionary, is in accordance with the addition EDIT MASK at simple DESCRIBE.
IDX_HELP_ID
Help-Id when referencing to fields from the ABAP-Dictionary
LENGTH
Internal length, corresponds to the addition LENGTH at simple DESCRIBE
OUTPUT_LENGTH
Output length, corresponds to the addition OUTPUT-LENGTH at simple DESCRIBE
DECIMALS
Number of decimal digits, corresponds to the addition DECIMALS at simple DESCRIBE
TYPE
ABAP-Type, corresponds to the addition TYPE at simple DESCRIBE
TABLE_KIND
A table type is stored here for the components which represent an internal table. The same values are returned as with the variant DESCRIBE TABLE itab KIND k. Components which do not represent a table get the return value set to SYDES_KIND-UNDEFINED (see type group SYDES).
Example
Example definition of the complex data type EMPLOYEE_STRUC:
PROGRAM DESCTEST.
TYPES: BEGIN OF name_struc,
first TYPE c LENGTH 20,
last TYPE c LENGTH 20,
END OF name_struc,
BEGIN OF absence_time_struc,
day TYPE d,
from TYPE t,
to TYPE t,
END OF absence_time_struc,
phone_number TYPE n LENGTH 20,
BEGIN OF employee_struc,
id LIKE sbook-customid,
name TYPE name_struc,
BEGIN OF address,
street TYPE c LENGTH 30,
zipcode TYPE n LENGTH 4,
place TYPE c LENGTH 30,
END OF address,
salary_per_month TYPE p LENGTH 10 DECIMALS 3,
absent TYPE STANDARD TABLE OF absence_time_struc
WITH NON-UNIQUE DEFAULT KEY,
phone TYPE STANDARD TABLE OF phone_number
WITH NON-UNIQUE DEFAULT KEY,
END OF employee_struc.
You can determine the structure of the type EMPLOYEE_STRUC by collecting the type group SYDES as follows:
TYPE-POOLS: sydes.
DATA: employee TYPE employee_struc,
td TYPE sydes_desc.
DESCRIBE FIELD employee INTO td.
The following table shows a few selected columns of the type description table TD-TYPES. For a better overview, the names of the columns IDX_NAME, IDX_UERR_TYPE and IDX_EDIT_MASK have been shortened:
|FROM| TO |BACK|NAME|UTYP|EMSK|TYPE
|--||||||--
1 | 2 | 7 | 0 | 0 | 2 | 0 | v
2 | 0 | 0 | 1 | 6 | 0 | 4 | N
3 | 8 | 9 | 1 | 7 | 5 | 0 | u
4 | 10 | 12 | 1 | 8 | 0 | 0 | u
5 | 0 | 0 | 1 | 9 | 0 | 0 | P
6 | 13 | 13 | 1 | 11 | 0 | 0 | h
7 | 17 | 17 | 1 | 12 | 0 | 0 | h
8 | 0 | 0 | 3 | 13 | 0 | 0 | C
9 | 0 | 0 | 3 | 14 | 0 | 0 | C
10 | 0 | 0 | 4 | 15 | 0 | 0 | C
11 | 0 | 0 | 4 | 16 | 0 | 0 | N
12 | 0 | 0 | 4 | 17 | 0 | 0 | C
13 | 14 | 16 | 6 | 0 | 18 | 0 | u
14 | 0 | 0 | 13 | 20 | 0 | 0 | D
15 | 0 | 0 | 13 | 21 | 0 | 0 | T
16 | 0 | 0 | 13 | 22 | 0 | 0 | T
17 | 0 | 0 | 7 | 0 | 0 | 0 | N
Please note that the entries in rows 6 and 7 represent internal tables (ABAP-Type h). There is always an entry for the corresponding row type (rows 13 and 17) to an internal table.
The indices in the rows 5 to 7 refer to entries in the name table TD-NAMES. If you look, e.g., at row 3, you find the corresponding component name in TD-NAMES from row 7 (NAME) onward and the corresponding user type from row 5 (NAME_STRUC) onward.
In the name table TD-NAMES you find the following entries. Note that the names SALARY_PER_MONTH and ABSENCE_TIME_STRUC are stored in two parts:
|CONTINUE|NAME |CONTINUE|NAME
|--| -||--
1 | |DESCTEST 12 | |PHONE
2 | |EMPLOYEE_STRUC 13 | |FIRST
3 | |SBOOK-CUSTOMID 14 | |LAST
4 | |==ALPHA 15 | |STREET
5 | |NAME_STRUC 16 | |ZIPCODE
6 | |ID 17 | |PLACE
7 | |NAME 18 | * |ABSENCE_TIME_ST
8 | |ADDRESS 19 | |RUC
9 | * |SALARY_PER_MONT 20 | |DAY
10 | |H 21 | |FROM
11 | |ABSENT 22 | |TO -
How can I stop the execution on a JSP page and start it again
Hi
I am making a program that simulates how to manage transactions when accessing a database by using locks. I have run into a problem and I hope someone has the time to help me.
When a user does an update the transaction commits and releases its locks when the program executes
<%stmt.executeUpdate("commit!"); %>
I need to put a break in to stop the program executing this statement, to illustrate the lock is set correctly.
I have tried to put in an alert box but this does not prevent the rest of the java code being executed.
I have tried to use prompt boxes, JavaScript functions, but these functions cannot have any java code in them.
I have tried using the java.swing JOptionPane boxes but this didn?t work either
I have tried to get input from the user but I don?t know how to retrieve this data on the same page. (As far as I know you have to use submit and even refresh the page or retrieve it on the next page).
Does anyone know how I can stop the execution on a JSP page and start it again (on same page)
MetteI already have another client (Tomcat jsp application) running and it throws a SQLException correctly when I don�t put in a commit=true statement and don't close the database connection.
But the problem is how to get the code above to stop to illustrate I have set this lock.
I have tried to use the JOptionPane but because my program is running in a web browser I cannot use the JOptionPane dialog box.
I have tired using an alert box but it executes the commit statement before the alert box is dispayed. So this does not work
While (i < 2)
if( i==1)
%>alert(�The transactions commits when you press Ok�); <% //what it to stop execution here
else
stmt.executeUpdate(�commit�);
I am not using threads so I cannot use the sleep function.
I am using mysql and have already configured it to detect deadlocks and how long to wait for locks.
Thanks for your help
Mette -
How many Collections can you have in iBooks?
How many Collections can you have in iBooks? I have many and now I'm unable to add more collections. Is there a way to add more collections/shelves?
Hi Joe,
There is no "upper limit" on the number of tasks that you can have in a plan. Having said that, the complexity of a plan -- including conditions and the use of external tasks -- can certainly be a factor in response times.
Having said this, 30 seconds seems like a long time and I strongly suggest that you open a case with customer care on this item.
We have alerted them to be looking for a case from you. -
How to delete number (00) in a SQL Server column ?
how to delete number (00) in a SQL Server column ?
example :
column : Births before Births
after
199900
1999
198200
1982
200400
2004
help queryYou use REPLACE function to selectively replace text inside a string in SQL Server. The REPLACE function is easy to use and very handy with an UPDATE statement.
SELECT Replace(births, '00', '')
or
update .....
Also you can use STUFF()
This function can be used for delete a certain length of the string and insert a new string in the deleted place.
Select STUFF ('199900', 5, 2, '')
--result 1900,1982,....
Ahsan Kabir Please remember to click Mark as Answer and Vote as Helpful on posts that help you. This can be beneficial to other community members reading the thread. http://www.aktechforum.blogspot.com/ -
How to get sysnr value in a Function Module
Hi all,
I need to get the sysnr(system number) value of the R/3 system. I execute a RFC function module and need to get the value of sysnr of the system it executes in as a return parameter. Can somebody tell me how to get this value in the function module and return it.
Thanks and Regards,
PratikHello Pratik
The system number has to be defined in the RFC destination. Thus, select on your local system (where you call the RFC function module) the corresponding RFC destination from table <b>RFCDES</b>. In field RFCDES-RFCOPTIONS you will find a string like this:
H=<ip address>,S=21,R=N, ...
S=system number
Regards
Uwe -
How can I make the execution of my script faster
Hi everyone
How can I make the execution of my script faster, because it takes a lot of time to execute? The following is my script:
DECLARE
CURSOR C1 IS
SELECT A.ITEM_CODE,A.STORE_CODE,ST_UNIT,SA_UNIT,CART_QTY,QUANTITY_ON_HAND
FROM PROJ.IM_LOCATION A
WHERE A.ITEM_CODE BETWEEN :ITEM_FRM AND :ITEM_TO
AND A.STORE_CODE = :FRM_STORE
ORDER BY
A.STORE_CODE ;
CURSOR C2 IS
SELECT A.ITEM_CODE,A.STORE_CODE,ST_UNIT,SA_UNIT,CART_QTY,QUANTITY_ON_HAND
FROM PROJ.IM_LOCATION A
WHERE A.ITEM_CODE BETWEEN :ITEM_FRM AND :ITEM_TO
AND A.STORE_CODE = :FRM_STORE
ORDER BY
A.STORE_CODE ;
big_syb_qty_issue number(12,3);
small_syb_qty_issue number(12,3);
big_issue number(12,3);
small_issue number(12,3);
item_syb_code varchar2(30);
big_syb_qty_rec number(12,3);
small_syb_qty_rec number(12,3);
BI_SUPP_REC number(12,3);
SM_SUPP_REC number(12,3);
big_syb_qty_ADJ number(12,3);
small_syb_qty_ADJ number(12,3);
big_ADJ number(12,3);
small_ADJ number(12,3);
big_syb_qty_rec_iner number(12,3);
small_syb_qty_rec_iner number(12,3);
BI_INTER number(12,3);
SM_INTER number(12,3);
cl_big_qty number(12,3);
cl_small_qty number(12,3);
cl_big_qty1 number(12,3);
cl_small_qty1 number(12,3);
BIG_QTY_OPEN number(12,3);
SMALL_QTY_OPEN number(12,3);
BEGIN
IF ((:FRM_STORE IS NULL) OR (:ITEM_FRM IS NULL) OR (:ITEM_TO IS NULL) OR (:DATE_FRM IS NULL)) THEN
SHOW_MESSAGE('You Should Enter the Parameters Values Correctly Please try again !!!! ');
RAISE FORM_TRIGGER_FAILURE;
GO_FIELD('DATE_FRM');
END IF;
DELETE FROM STOCK_AT_DATE_REP2;
COMMIT;
cl_big_qty := 0;
cl_small_qty := 0;
-- MESSAGE('Please Wait The System Calculating The Transactions !!!');
SET_APPLICATION_PROPERTY(CURSOR_STYLE,'BUSY');
FOR R IN C1
LOOP
cl_big_qty := R.CART_QTY ;
cl_small_qty := R.QUANTITY_ON_HAND;
-- Transerfer Data 1
BEGIN
SELECT B.ITEM_CODE,SUM(NVL(CART_QTY,0)) ,SUM(NVL(ITEM_QUANTITY,0))
INTO item_syb_code,big_syb_qty_issue,small_syb_qty_issue
FROM IM_TRANS_ISSUE_HEADER A,IM_TRANS_ISSUE_DETAILS B
WHERE A.DOC_CODE = B.DOC_CODE
AND B.DEL_STORE = R.STORE_CODE
AND ITEM_CODE = R.ITEM_CODE
AND DOC_DATE > :DATE_TO
GROUP BY
B.ITEM_CODE;
-- SHOW_MESSAGE('ISSUED BIG'||' '||big_syb_qty_issue);
exception
when no_data_found then big_syb_qty_issue := 0;
small_syb_qty_issue := 0;
when others then MESSAGE(10,sqlerrm);
END ;
-- Goods Received Data From Supplier 1
BEGIN
SELECT B.ITEM_CODE,SUM(B.CART_QTY),SUM(ITEM_QUANTITY)
INTO item_syb_code,big_syb_qty_rec,small_syb_qty_rec
FROM IM_GOODS_RECIEVE_HEADER A,IM_GOODS_RECIEVE_DETAILS B
WHERE A.DOC_CODE = B.DOC_CODE
AND STORE_CODE = R.STORE_CODE
AND ITEM_CODE = R.ITEM_CODE
AND DOC_DATE > :DATE_TO
GROUP BY
B.ITEM_CODE;
-- SHOW_MESSAGE('RECEIVED FROM SUPPLIER BIG'||' '||big_syb_qty_rec);
exception
when no_data_found then big_syb_qty_rec := 0;
small_syb_qty_rec := 0;
when others then message(10,sqlerrm);
END ;
-- Adjustement Data 1
BEGIN
SELECT B.ITEM_CODE ,SUM(NVL(CART_QTY,0)) ADJUST_QTY,SUM(NVL(ITEM_QUANTITY,0))
INTO item_syb_code,big_syb_qty_ADJ,small_syb_qty_ADJ
FROM IM_ADJUST_HEADER A,IM_ADJUST_DETAILS B
WHERE A.DOC_CODE = B.DOC_CODE
AND B.STORE_CODE = R.STORE_CODE
AND ITEM_CODE = R.ITEM_CODE
AND A.DOC_DATE > :DATE_TO
GROUP BY
B.ITEM_CODE;
-- SHOW_MESSAGE('Adjust BIG'||' '||big_syb_qty_ADJ);
exception
when no_data_found then big_syb_qty_ADJ := 0;
small_syb_qty_ADJ := 0;
when others then message(10,sqlerrm);
END ;
-- Goods Received Data From Stores 1
BEGIN
SELECT B.ITEM_CODE,SUM(B.CART_QTY),SUM(ITEM_QUANTITY)
INTO item_syb_code,big_syb_qty_rec_iner,small_syb_qty_rec_iner
FROM IM_TRANS_REC_HEADER A,IM_TRANS_REC_DETAILS B
WHERE A.DOC_CODE = B.DOC_CODE
AND REC_STORE = R.STORE_CODE
AND ITEM_CODE = R.ITEM_CODE
AND DOC_DATE > :DATE_TO
GROUP BY
B.ITEM_CODE;
-- show_message('here');
-- SHOW_MESSAGE('Received From Stores BIG'||' '||big_syb_qty_rec_iner);
exception
when no_data_found then
big_syb_qty_rec_iner := 0;
small_syb_qty_rec_iner := 0;
when others then message(10,sqlerrm);
END ;
cl_big_qty := (NVL(cl_big_qty,0) + NVL(big_syb_qty_issue,0));
cl_big_qty := (NVL(cl_big_qty,0) - NVL(big_syb_qty_rec,0));
cl_big_qty := (NVL(cl_big_qty,0) - NVL(big_syb_qty_rec_iner,0));
big_syb_qty_ADJ := -1 * NVL(big_syb_qty_ADJ,0);
cl_big_qty := (NVL(cl_big_qty,0) + NVL(big_syb_qty_ADJ,0));
-- srw.message(2000,'cl_small_qty'||cl_small_qty);
cl_small_qty := (NVL(cl_small_qty,0) + NVL(small_syb_qty_issue,0));
cl_small_qty := (NVL(cl_small_qty,0) - NVL(small_syb_qty_rec,0));
cl_small_qty := (NVL(cl_small_qty,0) - NVL(small_syb_qty_rec_iner,0));
small_syb_qty_ADJ := -1 * NVL(small_syb_qty_ADJ,0);
cl_small_qty := (NVL(cl_small_qty,0) + NVL(small_syb_qty_ADJ,0));
-- srw.message(2000,'cl_small_qty'||cl_small_qty); srw.message(2000,'cl_small_qty'||cl_small_qty);
INSERT INTO STOCK_AT_DATE_REP2
VALUES(R.STORE_CODE,R.ITEM_CODE,cl_big_qty,cl_small_qty,R.ST_UNIT,R.SA_UNIT,:DATE_FRM,
:DATE_TO,0,0,0,0,0,0,0,0,cl_big_qty,cl_small_qty);
cl_big_qty := 0;
cl_small_qty := 0;
END LOOP;
COMMIT;
FOR R IN C2
LOOP
-- Transerfer Data 2
BEGIN
SELECT B.ITEM_CODE,SUM(NVL(CART_QTY,0)) ,SUM(NVL(ITEM_QUANTITY,0))
INTO item_syb_code,big_issue,small_issue
FROM IM_TRANS_ISSUE_HEADER A,IM_TRANS_ISSUE_DETAILS B
WHERE A.DOC_CODE = B.DOC_CODE
AND B.DEL_STORE = R.STORE_CODE
AND ITEM_CODE = R.ITEM_CODE
AND DOC_DATE BETWEEN :DATE_FRM AND :DATE_TO
GROUP BY
B.ITEM_CODE;
-- SHOW_MESSAGE('ISSUED BIG'||' '||big_syb_qty_issue);
exception
when no_data_found then
big_issue := 0;
small_issue := 0;
when others then MESSAGE(10,sqlerrm);
END ;
-- Goods Received Data From Supplier 2
BEGIN
SELECT B.ITEM_CODE,SUM(NVL(B.CART_QTY,0)),SUM(NVL(ITEM_QUANTITY,0))
INTO item_syb_code,BI_SUPP_REC,SM_SUPP_REC
FROM IM_GOODS_RECIEVE_HEADER A,IM_GOODS_RECIEVE_DETAILS B
WHERE A.DOC_CODE = B.DOC_CODE
AND STORE_CODE = R.STORE_CODE
AND ITEM_CODE = R.ITEM_CODE
AND DOC_DATE BETWEEN :DATE_FRM AND :DATE_TO
GROUP BY
B.ITEM_CODE;
-- SHOW_MESSAGE('1- SM_SUPP_REC '||' '||SM_SUPP_REC );
-- SHOW_MESSAGE('RECEIVED FROM SUPPLIER BIG'||' '||big_syb_qty_rec);
exception
when no_data_found then
BI_SUPP_REC := 0;
SM_SUPP_REC := 0;
when others then message(10,sqlerrm);
END ;
-- Adjustement Data 2
BEGIN
SELECT B.ITEM_CODE ,SUM(NVL(CART_QTY,0)) ADJUST_QTY,SUM(NVL(ITEM_QUANTITY,0))
INTO item_syb_code,big_ADJ,small_ADJ
FROM IM_ADJUST_HEADER A,IM_ADJUST_DETAILS B
WHERE A.DOC_CODE = B.DOC_CODE
AND B.STORE_CODE = R.STORE_CODE
AND ITEM_CODE = R.ITEM_CODE
AND A.DOC_DATE BETWEEN :DATE_FRM AND :DATE_TO
GROUP BY
B.ITEM_CODE;
-- SHOW_MESSAGE('Adjust BIG'||' '||big_syb_qty_ADJ);
exception
when no_data_found then
big_ADJ := 0;
small_ADJ := 0;
when others then message(10,sqlerrm);
END ;
-- Goods Received Data From Stores 2
BEGIN
SELECT B.ITEM_CODE,SUM(NVL(B.CART_QTY,0)),SUM(NVL(ITEM_QUANTITY,0))
INTO item_syb_code,BI_INTER,SM_INTER
FROM IM_TRANS_REC_HEADER A,IM_TRANS_REC_DETAILS B
WHERE A.DOC_CODE = B.DOC_CODE
AND REC_STORE = R.STORE_CODE
AND ITEM_CODE = R.ITEM_CODE
AND DOC_DATE BETWEEN :DATE_FRM AND :DATE_TO
GROUP BY
B.ITEM_CODE;
-- show_message('here');
-- SHOW_MESSAGE('Received From Stores BIG'||' '||big_syb_qty_rec_iner);
exception
when no_data_found then
BI_INTER := 0;
SM_INTER := 0;
when others then message(10,sqlerrm);
END ;
BEGIN
BIG_QTY_OPEN := 0;
SMALL_QTY_OPEN := 0;
BEGIN
SELECT NVL(S_BIG_QTY_OPEN,0) ,NVL(S_SMALL_QTY_OPEN,0)
INTO
BIG_QTY_OPEN,SMALL_QTY_OPEN
FROM STOCK_AT_DATE_REP2
WHERE S_STORE_CODE = R.STORE_CODE
AND S_ITEM_CODE = R.ITEM_CODE;
END;
BIG_QTY_OPEN := ((BIG_QTY_OPEN) + NVL(big_issue,0));
BIG_QTY_OPEN := ((BIG_QTY_OPEN) - NVL(BI_SUPP_REC,0));
big_adj := -1 * NVL(big_adj,0);
BIG_QTY_OPEN := ((BIG_QTY_OPEN) + NVL(big_adj,0));
BIG_QTY_OPEN := ((BIG_QTY_OPEN) - NVL(BI_INTER,0));
SMALL_QTY_OPEN := ((SMALL_QTY_OPEN) + NVL(SMALL_issue,0));
SMALL_QTY_OPEN := ((SMALL_QTY_OPEN) - NVL(SM_SUPP_REC ,0));
SMALL_adj := -1 * NVL(SMALL_adj,0);
SMALL_QTY_OPEN := ((SMALL_QTY_OPEN) + NVL(SMALL_adj,0));
SMALL_QTY_OPEN := ((SMALL_QTY_OPEN) - NVL(SM_INTER,0));
END;
BEGIN
UPDATE STOCK_AT_DATE_REP2
SET BIG_SUP_REC = BI_SUPP_REC,
SMALL_SUP_REC = SM_SUPP_REC,
BIG_ISSUE_TRAN = big_issue,
SMALL_ISSUE_TRAN = SMALL_issue,
BIG_ADJUST = big_adj,
SMALL_ADJUST = SMALL_adj,
BIG_INTER_REC = BI_INTER,
SMALL_INTER_REC = SM_INTER,
S_BIG_QTY_OPEN = BIG_QTY_OPEN,
S_SMALL_QTY_OPEN = SMALL_QTY_OPEN
WHERE S_STORE_CODE = R.STORE_CODE
AND S_ITEM_CODE = R.ITEM_CODE;
exception
when no_data_found then
NULL;
when others then
message(10,sqlerrm);
END;
END LOOP;
COMMIT;
SET_APPLICATION_PROPERTY(CURSOR_STYLE,'default');
SYNCHRONIZE;
-- SHOW_MESSAGE('The Data Have Been Calculated !!!');
END;
declare
pl_id ParamList;
APPLICATION_ID VARCHAR2(20):='PRD';
COMMAND_LINE VARCHAR2(100) :='STOCK_LEDGER';
BEGIN
pl_id := Get_Parameter_List('tmpdata');
IF NOT Id_Null(pl_id) THEN
Destroy_Parameter_List( pl_id );
END IF;
pl_id := Create_Parameter_List('tmpdata');
Add_Parameter(pl_id,'DATE_FRM',TEXT_PARAMETER,:DATE_FRM);
Add_Parameter(pl_id,'DATE_TO',TEXT_PARAMETER,:DATE_TO);
Add_Parameter(pl_id,'ITEM_FRM',TEXT_PARAMETER,:ITEM_FRM);
Add_Parameter(pl_id,'ITEM_TO',TEXT_PARAMETER,:ITEM_TO);
Add_Parameter(pl_id,'FRM_STORE',TEXT_PARAMETER,:FRM_STORE);
IF :REPORT_TYPE = 1 THEN
Run_Product(REPORTS,'C:\INV\RDF\STOCK_LEDGER.rdf',SYNCHRONOUS,RUNTIME,
FILESYSTEM, pl_id,NULL);
ELSIF :REPORT_TYPE = 2 THEN
Run_Product(REPORTS,'C:\INV\RDF\STOCK_LEDGER_2.rdf',SYNCHRONOUS,RUNTIME,
FILESYSTEM, pl_id,NULL);
END IF;
END;
Waiting for your valuable answer
Best Regards
Jamil AlshaibaniMake a matte in Photoshop.
From the Photoshop menu bar: File > New > Film & Video Presets. Choose one that suits your FCP project pixel dimensions. Make the background black. Place a white rectangle with rounded corners on top (the white will determine how much of your picture is visible). Flatten Image. Save as TIFF. Import into FCP.
Move your video clips up to V2. Place the imported TIFF on V1. Highlight all clips on V2.
Go to Modify > Composite Mode > Travel Matte Luma. Done.
If you want soft edges, no need for a matte. Double click your clip to place it in the Viewer. Open up the Motion tab > Crop > Edge Feather. Nice and quick. Copy and Paste attributes for the other clips. -
How to include a new Z Partner Function in Sales order header drop down lis
Hello SAP experts,
We have come up with a new requirement to include a custom Partner Function-ZI in dropdown of SO header-Partners field.
Current scenario- Presently we are maintaining this partner function ( Say ZI- Institute ) in customer master data-Sales area tab.There could be more than one partners under this PF in master data. While entering sales Order, all partners associated are displayed in Header- partners tab, where only SP, SH, BP, PY partner functions are displayed.
Requirement- 1. Is to provide Drop down of this ZI-Institute partner function (which I did not find presently) in SO header-partners field and user should be able to provide one of partner function as available in Customer master ( as there are more than one partners that can be set in Customer master data but user need to be able to provide ONE of this ZI partner fucntion in DROPDOWN of PF tab in SO header ).
2. In addition, How can I link this new partner function in related sales reports against that particulat order and invoice?
Kindly suggest your valuable inputs as what should be the procedure to get this.
Many thanks in advance.Hi,
Go to partner determination by VOPA
OR
IMG >> SD >> Basic function >> Set up partner functions >> set up partner function for sales document header
click on partner function and Maintain partner function ZI and back
Then select your existing partner determination procedure (Standard is TA) and click on PARTNER FUNCTIONS IN PROCEDURE and add partner function. and make it mandatory so even user forget to mention then at the time of saving system can remind user
Then double click on PARTNER DETERMINATION PROCEDURE ASSIGNMENT
Assign partner procedure to sales document
Now when you creating sales order go to header partner tab and enter you institute partner number
For sales order and invoice report
Execute this report by selecting partner function ZI in VA05N and VF05 respectively
kapil -
How can I use User-Defined Aggregate Functions in Timesten 11? such as ODCI
Hi
we are using Timesten 11 version and as per the documentation, it doesn't support User-Defined Aggregate Functions.
So we are looking for alternatives to do it. Could you please provide your expert voice on this.
Thanks a lot.
As the following:
create or replace type strcat_type as object (
cat_string varchar2(32767),
static function ODCIAggregateInitialize(cs_ctx In Out strcat_type) return number,
member function ODCIAggregateIterate(self In Out strcat_type,value in varchar2) return number,
member function ODCIAggregateMerge(self In Out strcat_type,ctx2 In Out strcat_type) return number,
member function ODCIAggregateTerminate(self In Out strcat_type,returnValue Out varchar2,flags in number) return
number
How can I use User-Defined Aggregate Functions in Timesten 11? such as ODCIAggregateInitialize ?Dear user6258915,
You absolutely right, TimesTen doesnt support object types (http://docs.oracle.com/cd/E13085_01/doc/timesten.1121/e13076/plsqldiffs.htm) and User-Defined Aggregate Functions.
Is it crucial for your application? Could you rewrite this functionality by using standart SQL or PL/SQL?
Best regards,
Gennady -
How to use database look up table function in xsl mapping
Can anybody tell me how to use database look up table function while mapping xsl between 2 nodes.
I have an XML file coming in and depending on one of XML elements we need to decide which further path to take. But, using this XML element, we need to query database table, get metadata and accordingly take appropriate path. I have written lookup function which returns metadata value.
Now, the issue is how do I pass the XML element valu as input to look up function? When I tried to drag it to the input node of lookup function, it throws an error like "Maximum number of parameters exceeded"
Thanks,If the lookup table is always going to remain the same (e.g. a character generator or something similar) you can place the values in a 2D array constant on your diagram, with the input value as one column, the equivalent as the other. When you need to perform the lookup you use an index array to return all the values in the "input column", search it using "search 1D array" and use the resulting index number to index the other column's data. If the values may change, then it would probably be best to load an array control with your equivalent values from a file.
P.M.
Putnam
Certified LabVIEW Developer
Senior Test Engineer
Currently using LV 6.1-LabVIEW 2012, RT8.5
LabVIEW Champion -
How i can find the execution plan
how i can find the execution plan for a quesry , and how i can compare two execution plan
Mohan,
Just create a table as follows
CREATE TABLE T1 (STATEMENT_ID VARCHAR2(30),TIMESTAMP DATE,OPERATION VARCHAR2(30),
OPTIONS VARCHAR2(30),OBJECT_NAME VARCHAR2(30),COST NUMBER(38),
ID NUMBER(38),PARENT_ID NUMBER(38), OBJECT_NODE VARCHAR2(128),
OBJECT_OWNER VARCHAR2(30),OBJECT_INSTANCE NUMBER(38),OBJECT_TYPE VARCHAR2(30),
OPTIMIZER VARCHAR2(255),SEARCH_COLUMNS NUMBER,POSITION NUMBER(38),
PARTITION_START VARCHAR2(255),PARTITION_STOP VARCHAR2(255),PARTITION_ID NUMBER(38),
CARDINALITY NUMBER(38),BYTES NUMBER(38),OTHER_TAG VARCHAR2(255),
OTHER LONG,REMARKS VARCHAR2(80),DISTRIBUTION VARCHAR2(30)
Now use the sql statements as
> EXPLAIN PLAN INTO T1 FOR (SELECT * FROM EMP);
> Select * from T1
this should do the job . . .
Regards,
K.T. Gandhi Karuna -
Need an example how to use SCAN_Start with a callback function
I would appreciate if someone helps me with a working example of how to use SCAN_Start with a callback function. I need just a basic functionality: to specify a channel list (with gains probably), to start a data acquisition task and to receive data buffers utilizing a callback function. t this time whatever I was trying to do caused computer hangups, though it is supposed to be one of the most regular tasks to perform.
Thank you in advance,
MikeHello Mike,
Thank you for contacting National Instruments.
Attached is an example project which uses a callback function to begin analog acquisition (AI) by calling SCAN_Start. This project acquires from the first 2 channels on your DAQ device. Make sure to modify the device number in the code to match the number of your card.
Let me know if you have any further questions...
Sincerely,
Sean C.
Applcications Engineer
National Instruments
Attachments:
Acquire_multichannel_61xx.zip 11 KB
Maybe you are looking for
-
Best Practice for Apex Implementation
Hello, I'm looking for some guidance in best practices on implementing Apex across our enterprise. Do we install it on many databases based on whether an application gets most of its data from that database? And if so, could we use one 10gAS web serv
-
Don't see new Item on Purchasing
Hi my friends! I have an error. I create new item on OPM inventory. But when i create a Purchase Order, I can't find it. Can you help me?
-
Adobe InDesign CS6 Trial stopped working
I have downloaded InDesign Trial and all went well. The day after it stopped working so I reinstalled it and started working again. It did that a few times in the last week but now it wont let me reinstall it again. It comes up with the errors: ERROR
-
How to add agent software in the agent software update list from OEM12C?
The OMS version is 12C. In the OEM web page, the agent software should have a list for all platform in the agent software update list, where you can go from setup => extensibility => self update => agent software. But we only have agent for linux. Th
-
CSS - background image repeat-y
Hello, QUESTIONThis works great in IE v6.0. How can I get the background position to work in Firefox 2.0? Instead of a tiled background that I can control where it begins to tile within a DIV, in Firefox 2.0 it displays the image once and doesn't til