DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_LINE_SECURITY

Source


1 PACKAGE BODY OE_Line_Security AS
2 /* $Header: OEXXLINB.pls 120.17.12020000.3 2013/01/07 14:18:22 sujithku ship $ */
3 
4 --  Global constant holding the package name
5 
6 G_PKG_NAME                    CONSTANT VARCHAR2(30) := 'OE_Line_Security';
7 
8 g_header_id                   NUMBER := FND_API.G_MISS_NUM;
9 
10 -- LOCAL PROCEDURES
11 
12 FUNCTION Is_Op_Constrained
13 ( p_operation           IN VARCHAR2
14  , p_column_name         IN VARCHAR2 DEFAULT NULL
15  , p_record       IN OE_AK_ORDER_LINES_V%ROWTYPE
16  , x_on_operation_action	OUT NOCOPY NUMBER  /* file.sql.39 change */
17 ) RETURN NUMBER IS
18 l_constraint_id	        NUMBER;
19 l_grp	                NUMBER;
20 l_on_operation_action	NUMBER;
21 l_result		NUMBER;
22 l_column_name	        VARCHAR2(30);
23 l_audit_trail_enabled   VARCHAR2(1) := OE_SYS_PARAMETERS.VALUE('AUDIT_TRAIL_ENABLE_FLAG');
24 l_code_level            VARCHAR2(6) := OE_CODE_CONTROL.GET_CODE_RELEASE_LEVEL;
25 l_ctr                   NUMBER := OE_GLOBALS.OE_AUDIT_HISTORY_TBL.count;
26 l_ind                   NUMBER;
27 l_history_captured      BOOLEAN; -- Is history captured for this line?
28 
29 -- Variables for Integration Event Code
30   l_party_id            Number;
31   l_party_site_id       Number;
32   l_is_delivery_reqd    Varchar2(1);
33   l_return_status       Varchar2(30);
34   l_gen_xml             Varchar2(1) := 'P';
35 --
36 
37 --
38 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
39 --
40 BEGIN
41 
42 -- Bug 1755817: if line belongs to a different order, then
43 -- clear the cached results so that the cache is reset for
44 -- the new order
45 IF p_record.header_id <> g_header_id THEN
46    OE_PC_Constraints_Admin_Pvt.Clear_Cached_Results;
47    g_header_id := p_record.header_id;
48 END IF;
49 
50 l_result := OE_PC_Constraints_Admin_PVT.Is_OP_constrained
51     ( p_responsibility_id	=> nvl(fnd_global.resp_id, -1)
52     , p_application_id          => nvl(fnd_global.resp_appl_id,-1) --added for bug3631547
53     , p_operation	=> p_operation
54     , p_qualifier_attribute => p_record.transaction_phase_code
55     , p_entity_id	=> OE_PC_GLOBALS.G_ENTITY_LINE
56     , p_column_name	=> p_column_name
57     , p_check_all_cols_constraint	=> g_check_all_cols_constraint
58     , p_is_caller_defaulting	=> g_is_caller_defaulting
59     , p_use_cached_results      => 'Y'
60     , x_constraint_id	=> l_constraint_id
61     , x_constraining_conditions_grp	=> l_grp
62     , x_on_operation_action	=> x_on_operation_action
63     );
64 
65 if l_result = OE_PC_GLOBALS.YES then
66 
67     IF g_check_all_cols_constraint = 'Y'
68        AND (p_operation = OE_PC_GLOBALS.UPDATE_OP
69             OR p_operation = OE_PC_GLOBALS.CREATE_OP)
70        AND x_on_operation_action = 0
71        AND p_column_name IS NOT NULL THEN
72           SELECT column_name
73           INTO l_column_name
74           FROM oe_pc_constraints
75           WHERE constraint_id = l_constraint_id;
76           if l_column_name is null then
77             IF l_debug_level  > 0 THEN
78              oe_debug_pub.add('There is an UPDATE constraint on all columns - Error',1);
79             END IF;
80              RAISE FND_API.G_EXC_ERROR;
81           end if;
82     END IF;
83 
84 elsif l_result = OE_PC_GLOBALS.ERROR then
85 
86     raise FND_API.G_EXC_UNEXPECTED_ERROR;
87 
88 end if;
89 
90 g_check_all_cols_constraint := 'N';
91 
92 IF l_debug_level  > 0 THEN
93    OE_DEBUG_PUB.add('Action performed code : '||x_on_operation_action,1);
94 END IF;
95 
96 -- Bug 8537214, Reason requirement to be set for operation actions .1,.5 and 1 only
97 
98 IF l_result = OE_PC_GLOBALS.YES THEN
99    IF x_on_operation_action IN (.1,.5,1) THEN
100       IF p_column_name = 'ORDERED_QUANTITY'
101          -- QUOTING change - set cancellation require reason flag only
102          -- for lines in fulfillment phase
103          AND nvl(p_record.transaction_phase_code,'F') = 'F'
104        THEN
105         IF l_debug_level  > 0 THEN
106          oe_debug_pub.add('Setting Cancellation Flag to True',1);
107         END IF;
108          oe_sales_can_util.G_REQUIRE_REASON := TRUE;
109       END IF;
110    END IF;
111 END IF;
112 
113 /* Start Versioning */
114 IF l_code_level >= '110510' AND
115   ( p_column_name = 'TRANSACTION_PHASE_CODE' OR
116     x_on_operation_action IN (.1,.2))THEN
117    OE_Versioning_Util.Check_Security(p_column_name => p_column_name,
118                    p_on_operation_action => x_on_operation_action);
119 END IF;
120 /* End Versioning */
121 
122 
123 --Start Integration Framework Code
124 
125   If l_code_level           >= '110510'           And
126      l_result               = OE_PC_GLOBALS.YES   And
127      x_on_operation_action  = 3                   And
128      nvl(p_record.transaction_phase_code,'F') = 'F'
129   Then
130    If p_record.order_source_id = 20 Then
131     OE_Acknowledgment_Pub.Is_Delivery_Required
132         (
133          p_customer_id          => p_record.sold_to_org_id,
134          p_transaction_type     => OE_Acknowledgment_Pub.G_TRANSACTION_TYPE,
135          p_transaction_subtype  => OE_Acknowledgment_Pub.G_TRANSACTION_SSO,
136          x_party_id             => l_party_id,
137          x_party_site_id        => l_party_site_id,
138          x_is_delivery_required => l_is_delivery_reqd,
139          x_return_status        => l_return_status
140         );
141 
142     If l_return_status      = FND_API.G_RET_STS_SUCCESS And
143        l_is_delivery_reqd   = 'Y'
144     Then
145       l_gen_xml := 'B';
146     End If;
147    End If;
148 
149         OE_delayed_requests_pvt.log_request
150            (p_entity_code                   => OE_GLOBALS.G_ENTITY_HEADER,
151             p_entity_id                     => p_record.header_id,
152             p_requesting_entity_code        => OE_GLOBALS.G_ENTITY_HEADER,
153             p_requesting_entity_id          => p_record.header_id,
154             p_request_type                  => OE_GLOBALS.G_GENERATE_XML_REQ_HDR,
155             p_request_unique_key1           => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
156             p_param1                        => p_record.header_id,
157             p_param2                        => p_record.order_source_id,
158             p_param3                        => p_record.orig_sys_document_ref,
159             p_param4                        => p_record.sold_to_org_id,
160             p_param5                        => Null,
161             p_param6                        => p_record.org_id,
162             p_param7                        => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
163             p_param8                        => Null,
164             p_param9                        => p_record.sold_to_org_id,
165             p_param10                       => l_party_site_id,
166             p_param11                       => Null,
167             p_param12                       => l_gen_xml,
168             x_return_status                 => l_return_status);
169 
170         OE_delayed_requests_pvt.log_request
171            (p_entity_code                   => OE_GLOBALS.G_ENTITY_HEADER,
172             p_entity_id                     => p_record.line_id,
173             p_requesting_entity_code        => OE_GLOBALS.G_ENTITY_LINE,
174             p_requesting_entity_id          => p_record.line_id,
175             p_request_type                  => OE_GLOBALS.G_GENERATE_XML_REQ_LN,
176             p_request_unique_key1           => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
177             p_param1                        => p_record.header_id,
178             p_param2                        => p_record.order_source_id,
179             p_param3                        => p_record.orig_sys_document_ref,
180             p_param4                        => p_record.sold_to_org_id,
181             p_param5                        => Null,
182             p_param6                        => p_record.org_id,
183             p_param7                        => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
184             p_param8                        => Null,
185             p_param9                        => p_record.sold_to_org_id,
186             p_param10                       => l_party_site_id,
187             x_return_status                 => l_return_status);
188 
189   End If;
190 
191   If l_code_level >= '110510'          And
192      l_result = OE_PC_GLOBALS.YES      And
193      x_on_operation_action = 0.05      And
194      nvl(p_record.transaction_phase_code,'F') = 'F'
195   Then
196     OE_Versioning_Util.Check_Security
197       (p_column_name          => p_column_name,
198        p_on_operation_action  => .1);
199 
200     If p_record.order_source_id = 20 Then
201       OE_Acknowledgment_Pub.Is_Delivery_Required
202                         (
203                          p_customer_id          => p_record.sold_to_org_id,
204                          p_transaction_type     => OE_Acknowledgment_Pub.G_TRANSACTION_TYPE,
205                          p_transaction_subtype  => OE_Acknowledgment_Pub.G_TRANSACTION_SSO,
206                          x_party_id             => l_party_id,
207                          x_party_site_id        => l_party_site_id,
208                          x_is_delivery_required => l_is_delivery_reqd,
209                          x_return_status        => l_return_status
210                         );
211 
212       If l_return_status    = FND_API.G_RET_STS_SUCCESS And
213          l_is_delivery_reqd = 'Y'
214       Then
215         l_gen_xml := 'B';
216       End IF;
217     End If;
218         OE_delayed_requests_pvt.log_request
219            (p_entity_code                   => OE_GLOBALS.G_ENTITY_HEADER,
220             p_entity_id                     => p_record.header_id,
221             p_requesting_entity_code        => OE_GLOBALS.G_ENTITY_HEADER,
222             p_requesting_entity_id          => p_record.header_id,
223             p_request_type                  => OE_GLOBALS.G_GENERATE_XML_REQ_HDR,
224             p_request_unique_key1           => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
225             p_param1                        => p_record.header_id,
226             p_param2                        => p_record.order_source_id,
227             p_param3                        => p_record.orig_sys_document_ref,
228             p_param4                        => p_record.sold_to_org_id,
229             p_param5                        => Null,
230             p_param6                        => p_record.org_id,
231             p_param7                        => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
232             p_param8                        => Null,
233             p_param9                        => p_record.sold_to_org_id,
234             p_param10                       => l_party_site_id,
235             p_param11                       => Null,
236             p_param12                       => l_gen_xml,
237             x_return_status                 => l_return_status);
238 
239         OE_delayed_requests_pvt.log_request
240            (p_entity_code                   => OE_GLOBALS.G_ENTITY_HEADER,
241             p_entity_id                     => p_record.line_id,
242             p_requesting_entity_code        => OE_GLOBALS.G_ENTITY_LINE,
243             p_requesting_entity_id          => p_record.line_id,
244             p_request_type                  => OE_GLOBALS.G_GENERATE_XML_REQ_LN,
245             p_request_unique_key1           => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
246             p_param1                        => p_record.header_id,
247             p_param2                        => 20,
248             p_param3                        => p_record.orig_sys_document_ref,
249             p_param4                        => p_record.sold_to_org_id,
250             p_param5                        => Null,
251             p_param6                        => p_record.org_id,
252             p_param7                        => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
253             p_param8                        => Null,
254             p_param9                        => p_record.sold_to_org_id,
255             p_param10                       => l_party_site_id,
256             x_return_status                 => l_return_status);
257 
258   End If;
259 
260   If l_code_level >= '110510'          And
261      l_result = OE_PC_GLOBALS.YES      And
262      x_on_operation_action = 0.5       And
263      nvl(p_record.transaction_phase_code,'F') = 'F'
264   Then
265 
266      If g_is_caller_defaulting = 'N'    And
267        nvl(l_audit_trail_enabled,'D') <> 'D' And
268        not OE_GLOBALS.G_HEADER_CREATED
269     Then
270       If l_audit_trail_enabled = 'B' Then
271         If p_record.booked_flag = 'Y' Then
272           l_history_captured := FALSE;
273           Begin
274             FOR l_ind in 1..l_ctr LOOP
275               IF OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr).LINE_ID = p_record.line_id THEN
276                 l_history_captured := TRUE;
277               END IF;
278             END LOOP;
279           EXCEPTION WHEN OTHERS THEN
280             NULL;
281           END;
282           IF NOT l_history_captured THEN
283             OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).LINE_ID := p_record.line_id;
284             OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).HISTORY_TYPE := 'R';
285             OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG := 'Y';
286             OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
287           END IF;
288         End If;
289       Else
290         l_history_captured := FALSE;
291         BEGIN
292           FOR l_ind in 1..l_ctr LOOP
293             IF OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr).LINE_ID = p_record.line_id THEN
294                l_history_captured := TRUE;
295             END IF;
296           END LOOP;
297         EXCEPTION WHEN OTHERS THEN
298           NULL;
299         END;
300         IF NOT l_history_captured THEN
301            OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).LINE_ID := p_record.line_id;
302            OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).HISTORY_TYPE := 'R';
303            OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG := 'Y';
304            OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
305         END IF;
306       End If;
307     End If;
308 
309     If p_record.order_source_id = 20 Then
310       OE_Acknowledgment_Pub.Is_Delivery_Required
311                         (
312                          p_customer_id          => p_record.sold_to_org_id,
313                          p_transaction_type     => OE_Acknowledgment_Pub.G_TRANSACTION_TYPE,
314                          p_transaction_subtype  => OE_Acknowledgment_Pub.G_TRANSACTION_SSO,
315                          x_party_id             => l_party_id,
316                          x_party_site_id        => l_party_site_id,
317                          x_is_delivery_required => l_is_delivery_reqd,
318                          x_return_status        => l_return_status
319                         );
320 
321       If l_return_status    = FND_API.G_RET_STS_SUCCESS And
322          l_is_delivery_reqd = 'Y'
323       Then
324         l_gen_xml := 'B';
325       End If;
326     End If;
327         OE_delayed_requests_pvt.log_request
328            (p_entity_code                   => OE_GLOBALS.G_ENTITY_HEADER,
329             p_entity_id                     => p_record.header_id,
330             p_requesting_entity_code        => OE_GLOBALS.G_ENTITY_HEADER,
331             p_requesting_entity_id          => p_record.header_id,
332             p_request_type                  => OE_GLOBALS.G_GENERATE_XML_REQ_HDR,
333             p_request_unique_key1           => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
334             p_param1                        => p_record.header_id,
335             p_param2                        => p_record.order_source_id,
336             p_param3                        => p_record.orig_sys_document_ref,
337             p_param4                        => p_record.sold_to_org_id,
338             p_param5                        => Null,
339             p_param6                        => p_record.org_id,
340             p_param7                        => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
341             p_param8                        => Null,
342             p_param9                        => p_record.sold_to_org_id,
343             p_param10                       => l_party_site_id,
344             p_param11                       => Null,
345             p_param12                       => l_gen_xml,
346             x_return_status                 => l_return_status);
347 
348         OE_delayed_requests_pvt.log_request
349            (p_entity_code                   => OE_GLOBALS.G_ENTITY_HEADER,
350             p_entity_id                     => p_record.line_id,
351             p_requesting_entity_code        => OE_GLOBALS.G_ENTITY_LINE,
352             p_requesting_entity_id          => p_record.line_id,
353             p_request_type                  => OE_GLOBALS.G_GENERATE_XML_REQ_LN,
354             p_request_unique_key1           => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
355             p_param1                        => p_record.header_id,
356             p_param2                        => 20,
357             p_param3                        => p_record.orig_sys_document_ref,
358             p_param4                        => p_record.sold_to_org_id,
359             p_param5                        => Null,
360             p_param6                        => p_record.org_id,
361             p_param7                        => OE_ACKNOWLEDGMENT_PUB.G_TRANSACTION_SSO,
362             p_param8                        => Null,
363             p_param9                        => p_record.sold_to_org_id,
364             p_param10                       => l_party_site_id,
365             x_return_status                 => l_return_status);
366 
367 
368   End If;
369 
370 -- End Integration Framework Code
371 
372 
373 /* Start AuditTrail */
374 -- Code level should be OM-H and
375 -- if Audit Trail enabled
376 IF g_is_caller_defaulting='N' THEN
377    IF l_code_level >= '110508' and nvl(l_audit_trail_enabled,'D') <> 'D' and
378       nvl(p_record.transaction_phase_code,'F') = 'F' and
379       not OE_GLOBALS.G_HEADER_CREATED THEN
380      IF l_debug_level  > 0 THEN
381       OE_DEBUG_PUB.add('Audit Trail enabled ',5);
382      END IF;
383       IF l_audit_trail_enabled = 'B' THEN  -- capture only for booked orders
384         IF l_debug_level  > 0 THEN
385          OE_DEBUG_PUB.add('Audit Trail enabled for booked orders only ...',5);
386         END IF;
387          IF p_record.booked_flag = 'Y' THEN
388             IF l_result = OE_PC_GLOBALS.YES THEN
389                l_history_captured := FALSE;
390                IF x_on_operation_action = 1 THEN
391                   BEGIN
392                      FOR l_ind in 1..l_ctr LOOP
393                          IF OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr).LINE_ID = p_record.line_id
394                          AND OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr).HISTORY_TYPE = 'R' --5735600
395                          THEN
396                             l_history_captured := TRUE;
397                          END IF;
398                      END LOOP;
399                   EXCEPTION WHEN OTHERS THEN
400                     IF l_debug_level  > 0 THEN
401                      OE_DEBUG_PUB.add('While capturing history : '||sqlerrm,1);
402                     END IF;
403                      NULL;
404                   END;
405                   IF NOT l_history_captured THEN
406                      OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).LINE_ID := p_record.line_id;
407                      OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).HISTORY_TYPE := 'R';
408                     IF l_debug_level  > 0 THEN
409                      oe_debug_pub.add('Line Security, attribute change requires reason',1);
410                     END IF;
411                      OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG := 'Y';
412                      OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
413                   END IF;
414                ELSIF x_on_operation_action = 2 THEN
415                   BEGIN
416                      FOR l_ind in 1..l_ctr LOOP
417                          IF OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr).LINE_ID = p_record.line_id THEN
418                             l_history_captured := TRUE;
419                          END IF;
420                      END LOOP;
421                   EXCEPTION WHEN OTHERS THEN
422                     IF l_debug_level  > 0 THEN
423                      OE_DEBUG_PUB.add('While capturing history : '||sqlerrm,1);
424                     END IF;
425                      NULL;
426                   END;
427                   IF NOT l_history_captured THEN
428                      OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).LINE_ID := p_record.line_id;
429                      OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).HISTORY_TYPE := 'H';
430                     IF l_debug_level  > 0 THEN
431                      oe_debug_pub.add('Line Security, attribute change requires history',7);
432                     END IF;
433                      IF OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG <> 'Y' then
434                       IF l_debug_level  > 0 THEN
435                         oe_debug_pub.add('Line Security, attribute change requires history',7);
436                       END IF;
437    	                OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'Y';
438                      END IF;
439                   END IF;
440                END IF;
441             END IF;
442          END IF;
443       ELSE -- capture audit for all orders
444          IF l_result = OE_PC_GLOBALS.YES THEN
445               l_history_captured := FALSE;
446               IF x_on_operation_action = 1 THEN
447                   BEGIN
448                      FOR l_ind in 1..l_ctr LOOP
449                          IF OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr).LINE_ID = p_record.line_id
450                          AND OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr).HISTORY_TYPE = 'R' --5735600
451                          THEN
452                             l_history_captured := TRUE;
453                          END IF;
454                      END LOOP;
455                   EXCEPTION WHEN OTHERS THEN
456                     IF l_debug_level  > 0 THEN
457                      OE_DEBUG_PUB.add('While capturing history : '||sqlerrm,1);
458                     END IF;
459                      NULL;
460                   END;
461                   IF NOT l_history_captured THEN
462                      OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).LINE_ID := p_record.line_id;
463                      OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).HISTORY_TYPE := 'R';
464                     IF l_debug_level  > 0 THEN
465                      oe_debug_pub.add('Line Security, attribute change requires reason',1);
466                     END IF;
467                      OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG := 'Y';
468                      OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'N';
469                   END IF;
470               ELSIF x_on_operation_action = 2 THEN
471                   BEGIN
472                      FOR l_ind in 1..l_ctr LOOP
473                          IF OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr).LINE_ID = p_record.line_id THEN
474                             l_history_captured := TRUE;
475                          END IF;
476                      END LOOP;
477                   EXCEPTION WHEN OTHERS THEN
478                     IF l_debug_level  > 0 THEN
479                      OE_DEBUG_PUB.add('While capturing history : '||sqlerrm,1);
480                     END IF;
481                      NULL;
482                   END;
483                   IF NOT l_history_captured THEN
484                      OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).LINE_ID := p_record.line_id;
485                      OE_GLOBALS.OE_AUDIT_HISTORY_TBL(l_ctr+1).HISTORY_TYPE := 'H';
486                     IF l_debug_level  > 0 THEN
487                      oe_debug_pub.add('Line Security, attribute change requires history',7);
488                     END IF;
489                      IF OE_GLOBALS.G_AUDIT_REASON_RQD_FLAG <> 'Y' then
490                        IF l_debug_level  > 0 THEN
491                         oe_debug_pub.add('Line Security, attribute change requires history',7);
492                        END IF;
493    	                OE_GLOBALS.G_AUDIT_HISTORY_RQD_FLAG := 'Y';
494                      END IF;
495                   END IF;
496               END IF;
497          END IF;
498      END IF;
499   ELSE
500     IF l_debug_level  > 0 THEN
501      OE_DEBUG_PUB.add('Audit Trail is disabled..',5);
502     END IF;
503   END IF;
504 END IF;
505 IF g_operation_action is null THEN
506 	g_operation_action := x_on_operation_action;
507 END IF;
508 IF x_on_operation_action > 0 THEN
509    l_result := OE_PC_GLOBALS.NO;
510 END IF;
511 
512 /* End AuditTrail */
513 RETURN l_result;
514 
515 END Is_Op_Constrained;
516 
517 -- PUBLIC PROCEDURES
518 
519 FUNCTION ACCOUNTING_RULE
520 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
521 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
522 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
523 ) RETURN NUMBER
524 IS
525 l_result 	NUMBER;
526 BEGIN
527 
528     l_result := Is_OP_constrained
529         (p_operation	=> p_operation
530         ,p_column_name	=> 'ACCOUNTING_RULE_ID'
531         ,p_record	=> p_record
532         ,x_on_operation_action	=> x_on_operation_action
533         );
534 
535 RETURN(l_result);
536 
537 END ACCOUNTING_RULE;
538 
539 FUNCTION ACCOUNTING_RULE_DURATION
540 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
541 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
542 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
543 ) RETURN NUMBER
544 IS
545 l_result 	NUMBER;
546 BEGIN
547 
548     l_result := Is_OP_constrained
549         (p_operation	=> p_operation
550         ,p_column_name	=> 'ACCOUNTING_RULE_DURATION'
551         ,p_record	=> p_record
552         ,x_on_operation_action	=> x_on_operation_action
553         );
554 
555 RETURN(l_result);
556 
557 END ACCOUNTING_RULE_DURATION;
558 
559 FUNCTION calculate_price_flag(p_operation           IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
560                              ,p_record              IN  oe_ak_order_lines_v%ROWTYPE
561                              ,x_on_operation_action OUT NOCOPY NUMBER)
562 RETURN NUMBER IS
563    l_result   NUMBER := 0;
564 BEGIN
565 
566    l_result := is_op_constrained(p_operation           => p_operation
567                                 ,p_column_name         => 'CALCULATE_PRICE_FLAG'
568                                 ,p_record              => p_record
569                                 ,x_on_operation_action => x_on_operation_action);
570    RETURN(l_result);
571 
572 END calculate_price_flag;
573 
574 ---bug#4399426
575 
576 FUNCTION COMMITMENT_ID
577 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
578 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
579 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
580 ) RETURN NUMBER
581 IS
582 l_result        NUMBER :=0;
583 BEGIN
584 
585     l_result := Is_OP_constrained
586         (p_operation    => p_operation
587         ,p_column_name  => 'COMMITMENT_ID'
588         ,p_record       => p_record
589         ,x_on_operation_action  => x_on_operation_action
590         );
591 RETURN(l_result);
592 
593 END COMMITMENT_ID;
594 
595 FUNCTION AGREEMENT
596 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
597 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
598 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
599 ) RETURN NUMBER
600 IS
601 l_result 	NUMBER;
602 BEGIN
603 
604     l_result := Is_OP_constrained
605         (p_operation	=> p_operation
606         ,p_column_name	=> 'AGREEMENT_ID'
607         ,p_record	=> p_record
608         ,x_on_operation_action	=> x_on_operation_action
609         );
610 
611 RETURN(l_result);
612 
613 END AGREEMENT;
614 
615 FUNCTION AUTHORIZED_TO_SHIP
616 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
617 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
618 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
619 ) RETURN NUMBER
620 IS
621 l_result 	NUMBER;
622 BEGIN
623 
624     l_result := Is_OP_constrained
625         (p_operation	=> p_operation
626         ,p_column_name	=> 'AUTHORIZED_TO_SHIP_FLAG'
627         ,p_record	=> p_record
628         ,x_on_operation_action	=> x_on_operation_action
629         );
630 
631 RETURN(l_result);
632 
633 END AUTHORIZED_TO_SHIP;
634 
635 -- Start of fix #1459428  for function definition
636 
637 FUNCTION ATTRIBUTE1
638 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
639 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
640 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
641 ) RETURN NUMBER
642 IS
643 l_result  NUMBER;
644 BEGIN
645 
646     l_result := Is_OP_constrained
647 		  (p_operation     => p_operation
648 		   ,p_column_name   => 'ATTRIBUTE1'
649 		   ,p_record   => p_record
650 		   ,x_on_operation_action     => x_on_operation_action
651 		    );
652 
653 	    RETURN(l_result);
654 
655 END ATTRIBUTE1;
656 
657 
658 FUNCTION ATTRIBUTE10
659 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
660 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
661 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
662 ) RETURN NUMBER
663 IS
664 l_result  NUMBER;
665 BEGIN
666 
667    l_result := Is_OP_constrained
668 		 (p_operation     => p_operation
669 	      ,p_column_name   => 'ATTRIBUTE10'
670 		 ,p_record   => p_record
671 		 ,x_on_operation_action     => x_on_operation_action
672 	      );
673 
674 	   RETURN(l_result);
675 
676 END ATTRIBUTE10;
677 
678 FUNCTION ATTRIBUTE11
679 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
680 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
681 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
682 ) RETURN NUMBER
683 IS
684 l_result  NUMBER;
685 BEGIN
686 
687     l_result := Is_OP_constrained
688 	  (p_operation     => p_operation
689 	  ,p_column_name   => 'ATTRIBUTE11'
690 	  ,p_record   => p_record
691 	  ,x_on_operation_action     => x_on_operation_action
692 	   );
693 
694    RETURN(l_result);
695 
696 END ATTRIBUTE11;
697 
698 FUNCTION ATTRIBUTE12
699 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
700 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
701 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
702 ) RETURN NUMBER
703 IS
704 l_result  NUMBER;
705 BEGIN
706 
707     l_result := Is_OP_constrained
708 		 (p_operation     => p_operation
709 		 ,p_column_name   => 'ATTRIBUTE12'
710 		 ,p_record   => p_record
711 		 ,x_on_operation_action     => x_on_operation_action
712 		  );
713 
714     RETURN(l_result);
715 
716 END ATTRIBUTE12;
717 
718 FUNCTION ATTRIBUTE13
719 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
720 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
721 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
722 ) RETURN NUMBER
723 IS
724 l_result  NUMBER;
725 BEGIN
726 
727     l_result := Is_OP_constrained
728 		  (p_operation     => p_operation
729 		   ,p_column_name   => 'ATTRIBUTE13'
730 		   ,p_record   => p_record
731 		   ,x_on_operation_action     => x_on_operation_action
732 		    );
733 
734 		    RETURN(l_result);
735 
736  END ATTRIBUTE13;
737 
738 FUNCTION ATTRIBUTE14
739 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
740 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
741 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
742 ) RETURN NUMBER
743 IS
744 l_result  NUMBER;
745 BEGIN
746 
747     l_result := Is_OP_constrained
748 	  (p_operation     => p_operation
749 	  ,p_column_name   => 'ATTRIBUTE14'
750 	  ,p_record   => p_record
751 	  ,x_on_operation_action     => x_on_operation_action
752 	   );
753 
754 	 RETURN(l_result);
755 
756 END ATTRIBUTE14;
757 
758 
759 FUNCTION ATTRIBUTE15
760 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
761 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
762 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
763 ) RETURN NUMBER
764 IS
765 l_result  NUMBER;
766  BEGIN
767 
768    l_result := Is_OP_constrained
769 	  (p_operation     => p_operation
770 	  ,p_column_name   => 'ATTRIBUTE15'
771 	  ,p_record   => p_record
772 	  ,x_on_operation_action     => x_on_operation_action
773 	   );
774 
775 	RETURN(l_result);
776 
777 END ATTRIBUTE15;
778 
779 -- For Bug 2184255
780 FUNCTION ATTRIBUTE16
781 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
782 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
783 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
784 ) RETURN NUMBER
785 IS
786 l_result  NUMBER;
787 BEGIN
788 
789     l_result := Is_OP_constrained
790 	  (p_operation     => p_operation
791 	  ,p_column_name   => 'ATTRIBUTE16'
792 	  ,p_record   => p_record
793 	  ,x_on_operation_action     => x_on_operation_action
794 	   );
795 
796    RETURN(l_result);
797 
798 END ATTRIBUTE16;
799 
800 FUNCTION ATTRIBUTE17
801 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
802 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
803 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
804 ) RETURN NUMBER
805 IS
806 l_result  NUMBER;
807 BEGIN
808 
809     l_result := Is_OP_constrained
810 		 (p_operation     => p_operation
811 		 ,p_column_name   => 'ATTRIBUTE17'
812 		 ,p_record   => p_record
813 		 ,x_on_operation_action     => x_on_operation_action
814 		  );
815 
816     RETURN(l_result);
817 
818 END ATTRIBUTE17;
819 
820 FUNCTION ATTRIBUTE18
821 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
822 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
823 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
824 ) RETURN NUMBER
825 IS
826 l_result  NUMBER;
827 BEGIN
828 
829     l_result := Is_OP_constrained
830 		  (p_operation     => p_operation
831 		   ,p_column_name   => 'ATTRIBUTE18'
832 		   ,p_record   => p_record
833 		   ,x_on_operation_action     => x_on_operation_action
834 		    );
835 
836 		    RETURN(l_result);
837 
838  END ATTRIBUTE18;
839 
840 FUNCTION ATTRIBUTE19
841 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
842 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
843 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
844 ) RETURN NUMBER
845 IS
846 l_result  NUMBER;
847 BEGIN
848 
849     l_result := Is_OP_constrained
850 	  (p_operation     => p_operation
851 	  ,p_column_name   => 'ATTRIBUTE19'
852 	  ,p_record   => p_record
853 	  ,x_on_operation_action     => x_on_operation_action
854 	   );
855 
856 	 RETURN(l_result);
857 
858 END ATTRIBUTE19;
859 
860 FUNCTION ATTRIBUTE2
861 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
862 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
863 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
864 ) RETURN NUMBER
865 IS
866 l_result  NUMBER;
867 BEGIN
868 
869     l_result := Is_OP_constrained
870 	  (p_operation     => p_operation
871 	  ,p_column_name   => 'ATTRIBUTE2'
872 	  ,p_record   => p_record
873 	  ,x_on_operation_action     => x_on_operation_action
874 	   );
875 
876     RETURN(l_result);
877 
878 END ATTRIBUTE2;
879 
880 FUNCTION ATTRIBUTE20
881 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
882 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
883 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
884 ) RETURN NUMBER
885 IS
886 l_result  NUMBER;
887  BEGIN
888 
889    l_result := Is_OP_constrained
890 	  (p_operation     => p_operation
891 	  ,p_column_name   => 'ATTRIBUTE20'
892 	  ,p_record   => p_record
893 	  ,x_on_operation_action     => x_on_operation_action
894 	   );
895 
896 	RETURN(l_result);
897 
898 END ATTRIBUTE20;
899 
900 FUNCTION ATTRIBUTE3
901 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
902 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
903 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
904 ) RETURN NUMBER
905 IS
906 l_result  NUMBER;
907 BEGIN
908 
909     l_result := Is_OP_constrained
910 		  (p_operation     => p_operation
911 		   ,p_column_name   => 'ATTRIBUTE3'
912 		   ,p_record   => p_record
913 		   ,x_on_operation_action     => x_on_operation_action
914 		    );
915 
916     RETURN(l_result);
917 
918 END ATTRIBUTE3;
919 
920 FUNCTION ATTRIBUTE4
921 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
922 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
923 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
924 ) RETURN NUMBER
925 IS
926 l_result  NUMBER;
927 BEGIN
928 
929     l_result := Is_OP_constrained
930 	  (p_operation     => p_operation
931 	  ,p_column_name   => 'ATTRIBUTE4'
932 	  ,p_record   => p_record
933 	  ,x_on_operation_action     => x_on_operation_action
934        );
935 
936     RETURN(l_result);
937 
938 END ATTRIBUTE4;
939 
940 FUNCTION ATTRIBUTE5
941 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
942 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
943 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
944 ) RETURN NUMBER
945 IS
946 l_result  NUMBER;
947 BEGIN
948 
949     l_result := Is_OP_constrained
950 	  (p_operation     => p_operation
951 	  ,p_column_name   => 'ATTRIBUTE5'
952 	  ,p_record   => p_record
953 	  ,x_on_operation_action     => x_on_operation_action
954 	   );
955 
956     RETURN(l_result);
957 
958 END ATTRIBUTE5;
959 
960 FUNCTION ATTRIBUTE6
961 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
962 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
963 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
964 ) RETURN NUMBER
965 IS
966 l_result  NUMBER;
967 BEGIN
968 
969     l_result := Is_OP_constrained
970 	  (p_operation     => p_operation
971 	  ,p_column_name   => 'ATTRIBUTE6'
972 	  ,p_record   => p_record
973 	  ,x_on_operation_action     => x_on_operation_action
974 	    );
975 
976     RETURN(l_result);
977 
978 END ATTRIBUTE6;
979 
980 FUNCTION ATTRIBUTE7
981 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
982 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
983 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
984 ) RETURN NUMBER
985 IS
986 l_result  NUMBER;
987 BEGIN
988 
989     l_result := Is_OP_constrained
990 	  (p_operation     => p_operation
991 	  ,p_column_name   => 'ATTRIBUTE7'
992 	  ,p_record   => p_record
993 	  ,x_on_operation_action     => x_on_operation_action
994 	   );
995 
996 	 RETURN(l_result);
997 
998 END ATTRIBUTE7;
999 
1000 FUNCTION ATTRIBUTE8
1001 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1002 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1003 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1004 ) RETURN NUMBER
1005 IS
1006 l_result  NUMBER;
1007 BEGIN
1008 
1009     l_result := Is_OP_constrained
1010 		(p_operation     => p_operation
1011 		 ,p_column_name   => 'ATTRIBUTE8'
1012 		 ,p_record   => p_record
1013 		 ,x_on_operation_action     => x_on_operation_action
1014 		   );
1015 
1016     RETURN(l_result);
1017 
1018 END ATTRIBUTE8;
1019 
1020 FUNCTION ATTRIBUTE9
1021 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1022 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1023 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1024 ) RETURN NUMBER
1025 IS
1026 l_result  NUMBER;
1027 BEGIN
1028 
1029     l_result := Is_OP_constrained
1030 	  (p_operation     => p_operation
1031 	  ,p_column_name   => 'ATTRIBUTE9'
1032 	  ,p_record   => p_record
1033 	  ,x_on_operation_action     => x_on_operation_action
1034 	   );
1035 
1036     RETURN(l_result);
1037 
1038 END ATTRIBUTE9;
1039 
1040 FUNCTION CONTEXT
1041 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1042 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1043 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1044 ) RETURN NUMBER
1045 IS
1046 l_result  NUMBER;
1047 BEGIN
1048 
1049     l_result := Is_OP_constrained
1050 	  (p_operation     => p_operation
1051 	  ,p_column_name   => 'CONTEXT'
1052 	  ,p_record   => p_record
1053 	  ,x_on_operation_action     => x_on_operation_action
1054 	    );
1055 
1056     RETURN(l_result);
1057 
1058 END CONTEXT;
1059 
1060 --START 14272033
1061  FUNCTION RETURN_CONTEXT
1062  (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1063  ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1064  ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1065  ) RETURN NUMBER
1066  IS
1067  l_result  NUMBER;
1068  BEGIN
1069            l_result := Is_OP_constrained
1070  	  (p_operation     => p_operation
1071  	  ,p_column_name   => 'RETURN_CONTEXT'
1072  	  ,p_record   => p_record
1073  	  ,x_on_operation_action     => x_on_operation_action
1074  	    );
1075 
1076      RETURN(l_result);
1077 
1078  END RETURN_CONTEXT;
1079 
1080  FUNCTION RETURN_ATTRIBUTE1
1081  (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1082  ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1083  ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1084  ) RETURN NUMBER
1085  IS
1086  l_result  NUMBER;
1087  BEGIN
1088 
1089      l_result := Is_OP_constrained
1090  	  (p_operation     => p_operation
1091  	  ,p_column_name   => 'RETURN_ATTRIBUTE1'
1092  	  ,p_record   => p_record
1093  	  ,x_on_operation_action     => x_on_operation_action
1094  	    );
1095 
1096      RETURN(l_result);
1097 
1098  END RETURN_ATTRIBUTE1;
1099 
1100  FUNCTION RETURN_ATTRIBUTE2
1101  (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1102  ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1103  ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1104  ) RETURN NUMBER
1105  IS
1106  l_result  NUMBER;
1107  BEGIN
1108 
1109      l_result := Is_OP_constrained
1110  	  (p_operation     => p_operation
1111  	  ,p_column_name   => 'RETURN_ATTRIBUTE2'
1112  	  ,p_record   => p_record
1113  	  ,x_on_operation_action     => x_on_operation_action
1114  	    );
1115 
1116      RETURN(l_result);
1117 
1118  END RETURN_ATTRIBUTE2;
1119 
1120 --END 14272033
1121 
1122 
1123 -- End  of fix #1459428  for function definition
1124 
1125 FUNCTION CREATED_BY
1126 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1127 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1128 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1129 ) RETURN NUMBER
1130 IS
1131 l_result 	NUMBER;
1132 BEGIN
1133 
1134     l_result := Is_OP_constrained
1135         (p_operation	=> p_operation
1136         ,p_column_name	=> 'CREATED_BY'
1137         ,p_record	=> p_record
1138         ,x_on_operation_action	=> x_on_operation_action
1139         );
1140 
1141 RETURN(l_result);
1142 
1143 END CREATED_BY;
1144 
1145 
1146 FUNCTION CREDIT_INVOICE_LINE
1147 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1148 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1149 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1150 ) RETURN NUMBER
1151 IS
1152 l_result 	NUMBER;
1153 BEGIN
1154 
1155     l_result := Is_OP_constrained
1156         (p_operation	=> p_operation
1157         ,p_column_name	=> 'CREDIT_INVOICE_LINE_ID'
1158         ,p_record	=> p_record
1159         ,x_on_operation_action	=> x_on_operation_action
1160         );
1161 
1162 RETURN(l_result);
1163 
1164 END CREDIT_INVOICE_LINE;
1165 
1166 
1167 FUNCTION CUSTOMER_LINE_NUMBER
1168 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1169 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1170 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1171 ) RETURN NUMBER
1172 IS
1173 l_result 	NUMBER;
1174 BEGIN
1175 
1176     l_result := Is_OP_constrained
1177         (p_operation	=> p_operation
1178         ,p_column_name	=> 'CUSTOMER_LINE_NUMBER'
1179         ,p_record	=> p_record
1180         ,x_on_operation_action	=> x_on_operation_action
1181         );
1182 
1183 RETURN(l_result);
1184 
1185 END CUSTOMER_LINE_NUMBER;
1186 
1187 
1188 FUNCTION CUSTOMER_TRX_LINE
1189 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1190 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1191 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1192 ) RETURN NUMBER
1193 IS
1194 l_result 	NUMBER;
1195 BEGIN
1196 
1197     l_result := Is_OP_constrained
1198         (p_operation	=> p_operation
1199         ,p_column_name	=> 'CUSTOMER_TRX_LINE_ID'
1200         ,p_record	=> p_record
1201         ,x_on_operation_action	=> x_on_operation_action
1202         );
1203 
1204 RETURN(l_result);
1205 
1206 END CUSTOMER_TRX_LINE;
1207 
1208 
1209 FUNCTION CUST_PO_NUMBER
1210 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1211 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1212 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1213 ) RETURN NUMBER
1214 IS
1215 l_result 	NUMBER;
1216 BEGIN
1217 
1218     l_result := Is_OP_constrained
1219         (p_operation	=> p_operation
1220         ,p_column_name	=> 'CUST_PO_NUMBER'
1221         ,p_record	=> p_record
1222         ,x_on_operation_action	=> x_on_operation_action
1223         );
1224 
1225 RETURN(l_result);
1226 
1227 END CUST_PO_NUMBER;
1228 
1229 -- Added for bug #7608170
1230 FUNCTION CUSTOMER_JOB
1231 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1232 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1233 ,   x_on_operation_action           OUT NOCOPY NUMBER
1234 ) RETURN NUMBER
1235 IS
1236 l_result        NUMBER;
1237 BEGIN
1238 
1239     l_result := Is_OP_constrained
1240         (p_operation    => p_operation
1241         ,p_column_name  => 'CUSTOMER_JOB'
1242         ,p_record       => p_record
1243         ,x_on_operation_action  => x_on_operation_action
1244         );
1245 
1246 RETURN(l_result);
1247 
1248 END CUSTOMER_JOB; -- Bug 8508275
1249 
1250 
1251 FUNCTION DELIVERY_LEAD_TIME
1252 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1253 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1254 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1255 ) RETURN NUMBER
1256 IS
1257 l_result 	NUMBER;
1258 BEGIN
1259 
1260     l_result := Is_OP_constrained
1261         (p_operation	=> p_operation
1262         ,p_column_name	=> 'DELIVERY_LEAD_TIME'
1263         ,p_record	=> p_record
1264         ,x_on_operation_action	=> x_on_operation_action
1265         );
1266 
1267 RETURN(l_result);
1268 
1269 END DELIVERY_LEAD_TIME;
1270 
1271 
1272 FUNCTION DELIVER_TO_CONTACT
1273 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1274 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1275 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1276 ) RETURN NUMBER
1277 IS
1278 l_result 	NUMBER;
1279 BEGIN
1280 
1281     l_result := Is_OP_constrained
1282         (p_operation	=> p_operation
1283         ,p_column_name	=> 'DELIVER_TO_CONTACT_ID'
1284         ,p_record	=> p_record
1285         ,x_on_operation_action	=> x_on_operation_action
1286         );
1287 
1288 RETURN(l_result);
1289 
1290 END DELIVER_TO_CONTACT;
1291 
1292 
1293 FUNCTION DELIVER_TO_ORG
1294 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1295 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1296 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1297 ) RETURN NUMBER
1298 IS
1299 l_result 	NUMBER;
1300 BEGIN
1301 
1302     l_result := Is_OP_constrained
1303         (p_operation	=> p_operation
1304         ,p_column_name	=> 'DELIVER_TO_ORG_ID'
1305         ,p_record	=> p_record
1306         ,x_on_operation_action	=> x_on_operation_action
1307         );
1308 
1309 RETURN(l_result);
1310 
1311 END DELIVER_TO_ORG;
1312 
1313 
1314 FUNCTION DEMAND_CLASS
1315 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1316 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1317 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1318 ) RETURN NUMBER
1319 IS
1320 l_result 	NUMBER;
1321 BEGIN
1322 
1323     l_result := Is_OP_constrained
1324         (p_operation	=> p_operation
1325         ,p_column_name	=> 'DEMAND_CLASS_CODE'
1326         ,p_record	=> p_record
1327         ,x_on_operation_action	=> x_on_operation_action
1328         );
1329 
1330 RETURN(l_result);
1331 
1332 END DEMAND_CLASS;
1333 
1334 
1335 FUNCTION DEP_PLAN_REQUIRED
1336 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1337 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1338 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1339 ) RETURN NUMBER
1340 IS
1341 l_result 	NUMBER;
1342 BEGIN
1343 
1344     l_result := Is_OP_constrained
1345         (p_operation	=> p_operation
1346         ,p_column_name	=> 'DEP_PLAN_REQUIRED_FLAG'
1347         ,p_record	=> p_record
1348         ,x_on_operation_action	=> x_on_operation_action
1349         );
1350 
1351 RETURN(l_result);
1352 
1353 END DEP_PLAN_REQUIRED;
1354 
1355 
1356 FUNCTION EARLIEST_ACCEPTABLE_DATE
1357 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1358 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1359 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1360 ) RETURN NUMBER
1361 IS
1362 l_result 	NUMBER;
1363 BEGIN
1364 
1365     l_result := Is_OP_constrained
1366         (p_operation	=> p_operation
1367         ,p_column_name	=> 'EARLIEST_ACCEPTABLE_DATE'
1368         ,p_record	=> p_record
1369         ,x_on_operation_action	=> x_on_operation_action
1370         );
1371 
1372 RETURN(l_result);
1373 
1374 END EARLIEST_ACCEPTABLE_DATE;
1375 
1376 FUNCTION END_ITEM_UNIT_NUMBER
1377 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1378 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1379 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1380 ) RETURN NUMBER
1381 IS
1382 l_result 	NUMBER;
1383 BEGIN
1384 
1385     l_result := Is_OP_constrained
1386         (p_operation	=> p_operation
1387         ,p_column_name	=> 'END_ITEM_UNIT_NUMBER'
1388         ,p_record	=> p_record
1389         ,x_on_operation_action	=> x_on_operation_action
1390         );
1391 
1392 RETURN(l_result);
1393 
1394 END END_ITEM_UNIT_NUMBER;
1395 
1396 
1397 FUNCTION FOB_POINT
1398 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1399 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1400 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1401 ) RETURN NUMBER
1402 IS
1403 l_result 	NUMBER;
1404 BEGIN
1405 
1406     l_result := Is_OP_constrained
1407         (p_operation	=> p_operation
1408         ,p_column_name	=> 'FOB_POINT_CODE'
1409         ,p_record	=> p_record
1410         ,x_on_operation_action	=> x_on_operation_action
1411         );
1412 
1413 RETURN(l_result);
1414 
1415 END FOB_POINT;
1416 
1417 
1418 FUNCTION FREIGHT_CARRIER
1419 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1420 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1421 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1422 ) RETURN NUMBER
1423 IS
1424 l_result 	NUMBER;
1425 BEGIN
1426 
1427     l_result := Is_OP_constrained
1428         (p_operation	=> p_operation
1429         ,p_column_name	=> 'FREIGHT_CARRIER_CODE'
1430         ,p_record	=> p_record
1431         ,x_on_operation_action	=> x_on_operation_action
1432         );
1433 
1434 RETURN(l_result);
1435 
1436 END FREIGHT_CARRIER;
1437 
1438 
1439 FUNCTION FREIGHT_TERMS
1440 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1441 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1442 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1443 ) RETURN NUMBER
1444 IS
1445 l_result 	NUMBER;
1446 BEGIN
1447 
1448     l_result := Is_OP_constrained
1449         (p_operation	=> p_operation
1450         ,p_column_name	=> 'FREIGHT_TERMS_CODE'
1451         ,p_record	=> p_record
1452         ,x_on_operation_action	=> x_on_operation_action
1453         );
1454 
1455 RETURN(l_result);
1456 
1457 END FREIGHT_TERMS;
1458 
1459 
1460 FUNCTION FULFILLED_QUANTITY
1461 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1462 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1463 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1464 ) RETURN NUMBER
1465 IS
1466 l_result 	NUMBER;
1467 BEGIN
1468 
1469     l_result := Is_OP_constrained
1470         (p_operation	=> p_operation
1471         ,p_column_name	=> 'FULFILLED_QUANTITY'
1472         ,p_record	=> p_record
1473         ,x_on_operation_action	=> x_on_operation_action
1474         );
1475 
1476 RETURN(l_result);
1477 
1478 END FULFILLED_QUANTITY;
1479 
1480 -- INVCONV
1481 
1482 FUNCTION FULFILLED_QUANTITY2
1483 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1484 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1485 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1486 ) RETURN NUMBER
1487 IS
1488 l_result 	NUMBER;
1489 BEGIN
1490 
1491     l_result := Is_OP_constrained
1492         (p_operation	=> p_operation
1493         ,p_column_name	=> 'FULFILLED_QUANTITY2'
1494         ,p_record	=> p_record
1495         ,x_on_operation_action	=> x_on_operation_action
1496         );
1497 
1498 RETURN(l_result);
1499 
1500 END FULFILLED_QUANTITY2;
1501 
1502 
1503 FUNCTION INVENTORY_ITEM
1504 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1505 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1506 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1507 ) RETURN NUMBER
1508 IS
1509 l_result 	NUMBER;
1510 BEGIN
1511 
1512     l_result := Is_OP_constrained
1513         (p_operation	=> p_operation
1514         ,p_column_name	=> 'INVENTORY_ITEM_ID'
1515         ,p_record	=> p_record
1516         ,x_on_operation_action	=> x_on_operation_action
1517         );
1518 
1519 RETURN(l_result);
1520 
1521 END INVENTORY_ITEM;
1522 
1523 FUNCTION INVOICE_TO_CONTACT
1524 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1525 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1526 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1527 ) RETURN NUMBER
1528 IS
1529 l_result 	NUMBER;
1530 BEGIN
1531 
1532     l_result := Is_OP_constrained
1533         (p_operation	=> p_operation
1534         ,p_column_name	=> 'INVOICE_TO_CONTACT_ID'
1535         ,p_record	=> p_record
1536         ,x_on_operation_action	=> x_on_operation_action
1537         );
1538 
1539 RETURN(l_result);
1540 
1541 END INVOICE_TO_CONTACT;
1542 
1543 
1544 FUNCTION INVOICE_TO_ORG
1545 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1546 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1547 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1548 ) RETURN NUMBER
1549 IS
1550 l_result 	NUMBER;
1551 BEGIN
1552 
1553     l_result := Is_OP_constrained
1554         (p_operation	=> p_operation
1555         ,p_column_name	=> 'INVOICE_TO_ORG_ID'
1556         ,p_record	=> p_record
1557         ,x_on_operation_action	=> x_on_operation_action
1558         );
1559 
1560 RETURN(l_result);
1561 
1562 END INVOICE_TO_ORG;
1563 
1564 FUNCTION INVOICING_RULE
1565 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1566 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1567 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1568 ) RETURN NUMBER
1569 IS
1570 l_result 	NUMBER;
1571 BEGIN
1572 
1573     l_result := Is_OP_constrained
1574         (p_operation	=> p_operation
1575         ,p_column_name	=> 'INVOICING_RULE_ID'
1576         ,p_record	=> p_record
1577         ,x_on_operation_action	=> x_on_operation_action
1578         );
1579 
1580 RETURN(l_result);
1581 
1582 END INVOICING_RULE;
1583 
1584 FUNCTION ITEM_REVISION
1585 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1586 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1587 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1588 ) RETURN NUMBER
1589 IS
1590 l_result 	NUMBER;
1591 BEGIN
1592 
1593     l_result := Is_OP_constrained
1594         (p_operation	=> p_operation
1595         ,p_column_name	=> 'ITEM_REVISION'
1596         ,p_record	=> p_record
1597         ,x_on_operation_action	=> x_on_operation_action
1598         );
1599 
1600 RETURN(l_result);
1601 
1602 END ITEM_REVISION;
1603 
1604 
1605 FUNCTION ITEM_TYPE
1606 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1607 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1608 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1609 ) RETURN NUMBER
1610 IS
1611 l_result 	NUMBER;
1612 BEGIN
1613 
1614     l_result := Is_OP_constrained
1615         (p_operation	=> p_operation
1616         ,p_column_name	=> 'ITEM_TYPE_CODE'
1617         ,p_record	=> p_record
1618         ,x_on_operation_action	=> x_on_operation_action
1619         );
1620 
1621 RETURN(l_result);
1622 
1623 END ITEM_TYPE;
1624 
1625 
1626 FUNCTION LATEST_ACCEPTABLE_DATE
1627 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1628 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1629 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1630 ) RETURN NUMBER
1631 IS
1632 l_result 	NUMBER;
1633 BEGIN
1634 
1635     l_result := Is_OP_constrained
1636         (p_operation	=> p_operation
1637         ,p_column_name	=> 'LATEST_ACCEPTABLE_DATE'
1638         ,p_record	=> p_record
1639         ,x_on_operation_action	=> x_on_operation_action
1640         );
1641 
1642 RETURN(l_result);
1643 
1644 END LATEST_ACCEPTABLE_DATE;
1645 
1646 
1647 FUNCTION LINE_CATEGORY
1648 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1649 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1650 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1651 ) RETURN NUMBER
1652 IS
1653 l_result 	NUMBER;
1654 BEGIN
1655 
1656     l_result := Is_OP_constrained
1657         (p_operation	=> p_operation
1658         ,p_column_name	=> 'LINE_CATEGORY_CODE'
1659         ,p_record	=> p_record
1660         ,x_on_operation_action	=> x_on_operation_action
1661         );
1662 
1663 RETURN(l_result);
1664 
1665 END LINE_CATEGORY;
1666 
1667 
1668 FUNCTION LINE_NUMBER
1669 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1670 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1671 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1672 ) RETURN NUMBER
1673 IS
1674 l_result 	NUMBER;
1675 BEGIN
1676 
1677     l_result := Is_OP_constrained
1678         (p_operation	=> p_operation
1679         ,p_column_name	=> 'LINE_NUMBER'
1680         ,p_record	=> p_record
1681         ,x_on_operation_action	=> x_on_operation_action
1682         );
1683 
1684 RETURN(l_result);
1685 
1686 END LINE_NUMBER;
1687 
1688 
1689 FUNCTION LINE_TYPE
1690 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1691 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1692 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1693 ) RETURN NUMBER
1694 IS
1695 l_result 	NUMBER;
1696 BEGIN
1697 
1698     l_result := Is_OP_constrained
1699         (p_operation	=> p_operation
1700         ,p_column_name	=> 'LINE_TYPE_ID'
1701         ,p_record	=> p_record
1702         ,x_on_operation_action	=> x_on_operation_action
1703         );
1704 
1705 RETURN(l_result);
1706 
1707 END LINE_TYPE;
1708 
1709 
1710 FUNCTION ORDERED_QUANTITY
1711 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1712 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1713 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1714 ) RETURN NUMBER
1715 IS
1716 l_result 	NUMBER;
1717 l_old_qty 	NUMBER;
1718 BEGIN
1719 
1720 -- to fix #2312158
1721 oe_sales_can_util.G_REQUIRE_REASON := FALSE;
1722 
1723 IF p_operation = OE_PC_GLOBALS.UPDATE_OP THEN
1724    SELECT Ordered_Quantity
1725    INTO l_old_qty
1726    FROM OE_ORDER_LINES
1727    WHERE line_id = p_record.line_id;
1728 END IF;
1729 
1730 -- Added for #2871055, frontporting 3329897
1731 IF NVL(OE_LINE_SECURITY.g_record.line_id,-1) <> p_record.line_id then
1732    OE_LINE_SECURITY.g_record := p_record;
1733 END IF;
1734 
1735 -- CHECK CONSTRAINTS FOR CANCEL OPERATION IF QUANTITY IS REDUCED
1736 -- QUOTING change - check for cancellation constraint only for
1737 -- lines in fulfillment phase, ordered quantity reduction on
1738 -- quote lines should only check for quantity UPDATE constraints.
1739 IF NVL(p_record.transaction_phase_code,'F') = 'F'
1740    AND p_operation = OE_PC_GLOBALS.UPDATE_OP
1741    AND nvl(p_record.ordered_quantity,0) < nvl(l_old_qty,0)
1742    AND NOT(p_record.split_action_code IS NOT NULL AND
1743 		p_record.split_action_code <> FND_API.G_MISS_CHAR) THEN
1744     l_result := ORDERED_QUANTITY
1745         (p_operation	=> OE_PC_GLOBALS.CANCEL_OP
1746         ,p_record	=> p_record
1747         ,x_on_operation_action => x_on_operation_action
1748         );
1749 ELSIF p_operation = OE_PC_GLOBALS.UPDATE_OP
1750    AND (p_record.split_action_code IS NOT NULL AND
1751 		p_record.split_action_code <> FND_API.G_MISS_CHAR AND
1752 		p_record.split_action_code = 'SPLIT') THEN
1753     l_result := ORDERED_QUANTITY
1754         (p_operation	=> OE_PC_GLOBALS.SPLIT_OP
1755         ,p_record	=> p_record
1756         ,x_on_operation_action => x_on_operation_action
1757         );
1758 ELSE
1759     l_result := Is_OP_constrained
1760         (p_operation	=> p_operation
1761         ,p_column_name	=> 'ORDERED_QUANTITY'
1762         ,p_record	=> p_record
1763         ,x_on_operation_action	=> x_on_operation_action
1764         );
1765 END IF;
1766 
1767 RETURN(l_result);
1768 
1769 END ORDERED_QUANTITY;
1770 
1771 -- OPM 1857167 start
1772 
1773 FUNCTION ORDERED_QUANTITY2
1774 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1775 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1776 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1777 ) RETURN NUMBER
1778 IS
1779 l_result 	NUMBER;
1780 l_old_qty2 	NUMBER;
1781 BEGIN
1782 
1783 IF p_operation = OE_PC_GLOBALS.UPDATE_OP THEN
1784     SELECT Ordered_Quantity2
1785     INTO l_old_qty2
1786     FROM OE_ORDER_LINES
1787     WHERE line_id = p_record.line_id;
1788 END IF;
1789 
1790 -- CHECK CONSTRAINTS FOR CANCEL OPERATION IF QUANTITY IS REDUCED
1791 IF p_operation = OE_PC_GLOBALS.UPDATE_OP
1792    AND nvl(p_record.ordered_quantity2,0) < nvl(l_old_qty2,0)
1793    AND NOT(p_record.split_action_code IS NOT NULL AND
1794 		p_record.split_action_code <> FND_API.G_MISS_CHAR) THEN
1795     l_result := ORDERED_QUANTITY2
1796         (p_operation	=> OE_PC_GLOBALS.CANCEL_OP
1797         ,p_record	=> p_record
1798         ,x_on_operation_action => x_on_operation_action
1799         );
1800 ELSIF p_operation = OE_PC_GLOBALS.UPDATE_OP
1801    AND (p_record.split_action_code IS NOT NULL AND
1802 		p_record.split_action_code <> FND_API.G_MISS_CHAR AND
1803 		p_record.split_action_code = 'SPLIT') THEN
1804     l_result := ORDERED_QUANTITY2
1805         (p_operation	=> OE_PC_GLOBALS.SPLIT_OP
1806         ,p_record	=> p_record
1807         ,x_on_operation_action => x_on_operation_action
1808         );
1809 ELSE
1810     l_result := Is_OP_constrained
1811         (p_operation	=> p_operation
1812         ,p_column_name	=> 'ORDERED_QUANTITY2'
1813         ,p_record	=> p_record
1814         ,x_on_operation_action	=> x_on_operation_action
1815         );
1816 END IF;
1817 
1818 RETURN(l_result);
1819 
1820 END ORDERED_QUANTITY2;
1821 
1822 -- OPM 1857167 end
1823 
1824 
1825 FUNCTION ORDER_QUANTITY_UOM
1826 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1827 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1828 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1829 ) RETURN NUMBER
1830 IS
1831 l_result 	NUMBER;
1832 BEGIN
1833 
1834     l_result := Is_OP_constrained
1835         (p_operation	=> p_operation
1836         ,p_column_name	=> 'ORDER_QUANTITY_UOM'
1837         ,p_record	=> p_record
1838         ,x_on_operation_action	=> x_on_operation_action
1839         );
1840 
1841 RETURN(l_result);
1842 
1843 END ORDER_QUANTITY_UOM;
1844 
1845 
1846 FUNCTION ORIG_SYS_DOCUMENT_REF
1847 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1848 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1849 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1850 ) RETURN NUMBER
1851 IS
1852 l_result 	NUMBER;
1853 BEGIN
1854 
1855     l_result := Is_OP_constrained
1856         (p_operation	=> p_operation
1857         ,p_column_name	=> 'ORIG_SYS_DOCUMENT_REF'
1858         ,p_record	=> p_record
1859         ,x_on_operation_action	=> x_on_operation_action
1860         );
1861 
1862 RETURN(l_result);
1863 
1864 END ORIG_SYS_DOCUMENT_REF;
1865 
1866 
1867 FUNCTION ORIG_SYS_LINE_REF
1868 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1869 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1870 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1871 ) RETURN NUMBER
1872 IS
1873 l_result 	NUMBER;
1874 BEGIN
1875 
1876     l_result := Is_OP_constrained
1877         (p_operation	=> p_operation
1878         ,p_column_name	=> 'ORIG_SYS_LINE_REF'
1879         ,p_record	=> p_record
1880         ,x_on_operation_action	=> x_on_operation_action
1881         );
1882 
1883 RETURN(l_result);
1884 
1885 END ORIG_SYS_LINE_REF;
1886 
1887 
1888 FUNCTION OVER_SHIP_REASON
1889 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1890 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1891 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1892 ) RETURN NUMBER
1893 IS
1894 l_result 	NUMBER;
1895 BEGIN
1896 
1897     l_result := Is_OP_constrained
1898         (p_operation	=> p_operation
1899         ,p_column_name	=> 'OVER_SHIP_REASON_CODE'
1900         ,p_record	=> p_record
1901         ,x_on_operation_action	=> x_on_operation_action
1902         );
1903 
1904 RETURN(l_result);
1905 
1906 END OVER_SHIP_REASON;
1907 
1908 
1909 FUNCTION OVER_SHIP_RESOLVED
1910 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1911 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1912 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1913 ) RETURN NUMBER
1914 IS
1915 l_result 	NUMBER;
1916 BEGIN
1917 
1918     l_result := Is_OP_constrained
1919         (p_operation	=> p_operation
1920         ,p_column_name	=> 'OVER_SHIP_RESOLVED_FLAG'
1921         ,p_record	=> p_record
1922         ,x_on_operation_action	=> x_on_operation_action
1923         );
1924 
1925 RETURN(l_result);
1926 
1927 END OVER_SHIP_RESOLVED;
1928 
1929 FUNCTION PACKING_INSTRUCTIONS
1930 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1931 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1932 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1933 ) RETURN NUMBER
1934 IS
1935 l_result  NUMBER;
1936 BEGIN
1937 
1938     l_result := Is_OP_constrained
1939         (p_operation	=> p_operation
1940         ,p_column_name	=> 'PACKING_INSTRUCTIONS'
1941         ,p_record	     => p_record
1942         ,x_on_operation_action	=> x_on_operation_action
1943         );
1944 
1945 
1946 RETURN(l_result);
1947 
1948 END PACKING_INSTRUCTIONS;
1949 
1950 
1951 FUNCTION PAYMENT_TERM
1952 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1953 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1954 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1955 ) RETURN NUMBER
1956 IS
1957 l_result 	NUMBER;
1958 BEGIN
1959 
1960     l_result := Is_OP_constrained
1961         (p_operation	=> p_operation
1962         ,p_column_name	=> 'PAYMENT_TERM_ID'
1963         ,p_record	=> p_record
1964         ,x_on_operation_action	=> x_on_operation_action
1965         );
1966 
1967 RETURN(l_result);
1968 
1969 END PAYMENT_TERM;
1970 
1971 FUNCTION PLANNING_PRIORITY
1972 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1973 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1974 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1975 ) RETURN NUMBER
1976 IS
1977 l_result 	NUMBER;
1978 BEGIN
1979 
1980     l_result := Is_OP_constrained
1981         (p_operation	=> p_operation
1982         ,p_column_name	=> 'PLANNING_PRIORITY'
1983         ,p_record	=> p_record
1984         ,x_on_operation_action	=> x_on_operation_action
1985         );
1986 
1987 RETURN(l_result);
1988 
1989 END PLANNING_PRIORITY;
1990 
1991 
1992 FUNCTION PRICE_LIST
1993 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
1994 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
1995 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
1996 ) RETURN NUMBER
1997 IS
1998 l_result 	NUMBER;
1999 BEGIN
2000 
2001     l_result := Is_OP_constrained
2002         (p_operation	=> p_operation
2003         ,p_column_name	=> 'PRICE_LIST_ID'
2004         ,p_record	=> p_record
2005         ,x_on_operation_action	=> x_on_operation_action
2006         );
2007 
2008 RETURN(l_result);
2009 
2010 END PRICE_LIST;
2011 
2012 
2013 FUNCTION PRICING_DATE
2014 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2015 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2016 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2017 ) RETURN NUMBER
2018 IS
2019 l_result 	NUMBER;
2020 BEGIN
2021 
2022     l_result := Is_OP_constrained
2023         (p_operation	=> p_operation
2024         ,p_column_name	=> 'PRICING_DATE'
2025         ,p_record	=> p_record
2026         ,x_on_operation_action	=> x_on_operation_action
2027         );
2028 
2029 RETURN(l_result);
2030 
2031 END PRICING_DATE;
2032 
2033 
2034 FUNCTION PRICING_QUANTITY
2035 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2036 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2037 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2038 ) RETURN NUMBER
2039 IS
2040 l_result 	NUMBER;
2041 BEGIN
2042 
2043     l_result := Is_OP_constrained
2044         (p_operation	=> p_operation
2045         ,p_column_name	=> 'PRICING_QUANTITY'
2046         ,p_record	=> p_record
2047         ,x_on_operation_action	=> x_on_operation_action
2048         );
2049 
2050 RETURN(l_result);
2051 
2052 END PRICING_QUANTITY;
2053 
2054 
2055 FUNCTION PRICING_QUANTITY_UOM
2056 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2057 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2058 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2059 ) RETURN NUMBER
2060 IS
2061 l_result 	NUMBER;
2062 BEGIN
2063 
2064     l_result := Is_OP_constrained
2065         (p_operation	=> p_operation
2066         ,p_column_name	=> 'PRICING_QUANTITY_UOM'
2067         ,p_record	=> p_record
2068         ,x_on_operation_action	=> x_on_operation_action
2069         );
2070 
2071 RETURN(l_result);
2072 
2073 END PRICING_QUANTITY_UOM;
2074 
2075 
2076 FUNCTION PROJECT
2077 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2078 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2079 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2080 ) RETURN NUMBER
2081 IS
2082 l_result 	NUMBER;
2083 BEGIN
2084 
2085     l_result := Is_OP_constrained
2086         (p_operation	=> p_operation
2087         ,p_column_name	=> 'PROJECT_ID'
2088         ,p_record	=> p_record
2089         ,x_on_operation_action	=> x_on_operation_action
2090         );
2091 
2092 RETURN(l_result);
2093 
2094 END PROJECT;
2095 
2096 
2097 FUNCTION PROMISE_DATE
2098 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2099 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2100 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2101 ) RETURN NUMBER
2102 IS
2103 l_result 	NUMBER;
2104 BEGIN
2105 
2106     l_result := Is_OP_constrained
2107         (p_operation	=> p_operation
2108         ,p_column_name	=> 'PROMISE_DATE'
2109         ,p_record	=> p_record
2110         ,x_on_operation_action	=> x_on_operation_action
2111         );
2112 
2113 RETURN(l_result);
2114 
2115 END PROMISE_DATE;
2116 
2117 FUNCTION REFERENCE_CUST_TRX_LINE
2118 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2119 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2120 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2121 ) RETURN NUMBER
2122 IS
2123 l_result 	NUMBER;
2124 BEGIN
2125 
2126     l_result := Is_OP_constrained
2127         (p_operation	=> p_operation
2128         ,p_column_name	=> 'REFERENCE_CUSTOMER_TRX_LINE_ID'
2129         ,p_record	=> p_record
2130         ,x_on_operation_action	=> x_on_operation_action
2131         );
2132 
2133 RETURN(l_result);
2134 
2135 END REFERENCE_CUST_TRX_LINE;
2136 
2137 FUNCTION REFERENCE_TYPE
2138 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2139 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2140 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2141 ) RETURN NUMBER
2142 IS
2143 l_result 	NUMBER;
2144 BEGIN
2145 
2146     l_result := Is_OP_constrained
2147         (p_operation	=> p_operation
2148         ,p_column_name	=> 'REFERENCE_TYPE'
2149         ,p_record	=> p_record
2150         ,x_on_operation_action	=> x_on_operation_action
2151         );
2152 
2153 RETURN(l_result);
2154 
2155 END REFERENCE_TYPE;
2156 
2157 
2158 FUNCTION REQUEST_DATE
2159 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2160 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2161 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2162 ) RETURN NUMBER
2163 IS
2164 l_result 	NUMBER;
2165 BEGIN
2166 
2167     l_result := Is_OP_constrained
2168         (p_operation	=> p_operation
2169         ,p_column_name	=> 'REQUEST_DATE'
2170         ,p_record	=> p_record
2171         ,x_on_operation_action	=> x_on_operation_action
2172         );
2173 
2174 RETURN(l_result);
2175 
2176 END REQUEST_DATE;
2177 
2178 
2179 FUNCTION RETURN_REASON
2180 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2181 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2182 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2183 ) RETURN NUMBER
2184 IS
2185 l_result 	NUMBER;
2186 BEGIN
2187 
2188     l_result := Is_OP_constrained
2189         (p_operation	=> p_operation
2190         ,p_column_name	=> 'RETURN_REASON_CODE'
2191         ,p_record	=> p_record
2192         ,x_on_operation_action	=> x_on_operation_action
2193         );
2194 
2195 RETURN(l_result);
2196 
2197 END RETURN_REASON;
2198 
2199 
2200 FUNCTION SALESREP
2201 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2202 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2203 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2204 ) RETURN NUMBER
2205 IS
2206 l_result 	NUMBER;
2207 BEGIN
2208 
2209     l_result := Is_OP_constrained
2210         (p_operation	=> p_operation
2211         ,p_column_name	=> 'SALESREP_ID'
2212         ,p_record	=> p_record
2213         ,x_on_operation_action	=> x_on_operation_action
2214         );
2215 
2216 RETURN(l_result);
2217 
2218 END SALESREP;
2219 
2220 FUNCTION SHIP_SET
2221 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2222 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2223 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2224 ) RETURN NUMBER
2225 IS
2226 l_result 	NUMBER;
2227 BEGIN
2228 
2229     l_result := Is_OP_constrained
2230         (p_operation	=> p_operation
2231         ,p_column_name	=> 'SHIP_SET_ID'
2232         ,p_record	=> p_record
2233         ,x_on_operation_action	=> x_on_operation_action
2234         );
2235 
2236 RETURN(l_result);
2237 
2238 END SHIP_SET;
2239 
2240 FUNCTION ARRIVAL_SET
2241 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2242 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2243 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2244 ) RETURN NUMBER
2245 IS
2246 l_result 	NUMBER;
2247 BEGIN
2248 
2249     l_result := Is_OP_constrained
2250         (p_operation	=> p_operation
2251         ,p_column_name	=> 'ARRIVAL_SET_ID'
2252         ,p_record	=> p_record
2253         ,x_on_operation_action	=> x_on_operation_action
2254         );
2255 
2256 RETURN(l_result);
2257 
2258 END ARRIVAL_SET;
2259 
2260 
2261 FUNCTION SCHEDULE_ARRIVAL_DATE
2262 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2263 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2264 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2265 ) RETURN NUMBER
2266 IS
2267 l_result 	NUMBER;
2268 BEGIN
2269 
2270     l_result := Is_OP_constrained
2271         (p_operation	=> p_operation
2272         ,p_column_name	=> 'SCHEDULE_ARRIVAL_DATE'
2273         ,p_record	=> p_record
2274         ,x_on_operation_action	=> x_on_operation_action
2275         );
2276 
2277 RETURN(l_result);
2278 
2279 END SCHEDULE_ARRIVAL_DATE;
2280 
2281 FUNCTION SCHEDULE_SHIP_DATE
2282 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2283 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2284 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2285 ) RETURN NUMBER
2286 IS
2287 l_result 	NUMBER;
2288 BEGIN
2289 
2290     l_result := Is_OP_constrained
2291         (p_operation	=> p_operation
2292         ,p_column_name	=> 'SCHEDULE_SHIP_DATE'
2293         ,p_record	=> p_record
2294         ,x_on_operation_action	=> x_on_operation_action
2295         );
2296 
2297 RETURN(l_result);
2298 
2299 END SCHEDULE_SHIP_DATE;
2300 
2301 
2302 FUNCTION SHIPMENT_NUMBER
2303 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2304 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2305 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2306 ) RETURN NUMBER
2307 IS
2308 l_result 	NUMBER;
2309 BEGIN
2310 
2311     l_result := Is_OP_constrained
2312         (p_operation	=> p_operation
2313         ,p_column_name	=> 'SHIPMENT_NUMBER'
2314         ,p_record	=> p_record
2315         ,x_on_operation_action	=> x_on_operation_action
2316         );
2317 
2318 RETURN(l_result);
2319 
2320 END SHIPMENT_NUMBER;
2321 
2322 
2323 FUNCTION SHIPMENT_PRIORITY
2324 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2325 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2326 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2327 ) RETURN NUMBER
2328 IS
2329 l_result 	NUMBER;
2330 BEGIN
2331 
2332     l_result := Is_OP_constrained
2333         (p_operation	=> p_operation
2334         ,p_column_name	=> 'SHIPMENT_PRIORITY_CODE'
2335         ,p_record	=> p_record
2336         ,x_on_operation_action	=> x_on_operation_action
2337         );
2338 
2339 RETURN(l_result);
2340 
2341 END SHIPMENT_PRIORITY;
2342 
2343 
2344 FUNCTION SHIPPED_QUANTITY
2345 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2346 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2347 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2348 ) RETURN NUMBER
2349 IS
2350 l_result 	NUMBER;
2351 BEGIN
2352 
2353     l_result := Is_OP_constrained
2354         (p_operation	=> p_operation
2355         ,p_column_name	=> 'SHIPPED_QUANTITY'
2356         ,p_record	=> p_record
2357         ,x_on_operation_action	=> x_on_operation_action
2358         );
2359 
2360 RETURN(l_result);
2361 
2362 END SHIPPED_QUANTITY;
2363 
2364 -- INVCONV
2365 
2366 FUNCTION SHIPPED_QUANTITY2
2367 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2368 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2369 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2370 ) RETURN NUMBER
2371 IS
2372 l_result 	NUMBER;
2373 BEGIN
2374 
2375     l_result := Is_OP_constrained
2376         (p_operation	=> p_operation
2377         ,p_column_name	=> 'SHIPPED_QUANTITY2'
2378         ,p_record	=> p_record
2379         ,x_on_operation_action	=> x_on_operation_action
2380         );
2381 
2382 RETURN(l_result);
2383 
2384 END SHIPPED_QUANTITY2;
2385 
2386 
2387 FUNCTION SHIPPING_INSTRUCTIONS
2388 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2389 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2390 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2391 ) RETURN NUMBER
2392 IS
2393 l_result  NUMBER;
2394 BEGIN
2395 
2396 l_result := Is_OP_constrained
2397     (p_operation    => p_operation
2398     ,p_column_name  => 'SHIPPING_INSTRUCTIONS'
2399     ,p_record  => p_record
2400     ,x_on_operation_action    => x_on_operation_action
2401     );
2402 
2403 RETURN(l_result);
2404 
2405 END SHIPPING_INSTRUCTIONS;
2406 
2407 
2408 FUNCTION SHIPPING_METHOD
2409 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2410 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2411 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2412 ) RETURN NUMBER
2413 IS
2414 l_result  NUMBER;
2415 BEGIN
2416 
2417 l_result := Is_OP_constrained
2418     (p_operation    => p_operation
2419     ,p_column_name  => 'SHIPPING_METHOD_CODE'
2420     ,p_record  => p_record
2421     ,x_on_operation_action    => x_on_operation_action
2422     );
2423 
2424 RETURN(l_result);
2425 
2426 END SHIPPING_METHOD;
2427 
2428 
2429 FUNCTION SHIPPING_QUANTITY
2430 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2431 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2432 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2433 ) RETURN NUMBER
2434 IS
2435 l_result 	NUMBER;
2436 BEGIN
2437 
2438     l_result := Is_OP_constrained
2439         (p_operation	=> p_operation
2440         ,p_column_name	=> 'SHIPPING_QUANTITY'
2441         ,p_record	=> p_record
2442         ,x_on_operation_action	=> x_on_operation_action
2443         );
2444 
2445 RETURN(l_result);
2446 
2447 END SHIPPING_QUANTITY;
2448 
2449 -- INVCONV
2450 
2451 FUNCTION SHIPPING_QUANTITY2
2452 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2453 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2454 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2455 ) RETURN NUMBER
2456 IS
2457 l_result 	NUMBER;
2458 BEGIN
2459 
2460     l_result := Is_OP_constrained
2461         (p_operation	=> p_operation
2462         ,p_column_name	=> 'SHIPPING_QUANTITY2'
2463         ,p_record	=> p_record
2464         ,x_on_operation_action	=> x_on_operation_action
2465         );
2466 
2467 RETURN(l_result);
2468 
2469 END SHIPPING_QUANTITY2;
2470 
2471 FUNCTION SHIPPING_QUANTITY_UOM
2472 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2473 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2474 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2475 ) RETURN NUMBER
2476 IS
2477 l_result 	NUMBER;
2478 BEGIN
2479 
2480     l_result := Is_OP_constrained
2481         (p_operation	=> p_operation
2482         ,p_column_name	=> 'SHIPPING_QUANTITY_UOM'
2483         ,p_record	=> p_record
2484         ,x_on_operation_action	=> x_on_operation_action
2485         );
2486 
2487 RETURN(l_result);
2488 
2489 END SHIPPING_QUANTITY_UOM;
2490 
2491 
2492 
2493 -- INVCONV
2494 
2495 FUNCTION SHIPPING_QUANTITY_UOM2
2496 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2497 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2498 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2499 ) RETURN NUMBER
2500 IS
2501 l_result 	NUMBER;
2502 BEGIN
2503 
2504     l_result := Is_OP_constrained
2505         (p_operation	=> p_operation
2506         ,p_column_name	=> 'SHIPPING_QUANTITY_UOM2'
2507         ,p_record	=> p_record
2508         ,x_on_operation_action	=> x_on_operation_action
2509         );
2510 
2511 RETURN(l_result);
2512 
2513 END SHIPPING_QUANTITY_UOM2;
2514 
2515 
2516 FUNCTION SHIP_FROM_ORG
2517 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2518 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2519 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2520 ) RETURN NUMBER
2521 IS
2522 l_result 	NUMBER;
2523 BEGIN
2524 
2525     l_result := Is_OP_constrained
2526         (p_operation	=> p_operation
2527         ,p_column_name	=> 'SHIP_FROM_ORG_ID'
2528         ,p_record	=> p_record
2529         ,x_on_operation_action	=> x_on_operation_action
2530         );
2531 
2532 RETURN(l_result);
2533 
2534 END SHIP_FROM_ORG;
2535 
2536 FUNCTION SUBINVENTORY
2537 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2538 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2539 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2540 ) RETURN NUMBER
2541 IS
2542 l_result  NUMBER;
2543 BEGIN
2544 
2545     l_result := Is_OP_constrained
2546         (p_operation     => p_operation
2547         ,p_column_name   => 'SUBINVENTORY'
2548         ,p_record   => p_record
2549         ,x_on_operation_action     => x_on_operation_action
2550         );
2551 
2552 RETURN(l_result);
2553 
2554 END SUBINVENTORY;
2555 
2556 FUNCTION SHIP_MODEL_COMPLETE
2557 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2558 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2559 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2560 ) RETURN NUMBER
2561 IS
2562 l_result 	NUMBER;
2563 BEGIN
2564 
2565     l_result := Is_OP_constrained
2566         (p_operation	=> p_operation
2567         ,p_column_name	=> 'SHIP_MODEL_COMPLETE_FLAG'
2568         ,p_record	=> p_record
2569         ,x_on_operation_action	=> x_on_operation_action
2570         );
2571 
2572 RETURN(l_result);
2573 
2574 END SHIP_MODEL_COMPLETE;
2575 
2576 
2577 FUNCTION SHIP_TOLERANCE_ABOVE
2578 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2579 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2580 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2581 ) RETURN NUMBER
2582 IS
2583 l_result 	NUMBER;
2584 BEGIN
2585 
2586     l_result := Is_OP_constrained
2587         (p_operation	=> p_operation
2588         ,p_column_name	=> 'SHIP_TOLERANCE_ABOVE'
2589         ,p_record	=> p_record
2590         ,x_on_operation_action	=> x_on_operation_action
2591         );
2592 
2593 RETURN(l_result);
2594 
2595 END SHIP_TOLERANCE_ABOVE;
2596 
2597 
2598 FUNCTION SHIP_TOLERANCE_BELOW
2599 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2600 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2601 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2602 ) RETURN NUMBER
2603 IS
2604 l_result 	NUMBER;
2605 BEGIN
2606 
2607     l_result := Is_OP_constrained
2608         (p_operation	=> p_operation
2609         ,p_column_name	=> 'SHIP_TOLERANCE_BELOW'
2610         ,p_record	=> p_record
2611         ,x_on_operation_action	=> x_on_operation_action
2612         );
2613 
2614 RETURN(l_result);
2615 
2616 END SHIP_TOLERANCE_BELOW;
2617 
2618 
2619 FUNCTION SHIP_TO_CONTACT
2620 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2621 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2622 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2623 ) RETURN NUMBER
2624 IS
2625 l_result 	NUMBER;
2626 BEGIN
2627 
2628     l_result := Is_OP_constrained
2629         (p_operation	=> p_operation
2630         ,p_column_name	=> 'SHIP_TO_CONTACT_ID'
2631         ,p_record	=> p_record
2632         ,x_on_operation_action	=> x_on_operation_action
2633         );
2634 
2635 RETURN(l_result);
2636 
2637 END SHIP_TO_CONTACT;
2638 
2639 
2640 FUNCTION SHIP_TO_ORG
2641 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2642 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2643 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2644 ) RETURN NUMBER
2645 IS
2646 l_result 	NUMBER;
2647 BEGIN
2648 
2649     l_result := Is_OP_constrained
2650         (p_operation	=> p_operation
2651         ,p_column_name	=> 'SHIP_TO_ORG_ID'
2652         ,p_record	=> p_record
2653         ,x_on_operation_action	=> x_on_operation_action
2654         );
2655 
2656 RETURN(l_result);
2657 
2658 END SHIP_TO_ORG;
2659 
2660 
2661 FUNCTION SOLD_TO_ORG
2662 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2663 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2664 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2665 ) RETURN NUMBER
2666 IS
2667 l_result 	NUMBER;
2668 BEGIN
2669 
2670     l_result := Is_OP_constrained
2671         (p_operation	=> p_operation
2672         ,p_column_name	=> 'SOLD_TO_ORG_ID'
2673         ,p_record	=> p_record
2674         ,x_on_operation_action	=> x_on_operation_action
2675         );
2676 
2677 RETURN(l_result);
2678 
2679 END SOLD_TO_ORG;
2680 
2681 
2682 FUNCTION SOURCE_DOCUMENT_TYPE
2683 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2684 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2685 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2686 ) RETURN NUMBER
2687 IS
2688 l_result 	NUMBER;
2689 BEGIN
2690 
2691     l_result := Is_OP_constrained
2692         (p_operation	=> p_operation
2693         ,p_column_name	=> 'SOURCE_DOCUMENT_TYPE_ID'
2694         ,p_record	=> p_record
2695         ,x_on_operation_action	=> x_on_operation_action
2696         );
2697 
2698 RETURN(l_result);
2699 
2700 END SOURCE_DOCUMENT_TYPE;
2701 
2702 
2703 FUNCTION SOURCE_TYPE
2704 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2705 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2706 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2707 ) RETURN NUMBER
2708 IS
2709 l_result 	NUMBER;
2710 BEGIN
2711 
2712     l_result := Is_OP_constrained
2713         (p_operation	=> p_operation
2714         ,p_column_name	=> 'SOURCE_TYPE_CODE'
2715         ,p_record	=> p_record
2716         ,x_on_operation_action	=> x_on_operation_action
2717         );
2718 
2719 RETURN(l_result);
2720 
2721 END SOURCE_TYPE;
2722 
2723 
2724 FUNCTION TASK
2725 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2726 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2727 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2728 ) RETURN NUMBER
2729 IS
2730 l_result 	NUMBER;
2731 BEGIN
2732 
2733     l_result := Is_OP_constrained
2734         (p_operation	=> p_operation
2735         ,p_column_name	=> 'TASK_ID'
2736         ,p_record	=> p_record
2737         ,x_on_operation_action	=> x_on_operation_action
2738         );
2739 
2740 RETURN(l_result);
2741 
2742 END TASK;
2743 
2744 
2745 FUNCTION TAX
2746 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2747 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2748 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2749 ) RETURN NUMBER
2750 IS
2751 l_result 	NUMBER;
2752 BEGIN
2753 
2754     l_result := Is_OP_constrained
2755         (p_operation	=> p_operation
2756         ,p_column_name	=> 'TAX_CODE'
2757         ,p_record	=> p_record
2758         ,x_on_operation_action	=> x_on_operation_action
2759         );
2760 
2761 RETURN(l_result);
2762 
2763 END TAX;
2764 
2765 
2766 FUNCTION TAX_DATE
2767 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2768 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2769 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2770 ) RETURN NUMBER
2771 IS
2772 l_result 	NUMBER;
2773 BEGIN
2774 
2775     l_result := Is_OP_constrained
2776         (p_operation	=> p_operation
2777         ,p_column_name	=> 'TAX_DATE'
2778         ,p_record	=> p_record
2779         ,x_on_operation_action	=> x_on_operation_action
2780         );
2781 
2782 RETURN(l_result);
2783 
2784 END TAX_DATE;
2785 
2786 
2787 FUNCTION TAX_EXEMPT
2788 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2789 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2790 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2791 ) RETURN NUMBER
2792 IS
2793 l_result 	NUMBER;
2794 BEGIN
2795 
2796     l_result := Is_OP_constrained
2797         (p_operation	=> p_operation
2798         ,p_column_name	=> 'TAX_EXEMPT_FLAG'
2799         ,p_record	=> p_record
2800         ,x_on_operation_action	=> x_on_operation_action
2801         );
2802 
2803 RETURN(l_result);
2804 
2805 END TAX_EXEMPT;
2806 
2807 
2808 FUNCTION TAX_EXEMPT_NUMBER
2809 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2810 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2811 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2812 ) RETURN NUMBER
2813 IS
2814 l_result 	NUMBER;
2815 BEGIN
2816 
2817     l_result := Is_OP_constrained
2818         (p_operation	=> p_operation
2819         ,p_column_name	=> 'TAX_EXEMPT_NUMBER'
2820         ,p_record	=> p_record
2821         ,x_on_operation_action	=> x_on_operation_action
2822         );
2823 
2824 RETURN(l_result);
2825 
2826 END TAX_EXEMPT_NUMBER;
2827 
2828 
2829 FUNCTION TAX_EXEMPT_REASON
2830 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2831 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2832 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2833 ) RETURN NUMBER
2834 IS
2835 l_result 	NUMBER;
2836 BEGIN
2837 
2838     l_result := Is_OP_constrained
2839         (p_operation	=> p_operation
2840         ,p_column_name	=> 'TAX_EXEMPT_REASON_CODE'
2841         ,p_record	=> p_record
2842         ,x_on_operation_action	=> x_on_operation_action
2843         );
2844 
2845 RETURN(l_result);
2846 
2847 END TAX_EXEMPT_REASON;
2848 
2849 
2850 
2851 
2852 FUNCTION UNIT_LIST_PRICE
2853 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2854 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2855 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2856 ) RETURN NUMBER
2857 IS
2858 l_result 	NUMBER;
2859 BEGIN
2860 
2861     l_result := Is_OP_constrained
2862         (p_operation	=> p_operation
2863         ,p_column_name	=> 'UNIT_LIST_PRICE'
2864         ,p_record	=> p_record
2865         ,x_on_operation_action	=> x_on_operation_action
2866         );
2867 
2868 RETURN(l_result);
2869 
2870 END UNIT_LIST_PRICE;
2871 
2872 
2873 
2874 FUNCTION UNIT_SELLING_PRICE
2875 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2876 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2877 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2878 ) RETURN NUMBER
2879 IS
2880 l_result 	NUMBER;
2881 BEGIN
2882 
2883     l_result := Is_OP_constrained
2884         (p_operation	=> p_operation
2885         ,p_column_name	=> 'UNIT_SELLING_PRICE'
2886         ,p_record	=> p_record
2887         ,x_on_operation_action	=> x_on_operation_action
2888         );
2889 
2890 RETURN(l_result);
2891 
2892 END UNIT_SELLING_PRICE;
2893 
2894 
2895 FUNCTION SERVICE_REFERENCE_TYPE
2896 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2897 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2898 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2899 ) RETURN NUMBER
2900 IS
2901 l_result 	NUMBER;
2902 BEGIN
2903 
2904     l_result := Is_OP_constrained
2905         (p_operation	=> p_operation
2906         ,p_column_name	=> 'SERVICE_REFERENCE_TYPE_CODE'
2907         ,p_record	=> p_record
2908         ,x_on_operation_action	=> x_on_operation_action
2909         );
2910 
2911 RETURN(l_result);
2912 
2913 END SERVICE_REFERENCE_TYPE;
2914 
2915 FUNCTION SERVICE_REFERENCE_LINE
2916 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2917 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2918 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2919 ) RETURN NUMBER
2920 IS
2921 l_result 	NUMBER;
2922 BEGIN
2923 
2924     l_result := Is_OP_constrained
2925         (p_operation	=> p_operation
2926         ,p_column_name	=> 'SERVICE_REFERENCE_LINE_ID'
2927         ,p_record	=> p_record
2928         ,x_on_operation_action	=> x_on_operation_action
2929         );
2930 
2931 RETURN(l_result);
2932 
2933 END SERVICE_REFERENCE_LINE;
2934 
2935 FUNCTION SERVICE_REFERENCE_SYSTEM
2936 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2937 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2938 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2939 ) RETURN NUMBER
2940 IS
2941 l_result 	NUMBER;
2942 BEGIN
2943 
2944     l_result := Is_OP_constrained
2945         (p_operation	=> p_operation
2946         ,p_column_name	=> 'SERVICE_REFERENCE_SYSTEM_ID'
2947         ,p_record	=> p_record
2948         ,x_on_operation_action	=> x_on_operation_action
2949         );
2950 
2951 RETURN(l_result);
2952 
2953 END SERVICE_REFERENCE_SYSTEM;
2954 
2955 /* Fix to bug 2205900: Added constraints functions for
2956 some missing SERVICE fields */
2957 FUNCTION SERVICE_COTERMINATE
2958 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2959 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2960 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2961 ) RETURN NUMBER
2962 IS
2963 l_result 	NUMBER;
2964 BEGIN
2965 
2966     l_result := Is_OP_constrained
2967         (p_operation	=> p_operation
2968         ,p_column_name	=> 'SERVICE_COTERMINATE_FLAG'
2969         ,p_record	=> p_record
2970         ,x_on_operation_action	=> x_on_operation_action
2971         );
2972 
2973 RETURN(l_result);
2974 
2975 END SERVICE_COTERMINATE;
2976 
2977 FUNCTION SERVICE_DURATION
2978 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2979 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
2980 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
2981 ) RETURN NUMBER
2982 IS
2983 l_result 	NUMBER;
2984 BEGIN
2985 
2986     l_result := Is_OP_constrained
2987         (p_operation	=> p_operation
2988         ,p_column_name	=> 'SERVICE_DURATION'
2989         ,p_record	=> p_record
2990         ,x_on_operation_action	=> x_on_operation_action
2991         );
2992 
2993 RETURN(l_result);
2994 
2995 END SERVICE_DURATION;
2996 
2997 FUNCTION SERVICE_END_DATE
2998 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
2999 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3000 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3001 ) RETURN NUMBER
3002 IS
3003 l_result 	NUMBER;
3004 BEGIN
3005 
3006     l_result := Is_OP_constrained
3007         (p_operation	=> p_operation
3008         ,p_column_name	=> 'SERVICE_END_DATE'
3009         ,p_record	=> p_record
3010         ,x_on_operation_action	=> x_on_operation_action
3011         );
3012 
3013 RETURN(l_result);
3014 
3015 END SERVICE_END_DATE;
3016 
3017 FUNCTION SERVICE_PERIOD
3018 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3019 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3020 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3021 ) RETURN NUMBER
3022 IS
3023 l_result 	NUMBER;
3024 BEGIN
3025 
3026     l_result := Is_OP_constrained
3027         (p_operation	=> p_operation
3028         ,p_column_name	=> 'SERVICE_PERIOD'
3029         ,p_record	=> p_record
3030         ,x_on_operation_action	=> x_on_operation_action
3031         );
3032 
3033 RETURN(l_result);
3034 
3035 END SERVICE_PERIOD;
3036 
3037 FUNCTION SERVICE_START_DATE
3038 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3039 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3040 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3041 ) RETURN NUMBER
3042 IS
3043 l_result 	NUMBER;
3044 BEGIN
3045 
3046     l_result := Is_OP_constrained
3047         (p_operation	=> p_operation
3048         ,p_column_name	=> 'SERVICE_START_DATE'
3049         ,p_record	=> p_record
3050         ,x_on_operation_action	=> x_on_operation_action
3051         );
3052 
3053 RETURN(l_result);
3054 
3055 END SERVICE_START_DATE;
3056 
3057 FUNCTION SERVICE_TXN_COMMENTS
3058 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3059 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3060 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3061 ) RETURN NUMBER
3062 IS
3063 l_result 	NUMBER;
3064 BEGIN
3065 
3066     l_result := Is_OP_constrained
3067         (p_operation	=> p_operation
3068         ,p_column_name	=> 'SERVICE_TXN_COMMENTS'
3069         ,p_record	=> p_record
3070         ,x_on_operation_action	=> x_on_operation_action
3071         );
3072 
3073 RETURN(l_result);
3074 
3075 END SERVICE_TXN_COMMENTS;
3076 
3077 FUNCTION SERVICE_TXN_REASON
3078 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3079 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3080 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3081 ) RETURN NUMBER
3082 IS
3083 l_result 	NUMBER;
3084 BEGIN
3085 
3086     l_result := Is_OP_constrained
3087         (p_operation	=> p_operation
3088         ,p_column_name	=> 'SERVICE_TXN_REASON_CODE'
3089         ,p_record	=> p_record
3090         ,x_on_operation_action	=> x_on_operation_action
3091         );
3092 
3093 RETURN(l_result);
3094 
3095 END SERVICE_TXN_REASON;
3096 --sol_ord_er #16014165
3097 FUNCTION SERVICE_BILLING_PROFILE
3098 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3099 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3100 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3101 ) RETURN NUMBER
3102 IS
3103 l_result 	NUMBER;
3104 BEGIN
3105     l_result := Is_OP_constrained
3106         (p_operation	=> p_operation
3107         ,p_column_name	=> 'SERVICE_BILL_PROFILE_ID'
3108         ,p_record	=> p_record
3109         ,x_on_operation_action	=> x_on_operation_action
3110         );
3111 	RETURN(l_result);
3112 END SERVICE_BILLING_PROFILE;
3113 
3114 FUNCTION SERVICE_BILLING_OPTION
3115 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3116 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3117 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3118 ) RETURN NUMBER
3119 IS
3120 l_result 	NUMBER;
3121 BEGIN
3122     l_result := Is_OP_constrained
3123         (p_operation	=> p_operation
3124         ,p_column_name	=> 'SERVICE_BILL_OPTION_CODE'
3125         ,p_record	=> p_record
3126         ,x_on_operation_action	=> x_on_operation_action
3127         );
3128 	RETURN(l_result);
3129 END SERVICE_BILLING_OPTION;
3130 
3131 FUNCTION SERVICE_COVERAGE_TEMPLATE
3132 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3133 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3134 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3135 ) RETURN NUMBER
3136 IS
3137 l_result 	NUMBER;
3138 BEGIN
3139     l_result := Is_OP_constrained
3140         (p_operation	=> p_operation
3141         ,p_column_name	=> 'SERVICE_COV_TEMPLATE_ID'
3142         ,p_record	=> p_record
3143         ,x_on_operation_action	=> x_on_operation_action
3144         );
3145 	RETURN(l_result);
3146 END SERVICE_COVERAGE_TEMPLATE;
3147 
3148 FUNCTION SERVICE_SUBSCRIPTION_TEMPLATE
3149 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3150 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3151 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3152 ) RETURN NUMBER
3153 IS
3154 l_result 	NUMBER;
3155 BEGIN
3156     l_result := Is_OP_constrained
3157         (p_operation	=> p_operation
3158         ,p_column_name	=> 'SERVICE_SUBS_TEMPLATE_ID'
3159         ,p_record	=> p_record
3160         ,x_on_operation_action	=> x_on_operation_action
3161         );
3162 	RETURN(l_result);
3163 END SERVICE_SUBSCRIPTION_TEMPLATE;
3164 
3165 FUNCTION SUBSCRIPTION_ENABLE_FLAG
3166 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3167 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3168 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3169 ) RETURN NUMBER
3170 IS
3171 l_result 	NUMBER;
3172 BEGIN
3173     l_result := Is_OP_constrained
3174         (p_operation	=> p_operation
3175         ,p_column_name	=> 'SUBSCRIPTION_ENABLE_FLAG'
3176         ,p_record	=> p_record
3177         ,x_on_operation_action	=> x_on_operation_action
3178         );
3179 	RETURN(l_result);
3180 END SUBSCRIPTION_ENABLE_FLAG;
3181 --sol_ord_er #16014165
3182 
3183 /*1449220*/
3184 FUNCTION ITEM_IDENTIFIER_TYPE
3185 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3186 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3187 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3188 ) RETURN NUMBER
3189 IS
3190 l_result 	NUMBER;
3191 BEGIN
3192 
3193     l_result := Is_OP_constrained
3194         (p_operation	=> p_operation
3195         ,p_column_name	=> 'ITEM_IDENTIFIER_TYPE'
3196         ,p_record	=> p_record
3197         ,x_on_operation_action	=> x_on_operation_action
3198         );
3199 
3200 RETURN(l_result);
3201 
3202 END ITEM_IDENTIFIER_TYPE;
3203 /*1449220*/
3204 
3205 FUNCTION USER_ITEM_DESCRIPTION
3206 
3207 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3208 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3209 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3210 ) RETURN NUMBER
3211 IS
3212 l_result 	NUMBER;
3213 BEGIN
3214 
3215     l_result := Is_OP_constrained
3216         (p_operation	=> p_operation
3217         ,p_column_name	=> 'USER_ITEM_DESCRIPTION'
3218         ,p_record	=> p_record
3219         ,x_on_operation_action	=> x_on_operation_action
3220         );
3221 
3222 RETURN(l_result);
3223 
3224 END USER_ITEM_DESCRIPTION;
3225 
3226 FUNCTION BLANKET_NUMBER
3227 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3228 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3229 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3230 ) RETURN NUMBER
3231 IS
3232 l_result 	NUMBER;
3233 BEGIN
3234 
3235     l_result := Is_OP_constrained
3236         (p_operation	=> p_operation
3237         ,p_column_name	=> 'BLANKET_NUMBER'
3238         ,p_record	=> p_record
3239         ,x_on_operation_action	=> x_on_operation_action
3240         );
3241 
3242 RETURN(l_result);
3243 
3244 END BLANKET_NUMBER;
3245 
3246 FUNCTION BLANKET_LINE_NUMBER
3247 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3248 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3249 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
3250 ) RETURN NUMBER
3251 IS
3252 l_result 	NUMBER;
3253 BEGIN
3254 
3255     l_result := Is_OP_constrained
3256         (p_operation	=> p_operation
3257         ,p_column_name	=> 'BLANKET_LINE_NUMBER'
3258         ,p_record	=> p_record
3259         ,x_on_operation_action	=> x_on_operation_action
3260         );
3261 
3262 RETURN(l_result);
3263 
3264 END BLANKET_LINE_NUMBER;
3265 
3266 FUNCTION CUSTOMER_SHIPMENT_NUMBER
3267 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
3268 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
3269 ,   x_on_operation_action           OUT NOCOPY NUMBER /* file.sql.39 change */
3270 ) RETURN NUMBER
3271 IS
3272 l_result        NUMBER;
3273 BEGIN
3274 
3275     l_result := Is_OP_constrained
3276         (p_operation    => p_operation
3277         ,p_column_name  => 'CUSTOMER_SHIPMENT_NUMBER'
3278         ,p_record       => p_record
3279         ,x_on_operation_action  => x_on_operation_action
3280         );
3281 
3282 RETURN(l_result);
3283 
3284 END CUSTOMER_SHIPMENT_NUMBER;
3285 
3286 
3287 PROCEDURE Entity
3288 (   p_LINE_rec                      IN  OE_Order_PUB.LINE_Rec_Type
3289 ,   x_result                        OUT NOCOPY NUMBER  /* file.sql.39 change */
3290 ,   x_return_status                 OUT NOCOPY VARCHAR2  /* file.sql.39 change */
3291 ) IS
3292 l_operation	VARCHAR2(1);
3293 l_on_operation_action	NUMBER;
3294 l_rowtype_rec	OE_AK_ORDER_LINES_V%ROWTYPE;
3295 l_flow_status_code  VARCHAR2(30);
3296 --
3297 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3298 --
3299 BEGIN
3300 
3301 IF l_debug_level  > 0 THEN
3302 oe_debug_pub.add('Enter OE_LINE_Security.Entity',1);
3303 END IF;
3304 
3305 -- Initializing return status to SUCCESS
3306 x_return_status := FND_API.G_RET_STS_SUCCESS;
3307 
3308 /* start of bug 2922204 */
3309 
3310 IF l_debug_level  > 0 THEN
3311 oe_debug_pub.add('hash before create operation');
3312 END IF;
3313 
3314 IF p_LINE_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
3315 
3316 IF l_debug_level  > 0 THEN
3317 oe_debug_pub.add('hash in create operation');
3318 END IF;
3319 
3320   IF p_Line_rec.item_type_code = 'SERVICE' AND
3321      p_line_rec.service_reference_type_code = 'ORDER' AND   --3390589
3322      p_line_rec.service_reference_line_id IS NOT NULL THEN
3323 -- use p_line_rec.service_ref_line_id to get flow_status_code of parent
3324     BEGIN
3325 	SELECT flow_status_code
3326 	INTO l_flow_status_code
3327 	FROM oe_order_lines
3328 	WHERE line_id = p_line_rec.service_reference_line_id;
3329     END;
3330 
3331     IF l_flow_status_code = 'CANCELLED' THEN
3332       IF l_debug_level  > 0 THEN
3333 	oe_debug_pub.add('hash flow status is cancelled..x_result is' || x_result);
3334       END IF;
3335         x_result := OE_PC_GLOBALS.YES;
3336       IF l_debug_level  > 0 THEN
3337 	oe_debug_pub.add('hash flow status is cancelled..x_result is' || x_result);
3338       END IF;
3339         -- Add msg to stack
3340         FND_MESSAGE.SET_NAME('ONT','OE_SVC_PROD_CANCELLED');
3341 	OE_MSG_PUB.Add;
3342         RETURN;
3343     ELSE
3344       IF l_debug_level  > 0 THEN
3345 	oe_debug_pub.add('hash flow status is not cancelled');
3346       END IF;
3347         l_operation := OE_PC_GLOBALS.CREATE_OP;
3348     END IF; -- if cancelled
3349   ElSE
3350   IF l_debug_level  > 0 THEN
3351   oe_debug_pub.add('hash not a service');
3352   END IF;
3353     l_operation := OE_PC_GLOBALS.CREATE_OP;
3354   END IF; -- end if service
3355 
3356 --IF p_LINE_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
3357 --    l_operation := OE_PC_GLOBALS.CREATE_OP;
3358 /* end of bug 2922204 */
3359 
3360 
3361 ELSIF p_LINE_rec.operation = OE_GLOBALS.G_OPR_UPDATE THEN
3362     l_operation := OE_PC_GLOBALS.UPDATE_OP;
3363 ELSIF p_LINE_rec.operation = OE_GLOBALS.G_OPR_DELETE THEN
3364     l_operation := OE_PC_GLOBALS.DELETE_OP;
3365 ELSE
3366     IF l_debug_level  > 0 THEN
3367     oe_debug_pub.add('Invalid operation',1);
3368     END IF;
3369     RAISE FND_API.G_EXC_ERROR;
3370 END IF;
3371 
3372 OE_LINE_Util_Ext.API_Rec_To_Rowtype_Rec
3373 	(p_LINE_rec		=> p_line_rec
3374 	, x_rowtype_rec	=> l_rowtype_rec);
3375 
3376 --Initialize security global record
3377 OE_LINE_SECURITY.g_record := l_rowtype_rec;
3378 
3379     IF l_debug_level  > 0 THEN
3380     oe_debug_pub.add('OEXXLINB operation is ' || p_line_rec.operation);
3381     END IF;
3382     IF (p_line_rec.split_from_line_id IS NOT NULL AND p_line_rec.operation = 'CREATE')
3383     THEN
3384        l_operation := OE_PC_GLOBALS.SPLIT_OP;
3385 	 -- --12849745 Elsif below added
3386 	ELSIF ( p_line_rec.operation = 'UPDATE' and p_line_rec.split_action_code='SPLIT' ) THEN
3387 		IF l_debug_level  > 0 THEN
3388 			oe_debug_pub.add('resetting operation from Update to SPLIT before Is_OP_constrained');
3389 		END IF;
3390 	  l_operation := OE_PC_GLOBALS.SPLIT_OP; --12849745 End
3391     END IF;
3392     x_result := Is_OP_constrained
3393     (p_operation	=> l_operation
3394     ,p_record	=> l_rowtype_rec
3395     ,x_on_operation_action	=> l_on_operation_action
3396     );
3397 
3398 
3399 IF l_debug_level  > 0 THEN
3400 oe_debug_pub.add('Exit OE_LINE_Security.Entity',1);
3401 END IF;
3402 EXCEPTION
3403     WHEN FND_API.G_EXC_ERROR THEN
3404     x_return_status := FND_API.G_RET_STS_ERROR;
3405     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3406     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3407     WHEN OTHERS THEN
3408     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3409     IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3410         OE_MSG_PUB.Add_Exc_Msg
3411         (   G_PKG_NAME
3412         ,   'Entity'
3413         );
3414     END IF;
3415 
3416 END Entity;
3417 
3418 PROCEDURE Attributes
3419 (   p_LINE_rec                      IN  OE_Order_PUB.LINE_Rec_Type
3420 ,   p_old_LINE_rec                  IN  OE_Order_PUB.LINE_Rec_Type := OE_Order_PUB.G_MISS_LINE_REC
3421 ,   x_result                        OUT NOCOPY NUMBER  /* file.sql.39 change */
3422 ,   x_return_status                 OUT NOCOPY VARCHAR2  /* file.sql.39 change */
3423 ) IS
3424 l_operation	VARCHAR2(1);
3425 l_on_operation_action  NUMBER;
3426 l_result		NUMBER;
3427 l_rowtype_rec	OE_AK_ORDER_LINES_V%ROWTYPE;
3428 l_column_name	VARCHAR2(30);
3429 l_active_flag  VARCHAR2(1);
3430 l_check_all_cols_constraint VARCHAR2(1);
3431 --
3432 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
3433 --
3434 BEGIN
3435 IF l_debug_level  > 0 THEN
3436 oe_debug_pub.add('Enter OE_LINE_Security.Attributes',1);
3437 END IF;
3438 
3439 -- Initializing return status to SUCCESS
3440 x_return_status := FND_API.G_RET_STS_SUCCESS;
3441 -- Initialize g_operation_action to null
3442 	g_operation_action := null;
3443 
3444 -- Initializing out result to NOT CONSTRAINED
3445 x_result := OE_PC_GLOBALS.NO;
3446 
3447  -- Get the operation code to be passed to the security framework API
3448 IF p_LINE_rec.operation = OE_GLOBALS.G_OPR_CREATE THEN
3449 
3450     -- Bug 2639336 : if the order source is Copy then skip the Attribute
3451     -- level check
3452     -- Bug 3859436 : if the line is being split, skip attribute check.
3453    IF p_LINE_rec.source_document_type_id = OE_GLOBALS.G_ORDER_SOURCE_COPY
3454       OR p_line_rec.split_from_line_id <> FND_API.G_MISS_NUM
3455       THEN
3456       RETURN;
3457    ELSE
3458     l_operation := OE_PC_GLOBALS.CREATE_OP;
3459    END IF;
3460 
3461     -- Bug 1755817: if there are no attribute-specific insert
3462     -- constraints, then no need to go further. Entity level
3463     -- security check for CREATE will be called again from
3464     -- process order after defaulting.
3465     IF NOT OE_PC_Constraints_Admin_PVT.Check_On_Insert_Exists
3466            (p_entity_id   => OE_PC_GLOBALS.G_ENTITY_LINE
3467            ,p_responsibility_id     => nvl(fnd_global.resp_id, -1)
3468            ,p_application_id        => nvl(fnd_global.resp_appl_id,-1) --added for bug3631547
3469            )
3470     THEN
3471        RETURN;
3472     END IF;
3473 
3474 ELSIF p_LINE_rec.operation = OE_GLOBALS.G_OPR_UPDATE THEN
3475     l_operation := OE_PC_GLOBALS.UPDATE_OP;
3476 ELSE
3477   IF l_debug_level  > 0 THEN
3478     oe_debug_pub.add('Invalid operation',1);
3479   END IF;
3480     RAISE FND_API.G_EXC_ERROR;
3481 END IF;
3482 
3483 OE_LINE_Util_Ext.API_Rec_To_Rowtype_Rec
3484 	(p_LINE_rec		=> p_line_rec
3485 	, x_rowtype_rec	=> l_rowtype_rec);
3486 
3487 --Initialize security global record
3488 OE_LINE_SECURITY.g_record := l_rowtype_rec;
3489 
3490 -- Compare the new and old entity records and
3491 -- check constraints for all the changed attributes.
3492 
3493     IF p_line_rec.accounting_rule_id = FND_API.G_MISS_NUM THEN NULL;
3494     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.accounting_rule_id,p_old_line_rec.accounting_rule_id) THEN
3495 
3496         l_result := ACCOUNTING_RULE
3497             (p_operation        => l_operation
3498             ,p_record   => l_rowtype_rec
3499             ,x_on_operation_action => l_on_operation_action
3500             );
3501 
3502         IF l_result = OE_PC_GLOBALS.YES THEN
3503             -- set OUT result to CONSTRAINED
3504             x_result := OE_PC_GLOBALS.YES;
3505         END IF;
3506 
3507     END IF;
3508 
3509     IF p_line_rec.IB_OWNER = FND_API.G_MISS_CHAR THEN NULL;
3510     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.IB_OWNER,p_old_line_rec.IB_OWNER) THEN
3511 
3512         l_result := IB_OWNER
3513             (p_operation        => l_operation
3514             ,p_record   => l_rowtype_rec
3515             ,x_on_operation_action => l_on_operation_action
3516             );
3517 
3518         IF l_result = OE_PC_GLOBALS.YES THEN
3519             -- set OUT result to CONSTRAINED
3520             x_result := OE_PC_GLOBALS.YES;
3521         END IF;
3522 
3523     END IF;
3524     IF p_line_rec.IB_CURRENT_LOCATION = FND_API.G_MISS_CHAR THEN NULL;
3525     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.IB_CURRENT_LOCATION,p_old_line_rec.IB_CURRENT_LOCATION) THEN
3526 
3527         l_result := IB_CURRENT_LOCATION
3528             (p_operation        => l_operation
3529             ,p_record   => l_rowtype_rec
3530             ,x_on_operation_action => l_on_operation_action
3531             );
3532 
3533         IF l_result = OE_PC_GLOBALS.YES THEN
3534             -- set OUT result to CONSTRAINED
3535             x_result := OE_PC_GLOBALS.YES;
3536         END IF;
3537 
3538     END IF;
3539     IF p_line_rec.IB_INSTALLED_AT_LOCATION = FND_API.G_MISS_CHAR THEN NULL;
3540     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.IB_INSTALLED_AT_LOCATION,p_old_line_rec.IB_INSTALLED_AT_LOCATION) THEN
3541 
3542         l_result := IB_INSTALLED_AT_LOCATION
3543             (p_operation        => l_operation
3544             ,p_record   => l_rowtype_rec
3545             ,x_on_operation_action => l_on_operation_action
3546             );
3547 
3548         IF l_result = OE_PC_GLOBALS.YES THEN
3549             -- set OUT result to CONSTRAINED
3550             x_result := OE_PC_GLOBALS.YES;
3551         END IF;
3552 
3553     END IF;
3554   IF p_line_rec.END_CUSTOMER_ID = FND_API.G_MISS_NUM THEN NULL;
3555     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.END_CUSTOMER_ID,p_old_line_rec.END_CUSTOMER_ID) THEN
3556 
3557         l_result := END_CUSTOMER
3558             (p_operation        => l_operation
3559             ,p_record   => l_rowtype_rec
3560             ,x_on_operation_action => l_on_operation_action
3561             );
3562 
3563         IF l_result = OE_PC_GLOBALS.YES THEN
3564             -- set OUT result to CONSTRAINED
3565             x_result := OE_PC_GLOBALS.YES;
3566         END IF;
3567 
3568     END IF;
3569    IF p_line_rec.END_CUSTOMER_CONTACT_ID = FND_API.G_MISS_NUM THEN NULL;
3570     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.END_CUSTOMER_CONTACT_ID,p_old_line_rec.END_CUSTOMER_CONTACT_ID) THEN
3571 
3572         l_result := END_CUSTOMER_CONTACT
3573             (p_operation        => l_operation
3574             ,p_record   => l_rowtype_rec
3575             ,x_on_operation_action => l_on_operation_action
3576             );
3577 
3578         IF l_result = OE_PC_GLOBALS.YES THEN
3579             -- set OUT result to CONSTRAINED
3580             x_result := OE_PC_GLOBALS.YES;
3581         END IF;
3582 
3583     END IF;
3584    IF p_line_rec.END_CUSTOMER_SITE_USE_ID = FND_API.G_MISS_NUM THEN NULL;
3585     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.END_CUSTOMER_SITE_USE_ID,p_old_line_rec.END_CUSTOMER_SITE_USE_ID) THEN
3586 
3587         l_result := END_CUSTOMER_SITE_USE
3588             (p_operation        => l_operation
3589             ,p_record   => l_rowtype_rec
3590             ,x_on_operation_action => l_on_operation_action
3591             );
3592 
3593         IF l_result = OE_PC_GLOBALS.YES THEN
3594             -- set OUT result to CONSTRAINED
3595             x_result := OE_PC_GLOBALS.YES;
3596         END IF;
3597 
3598     END IF;
3599 
3600     IF p_line_rec.accounting_rule_duration = FND_API.G_MISS_NUM THEN NULL;
3601     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.accounting_rule_duration,p_old_line_rec.accounting_rule_duration) THEN
3602 
3603         l_result := ACCOUNTING_RULE_DURATION
3604             (p_operation        => l_operation
3605             ,p_record   => l_rowtype_rec
3606             ,x_on_operation_action => l_on_operation_action
3607             );
3608 
3609         IF l_result = OE_PC_GLOBALS.YES THEN
3610             -- set OUT result to CONSTRAINED
3611             x_result := OE_PC_GLOBALS.YES;
3612         END IF;
3613 
3614     END IF;
3615 
3616     IF p_line_rec.agreement_id = FND_API.G_MISS_NUM THEN NULL;
3617     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.agreement_id,p_old_line_rec.agreement_id) THEN
3618 
3619         l_result := AGREEMENT
3620             (p_operation        => l_operation
3621             ,p_record   => l_rowtype_rec
3622             ,x_on_operation_action => l_on_operation_action
3623             );
3624 
3625         IF l_result = OE_PC_GLOBALS.YES THEN
3626             -- set OUT result to CONSTRAINED
3627             x_result := OE_PC_GLOBALS.YES;
3628         END IF;
3629 
3630     END IF;
3631 
3632     IF p_line_rec.commitment_id = FND_API.G_MISS_NUM THEN NULL;
3633     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.commitment_id,p_old_line_rec.commitment_id) THEN
3634 
3635         l_result := COMMITMENT_ID
3636             (p_operation        => l_operation
3637             ,p_record   => l_rowtype_rec
3638             ,x_on_operation_action => l_on_operation_action
3639             );
3640 
3641         IF l_result = OE_PC_GLOBALS.YES THEN
3642             -- set OUT result to CONSTRAINED
3643             x_result := OE_PC_GLOBALS.YES;
3644         END IF;
3645 
3646     END IF;
3647 
3648     IF p_line_rec.arrival_set_id = FND_API.G_MISS_NUM THEN NULL;
3649     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.arrival_set_id,p_old_line_rec.arrival_set_id)
3650     OR    NOT OE_GLOBALS.EQUAL(p_line_rec.arrival_set,p_old_line_rec.arrival_set) THEN
3651 
3652         l_result := ARRIVAL_SET
3653             (p_operation        => l_operation
3654             ,p_record   => l_rowtype_rec
3655             ,x_on_operation_action => l_on_operation_action
3656             );
3657 
3658         IF l_result = OE_PC_GLOBALS.YES THEN
3659             -- set OUT result to CONSTRAINED
3660             x_result := OE_PC_GLOBALS.YES;
3661         END IF;
3662 
3663     END IF;
3664 
3665     IF p_line_rec.authorized_to_ship_flag = FND_API.G_MISS_CHAR THEN NULL;
3666     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.authorized_to_ship_flag,p_old_line_rec.authorized_to_ship_flag) THEN
3667 
3668         l_result := AUTHORIZED_TO_SHIP
3669             (p_operation        => l_operation
3670             ,p_record   => l_rowtype_rec
3671             ,x_on_operation_action => l_on_operation_action
3672             );
3673 
3674         IF l_result = OE_PC_GLOBALS.YES THEN
3675             -- set OUT result to CONSTRAINED
3676             x_result := OE_PC_GLOBALS.YES;
3677         END IF;
3678 
3679     END IF;
3680 
3681     IF p_line_rec.credit_invoice_line_id = FND_API.G_MISS_NUM THEN NULL;
3682     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.credit_invoice_line_id,p_old_line_rec.credit_invoice_line_id) THEN
3683 
3684         l_result := CREDIT_INVOICE_LINE
3685             (p_operation        => l_operation
3686             ,p_record   => l_rowtype_rec
3687             ,x_on_operation_action => l_on_operation_action
3688             );
3689 
3690         IF l_result = OE_PC_GLOBALS.YES THEN
3691             -- set OUT result to CONSTRAINED
3692             x_result := OE_PC_GLOBALS.YES;
3693         END IF;
3694 
3695     END IF;
3696 
3697     IF p_line_rec.customer_line_number = FND_API.G_MISS_CHAR THEN NULL;
3698     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.customer_line_number,p_old_line_rec.customer_line_number) THEN
3699 
3700         l_result := CUSTOMER_LINE_NUMBER
3701             (p_operation        => l_operation
3702             ,p_record   => l_rowtype_rec
3703             ,x_on_operation_action => l_on_operation_action
3704             );
3705 
3706         IF l_result = OE_PC_GLOBALS.YES THEN
3707             -- set OUT result to CONSTRAINED
3708             x_result := OE_PC_GLOBALS.YES;
3709         END IF;
3710 
3711     END IF;
3712 
3713     IF p_line_rec.customer_trx_line_id = FND_API.G_MISS_NUM THEN NULL;
3714     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.customer_trx_line_id,p_old_line_rec.customer_trx_line_id) THEN
3715 
3716         l_result := CUSTOMER_TRX_LINE
3717             (p_operation        => l_operation
3718             ,p_record   => l_rowtype_rec
3719             ,x_on_operation_action => l_on_operation_action
3720             );
3721 
3722         IF l_result = OE_PC_GLOBALS.YES THEN
3723             -- set OUT result to CONSTRAINED
3724             x_result := OE_PC_GLOBALS.YES;
3725         END IF;
3726 
3727     END IF;
3728 
3729     IF p_line_rec.cust_po_number = FND_API.G_MISS_CHAR THEN NULL;
3730     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.cust_po_number,p_old_line_rec.cust_po_number) THEN
3731 
3732         l_result := CUST_PO_NUMBER
3733             (p_operation        => l_operation
3734             ,p_record   => l_rowtype_rec
3735             ,x_on_operation_action => l_on_operation_action
3736             );
3737 
3738         IF l_result = OE_PC_GLOBALS.YES THEN
3739             -- set OUT result to CONSTRAINED
3740             x_result := OE_PC_GLOBALS.YES;
3741         END IF;
3742 
3743     END IF;
3744 
3745    -- Added for bug #7608170
3746    IF p_line_rec.customer_job = FND_API.G_MISS_CHAR THEN NULL;
3747    ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.customer_job,p_old_line_rec.customer_job) THEN
3748 
3749         l_result := CUSTOMER_JOB
3750             (p_operation => l_operation
3751             ,p_record    => l_rowtype_rec
3752             ,x_on_operation_action => l_on_operation_action
3753             );
3754 
3755         IF l_result = OE_PC_GLOBALS.YES THEN
3756             -- set OUT result to CONSTRAINED
3757             x_result := OE_PC_GLOBALS.YES;
3758         END IF;
3759 
3760     END IF;
3761 
3762     IF p_line_rec.delivery_lead_time = FND_API.G_MISS_NUM THEN NULL;
3763     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.delivery_lead_time,p_old_line_rec.delivery_lead_time) THEN
3764 
3765         l_result := DELIVERY_LEAD_TIME
3766             (p_operation        => l_operation
3767             ,p_record   => l_rowtype_rec
3768             ,x_on_operation_action => l_on_operation_action
3769             );
3770 
3771         IF l_result = OE_PC_GLOBALS.YES THEN
3772             -- set OUT result to CONSTRAINED
3773             x_result := OE_PC_GLOBALS.YES;
3774         END IF;
3775 
3776     END IF;
3777 
3778     IF p_line_rec.deliver_to_contact_id = FND_API.G_MISS_NUM THEN NULL;
3779     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.deliver_to_contact_id,p_old_line_rec.deliver_to_contact_id) THEN
3780 
3781         l_result := DELIVER_TO_CONTACT
3782             (p_operation        => l_operation
3783             ,p_record   => l_rowtype_rec
3784             ,x_on_operation_action => l_on_operation_action
3785             );
3786 
3787         IF l_result = OE_PC_GLOBALS.YES THEN
3788             -- set OUT result to CONSTRAINED
3789             x_result := OE_PC_GLOBALS.YES;
3790         END IF;
3791 
3792     END IF;
3793 
3794     IF p_line_rec.deliver_to_org_id = FND_API.G_MISS_NUM THEN NULL;
3795     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.deliver_to_org_id,p_old_line_rec.deliver_to_org_id) THEN
3796 
3797         l_result := DELIVER_TO_ORG
3798             (p_operation        => l_operation
3799             ,p_record   => l_rowtype_rec
3800             ,x_on_operation_action => l_on_operation_action
3801             );
3802 
3803         IF l_result = OE_PC_GLOBALS.YES THEN
3804             -- set OUT result to CONSTRAINED
3805             x_result := OE_PC_GLOBALS.YES;
3806         END IF;
3807 
3808     END IF;
3809 
3810     IF p_line_rec.demand_class_code = FND_API.G_MISS_CHAR THEN NULL;
3811     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.demand_class_code,p_old_line_rec.demand_class_code) THEN
3812 
3813         l_result := DEMAND_CLASS
3814             (p_operation        => l_operation
3815             ,p_record   => l_rowtype_rec
3816             ,x_on_operation_action => l_on_operation_action
3817             );
3818 
3819         IF l_result = OE_PC_GLOBALS.YES THEN
3820             -- set OUT result to CONSTRAINED
3821             x_result := OE_PC_GLOBALS.YES;
3822         END IF;
3823 
3824     END IF;
3825 
3826     IF p_line_rec.dep_plan_required_flag = FND_API.G_MISS_CHAR THEN NULL;
3827     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.dep_plan_required_flag,p_old_line_rec.dep_plan_required_flag) THEN
3828 
3829         l_result := DEP_PLAN_REQUIRED
3830             (p_operation        => l_operation
3831             ,p_record   => l_rowtype_rec
3832             ,x_on_operation_action => l_on_operation_action
3833             );
3834 
3835         IF l_result = OE_PC_GLOBALS.YES THEN
3836             -- set OUT result to CONSTRAINED
3837             x_result := OE_PC_GLOBALS.YES;
3838         END IF;
3839 
3840     END IF;
3841 
3842     IF p_line_rec.earliest_acceptable_date = FND_API.G_MISS_DATE THEN NULL;
3843     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.earliest_acceptable_date,p_old_line_rec.earliest_acceptable_date) THEN
3844 
3845         l_result := EARLIEST_ACCEPTABLE_DATE
3846             (p_operation        => l_operation
3847             ,p_record   => l_rowtype_rec
3848             ,x_on_operation_action => l_on_operation_action
3849             );
3850 
3851         IF l_result = OE_PC_GLOBALS.YES THEN
3852             -- set OUT result to CONSTRAINED
3853             x_result := OE_PC_GLOBALS.YES;
3854         END IF;
3855 
3856     END IF;
3857 
3858     IF p_line_rec.end_item_unit_number = FND_API.G_MISS_CHAR THEN NULL;
3859     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.end_item_unit_number,p_old_line_rec.end_item_unit_number) THEN
3860 
3861         l_result := END_ITEM_UNIT_NUMBER
3862             (p_operation        => l_operation
3863             ,p_record   => l_rowtype_rec
3864             ,x_on_operation_action => l_on_operation_action
3865             );
3866 
3867         IF l_result = OE_PC_GLOBALS.YES THEN
3868             -- set OUT result to CONSTRAINED
3869             x_result := OE_PC_GLOBALS.YES;
3870         END IF;
3871 
3872     END IF;
3873 
3874     IF p_line_rec.fob_point_code = FND_API.G_MISS_CHAR THEN NULL;
3875     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.fob_point_code,p_old_line_rec.fob_point_code) THEN
3876 
3877         l_result := FOB_POINT
3878             (p_operation        => l_operation
3879             ,p_record   => l_rowtype_rec
3880             ,x_on_operation_action => l_on_operation_action
3881             );
3882 
3883         IF l_result = OE_PC_GLOBALS.YES THEN
3884             -- set OUT result to CONSTRAINED
3885             x_result := OE_PC_GLOBALS.YES;
3886         END IF;
3887 
3888     END IF;
3889 
3890     IF p_line_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN NULL;
3891     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.freight_terms_code,p_old_line_rec.freight_terms_code) THEN
3892 
3893         l_result := FREIGHT_TERMS
3894             (p_operation        => l_operation
3895             ,p_record   => l_rowtype_rec
3896             ,x_on_operation_action => l_on_operation_action
3897             );
3898 
3899         IF l_result = OE_PC_GLOBALS.YES THEN
3900             -- set OUT result to CONSTRAINED
3901             x_result := OE_PC_GLOBALS.YES;
3902         END IF;
3903 
3904     END IF;
3905 
3906     IF p_line_rec.fulfilled_quantity = FND_API.G_MISS_NUM THEN NULL;
3907     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.fulfilled_quantity,p_old_line_rec.fulfilled_quantity) THEN
3908 
3909         l_result := FULFILLED_QUANTITY
3910             (p_operation        => l_operation
3911             ,p_record   => l_rowtype_rec
3912             ,x_on_operation_action => l_on_operation_action
3913             );
3914 
3915         IF l_result = OE_PC_GLOBALS.YES THEN
3916             -- set OUT result to CONSTRAINED
3917             x_result := OE_PC_GLOBALS.YES;
3918         END IF;
3919 
3920     END IF;
3921 
3922 -- INVCONV
3923     IF p_line_rec.fulfilled_quantity2 = FND_API.G_MISS_NUM THEN NULL;
3924     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.fulfilled_quantity2,p_old_line_rec.fulfilled_quantity2) THEN
3925 
3926         l_result := FULFILLED_QUANTITY2
3927             (p_operation        => l_operation
3928             ,p_record   => l_rowtype_rec
3929             ,x_on_operation_action => l_on_operation_action
3930             );
3931 
3932         IF l_result = OE_PC_GLOBALS.YES THEN
3933             -- set OUT result to CONSTRAINED
3934             x_result := OE_PC_GLOBALS.YES;
3935         END IF;
3936 
3937     END IF;
3938 
3939     IF p_line_rec.inventory_item_id = FND_API.G_MISS_NUM THEN NULL;
3940     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.inventory_item_id,p_old_line_rec.inventory_item_id) THEN
3941 
3942         l_result := INVENTORY_ITEM
3943             (p_operation        => l_operation
3944             ,p_record   => l_rowtype_rec
3945             ,x_on_operation_action => l_on_operation_action
3946             );
3947 
3948         IF l_result = OE_PC_GLOBALS.YES THEN
3949             -- set OUT result to CONSTRAINED
3950             x_result := OE_PC_GLOBALS.YES;
3951         END IF;
3952 
3953     END IF;
3954 
3955     IF p_line_rec.invoice_to_contact_id = FND_API.G_MISS_NUM THEN NULL;
3956     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.invoice_to_contact_id,p_old_line_rec.invoice_to_contact_id) THEN
3957 
3958         l_result := INVOICE_TO_CONTACT
3959             (p_operation        => l_operation
3960             ,p_record   => l_rowtype_rec
3961             ,x_on_operation_action => l_on_operation_action
3962             );
3963 
3964         IF l_result = OE_PC_GLOBALS.YES THEN
3965             -- set OUT result to CONSTRAINED
3966             x_result := OE_PC_GLOBALS.YES;
3967         END IF;
3968 
3969     END IF;
3970 
3971     IF p_line_rec.invoice_to_org_id = FND_API.G_MISS_NUM THEN NULL;
3972     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.invoice_to_org_id,p_old_line_rec.invoice_to_org_id) THEN
3973 
3974         l_result := INVOICE_TO_ORG
3975             (p_operation        => l_operation
3976             ,p_record   => l_rowtype_rec
3977             ,x_on_operation_action => l_on_operation_action
3978             );
3979 
3980         IF l_result = OE_PC_GLOBALS.YES THEN
3981             -- set OUT result to CONSTRAINED
3982             x_result := OE_PC_GLOBALS.YES;
3983         END IF;
3984 
3985     END IF;
3986 
3987     IF p_line_rec.invoicing_rule_id = FND_API.G_MISS_NUM THEN NULL;
3988     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.invoicing_rule_id,p_old_line_rec.invoicing_rule_id) THEN
3989 
3990         l_result := INVOICING_RULE
3991             (p_operation        => l_operation
3992             ,p_record   => l_rowtype_rec
3993             ,x_on_operation_action => l_on_operation_action
3994             );
3995 
3996         IF l_result = OE_PC_GLOBALS.YES THEN
3997             -- set OUT result to CONSTRAINED
3998             x_result := OE_PC_GLOBALS.YES;
3999         END IF;
4000 
4001     END IF;
4002 
4003     IF p_line_rec.item_identifier_type = FND_API.G_MISS_CHAR THEN NULL;
4004     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.item_identifier_type,p_old_line_rec.item_identifier_type) THEN
4005 
4006         l_result := ITEM_IDENTIFIER_TYPE
4007             (p_operation        => l_operation
4008             ,p_record   => l_rowtype_rec
4009             ,x_on_operation_action => l_on_operation_action
4010             );
4011 
4012         IF l_result = OE_PC_GLOBALS.YES THEN
4013             -- set OUT result to CONSTRAINED
4014             x_result := OE_PC_GLOBALS.YES;
4015         END IF;
4016 
4017     END IF;
4018 
4019     IF p_line_rec.item_revision = FND_API.G_MISS_CHAR THEN NULL;
4020     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.item_revision,p_old_line_rec.item_revision) THEN
4021 
4022         l_result := ITEM_REVISION
4023             (p_operation        => l_operation
4024             ,p_record   => l_rowtype_rec
4025             ,x_on_operation_action => l_on_operation_action
4026             );
4027 
4028         IF l_result = OE_PC_GLOBALS.YES THEN
4029             -- set OUT result to CONSTRAINED
4030             x_result := OE_PC_GLOBALS.YES;
4031         END IF;
4032 
4033     END IF;
4034 
4035     IF p_line_rec.item_type_code = FND_API.G_MISS_CHAR THEN NULL;
4036     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.item_type_code,p_old_line_rec.item_type_code) THEN
4037 
4038         l_result := ITEM_TYPE
4039             (p_operation        => l_operation
4040             ,p_record   => l_rowtype_rec
4041             ,x_on_operation_action => l_on_operation_action
4042             );
4043 
4044         IF l_result = OE_PC_GLOBALS.YES THEN
4045             -- set OUT result to CONSTRAINED
4046             x_result := OE_PC_GLOBALS.YES;
4047         END IF;
4048 
4049     END IF;
4050 
4051     IF p_line_rec.latest_acceptable_date = FND_API.G_MISS_DATE THEN NULL;
4052     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.latest_acceptable_date,p_old_line_rec.latest_acceptable_date) THEN
4053 
4054         l_result := LATEST_ACCEPTABLE_DATE
4055             (p_operation        => l_operation
4056             ,p_record   => l_rowtype_rec
4057             ,x_on_operation_action => l_on_operation_action
4058             );
4059 
4060         IF l_result = OE_PC_GLOBALS.YES THEN
4061             -- set OUT result to CONSTRAINED
4062             x_result := OE_PC_GLOBALS.YES;
4063         END IF;
4064 
4065     END IF;
4066 
4067     IF p_line_rec.line_category_code = FND_API.G_MISS_CHAR THEN NULL;
4068     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.line_category_code,p_old_line_rec.line_category_code) THEN
4069 
4070         l_result := LINE_CATEGORY
4071             (p_operation        => l_operation
4072             ,p_record   => l_rowtype_rec
4073             ,x_on_operation_action => l_on_operation_action
4074             );
4075 
4076         IF l_result = OE_PC_GLOBALS.YES THEN
4077             -- set OUT result to CONSTRAINED
4078             x_result := OE_PC_GLOBALS.YES;
4079         END IF;
4080 
4081     END IF;
4082 
4083     IF p_line_rec.line_number = FND_API.G_MISS_NUM THEN NULL;
4084     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.line_number,p_old_line_rec.line_number) THEN
4085 
4086         l_result := LINE_NUMBER
4087             (p_operation        => l_operation
4088             ,p_record   => l_rowtype_rec
4089             ,x_on_operation_action => l_on_operation_action
4090             );
4091 
4092         IF l_result = OE_PC_GLOBALS.YES THEN
4093             -- set OUT result to CONSTRAINED
4094             x_result := OE_PC_GLOBALS.YES;
4095         END IF;
4096 
4097     END IF;
4098 
4099     IF p_line_rec.line_type_id = FND_API.G_MISS_NUM THEN NULL;
4100     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.line_type_id,p_old_line_rec.line_type_id) THEN
4101 
4102         l_result := LINE_TYPE
4103             (p_operation        => l_operation
4104             ,p_record   => l_rowtype_rec
4105             ,x_on_operation_action => l_on_operation_action
4106             );
4107 
4108         IF l_result = OE_PC_GLOBALS.YES THEN
4109             -- set OUT result to CONSTRAINED
4110             x_result := OE_PC_GLOBALS.YES;
4111         END IF;
4112 
4113     END IF;
4114 
4115     IF p_line_rec.ordered_quantity = FND_API.G_MISS_NUM THEN NULL;
4116     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.ordered_quantity,p_old_line_rec.ordered_quantity) THEN
4117 
4118         l_result := ORDERED_QUANTITY
4119             (p_operation        => l_operation
4120             ,p_record   => l_rowtype_rec
4121             ,x_on_operation_action => l_on_operation_action
4122             );
4123 
4124         IF l_result = OE_PC_GLOBALS.YES THEN
4125             -- set OUT result to CONSTRAINED
4126             x_result := OE_PC_GLOBALS.YES;
4127         END IF;
4128 
4129     END IF;
4130 
4131 -- OPM 1857167 start
4132     IF p_line_rec.ordered_quantity2 = FND_API.G_MISS_NUM THEN NULL;
4133     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.ordered_quantity2,p_old_line_rec.ordered_quantity2) THEN
4134 
4135         l_result := ORDERED_QUANTITY2
4136             (p_operation        => l_operation
4137             ,p_record   => l_rowtype_rec
4138             ,x_on_operation_action => l_on_operation_action
4139             );
4140 
4141         IF l_result = OE_PC_GLOBALS.YES THEN
4142             -- set OUT result to CONSTRAINED
4143             x_result := OE_PC_GLOBALS.YES;
4144         END IF;
4145 
4146     END IF;
4147 -- OPM 1857167 end
4148 
4149 
4150 
4151     IF p_line_rec.order_quantity_uom = FND_API.G_MISS_CHAR THEN NULL;
4152     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.order_quantity_uom,p_old_line_rec.order_quantity_uom) THEN
4153 
4154         l_result := ORDER_QUANTITY_UOM
4155             (p_operation        => l_operation
4156             ,p_record   => l_rowtype_rec
4157             ,x_on_operation_action => l_on_operation_action
4158             );
4159 
4160         IF l_result = OE_PC_GLOBALS.YES THEN
4161             -- set OUT result to CONSTRAINED
4162             x_result := OE_PC_GLOBALS.YES;
4163         END IF;
4164 
4165     END IF;
4166 
4167     IF p_line_rec.over_ship_reason_code = FND_API.G_MISS_CHAR THEN NULL;
4168     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.over_ship_reason_code,p_old_line_rec.over_ship_reason_code) THEN
4169 
4170         l_result := OVER_SHIP_REASON
4171             (p_operation        => l_operation
4172             ,p_record   => l_rowtype_rec
4173             ,x_on_operation_action => l_on_operation_action
4174             );
4175 
4176         IF l_result = OE_PC_GLOBALS.YES THEN
4177             -- set OUT result to CONSTRAINED
4178             x_result := OE_PC_GLOBALS.YES;
4179         END IF;
4180 
4181     END IF;
4182 
4183     IF p_line_rec.over_ship_resolved_flag = FND_API.G_MISS_CHAR THEN NULL;
4184     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.over_ship_resolved_flag,p_old_line_rec.over_ship_resolved_flag) THEN
4185 
4186         l_result := OVER_SHIP_RESOLVED
4187             (p_operation        => l_operation
4188             ,p_record   => l_rowtype_rec
4189             ,x_on_operation_action => l_on_operation_action
4190             );
4191 
4192         IF l_result = OE_PC_GLOBALS.YES THEN
4193             -- set OUT result to CONSTRAINED
4194             x_result := OE_PC_GLOBALS.YES;
4195         END IF;
4196 
4197     END IF;
4198 
4199     IF p_line_rec.packing_instructions = FND_API.G_MISS_CHAR THEN NULL;
4200     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.packing_instructions,p_old_line_rec.packing_instructions) THEN
4201 
4202         l_result := PACKING_INSTRUCTIONS
4203             (p_operation        => l_operation
4204             ,p_record   => l_rowtype_rec
4205             ,x_on_operation_action => l_on_operation_action
4206             );
4207 
4208         IF l_result = OE_PC_GLOBALS.YES THEN
4209             -- set OUT result to CONSTRAINED
4210             x_result := OE_PC_GLOBALS.YES;
4211         END IF;
4212 
4213     END IF;
4214 
4215     IF p_line_rec.payment_term_id = FND_API.G_MISS_NUM THEN NULL;
4216     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.payment_term_id,p_old_line_rec.payment_term_id) THEN
4217 
4218         l_result := PAYMENT_TERM
4219             (p_operation        => l_operation
4220             ,p_record   => l_rowtype_rec
4221             ,x_on_operation_action => l_on_operation_action
4222             );
4223 
4224         IF l_result = OE_PC_GLOBALS.YES THEN
4225             -- set OUT result to CONSTRAINED
4226             x_result := OE_PC_GLOBALS.YES;
4227         END IF;
4228 
4229     END IF;
4230 
4231     IF p_line_rec.planning_priority = FND_API.G_MISS_NUM THEN NULL;
4232     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.planning_priority,p_old_line_rec.planning_priority) THEN
4233 
4234         l_result := PLANNING_PRIORITY
4235             (p_operation        => l_operation
4236             ,p_record   => l_rowtype_rec
4237             ,x_on_operation_action => l_on_operation_action
4238             );
4239 
4240         IF l_result = OE_PC_GLOBALS.YES THEN
4241             -- set OUT result to CONSTRAINED
4242             x_result := OE_PC_GLOBALS.YES;
4243         END IF;
4244 
4245     END IF;
4246 
4247     IF p_line_rec.price_list_id = FND_API.G_MISS_NUM THEN NULL;
4248     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.price_list_id,p_old_line_rec.price_list_id) THEN
4249 
4250         l_result := PRICE_LIST
4251             (p_operation        => l_operation
4252             ,p_record   => l_rowtype_rec
4253             ,x_on_operation_action => l_on_operation_action
4254             );
4255 
4256         IF l_result = OE_PC_GLOBALS.YES THEN
4257             -- set OUT result to CONSTRAINED
4258             x_result := OE_PC_GLOBALS.YES;
4259         END IF;
4260 
4261     END IF;
4262 
4263     IF p_line_rec.pricing_date = FND_API.G_MISS_DATE THEN NULL;
4264     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.pricing_date,p_old_line_rec.pricing_date) THEN
4265 
4266         l_result := PRICING_DATE
4267             (p_operation        => l_operation
4268             ,p_record   => l_rowtype_rec
4269             ,x_on_operation_action => l_on_operation_action
4270             );
4271 
4272         IF l_result = OE_PC_GLOBALS.YES THEN
4273             -- set OUT result to CONSTRAINED
4274             x_result := OE_PC_GLOBALS.YES;
4275         END IF;
4276 
4277     END IF;
4278 
4279     IF p_line_rec.pricing_quantity = FND_API.G_MISS_NUM THEN NULL;
4280     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.pricing_quantity,p_old_line_rec.pricing_quantity) THEN
4281 
4282         l_result := PRICING_QUANTITY
4283             (p_operation        => l_operation
4284             ,p_record   => l_rowtype_rec
4285             ,x_on_operation_action => l_on_operation_action
4286             );
4287 
4288         IF l_result = OE_PC_GLOBALS.YES THEN
4289             -- set OUT result to CONSTRAINED
4290             x_result := OE_PC_GLOBALS.YES;
4291         END IF;
4292 
4293     END IF;
4294 
4295     IF p_line_rec.pricing_quantity_uom = FND_API.G_MISS_CHAR THEN NULL;
4296     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.pricing_quantity_uom,p_old_line_rec.pricing_quantity_uom) THEN
4297 
4298         l_result := PRICING_QUANTITY_UOM
4299             (p_operation        => l_operation
4300             ,p_record   => l_rowtype_rec
4301             ,x_on_operation_action => l_on_operation_action
4302             );
4303 
4304         IF l_result = OE_PC_GLOBALS.YES THEN
4305             -- set OUT result to CONSTRAINED
4306             x_result := OE_PC_GLOBALS.YES;
4307         END IF;
4308 
4309     END IF;
4310 
4311     IF p_line_rec.project_id = FND_API.G_MISS_NUM THEN NULL;
4312     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.project_id,p_old_line_rec.project_id) THEN
4313 
4314         l_result := PROJECT
4315             (p_operation        => l_operation
4316             ,p_record   => l_rowtype_rec
4317             ,x_on_operation_action => l_on_operation_action
4318             );
4319 
4320         IF l_result = OE_PC_GLOBALS.YES THEN
4321             -- set OUT result to CONSTRAINED
4322             x_result := OE_PC_GLOBALS.YES;
4323         END IF;
4324 
4325     END IF;
4326 
4327     IF p_line_rec.promise_date = FND_API.G_MISS_DATE THEN NULL;
4328     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.promise_date,p_old_line_rec.promise_date) THEN
4329 
4330         l_result := PROMISE_DATE
4331             (p_operation        => l_operation
4332             ,p_record   => l_rowtype_rec
4333             ,x_on_operation_action => l_on_operation_action
4334             );
4335 
4336         IF l_result = OE_PC_GLOBALS.YES THEN
4337             -- set OUT result to CONSTRAINED
4338             x_result := OE_PC_GLOBALS.YES;
4339         END IF;
4340 
4341     END IF;
4342 
4343     IF p_line_rec.request_date = FND_API.G_MISS_DATE THEN NULL;
4344     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.request_date,p_old_line_rec.request_date) THEN
4345 
4346         l_result := REQUEST_DATE
4347             (p_operation        => l_operation
4348             ,p_record   => l_rowtype_rec
4349             ,x_on_operation_action => l_on_operation_action
4350             );
4351 
4352         IF l_result = OE_PC_GLOBALS.YES THEN
4353             -- set OUT result to CONSTRAINED
4354             x_result := OE_PC_GLOBALS.YES;
4355         END IF;
4356 
4357     END IF;
4358 
4359     IF p_line_rec.return_reason_code = FND_API.G_MISS_CHAR THEN NULL;
4360     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.return_reason_code,p_old_line_rec.return_reason_code) THEN
4361 
4362         l_result := RETURN_REASON
4363             (p_operation        => l_operation
4364             ,p_record   => l_rowtype_rec
4365             ,x_on_operation_action => l_on_operation_action
4366             );
4367 
4368         IF l_result = OE_PC_GLOBALS.YES THEN
4369             -- set OUT result to CONSTRAINED
4370             x_result := OE_PC_GLOBALS.YES;
4371         END IF;
4372 
4373     END IF;
4374 
4375     IF p_line_rec.salesrep_id = FND_API.G_MISS_NUM THEN NULL;
4376     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.salesrep_id,p_old_line_rec.salesrep_id) THEN
4377 
4378         l_result := SALESREP
4379             (p_operation        => l_operation
4380             ,p_record   => l_rowtype_rec
4381             ,x_on_operation_action => l_on_operation_action
4382             );
4383 
4384         IF l_result = OE_PC_GLOBALS.YES THEN
4385             -- set OUT result to CONSTRAINED
4386             x_result := OE_PC_GLOBALS.YES;
4387         END IF;
4388 
4389     END IF;
4390 
4391     IF p_line_rec.schedule_arrival_date = FND_API.G_MISS_DATE THEN NULL;
4392      ELSIF NOT OE_GLOBALS.EQUAL(trunc(p_line_rec.schedule_arrival_date),trunc(p_old_line_rec.schedule_arrival_date)) THEN
4393 
4394         l_result := SCHEDULE_ARRIVAL_DATE
4395             (p_operation        => l_operation
4396             ,p_record   => l_rowtype_rec
4397             ,x_on_operation_action => l_on_operation_action
4398             );
4399 
4400         IF l_result = OE_PC_GLOBALS.YES THEN
4401             -- set OUT result to CONSTRAINED
4402             x_result := OE_PC_GLOBALS.YES;
4403         END IF;
4404 
4405     END IF;
4406 
4407     IF p_line_rec.schedule_ship_date = FND_API.G_MISS_DATE THEN NULL;
4408     ELSIF NOT OE_GLOBALS.EQUAL(trunc(p_line_rec.schedule_ship_date),trunc(p_old_line_rec.schedule_ship_date)) THEN
4409 
4410         l_result := SCHEDULE_SHIP_DATE
4411             (p_operation        => l_operation
4412             ,p_record   => l_rowtype_rec
4413             ,x_on_operation_action => l_on_operation_action
4414             );
4415 
4416         IF l_result = OE_PC_GLOBALS.YES THEN
4417             -- set OUT result to CONSTRAINED
4418             x_result := OE_PC_GLOBALS.YES;
4419         END IF;
4420 
4421     END IF;
4422 
4423     IF p_line_rec.service_reference_line_id = FND_API.G_MISS_NUM THEN NULL;
4424     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_reference_line_id,p_old_line_rec.service_reference_line_id) THEN
4425 
4426         l_result := SERVICE_REFERENCE_LINE
4427             (p_operation        => l_operation
4428             ,p_record   => l_rowtype_rec
4429             ,x_on_operation_action => l_on_operation_action
4430             );
4431 
4432         IF l_result = OE_PC_GLOBALS.YES THEN
4433             -- set OUT result to CONSTRAINED
4434             x_result := OE_PC_GLOBALS.YES;
4435         END IF;
4436 
4437     END IF;
4438 
4439     IF p_line_rec.service_reference_system_id = FND_API.G_MISS_NUM THEN NULL;
4440     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_reference_system_id,p_old_line_rec.service_reference_system_id) THEN
4441 
4442         l_result := SERVICE_REFERENCE_SYSTEM
4443             (p_operation        => l_operation
4444             ,p_record   => l_rowtype_rec
4445             ,x_on_operation_action => l_on_operation_action
4446             );
4447 
4448         IF l_result = OE_PC_GLOBALS.YES THEN
4449             -- set OUT result to CONSTRAINED
4450             x_result := OE_PC_GLOBALS.YES;
4451         END IF;
4452 
4453     END IF;
4454 
4455     IF p_line_rec.service_reference_type_code = FND_API.G_MISS_CHAR THEN NULL;
4456     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_reference_type_code,p_old_line_rec.service_reference_type_code) THEN
4457 
4458         l_result := SERVICE_REFERENCE_TYPE
4459             (p_operation        => l_operation
4460             ,p_record   => l_rowtype_rec
4461             ,x_on_operation_action => l_on_operation_action
4462             );
4463 
4464         IF l_result = OE_PC_GLOBALS.YES THEN
4465             -- set OUT result to CONSTRAINED
4466             x_result := OE_PC_GLOBALS.YES;
4467         END IF;
4468 
4469     END IF;
4470 
4471     /* Fix to bug 2205900: Added constraints functions for
4472     some missing SERVICE fields */
4473 
4474     IF p_line_rec.service_coterminate_flag = FND_API.G_MISS_CHAR THEN NULL;
4475     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_coterminate_flag,p_old_line_rec.service_coterminate_flag) THEN
4476 
4477         l_result := SERVICE_COTERMINATE
4478             (p_operation        => l_operation
4479             ,p_record   => l_rowtype_rec
4480             ,x_on_operation_action => l_on_operation_action
4481             );
4482 
4483         IF l_result = OE_PC_GLOBALS.YES THEN
4484             -- set OUT result to CONSTRAINED
4485             x_result := OE_PC_GLOBALS.YES;
4486         END IF;
4487 
4488     END IF;
4489 
4490     IF p_line_rec.service_duration = FND_API.G_MISS_NUM THEN NULL;
4491     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_duration,p_old_line_rec.service_duration) THEN
4492 
4493         l_result := SERVICE_DURATION
4494             (p_operation        => l_operation
4495             ,p_record   => l_rowtype_rec
4496             ,x_on_operation_action => l_on_operation_action
4497             );
4498 
4499         IF l_result = OE_PC_GLOBALS.YES THEN
4500             -- set OUT result to CONSTRAINED
4501             x_result := OE_PC_GLOBALS.YES;
4502         END IF;
4503 
4504     END IF;
4505 
4506     IF p_line_rec.service_end_date = FND_API.G_MISS_DATE THEN NULL;
4507     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_end_date,p_old_line_rec.service_end_date) THEN
4508 
4509         l_result := SERVICE_END_DATE
4510             (p_operation        => l_operation
4511             ,p_record   => l_rowtype_rec
4512             ,x_on_operation_action => l_on_operation_action
4513             );
4514 
4515         IF l_result = OE_PC_GLOBALS.YES THEN
4516             -- set OUT result to CONSTRAINED
4517             x_result := OE_PC_GLOBALS.YES;
4518         END IF;
4519 
4520     END IF;
4521 
4522     IF p_line_rec.service_period = FND_API.G_MISS_CHAR THEN NULL;
4523     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_period,p_old_line_rec.service_period) THEN
4524 
4525         l_result := SERVICE_PERIOD
4526             (p_operation        => l_operation
4527             ,p_record   => l_rowtype_rec
4528             ,x_on_operation_action => l_on_operation_action
4529             );
4530 
4531         IF l_result = OE_PC_GLOBALS.YES THEN
4532             -- set OUT result to CONSTRAINED
4533             x_result := OE_PC_GLOBALS.YES;
4534         END IF;
4535 
4536     END IF;
4537 
4538     IF p_line_rec.service_start_date = FND_API.G_MISS_DATE THEN NULL;
4539     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_start_date,p_old_line_rec.service_start_date) THEN
4540 
4541         l_result := SERVICE_START_DATE
4542             (p_operation        => l_operation
4543             ,p_record   => l_rowtype_rec
4544             ,x_on_operation_action => l_on_operation_action
4545             );
4546 
4547         IF l_result = OE_PC_GLOBALS.YES THEN
4548             -- set OUT result to CONSTRAINED
4549             x_result := OE_PC_GLOBALS.YES;
4550         END IF;
4551 
4552     END IF;
4553 
4554     IF p_line_rec.service_txn_comments = FND_API.G_MISS_CHAR THEN NULL;
4555     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_txn_comments,p_old_line_rec.service_txn_comments) THEN
4556 
4557         l_result := SERVICE_TXN_COMMENTS
4558             (p_operation        => l_operation
4559             ,p_record   => l_rowtype_rec
4560             ,x_on_operation_action => l_on_operation_action
4561             );
4562 
4563         IF l_result = OE_PC_GLOBALS.YES THEN
4564             -- set OUT result to CONSTRAINED
4565             x_result := OE_PC_GLOBALS.YES;
4566         END IF;
4567 
4568     END IF;
4569 
4570     IF p_line_rec.service_txn_reason_code = FND_API.G_MISS_CHAR THEN NULL;
4571     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_txn_reason_code,p_old_line_rec.service_txn_reason_code) THEN
4572 
4573         l_result := SERVICE_TXN_REASON
4574             (p_operation        => l_operation
4575             ,p_record   => l_rowtype_rec
4576             ,x_on_operation_action => l_on_operation_action
4577             );
4578 
4579         IF l_result = OE_PC_GLOBALS.YES THEN
4580             -- set OUT result to CONSTRAINED
4581             x_result := OE_PC_GLOBALS.YES;
4582         END IF;
4583 
4584     END IF;
4585 
4586 	--sol_ord_er #16014165 start
4587 	IF p_line_rec.service_bill_profile_id = FND_API.G_MISS_NUM THEN
4588 		NULL;
4589     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_bill_profile_id,p_old_line_rec.service_bill_profile_id) THEN
4590         l_result := SERVICE_BILLING_PROFILE
4591             (p_operation        => l_operation
4592             ,p_record   => l_rowtype_rec
4593             ,x_on_operation_action => l_on_operation_action
4594             );
4595         IF l_result = OE_PC_GLOBALS.YES THEN
4596             -- set OUT result to CONSTRAINED
4597             x_result := OE_PC_GLOBALS.YES;
4598         END IF;
4599     END IF;
4600 
4601 	IF p_line_rec.service_bill_option_code = FND_API.G_MISS_CHAR THEN
4602 		NULL;
4603     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_bill_option_code,p_old_line_rec.service_bill_option_code) THEN
4604         l_result := SERVICE_BILLING_OPTION
4605             (p_operation        => l_operation
4606             ,p_record   => l_rowtype_rec
4607             ,x_on_operation_action => l_on_operation_action
4608             );
4609         IF l_result = OE_PC_GLOBALS.YES THEN
4610             -- set OUT result to CONSTRAINED
4611             x_result := OE_PC_GLOBALS.YES;
4612         END IF;
4613     END IF;
4614 
4615 	IF p_line_rec.service_cov_template_id = FND_API.G_MISS_NUM THEN
4616 		NULL;
4617     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_cov_template_id,p_old_line_rec.service_cov_template_id) THEN
4618         l_result := SERVICE_COVERAGE_TEMPLATE
4619             (p_operation        => l_operation
4620             ,p_record   => l_rowtype_rec
4621             ,x_on_operation_action => l_on_operation_action
4622             );
4623         IF l_result = OE_PC_GLOBALS.YES THEN
4624             -- set OUT result to CONSTRAINED
4625             x_result := OE_PC_GLOBALS.YES;
4626         END IF;
4627     END IF;
4628 
4629 	IF p_line_rec.service_subs_template_id = FND_API.G_MISS_NUM THEN
4630 		NULL;
4631     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.service_subs_template_id,p_old_line_rec.service_subs_template_id) THEN
4632         l_result := SERVICE_SUBSCRIPTION_TEMPLATE
4633             (p_operation        => l_operation
4634             ,p_record   => l_rowtype_rec
4635             ,x_on_operation_action => l_on_operation_action
4636             );
4637         IF l_result = OE_PC_GLOBALS.YES THEN
4638             -- set OUT result to CONSTRAINED
4639             x_result := OE_PC_GLOBALS.YES;
4640         END IF;
4641     END IF;
4642 
4643 	IF p_line_rec.SUBSCRIPTION_ENABLE_FLAG = FND_API.G_MISS_CHAR THEN
4644 		NULL;
4645     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.SUBSCRIPTION_ENABLE_FLAG,p_old_line_rec.SUBSCRIPTION_ENABLE_FLAG) THEN
4646         l_result := SUBSCRIPTION_ENABLE_FLAG
4647             (p_operation        => l_operation
4648             ,p_record   => l_rowtype_rec
4649             ,x_on_operation_action => l_on_operation_action
4650             );
4651         IF l_result = OE_PC_GLOBALS.YES THEN
4652             -- set OUT result to CONSTRAINED
4653             x_result := OE_PC_GLOBALS.YES;
4654         END IF;
4655     END IF;
4656 	--sol_ord_er #16014165 end
4657 
4658     IF p_line_rec.shipment_number = FND_API.G_MISS_NUM THEN NULL;
4659     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.shipment_number,p_old_line_rec.shipment_number) THEN
4660 
4661         l_result := SHIPMENT_NUMBER
4662             (p_operation        => l_operation
4663             ,p_record   => l_rowtype_rec
4664             ,x_on_operation_action => l_on_operation_action
4665             );
4666 
4667         IF l_result = OE_PC_GLOBALS.YES THEN
4668             -- set OUT result to CONSTRAINED
4669             x_result := OE_PC_GLOBALS.YES;
4670         END IF;
4671 
4672     END IF;
4673 
4674     IF p_line_rec.shipment_priority_code = FND_API.G_MISS_CHAR THEN NULL;
4675     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.shipment_priority_code,p_old_line_rec.shipment_priority_code) THEN
4676 
4677         l_result := SHIPMENT_PRIORITY
4678             (p_operation        => l_operation
4679             ,p_record   => l_rowtype_rec
4680             ,x_on_operation_action => l_on_operation_action
4681             );
4682 
4683         IF l_result = OE_PC_GLOBALS.YES THEN
4684             -- set OUT result to CONSTRAINED
4685             x_result := OE_PC_GLOBALS.YES;
4686         END IF;
4687 
4688     END IF;
4689 
4690     IF p_line_rec.shipped_quantity = FND_API.G_MISS_NUM THEN NULL;
4691     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.shipped_quantity,p_old_line_rec.shipped_quantity) THEN
4692 
4693         l_result := SHIPPED_QUANTITY
4694             (p_operation        => l_operation
4695             ,p_record   => l_rowtype_rec
4696             ,x_on_operation_action => l_on_operation_action
4697             );
4698 
4699         IF l_result = OE_PC_GLOBALS.YES THEN
4700             -- set OUT result to CONSTRAINED
4701             x_result := OE_PC_GLOBALS.YES;
4702         END IF;
4703 
4704     END IF;
4705 
4706 -- INVCONV
4707    IF p_line_rec.shipped_quantity2 = FND_API.G_MISS_NUM THEN NULL;
4708     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.shipped_quantity2,p_old_line_rec.shipped_quantity2) THEN
4709 
4710         l_result := SHIPPED_QUANTITY2
4711             (p_operation        => l_operation
4712             ,p_record   => l_rowtype_rec
4713             ,x_on_operation_action => l_on_operation_action
4714             );
4715 
4716         IF l_result = OE_PC_GLOBALS.YES THEN
4717             -- set OUT result to CONSTRAINED
4718             x_result := OE_PC_GLOBALS.YES;
4719         END IF;
4720 
4721     END IF;
4722 
4723 
4724     IF p_line_rec.shipping_instructions = FND_API.G_MISS_CHAR THEN NULL;
4725     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.shipping_instructions,p_old_line_rec.shipping_instructions) THEN
4726 
4727         l_result := SHIPPING_INSTRUCTIONS
4728             (p_operation        => l_operation
4729             ,p_record   => l_rowtype_rec
4730             ,x_on_operation_action => l_on_operation_action
4731             );
4732 
4733         IF l_result = OE_PC_GLOBALS.YES THEN
4734             -- set OUT result to CONSTRAINED
4735             x_result := OE_PC_GLOBALS.YES;
4736         END IF;
4737 
4738     END IF;
4739 
4740     IF p_line_rec.shipping_method_code = FND_API.G_MISS_CHAR THEN NULL;
4741     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.shipping_method_code,p_old_line_rec.shipping_method_code) THEN
4742 
4743         l_result := SHIPPING_METHOD
4744             (p_operation        => l_operation
4745             ,p_record   => l_rowtype_rec
4746             ,x_on_operation_action => l_on_operation_action
4747             );
4748 
4749         IF l_result = OE_PC_GLOBALS.YES THEN
4750             -- set OUT result to CONSTRAINED
4751             x_result := OE_PC_GLOBALS.YES;
4752         END IF;
4753 
4754     END IF;
4755 
4756     IF p_line_rec.shipping_quantity = FND_API.G_MISS_NUM THEN NULL;
4757     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.shipping_quantity,p_old_line_rec.shipping_quantity) THEN
4758 
4759         l_result := SHIPPING_QUANTITY
4760             (p_operation        => l_operation
4761             ,p_record   => l_rowtype_rec
4762             ,x_on_operation_action => l_on_operation_action
4763             );
4764 
4765         IF l_result = OE_PC_GLOBALS.YES THEN
4766             -- set OUT result to CONSTRAINED
4767             x_result := OE_PC_GLOBALS.YES;
4768         END IF;
4769 
4770     END IF;
4771 
4772 -- INVCONV
4773 	  IF p_line_rec.shipping_quantity2 = FND_API.G_MISS_NUM THEN NULL;
4774     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.shipping_quantity2,p_old_line_rec.shipping_quantity2) THEN
4775 
4776         l_result := SHIPPING_QUANTITY2
4777             (p_operation        => l_operation
4778             ,p_record   => l_rowtype_rec
4779             ,x_on_operation_action => l_on_operation_action
4780             );
4781 
4782         IF l_result = OE_PC_GLOBALS.YES THEN
4783             -- set OUT result to CONSTRAINED
4784             x_result := OE_PC_GLOBALS.YES;
4785         END IF;
4786 
4787     END IF;
4788 
4789 
4790 
4791     IF p_line_rec.shipping_quantity_uom = FND_API.G_MISS_CHAR THEN NULL;
4792     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.shipping_quantity_uom,p_old_line_rec.shipping_quantity_uom) THEN
4793 
4794         l_result := SHIPPING_QUANTITY_UOM
4795             (p_operation        => l_operation
4796             ,p_record   => l_rowtype_rec
4797             ,x_on_operation_action => l_on_operation_action
4798             );
4799 
4800         IF l_result = OE_PC_GLOBALS.YES THEN
4801             -- set OUT result to CONSTRAINED
4802             x_result := OE_PC_GLOBALS.YES;
4803         END IF;
4804 
4805     END IF;
4806 
4807 -- INVCONV
4808 		IF p_line_rec.shipping_quantity_uom2 = FND_API.G_MISS_CHAR THEN NULL;
4809      ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.shipping_quantity_uom2,p_old_line_rec.shipping_quantity_uom2) THEN
4810 
4811         l_result := SHIPPING_QUANTITY_UOM2
4812             (p_operation        => l_operation
4813             ,p_record   => l_rowtype_rec
4814             ,x_on_operation_action => l_on_operation_action
4815             );
4816 
4817         IF l_result = OE_PC_GLOBALS.YES THEN
4818             -- set OUT result to CONSTRAINED
4819             x_result := OE_PC_GLOBALS.YES;
4820         END IF;
4821 
4822      END IF;
4823 
4824 
4825     IF p_line_rec.ship_from_org_id = FND_API.G_MISS_NUM THEN NULL;
4826     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.ship_from_org_id,p_old_line_rec.ship_from_org_id) THEN
4827 
4828         l_result := SHIP_FROM_ORG
4829             (p_operation        => l_operation
4830             ,p_record   => l_rowtype_rec
4831             ,x_on_operation_action => l_on_operation_action
4832             );
4833 
4834         IF l_result = OE_PC_GLOBALS.YES THEN
4835             -- set OUT result to CONSTRAINED
4836             x_result := OE_PC_GLOBALS.YES;
4837         END IF;
4838 
4839     END IF;
4840 
4841     IF p_line_rec.ship_model_complete_flag = FND_API.G_MISS_CHAR THEN NULL;
4842     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.ship_model_complete_flag,p_old_line_rec.ship_model_complete_flag) THEN
4843 
4844         l_result := SHIP_MODEL_COMPLETE
4845             (p_operation        => l_operation
4846             ,p_record   => l_rowtype_rec
4847             ,x_on_operation_action => l_on_operation_action
4848             );
4849 
4850         IF l_result = OE_PC_GLOBALS.YES THEN
4851             -- set OUT result to CONSTRAINED
4852             x_result := OE_PC_GLOBALS.YES;
4853         END IF;
4854 
4855     END IF;
4856 
4857     IF p_line_rec.ship_set_id = FND_API.G_MISS_NUM THEN NULL;
4858     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.ship_set_id,p_old_line_rec.ship_set_id)
4859     OR    NOT OE_GLOBALS.EQUAL(p_line_rec.ship_set,p_old_line_rec.ship_set) THEN
4860 
4861         l_result := SHIP_SET
4862             (p_operation        => l_operation
4863             ,p_record   => l_rowtype_rec
4864             ,x_on_operation_action => l_on_operation_action
4865             );
4866 
4867         IF l_result = OE_PC_GLOBALS.YES THEN
4868             -- set OUT result to CONSTRAINED
4869             x_result := OE_PC_GLOBALS.YES;
4870         END IF;
4871 
4872     END IF;
4873 
4874     IF p_line_rec.ship_tolerance_above = FND_API.G_MISS_NUM THEN NULL;
4875     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.ship_tolerance_above,p_old_line_rec.ship_tolerance_above) THEN
4876 
4877         l_result := SHIP_TOLERANCE_ABOVE
4878             (p_operation        => l_operation
4879             ,p_record   => l_rowtype_rec
4880             ,x_on_operation_action => l_on_operation_action
4881             );
4882 
4883         IF l_result = OE_PC_GLOBALS.YES THEN
4884             -- set OUT result to CONSTRAINED
4885             x_result := OE_PC_GLOBALS.YES;
4886         END IF;
4887 
4888     END IF;
4889 
4890     IF p_line_rec.ship_tolerance_below = FND_API.G_MISS_NUM THEN NULL;
4891     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.ship_tolerance_below,p_old_line_rec.ship_tolerance_below) THEN
4892 
4893         l_result := SHIP_TOLERANCE_BELOW
4894             (p_operation        => l_operation
4895             ,p_record   => l_rowtype_rec
4896             ,x_on_operation_action => l_on_operation_action
4897             );
4898 
4899         IF l_result = OE_PC_GLOBALS.YES THEN
4900             -- set OUT result to CONSTRAINED
4901             x_result := OE_PC_GLOBALS.YES;
4902         END IF;
4903 
4904     END IF;
4905 
4906     IF p_line_rec.ship_to_contact_id = FND_API.G_MISS_NUM THEN NULL;
4907     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.ship_to_contact_id,p_old_line_rec.ship_to_contact_id) THEN
4908 
4909         l_result := SHIP_TO_CONTACT
4910             (p_operation        => l_operation
4911             ,p_record   => l_rowtype_rec
4912             ,x_on_operation_action => l_on_operation_action
4913             );
4914 
4915         IF l_result = OE_PC_GLOBALS.YES THEN
4916             -- set OUT result to CONSTRAINED
4917             x_result := OE_PC_GLOBALS.YES;
4918         END IF;
4919 
4920     END IF;
4921 
4922     IF p_line_rec.ship_to_org_id = FND_API.G_MISS_NUM THEN NULL;
4923     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.ship_to_org_id,p_old_line_rec.ship_to_org_id) THEN
4924 
4925         l_result := SHIP_TO_ORG
4926             (p_operation        => l_operation
4927             ,p_record   => l_rowtype_rec
4928             ,x_on_operation_action => l_on_operation_action
4929             );
4930 
4931         IF l_result = OE_PC_GLOBALS.YES THEN
4932             -- set OUT result to CONSTRAINED
4933             x_result := OE_PC_GLOBALS.YES;
4934         END IF;
4935 
4936     END IF;
4937 
4938     IF p_line_rec.sold_to_org_id = FND_API.G_MISS_NUM THEN NULL;
4939     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.sold_to_org_id,p_old_line_rec.sold_to_org_id) THEN
4940 
4941         l_result := SOLD_TO_ORG
4942             (p_operation        => l_operation
4943             ,p_record   => l_rowtype_rec
4944             ,x_on_operation_action => l_on_operation_action
4945             );
4946 
4947         IF l_result = OE_PC_GLOBALS.YES THEN
4948             -- set OUT result to CONSTRAINED
4949             x_result := OE_PC_GLOBALS.YES;
4950         END IF;
4951 
4952     END IF;
4953 
4954     IF p_line_rec.source_type_code = FND_API.G_MISS_CHAR THEN NULL;
4955     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.source_type_code,p_old_line_rec.source_type_code) THEN
4956 
4957         l_result := SOURCE_TYPE
4958             (p_operation        => l_operation
4959             ,p_record   => l_rowtype_rec
4960             ,x_on_operation_action => l_on_operation_action
4961             );
4962 
4963         IF l_result = OE_PC_GLOBALS.YES THEN
4964             -- set OUT result to CONSTRAINED
4965             x_result := OE_PC_GLOBALS.YES;
4966         END IF;
4967 
4968     END IF;
4969 
4970     IF p_line_rec.subinventory = FND_API.G_MISS_CHAR THEN NULL;
4971     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.subinventory,p_old_line_rec.subinventory) THEN
4972 
4973         l_result := SUBINVENTORY
4974             (p_operation        => l_operation
4975             ,p_record   => l_rowtype_rec
4976             ,x_on_operation_action => l_on_operation_action
4977             );
4978 
4979         IF l_result = OE_PC_GLOBALS.YES THEN
4980             -- set OUT result to CONSTRAINED
4981             x_result := OE_PC_GLOBALS.YES;
4982         END IF;
4983 
4984     END IF;
4985 
4986     IF p_line_rec.task_id = FND_API.G_MISS_NUM THEN NULL;
4987     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.task_id,p_old_line_rec.task_id) THEN
4988 
4989         l_result := TASK
4990             (p_operation        => l_operation
4991             ,p_record   => l_rowtype_rec
4992             ,x_on_operation_action => l_on_operation_action
4993             );
4994 
4995         IF l_result = OE_PC_GLOBALS.YES THEN
4996             -- set OUT result to CONSTRAINED
4997             x_result := OE_PC_GLOBALS.YES;
4998         END IF;
4999 
5000     END IF;
5001 
5002     IF p_line_rec.tax_code = FND_API.G_MISS_CHAR THEN NULL;
5003     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.tax_code,p_old_line_rec.tax_code) THEN
5004 
5005         l_result := TAX
5006             (p_operation        => l_operation
5007             ,p_record   => l_rowtype_rec
5008             ,x_on_operation_action => l_on_operation_action
5009             );
5010 
5011         IF l_result = OE_PC_GLOBALS.YES THEN
5012             -- set OUT result to CONSTRAINED
5013             x_result := OE_PC_GLOBALS.YES;
5014         END IF;
5015 
5016     END IF;
5017 
5018     IF p_line_rec.tax_date = FND_API.G_MISS_DATE THEN NULL;
5019     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.tax_date,p_old_line_rec.tax_date) THEN
5020 
5021         l_result := TAX_DATE
5022             (p_operation        => l_operation
5023             ,p_record   => l_rowtype_rec
5024             ,x_on_operation_action => l_on_operation_action
5025             );
5026 
5027         IF l_result = OE_PC_GLOBALS.YES THEN
5028             -- set OUT result to CONSTRAINED
5029             x_result := OE_PC_GLOBALS.YES;
5030         END IF;
5031 
5032     END IF;
5033 
5034     IF p_line_rec.tax_exempt_flag = FND_API.G_MISS_CHAR THEN NULL;
5035     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.tax_exempt_flag,p_old_line_rec.tax_exempt_flag) THEN
5036 
5037         l_result := TAX_EXEMPT
5038             (p_operation        => l_operation
5039             ,p_record   => l_rowtype_rec
5040             ,x_on_operation_action => l_on_operation_action
5041             );
5042 
5043         IF l_result = OE_PC_GLOBALS.YES THEN
5044             -- set OUT result to CONSTRAINED
5045             x_result := OE_PC_GLOBALS.YES;
5046         END IF;
5047 
5048     END IF;
5049 
5050     IF p_line_rec.tax_exempt_number = FND_API.G_MISS_CHAR THEN NULL;
5051     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.tax_exempt_number,p_old_line_rec.tax_exempt_number) THEN
5052 
5053         l_result := TAX_EXEMPT_NUMBER
5054             (p_operation        => l_operation
5055             ,p_record   => l_rowtype_rec
5056             ,x_on_operation_action => l_on_operation_action
5057             );
5058 
5059         IF l_result = OE_PC_GLOBALS.YES THEN
5060             -- set OUT result to CONSTRAINED
5061             x_result := OE_PC_GLOBALS.YES;
5062         END IF;
5063 
5064     END IF;
5065 
5066     IF p_line_rec.tax_exempt_reason_code = FND_API.G_MISS_CHAR THEN NULL;
5067     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.tax_exempt_reason_code,p_old_line_rec.tax_exempt_reason_code) THEN
5068 
5069         l_result := TAX_EXEMPT_REASON
5070             (p_operation        => l_operation
5071             ,p_record   => l_rowtype_rec
5072             ,x_on_operation_action => l_on_operation_action
5073             );
5074 
5075         IF l_result = OE_PC_GLOBALS.YES THEN
5076             -- set OUT result to CONSTRAINED
5077             x_result := OE_PC_GLOBALS.YES;
5078         END IF;
5079 
5080     END IF;
5081 
5082     IF p_line_rec.unit_list_price = FND_API.G_MISS_NUM THEN NULL;
5083     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.unit_list_price,p_old_line_rec.unit_list_price) THEN
5084 
5085         l_result := UNIT_LIST_PRICE
5086             (p_operation        => l_operation
5087             ,p_record   => l_rowtype_rec
5088             ,x_on_operation_action => l_on_operation_action
5089             );
5090 
5091         IF l_result = OE_PC_GLOBALS.YES THEN
5092             -- set OUT result to CONSTRAINED
5093             x_result := OE_PC_GLOBALS.YES;
5094         END IF;
5095 
5096     END IF;
5097 
5098     IF p_line_rec.unit_selling_price = FND_API.G_MISS_NUM THEN NULL;
5099     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.unit_selling_price,p_old_line_rec.unit_selling_price) THEN
5100 
5101         l_result := UNIT_SELLING_PRICE
5102             (p_operation        => l_operation
5103             ,p_record   => l_rowtype_rec
5104             ,x_on_operation_action => l_on_operation_action
5105             );
5106 
5107         IF l_result = OE_PC_GLOBALS.YES THEN
5108             -- set OUT result to CONSTRAINED
5109             x_result := OE_PC_GLOBALS.YES;
5110         END IF;
5111 
5112     END IF;
5113 
5114     -- BEGIN: Blankets Code Merge
5115     IF p_line_rec.blanket_number = FND_API.G_MISS_NUM THEN NULL;
5116     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.blanket_number,p_old_line_rec.blanket_number) THEN
5117 
5118         l_result := BLANKET_NUMBER
5119             (p_operation        => l_operation
5120             ,p_record   => l_rowtype_rec
5121             ,x_on_operation_action => l_on_operation_action
5122             );
5123 
5124         IF l_result = OE_PC_GLOBALS.YES THEN
5125             -- set OUT result to CONSTRAINED
5126             x_result := OE_PC_GLOBALS.YES;
5127         END IF;
5128 
5129     END IF;
5130 
5131     IF p_line_rec.blanket_line_number = FND_API.G_MISS_NUM THEN NULL;
5132     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.blanket_line_number,p_old_line_rec.blanket_line_number) THEN
5133 
5134         l_result := BLANKET_LINE_NUMBER
5135             (p_operation        => l_operation
5136             ,p_record   => l_rowtype_rec
5137             ,x_on_operation_action => l_on_operation_action
5138             );
5139 
5140         IF l_result = OE_PC_GLOBALS.YES THEN
5141             -- set OUT result to CONSTRAINED
5142             x_result := OE_PC_GLOBALS.YES;
5143         END IF;
5144 
5145     END IF;
5146     -- END: Blankets Code Merge
5147 
5148     IF ((nvl(p_line_rec.calculate_price_flag,'N')='Y') AND
5149 	  (p_line_rec.price_list_id IS NOT NULL) AND
5150 	  (NOT OE_GLOBALS.Equal(p_line_rec.price_list_id,
5151 		 p_old_line_rec.price_list_id)) )   THEN
5152       BEGIN
5153 	   SELECT active_flag
5154 	   INTO l_active_flag
5155 	   FROM qp_List_headers_vl
5156 	   WHERE list_header_id = p_line_rec.price_list_id;
5157 
5158 	   IF NVL(l_active_flag,'N')='N' THEN
5159 		FND_MESSAGE.SET_NAME('ONT','OE_INACTIVE_PRICELIST');
5160           OE_MSG_PUB.ADD;
5161 		RAISE FND_API.G_EXC_ERROR;
5162 	   END IF;
5163 	 EXCEPTION
5164 	   WHEN OTHERS THEN
5165               IF l_debug_level  > 0 THEN
5166 		oe_debug_pub.add('when others',1);
5167               END IF;
5168 	 END;
5169     END IF;
5170 
5171     IF p_line_rec.calculate_price_flag = FND_API.G_MISS_CHAR THEN
5172        NULL;
5173     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.calculate_price_flag
5174                               ,p_old_line_rec.calculate_price_flag) THEN
5175 
5176        l_result := calculate_price_flag(p_operation           => l_operation
5177                                        ,p_record              => l_rowtype_rec
5178                                        ,x_on_operation_action => l_on_operation_action);
5179 
5180        IF l_result = OE_PC_GLOBALS.YES THEN
5181           -- set OUT result to CONSTRAINED
5182           x_result := OE_PC_GLOBALS.YES;
5183        END IF;
5184     END IF;
5185 
5186     IF p_line_rec.customer_shipment_number = FND_API.G_MISS_CHAR THEN
5187        NULL;
5188     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.customer_shipment_number,p_old_line_rec.customer_shipment_number) THEN
5189 
5190         l_result := CUSTOMER_SHIPMENT_NUMBER
5191             (p_operation        => l_operation
5192             ,p_record   => l_rowtype_rec
5193             ,x_on_operation_action => l_on_operation_action
5194             );
5195 
5196         IF l_result = OE_PC_GLOBALS.YES THEN
5197             -- set OUT result to CONSTRAINED
5198             x_result := OE_PC_GLOBALS.YES;
5199         END IF;
5200 
5201     END IF;
5202 
5203 
5204 
5205     -- BEGIN: CHECK FOR CONSTRAINTS ON DESC FLEXFIELD ATTRIBUTES
5206     -- Bug 2003823:
5207     -- If profile indicates that generic update constraints (e.g. seeded
5208     -- closed order condition) should not be checked for DFF, then
5209     -- set the global to 'N'.
5210     -- Also, store the current value of global in a local variable and
5211     -- re-set it after DFF check. If DFF were the only fields being
5212     -- updated and profile was set to 'N', global at the end should
5213     -- be re-set to 'Y' - this indicates to process order that no
5214     -- constrainable attributes were updated and thus, it would
5215     -- suppress entity level security check also.
5216     IF OE_PC_GLOBALS.G_CHECK_UPDATE_ALL_FOR_DFF = 'N' THEN
5217        l_check_all_cols_constraint := g_check_all_cols_constraint;
5218        g_check_all_cols_constraint := 'N';
5219     END IF;
5220 
5221     IF p_line_rec.context = FND_API.G_MISS_CHAR THEN NULL;
5222     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.context,p_old_line_rec.context) THEN
5223 
5224         l_result := CONTEXT
5225             (p_operation        => l_operation
5226             ,p_record   => l_rowtype_rec
5227             ,x_on_operation_action => l_on_operation_action
5228             );
5229 
5230         IF l_result = OE_PC_GLOBALS.YES THEN
5231             -- set OUT result to CONSTRAINED
5232             x_result := OE_PC_GLOBALS.YES;
5233         END IF;
5234 
5235     END IF;
5236 
5237     IF p_line_rec.attribute1 = FND_API.G_MISS_CHAR THEN NULL;
5238     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute1,p_old_line_rec.attribute1) THEN
5239 
5240         l_result := ATTRIBUTE1
5241             (p_operation        => l_operation
5242             ,p_record   => l_rowtype_rec
5243             ,x_on_operation_action => l_on_operation_action
5244             );
5245 
5246         IF l_result = OE_PC_GLOBALS.YES THEN
5247             -- set OUT result to CONSTRAINED
5248             x_result := OE_PC_GLOBALS.YES;
5249         END IF;
5250 
5251     END IF;
5252 
5253     IF p_line_rec.attribute10 = FND_API.G_MISS_CHAR THEN NULL;
5254     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute10,p_old_line_rec.attribute10) THEN
5255 
5256         l_result := ATTRIBUTE10
5257             (p_operation        => l_operation
5258             ,p_record   => l_rowtype_rec
5259             ,x_on_operation_action => l_on_operation_action
5260             );
5261 
5262         IF l_result = OE_PC_GLOBALS.YES THEN
5263             -- set OUT result to CONSTRAINED
5264             x_result := OE_PC_GLOBALS.YES;
5265         END IF;
5266 
5267     END IF;
5268 
5269     IF p_line_rec.attribute11 = FND_API.G_MISS_CHAR THEN NULL;
5270     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute11,p_old_line_rec.attribute11) THEN
5271 
5272         l_result := ATTRIBUTE11
5273             (p_operation        => l_operation
5274             ,p_record   => l_rowtype_rec
5275             ,x_on_operation_action => l_on_operation_action
5276             );
5277 
5278         IF l_result = OE_PC_GLOBALS.YES THEN
5279             -- set OUT result to CONSTRAINED
5280             x_result := OE_PC_GLOBALS.YES;
5281         END IF;
5282 
5283     END IF;
5284 
5285     IF p_line_rec.attribute12 = FND_API.G_MISS_CHAR THEN NULL;
5286     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute12,p_old_line_rec.attribute12) THEN
5287 
5288         l_result := ATTRIBUTE12
5289             (p_operation        => l_operation
5290             ,p_record   => l_rowtype_rec
5291             ,x_on_operation_action => l_on_operation_action
5292             );
5293 
5294         IF l_result = OE_PC_GLOBALS.YES THEN
5295             -- set OUT result to CONSTRAINED
5296             x_result := OE_PC_GLOBALS.YES;
5297         END IF;
5298 
5299     END IF;
5300 
5301     IF p_line_rec.attribute13 = FND_API.G_MISS_CHAR THEN NULL;
5302     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute13,p_old_line_rec.attribute13) THEN
5303 
5304         l_result := ATTRIBUTE13
5305             (p_operation        => l_operation
5306             ,p_record   => l_rowtype_rec
5307             ,x_on_operation_action => l_on_operation_action
5308             );
5309 
5310         IF l_result = OE_PC_GLOBALS.YES THEN
5311             -- set OUT result to CONSTRAINED
5312             x_result := OE_PC_GLOBALS.YES;
5313         END IF;
5314 
5315     END IF;
5316 
5317     IF p_line_rec.attribute14 = FND_API.G_MISS_CHAR THEN NULL;
5318     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute14,p_old_line_rec.attribute14) THEN
5319 
5320         l_result := ATTRIBUTE14
5321             (p_operation        => l_operation
5322             ,p_record   => l_rowtype_rec
5323             ,x_on_operation_action => l_on_operation_action
5324             );
5325 
5326         IF l_result = OE_PC_GLOBALS.YES THEN
5327             -- set OUT result to CONSTRAINED
5328             x_result := OE_PC_GLOBALS.YES;
5329         END IF;
5330 
5331     END IF;
5332 
5333     IF p_line_rec.attribute15 = FND_API.G_MISS_CHAR THEN NULL;
5334     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute15,p_old_line_rec.attribute15) THEN
5335 
5336         l_result := ATTRIBUTE15
5337             (p_operation        => l_operation
5338             ,p_record   => l_rowtype_rec
5339             ,x_on_operation_action => l_on_operation_action
5340             );
5341 
5342         IF l_result = OE_PC_GLOBALS.YES THEN
5343             -- set OUT result to CONSTRAINED
5344             x_result := OE_PC_GLOBALS.YES;
5345         END IF;
5346 
5347     END IF;
5348 
5349 -- For bug 2184255
5350 
5351     IF p_line_rec.attribute16 = FND_API.G_MISS_CHAR THEN NULL;
5352     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute16,p_old_line_rec.attribute16) THEN
5353 
5354         l_result := ATTRIBUTE16
5355             (p_operation        => l_operation
5356             ,p_record   => l_rowtype_rec
5357             ,x_on_operation_action => l_on_operation_action
5358             );
5359 
5360         IF l_result = OE_PC_GLOBALS.YES THEN
5361             -- set OUT result to CONSTRAINED
5362             x_result := OE_PC_GLOBALS.YES;
5363         END IF;
5364 
5365     END IF;
5366 
5367     IF p_line_rec.attribute17 = FND_API.G_MISS_CHAR THEN NULL;
5368     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute17,p_old_line_rec.attribute17) THEN
5369 
5370         l_result := ATTRIBUTE17
5371             (p_operation        => l_operation
5372             ,p_record   => l_rowtype_rec
5373             ,x_on_operation_action => l_on_operation_action
5374             );
5375 
5376         IF l_result = OE_PC_GLOBALS.YES THEN
5377             -- set OUT result to CONSTRAINED
5378             x_result := OE_PC_GLOBALS.YES;
5379         END IF;
5380 
5381     END IF;
5382 
5383     IF p_line_rec.attribute18 = FND_API.G_MISS_CHAR THEN NULL;
5384     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute18,p_old_line_rec.attribute18) THEN
5385 
5386         l_result := ATTRIBUTE18
5387             (p_operation        => l_operation
5388             ,p_record   => l_rowtype_rec
5389             ,x_on_operation_action => l_on_operation_action
5390             );
5391 
5392         IF l_result = OE_PC_GLOBALS.YES THEN
5393             -- set OUT result to CONSTRAINED
5394             x_result := OE_PC_GLOBALS.YES;
5395         END IF;
5396 
5397     END IF;
5398 
5399     IF p_line_rec.attribute19 = FND_API.G_MISS_CHAR THEN NULL;
5400     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute19,p_old_line_rec.attribute19) THEN
5401 
5402         l_result := ATTRIBUTE19
5403             (p_operation        => l_operation
5404             ,p_record   => l_rowtype_rec
5405             ,x_on_operation_action => l_on_operation_action
5406             );
5407 
5408         IF l_result = OE_PC_GLOBALS.YES THEN
5409             -- set OUT result to CONSTRAINED
5410             x_result := OE_PC_GLOBALS.YES;
5411         END IF;
5412 
5413     END IF;
5414 
5415     IF p_line_rec.attribute2 = FND_API.G_MISS_CHAR THEN NULL;
5416     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute2,p_old_line_rec.attribute2) THEN
5417 
5418         l_result := ATTRIBUTE2
5419             (p_operation        => l_operation
5420             ,p_record   => l_rowtype_rec
5421             ,x_on_operation_action => l_on_operation_action
5422             );
5423 
5424         IF l_result = OE_PC_GLOBALS.YES THEN
5425             -- set OUT result to CONSTRAINED
5426             x_result := OE_PC_GLOBALS.YES;
5427         END IF;
5428 
5429     END IF;
5430 
5431 
5432     IF p_line_rec.attribute20 = FND_API.G_MISS_CHAR THEN NULL;
5433     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute20,p_old_line_rec.attribute20) THEN
5434 
5435         l_result := ATTRIBUTE20
5436             (p_operation        => l_operation
5437             ,p_record   => l_rowtype_rec
5438             ,x_on_operation_action => l_on_operation_action
5439             );
5440 
5441         IF l_result = OE_PC_GLOBALS.YES THEN
5442             -- set OUT result to CONSTRAINED
5443             x_result := OE_PC_GLOBALS.YES;
5444         END IF;
5445 
5446     END IF;
5447 
5448 -- End bug 2184255
5449 
5450     IF p_line_rec.attribute3 = FND_API.G_MISS_CHAR THEN NULL;
5451     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute3,p_old_line_rec.attribute3) THEN
5452 
5453         l_result := ATTRIBUTE3
5454             (p_operation        => l_operation
5455             ,p_record   => l_rowtype_rec
5456             ,x_on_operation_action => l_on_operation_action
5457             );
5458 
5459         IF l_result = OE_PC_GLOBALS.YES THEN
5460             -- set OUT result to CONSTRAINED
5461             x_result := OE_PC_GLOBALS.YES;
5462         END IF;
5463 
5464     END IF;
5465 
5466     IF p_line_rec.attribute4 = FND_API.G_MISS_CHAR THEN NULL;
5467     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute4,p_old_line_rec.attribute4) THEN
5468 
5469         l_result := ATTRIBUTE4
5470             (p_operation        => l_operation
5471             ,p_record   => l_rowtype_rec
5472             ,x_on_operation_action => l_on_operation_action
5473             );
5474 
5475         IF l_result = OE_PC_GLOBALS.YES THEN
5476             -- set OUT result to CONSTRAINED
5477             x_result := OE_PC_GLOBALS.YES;
5478         END IF;
5479 
5480     END IF;
5481 
5482     IF p_line_rec.attribute5 = FND_API.G_MISS_CHAR THEN NULL;
5483     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute5,p_old_line_rec.attribute5) THEN
5484 
5485         l_result := ATTRIBUTE5
5486             (p_operation        => l_operation
5487             ,p_record   => l_rowtype_rec
5488             ,x_on_operation_action => l_on_operation_action
5489             );
5490 
5491         IF l_result = OE_PC_GLOBALS.YES THEN
5492             -- set OUT result to CONSTRAINED
5493             x_result := OE_PC_GLOBALS.YES;
5494         END IF;
5495 
5496     END IF;
5497 
5498     IF p_line_rec.attribute6 = FND_API.G_MISS_CHAR THEN NULL;
5499     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute6,p_old_line_rec.attribute6) THEN
5500 
5501         l_result := ATTRIBUTE6
5502             (p_operation        => l_operation
5503             ,p_record   => l_rowtype_rec
5504             ,x_on_operation_action => l_on_operation_action
5505             );
5506 
5507         IF l_result = OE_PC_GLOBALS.YES THEN
5508             -- set OUT result to CONSTRAINED
5509             x_result := OE_PC_GLOBALS.YES;
5510         END IF;
5511 
5512     END IF;
5513 
5514     IF p_line_rec.attribute7 = FND_API.G_MISS_CHAR THEN NULL;
5515     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute7,p_old_line_rec.attribute7) THEN
5516 
5517         l_result := ATTRIBUTE7
5518             (p_operation        => l_operation
5519             ,p_record   => l_rowtype_rec
5520             ,x_on_operation_action => l_on_operation_action
5521             );
5522 
5523         IF l_result = OE_PC_GLOBALS.YES THEN
5524             -- set OUT result to CONSTRAINED
5525             x_result := OE_PC_GLOBALS.YES;
5526         END IF;
5527 
5528     END IF;
5529 
5530     IF p_line_rec.attribute8 = FND_API.G_MISS_CHAR THEN NULL;
5531     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute8,p_old_line_rec.attribute8) THEN
5532 
5533         l_result := ATTRIBUTE8
5534             (p_operation        => l_operation
5535             ,p_record   => l_rowtype_rec
5536             ,x_on_operation_action => l_on_operation_action
5537             );
5538 
5539         IF l_result = OE_PC_GLOBALS.YES THEN
5540             -- set OUT result to CONSTRAINED
5541             x_result := OE_PC_GLOBALS.YES;
5542         END IF;
5543 
5544     END IF;
5545 
5546     IF p_line_rec.attribute9 = FND_API.G_MISS_CHAR THEN NULL;
5547     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.attribute9,p_old_line_rec.attribute9) THEN
5548 
5549         l_result := ATTRIBUTE9
5550             (p_operation        => l_operation
5551             ,p_record   => l_rowtype_rec
5552             ,x_on_operation_action => l_on_operation_action
5553             );
5554 
5555         IF l_result = OE_PC_GLOBALS.YES THEN
5556             -- set OUT result to CONSTRAINED
5557             x_result := OE_PC_GLOBALS.YES;
5558         END IF;
5559 
5560     END IF;
5561 
5562             ---Start bug 14272033
5563         IF p_line_rec.return_context = FND_API.G_MISS_CHAR THEN NULL;
5564         ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.return_context,p_old_line_rec.return_context) THEN
5565 
5566             l_result := return_context
5567                 (p_operation        => l_operation
5568                 ,p_record   => l_rowtype_rec
5569                 ,x_on_operation_action => l_on_operation_action
5570                 );
5571 
5572             IF l_result = OE_PC_GLOBALS.YES THEN
5573 
5574                 x_result := OE_PC_GLOBALS.YES;
5575             END IF;
5576 
5577         END IF;
5578 
5579             IF p_line_rec.return_attribute1 = FND_API.G_MISS_CHAR THEN NULL;
5580         ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.return_attribute1,p_old_line_rec.return_attribute1) THEN
5581 
5582             l_result := return_attribute1
5583                 (p_operation        => l_operation
5584                 ,p_record   => l_rowtype_rec
5585                 ,x_on_operation_action => l_on_operation_action
5586                 );
5587 
5588             IF l_result = OE_PC_GLOBALS.YES THEN
5589 
5590                 x_result := OE_PC_GLOBALS.YES;
5591             END IF;
5592 
5593         END IF;
5594 
5595            IF p_line_rec.return_attribute2 = FND_API.G_MISS_CHAR THEN NULL;
5596         ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.return_attribute2,p_old_line_rec.return_attribute2) THEN
5597 
5598             l_result := return_attribute2
5599                 (p_operation        => l_operation
5600                 ,p_record   => l_rowtype_rec
5601                 ,x_on_operation_action => l_on_operation_action
5602                 );
5603 
5604             IF l_result = OE_PC_GLOBALS.YES THEN
5605 
5606                 x_result := OE_PC_GLOBALS.YES;
5607             END IF;
5608 
5609         END IF;
5610      ---END 14272033
5611 
5612     IF p_line_rec.user_item_description = FND_API.G_MISS_CHAR THEN NULL;
5613     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.user_item_description, p_old_line_rec.user_item_description) THEN
5614 
5615         l_result := USER_ITEM_DESCRIPTION
5616             (p_operation        => l_operation
5617             ,p_record   => l_rowtype_rec
5618             ,x_on_operation_action => l_on_operation_action
5619             );
5620 
5621         IF l_result = OE_PC_GLOBALS.YES THEN
5622             -- set OUT result to CONSTRAINED
5623             x_result := OE_PC_GLOBALS.YES;
5624         END IF;
5625 
5626     END IF;
5627 
5628     /* Customer Acceptance - Start */
5629     IF p_line_rec.contingency_id = FND_API.G_MISS_NUM THEN NULL;
5630     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.contingency_id,p_old_line_rec.contingency_id) THEN
5631 
5632         l_result := CONTINGENCY
5633             (p_operation        => l_operation
5634             ,p_record   => l_rowtype_rec
5635             ,x_on_operation_action => l_on_operation_action
5636             );
5637 
5638         IF l_result = OE_PC_GLOBALS.YES THEN
5639             -- set OUT result to CONSTRAINED
5640             x_result := OE_PC_GLOBALS.YES;
5641         END IF;
5642 
5643     END IF;
5644 
5645     IF p_line_rec.revrec_expiration_days = FND_API.G_MISS_NUM THEN NULL;
5646     ELSIF NOT OE_GLOBALS.EQUAL(p_line_rec.revrec_expiration_days,p_old_line_rec.revrec_expiration_days) THEN
5647 
5648         l_result := REVREC_EXPIRATION_DAYS
5649             (p_operation        => l_operation
5650             ,p_record   => l_rowtype_rec
5651             ,x_on_operation_action => l_on_operation_action
5652             );
5653 
5654         IF l_result = OE_PC_GLOBALS.YES THEN
5655             -- set OUT result to CONSTRAINED
5656             x_result := OE_PC_GLOBALS.YES;
5657         END IF;
5658 
5659     END IF;
5660     /* Customer Acceptance - End */
5661 
5662     IF OE_PC_GLOBALS.G_CHECK_UPDATE_ALL_FOR_DFF = 'N' THEN
5663      IF l_debug_level  > 0 THEN
5664        oe_debug_pub.add('setting check all cols constraint to:'||l_check_all_cols_constraint);
5665      END IF;
5666        g_check_all_cols_constraint := l_check_all_cols_constraint;
5667     END IF;
5668 
5669     -- END: CHECK FOR CONSTRAINTS ON DESC FLEXFIELD ATTRIBUTES
5670     -- NOTE: Please add constraints check for new attributes before the
5671     -- descriptive flexfield attributes check.
5672 
5673 IF l_debug_level  > 0 THEN
5674 oe_debug_pub.add('Exit OE_LINE_Security.Attributes',1);
5675 END IF;
5676 
5677 EXCEPTION
5678     WHEN FND_API.G_EXC_ERROR THEN
5679     x_return_status := FND_API.G_RET_STS_ERROR;
5680     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5681     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5682     WHEN OTHERS THEN
5683     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5684     IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
5685         OE_MSG_PUB.Add_Exc_Msg
5686         (   G_PKG_NAME
5687         ,   'Attributes'
5688         );
5689     END IF;
5690 
5691 END Attributes;
5692 
5693 
5694 FUNCTION IB_OWNER
5695 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
5696 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
5697 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
5698 ) RETURN NUMBER
5699 IS
5700 l_result 	NUMBER;
5701 BEGIN
5702 
5703     l_result := Is_OP_constrained
5704         (p_operation	=> p_operation
5705         ,p_column_name	=> 'IB_OWNER'
5706         ,p_record	=> p_record
5707         ,x_on_operation_action	=> x_on_operation_action
5708         );
5709 
5710 RETURN(l_result);
5711 END IB_OWNER;
5712 
5713 
5714 FUNCTION IB_INSTALLED_AT_LOCATION
5715 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
5716 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
5717 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
5718 ) RETURN NUMBER
5719 IS
5720 l_result 	NUMBER;
5721 BEGIN
5722 
5723     l_result := Is_OP_constrained
5724         (p_operation	=> p_operation
5725         ,p_column_name	=> 'IB_INSTALLED_AT_LOCATION'
5726         ,p_record	=> p_record
5727         ,x_on_operation_action	=> x_on_operation_action
5728         );
5729 
5730 RETURN(l_result);
5731 END IB_INSTALLED_AT_LOCATION;
5732 
5733 FUNCTION IB_CURRENT_LOCATION
5734 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
5735 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
5736 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
5737 ) RETURN NUMBER
5738 IS
5739 l_result 	NUMBER;
5740 BEGIN
5741 
5742     l_result := Is_OP_constrained
5743         (p_operation	=> p_operation
5744         ,p_column_name	=> 'IB_CURRENT_LOCATION'
5745         ,p_record	=> p_record
5746         ,x_on_operation_action	=> x_on_operation_action
5747         );
5748 
5749 RETURN(l_result);
5750 END IB_CURRENT_LOCATION;
5751 
5752 FUNCTION END_CUSTOMER
5753 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
5754 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
5755 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
5756 ) RETURN NUMBER
5757 IS
5758 l_result 	NUMBER;
5759 BEGIN
5760 
5761     l_result := Is_OP_constrained
5762         (p_operation	=> p_operation
5763         ,p_column_name	=> 'END_CUSTOMER_ID'
5764         ,p_record	=> p_record
5765         ,x_on_operation_action	=> x_on_operation_action
5766         );
5767 
5768 RETURN(l_result);
5769 
5770 END END_CUSTOMER;
5771 
5772 
5773 FUNCTION END_CUSTOMER_SITE_USE
5774 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
5775 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
5776 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
5777 ) RETURN NUMBER
5778 IS
5779 l_result 	NUMBER;
5780 BEGIN
5781 
5782     l_result := Is_OP_constrained
5783         (p_operation	=> p_operation
5784         ,p_column_name	=> 'END_CUSTOMER_SITE_USE_ID'
5785         ,p_record	=> p_record
5786         ,x_on_operation_action	=> x_on_operation_action
5787         );
5788 
5789 RETURN(l_result);
5790 
5791 END END_CUSTOMER_SITE_USE;
5792 
5793 
5794 FUNCTION END_CUSTOMER_CONTACT
5795 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
5796 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
5797 ,   x_on_operation_action           OUT NOCOPY NUMBER  /* file.sql.39 change */
5798 ) RETURN NUMBER
5799 IS
5800 l_result 	NUMBER;
5801 BEGIN
5802 
5803     l_result := Is_OP_constrained
5804         (p_operation	=> p_operation
5805         ,p_column_name	=> 'END_CUSTOMER_CONTACT_ID'
5806         ,p_record	=> p_record
5807         ,x_on_operation_action	=> x_on_operation_action
5808         );
5809 
5810 RETURN(l_result);
5811 
5812 END END_CUSTOMER_CONTACT;
5813 
5814 PROCEDURE ALLOW_TAX_CODE_OVERRIDE
5815 ( p_application_id                  IN NUMBER,
5816   p_entity_short_name               IN VARCHAR2,
5817   p_validation_entity_short_name    IN VARCHAR2,
5818   p_validation_tmplt_short_name     IN VARCHAR2,
5819   p_record_set_tmplt_short_name     IN VARCHAR2,
5820   p_scope                           IN VARCHAR2,
5821   p_result                          OUT NOCOPY NUMBER  /* file.sql.39 change */
5822 )
5823 IS
5824     Ret_Val    VARCHAR2(1);
5825 BEGIN
5826     --Ret_Val := FND_PROFILE.VALUE('AR_ALLOW_TAX_CODE_OVERRIDE');
5827     Ret_Val := FND_PROFILE.VALUE('ZX_ALLOW_TAX_CLASSIF_OVERRIDE');
5828     IF Ret_Val = 'Y' THEN
5829         p_result := 1;
5830     ELSE
5831         p_result := 0;
5832     END IF;
5833 END ALLOW_TAX_CODE_OVERRIDE;
5834 
5835 PROCEDURE ALLOW_TRX_LINE_EXEMPTIONS
5836 ( p_application_id                  IN NUMBER,
5837   p_entity_short_name               IN VARCHAR2,
5838   p_validation_entity_short_name    IN VARCHAR2,
5839   p_validation_tmplt_short_name     IN VARCHAR2,
5840   p_record_set_tmplt_short_name     IN VARCHAR2,
5841   p_scope                           IN VARCHAR2,
5842   p_result                          OUT NOCOPY NUMBER  /* file.sql.39 change */
5843 )
5844 IS
5845     Ret_Val    VARCHAR2(1);
5846 BEGIN
5847     --Ret_Val := FND_PROFILE.VALUE('AR_ALLOW_TRX_LINE_EXEMPTIONS');
5848     Ret_Val := FND_PROFILE.VALUE('ZX_ALLOW_TRX_LINE_EXEMPTIONS');
5849     IF Ret_Val = 'Y' THEN
5850         p_result := 1;
5851     ELSE
5852         p_result := 0;
5853     END IF;
5854 END ALLOW_TRX_LINE_EXEMPTIONS;
5855 
5856 FUNCTION CONTINGENCY
5857 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
5858 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
5859 ,   x_on_operation_action           OUT NOCOPY NUMBER
5860 ) RETURN NUMBER
5861 IS
5862 l_result        NUMBER;
5863 BEGIN
5864    l_result := Is_OP_constrained
5865         (p_operation    => p_operation
5866         ,p_column_name  => 'CONTINGENCY_ID'
5867         ,p_record       => p_record
5868         ,x_on_operation_action  => x_on_operation_action
5869         );
5870 RETURN(l_result);
5871 
5872 END CONTINGENCY;
5873 
5874 FUNCTION REVREC_EXPIRATION_DAYS
5875 (   p_operation                     IN  VARCHAR2 DEFAULT OE_PC_GLOBALS.UPDATE_OP
5876 ,   p_record                        IN  OE_AK_ORDER_LINES_V%ROWTYPE
5877 ,   x_on_operation_action           OUT NOCOPY NUMBER
5878 ) RETURN NUMBER
5879 IS
5880 l_result        NUMBER;
5881 BEGIN
5882    l_result := Is_OP_constrained
5883         (p_operation    => p_operation
5884         ,p_column_name  => 'REVREC_EXPIRATION_DAYS'
5885         ,p_record       => p_record
5886         ,x_on_operation_action  => x_on_operation_action
5887         );
5888 RETURN(l_result);
5889 
5890 END REVREC_EXPIRATION_DAYS;
5891 
5892 END OE_Line_Security;