Home » Developer & Programmer » Forms » unable to save the changes in the form
unable to save the changes in the form [message #424815] |
Tue, 06 October 2009 02:13 |
deepthi412
Messages: 2 Registered: September 2009 Location: bangalore
|
Junior Member |
|
|
I have a seeded form I have personalized it so that I open a custom form from that.That custom form displays the details from the seeded form.the custom form has a save button.This is the query i have written for when-button-pressed trigger.DECLARE
CNT NUMBER;
CNT1 NUMBER;
luser_id NUMBER (15);
BEGIN
SELECT COUNT(*)
INTO CNT
FROM LTK_DIS57F4_HEADER
WHERE FORM_ID=:LTK_DIS57F4_HEADER.FORM_ID;
luser_id :=TO_NUMBER(FND_PROFILE.VALUE('USER_ID'));
IF CNT =0 THEN
-- luser_id :=TO_NUMBER(FND_PROFILE.VALUE('USER_ID'));
INSERT
INTO LTK_DIS57F4_HEADER
(
TRX_NUMBER ,
FORM_ID ,
VENDOR_ID ,
VENDOR_SITE_ID ,
ORGANIZATION_ID ,
LOCATION_ID ,
FORM_NUMBER ,
PO_HEADER_ID ,
FIN_YEAR ,
LAST_UPDATE_DATE,
LAST_UPDATED_BY ,
CREATION_DATE ,
CREATED_BY
)
VALUES
(
:LTK_DIS57F4_HEADER.TRX_NUMBER ,
:LTK_DIS57F4_HEADER.FORM_ID ,
:LTK_DIS57F4_HEADER.VENDOR_ID ,
:LTK_DIS57F4_HEADER.VENDOR_SITE_ID ,
:LTK_DIS57F4_HEADER.ORGANIZATION_ID,
:LTK_DIS57F4_HEADER.LOCATION_ID ,
:LTK_DIS57F4_HEADER.FORM_NUMBER ,
:LTK_DIS57F4_HEADER.PO_HEADER_ID ,
:LTK_DIS57F4_HEADER.FIN_YEAR ,
SYSDATE ,
luser_id ,
SYSDATE ,
luser_id
);
SELECT COUNT(*)
INTO cnt1
FROM ja_in_57f4_lines
WHERE form_id=:LTK_DIS57F4_HEADER.FORM_ID;
FOR c IN 1..cnt1
LOOP
INSERT
INTO LTK_DIS57F4_LINES
(
TRX_NUMBER ,
FORM_ID ,
ITEM_ID ,
ITEM_UOM ,
REQUIRED_QTY ,
DISPATCHED_QTY ,
BALANCE_QTY ,
LAST_UPDATE_DATE,
LAST_UPDATED_BY ,
CREATION_DATE ,
CREATED_BY ,
ITEM_CODE ,
USE_EXCESS_QTY
)
VALUES
(
:LTK_DIS57F4_HEADER.TRX_NUMBER ,
:LTK_DIS57F4_HEADER.FORM_ID ,
:LTK_DIS57F4_LINES.ITEM_ID ,
:LTK_DIS57F4_LINES.ITEM_UOM ,
:LTK_DIS57F4_LINES.REQUIRED_QTY ,
:LTK_DIS57F4_LINES.DISPATCHED_QTY,
:LTK_DIS57F4_LINES.BALANCE_QTY ,
SYSDATE ,
luser_id ,
SYSDATE ,
luser_id ,
:LTK_DIS57F4_LINES.ITEM_CODE ,
:LTK_DIS57F4_LINES.USE_EXCESS_QTY
);
next_record;
END LOOP;
COMMIT;
first_record;
ELSE
SELECT COUNT(*)
INTO cnt
FROM LTK_DIS57F4_LINES
WHERE form_id=:LTK_DIS57F4_HEADER.FORM_ID;
FOR c IN 1..cnt1
LOOP
UPDATE LTK_DIS57F4_LINES
SET DISPATCHED_QTY=:LTK_DIS57F4_LINES.DISPATCHED_QTY,
BALANCE_QTY =:LTK_DIS57F4_LINES.BALANCE_QTY ,
USE_EXCESS_QTY =:LTK_DIS57F4_LINES.USE_EXCESS_QTY
WHERE FORM_ID =:LTK_DIS57F4_HEADER.FORM_ID
AND ITEM_CODE =:LTK_DIS57F4_LINES.ITEM_CODE;
NEXT_RECORD;
END LOOP;
COMMIT;
END IF;
END; when I open the form and save it for the first time it saves without any error.But when I save it for the second time making changes.It gives the error APP-FND-01206.this record already exists error
[Updated on: Tue, 06 October 2009 03:56] by Moderator Report message to a moderator
|
|
|
Re: unable to save the changes in the form [message #424846 is a reply to message #424815] |
Tue, 06 October 2009 04:00 |
cookiemonster
Messages: 13938 Registered: September 2008 Location: Rainy Manchester
|
Senior Member |
|
|
First off, when posting code it helps a lot to format it and use code tags, because what you've got here is unreadable. If you don't know how to use code tags see the orafaq forum guide.
Judging from the error message I assume this is a unique key violation. Since I don't know what the unique keys are it's hard to say what the problem is. Really you should debug this and work out which table is giving the error and then tell us what the keys on that table are.
However this looks suspicious:
SELECT COUNT(*) INTO cnt1
FROM ja_in_57f4_lines
WHERE form_id=:LTK_DIS57F4_HEADER.FORM_ID;
FOR c IN 1..cnt1 LOOP
INSERT INTO LTK_DIS57F4_LINES( TRX_NUMBER,FORM_ID,ITEM_ID,ITEM_UOM,REQUIRED_QTY,DISPATCHED_QTY,BALANCE_QTY,
LAST_UPDATE_DATE,LAST_UPDATED_BY,CREATION_DATE,CREATED_BY,ITEM_CODE,USE_EXCESS_QTY)
VALUES( :LTK_DIS57F4_HEADER.TRX_NUMBER,
:LTK_DIS57F4_HEADER.FORM_ID,
:LTK_DIS57F4_LINES.ITEM_ID,
:LTK_DIS57F4_LINES.ITEM_UOM,
:LTK_DIS57F4_LINES.REQUIRED_QTY,
:LTK_DIS57F4_LINES.DISPATCHED_QTY,
:LTK_DIS57F4_LINES.BALANCE_QTY,
SYSDATE,
luser_id,
SYSDATE,
luser_id,
:LTK_DIS57F4_LINES.ITEM_CODE,
:LTK_DIS57F4_LINES.USE_EXCESS_QTY);
next_record;
end loop;
commit;
first_record;
It appears that unless the number of records in your LTK_DIS57F4_LINES datablock is equal to the count from the query this will probably give a unique key error. I suspect it's also missing a first_record command.
|
|
|
Goto Forum:
Current Time: Fri Sep 20 06:30:07 CDT 2024
|