Home » Developer & Programmer » Forms » FRM 40102 Records must be inserted or deleted first (forms6i)
FRM 40102 Records must be inserted or deleted first [message #517628] Tue, 26 July 2011 22:57 Go to next message
rajendaroracle
Messages: 80
Registered: May 2011
Location: India
Member

Hi,

How to avoid this error.
FRM 40102 Records must be inserted or deleted first

i have used next_record.If i remove this it is working.but i need to use next_record built in.
Re: FRM 40102 Records must be inserted or deleted first [message #517630 is a reply to message #517628] Wed, 27 July 2011 00:04 Go to previous messageGo to next message
Littlefoot
Messages: 21818
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
Maybe you do, but not twice (or more). It appears that you are trying to navigate to the second empty record, which is not allowed. First you have to populate the current one, then move on.

Though, if I'm wrong, perhaps you should post code you used so that we'd see what is going on.
Re: FRM 40102 Records must be inserted or deleted first [message #517637 is a reply to message #517630] Wed, 27 July 2011 00:46 Go to previous messageGo to next message
rajendaroracle
Messages: 80
Registered: May 2011
Location: India
Member

	BEGIN
		GO_BLOCK('XXSS_PO_REQUISITION_TEMP');
		FIRST_RECORD;
		IF :SYSTEM.LAST_RECORD= 'TRUE' THEN
		BEGIN
  	UPDATE XXSS_PO_REQUISITION_TEMP
					 SET LINE_NO = :XXSS_PO_REQUISITION_TEMP.LINE_NO,
					   ITEM_CODE = :XXSS_PO_REQUISITION_TEMP.ITEM_CODE,
			ITEM_DESCRIPTION = :XXSS_PO_REQUISITION_TEMP.ORACLE_ITEMDESC,
					         UOM = :XXSS_PO_REQUISITION_TEMP.UOM,
					    QUANTITY = :XXSS_PO_REQUISITION_TEMP.QUANTITY,
					NEED_BY_DATE = :XXSS_PO_REQUISITION_TEMP.NEED_BY_DATE,
					     PROJECT = :XXSS_PO_REQUISITION_TEMP.PROJECT,
					   TASK_NAME = :XXSS_PO_REQUISITION_TEMP.TASK_NAME,
					       BUYER = :CONTROL.BUYER,
					    REQ_TYPE = :CONTROL.REQ_TYPE,
					      STATUS = :CONTROL.STATUS,
	   ORGANIZATION_CODE = :CONTROL.ORG_CODE,                      
					    LOCATION = :CONTROL.LOCATION,
					SUBINVENTORY = :CONTROL.SUBINVENTORY,		 
					  CREATED_BY = FND_GLOBAL.USER_ID,
				 CREATION_DATE = SYSDATE,
			 LAST_UPDATED_BY = FND_GLOBAL.USER_ID,
		 LAST_UPDATED_DATE = SYSDATE,
		LAST_UPDATED_LOGIN = FND_GLOBAL.USER_ID,
		       LOADED_FLAG = 'P'
			           WHERE LOADED_FLAG = 'P';
	
  STANDARD.COMMIT;
  END;
	END IF;
	END;
-----------SUBMITT REQUEST--------------
     DECLARE
    	 L_REQUESTID   NUMBER ;
       V_REQ_NO      NUMBER(20);
       V_RETURN      BOOLEAN;
       V_PHASE       VARCHAR2(10);
       V_STATUS      VARCHAR2(10);
       V_DEV_PHASE   VARCHAR2(10);
       V_DEV_STATUS  VARCHAR2(10);
       V_MESSAGE     VARCHAR2(10);
       V_REC_NUMBER  NUMBER;
           
    BEGIN
    
    	 L_REQUESTID := FND_REQUEST.SUBMIT_REQUEST('PO',
					                                          'XXSSREQINTERFACE',  
					                                          'XXSS Interface Prog',  
                                                     SYSDATE,
                                                     FALSE,                                                  
																										 CHR(0),
																										 '', '', '', '', '', '', '', '', '',
                                                     '', '' ,'' ,'', '', '', '', '', '', '',
                                                     '', '' ,'' ,'', '', '', '', '', '', '',
                                                     '', '' ,'' ,'', '', '', '', '', '', '',
                                                     '', '' ,'' ,'', '', '', '', '', '', '',
                                                     '', '' ,'' ,'', '', '', '', '', '', '',
                                                     '', '' ,'' ,'', '', '', '', '', '', '',
                                                     '', '' ,'' ,'', '', '', '', '', '', '',
                                                     '', '' ,'' ,'', '', '', '', '', '', '',
                                                     '', '' ,'' ,'', '', '', '', '', '', ''
                                                   );
                                                  STANDARD.COMMIT;
															FND_MESSAGE.SET_STRING('Request Id:'||L_REQUESTID);
															FND_MESSAGE.SHOW;
														
				V_RETURN := FND_CONCURRENT.WAIT_FOR_REQUEST(L_REQUESTID,
                                                    60,
                                                    0,
                                                    V_PHASE,
                                                    V_STATUS,
                                                    V_DEV_PHASE,
                                                    V_DEV_STATUS,
                                                    V_MESSAGE);
         FOR J IN 1.. :PARAMETER.RECORD_COUNT LOOP
		   	 			   	 
		   	 	IF :XXSS_PO_REQUISITION_TEMP.REQUISITION_CHECKBOX='Y' THEN 
		  BEGIN
					  SELECT PRHL.SEGMENT1
						  INTO :XXSS_PO_REQUISITION_TEMP.REQ_NUMBER
						  FROM FND_CONCURRENT_REQUESTS FCR ,
						       PO_REQUISITION_HEADERS_ALL PRHL
						 WHERE FCR.REQUEST_ID=PRHL.REQUEST_ID
						   AND FCR.PARENT_REQUEST_ID=L_REQUESTID;
						  	 		  					       				         
			END;
/*-------FRM 40102 RECORDS MUST BE INSERTED OR DELETED FIRST [MESSAGE #517630 IS A REPLY TO MESSAGE #517628]----------*/		
--	IF :SYSTEM.LAST_RECORD= 'TRUE' THEN
--		   	EXIT;
--		  ELSIF :SYSTEM.LAST_RECORD= 'FALSE' THEN
		  	NEXT_RECORD; 
--			END IF; 
			
		  	  --NEXT_RECORD;
		   	 	 ELSIF :XXSS_PO_REQUISITION_TEMP.REQUISITION_CHECKBOX IS NULL THEN
		   	 	 NEXT_RECORD;	   	 			   
		   	 			 		         
		   	 	 END IF;
		   	 	 
	  END LOOP;
   
    FIRST_RECORD;
    GO_BLOCK('XXSS_PO_REQUISITION_TEMP');
    GO_RECORD(:CONTROL.F_CURRENT_RECORD);
    
     EXCEPTION
     	WHEN OTHERS THEN
     	NULL;
   			    	--FND_MESSAGE.SET_STRING('Check the errors');
				      --FND_MESSAGE.SHOW;
     END;
     
     
	GO_RECORD(:CONTROL.F_CURRENT_RECORD);	 
	IF  :XXSS_PO_REQUISITION_TEMP.REQ_NUMBER IS NULL 
	AND :XXSS_PO_REQUISITION_TEMP.REQUISITION_CHECKBOX = 'Y'THEN
			 
		BEGIN
			GO_BLOCK('XXSS_PO_REQUISITION_ERRORS');
			EXECUTE_QUERY;
		END;
		
	END IF;
	
Re: FRM 40102 Records must be inserted or deleted first [message #517644 is a reply to message #517637] Wed, 27 July 2011 01:04 Go to previous messageGo to next message
Littlefoot
Messages: 21818
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
First, remove WHEN OTHERS THEN NULL because there's a possibility that it is hiding an error which might reveal new information.

Moreover, this code is an utter mess. Please, properly format it (take care about indentation) and repost it. The way it is now, it is unreadable.

Re: FRM 40102 Records must be inserted or deleted first [message #517653 is a reply to message #517644] Wed, 27 July 2011 02:06 Go to previous messageGo to next message
rajendaroracle
Messages: 80
Registered: May 2011
Location: India
Member

In exception No_data-found error is coming..
Re: FRM 40102 Records must be inserted or deleted first [message #517654 is a reply to message #517653] Wed, 27 July 2011 02:08 Go to previous messageGo to next message
Littlefoot
Messages: 21818
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
OK.

When do you plan to post nicely formatted code?

[Updated on: Wed, 27 July 2011 02:08]

Report message to a moderator

Re: FRM 40102 Records must be inserted or deleted first [message #517662 is a reply to message #517654] Wed, 27 July 2011 03:15 Go to previous messageGo to next message
rajendaroracle
Messages: 80
Registered: May 2011
Location: India
Member

Quote:
BEGIN
GO_BLOCK('XXSS_PO_REQUISITION_TEMP');
FIRST_RECORD;
IF :SYSTEM.LAST_RECORD= 'TRUE' THEN
BEGIN
UPDATE XXSS_PO_REQUISITION_TEMP
SET LINE_NO = :XXSS_PO_REQUISITION_TEMP.LINE_NO,
ITEM_CODE = :XXSS_PO_REQUISITION_TEMP.ITEM_CODE,
ITEM_DESCRIPTION = :XXSS_PO_REQUISITION_TEMP.ORACLE_ITEMDESC,
UOM = :XXSS_PO_REQUISITION_TEMP.UOM,
QUANTITY = :XXSS_PO_REQUISITION_TEMP.QUANTITY,
NEED_BY_DATE = :XXSS_PO_REQUISITION_TEMP.NEED_BY_DATE,
PROJECT = :XXSS_PO_REQUISITION_TEMP.PROJECT,
TASK_NAME = :XXSS_PO_REQUISITION_TEMP.TASK_NAME,
BUYER = :CONTROL.BUYER,
REQ_TYPE = :CONTROL.REQ_TYPE,
STATUS = :CONTROL.STATUS,
ORGANIZATION_CODE = :CONTROL.ORG_CODE,
LOCATION = :CONTROL.LOCATION,
SUBINVENTORY = :CONTROL.SUBINVENTORY,
CREATED_BY = FND_GLOBAL.USER_ID,
CREATION_DATE = SYSDATE,
LAST_UPDATED_BY = FND_GLOBAL.USER_ID,
LAST_UPDATED_DATE = SYSDATE,
LAST_UPDATED_LOGIN = FND_GLOBAL.USER_ID,
LOADED_FLAG = 'P'
WHERE LOADED_FLAG = 'P';

STANDARD.COMMIT;
END;
END IF;
END;
-----------SUBMITT REQUEST--------------
DECLARE
L_REQUESTID NUMBER ;
V_REQ_NO NUMBER(20);
V_RETURN BOOLEAN;
V_PHASE VARCHAR2(10);
V_STATUS VARCHAR2(10);
V_DEV_PHASE VARCHAR2(10);
V_DEV_STATUS VARCHAR2(10);
V_MESSAGE VARCHAR2(10);
V_REC_NUMBER NUMBER;

BEGIN

L_REQUESTID := FND_REQUEST.SUBMIT_REQUEST('PO',
'XXSSREQINTERFACE',
'XXSS Interface Prog',
SYSDATE,
FALSE,
CHR(0),
'', '', '', '', '', '', '', '', '',
'', '' ,'' ,'', '', '', '', '', '', '',
'', '' ,'' ,'', '', '', '', '', '', '',
'', '' ,'' ,'', '', '', '', '', '', '',
'', '' ,'' ,'', '', '', '', '', '', '',
'', '' ,'' ,'', '', '', '', '', '', '',
'', '' ,'' ,'', '', '', '', '', '', '',
'', '' ,'' ,'', '', '', '', '', '', '',
'', '' ,'' ,'', '', '', '', '', '', '',
'', '' ,'' ,'', '', '', '', '', '', ''
);
STANDARD.COMMIT;
FND_MESSAGE.SET_STRING('Request Id:'||L_REQUESTID);
FND_MESSAGE.SHOW;

V_RETURN := FND_CONCURRENT.WAIT_FOR_REQUEST(L_REQUESTID,
60,
0,
V_PHASE,
V_STATUS,
V_DEV_PHASE,
V_DEV_STATUS,
V_MESSAGE);
FOR J IN 1.. :PARAMETER.RECORD_COUNT LOOP

IF :XXSS_PO_REQUISITION_TEMP.REQUISITION_CHECKBOX='Y' THEN
BEGIN
SELECT PRHL.SEGMENT1
INTO :XXSS_PO_REQUISITION_TEMP.REQ_NUMBER
FROM FND_CONCURRENT_REQUESTS FCR ,
PO_REQUISITION_HEADERS_ALL PRHL
WHERE FCR.REQUEST_ID=PRHL.REQUEST_ID
AND FCR.PARENT_REQUEST_ID=L_REQUESTID;

END;
/*-------FRM 40102 RECORDS MUST BE INSERTED OR DELETED FIRST [MESSAGE #517630 IS A REPLY TO MESSAGE #517628]----------*/
-- IF :SYSTEM.LAST_RECORD= 'TRUE' THEN
-- EXIT;
-- ELSIF :SYSTEM.LAST_RECORD= 'FALSE' THEN
NEXT_RECORD;
-- END IF;

--NEXT_RECORD;
ELSIF :XXSS_PO_REQUISITION_TEMP.REQUISITION_CHECKBOX IS NULL THEN
NEXT_RECORD;

END IF;

END LOOP;

FIRST_RECORD;
GO_BLOCK('XXSS_PO_REQUISITION_TEMP');
GO_RECORD(:CONTROL.F_CURRENT_RECORD);

EXCEPTION
WHEN OTHERS THEN
NULL;
--FND_MESSAGE.SET_STRING('Check the errors');
--FND_MESSAGE.SHOW;
END;


GO_RECORD(:CONTROL.F_CURRENT_RECORD);
IF :XXSS_PO_REQUISITION_TEMP.REQ_NUMBER IS NULL
AND :XXSS_PO_REQUISITION_TEMP.REQUISITION_CHECKBOX = 'Y'THEN

BEGIN
GO_BLOCK('XXSS_PO_REQUISITION_ERRORS');
EXECUTE_QUERY;
END;

END IF;

Re: FRM 40102 Records must be inserted or deleted first [message #517664 is a reply to message #517662] Wed, 27 July 2011 03:26 Go to previous messageGo to next message
Littlefoot
Messages: 21818
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
My bad, should have told you earlier.

But wait! I already told you! You just won't listen, eh?
Re: FRM 40102 Records must be inserted or deleted first [message #517681 is a reply to message #517664] Wed, 27 July 2011 04:50 Go to previous message
Littlefoot
Messages: 21818
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
I saw you created several "testing" messages. None of them was a success. You need to use [code] and [/code] tags - the ones you used in the second message you posted in this topic. That's perfectly OK.

You need to INDENT code, so that it is clearly visible which statements belong to which section. For example, this is what you did:
         FOR J IN 1.. :PARAMETER.RECORD_COUNT LOOP
		   	 			   	 
		   	 	IF :XXSS_PO_REQUISITION_TEMP.REQUISITION_CHECKBOX='Y' THEN 
		  BEGIN
					  SELECT PRHL.SEGMENT1
That is wrong - it is difficult to follow what you meant to say. You need to format it (using a formatting tool, if you have one, or manually). This is how it should look like:
FOR J IN 1.. :PARAMETER.RECORD_COUNT LOOP
  IF :XXSS_PO_REQUISITION_TEMP.REQUISITION_CHECKBOX='Y' THEN 
     BEGIN
       SELECT PRHL.SEGMENT1

If you used <Tab> to indent code, it might not be displayed correctly so, if you really expect someone to assist, put some effort in making your request understandable. If you ignore to do that, people will ignore your questions and answer the ones that are easy to read and understand. Basically, it's up to you. Now it makes at least 2 your questions that remained unanswered, simply because you refuse to post them properly. What a shame!
Previous Topic: Applet is not Opening in Browser
Next Topic: How to hide prompt text in forms?
Goto Forum:
  


Current Time: Sun Sep 08 23:00:38 CDT 2024