Problem inserting rows to table using BPEL workflow
Hi,
I’m going to invoke below procedure which is inside a package.
PROCEDURE as_ebs_status_msg(getData in varchar) AS
BEGIN
insert into AS_AP_INV_STATUS_IPM values('BP1234','BP1234','BP1234');
END as_ebs_status_msg;
Once I invoke this procedure from sql developer (Using execute command) it inserts those values to the table.
But when I invoke this from a BPEL work flow (adding partner link) it completes without any error. But values are not getting populated to the table.
And I tried to use Insert functionality of DB adapter, that is also not inserting values to any table but I can run select queries.
Is anyone came across this issue?
Thank You,
any response greatly appreciated.......
Edited by: Nir on Aug 31, 2011 10:47 PM
Hallo,
but you haven't a loop ! :-)
Try this,
(not tested)
set serveroutput on
declare
lastcall date;
srcip varchar2(50);
username varchar2(50):='9204';
duration number;
callto varchar2(50);
accountid varchar2(50);
calltime date;
subscriberid varchar2(50);
country varchar2(50);
cost varchar2(50);
CURSOR process_cdr
IS
SELECT
srcip,
username,
callto,
calltime,
duration
FROM rawcdr
WHERE calltime>lastcall;
begin
select max(calltime_gmt) into lastcall from
processed_cdr;
open process_cdr;
LOOP
fetch process_cdr into srcip,username,callto,calltime,duration;
EXIT WHEN process_cdr%NOTFOUND;
dbms_output.put_line(callto);
if (instr(callto,'00')=5) then
callto:=SUBSTR(REPLACE(callto,SUBSTR(callto, INSTR(callto, '@'), 50), ''), INSTR(callto, ':') + 3, 50);
dbms_output.put_line(callto);
elsif (instr(callto,'011')=5) then
callto:=SUBSTR(REPLACE(callto, SUBSTR(callto, INSTR(callto, '@'), 50), ''), INSTR(callto, ':') + 4, 50);
dbms_output.put_line(callto);
else
callto:=SUBSTR(REPLACE(callto, SUBSTR(callto, INSTR(callto, '@'), 50), ''), INSTR(callto, ':') +1 , 50);
end if;
process_call(srcip,username,duration,callto,accountid,subscriberid,country,cost);
dbms_output.put_line(cost);
dbms_output.put_line('trying to insert');
insert into processed_cdr values(accountid,subscriberid,srcip,username,callto,country,calltime,duration,cost) ;
dbms_output.put_line('inserted successfully');
/* Second fetch is not needed
--FETCH process_cdr INTO srcip, username, callto, calltime, duration; */
END LOOP;
close process_cdr;
COMMIT; -- eventually
end;You didn't answered - do you do COMMIT elsewhere ?
I placed COMMIT also, if you don't need it, you can comment it
Regards
Dmytro
Similar Messages
-
Problem inserting records in table using cursors
hi all
i have a block in which i m trying to take records from a table pass it to a procedure which in turn calls some procedures
and than the procesed records are dumped into another table
this is my code
set serveroutput on
declare
lastcall date;
srcip varchar2(50);
username varchar2(50):='9204';
duration number;
callto varchar2(50);
accountid varchar2(50);
calltime date;
subscriberid varchar2(50);
country varchar2(50);
cost varchar2(50);
CURSOR process_cdr
IS
SELECT
srcip,
username,
callto,
calltime,
duration
FROM rawcdr
WHERE calltime>lastcall;
begin
select max(calltime_gmt) into lastcall from
processed_cdr;
open process_cdr;
fetch process_cdr into srcip,username,callto,calltime,duration;
dbms_output.put_line(callto);
if (instr(callto,'00')=5) then
callto:=SUBSTR(REPLACE(callto,SUBSTR(callto, INSTR(callto, '@'), 50), ''), INSTR(callto, ':') + 3, 50);
dbms_output.put_line(callto);
elsif (instr(callto,'011')=5) then
callto:=SUBSTR(REPLACE(callto, SUBSTR(callto, INSTR(callto, '@'), 50), ''), INSTR(callto, ':') + 4, 50);
dbms_output.put_line(callto);
else
callto:=SUBSTR(REPLACE(callto, SUBSTR(callto, INSTR(callto, '@'), 50), ''), INSTR(callto, ':') +1 , 50);
end if;
process_call(srcip,username,duration,callto,accountid,subscriberid,country,cost);
dbms_output.put_line(cost);
dbms_output.put_line('trying to insert');
insert into processed_cdr values(accountid,subscriberid,srcip,username,callto,country,calltime,duration,cost) ;
dbms_output.put_line('inserted successfully');
FETCH process_cdr INTO srcip, username, callto, calltime, duration;
close process_cdr;
end;
now the problem is that
records are not getting inserted nor an error is shown
i guess i m not that much familiar with cursors
and thats creating prob
please helpHallo,
but you haven't a loop ! :-)
Try this,
(not tested)
set serveroutput on
declare
lastcall date;
srcip varchar2(50);
username varchar2(50):='9204';
duration number;
callto varchar2(50);
accountid varchar2(50);
calltime date;
subscriberid varchar2(50);
country varchar2(50);
cost varchar2(50);
CURSOR process_cdr
IS
SELECT
srcip,
username,
callto,
calltime,
duration
FROM rawcdr
WHERE calltime>lastcall;
begin
select max(calltime_gmt) into lastcall from
processed_cdr;
open process_cdr;
LOOP
fetch process_cdr into srcip,username,callto,calltime,duration;
EXIT WHEN process_cdr%NOTFOUND;
dbms_output.put_line(callto);
if (instr(callto,'00')=5) then
callto:=SUBSTR(REPLACE(callto,SUBSTR(callto, INSTR(callto, '@'), 50), ''), INSTR(callto, ':') + 3, 50);
dbms_output.put_line(callto);
elsif (instr(callto,'011')=5) then
callto:=SUBSTR(REPLACE(callto, SUBSTR(callto, INSTR(callto, '@'), 50), ''), INSTR(callto, ':') + 4, 50);
dbms_output.put_line(callto);
else
callto:=SUBSTR(REPLACE(callto, SUBSTR(callto, INSTR(callto, '@'), 50), ''), INSTR(callto, ':') +1 , 50);
end if;
process_call(srcip,username,duration,callto,accountid,subscriberid,country,cost);
dbms_output.put_line(cost);
dbms_output.put_line('trying to insert');
insert into processed_cdr values(accountid,subscriberid,srcip,username,callto,country,calltime,duration,cost) ;
dbms_output.put_line('inserted successfully');
/* Second fetch is not needed
--FETCH process_cdr INTO srcip, username, callto, calltime, duration; */
END LOOP;
close process_cdr;
COMMIT; -- eventually
end;You didn't answered - do you do COMMIT elsewhere ?
I placed COMMIT also, if you don't need it, you can comment it
Regards
Dmytro -
Hi
I want to display a message after inserting rows in table like *'you have inserted a new row successfully*'.
i am using the createinsert ADF Button to insert the rows in table.after that i am comitting it.
after commiting i want to display message for the user.for this what i need to do.
Please help me.
Sailaja.user10860137
Can you please explain me the each line in the code briefly.
+public String saveButton_action(){+
BindingContainer bindings = getBindings();
OperationBinding operationBinding = bindings.getOperationBinding("Commit");
Object result = operationBinding.execute();
+// note "!" operator has been removed from the default code.+
+if(operationBinding.getErrors().isEmpty()){+
FacesContext ctx = FacesContext.getCurrentInstance();
FacesMessage saveMsg = new FacesMessage("Record Saved Successfully");
ctx.addMessage(null,saveMsg);
+}+
return null;
+}+
And i have requirement to show the message on favcet "status bar".not in a popup window.(from the above code the message is showing in popup window. )the Layout i am using is PanelCollection.
can you tell me what i need to do.
Thanks
Sailaja.
Edited by: sj0609 on Mar 19, 2009 8:03 AM -
Inserting rows in table control(Module pool)!!
Hi,
Pls provide me with some code sample for inserting rows in a table control (module pool)...
Regards
GunjanHI
Y dont u create a TABLE CONTROL using wizard and copy the coding-
TRY THIS-
WHEN 'INSR'. "insert row
PERFORM FCODE_INSERT_ROW USING P_TC_NAME
P_TABLE_NAME.
FORM fcode_insert_row
USING P_TC_NAME TYPE DYNFNAM
P_TABLE_NAME .
&SPWIZARD: BEGIN OF LOCAL DATA----
DATA L_LINES_NAME LIKE FELD-NAME.
DATA L_SELLINE LIKE SY-STEPL.
DATA L_LASTLINE TYPE I.
DATA L_LINE TYPE I.
DATA L_TABLE_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.
FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
FIELD-SYMBOLS <LINES> TYPE I.
&SPWIZARD: END OF LOCAL DATA----
ASSIGN (P_TC_NAME) TO <TC>.
*&SPWIZARD: get the table, which belongs to the tc *
CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
*&SPWIZARD: get looplines of TableControl *
CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_LINES_NAME.
ASSIGN (L_LINES_NAME) TO <LINES>.
*&SPWIZARD: get current line *
GET CURSOR LINE L_SELLINE.
IF SY-SUBRC <> 0. " append line to table
L_SELLINE = <TC>-LINES + 1.
*&SPWIZARD: set top line *
IF L_SELLINE > <LINES>.
<TC>-TOP_LINE = L_SELLINE - <LINES> + 1 .
ELSE.
<TC>-TOP_LINE = 1.
ENDIF.
ELSE. " insert line into table
L_SELLINE = <TC>-TOP_LINE + L_SELLINE - 1.
L_LASTLINE = <TC>-TOP_LINE + <LINES> - 1.
ENDIF.
*&SPWIZARD: set new cursor line *
L_LINE = L_SELLINE - <TC>-TOP_LINE + 1.
*&SPWIZARD: insert initial line *
INSERT INITIAL LINE INTO <TABLE> INDEX L_SELLINE.
<TC>-LINES = <TC>-LINES + 1.
*&SPWIZARD: set cursor *
SET CURSOR LINE L_LINE.
ENDFORM. " FCODE_INSERT_ROW
HOpe this helps u
Regds,
Seema. -
How can we change value of a field in the Repeating Table using SharePoint Workflow 2013.
Hi
I have an InfoPath form published on a SharePoint Library. The form contains a Repeating table and after submit a workflow runs. In this workflow I want to change some values of the fields within Repeating table.
How can I do this?
Thanks.Hi,
I found a similar thread posted by you here:
http://social.technet.microsoft.com/Forums/en-US/e1fa36c1-cb5c-456d-ba40-2f26301913d2/how-to-loop-through-each-row-in-a-repeating-table-using-sharepoint-workflows?forum=sharepointgeneralprevious
I suppose both the threads are reuqesting the method to get values from repeating table via workflow, so we can focus on the issue on the other case. If there is more requestment here, let me know.
Regards,
Rebecca Tu
TechNet Community Support -
Can select, but cannot insert into oracle tables using php.
I am having trouble inserting data into a tables in oracle using PHP. I can insert into the tables using baninst1, but nothing else. I can't even insert using the tables' owner. Every time I try I get the ORA-00492 error of table or view does not exist. However, I can run a select statement just fine. So far, baninst1 is the only user that can actually do inserts. I've triple checked all the table grants and everything is fine. Also, I can copy/paste the exact insert statement into SQL*Plus and it works with the correct user. It doesn't have to be baninst1. I've tried everything I can think of. I've tried putting the table name in quotes, adding the schema name to the table, checking public synonyms, but everything appears to be ok. I would greatly appreciate any suggestions others may have.
I'm using PHP 5.2.3 with an oracle 9i DB.Here is the code that doesn't work. It works only with baninst1, no other username will work and all I do is change the my_username/my_password to something different. This is one example function where I try to do an insert, but it doesn't work on any of the tables I try.
Thanks for looking.
class Oracle {
private $oracleUser = "my_username";
private $oraclePassword = "my_password";
private $oracleDB = "MY_DB";
private $c = null;
function Connect() {
if ( !($this->c = ocilogon( $this->oracleUser, $this->oraclePassword, $this->oracleDB ) ) )
return false;
return true;
function AddNewTest($testName, $course, $section, $term, $maxAttempts, $length, $startDate, $startTime, $endDate, $endTime)
$result = "";
if( $this->c == null )
$this->Connect();
$splitIndex = strpos($course, " ");
$subjectCode = substr($course, 0, $splitIndex);
$courseNumber = substr($course, $splitIndex + 1);
$insertStatment = "insert into szbtestinfo(szbtestinfo_test_name,
szbtestinfo_course_numb,
szbtestinfo_section,
szbtestinfo_max_attempts,
szbtestinfo_length_minutes,
szbtestinfo_start,
szbtestinfo_end,
szbtestinfo_id,
szbtestinfo_subj_code,
szbtestinfo_eff_term)
values( '" . $testName .
"', '" . $courseNumber .
"', '" . $section .
"', " . $maxAttempts .
", " . $length .
", to_date('" . $startDate . " " . $startTime . "', 'MM/DD/YYYY HH24:MI')" .
", to_date('" . $endDate . " " . $endTime . "', 'MM/DD/YYYY HH24:MI')" .
", szsnexttest.nextval" .
", '" . $subjectCode .
"', '" . $term . "')";
//return $insertStatment;
$s = OCIParse($this->c, $insertStatment);
try
$result = OCIExecute($s);
catch(exception $e)
return $result;
} -
Problem in accessing mseg table using MSEG~M Index.
Hi Experts,
I am facing problem in accessing mseg table using MSEG~M Index. I used same sequence of fields and i tried with mandt field also. but it is not taking the Index and it is going for TImeout ABAP dump.
This are my codes used in different ways
1. SELECT mjahr
bwart
matnr
lifnr
dmbtr
kostl
aufnr
bukrs
FROM mseg CLIENT SPECIFIED INTO TABLE t_mseg2
WHERE mandt EQ sy-mandt AND
matnr NE SPACE AND
werks EQ p_werks AND
lgort NE '0000' AND
bwart IN (122,201,262) AND
sobkz NE '0'
%_HINTS ORACLE 'INDEX("MSEG" "MSEG~M")'.
2. SELECT mjahr
bwart
matnr
lifnr
dmbtr
kostl
aufnr
bukrs
FROM mseg INTO TABLE t_mseg2
WHERE matnr NE SPACE AND
werks EQ p_werks AND
lgort NE '0000' AND
bwart IN (122,201,262) AND
sobkz NE '0'
%_HINTS ORACLE 'INDEX("MSEG" "MSEG~M")'.
3. SELECT mjahr
bwart
matnr
lifnr
dmbtr
kostl
aufnr
bukrs
FROM mseg INTO TABLE t_mseg2
WHERE matnr NE SPACE AND
werks EQ p_werks AND
lgort NE '0000' AND
bwart IN (122,201,262) AND
sobkz NE '0'.
The above all code is not at all taking the index in Quality server .but in Development it is taking .In Quality server it is reading all datas without using the index and going Timeout ABAP dmup
Please, Suggest me some solutions.
Thanks in Advance.
Regards,
NandhaHi,
Without NE also not working out. i am facing same problem still.
SELECT bwart
matnr
lifnr
dmbtr
kostl
aufnr
FROM mseg CLIENT SPECIFIED INTO TABLE t_mseg
WHERE mandt EQ sy-mandt AND
werks EQ p_werks AND
bwart IN (122,201,262) AND
mjahr EQ p_year AND
bukrs EQ p_cc
%_HINTS ORACLE 'INDEX("MSEG" "MSEG~M")'.
Please,check and help me out from this issue.
Regards,
Nandha -
Want to insert multiple rows in table using EO
Hi,
I have one requirement where I need to insert multiple rows at once in table lets say Previous Employers.
What I am trying to do is I have created few textinputboxes and getting there values and putting in HashMap.
And manually inserting the rows to EO. I am not getting any error but the data is not populating in Table.
here is the code snap ...please suggest!!
public void updateKoelHrPreEmpVO(HashMap map)
OADBTransaction txn = getOADBTransaction();
//HashMap map = new HashMap();
KoelHrPreEmpVOImpl empVO = getKoelHrPreEmpVO1();
KoelHrPreEmpVORowImpl fetchedRow = null;
int fetchedRowCount = empVO.getFetchedRowCount();
RowSetIterator deleteIter = empVO.createRowSetIterator("deleteIter");
if (fetchedRowCount > 0)
if(txn.isLoggingEnabled(2))
txn.writeDiagnostics(this,"Removing rows from KoelHrPreEmpVO :: Current count :: " + fetchedRowCount ,2);
//System.out.println("Removing rows from KoelHrPreEmpVO :: Current count :: " +fetchedRowCount);
deleteIter.setRangeStart(0);
deleteIter.setRangeSize(fetchedRowCount-1);
for (int i = 0; i < fetchedRowCount; i++)
//System.out.println("Removing Row :: "+i);
if(txn.isLoggingEnabled(2))
txn.writeDiagnostics(this,"Removing row :: " + i ,2);
fetchedRow = (KoelHrPreEmpVORowImpl)deleteIter.getRowAtRangeIndex(i);
fetchedRow.remove();
getTransaction().commit();
deleteIter.closeRowSetIterator();
if(empVO.getRowCount() == 0) {
Row row = null;
KoelHrPreEmpVORowImpl insertRow = null;
empVO.first();
if(txn.isLoggingEnabled(2))
txn.writeDiagnostics(this,"Inserting rows to KoelHrPreEmpVO :: " ,2);
try
for(int i=1; i<=4; i++) {
insertRow = (KoelHrPreEmpVORowImpl)empVO.createRow();
insertRow.setEmployeeNumber(map.get("EmployeeNumber").toString());
insertRow.setPersonId(new Number(map.get("PersonId").toString()));
insertRow.setEmployer(map.get("Employer"+i+"").toString());
insertRow.setStartDate(Date.toDate(map.get("StartDate"+i+"").toString()));
insertRow.setEndDate(Date.toDate(map.get("EndDate"+i+"").toString()));
insertRow.setEmployer(map.get("Designation"+i+"").toString());
empVO.insertRow(insertRow);
insertRow.setNewRowState(Row.STATUS_INITIALIZED);
getTransaction().commit();
catch(SQLException ex)
ex.printStackTrace();
Regards,
Mukesh1. Pls check if the create() methos in EOImpl is in place, setting the primary key.
2. Even though we insert values in this fashion , it only gets inserted if user performs any action, like manipulates some column. Pls check if there is any mechansm to make the row dirty ( as if done by user).
Srikanth -
How to insert record in table using ADF Table
Hi,
I am developing and application in ADF .it consist 5 tables.i need to insert into 1 table that contains IDs that are reffered from other tables and on ADF Table fi i dont want to show those IDs. Can somebody provide me solution how to do that?
like i have a SkillTable - that contains attributes Resource No(number) ,module Id(number), Track id(number), skill_type(number), skill_rating(number), experience(number).
Track id is reffered from track table
Module id is reffered from module table
Resource table is reffered from resource table
skill_type and skill_rating from lookup table
and i need to insert into SkillTable using ADF Table. we dont want to show Track id,module id,codes for skill_type nad skill_rating on ADF Table instead we want to show trackname and module name ,code values for skill_type and Skill_rating .
when we create ADF table for this skill table it shows me ids but what i want is that in each row it should show resource name,modulename,track name,and for skill_type and skill_rating it should show name of skill_types and Skill_rating rather than codes for each skill_type and Skill_rating.
we tried to insert by creating view ,but didnot work.
plz provide any solution.
ThnaklsHi,
Thanks for quick reply.but let me tell u my problem in more detail.
To insert into skill_table I have created a VO that contains ResourceNo, track_id, module_id,skill_type,skill_rating,experience. And I drag it on ADF creation form and also have created read only LOV for resource_name from resorce_table, LOV for skill_type,skill_rating from Lookup table,
And mapped those LOV to resource_no,skill_type,skill_rating on insert page.
For track_id I have converted inputtextBox to SelectinputText to create databound LOV which will popup a window that contain master detail for track_table and module_table which shows all track_names in master and corresponding module_names in detail table, and on that window I have select button when we click that button selected track_id and selected module_id will get populated to insert skill page in track_id selectinputtextbox and module_Id inpiuttextbox.
Now what I want is that instead of track_id and module_id populated on insert page coz these are of id's actually and we want to show values of these id's from other tables, I need to show selected track_name and module_name over on insert page.
Not getting any idea how to do that???
Plz help. -
Understanding logminer results -- inserting row into table with CLOB field
In using log miner I have noticed that inserts into rows that contain a CLOB (I assume this applies to other LOB type fields as well, have only tested with CLOB so far) field are actually recorded as two DML entries.
--the first entry is the insert operation that inserts all values with an EMPTY_CLOB() for the CLOB field
--the second entry is the update that sets the actual CLOB value (+this is true even if the value of the CLOB field is not being set explicitly+)
This separation makes sense as there may be separate locations that the values are being stored etc.
However, what I am tripping over is the fact the first entry, the Insert, has a RowId value of 'AAAAAAAAAAAAAAAAAA' which is invalid if I attempt to use it in a flashback query such as:
SELECT * FROM PERSON AS OF SCN #####' where RowId = 'AAAAAAAAAAAAAAAAAA'The second operation, the Update of the CLOB field, has the valid RowId.
Now, again, this makes sense if the insert of the new row is not really considered "+done+" until the two steps are done. However, is there some way to group these operations together when analyzing the log contents to know that these two operations are a "+matched set+"?
Not a total deal breaker, but would be nice to know what is happening under the hood here so I don't act on any false assumptions.
Thanks for any input.
To replicate:
Create a table with CLOB field:
CREATE TABLE DEVUSER.TESTTABLE
ID NUMBER
, FULLNAME VARCHAR2(50)
, AGE NUMBER
, DESCRIPTION CLOB
);Capture the before SCN:
SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;Insert a new row in the test table:
INSERT INTO TESTTABLE(ID,FULLNAME,AGE) VALUES(1,'Robert BUILDER',35);
COMMIT;Capture the after SCN:
SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;Start logminer session with the bracketing scn values and options etc:
EXECUTE DBMS_LOGMNR.START_LOGMNR(STARTSCN=>2619174, ENDSCN=>2619191, -
OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.CONTINUOUS_MINE + -
DBMS_LOGMNR.COMMITTED_DATA_ONLY + DBMS_LOGMNR.NO_ROWID_IN_STMT + DBMS_LOGMNR.NO_SQL_DELIMITER)Query the logs for the changes in that range:
SELECT
commit_scn, xid,operation,table_name,row_id
,sql_redo,sql_undo, rs_id,ssn
FROM V$LOGMNR_CONTENTS
ORDER BY xid asc,sequence# ascResults:
2619178 0C00070028000000 START AAAAAAAAAAAAAAAAAA set transaction read write
2619178 0C00070028000000 INSERT TESTTABLE AAAAAAAAAAAAAAAAAA insert into "DEVUSER"."TESTTABLE" ...
2619178 0C00070028000000 UPDATE TESTTABLE AAAFEXAABAAALEJAAB update "DEVUSER"."TESTTABLE" set "DESCRIPTION" = NULL ...
2619178 0C00070028000000 COMMIT AAAAAAAAAAAAAAAAAA commitEdited by: 958701 on Sep 12, 2012 9:05 AM
Edited by: 958701 on Sep 12, 2012 9:07 AMScott,
Thanks for the reply.
I am inserting into the table over a database link.
I am using the new version of HTML Db (2.0)
HTML Db is connected to an Oracle 10 database I think, however the table I am trying to insert data into (via the database link) is in an Oracle 8 database - this is why we created a link to it as we couldn't have the HTML Db interacting with the Oracle 8 database directly due to compatibility problems (or so I've been told)
Simon -
Problem: insert id, when table is updated
Hello,
I have a Problem:
I have an external table which is permanently updatet and I access this table by a database link.
My problem is, that this table hasn't got an ID column,but I need one to build an interesting Application. So my idea is, to create a view in which you can see the main table through the database link and an column with an ID....
But this ID must be updatet permanently when a new row is insertet into the main table!
I hope you understand what I mean....
And I hope you can help me!
Thanks,
TimYou can use Sequence for this.
SQL> CREATE SEQUENCE SEQ_1 INCREMENT BY 1
2 /
Sequence created.And use a trigger before insert.
CREATE OR REPLACE TRIGGER TRG_TAB1_BRI
BEFORE INSERT
ON TABLE_1 -- Your table
FOR EACH ROW
BEGIN
SELECT SEQ_1.NEXTVAL
INTO :NEW.ID -- Your ID Column
FROM DUAL;
END;Sarma. -
How to insert row in table control and save the data in tables
Hi,
I have one table control i am displaying data into table control ,
my problem is : i want to display data into read mode in table control.
but when i click on insert button on the same screen i want one blank line should inserted into table control , then i want to insert some data into table control on that row , when i click the save button . the new data inserted into the table control is insert that data into ztable ,
please give me solution
main problen is how can know inserted line in table control and pass that data into ztable.Hi,
Follow the below logic,
PROCESS BEFORE OUTPUT.
MODULE STATUS_0001.
MODULE POPULATE_TABLE_CONTROL. --> Get the data from table store in
ITAB
LOOP AT GT_CTRL_LP_D516 INTO GS_WA_CTRL_LP_D516
WITH CONTROL CTRL_LP_D516
CURSOR CTRL_LP_D516-CURRENT_LINE.
The following module moves data to control
MODULE MOVE_TO_CONTROL.--> Move data from ITAB to table control
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT GT_CTRL_LP_D516.
ENDLOOP.
MODULE EXIT AT EXIT-COMMAND.
MODULE USER_COMMAND_0001. --> Here you have to take out the values from table control and update database table
Reward points if helpful.
Thanks and regards,
Mallareddy Rayapureddy,
Munich, Germany. -
Error While Inserting Data into table using OAF
Hi Experts,
I am learning OAF; i am trying into insert the data into table using OAF. I followed the below procedure.
My table(OLF_TEST_TBL) Columns:
EmpID (Number), Ename(VARCHAR2 100), Sal Number, and who columns.
1. created Application Module (AM).
package: oracle.apps.mfg.simplepg.server
name: oaf_test_tbl_am
2. created simple page
name:EmployeePG
package:oracle.apps.mfg.simplepg.webui
3. Assigned the Application Module to Page
4. Created Entity Object(EO)
name:oaf_test_tbl_eo
package:oracle.apps.mfg.simplepg.schema.server
schema:apps
table:OLF_TEST_TBL
note:
1. EMPID column is selected as primary key
2. selected create method, remove method and validation method.
3.checked generate default view object
VO:
name:olf_test_tbl_vo
note: Entity Object was assigned to VO
Coming To page:
page main region:EmployeeMainRN
1.under main region i created one more region using wizard
selected AM and VO, region style-default single column
2. under main region i created one more region
region style- pagebuttonbar, ID:pagebutoonsRN
3. under pagebuttonRN, created two submit buttons(ID:SUBMIT, ID:CANCEL).
In AM java page:
created a method to insert row and for commit.
Insert Method:
public void insertrow(){
OAViewObject vo=(OAViewObject)getoaf_test_tbl_vo1();
if(!vo.isPreparedForExecution()){
vo.executeQuery();
Row row=vo.createRow();
vo.insertRow(row);
row.setNewRowState(Row.STATUS_INITIALIZED);
Commit Method:
public void savaDataTooaftesttable(){
getDBTransaction().commit();
In EmployeeMainRN, created a controller.
In this controller process request method, 'insertrow' method was called.
import oracle.apps.fnd.framework.OAApplicationModule;
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
super.processRequest(pageContext, webBean);
if (!pageContext.isFormSubmission())
OAApplicationModule am = pageContext.getApplicationModule(webBean);
am.invokeMethod("insertrow");
To commit the transaction when SUBMIT button pressed, commit method was called in process form request method.
import oracle.apps.fnd.framework.OAViewObject;
public void processformRequest(OAPageContext pageContext, OAWebBean webBean)
super.processFormRequest(pageContext, webBean);
OAApplicationModule am = pageContext.getApplicationModule(webBean);
if (pageContext.getParameter("SUBMIT") != null)
am.invokemethod("savaDataTooaftesttable");
Error After clicking the submit button_
I ran the page, page was opened successfully. Once i enter data and click submit button, it's giving the following error.
The requested page contains stale data. This error could have been caused through the use of the browser's navigation buttons (the browser Back button, for example). If the browser's navigation buttons were not used, this error could have been caused by coding mistakes in application code. Please check Supporting the Browser Back Button developer guide - View Object Primary Key Comparison section to review the primary causes of this error and correct the coding mistakes.
Cause:
The view object oaf_test_tbl_am.oaf_test_tbl_vo1700_oaf_test_tbl_vo1_practice_test_prc1_oracle_apps_mfg_simplepg_server_oaf_test_tbl_am.oaf_test_tbl_vo1 contained no record. The displayed records may have been deleted, or the current record for the view object may not have been properly initialized.
To proceed, please select the Home link at the top of the application page to return to the main menu. Then, access this page again using the application's navigation controls (menu, links, and so on) instead of using the browser's navigation controls like Back and Forward.
Experts, Kindly help me why i am getting this error.
Awating your replies.
Thanks in advance.If you dont want to create message. You can throw exception like below as well
throw new OAException("Emp Id is "+empId+" and employee name is "+empName, OAException.CONFIRMATION);Thanks
--Anil -
Inserting rows in table while logging errors...Urgent
Hi all,
i want to insert rows from temp table to main table.
if temp table contains 100 rows.then all rows must be inserted
in main table.if their is any exception while insertion,
insertion must nt stop and erroring rows along with error no must be inserted in
error log table.
How to do this ?
i used forall save exceptions to achieve this .
but ws able to save only error no. but not errroing rows in error log table.
is there any efficient way to achieve this?
can forall be modified in way that it inserts erroring rows also?????Hi,
1.) does dbms_errorlog works fine in this case?If all of your 807 tables having same columns then i think it will work (NOT TESTED).
By the way are you also trying to insert rows for all tese 807 tables in a single PL/SQL block?
Please post how you are trying to insert then we can think about it,
Oracle ERROR_LOG table allows us to have any number of columns.
From the Oracle Docs:
The number of columns in this part of the error logging table can be zero, one, or more, up to the number of columns in the DML table. If a column exists in the error logging table that has the same name as a column in the DML table, the corresponding data from the offending row being inserted is written to this error logging table column. If a DML table column does not have a corresponding column in the error logging table, the column is not logged. If the error logging table contains a column with a name that does not match a DML table column, the column is ignored.
Regards -
How to insert into a table using a procedure in a trigger
I have following trigger and based on the some condition, it should inser a row in to a table using the procedure:
CREATE OR REPLACE TRIGGER RSSC.RR_SERV_ADD_ON_REQ_bu before update on RSSC.RR_SERV_ADD_ON_REQ
for each row
DECLARE
lr_appr_trans_hdr APPR_TRANS_HDR%ROWTYPE;
-- Inserting a row into APPR_TRANS_HDR table
lr_appr_trans_hdr.apth_ref_system := 'RSAO';
lr_appr_trans_hdr.apth_xref_col_name := 'RSAO_ADD_ON_REQ_NUM';
lr_appr_trans_hdr.apth_xref_id := :NEW.RSAO_ADD_ON_REQ_NUM;
lr_appr_trans_hdr.apth_trans_srce := 'I';
lr_appr_trans_hdr.apth_balance_amt := :NEW.RSAO_TOT_AMT;
lr_appr_trans_hdr.apth_is_finance_adj := 'N';
SPI_APPR_TRANS_HDR (
lr_appr_trans_hdr.apth_id
,lr_appr_trans_hdr.apth_create_dt
,lr_appr_trans_hdr.apth_create_user_id
,lr_appr_trans_hdr.apth_update_dt
,lr_appr_trans_hdr.apth_update_user_id
,lr_appr_trans_hdr.apth_ref_system
,lr_appr_trans_hdr.apth_xref_col_name
,lr_appr_trans_hdr.apth_xref_id
,lr_appr_trans_hdr.apth_trans_srce
,lr_appr_trans_hdr.apth_udc_name_cd
,lr_appr_trans_hdr.apth_udc_acct_num
,lr_appr_trans_hdr.apth_level1_apprvl_stat
,lr_appr_trans_hdr.apth_level1_apprvl_dt
,lr_appr_trans_hdr.apth_level1_apprvr_id
,lr_appr_trans_hdr.apth_level2_apprvl_stat
,lr_appr_trans_hdr.apth_level2_apprvl_dt
,lr_appr_trans_hdr.apth_level2_apprvr_id
,lr_appr_trans_hdr.apth_received_dt
,lr_appr_trans_hdr.apth_balance_amt
,lr_appr_trans_hdr.apth_cust_name
,lr_appr_trans_hdr.apth_sent_dt
,lr_appr_trans_hdr.apth_wbs_element
,lr_appr_trans_hdr.apth_gl_acct_num
,lr_appr_trans_hdr.apth_is_finance_adj );
When I use the above, it is saying wrong number of argument or type.
When I use the following instead, I am getting :NEW.APTH_ID must be declared.
SPI_APPR_TRANS_HDR('APPR_TRANS_HDR',to_char(:NEW.APTH_ID),'APTH_ID',:OLD.APTH_ID,:NEW.APTH_ID);
How can use the procedure in a trigger.
Following is the table structure:
Column Name Data Type Column Comments
APTH_ID NUMBER(16) Computed unique identified per large table standards (yyyymmddnnnnnnnn)
APTH_CREATE_DT DATE sysdate
APTH_CREATE_USER_ID VARCHAR2(65) ‘conv’
APTH_UPDATE_DT DATE sysdate
APTH_UPDATE_USER_ID VARCHAR2(65) ‘conv’
APTH_REF_SYSTEM VARCHAR2(4) ‘RSAO’
CPA_PREM_NUM NUMBER(13,0) NULL
RSR_REQ_NUM NUMBER(16) NULL
RSAO_ADD_ON_REQ_NUM NUMBER(16) rsao_add_on_req_num
APTH_TRANS_SRCE VARCHAR2(2) ‘I’
APTH_LDC_NAME_CD VARCHAR2(4) NULL
APTH_LDC_ACCT_NUM VARCHAR2(25) NULL
APTH_LEVEL1_APPROVAL_STAT VARCHAR2(1) NULL
APTH_LEVEL1_APPROVAL_DT DATE NULL.
APTH_LEVEL1_APPROVAL_ID VARCHAR2(30) NULL
APTH_LEVEL2_APPROVAL_STAT VARCHAR2(1) NULL
APTH_LEVEL2_APPROVAL_DT DATE NULL.
APTH_LEVEL2_APPROVAL_ID VARCHAR2(30) NULL
APTH_RECEIVED_DT DATE NULL
APTH_BALANCE_AMT NUMBER(11,2) RR_SERV_ADD_ON_REQ.rsao_tot_amt – amount previously extracted to sap
APTH_CUST_NAME VARCHAR2(65) NULL
APTH_SENT_DT DATE NULL
APTH_WBS_ELEMENT VARCHAR2(25) NULL
APTH_GL_ACCT_NUM VARCHAR2(15) NULL
APTH_IS_FINANC_ADJ VARCHAR2(1) ‘N’
Edited by: user652807 on Sep 3, 2008 4:51 PMIt appears you're missing the format mask in the TO_CHAR, ...
TO_CHAR(:new.apth,'YYYYMMHR24MISS')
The full code would help a bit more.
Maybe you are looking for
-
Why background job sometimes doesn't create something while manually we can
Hi friends, Can you help me to understand why Background job doesn't create Outbound Delivery where as manually we can create using VL10B with parameters same as that of the background job variant? The background job calls the program for VL10B. Than
-
Ugly (non-antialiased) Fonts
Hi, I am annoyed with Xorg 100/75 dpi fonts that is being used by some sites like this: http://www.linuxtimes.net/modules.php?n - le&sid=831 I use firefox 1.0.4 In other distro, this does not happen. And in kcontrol fonts manager, I see a lot of non-
-
Default Functional Area in Sales Order Line Items
Hi, Is there any user exit that can be used to default Functional Area in Sales Order Line Items. I tried mv45afzz but not working. Any idea and do let me know the field or structure effected. Thanks.
-
Hi, I am using form 6i, the following coding compiling fine and executing fine but all (about 30 poplist) Empty. What Happening? Loop sqltxt := 'Select '||:System.Current_item||','||:System.Current_item|| ' from item_master_base
-
No Wi-Fi on 2nd gen iPod Touch
I just opened a two year old iPod Toch, 2nd gen. after setting up on iTunes, it prompted to update to version 4.2.1, Wi-fi will not work. It does not even enable you to toggle it on/off. Wi-fi is grey and faint, Can anyone help? Ive reset Networ