DBA Data[Home] [Help]

PACKAGE BODY: APPS.AP_FIX_ACCTG_PKG

Source


1 PACKAGE BODY AP_FIX_ACCTG_PKG as
2 /* $Header: apfixacb.pls 115.2 2002/03/13 18:15:07 pkm ship      $ */
3 
4   PROCEDURE Update_Row(
5                    X_Rowid                 IN VARCHAR2,
6                    X_Code_Combination_Id   IN NUMBER,
7                    X_Description           IN VARCHAR2,
8                    X_Last_Update_Date      IN DATE,
9                    X_Last_Updated_By       IN NUMBER,
10                    X_Last_Update_Login     IN NUMBER ,
11                    X_Calling_Sequence      IN VARCHAR2,
12                    X_Accounting_Error_Code IN VARCHAR2 -- Bug 1369125
13                       ) IS
14     Current_Calling_Sequence    VARCHAR2(2000);
15     debug_info                  VARCHAR2(100);
16   BEGIN
17 --  Update the calling sequence
18 --
19     Current_Calling_Sequence := 'AP_FIX_ACCTG_PKG.UPDATE_ROW<-' ||
20                                  X_Calling_Sequence;
21 
22     debug_info := 'Update ap_ae_lines';
23 
24     UPDATE ap_ae_lines
25     SET    code_combination_id   = X_Code_Combination_Id,
26            description           = X_Description,
27            last_update_date      = X_Last_Update_Date,
28            last_updated_by       = X_Last_Updated_By,
29            last_update_login     = X_Last_Update_Login,
30            Accounting_Error_Code = X_Accounting_Error_Code -- Bug 1369125
31     WHERE  Rowid = X_Rowid;
32 
33     IF (SQL%NOTFOUND) THEN
34       RAISE NO_DATA_FOUND;
35     END IF;
36 
37     EXCEPTION
38       WHEN OTHERS THEN
39         IF (SQLCODE <> -20001) THEN
40           FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
41           FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
42           FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',Current_Calling_Sequence);
43           FND_MESSAGE.SET_TOKEN('PARAMETERS','ROWID = ' || X_Rowid );
44           FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
45         END IF;
46         APP_EXCEPTION.RAISE_EXCEPTION;
47 
48   END Update_Row;
49 
50 
51   PROCEDURE Lock_Row(
52                  X_Rowid               IN VARCHAR2,
53                  X_Code_Combination_Id IN NUMBER,
54                  X_Description         IN VARCHAR2,
55                  X_Calling_Sequence    IN VARCHAR2
56                      ) IS
57     CURSOR C IS
58         SELECT   *
59         FROM     ap_ae_lines
60         WHERE    rowid = X_Rowid
61         FOR UPDATE of code_combination_id, description NOWAIT;
62     Recinfo                     C%ROWTYPE;
63     Current_Calling_Sequence    VARCHAR2(2000);
64     debug_info                  VARCHAR2(100);
65   BEGIN
66 --  Update the calling sequence
67 --
68     Current_Calling_Sequence := 'AP_FIX_ACCTG_PKG.LOCK_ROW<-' ||
69                                  X_Calling_Sequence;
70 
71     debug_info := 'Open cursor C';
72     OPEN C;
73     debug_info := 'Fetch cursor C';
74     FETCH C INTO Recinfo;
75     IF (C%NOTFOUND) THEN
76       debug_info := 'Close cursor C - ROW NOTFOUND';
77       CLOSE C;
78       FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_DELETED');
79       APP_EXCEPTION.RAISE_EXCEPTION;
80     END IF;
81     debug_info := 'Close cursor C';
82     CLOSE C;
83     IF (
84         (Recinfo.Code_Combination_Id =  X_Code_Combination_Id)
85          AND (   (Recinfo.Description =  X_Description)
86          OR  (   (Recinfo.Description IS NULL)
87              AND (X_Description IS NULL)))
88         ) THEN
89            RETURN;
90     ELSE
91       FND_MESSAGE.SET_NAME('FND', 'FORM_RECORD_CHANGED');
92       APP_EXCEPTION.Raise_Exception;
93     END IF;
94 
95     EXCEPTION
96       WHEN OTHERS THEN
97         IF (SQLCODE <> -20001) THEN
98           IF (SQLCODE = -54) THEN
99             FND_MESSAGE.SET_NAME('SQLAP','AP_RESOURCE_BUSY');
100           ELSE
101             FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
102             FND_MESSAGE.SET_TOKEN('ERROR',SQLERRM);
103             FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',Current_Calling_Sequence);
104             FND_MESSAGE.SET_TOKEN('PARAMETERS','ROWID = ' || X_Rowid );
105             FND_MESSAGE.SET_TOKEN('DEBUG_INFO',debug_info);
106           END IF;
107         END IF;
108         APP_EXCEPTION.RAISE_EXCEPTION;
109 
110   END Lock_Row;
111 
112 
113 END AP_FIX_ACCTG_PKG;