DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_LINE_SECURITY

Source


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