DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_BULK_VALUE_TO_ID

Source


1 PACKAGE BODY OE_BULK_VALUE_TO_ID AS
2 /* $Header: OEBSVIDB.pls 120.10 2006/10/26 23:34:35 sarsridh ship $ */
3 
4 G_PKG_NAME         CONSTANT     VARCHAR2(30):='OE_Bulk_Value_To_Id';
5 
6 
7 ---------------------------------------------------------------------
8 -- FUNCTION Get_Contact_ID
9 -- Used to retrieve contact ID based on contact name and
10 -- contact organization. E.g. for ship_to_contact_id, p_site_use_id
11 -- should be ship_to_org_id
12 ---------------------------------------------------------------------
13 
14 FUNCTION Get_Contact_ID
15   (p_contact                  IN VARCHAR2
16   ,p_site_use_id              IN NUMBER
17   )
18 RETURN NUMBER
19 IS
20   l_id                        NUMBER;
21   --
22   l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
23   --
24 BEGIN
25 
26     SELECT /* MOAC_SQL_CHANGE */ CON.CONTACT_ID
27     INTO l_id
28     FROM   OE_CONTACTS_V  CON
29          , HZ_CUST_ACCT_SITES CAS
30          , HZ_CUST_SITE_USES_ALL  SITE
31     WHERE CON.NAME = p_contact
32     AND   CON.CUSTOMER_ID = CAS.CUST_ACCOUNT_ID
33     AND   CAS.CUST_ACCT_SITE_ID = SITE.CUST_ACCT_SITE_ID
34     AND   CON.STATUS = 'A'
35     AND   SITE.SITE_USE_ID = p_site_use_id;
36 
37     RETURN l_id;
38 
39 EXCEPTION
40   WHEN OTHERS THEN
41     RETURN NULL;
42 END Get_Contact_ID;
43 
44 --{ Bug 5054618
45 -- Function to get End Customer Site Use id
46 
47 FUNCTION END_CUSTOMER_SITE
48 (   p_end_customer_site_address1              IN  VARCHAR2
49 ,   p_end_customer_site_address2              IN  VARCHAR2
50 ,   p_end_customer_site_address3              IN  VARCHAR2
51 ,   p_end_customer_site_address4              IN  VARCHAR2
52 ,   p_end_customer_site_location              IN  VARCHAR2
53 ,   p_end_customer_site_org                   IN  VARCHAR2
54 ,   p_end_customer_id                         IN  NUMBER
55 ,   p_end_customer_site_city                  IN  VARCHAR2 DEFAULT NULL
56 ,   p_end_customer_site_state                 IN  VARCHAR2 DEFAULT NULL
57 ,   p_end_customer_site_postalcode            IN  VARCHAR2 DEFAULT NULL
58 ,   p_end_customer_site_country               IN  VARCHAR2 DEFAULT NULL
59 ,   p_end_customer_site_use_code              IN  VARCHAR2 DEFAULT NULL
60 ) RETURN NUMBER
61 IS
62 
63    -- cursor to get the site_id for end_customer
64  CURSOR c_site_use_id(in_end_customer_id number,in_end_customer_site_use_code varchar2) IS
65       SELECT site_use.site_use_id
66       FROM hz_locations loc,
67       hz_party_sites site,
68       hz_cust_acct_sites acct_site,
69       hz_cust_site_uses site_use
70       WHERE
71         site_use.cust_acct_site_id=acct_site.cust_acct_site_id
72         and acct_site.party_site_id=site.party_site_id
73         and site.location_id=loc.location_id
74 	and site_use.status='A'
75 	and acct_site.status='A' --bug 2752321
76 	and acct_site.cust_account_id=in_end_customer_id
77 	and loc.address1  = p_end_customer_site_address1
78 	and nvl( loc.address2, fnd_api.g_miss_char) =
79 	    nvl( p_end_customer_site_address2, fnd_api.g_miss_char)
80 	and nvl( loc.address3, fnd_api.g_miss_char) =
81 	    nvl( p_end_customer_site_address3, fnd_api.g_miss_char)
82 	and nvl( loc.address4, fnd_api.g_miss_char) =
83 	    nvl( p_end_customer_site_address4, fnd_api.g_miss_char)
84 	and nvl( loc.city, fnd_api.g_miss_char) =
85 	    nvl( p_end_customer_site_city, fnd_api.g_miss_char)
86 	and nvl( loc.state, fnd_api.g_miss_char) =
87 	    nvl( p_end_customer_site_state, fnd_api.g_miss_char)
88 	and nvl( loc.postal_code, fnd_api.g_miss_char) =
89 	    nvl( p_end_customer_site_postalcode, fnd_api.g_miss_char)
90 	and nvl( loc.country, fnd_api.g_miss_char) =
91 	    nvl( p_end_customer_site_country, fnd_api.g_miss_char)
92       and site_use.site_use_code = in_end_customer_site_use_code;
93 
94       CURSOR c_site_use_id2(in_end_customer_id number,in_end_customer_site_use_code varchar2) IS
95 	 SELECT site_use.site_use_id
96 	 FROM hz_locations loc,
97 	 hz_party_sites site,
98 	 hz_cust_acct_sites acct_site,
99 	 hz_cust_site_uses site_use
100 	 WHERE loc.ADDRESS1  = p_end_customer_site_address1
101 	 AND nvl( loc.ADDRESS2, fnd_api.g_miss_char) =
102 	 nvl( p_end_customer_site_address2, fnd_api.g_miss_char)
103 	 AND nvl( loc.ADDRESS3, fnd_api.g_miss_char) =
104 	 nvl( p_end_customer_site_address3, fnd_api.g_miss_char)
105 	 AND DECODE(loc.CITY,NULL,NULL,loc.CITY||', ')||
106 	 DECODE(loc.STATE, NULL, NULL, loc.STATE || ', ')||
107 	 DECODE(POSTAL_CODE, NULL, NULL, loc.POSTAL_CODE || ', ')||
108 	 DECODE(loc.COUNTRY, NULL, NULL, loc.COUNTRY) =
109 	 nvl( p_end_customer_site_address4, fnd_api.g_miss_char)
110 	 AND site_use.status = 'A'
111 	 AND acct_site.status ='A' --bug 2752321
112 	 AND acct_site.cust_account_id = p_end_customer_id
113 	 and site_use.site_use_code=in_end_customer_site_use_code
114 	 and site_use.cust_acct_site_id=acct_site.cust_acct_site_id
115 	 and site.party_site_id=acct_site.party_site_id
116 	 and site.location_id=loc.location_id;
117 
118 
119 l_id number;
120 
121 --
122 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
123 BEGIN
124 
125    IF l_debug_level  > 0 THEN
126       oe_debug_pub.add(' end customer site address1: in HVOP '||p_end_customer_site_address1);
127       oe_debug_pub.add(' address4: in HVOP '||p_end_customer_site_address4);
128       oe_debug_pub.add(' end_customer_id:in HVOP '||p_end_customer_id );
129    END IF;
130 
131    IF  nvl( p_end_customer_site_address1,fnd_api.g_miss_char) = fnd_api.g_miss_char
132       AND nvl( p_end_customer_site_address2,fnd_api.g_miss_char) = fnd_api.g_miss_char
133       AND nvl( p_end_customer_site_address3,fnd_api.g_miss_char) = fnd_api.g_miss_char
134       AND nvl( p_end_customer_site_address4,fnd_api.g_miss_char) = fnd_api.g_miss_char
135       AND nvl( p_end_customer_id,fnd_api.g_miss_num) = fnd_api.g_miss_num
136    THEN
137       RETURN NULL;
138    END IF;
139 
140 
141    -- if no site_use_code passed in
142    -- try getting sites in the following preference
143    -- SOLD_TO, SHIP_TO, DELIVER_TO, BILL_TO
144    IF p_end_customer_site_use_code is null THEN
145 
146       -- try for SOLD_TO
147       OPEN c_site_use_id(p_end_customer_id,'SOLD_TO');
148       FETCH c_site_use_id
149 	 INTO l_id;
150       IF c_site_use_id%FOUND then
151 	 CLOSE c_site_use_id;
152 	 return l_id;
153       ELSE
154 	 CLOSE c_site_use_id;
155           oe_Debug_pub.add(' q1');
156 	 OPEN c_site_use_id2(p_end_customer_id,'SOLD_TO');
157 	 FETCH c_site_use_id2
158 	    INTO l_id;
159 	 IF c_site_use_id2%FOUND then
160 	    CLOSE c_site_use_id2;
161 	    return l_id;
162 	 END IF;
163 	 CLOSE c_site_use_id2;
164       END IF;
165 
166        -- try for SHIP_TO
167       OPEN c_site_use_id(p_end_customer_id,'SHIP_TO');
168       FETCH c_site_use_id
169 	 INTO l_id;
170       IF c_site_use_id%FOUND then
171 	 CLOSE c_site_use_id;
172 	 return l_id;
173       ELSE
174 	 CLOSE c_site_use_id;
175 
176 	 OPEN c_site_use_id2(p_end_customer_id,'SHIP_TO');
177 	 FETCH c_site_use_id2
178 	    INTO l_id;
179 	 IF c_site_use_id2%FOUND then
180 	    CLOSE c_site_use_id2;
181 	    return l_id;
182 	 END IF;
183 	 CLOSE c_site_use_id2;
184       END IF;
185 
186       -- try for DELIVER_TO
187       OPEN c_site_use_id(p_end_customer_id,'DELIVER_TO');
188       FETCH c_site_use_id
189 	 INTO l_id;
190       IF c_site_use_id%FOUND then
191 	 CLOSE c_site_use_id;
192 	 return l_id;
193       ELSE
194 	 CLOSE c_site_use_id;
195 
196 	 OPEN c_site_use_id2(p_end_customer_id,'DELIVER_TO');
197 	 FETCH c_site_use_id2
198 	    INTO l_id;
199 	 IF c_site_use_id2%FOUND then
200 	    CLOSE c_site_use_id2;
201 	    return l_id;
202 	 END IF;
203 	 CLOSE c_site_use_id2;
204       END IF;
205 
206       -- try for BILL_TO
207       OPEN c_site_use_id(p_end_customer_id,'BILL_TO');
208       FETCH c_site_use_id
209 	 INTO l_id;
210       IF c_site_use_id%FOUND then
211 	 CLOSE c_site_use_id;
212 	 return l_id;
213       ELSE
214 	 CLOSE c_site_use_id;
215 
216 	 OPEN c_site_use_id2(p_end_customer_id,'BILL_TO');
217 	 FETCH c_site_use_id2
218 	    INTO l_id;
219 	 IF c_site_use_id2%FOUND then
220 	    CLOSE c_site_use_id2;
221 	    return l_id;
222 	 END IF;
223 	 CLOSE c_site_use_id2;
224       END IF;
225 
226       -- nothing found, raise an error
227       raise NO_DATA_FOUND;
228 
229    ELSE
230       -- site_use_code was passed in
231 
232       OPEN c_site_use_id(p_end_customer_id,p_end_customer_site_use_code);
233       FETCH c_site_use_id
234 	 INTO l_id;
235       IF c_site_use_id%FOUND then
236 	 CLOSE c_site_use_id;
237 	 return l_id;
238       ELSE
239 	 CLOSE c_site_use_id;
240 
241 	 OPEN c_site_use_id2(p_end_customer_id,p_end_customer_site_use_code);
242 	 FETCH c_site_use_id2
243 	    INTO l_id;
244 	 IF c_site_use_id2%FOUND then
245 	    CLOSE c_site_use_id2;
246 	    return l_id;
247 	 END IF;
248 	 CLOSE c_site_use_id2;
249       END IF;
250 
251       -- no data found here, raise an error
252       raise NO_DATA_FOUND;
253 
254    END IF;
255 
256 EXCEPTION
257 
258     WHEN NO_DATA_FOUND THEN
259 
260         IF c_site_use_id%ISOPEN then
261             CLOSE c_site_use_id;
262         END IF;
263 
264 	IF c_site_use_id2%ISOPEN then
265             CLOSE c_site_use_id2;
266         END IF;
267 
268 	IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
269         THEN
270 
271 	   fnd_message.set_name('ONT','OE_VALUE_TO_ID_ERROR');
272 	   FND_MESSAGE.SET_TOKEN('ATTRIBUTE','end_customer_site_id');
273 	   OE_MSG_PUB.Add;
274 
275         END IF;
276 	RETURN FND_API.G_MISS_NUM;
277 
278     WHEN OTHERS THEN
279 
280         IF c_site_use_id%ISOPEN then
281             CLOSE c_site_use_id;
282         END IF;
283 
284 	IF c_site_use_id2%ISOPEN then
285             CLOSE c_site_use_id2;
286         END IF;
287 
288 	IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
289         THEN
290             OE_MSG_PUB.Add_Exc_Msg
291             (   G_PKG_NAME
292             ,   'end_cstomer_site_id'
293             );
294         END IF;
295 
296         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
297 
298 END END_CUSTOMER_SITE;
299 
300 -- Function to get end customer id
301 
302 FUNCTION GET_END_CUSTOMER_CONTACT_ID
303 (  p_end_customer_contact IN VARCHAR2
304 ,  p_end_customer_id      IN NUMBER
305 ) RETURN NUMBER IS
306 
307 l_id NUMBER;
308 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
309 BEGIN
310 
311    IF p_end_customer_contact IS NULL
312    THEN
313       RETURN NULL;
314    END IF;
315 
316    SELECT CONTACT_ID
317       INTO l_id
318       FROM OE_CONTACTS_V
319       WHERE NAME = p_end_customer_contact
320       AND CUSTOMER_ID = p_end_customer_id;
321 
322    RETURN l_id;
323 
324 EXCEPTION
325 
326     WHEN NO_DATA_FOUND THEN
327 
328         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_ERROR)
329         THEN
330 
331             fnd_message.set_name('ONT','OE_VALUE_TO_ID_ERROR');
332             FND_MESSAGE.SET_TOKEN('ATTRIBUTE','end_customer_contact_id');
333             OE_MSG_PUB.Add;
334 
335         END IF;
336 
337         RETURN FND_API.G_MISS_NUM;
338 
339     WHEN OTHERS THEN
340 
341         IF OE_MSG_PUB.Check_Msg_Level(OE_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
342         THEN
343             OE_MSG_PUB.Add_Exc_Msg
344             (   G_PKG_NAME
345             ,   'End_customer_contact'
346             );
347         END IF;
348 
349         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
350 
351 END GET_END_CUSTOMER_CONTACT_ID;
352 -- Bug 5054618}
353 
354 ---------------------------------------------------------------------
355 -- PROCEDURE Headers
356 --
357 -- Value to ID conversions on header interface table for orders in
358 -- this batch.
359 -- It sets error_flag to 'Y' and appends ATTRIBUTE_STATUS column with a
360 -- number identifying each attribute that fails value to ID conversion.
361 ---------------------------------------------------------------------
362 
363 PROCEDURE Headers(p_batch_id  IN NUMBER)
364 IS
365 --
366 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
367 
368 --bug 5620045
369 subqry_too_many_rows Exception;
370 PRAGMA EXCEPTION_INIT(subqry_too_many_rows, -01427);
371 --
372 --
373 BEGIN
374 
375 -- There is one update SQL per attribute value to ID conversion.
376 -- NOTE that the sub-query needs to join back again to interface
377 -- tables so that for invalid data, it retrieves at least one row
378 -- with a null for the value column and populates error_flag,
379 -- attribute_status.
380 
381 -- 1. ORDER_SOURCE : Not needed as order import already assigns request_ids
382 -- by order_source_id. For import, there cannot be any rows here where
383 -- ID column for order source is not populated but value column is.
384 
385 -- 2. ORDER_TYPE
386 
387     UPDATE OE_HEADERS_IFACE_ALL c
388     SET (ORDER_TYPE_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
389        (SELECT b.ORDER_TYPE_ID,
390                DECODE(b.ORDER_TYPE_ID,NULL,'Y',NULL),
391                DECODE(b.ORDER_TYPE_ID,NULL,
392                       c.ATTRIBUTE_STATUS||'002',c.ATTRIBUTE_STATUS)
393         FROM OE_ORDER_TYPES_V b, OE_HEADERS_IFACE_ALL d
394         WHERE d.order_type = b.name(+)
395           AND d.rowid = c.rowid
396         )
397     WHERE c.batch_id = p_batch_id
398     AND c.ORDER_TYPE_ID IS NULL
399     AND c.order_type IS NOT NULL;
400 
401 
402 -- 3. PRICE_LIST
403 
404     UPDATE OE_HEADERS_IFACE_ALL c
405     SET (price_list_id,ERROR_FLAG,ATTRIBUTE_STATUS)=
406        (SELECT b.LIST_HEADER_ID,
407                DECODE(b.LIST_HEADER_ID,NULL,'Y',NULL),
408                DECODE(b.LIST_HEADER_ID,NULL,
409                       c.ATTRIBUTE_STATUS||'003',c.ATTRIBUTE_STATUS)
410         FROM qp_list_headers_vl b, OE_HEADERS_IFACE_ALL d
411         WHERE d.price_list = b.name(+)
412         AND NVL(b.list_type_code,'PRL') IN ('PRL', 'AGR')
413           AND nvl(b.active_flag,'Y') = 'Y'
414           AND d.rowid = c.rowid
415         )
416     WHERE c.batch_id = p_batch_id
417     AND c.price_list_id IS NULL
418     AND c.price_list IS NOT NULL;
419 
420 
421 -- 4. CONVERSION_TYPE
422 
423     UPDATE OE_HEADERS_IFACE_ALL c
424     SET (CONVERSION_TYPE_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
425        (SELECT b.CONVERSION_TYPE,
426                DECODE(b.CONVERSION_TYPE,NULL,'Y',NULL),
427                DECODE(b.CONVERSION_TYPE,NULL,
428                       c.ATTRIBUTE_STATUS||'004',c.ATTRIBUTE_STATUS)
429         FROM OE_GL_DAILY_CONVERSION_TYPES_V b, OE_HEADERS_IFACE_ALL d
430         WHERE d.CONVERSION_TYPE = b.USER_CONVERSION_TYPE(+)
431           AND d.rowid = c.rowid
432         )
433     WHERE c.batch_id = p_batch_id
434     AND c.CONVERSION_TYPE_CODE IS NULL
435     AND c.CONVERSION_TYPE IS NOT NULL;
436 
437 
438 -- 5. SALESREP
439 
440     UPDATE OE_HEADERS_IFACE_ALL c
441     SET (SALESREP_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
442        (SELECT /*+ PUSH_PRED(b) */ b.SALESREP_ID,
443                DECODE(b.SALESREP_ID,NULL,'Y',NULL),
444                DECODE(b.SALESREP_ID,NULL,
445                       c.ATTRIBUTE_STATUS||'005',c.ATTRIBUTE_STATUS)
446         FROM RA_SALESREPS b, OE_HEADERS_IFACE_ALL d
447         WHERE d.SALESREP = b.NAME(+)
448           AND sysdate between NVL(start_date_active,sysdate)
449                        and NVL(end_date_active,sysdate)
450           AND d.rowid = c.rowid
451         )
452     WHERE c.batch_id = p_batch_id
453     AND c.SALESREP_ID IS NULL
454     AND c.SALESREP IS NOT NULL;
455 
456 
457 -- 6. TAX_EXEMPT_REASON                        VARCHAR2(30)
458     -- eBTax changes
459 /*  UPDATE OE_HEADERS_IFACE_ALL c
460     SET (TAX_EXEMPT_REASON_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
461        (SELECT b.LOOKUP_CODE,
462                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
463                DECODE(b.LOOKUP_CODE,NULL,
464                       c.ATTRIBUTE_STATUS||'006',c.ATTRIBUTE_STATUS)
465         FROM OE_AR_LOOKUPS_V b, OE_HEADERS_IFACE_ALL d
466         WHERE d.TAX_EXEMPT_REASON = b.MEANING(+)
467           AND b.LOOKUP_TYPE(+) = 'TAX_REASON'
468           AND d.rowid = c.rowid
469         )
470     WHERE c.batch_id = p_batch_id
471     AND c.TAX_EXEMPT_REASON_CODE IS NULL
472     AND c.TAX_EXEMPT_REASON IS NOT NULL;*/
473 
474 	UPDATE OE_HEADERS_IFACE_ALL c
475 	   SET (TAX_EXEMPT_REASON_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
476 	       (SELECT b.LOOKUP_CODE,
477 	               DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
478 	               DECODE(b.LOOKUP_CODE,NULL,
479 		              c.ATTRIBUTE_STATUS||'006',c.ATTRIBUTE_STATUS)
480 	          FROM FND_LOOKUPS  b, OE_HEADERS_IFACE_ALL d
481 	         WHERE d.TAX_EXEMPT_REASON = b.MEANING(+)
482 	           AND b.LOOKUP_TYPE(+) = 'ZX_EXEMPTION_REASON_CODE'
483                    AND d.rowid = c.rowid)
484 	 WHERE c.batch_id = p_batch_id
485 	   AND c.TAX_EXEMPT_REASON_CODE IS NULL
486 	   AND c.TAX_EXEMPT_REASON IS NOT NULL;
487 
488 
489 
490 -- 7. AGREEMENT                                VARCHAR2(50)
491 
492     UPDATE OE_HEADERS_IFACE_ALL c
493     SET (AGREEMENT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
494        (SELECT b.AGREEMENT_ID,
495                DECODE(b.AGREEMENT_ID,NULL,'Y',NULL),
496                DECODE(b.AGREEMENT_ID,NULL,
497                       c.ATTRIBUTE_STATUS||'007',c.ATTRIBUTE_STATUS)
498         FROM OE_AGREEMENTS_V b, OE_HEADERS_IFACE_ALL d
499         WHERE d.AGREEMENT = b.NAME(+)
500           AND sysdate between nvl(start_date_active, sysdate)
501               and nvl(end_date_active, sysdate)
502           AND d.rowid = c.rowid
503         )
504     WHERE c.batch_id = p_batch_id
505     AND c.AGREEMENT_ID IS NULL
506     AND c.AGREEMENT IS NOT NULL;
507 
508 
509 
510 -- 8. INVOICING_RULE
511 
512     UPDATE OE_HEADERS_IFACE_ALL c
513     SET (INVOICING_RULE_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
514        (SELECT b.RULE_ID,
515                DECODE(b.RULE_ID,NULL,'Y',NULL),
516                DECODE(b.RULE_ID,NULL,
517                       c.ATTRIBUTE_STATUS||'008',c.ATTRIBUTE_STATUS)
518         FROM OE_RA_RULES_V b, OE_HEADERS_IFACE_ALL d
519         WHERE d.INVOICING_RULE = b.NAME(+)
520           AND b.STATUS(+) = 'A'
521           AND b.TYPE(+) = 'I'
522           AND d.rowid = c.rowid
523         )
524     WHERE c.batch_id = p_batch_id
525     AND c.INVOICING_RULE_ID IS NULL
526     AND c.INVOICING_RULE IS NOT NULL;
527 
528 -- 9. ACCOUNTING_RULE                          VARCHAR2(30)
529 
530     UPDATE OE_HEADERS_IFACE_ALL c
531     SET (ACCOUNTING_RULE_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
532        (SELECT b.RULE_ID,
533                DECODE(b.RULE_ID,NULL,'Y',NULL),
534                DECODE(b.RULE_ID,NULL,
535                       c.ATTRIBUTE_STATUS||'009',c.ATTRIBUTE_STATUS)
536         FROM OE_RA_RULES_V b, OE_HEADERS_IFACE_ALL d
537         WHERE d.ACCOUNTING_RULE = b.NAME(+)
538           AND b.STATUS(+) = 'A'
539       --  AND b.TYPE(+) = 'A' --we now allow variable accounting rules
540           AND d.rowid = c.rowid
541         )
542     WHERE c.batch_id = p_batch_id
543     AND c.ACCOUNTING_RULE_ID IS NULL
544     AND c.ACCOUNTING_RULE IS NOT NULL;
545 
546 -- 10 PAYMENT_TERM                             VARCHAR2(30)
547 
548     UPDATE OE_HEADERS_IFACE_ALL c
549     SET (PAYMENT_TERM_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
550        (SELECT b.TERM_ID,
551                DECODE(b.TERM_ID,NULL,'Y',NULL),
552                DECODE(b.TERM_ID,NULL,
553                       c.ATTRIBUTE_STATUS||'010',c.ATTRIBUTE_STATUS)
554         FROM OE_RA_TERMS_V b, OE_HEADERS_IFACE_ALL d
555         WHERE d.PAYMENT_TERM = b.NAME(+)
556           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
557                   AND NVL(END_DATE_ACTIVE, SYSDATE)
558           AND d.rowid = c.rowid
559         )
560     WHERE c.batch_id = p_batch_id
561     AND c.PAYMENT_TERM_ID IS NULL
562     AND c.PAYMENT_TERM IS NOT NULL;
563 
564 
565 -- 11. FREIGHT_TERMS                            VARCHAR2(30)
566 
567     UPDATE OE_HEADERS_IFACE_ALL c
568     SET (FREIGHT_TERMS_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
569        (SELECT b.LOOKUP_CODE,
570                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
571                DECODE(b.LOOKUP_CODE,NULL,
572                       c.ATTRIBUTE_STATUS||'011',c.ATTRIBUTE_STATUS)
573         FROM OE_LOOKUPS b, OE_HEADERS_IFACE_ALL d
574         WHERE d.FREIGHT_TERMS = b.MEANING(+)
575           AND b.LOOKUP_TYPE(+) = 'FREIGHT_TERMS'
576           AND b.enabled_flag(+) = 'Y'
577           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
578                       AND NVL(END_DATE_ACTIVE, SYSDATE)
579           AND d.rowid = c.rowid
580         )
581     WHERE c.batch_id = p_batch_id
582     AND c.FREIGHT_TERMS_CODE IS NULL
583     AND c.FREIGHT_TERMS IS NOT NULL;
584 
585 
586 -- 12. FOB_POINT                                VARCHAR2(30)
587 
588     UPDATE OE_HEADERS_IFACE_ALL c
589     SET (FOB_POINT_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
590        (SELECT b.LOOKUP_CODE,
591                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
592                DECODE(b.LOOKUP_CODE,NULL,
593                       c.ATTRIBUTE_STATUS||'012',c.ATTRIBUTE_STATUS)
594         FROM OE_AR_LOOKUPS_V b, OE_HEADERS_IFACE_ALL d
595         WHERE d.FOB_POINT = b.MEANING(+)
596           AND b.LOOKUP_TYPE(+) = 'FOB'
597           AND b.enabled_flag(+) = 'Y'
598           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
599                       AND NVL(END_DATE_ACTIVE, SYSDATE)
600           AND d.rowid = c.rowid
601         )
602     WHERE c.batch_id = p_batch_id
603     AND c.FOB_POINT_CODE IS NULL
604     AND c.FOB_POINT IS NOT NULL;
605 
606 
607 -- 13. SOLD_TO_ORG
608 -- NOTE 1: Value to ID for sold to (customer) should be done before
609 -- other dependent fields like sites and contacts.
610 -- NOTE 2: Status field update is a union - if customer number is
611 -- supplied, it takes precedence over the name or sold to org value field.
612 
613 --bug 5620045
614 --Catch subqry_too_many_rows exception
615 BEGIN
616     UPDATE OE_HEADERS_IFACE_ALL c
617     SET (SOLD_TO_ORG_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
618        (SELECT b.CUST_ACCOUNT_ID,
619                DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
620                DECODE(b.CUST_ACCOUNT_ID,NULL,
621                       c.ATTRIBUTE_STATUS||'013',c.ATTRIBUTE_STATUS)
622         FROM HZ_CUST_ACCOUNTS b, OE_HEADERS_IFACE_ALL d
623         WHERE d.CUSTOMER_NUMBER IS NOT NULL
624           AND d.CUSTOMER_NUMBER = b.ACCOUNT_NUMBER(+)
625           AND b.STATUS(+) = 'A'
626           AND d.rowid = c.rowid
627         UNION ALL
628         SELECT b.CUST_ACCOUNT_ID,
629                DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
630                DECODE(b.CUST_ACCOUNT_ID,NULL,
631                       c.ATTRIBUTE_STATUS||'013',c.ATTRIBUTE_STATUS)
632         FROM HZ_CUST_ACCOUNTS b, HZ_PARTIES e, OE_HEADERS_IFACE_ALL d
633         WHERE d.CUSTOMER_NUMBER IS NULL
634           AND d.SOLD_TO_ORG = e.PARTY_NAME(+)
635           AND b.STATUS(+) = 'A'
636           AND b.PARTY_ID(+) = e.PARTY_ID
637           AND d.rowid = c.rowid
638         )
639     WHERE c.batch_id = p_batch_id
640     AND c.SOLD_TO_ORG_ID IS NULL
641     AND (c.SOLD_TO_ORG IS NOT NULL OR
642          c.CUSTOMER_NUMBER IS NOT NULL);
643 EXCEPTION
644   WHEN subqry_too_many_rows THEN
645        UPDATE OE_HEADERS_IFACE_ALL c
646           SET ERROR_FLAG = 'Y',
647               ATTRIBUTE_STATUS = ATTRIBUTE_STATUS||'013'
648         WHERE c.batch_id = p_batch_id
649           AND c.SOLD_TO_ORG_ID IS NULL
650           AND c.SOLD_TO_ORG IS NOT NULL;
651 End;
652 
653 
654   -- Bulk Import does NOT check for customer relationships in
655   -- value to ID.
656   -- If value columns are provided for ship to or bill to,
657   -- 1) it would search in the addresses for ship to customer
658   -- or bill to customer if supplied.
659   -- 2) if ship to or bill to customer is not supplied, it will
660   -- search in addresses for the sold to customer
661   -- The validation to ensure that ship to and bill to customer
662   -- are valid as per customer relationships parameter will be
663   -- done later during bulk entity processing in OEBLHDRB/OEBLLINB.pls
664 
665   -- Ship To and Invoice To customer should be passed only if
666   -- customer relationships is 'Y' or 'A'
667   IF OE_Bulk_Order_Pvt.G_CUST_RELATIONS <> 'N' THEN
668 
669     -- First, value to ID conversions for ship to customer and
670     -- and invoice_to_customer
671 
672     -- SHIP_TO_CUSTOMER
673     --bug 5620045
674     --catch subqry_too_many_rows
675 BEGIN
676     UPDATE OE_HEADERS_IFACE_ALL c
677     SET (SHIP_TO_CUSTOMER_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
678         (SELECT b.CUST_ACCOUNT_ID,
679                DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
680                DECODE(b.CUST_ACCOUNT_ID,NULL,
681                       d.ATTRIBUTE_STATUS||'014',d.ATTRIBUTE_STATUS)
682         FROM HZ_CUST_ACCOUNTS b, OE_HEADERS_IFACE_ALL d
683         WHERE d.SHIP_TO_CUSTOMER_NUMBER IS NOT NULL
684           AND d.SHIP_TO_CUSTOMER_NUMBER = b.ACCOUNT_NUMBER(+)
685           AND b.STATUS(+) = 'A'
686           AND d.rowid = c.rowid
687         UNION ALL
688         SELECT b.CUST_ACCOUNT_ID,
689                DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
690                DECODE(b.CUST_ACCOUNT_ID,NULL,
691                       d.ATTRIBUTE_STATUS||'014',d.ATTRIBUTE_STATUS)
692         FROM HZ_CUST_ACCOUNTS b, HZ_PARTIES e, OE_HEADERS_IFACE_ALL d
693         WHERE d.SHIP_TO_CUSTOMER_NUMBER IS NULL
694           AND d.SHIP_TO_CUSTOMER = e.PARTY_NAME(+)
695           AND b.STATUS(+) = 'A'
696           AND b.PARTY_ID(+) = e.PARTY_ID
697           AND d.rowid = c.rowid
698         )
699     WHERE c.batch_id = p_batch_id
700     AND c.SHIP_TO_CUSTOMER_ID IS NULL
701     AND (c.SHIP_TO_CUSTOMER IS NOT NULL OR
702          c.SHIP_TO_CUSTOMER_NUMBER IS NOT NULL);
703 EXCEPTION
704   WHEN subqry_too_many_rows THEN
705        UPDATE OE_HEADERS_IFACE_ALL c
706           SET ERROR_FLAG = 'Y',
707               ATTRIBUTE_STATUS = ATTRIBUTE_STATUS||'014'
708         WHERE c.batch_id = p_batch_id
709           AND c.SHIP_TO_CUSTOMER_ID IS NULL
710           AND c.SHIP_TO_CUSTOMER IS NOT NULL;
711 END;
712 
713     -- INVOICE_TO_CUSTOMER
714     --bug 5620045
715     --catch subqry_too_many_rows
716 BEGIN
717     UPDATE OE_HEADERS_IFACE_ALL c
718     SET (INVOICE_CUSTOMER_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
719         (SELECT b.CUST_ACCOUNT_ID,
720                DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
721                DECODE(b.CUST_ACCOUNT_ID,NULL,
722                       d.ATTRIBUTE_STATUS||'015',d.ATTRIBUTE_STATUS)
723         FROM HZ_CUST_ACCOUNTS b, OE_HEADERS_IFACE_ALL d
724         WHERE d.INVOICE_CUSTOMER_NUMBER IS NOT NULL
725           AND d.INVOICE_CUSTOMER_NUMBER = b.ACCOUNT_NUMBER(+)
726           AND b.STATUS(+) = 'A'
727           AND d.rowid = c.rowid
728         UNION ALL
729         SELECT b.CUST_ACCOUNT_ID,
730                DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
731                DECODE(b.CUST_ACCOUNT_ID,NULL,
732                       d.ATTRIBUTE_STATUS||'015',d.ATTRIBUTE_STATUS)
733         FROM HZ_CUST_ACCOUNTS b, HZ_PARTIES e, OE_HEADERS_IFACE_ALL d
734         WHERE d.INVOICE_CUSTOMER_NUMBER IS NULL
735           AND d.INVOICE_CUSTOMER = e.PARTY_NAME(+)
736           AND b.STATUS(+) = 'A'
737           AND b.PARTY_ID(+) = e.PARTY_ID
738           AND d.rowid = c.rowid
739         )
740     WHERE c.batch_id = p_batch_id
741     AND c.INVOICE_CUSTOMER_ID IS NULL
742     AND (c.INVOICE_CUSTOMER IS NOT NULL OR
743          c.INVOICE_CUSTOMER_NUMBER IS NOT NULL);
744 EXCEPTION
745   WHEN subqry_too_many_rows THEN
746        UPDATE OE_HEADERS_IFACE_ALL c
747           SET ERROR_FLAG = 'Y',
748               ATTRIBUTE_STATUS = ATTRIBUTE_STATUS||'015'
749         WHERE c.batch_id = p_batch_id
750           AND c.INVOICE_CUSTOMER_ID IS NULL
751           AND c.INVOICE_CUSTOMER IS NOT NULL ;
752 END;
753 
754   END IF;
755 
756   -- 14. SHIP_TO_ORG
757 
758     UPDATE OE_HEADERS_IFACE_ALL c
759     SET (SHIP_TO_ORG_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
760           (SELECT  /*+ PUSH_PRED(b) */ b.ORGANIZATION_ID,
761                DECODE(b.ORGANIZATION_ID,NULL,'Y',NULL),
762                DECODE(b.ORGANIZATION_ID,NULL,
763                       d.ATTRIBUTE_STATUS||'014',d.ATTRIBUTE_STATUS)
764           FROM OE_SHIP_TO_ORGS_V b, OE_HEADERS_IFACE_ALL d
765           WHERE d.ship_to_address1 = ADDRESS_LINE_1(+)
766           AND nvl(d.ship_to_address2,'NIL') = NVL(ADDRESS_LINE_2(+),'NIL')
767           AND nvl(d.ship_to_address3,'NIL') = nvl(ADDRESS_LINE_3(+),'NIL')
768           --AND nvl(d.ship_to_address4,'NIL') = ADDRESS_LINE_4
769           AND nvl(d.ship_to_city,'NIL') = nvl(town_or_city(+),'NIL')
770           AND nvl(d.ship_to_state,'NIL') = nvl(state(+),'NIL')
771           AND nvl(d.ship_to_postal_code,'NIL') = nvl(postal_code(+),'NIL')
772           AND nvl(d.ship_to_country,'NIL') = nvl(country(+),'NIL')
773           AND nvl(STATUS(+),'A') = 'A'
774           AND b.CUSTOMER_ID(+) = nvl(d.SHIP_TO_CUSTOMER_ID,d.SOLD_TO_ORG_ID)
775           AND d.rowid = c.rowid
776         )
777     WHERE c.batch_id = p_batch_id
778     AND c.SHIP_TO_ORG_ID IS NULL
779     AND (c.SHIP_TO_ADDRESS1 IS NOT NULL
780         OR c.ship_to_address2 IS NOT NULL
781         OR c.ship_to_address3 IS NOT NULL
782         OR c.ship_to_address4 IS NOT NULL
783         OR c.ship_to_org IS NOT NULL
784         );
785 
786   -- 15. INVOICE_TO_ORG
787 
788     UPDATE OE_HEADERS_IFACE_ALL c
789     SET (INVOICE_TO_ORG_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
790           (SELECT  /*+ PUSH_PRED(b) */ b.ORGANIZATION_ID,
791                DECODE(b.ORGANIZATION_ID,NULL,'Y',NULL),
792                DECODE(b.ORGANIZATION_ID,NULL,
793                       d.ATTRIBUTE_STATUS||'015',d.ATTRIBUTE_STATUS)
794           FROM OE_INVOICE_TO_ORGS_V b, OE_HEADERS_IFACE_ALL d
795           WHERE d.invoice_address1 = ADDRESS_LINE_1(+)
796           AND nvl(d.invoice_address2,'NIL') = NVL(ADDRESS_LINE_2(+),'NIL')
797           AND nvl(d.invoice_address3,'NIL') = nvl(ADDRESS_LINE_3(+),'NIL')
798           --AND nvl(d.invoice_address4,'NIL') = ADDRESS_LINE_4
799           AND nvl(d.invoice_city,'NIL') = nvl(town_or_city(+),'NIL')
800           AND nvl(d.invoice_state,'NIL') = nvl(state(+),'NIL')
801           AND nvl(d.invoice_postal_code,'NIL') = nvl(postal_code(+),'NIL')
802           AND nvl(d.invoice_country,'NIL') = nvl(country(+),'NIL')
803           AND nvl(STATUS(+),'A') = 'A'
804           AND b.CUSTOMER_ID(+) = nvl(d.INVOICE_CUSTOMER_ID,d.SOLD_TO_ORG_ID)
805           AND d.rowid = c.rowid
806         )
807     WHERE c.batch_id = p_batch_id
808     AND c.INVOICE_TO_ORG_ID IS NULL
809     AND (c.invoice_address1 IS NOT NULL
810         OR c.invoice_address2 IS NOT NULL
811         OR c.invoice_address3 IS NOT NULL
812         OR c.invoice_address4 IS NOT NULL
813         OR c.invoice_to_org IS NOT NULL
814         );
815 
816 
817 -- DELIVER_TO_ORG  No mapping columns in the interface table
818 
819 -- 16. SOLD_TO_CONTACT                          VARCHAR2(30)
820 
821     UPDATE OE_HEADERS_IFACE_ALL c
822     SET (SOLD_TO_CONTACT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
823        (SELECT DISTINCT b.CONTACT_ID,
824                DECODE(b.CONTACT_ID,NULL,'Y',NULL),
825                DECODE(b.CONTACT_ID,NULL,
826                       c.ATTRIBUTE_STATUS||'016',c.ATTRIBUTE_STATUS)
827         FROM OE_CONTACTS_V b
828         WHERE c.SOLD_TO_CONTACT = b.NAME(+)
829           AND c.SOLD_TO_ORG_ID = b.CUSTOMER_ID(+)
830         )
831     WHERE c.batch_id = p_batch_id
832     AND c.SOLD_TO_CONTACT_ID IS NULL
833     AND c.SOLD_TO_CONTACT IS NOT NULL
834     AND c.SOLD_TO_ORG_ID IS NOT NULL;
835 
836 
837 -- 17. SHIP_TO_CONTACT                          VARCHAR2(30)
838 
839     UPDATE OE_HEADERS_IFACE_ALL c
840     SET (SHIP_TO_CONTACT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
841        (SELECT Get_Contact_ID(c.SHIP_TO_CONTACT,c.SHIP_TO_ORG_ID),
842                DECODE(Get_Contact_ID(c.SHIP_TO_CONTACT,c.SHIP_TO_ORG_ID),NULL,'Y',NULL),
843                DECODE(Get_Contact_ID(c.SHIP_TO_CONTACT,c.SHIP_TO_ORG_ID),NULL,
844                       c.ATTRIBUTE_STATUS||'017',c.ATTRIBUTE_STATUS)
845         FROM DUAL
846         )
847     WHERE c.batch_id = p_batch_id
848     AND c.SHIP_TO_CONTACT_ID IS NULL
849     AND c.SHIP_TO_CONTACT IS NOT NULL;
850 
851 
852 -- 18. INVOICE_TO_CONTACT                       VARCHAR2(30)
853 
854     UPDATE OE_HEADERS_IFACE_ALL c
855     SET (INVOICE_TO_CONTACT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
856        (SELECT Get_Contact_ID(c.INVOICE_TO_CONTACT,c.INVOICE_TO_ORG_ID),
857                DECODE(Get_Contact_ID(c.INVOICE_TO_CONTACT,c.INVOICE_TO_ORG_ID),NULL,'Y',NULL),
858                DECODE(Get_Contact_ID(c.INVOICE_TO_CONTACT,c.INVOICE_TO_ORG_ID),NULL,
859                       c.ATTRIBUTE_STATUS||'018',c.ATTRIBUTE_STATUS)
860         FROM DUAL
861         )
862     WHERE c.batch_id = p_batch_id
863     AND c.INVOICE_TO_CONTACT_ID IS NULL
864     AND c.INVOICE_TO_CONTACT IS NOT NULL;
865 
866 
867 -- 19. DELIVER_TO_CONTACT                       VARCHAR2(30)
868 
869     UPDATE OE_HEADERS_IFACE_ALL c
870     SET (DELIVER_TO_CONTACT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
871        (SELECT Get_Contact_ID(c.DELIVER_TO_CONTACT,c.DELIVER_TO_ORG_ID),
872                DECODE(Get_Contact_ID(c.DELIVER_TO_CONTACT,c.DELIVER_TO_ORG_ID),NULL,'Y',NULL),
873                DECODE(Get_Contact_ID(c.DELIVER_TO_CONTACT,c.DELIVER_TO_ORG_ID),NULL,
874                       c.ATTRIBUTE_STATUS||'019',c.ATTRIBUTE_STATUS)
875         FROM DUAL
876         )
877     WHERE c.batch_id = p_batch_id
878     AND c.DELIVER_TO_CONTACT_ID IS NULL
879     AND c.DELIVER_TO_CONTACT IS NOT NULL;
880 
881 
882 -- SHIPPING_METHOD_CODE                         VARCHAR2(30)
883     UPDATE OE_HEADERS_IFACE_ALL c
884     SET (SHIPPING_METHOD_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
885        (SELECT b.LOOKUP_CODE,
886                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
887                DECODE(b.LOOKUP_CODE,NULL,
888                       c.ATTRIBUTE_STATUS||'024',c.ATTRIBUTE_STATUS)
889         FROM OE_SHIP_METHODS_V b, OE_HEADERS_IFACE_ALL d
890         WHERE d.SHIPPING_METHOD = b.MEANING(+)
891           AND b.enabled_flag(+) = 'Y'
892           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE(+), SYSDATE)
893                       AND NVL(END_DATE_ACTIVE(+), SYSDATE)
894           AND d.rowid = c.rowid
895         )
896     WHERE c.batch_id = p_batch_id
897     AND c.SHIPPING_METHOD_CODE IS NULL
898     AND c.SHIPPING_METHOD IS NOT NULL;
899 
900 -- FREIGHT_CARRIER_CODE: value column does not exist on interface tables
901 
902 -- SALES_CHANNEL_CODE
903 
904     UPDATE OE_HEADERS_IFACE_ALL c
905     SET (SALES_CHANNEL_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
906        (SELECT b.LOOKUP_CODE,
907                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
908                DECODE(b.LOOKUP_CODE,NULL,
909                       c.ATTRIBUTE_STATUS||'022',c.ATTRIBUTE_STATUS)
910         FROM OE_LOOKUPS b, OE_HEADERS_IFACE_ALL d
911         WHERE d.SALES_CHANNEL = b.MEANING(+)
912           AND b.LOOKUP_TYPE(+) = 'SALES_CHANNEL'
913           AND b.enabled_flag(+) = 'Y'
914           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
915                       AND NVL(END_DATE_ACTIVE, SYSDATE)
916           AND d.rowid = c.rowid
917         )
918     WHERE c.batch_id = p_batch_id
919     AND c.SALES_CHANNEL_CODE IS NULL
920     AND c.SALES_CHANNEL IS NOT NULL;
921 
922 -- SHIPMENT_PRIORITY_CODE
923 
924     UPDATE OE_HEADERS_IFACE_ALL c
925     SET (SHIPMENT_PRIORITY_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
926        (SELECT b.LOOKUP_CODE,
927                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
928                DECODE(b.LOOKUP_CODE,NULL,
929                       c.ATTRIBUTE_STATUS||'023',c.ATTRIBUTE_STATUS)
930         FROM OE_LOOKUPS b, OE_HEADERS_IFACE_ALL d
931         WHERE d.SHIPMENT_PRIORITY = b.MEANING(+)
932           AND b.LOOKUP_TYPE(+) = 'SHIPMENT_PRIORITY'
933           AND b.enabled_flag(+) = 'Y'
934           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
935                       AND NVL(END_DATE_ACTIVE, SYSDATE)
936           AND d.rowid = c.rowid
937         )
938     WHERE c.batch_id = p_batch_id
939     AND c.SHIPMENT_PRIORITY_CODE IS NULL
940     AND c.SHIPMENT_PRIORITY IS NOT NULL;
941 
942 -- Sold_to_site_use_id
943 --abghosh
944 
945 IF OE_CODE_CONTROL.Code_Release_Level >='110510' THEN
946   UPDATE OE_HEADERS_IFACE_ALL c
947    SET (SOLD_TO_SITE_USE_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
948      (SELECT SITE.SITE_USE_ID,
949       DECODE(SITE.SITE_USE_ID,null,'Y',null),
950      DECODE(SITE.SITE_USE_ID,null,d.ATTRIBUTE_STATUS||'014',d.ATTRIBUTE_STATUS)
951 
952  FROM      HZ_CUST_SITE_USES_ALL    SITE,
953            HZ_PARTY_SITES       PARTY_SITE,
954            HZ_LOCATIONS         LOC,
955            HZ_CUST_ACCT_SITES_ALL   ACCT_SITE,
956            OE_HEADERS_IFACE_ALL d
957 
958   WHERE   SITE.SITE_USE_CODE    ='SOLD_TO'
959    AND   SITE.CUST_ACCT_SITE_ID = ACCT_SITE.CUST_ACCT_SITE_ID
960    AND   ACCT_SITE.PARTY_SITE_ID = PARTY_SITE.PARTY_SITE_ID
961    AND   PARTY_SITE.LOCATION_ID = LOC.LOCATION_ID
962    AND  d.sold_to_location_address1= LOC.ADDRESS1(+)
963    AND  nvl(d.sold_to_location_address2,'NIL')=nvl(LOC.ADDRESS2(+),'NIL')
964    AND  nvl(d.sold_to_location_address3,'NIL')=nvl(LOC.ADDRESS3(+),'NIL')
965    AND  nvl(d.sold_to_location_address4,'NIL')=nvl(LOC.ADDRESS4(+),'NIL')
966    AND  nvl(d.sold_to_location_city,'NIL')=nvl(LOC.CITY(+),'NIL')
967    AND  nvl(d.sold_to_location_state,'NIL')=nvl(LOC.STATE(+),'NIL')
968    AND  nvl(d.sold_to_location_postal_code,'NIL')=nvl(LOC.POSTAL_CODE(+),'NIL')
969    AND  nvl(d.sold_to_location_country,'NIL')=nvl(LOC.COUNTRY(+),'NIL')
970    AND nvl(SITE.STATUS,'A')='A'
971    AND nvl(ACCT_SITE.STATUS,'A')='A'
972    AND ACCT_SITE.CUST_ACCOUNT_ID(+)=d.SOLD_TO_ORG_ID
973    AND d.rowid=c.rowid
974   )
975   WHERE c.batch_id=p_batch_id
976    AND c.SOLD_TO_SITE_USE_ID IS NULL
977    AND (c.SOLD_TO_LOCATION_ADDRESS1 IS NOT NULL
978         OR c.SOLD_TO_LOCATION_ADDRESS2 IS NOT NULL
979         OR c.SOLD_TO_LOCATION_ADDRESS3 IS NOT NULL
980         OR c.SOLD_TO_LOCATION_ADDRESS4 IS NOT NULL
981       );
982 
983  --{ Bug 5054618
984 --End customer changes for HVOP
985 --bug 5620045 catch subqry_too_many_rows
986 BEGIN
987 UPDATE OE_HEADERS_IFACE_ALL c
988  SET (END_CUSTOMER_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
989  (SELECT b.CUST_ACCOUNT_ID,
990   DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
991   DECODE(b.CUST_ACCOUNT_ID,NULL,
992   d.ATTRIBUTE_STATUS||'025',d.ATTRIBUTE_STATUS)
993     FROM HZ_CUST_ACCOUNTS b, OE_HEADERS_IFACE_ALL d
994    WHERE d.END_CUSTOMER_NUMBER IS NOT NULL  AND d.END_CUSTOMER_NUMBER = b.ACCOUNT_NUMBER(+)
995    AND b.STATUS(+) = 'A'  AND d.rowid = c.rowid
996    UNION ALL
997   SELECT b.CUST_ACCOUNT_ID,
998    DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
999    DECODE(b.CUST_ACCOUNT_ID,NULL,
1000    d.ATTRIBUTE_STATUS||'025',d.ATTRIBUTE_STATUS) FROM HZ_CUST_ACCOUNTS b, HZ_PARTIES e, OE_HEADERS_IFACE_ALL d
1001    WHERE d.END_CUSTOMER_NUMBER IS NULL AND d.END_CUSTOMER_NAME = e.PARTY_NAME(+)
1002      AND b.STATUS(+) = 'A'  AND b.PARTY_ID(+) = e.PARTY_ID
1003      AND d.rowid = c.rowid)
1004     WHERE c.batch_id = p_batch_id and c.END_CUSTOMER_ID IS NULL AND
1005     (c.END_CUSTOMER_NAME IS NOT NULL OR c.END_CUSTOMER_NUMBER IS NOT NULL);
1006 EXCEPTION
1007   WHEN subqry_too_many_rows THEN
1008        UPDATE OE_HEADERS_IFACE_ALL c
1009           SET ERROR_FLAG = 'Y',
1010               ATTRIBUTE_STATUS = ATTRIBUTE_STATUS||'025'
1011         WHERE c.batch_id = p_batch_id
1012           AND c.END_CUSTOMER_ID IS NULL
1013           AND c.END_CUSTOMER_NAME IS NOT NULL ;
1014 END;
1015 
1016 
1017 
1018 UPDATE OE_HEADERS_IFACE_ALL c
1019 		      SET (END_CUSTOMER_SITE_USE_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1020 			  (SELECT END_CUSTOMER_SITE(c.end_customer_address1,c.end_customer_address2,c.end_customer_address3,c.end_customer_address4,
1021 						    c.end_customer_location, NULL,c.end_customer_id,c.end_customer_city,
1022 						    c.end_customer_state,c.end_customer_postal_code,c.end_customer_country,NULL),
1023 				DECODE(END_CUSTOMER_SITE(c.end_customer_address1,c.end_customer_address2,c.end_customer_address3,
1024 							   c.end_customer_address4,c.end_customer_location,NULL,
1025 							   c.end_customer_id,c.end_customer_city,c.end_customer_state,
1026 							   c.end_customer_postal_code,c.end_customer_country,
1027 							   NULL),NULL,'Y',NULL),
1028 							       DECODE(END_CUSTOMER_SITE(c.end_customer_address1,
1029 											c.end_customer_address2,
1030 											c.end_customer_address3,
1031 											c.end_customer_address4,
1032 											c.end_customer_location,
1033 											NULL,
1034 											c.end_customer_id,
1035 											c.end_customer_city,
1036 											c.end_customer_state,
1037 											c.end_customer_postal_code,
1038 											c.end_customer_country,
1039 											NULL),NULL,c.ATTRIBUTE_STATUS||'027',c.ATTRIBUTE_STATUS)
1040 			FROM DUAL)
1041 		    WHERE c.batch_id=p_batch_id
1042 		      AND c.END_CUSTOMER_SITE_USE_ID IS NULL AND c.END_CUSTOMER_ID IS NOT NULL
1043 		      AND (c.END_CUSTOMER_ADDRESS1 IS NOT NULL
1044 			   OR c.END_CUSTOMER_ADDRESS2 IS NOT NULL
1045 			   OR c.END_CUSTOMER_ADDRESS3 IS NOT NULL
1046 			   OR c.END_CUSTOMER_ADDRESS4 IS NOT NULL);
1047 
1048 
1049 UPDATE OE_HEADERS_IFACE_ALL c
1050      SET (END_CUSTOMER_CONTACT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1051 	 (SELECT Get_End_customer_Contact_ID(c.END_CUSTOMER_CONTACT,c.END_CUSTOMER_ID),
1052 		 DECODE(Get_End_customer_Contact_ID(c.END_CUSTOMER_CONTACT,c.END_CUSTOMER_ID),NULL,'Y',NULL),
1053 		 DECODE(Get_End_customer_Contact_ID(c.END_CUSTOMER_CONTACT,c.END_CUSTOMER_ID),NULL,c.ATTRIBUTE_STATUS||'026',c.ATTRIBUTE_STATUS)
1054        FROM DUAL) WHERE c.batch_id = p_batch_id and c.END_CUSTOMER_CONTACT_ID IS NULL AND c.END_CUSTOMER_CONTACT IS NOT NULL;
1055 
1056  --Bug 5054618}
1057 
1058 UPDATE OE_HEADERS_IFACE_ALL c
1059      SET (IB_OWNER_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1060 	 (SELECT b.LOOKUP_CODE,
1061 		 DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1062 		 DECODE(b.LOOKUP_CODE,NULL,
1063 			c.ATTRIBUTE_STATUS||'028',c.ATTRIBUTE_STATUS)
1064        FROM -- OE_LOOKUPS b,
1065 	     ( select lookup_code, meaning
1066 	       from OE_LOOKUPS
1067 	       where lookup_type In ('ITEM_OWNER', 'ONT_INSTALL_BASE')
1068 	       and enabled_flag = 'Y'
1069 	       and SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1070 			AND NVL(END_DATE_ACTIVE, SYSDATE) )   b,
1071 		OE_HEADERS_IFACE_ALL d
1072       WHERE d.IB_OWNER= b.MEANING(+)
1073 	--AND ( b.LOOKUP_TYPE(+) = 'ITEM_OWNER'
1074 	--OR  b.LOOKUP_TYPE(+) =  'ONT_INSTALL_BASE' )
1075 	--AND b.enabled_flag(+) = 'Y'
1076 	--AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1077 	--AND NVL(END_DATE_ACTIVE, SYSDATE)
1078 	AND d.rowid = c.rowid
1079 	AND rownum = 1
1080 	    )
1081    WHERE c.batch_id = p_batch_id
1082      AND c.IB_OWNER_CODE IS NULL  AND c.IB_OWNER IS NOT NULL;
1083 
1084 UPDATE OE_HEADERS_IFACE_ALL c
1085            SET (IB_INSTALLED_AT_LOCATION_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1086 	       (SELECT b.LOOKUP_CODE,
1087 		       DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1088 		       DECODE(b.LOOKUP_CODE,NULL,
1089 			      c.ATTRIBUTE_STATUS||'029',c.ATTRIBUTE_STATUS)
1090     FROM -- OE_LOOKUPS b,
1091  	     ( select lookup_code, meaning
1092 	       from OE_LOOKUPS
1093 	       where lookup_type In ('ITEM_INSTALL_LOCATION', 'ONT_INSTALL_BASE')
1094 	       and enabled_flag = 'Y'
1095 	       and SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1096 			AND NVL(END_DATE_ACTIVE, SYSDATE) )   b,
1097 	OE_HEADERS_IFACE_ALL d
1098 	    WHERE d.IB_INSTALLED_AT_LOCATION = b.MEANING(+)
1099 	      --AND ( b.LOOKUP_TYPE(+) = 'ITEM_INSTALL_LOCATION'
1100 	      --OR b.LOOKUP_TYPE(+) = 'ONT_INSTALL_BASE' )
1101 	      --AND b.enabled_flag(+) = 'Y'
1102 	      --AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1103 	      --AND NVL(END_DATE_ACTIVE, SYSDATE)
1104 	      AND d.rowid = c.rowid
1105 	      AND rownum = 1
1106 		  )
1107    WHERE c.batch_id = p_batch_id
1108 	  AND c.IB_INSTALLED_AT_LOCATION_CODE IS NULL
1109 	  AND c.IB_INSTALLED_AT_LOCATION IS NOT NULL;
1110 
1111 UPDATE OE_HEADERS_IFACE_ALL c
1112 	  SET (IB_CURRENT_LOCATION_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1113 	      (SELECT b.LOOKUP_CODE,
1114                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1115                DECODE(b.LOOKUP_CODE,NULL,
1116                 c.ATTRIBUTE_STATUS||'030',c.ATTRIBUTE_STATUS)
1117 	    FROM -- OE_LOOKUPS b,
1118 	     ( select lookup_code, meaning
1119 	       from OE_LOOKUPS
1120 	       where lookup_type In ('ITEM_CURRENT_LOCATION', 'ONT_INSTALL_BASE')
1121 	       and enabled_flag = 'Y'
1122 	       and SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1123 			AND NVL(END_DATE_ACTIVE, SYSDATE) )   b,
1124 		OE_HEADERS_IFACE_ALL d
1125 	   WHERE d.IB_CURRENT_LOCATION = b.MEANING(+)
1126           --AND ( b.LOOKUP_TYPE(+) = 'ITEM_CURRENT_LOCATION'
1127           --OR b.LOOKUP_TYPE(+) = 'ONT_INSTALL_BASE' )
1128           --AND b.enabled_flag(+) = 'Y'
1129           --AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1130           --            AND NVL(END_DATE_ACTIVE, SYSDATE)
1131           AND d.rowid = c.rowid
1132 	  AND rownum = 1
1133         )
1134     WHERE c.batch_id = p_batch_id
1135     AND c.IB_CURRENT_LOCATION_CODE IS NULL
1136     AND c.IB_CURRENT_LOCATION IS NOT NULL;
1137 
1138 
1139 -- OE_debug_pub.add('talking from value to id success');
1140 
1141 END IF;
1142 
1143 -- SHIP_FROM_ORG_ID: No Value to ID conversion in OEXSVIDB.pls!
1144 
1145 -- TAX_EXEMPT_FLAG: Value column does not exist on interface tables
1146 
1147 -- TAX_POINT_CODE: Unused column
1148 
1149 -- PAYMENT_TYPE_CODE: Value column does not exist on interface tables
1150 
1151 -- CREDIT_CARD_CODE: Not supported for BULK!
1152 
1153 EXCEPTION
1154     WHEN OTHERS THEN
1155      IF l_debug_level  > 0 THEN
1156          oe_debug_pub.add(  'OTHERS ERROR , OE_BULK_VALUE_TO_ID.HEADERS' ) ;
1157      END IF;
1158      IF l_debug_level  > 0 THEN
1159          oe_debug_pub.add(  SUBSTR ( SQLERRM , 1 , 240 ) ) ;
1160      END IF;
1161      OE_BULK_MSG_PUB.Add_Exc_Msg
1162        (   G_PKG_NAME
1163         ,   'Headers'
1164         );
1165      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1166 END Headers;
1167 
1168 
1169 ---------------------------------------------------------------------
1170 -- PROCEDURE Lines
1171 --
1172 -- Value to ID conversions on lines interface table.
1173 -- It sets error_flag to 'Y' and appends ATTRIBUTE_STATUS column with a
1174 -- number identifying each attribute that fails value to ID conversion.
1175 ---------------------------------------------------------------------
1176 
1177 PROCEDURE Lines(p_batch_id  IN NUMBER)
1178 IS
1179 --
1180 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1181 
1182 --bug 5620045
1183 subqry_too_many_rows Exception;
1184 PRAGMA EXCEPTION_INIT(subqry_too_many_rows, -01427);
1185 --
1186 BEGIN
1187 
1188 -- LINE_TYPE
1189 
1190     UPDATE OE_LINES_IFACE_ALL c
1191     SET (LINE_TYPE_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1192        (SELECT b.transaction_type_id,
1193                DECODE(b.transaction_type_id,NULL,'Y',NULL),
1194                DECODE(b.transaction_type_id,NULL,
1195                       c.ATTRIBUTE_STATUS||'020',c.ATTRIBUTE_STATUS)
1196         FROM OE_TRANSACTION_TYPES_TL b, OE_LINES_IFACE_ALL d
1197         WHERE d.LINE_TYPE = b.name(+)
1198           AND NVL(b.LANGUAGE,USERENV('LANG')) = USERENV('LANG')
1199           AND d.rowid = c.rowid
1200         )
1201     WHERE (order_source_id, orig_sys_document_ref) IN
1202                    ( SELECT order_source_id, orig_sys_document_ref
1203                      FROM OE_HEADERS_IFACE_ALL
1204                      WHERE batch_id = p_batch_id)
1205     AND c.LINE_TYPE_ID IS NULL
1206     AND c.LINE_TYPE IS NOT NULL;
1207 
1208 -- PRICE_LIST
1209 
1210     UPDATE OE_LINES_IFACE_ALL c
1211     SET (price_list_id,ERROR_FLAG,ATTRIBUTE_STATUS)=
1212        (SELECT b.LIST_HEADER_ID,
1213                DECODE(b.LIST_HEADER_ID,NULL,'Y',NULL),
1214                DECODE(b.LIST_HEADER_ID,NULL,
1215                       c.ATTRIBUTE_STATUS||'003',c.ATTRIBUTE_STATUS)
1216         FROM qp_list_headers_vl b, OE_LINES_IFACE_ALL d
1217         WHERE d.price_list = b.name(+)
1218           AND NVL(b.list_type_code,'PRL') IN ('PRL', 'AGR')
1219           AND nvl(b.active_flag,'Y') = 'Y'
1220           AND d.rowid = c.rowid
1221         )
1222     WHERE (order_source_id, orig_sys_document_ref) IN
1223                    ( SELECT order_source_id, orig_sys_document_ref
1224                      FROM OE_HEADERS_IFACE_ALL
1225                      WHERE batch_id = p_batch_id)
1226     AND c.price_list_id IS NULL
1227     AND c.price_list IS NOT NULL;
1228 
1229 
1230 -- SALESREP
1231 
1232     UPDATE OE_LINES_IFACE_ALL c
1233     SET ( SALESREP_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1234        (SELECT  /*+ PUSH_PRED(b) */ b.SALESREP_ID,
1235                DECODE(b.SALESREP_ID,NULL,'Y',NULL),
1236                DECODE(b.SALESREP_ID,NULL,
1237                       c.ATTRIBUTE_STATUS||'005',c.ATTRIBUTE_STATUS)
1238         FROM RA_SALESREPS b, OE_LINES_IFACE_ALL d
1239         WHERE d.SALESREP = b.NAME(+)
1240           AND sysdate between NVL(start_date_active,sysdate)
1241                        and NVL(end_date_active,sysdate)
1242           AND d.rowid = c.rowid
1243         )
1244     WHERE (order_source_id, orig_sys_document_ref) IN
1245                    ( SELECT order_source_id, orig_sys_document_ref
1246                      FROM OE_HEADERS_IFACE_ALL
1247                      WHERE batch_id = p_batch_id)
1248     AND c.SALESREP_ID IS NULL
1249     AND c.SALESREP IS NOT NULL;
1250 
1251 
1252 
1253 -- TAX_EXEMPT_REASON                        VARCHAR2(30)
1254     -- eBTax changes
1255   /*UPDATE OE_LINES_IFACE_ALL c
1256     SET (TAX_EXEMPT_REASON_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1257        (SELECT b.LOOKUP_CODE,
1258                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1259                DECODE(b.LOOKUP_CODE,NULL,
1260                       c.ATTRIBUTE_STATUS||'006',c.ATTRIBUTE_STATUS)
1261         FROM OE_AR_LOOKUPS_V b, OE_LINES_IFACE_ALL d
1262         WHERE d.TAX_EXEMPT_REASON = b.MEANING(+)
1263           AND b.LOOKUP_TYPE(+) = 'TAX_REASON'
1264           AND b.enabled_flag(+) = 'Y'
1265           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1266                       AND NVL(END_DATE_ACTIVE, SYSDATE)
1267           AND d.rowid = c.rowid
1268         )
1269     WHERE (order_source_id, orig_sys_document_ref) IN
1270                    ( SELECT order_source_id, orig_sys_document_ref
1271                      FROM OE_HEADERS_IFACE_ALL
1272                      WHERE batch_id = p_batch_id)
1273     AND c.TAX_EXEMPT_REASON_CODE IS NULL
1274     AND c.TAX_EXEMPT_REASON IS NOT NULL;*/
1275 
1276 	UPDATE OE_LINES_IFACE_ALL c
1277 	   SET (TAX_EXEMPT_REASON_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1278 	       (SELECT b.LOOKUP_CODE,
1279 	               DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1280 	               DECODE(b.LOOKUP_CODE,NULL,
1281 	                      c.ATTRIBUTE_STATUS||'006',c.ATTRIBUTE_STATUS)
1282 	          FROM FND_LOOKUPS  b, OE_LINES_IFACE_ALL d
1283 	         WHERE d.TAX_EXEMPT_REASON = b.MEANING(+)
1284 	           AND b.LOOKUP_TYPE(+) = 'ZX_EXEMPTION_REASON_CODE'
1285 	           AND b.enabled_flag(+) = 'Y'
1286 	           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1287 	                             AND NVL(END_DATE_ACTIVE, SYSDATE)
1288 	           AND d.rowid = c.rowid)
1289          WHERE (order_source_id, orig_sys_document_ref) IN
1290 	       (SELECT order_source_id, orig_sys_document_ref
1291 	          FROM OE_HEADERS_IFACE_ALL
1292 	         WHERE batch_id = p_batch_id)
1293 	   AND c.TAX_EXEMPT_REASON_CODE IS NULL
1294 	   AND c.TAX_EXEMPT_REASON IS NOT NULL;
1295 
1296 
1297 
1298 -- AGREEMENT                                VARCHAR2(50)
1299 
1300     UPDATE OE_LINES_IFACE_ALL c
1301     SET (AGREEMENT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1302        (SELECT b.AGREEMENT_ID,
1303                DECODE(b.AGREEMENT_ID,NULL,'Y',NULL),
1304                DECODE(b.AGREEMENT_ID,NULL,
1305                       c.ATTRIBUTE_STATUS||'007',c.ATTRIBUTE_STATUS)
1306         FROM OE_AGREEMENTS_V b, OE_LINES_IFACE_ALL d
1307         WHERE d.AGREEMENT = b.NAME(+)
1308           AND sysdate between nvl(start_date_active, sysdate)
1309               and nvl(end_date_active, sysdate)
1310           AND d.rowid = c.rowid
1311         )
1312     WHERE (order_source_id, orig_sys_document_ref) IN
1313                    ( SELECT order_source_id, orig_sys_document_ref
1314                      FROM OE_HEADERS_IFACE_ALL
1315                      WHERE batch_id = p_batch_id)
1316     AND c.AGREEMENT_ID IS NULL
1317     AND c.AGREEMENT IS NOT NULL;
1318 
1319 
1320 
1321 -- INVOICING_RULE
1322 
1323     UPDATE OE_LINES_IFACE_ALL c
1324     SET (INVOICING_RULE_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1325        (SELECT b.RULE_ID,
1326                DECODE(b.RULE_ID,NULL,'Y',NULL),
1327                DECODE(b.RULE_ID,NULL,
1328                       c.ATTRIBUTE_STATUS||'008',c.ATTRIBUTE_STATUS)
1329         FROM OE_RA_RULES_V b, OE_LINES_IFACE_ALL d
1330         WHERE d.INVOICING_RULE = b.NAME(+)
1331           AND b.STATUS(+) = 'A'
1332           AND b.TYPE(+) = 'I'
1333           AND d.rowid = c.rowid
1334         )
1335     WHERE (order_source_id, orig_sys_document_ref) IN
1336                    ( SELECT order_source_id, orig_sys_document_ref
1337                      FROM OE_HEADERS_IFACE_ALL
1338                      WHERE batch_id = p_batch_id)
1339     AND c.INVOICING_RULE_ID IS NULL
1340     AND c.INVOICING_RULE IS NOT NULL;
1341 
1342 -- ACCOUNTING_RULE                          VARCHAR2(30)
1343 
1344     UPDATE OE_LINES_IFACE_ALL c
1345     SET (ACCOUNTING_RULE_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1346        (SELECT b.RULE_ID,
1347                DECODE(b.RULE_ID,NULL,'Y',NULL),
1348                DECODE(b.RULE_ID,NULL,
1349                       c.ATTRIBUTE_STATUS||'009',c.ATTRIBUTE_STATUS)
1350         FROM OE_RA_RULES_V b, OE_LINES_IFACE_ALL d
1351         WHERE d.ACCOUNTING_RULE = b.NAME(+)
1352           AND b.STATUS(+) = 'A'
1353       --  AND b.TYPE(+) = 'A' --we now allow variable accounting rules
1354           AND d.rowid = c.rowid
1355         )
1356     WHERE (order_source_id, orig_sys_document_ref) IN
1357                    ( SELECT order_source_id, orig_sys_document_ref
1358                      FROM OE_HEADERS_IFACE_ALL
1359                      WHERE batch_id = p_batch_id)
1360     AND c.ACCOUNTING_RULE_ID IS NULL
1361     AND c.ACCOUNTING_RULE IS NOT NULL;
1362 
1363 -- PAYMENT_TERM                             VARCHAR2(30)
1364 
1365     UPDATE OE_LINES_IFACE_ALL c
1366     SET (PAYMENT_TERM_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1367        (SELECT b.TERM_ID,
1368                DECODE(b.TERM_ID,NULL,'Y',NULL),
1369                DECODE(b.TERM_ID,NULL,
1370                       c.ATTRIBUTE_STATUS||'010',c.ATTRIBUTE_STATUS)
1371         FROM OE_RA_TERMS_V b, OE_LINES_IFACE_ALL d
1372         WHERE d.PAYMENT_TERM = b.NAME(+)
1373           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1374                   AND NVL(END_DATE_ACTIVE, SYSDATE)
1375           AND d.rowid = c.rowid
1376         )
1377     WHERE (order_source_id, orig_sys_document_ref) IN
1378                    ( SELECT order_source_id, orig_sys_document_ref
1379                      FROM OE_HEADERS_IFACE_ALL
1380                      WHERE batch_id = p_batch_id)
1381     AND c.PAYMENT_TERM_ID IS NULL
1382     AND c.PAYMENT_TERM IS NOT NULL;
1383 
1384 
1385 -- FREIGHT_TERMS                            VARCHAR2(30)
1386 
1387     UPDATE OE_LINES_IFACE_ALL c
1388     SET (FREIGHT_TERMS_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1389        (SELECT b.LOOKUP_CODE,
1390                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1391                DECODE(b.LOOKUP_CODE,NULL,
1392                       c.ATTRIBUTE_STATUS||'011',c.ATTRIBUTE_STATUS)
1393         FROM OE_LOOKUPS b, OE_LINES_IFACE_ALL d
1394         WHERE d.FREIGHT_TERMS = b.MEANING(+)
1395           AND b.LOOKUP_TYPE(+) = 'FREIGHT_TERMS'
1396           AND b.enabled_flag(+) = 'Y'
1397           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1398                       AND NVL(END_DATE_ACTIVE, SYSDATE)
1399           AND d.rowid = c.rowid
1400         )
1401     WHERE (order_source_id, orig_sys_document_ref) IN
1402                    ( SELECT order_source_id, orig_sys_document_ref
1403                      FROM OE_HEADERS_IFACE_ALL
1404                      WHERE batch_id = p_batch_id)
1405     AND c.FREIGHT_TERMS_CODE IS NULL
1406     AND c.FREIGHT_TERMS IS NOT NULL;
1407 
1408 
1409 
1410 -- FOB_POINT                                VARCHAR2(30)
1411 
1412     UPDATE OE_LINES_IFACE_ALL c
1413     SET (FOB_POINT_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1414        (SELECT b.LOOKUP_CODE,
1415                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1416                DECODE(b.LOOKUP_CODE,NULL,
1417                       c.ATTRIBUTE_STATUS||'012',c.ATTRIBUTE_STATUS)
1418         FROM OE_AR_LOOKUPS_V b, OE_LINES_IFACE_ALL d
1419         WHERE d.FOB_POINT = b.MEANING(+)
1420           AND b.LOOKUP_TYPE(+) = 'FOB'
1421           AND b.enabled_flag(+) = 'Y'
1422           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1423                       AND NVL(END_DATE_ACTIVE, SYSDATE)
1424           AND d.rowid = c.rowid
1425         )
1426     WHERE (order_source_id, orig_sys_document_ref) IN
1427                    ( SELECT order_source_id, orig_sys_document_ref
1428                      FROM OE_HEADERS_IFACE_ALL
1429                      WHERE batch_id = p_batch_id)
1430     AND c.FOB_POINT_CODE IS NULL
1431     AND c.FOB_POINT IS NOT NULL;
1432 
1433 
1434 -- SOLD_TO_ORG -- Required as it is used later for invoice
1435 -- and ship to org
1436     UPDATE OE_LINES_IFACE_ALL c
1437     SET SOLD_TO_ORG_ID =
1438          (SELECT d.SOLD_TO_ORG_ID FROM OE_HEADERS_IFACE_ALL d, OE_LINES_IFACE_ALL e
1439           WHERE d.order_source_id = e.order_source_id
1440             AND d.orig_sys_document_ref = e.orig_sys_document_ref
1441             AND batch_id = p_batch_id
1442             AND d.sold_to_org_id IS NOT NULL
1443             AND c.rowid = e.rowid
1444          )
1445     WHERE (order_source_id, orig_sys_document_ref) IN
1446                    ( SELECT order_source_id, orig_sys_document_ref
1447                      FROM OE_HEADERS_IFACE_ALL
1448                      WHERE batch_id = p_batch_id
1449 )
1450     AND c.SOLD_TO_ORG_ID IS NULL;
1451 
1452 
1453 -- DELIVER_TO_ORG  No mapping columns in the interface table
1454 
1455 
1456   -- Ship To and Invoice To customer should be passed only if
1457   -- customer relationships is 'Y' or 'A'
1458   IF OE_Bulk_Order_Pvt.G_CUST_RELATIONS <> 'N' THEN
1459 
1460     -- First, value to ID conversions for ship to customer and
1461     -- and invoice_to_customer
1462 
1463     -- SHIP_TO_CUSTOMER
1464 --Enclosing the update in a block for bug 5620045
1465 BEGIN
1466     UPDATE OE_LINES_IFACE_ALL c
1467     SET (SHIP_TO_CUSTOMER_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1468         (SELECT b.CUST_ACCOUNT_ID,
1469                DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
1470                DECODE(b.CUST_ACCOUNT_ID,NULL,
1471                       d.ATTRIBUTE_STATUS||'014',d.ATTRIBUTE_STATUS)
1472         FROM HZ_CUST_ACCOUNTS b, OE_LINES_IFACE_ALL d
1473         WHERE d.SHIP_TO_CUSTOMER_NUMBER IS NOT NULL
1474           AND d.SHIP_TO_CUSTOMER_NUMBER = b.ACCOUNT_NUMBER(+)
1475           AND b.STATUS(+) = 'A'
1476           AND d.rowid = c.rowid
1477         UNION ALL
1478         SELECT b.CUST_ACCOUNT_ID,
1479                DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
1480                DECODE(b.CUST_ACCOUNT_ID,NULL,
1481                       d.ATTRIBUTE_STATUS||'014',d.ATTRIBUTE_STATUS)
1482         FROM HZ_CUST_ACCOUNTS b, HZ_PARTIES e, OE_LINES_IFACE_ALL d
1483         WHERE d.SHIP_TO_CUSTOMER_NUMBER IS NULL
1484           AND d.SHIP_TO_CUSTOMER_NAME = e.PARTY_NAME(+)
1485           AND b.STATUS(+) = 'A'
1486           AND b.PARTY_ID(+) = e.PARTY_ID
1487           AND d.rowid = c.rowid
1488         )
1489     WHERE (order_source_id, orig_sys_document_ref) IN
1490                    ( SELECT order_source_id, orig_sys_document_ref
1491                      FROM OE_HEADERS_IFACE_ALL
1492                      WHERE batch_id = p_batch_id)
1493     AND c.SHIP_TO_CUSTOMER_ID IS NULL
1494     AND (c.SHIP_TO_CUSTOMER_NAME IS NOT NULL OR
1495          c.SHIP_TO_CUSTOMER_NUMBER IS NOT NULL);
1496 EXCEPTION
1497   WHEN subqry_too_many_rows THEN
1498     UPDATE OE_LINES_IFACE_ALL c
1499           SET ERROR_FLAG = 'Y',
1500               ATTRIBUTE_STATUS = ATTRIBUTE_STATUS||'014'
1501     WHERE  c.SHIP_TO_CUSTOMER_ID IS NULL
1502      AND   c.SHIP_TO_CUSTOMER_NAME IS NOT NULL
1503      AND   (order_source_id, orig_sys_document_ref) IN
1504                    ( SELECT order_source_id, orig_sys_document_ref
1505                      FROM OE_HEADERS_IFACE_ALL
1506                      WHERE batch_id = p_batch_id) ;
1507 
1508 END;
1509 
1510     -- INVOICE_TO_CUSTOMER
1511     -- Catch subqry_too_many_rows exception bug 5620045
1512 BEGIN
1513     UPDATE OE_LINES_IFACE_ALL c
1514     SET (INVOICE_TO_CUSTOMER_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1515         (SELECT b.CUST_ACCOUNT_ID,
1516                DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
1517                DECODE(b.CUST_ACCOUNT_ID,NULL,
1518                       d.ATTRIBUTE_STATUS||'015',d.ATTRIBUTE_STATUS)
1519         FROM HZ_CUST_ACCOUNTS b, OE_LINES_IFACE_ALL d
1520         WHERE d.INVOICE_TO_CUSTOMER_NUMBER IS NOT NULL
1521           AND d.INVOICE_TO_CUSTOMER_NUMBER = b.ACCOUNT_NUMBER(+)
1522           AND b.STATUS(+) = 'A'
1523           AND d.rowid = c.rowid
1524         UNION ALL
1525         SELECT b.CUST_ACCOUNT_ID,
1526                DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
1527                DECODE(b.CUST_ACCOUNT_ID,NULL,
1528                       d.ATTRIBUTE_STATUS||'015',d.ATTRIBUTE_STATUS)
1529         FROM HZ_CUST_ACCOUNTS b, HZ_PARTIES e, OE_LINES_IFACE_ALL d
1530         WHERE d.INVOICE_TO_CUSTOMER_NUMBER IS NULL
1531           AND d.INVOICE_TO_CUSTOMER_NAME = e.PARTY_NAME(+)
1532           AND b.STATUS(+) = 'A'
1533           AND b.PARTY_ID(+) = e.PARTY_ID
1534           AND d.rowid = c.rowid
1535         )
1536     WHERE (order_source_id, orig_sys_document_ref) IN
1537                    ( SELECT order_source_id, orig_sys_document_ref
1538                      FROM OE_HEADERS_IFACE_ALL
1539                      WHERE batch_id = p_batch_id)
1540     AND c.INVOICE_TO_CUSTOMER_ID IS NULL
1541     AND (c.INVOICE_TO_CUSTOMER_NAME IS NOT NULL OR
1542          c.INVOICE_TO_CUSTOMER_NUMBER IS NOT NULL);
1543 EXCEPTION
1544   WHEN subqry_too_many_rows THEN
1545     UPDATE OE_LINES_IFACE_ALL c
1546           SET ERROR_FLAG = 'Y',
1547               ATTRIBUTE_STATUS = ATTRIBUTE_STATUS||'015'
1548     WHERE  (order_source_id, orig_sys_document_ref) IN
1549                    ( SELECT order_source_id, orig_sys_document_ref
1550                      FROM OE_HEADERS_IFACE_ALL
1551                      WHERE batch_id = p_batch_id)
1552     AND c.INVOICE_TO_CUSTOMER_ID IS NULL
1553     AND c.INVOICE_TO_CUSTOMER_NAME IS NOT NULL ;
1554 END;
1555 
1556   END IF;
1557 
1558   -- SHIP_TO_ORG
1559 
1560     UPDATE OE_LINES_IFACE_ALL c
1561     SET (SHIP_TO_ORG_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1562           (SELECT  /*+ PUSH_PRED(b) */ b.ORGANIZATION_ID,
1563                DECODE(b.ORGANIZATION_ID,NULL,'Y',NULL),
1564                DECODE(b.ORGANIZATION_ID,NULL,
1565                       d.ATTRIBUTE_STATUS||'014',d.ATTRIBUTE_STATUS)
1566           FROM OE_SHIP_TO_ORGS_V b, OE_LINES_IFACE_ALL d
1567           WHERE d.ship_to_address1 = ADDRESS_LINE_1(+)
1568           AND nvl(d.ship_to_address2,'NIL') = NVL(ADDRESS_LINE_2(+),'NIL')
1569           AND nvl(d.ship_to_address3,'NIL') = nvl(ADDRESS_LINE_3(+),'NIL')
1570           --AND nvl(d.ship_to_address4,'NIL') = ADDRESS_LINE_4
1571           AND nvl(d.ship_to_city,'NIL') = nvl(town_or_city(+),'NIL')
1572           AND nvl(d.ship_to_state,'NIL') = nvl(state(+),'NIL')
1573           AND nvl(d.ship_to_postal_code,'NIL') = nvl(postal_code(+),'NIL')
1574           AND nvl(d.ship_to_country,'NIL') = nvl(country(+),'NIL')
1575           AND nvl(STATUS(+),'A') = 'A'
1576           AND b.CUSTOMER_ID(+) = nvl(d.SHIP_TO_CUSTOMER_ID,d.SOLD_TO_ORG_ID)
1577           AND d.rowid = c.rowid
1578         )
1579     WHERE (order_source_id, orig_sys_document_ref) IN
1580                    ( SELECT order_source_id, orig_sys_document_ref
1581                      FROM OE_HEADERS_IFACE_ALL
1582                      WHERE batch_id = p_batch_id)
1583     AND c.SHIP_TO_ORG_ID IS NULL
1584     AND (c.SHIP_TO_ADDRESS1 IS NOT NULL
1585         OR c.ship_to_address2 IS NOT NULL
1586         OR c.ship_to_address3 IS NOT NULL
1587         OR c.ship_to_address4 IS NOT NULL
1588         OR c.ship_to_org IS NOT NULL
1589         );
1590 
1591   -- INVOICE_TO_ORG
1592 
1593     UPDATE OE_LINES_IFACE_ALL c
1594     SET (INVOICE_TO_ORG_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1595           (SELECT  /*+ PUSH_PRED(b) */ b.ORGANIZATION_ID,
1596                DECODE(b.ORGANIZATION_ID,NULL,'Y',NULL),
1597                DECODE(b.ORGANIZATION_ID,NULL,
1598                       d.ATTRIBUTE_STATUS||'015',d.ATTRIBUTE_STATUS)
1599           FROM OE_INVOICE_TO_ORGS_V b, OE_LINES_IFACE_ALL d
1600           WHERE d.invoice_to_address1 = ADDRESS_LINE_1(+)
1601           AND nvl(d.invoice_to_address2,'NIL') = NVL(ADDRESS_LINE_2(+),'NIL')
1602           AND nvl(d.invoice_to_address3,'NIL') = nvl(ADDRESS_LINE_3(+),'NIL')
1603           --AND nvl(d.invoice_to_address4,'NIL') = ADDRESS_LINE_4
1604           AND nvl(d.invoice_to_city,'NIL') = nvl(town_or_city(+),'NIL')
1605           AND nvl(d.invoice_to_state,'NIL') = nvl(state(+),'NIL')
1606           AND nvl(d.invoice_to_postal_code,'NIL') = nvl(postal_code(+),'NIL')
1607           AND nvl(d.invoice_to_country,'NIL') = nvl(country(+),'NIL')
1608           AND nvl(STATUS(+),'A') = 'A'
1609           AND b.CUSTOMER_ID(+) = nvl(d.INVOICE_TO_CUSTOMER_ID,d.SOLD_TO_ORG_ID)
1610           AND d.rowid = c.rowid
1611         )
1612     WHERE (order_source_id, orig_sys_document_ref) IN
1613                    ( SELECT order_source_id, orig_sys_document_ref
1614                      FROM OE_HEADERS_IFACE_ALL
1615                      WHERE batch_id = p_batch_id)
1616     AND c.INVOICE_TO_ORG_ID IS NULL
1617     AND (c.invoice_to_address1 IS NOT NULL
1618         OR c.invoice_to_address2 IS NOT NULL
1619         OR c.invoice_to_address3 IS NOT NULL
1620         OR c.invoice_to_address4 IS NOT NULL
1621         OR c.invoice_to_org IS NOT NULL
1622         );
1623 
1624 
1625 -- SHIP_TO_CONTACT                          VARCHAR2(30)
1626 
1627     UPDATE OE_LINES_IFACE_ALL c
1628     SET (SHIP_TO_CONTACT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1629        (SELECT Get_Contact_ID(c.SHIP_TO_CONTACT,c.SHIP_TO_ORG_ID),
1630                DECODE(Get_Contact_ID(c.SHIP_TO_CONTACT,c.SHIP_TO_ORG_ID),NULL,'Y',NULL),
1631                DECODE(Get_Contact_ID(c.SHIP_TO_CONTACT,c.SHIP_TO_ORG_ID),NULL,
1632                       c.ATTRIBUTE_STATUS||'017',c.ATTRIBUTE_STATUS)
1633         FROM DUAL
1634         )
1635     WHERE (order_source_id, orig_sys_document_ref) IN
1636                    ( SELECT order_source_id, orig_sys_document_ref
1637                      FROM OE_HEADERS_IFACE_ALL
1638                      WHERE batch_id = p_batch_id)
1639     AND c.SHIP_TO_CONTACT_ID IS NULL
1640     AND c.SHIP_TO_CONTACT IS NOT NULL;
1641 
1642 
1643 -- INVOICE_TO_CONTACT                       VARCHAR2(30)
1644 
1645     UPDATE OE_LINES_IFACE_ALL c
1646     SET (INVOICE_TO_CONTACT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1647        (SELECT Get_Contact_ID(c.INVOICE_TO_CONTACT,c.INVOICE_TO_ORG_ID),
1648                DECODE(Get_Contact_ID(c.INVOICE_TO_CONTACT,c.INVOICE_TO_ORG_ID),NULL,'Y',NULL),
1649                DECODE(Get_Contact_ID(c.INVOICE_TO_CONTACT,c.INVOICE_TO_ORG_ID),NULL,
1650                       c.ATTRIBUTE_STATUS||'018',c.ATTRIBUTE_STATUS)
1651         FROM DUAL
1652         )
1653     WHERE (order_source_id, orig_sys_document_ref) IN
1654                    ( SELECT order_source_id, orig_sys_document_ref
1655                      FROM OE_HEADERS_IFACE_ALL
1656                      WHERE batch_id = p_batch_id)
1657     AND c.INVOICE_TO_CONTACT_ID IS NULL
1658     AND c.INVOICE_TO_CONTACT IS NOT NULL;
1659 
1660 
1661 -- DELIVER_TO_CONTACT                       VARCHAR2(30)
1662 
1663     UPDATE OE_LINES_IFACE_ALL c
1664     SET (DELIVER_TO_CONTACT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1665        (SELECT Get_Contact_ID(c.DELIVER_TO_CONTACT,c.DELIVER_TO_ORG_ID),
1666                DECODE(Get_Contact_ID(c.DELIVER_TO_CONTACT,c.DELIVER_TO_ORG_ID),NULL,'Y',NULL),
1667                DECODE(Get_Contact_ID(c.DELIVER_TO_CONTACT,c.DELIVER_TO_ORG_ID),NULL,
1668                       c.ATTRIBUTE_STATUS||'019',c.ATTRIBUTE_STATUS)
1669         FROM DUAL
1670         )
1671     WHERE (order_source_id, orig_sys_document_ref) IN
1672                    ( SELECT order_source_id, orig_sys_document_ref
1673                      FROM OE_HEADERS_IFACE_ALL
1674                      WHERE batch_id = p_batch_id)
1675     AND c.DELIVER_TO_CONTACT_ID IS NULL
1676     AND c.DELIVER_TO_CONTACT IS NOT NULL;
1677 
1678 -- COMMITMENT - Not supported for BULK!
1679 
1680 
1681 -- SHIPMENT_PRIORITY_CODE
1682 
1683     UPDATE OE_LINES_IFACE_ALL c
1684     SET (SHIPMENT_PRIORITY_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1685        (SELECT b.LOOKUP_CODE,
1686                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1687                DECODE(b.LOOKUP_CODE,NULL,
1688                       c.ATTRIBUTE_STATUS||'023',c.ATTRIBUTE_STATUS)
1689         FROM OE_LOOKUPS b, OE_LINES_IFACE_ALL d
1690         WHERE d.SHIPMENT_PRIORITY = b.MEANING(+)
1691           AND b.LOOKUP_TYPE(+) = 'SHIPMENT_PRIORITY'
1692           AND b.enabled_flag(+) = 'Y'
1693           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1694                       AND NVL(END_DATE_ACTIVE, SYSDATE)
1695           AND d.rowid = c.rowid
1696         )
1697     WHERE (order_source_id, orig_sys_document_ref) IN
1698                    ( SELECT order_source_id, orig_sys_document_ref
1699                      FROM OE_HEADERS_IFACE_ALL
1700                      WHERE batch_id = p_batch_id)
1701     AND c.SHIPMENT_PRIORITY_CODE IS NULL
1702     AND c.SHIPMENT_PRIORITY IS NOT NULL;
1703 
1704 
1705 -- DEMAND_BUCKET_TYPE: No value to ID conversion in OEXSVIDB.pls
1706 
1707 -- SHIPPING_METHOD_CODE                         VARCHAR2(30)
1708     UPDATE OE_LINES_IFACE_ALL c
1709     SET (SHIPPING_METHOD_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1710        (SELECT b.LOOKUP_CODE,
1711                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1712                DECODE(b.LOOKUP_CODE,NULL,
1713                       c.ATTRIBUTE_STATUS||'024',c.ATTRIBUTE_STATUS)
1714         FROM OE_SHIP_METHODS_V b, OE_LINES_IFACE_ALL d
1715         WHERE d.SHIPPING_METHOD = b.MEANING(+)
1716           AND b.enabled_flag(+) = 'Y'
1717           AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1718                       AND NVL(END_DATE_ACTIVE, SYSDATE)
1719           AND d.rowid = c.rowid
1720         )
1721     WHERE (order_source_id, orig_sys_document_ref) IN
1722                    ( SELECT order_source_id, orig_sys_document_ref
1723                      FROM OE_HEADERS_IFACE_ALL
1724                      WHERE batch_id = p_batch_id)
1725     AND c.SHIPPING_METHOD_CODE IS NULL
1726     AND c.SHIPPING_METHOD IS NOT NULL;
1727 
1728 -- FREIGHT_CARRIER_CODE: value column does not exist on interface tables
1729 
1730 -- INTERMED_SHIP_TO_CONTACT_ID: no columns on interface tables
1731 
1732 -- INTERMED_SHIP_TO_ORG_ID: no columns on interface tables
1733 
1734 -- INVENTORY_ITEM: Value to ID conversion in OEBLLINB, Get_Item_Info
1735 
1736 -- ITEM_TYPE_CODE: Not needed - this is an INTERNAL field!
1737 
1738 -- OVER_SHIP_REASON: Not applicable to order creation.
1739 
1740 -- RETURN_REASON: Not supported for BULK!
1741 
1742 -- COMMITMENT_ID: Not supported for BULK!
1743 
1744 -- RLA_SCHEDULE_TYPE, VEH_CUS_ITEM_CUM_KEY: No Value to ID conversion in OEXSVIDB.pls!
1745 
1746 -- SHIP_FROM_ORG_ID: No Value to ID conversion in OEXSVIDB.pls!
1747 
1748 -- PROJECT_ID, TASK_ID: No Value to ID conversion in OEXSVIDB.pls!
1749 
1750 -- TAX_EXEMPT_FLAG: Value column does not exist on interface tables
1751 
1752 -- TAX_POINT_CODE: Unused column
1753 
1754 --{Bug 5054618
1755 --End customer changes for HVOP
1756 -- bug 5620045
1757 -- Catch subqry_too_many_rows exception and add additional where clause
1758 -- to update only the records in the current batch
1759 
1760 BEGIN
1761 UPDATE OE_LINES_IFACE_ALL c
1762  SET (END_CUSTOMER_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1763  (SELECT b.CUST_ACCOUNT_ID,
1764   DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
1765   DECODE(b.CUST_ACCOUNT_ID,NULL,
1766   d.ATTRIBUTE_STATUS||'025',d.ATTRIBUTE_STATUS)
1767     FROM HZ_CUST_ACCOUNTS b, OE_LINES_IFACE_ALL d
1768    WHERE d.END_CUSTOMER_NUMBER IS NOT NULL
1769      AND d.END_CUSTOMER_NUMBER = b.ACCOUNT_NUMBER(+)
1770    AND b.STATUS(+) = 'A'  AND d.rowid = c.rowid
1771    UNION ALL
1772   SELECT b.CUST_ACCOUNT_ID,
1773    DECODE(b.CUST_ACCOUNT_ID,NULL,'Y',NULL),
1774    DECODE(b.CUST_ACCOUNT_ID,NULL,
1775    d.ATTRIBUTE_STATUS||'025',d.ATTRIBUTE_STATUS)
1776     FROM HZ_CUST_ACCOUNTS b, HZ_PARTIES e, OE_LINES_IFACE_ALL d
1777    WHERE d.END_CUSTOMER_NUMBER IS NULL
1778      AND d.END_CUSTOMER_NAME = e.PARTY_NAME(+)
1779      AND b.STATUS(+) = 'A'  AND b.PARTY_ID(+) = e.PARTY_ID
1780      AND d.rowid = c.rowid)
1781     WHERE (order_source_id, orig_sys_document_ref) IN
1782                    ( SELECT order_source_id, orig_sys_document_ref
1783                      FROM OE_HEADERS_IFACE_ALL
1784                      WHERE batch_id = p_batch_id)
1785       AND   c.END_CUSTOMER_ID IS NULL
1786       AND  (c.END_CUSTOMER_NAME IS NOT NULL
1787          OR c.END_CUSTOMER_NUMBER IS NOT NULL);
1788 EXCEPTION
1789   WHEN subqry_too_many_rows THEN
1790     UPDATE OE_LINES_IFACE_ALL c
1791           SET ERROR_FLAG = 'Y',
1792               ATTRIBUTE_STATUS = ATTRIBUTE_STATUS||'025'
1793     WHERE  (order_source_id, orig_sys_document_ref) IN
1794                    ( SELECT order_source_id, orig_sys_document_ref
1795                      FROM OE_HEADERS_IFACE_ALL
1796                      WHERE batch_id = p_batch_id)
1797       AND   c.END_CUSTOMER_ID IS NULL
1798       AND   c.END_CUSTOMER_NAME IS NOT NULL ;
1799 
1800 END;
1801 
1802 
1803 --bug 5620045 added additional where clause to update records in current
1804 --batch
1805 UPDATE OE_LINES_IFACE_ALL c
1806  SET (END_CUSTOMER_CONTACT_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1807       (SELECT
1808        Get_End_customer_Contact_ID(c.END_CUSTOMER_CONTACT,c.END_CUSTOMER_ID),
1809        DECODE(Get_End_customer_Contact_ID(c.END_CUSTOMER_CONTACT,
1810                                          c.END_CUSTOMER_ID),NULL,'Y',NULL),
1811        DECODE(Get_End_customer_Contact_ID(c.END_CUSTOMER_CONTACT,
1812                                           c.END_CUSTOMER_ID),NULL,
1813               c.ATTRIBUTE_STATUS||'026',c.ATTRIBUTE_STATUS)
1814        FROM DUAL)
1815 WHERE  (order_source_id, orig_sys_document_ref) IN
1816                    ( SELECT order_source_id, orig_sys_document_ref
1817                      FROM OE_HEADERS_IFACE_ALL
1818                      WHERE batch_id = p_batch_id)
1819    AND c.END_CUSTOMER_CONTACT_ID IS NULL
1820    AND c.END_CUSTOMER_CONTACT IS NOT NULL;
1821 
1822 
1823 
1824 UPDATE OE_LINES_IFACE_ALL c
1825      SET (END_CUSTOMER_SITE_USE_ID,ERROR_FLAG,ATTRIBUTE_STATUS)=
1826 	 (SELECT END_CUSTOMER_SITE(c.end_customer_address1,
1827                 c.end_customer_address2,c.end_customer_address3,
1828                 c.end_customer_address4,c.end_customer_location, NULL,
1829                 c.end_customer_id,c.end_customer_city, c.end_customer_state,
1830                 c.end_customer_postal_code,c.end_customer_country,NULL),
1831 		DECODE(END_CUSTOMER_SITE(c.end_customer_address1,
1832                         c.end_customer_address2,c.end_customer_address3,
1833                         c.end_customer_address4,c.end_customer_location,NULL,
1834 			c.end_customer_id,c.end_customer_city,
1835                         c.end_customer_state, c.end_customer_postal_code,
1836                         c.end_customer_country, NULL),NULL,'Y',NULL),
1837 		DECODE(END_CUSTOMER_SITE(c.end_customer_address1,
1838 					 c.end_customer_address2,
1839 					 c.end_customer_address3,
1840 					 c.end_customer_address4,
1841 					 c.end_customer_location,
1842 					 NULL,
1843 					 c.end_customer_id,
1844 					 c.end_customer_city,
1845 					 c.end_customer_state,
1846 					 c.end_customer_postal_code,
1847 					 c.end_customer_country,
1848 					 NULL),
1849                        NULL,c.ATTRIBUTE_STATUS||'027',c.ATTRIBUTE_STATUS)
1850        FROM DUAL)
1851    WHERE  (order_source_id, orig_sys_document_ref) IN
1852                    ( SELECT order_source_id, orig_sys_document_ref
1853                      FROM OE_HEADERS_IFACE_ALL
1854                      WHERE batch_id = p_batch_id)
1855      AND  c.END_CUSTOMER_SITE_USE_ID IS NULL AND c.END_CUSTOMER_ID IS NOT NULL
1856      AND (c.END_CUSTOMER_ADDRESS1 IS NOT NULL
1857 	  OR c.END_CUSTOMER_ADDRESS2 IS NOT NULL
1858 	  OR c.END_CUSTOMER_ADDRESS3 IS NOT NULL
1859 	  OR c.END_CUSTOMER_ADDRESS4 IS NOT NULL);
1860 
1861 
1862 
1863 -- Bug 5054618}
1864 UPDATE OE_LINES_IFACE_ALL c
1865     SET (IB_OWNER_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1866        (SELECT b.LOOKUP_CODE,
1867                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1868                DECODE(b.LOOKUP_CODE,NULL,
1869                       c.ATTRIBUTE_STATUS||'028',c.ATTRIBUTE_STATUS)
1870         FROM -- OE_LOOKUPS b,
1871 	     ( select lookup_code, meaning
1872 	       from OE_LOOKUPS
1873 	       where lookup_type In ('ITEM_OWNER', 'ONT_INSTALL_BASE')
1874 	       and enabled_flag = 'Y'
1875 	       and SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1876 			AND NVL(END_DATE_ACTIVE, SYSDATE) )   b,
1877 	OE_LINES_IFACE_ALL d
1878         WHERE d.IB_OWNER = b.MEANING(+)
1879           --AND ( b.LOOKUP_TYPE(+) = 'ITEM_OWNER'
1880           --OR b.LOOKUP_TYPE(+) = 'ONT_INSTALL_BASE' )
1881           --AND b.enabled_flag(+) = 'Y'
1882           --AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1883           --            AND NVL(END_DATE_ACTIVE, SYSDATE)
1884           AND d.rowid = c.rowid
1885 	  AND rownum = 1
1886         )
1887     WHERE (order_source_id, orig_sys_document_ref) IN
1888                    ( SELECT order_source_id, orig_sys_document_ref
1889                      FROM OE_HEADERS_IFACE_ALL
1890                      WHERE batch_id = p_batch_id)
1891     AND c.IB_OWNER_CODE IS NULL
1892     AND c.IB_OWNER IS NOT NULL;
1893 
1894 
1895 UPDATE OE_LINES_IFACE_ALL c
1896     SET (IB_INSTALLED_AT_LOCATION_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1897        (SELECT b.LOOKUP_CODE,
1898                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1899                DECODE(b.LOOKUP_CODE,NULL,
1900                       c.ATTRIBUTE_STATUS||'029',c.ATTRIBUTE_STATUS)
1901         FROM -- OE_LOOKUPS b,
1902 	     ( select lookup_code, meaning
1903 	       from OE_LOOKUPS
1904 	       where lookup_type In ('ITEM_INSTALL_LOCATION', 'ONT_INSTALL_BASE')
1905 	       and enabled_flag = 'Y'
1906 	       and SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1907 			AND NVL(END_DATE_ACTIVE, SYSDATE) )   b,
1908 	OE_LINES_IFACE_ALL d
1909         WHERE d.IB_INSTALLED_AT_LOCATION = b.MEANING(+)
1910           --AND ( b.LOOKUP_TYPE(+) = 'ITEM_INSTALL_LOCATION'
1911           --OR b.LOOKUP_TYPE(+) = 'ONT_INSTALL_BASE' )
1912           --AND b.enabled_flag(+) = 'Y'
1913           --AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1914           --            AND NVL(END_DATE_ACTIVE, SYSDATE)
1915           AND d.rowid = c.rowid
1916 	  AND rownum = 1
1917         )
1918     WHERE (order_source_id, orig_sys_document_ref) IN
1919                    ( SELECT order_source_id, orig_sys_document_ref
1920                      FROM OE_HEADERS_IFACE_ALL
1921                      WHERE batch_id = p_batch_id)
1922     AND c.IB_INSTALLED_AT_LOCATION_CODE IS NULL
1923     AND c.IB_INSTALLED_AT_LOCATION IS NOT NULL;
1924 
1925 UPDATE OE_LINES_IFACE_ALL c
1926     SET (IB_CURRENT_LOCATION_CODE,ERROR_FLAG,ATTRIBUTE_STATUS)=
1927        (SELECT b.LOOKUP_CODE,
1928                DECODE(b.LOOKUP_CODE,NULL,'Y',NULL),
1929                DECODE(b.LOOKUP_CODE,NULL,
1930                       c.ATTRIBUTE_STATUS||'030',c.ATTRIBUTE_STATUS)
1931         FROM -- OE_LOOKUPS b,
1932 	     ( select lookup_code, meaning
1933 	       from OE_LOOKUPS
1934 	       where lookup_type In ('ITEM_CURRENT_LOCATION', 'ONT_INSTALL_BASE')
1935 	       and enabled_flag = 'Y'
1936 	       and SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1937 			AND NVL(END_DATE_ACTIVE, SYSDATE) )   b,
1938 		OE_LINES_IFACE_ALL d
1939         WHERE d.IB_CURRENT_LOCATION = b.MEANING(+)
1940           --AND ( b.LOOKUP_TYPE(+) = 'ITEM_CURRENT_LOCATION'
1941           --OR b.LOOKUP_TYPE(+) = 'ONT_INSTALL_BASE' )
1942           --AND b.enabled_flag(+) = 'Y'
1943           --AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE, SYSDATE)
1944           --            AND NVL(END_DATE_ACTIVE, SYSDATE)
1945           AND d.rowid = c.rowid
1946 	  AND rownum = 1
1947         )
1948     WHERE (order_source_id, orig_sys_document_ref) IN
1949                    ( SELECT order_source_id, orig_sys_document_ref
1950                      FROM OE_HEADERS_IFACE_ALL
1951                      WHERE batch_id = p_batch_id)
1952      AND c.IB_CURRENT_LOCATION_CODE IS NULL
1953     AND c.IB_CURRENT_LOCATION IS NOT NULL;
1954 
1955 
1956 EXCEPTION
1957     WHEN OTHERS THEN
1958      IF l_debug_level  > 0 THEN
1959          oe_debug_pub.add(  'OTHERS ERROR , OE_BULK_VALUE_TO_ID.LINES' ) ;
1960      END IF;
1961      IF l_debug_level  > 0 THEN
1962          oe_debug_pub.add(  SUBSTR ( SQLERRM , 1 , 240 ) ) ;
1963      END IF;
1964      OE_BULK_MSG_PUB.Add_Exc_Msg
1965        (   G_PKG_NAME
1966         ,   'Lines'
1967         );
1968      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1969 END Lines;
1970 
1971 
1972 ---------------------------------------------------------------------
1973 -- PROCEDURE Adjustments
1974 --
1975 -- Value to ID conversions on adjustments interface table.
1976 -- This procedure also does pre-processing/entity validation for
1977 -- adjustments.
1978 ---------------------------------------------------------------------
1979 
1980 PROCEDURE Adjustments(p_batch_id  IN NUMBER)
1981 IS
1982 l_msg_text           VARCHAR2(2000);
1983 --
1984 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
1985 --
1986 BEGIN
1987 
1988     -- Value to ID conversions for adjustments
1989     -- List Header ID, List Line ID
1990 
1991     UPDATE OE_PRICE_ADJS_INTERFACE a
1992     SET (LIST_HEADER_ID, ERROR_FLAG) =
1993           (SELECT b.list_header_id
1994                   , decode(b.list_header_id,NULL,'Y',NULL)
1995            FROM QP_LIST_HEADERS_TL b
1996            WHERE b.NAME = a.list_name
1997              AND b.LANGUAGE = userenv('LANG')
1998              AND nvl(b.VERSION_NO,'x')  = nvl(a.version_number,'x')
1999            )
2000     WHERE (order_source_id, orig_sys_document_ref) IN
2001                    ( SELECT order_source_id, orig_sys_document_ref
2002                      FROM OE_HEADERS_IFACE_ALL
2003                      WHERE batch_id = p_batch_id)
2004       AND a.LIST_HEADER_ID IS NULL
2005       AND a.LIST_NAME IS NOT NULL;
2006 
2007     UPDATE OE_PRICE_ADJS_INTERFACE a
2008     SET (LIST_LINE_ID, LIST_LINE_TYPE_CODE, ERROR_FLAG) =
2009           (SELECT b.list_line_id
2010                   , b.list_line_type_code
2011                   , decode(b.list_line_id,NULL,'Y',NULL)
2012            FROM QP_LIST_LINES b
2013            WHERE b.LIST_HEADER_ID = a.LIST_HEADER_ID
2014              AND b.LIST_LINE_NO = a.LIST_LINE_NUMBER)
2015     WHERE (order_source_id, orig_sys_document_ref) IN
2016                    ( SELECT order_source_id, orig_sys_document_ref
2017                      FROM OE_HEADERS_IFACE_ALL
2018                      WHERE batch_id = p_batch_id)
2019       AND a.LIST_LINE_ID IS NULL
2020       AND a.LIST_HEADER_ID IS NOT NULL
2021       AND a.LIST_LINE_NUMBER IS NOT NULL;
2022 
2023 
2024    -- Entity Level Validations for Adjustments
2025 
2026    l_msg_text := FND_MESSAGE.GET_STRING('ONT','OE_BULK_NOT_SUPP_ADJ_ATTRIBS');
2027 
2028    INSERT INTO OE_PROCESSING_MSGS
2029    ( request_id ,entity_code ,entity_ref ,entity_id ,header_id
2030      ,line_id ,order_source_id ,original_sys_document_ref
2031      ,original_sys_document_line_ref ,orig_sys_shipment_ref ,change_sequence
2032      ,source_document_type_id ,source_document_id ,source_document_line_id
2033      ,attribute_code ,creation_date ,created_by ,last_update_date
2034      ,last_updated_by ,last_update_login ,program_application_id ,program_id
2035      ,program_update_date ,process_activity ,notification_flag ,type
2036      ,message_source_code ,language ,message_text, transaction_id
2037     )
2038     SELECT
2039      a.request_id,decode(orig_sys_line_ref,NULL,'HEADER_ADJ','LINE_ADJ'),NULL ,NULL ,NULL
2040      ,NULL, a.order_source_id ,a.orig_sys_document_ref, a.orig_sys_line_ref ,NULL
2041      ,a.change_sequence ,NULL ,NULL ,NULL ,'LIST_LINE_TYPE_CODE'
2042      ,sysdate ,FND_GLOBAL.USER_ID ,sysdate ,FND_GLOBAL.USER_ID
2043      ,FND_GLOBAL.CONC_LOGIN_ID ,660 ,NULL ,NULL ,NULL ,NULL ,NULL
2044      ,'C' ,USERENV('LANG') ,l_msg_text, OE_MSG_ID_S.NEXTVAL
2045     FROM OE_PRICE_ADJS_INTERFACE a, OE_HEADERS_IFACE_ALL h
2046     WHERE h.batch_id = p_batch_id
2047       AND a.order_source_id = h.order_source_id
2048       AND a.orig_sys_document_ref = h.orig_sys_document_ref
2049       AND (a.list_line_type_code NOT IN ('DIS','FREIGHT_CHARGE','SUR','PBH')
2050           OR (a.list_header_id IS NULL OR a.list_line_id IS NULL));
2051 
2052     IF OE_Bulk_Validate.g_error_count = 0 THEN
2053        IF SQL%ROWCOUNT > 0 THEN
2054           OE_Bulk_Validate.g_error_count := 1;
2055           IF l_debug_level  > 0 THEN
2056               oe_debug_pub.add(  'THE ERROR COUNT IS SET' ) ;
2057           END IF;
2058        END IF;
2059     END IF;
2060 
2061 EXCEPTION
2062    WHEN OTHERS THEN
2063      IF l_debug_level  > 0 THEN
2064          oe_debug_pub.add(  'OTHERS ERROR , OE_BULK_VALUE_TO_ID.ADJUSTMENTS' ) ;
2065      END IF;
2066      IF l_debug_level  > 0 THEN
2067          oe_debug_pub.add(  SUBSTR ( SQLERRM , 1 , 240 ) ) ;
2068      END IF;
2069      OE_BULK_MSG_PUB.Add_Exc_Msg
2070        (   G_PKG_NAME
2071         ,   'Adjustments'
2072         );
2073      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2074 END Adjustments;
2075 
2076 
2077 ---------------------------------------------------------------------
2078 -- PROCEDURE Insert_Error_Messages
2079 --
2080 -- Following procedure will check the attribute_status from the interface table
2081 -- and will create records in OE_PROCESSING_MSGS for errored records.The
2082 -- attribute for which the value_to_id conversion failed will be marked with a
2083 -- specific number in attribute_status column for every record in the interface
2084 -- tables.
2085 ---------------------------------------------------------------------
2086 
2087 PROCEDURE INSERT_ERROR_MESSAGES(p_batch_id NUMBER)
2088 IS
2089 
2090 CURSOR C_ERR IS
2091   SELECT request_id ,
2092        order_source_id ,
2093        orig_sys_document_ref ,
2094        orig_sys_line_ref,
2095        orig_sys_shipment_ref ,
2096        change_sequence,
2097        attribute_status
2098   FROM OE_LINES_IFACE_ALL
2099   WHERE (order_source_id, orig_sys_document_ref) IN
2100                    ( SELECT order_source_id, orig_sys_document_ref
2101                      FROM OE_HEADERS_IFACE_ALL
2102                      WHERE batch_id = p_batch_id)
2103   AND attribute_status IS NOT NULL
2104   UNION
2105   SELECT request_id ,
2106        order_source_id ,
2107        orig_sys_document_ref ,
2108        NULL,
2109        NULL ,
2110        change_sequence,
2111        attribute_status
2112   FROM OE_HEADERS_IFACE_ALL
2113   WHERE batch_id = p_batch_id
2114   AND attribute_status IS NOT NULL;
2115 
2116 l_counter   NUMBER :=0;
2117 l_first     NUMBER :=0;
2118 l_attribute VARCHAR2(30);
2119 l_attribute_name  VARCHAR2(240);
2120 l_substr    VARCHAR2(3);
2121 l_msg_text  VARCHAR2(2000);
2122 l_msg_data  VARCHAR2(2000);
2123 --
2124 l_debug_level CONSTANT NUMBER := oe_debug_pub.g_debug_level;
2125 --
2126 BEGIN
2127 
2128     l_msg_data := FND_MESSAGE.GET_STRING('ONT','OE_BULK_VALUE_TO_ID_ERROR');
2129 
2130     FOR l_err in C_ERR LOOP
2131 
2132         IF l_debug_level  > 0 THEN
2133             oe_debug_pub.add(  'ATTR STATUS :'||L_ERR.ATTRIBUTE_STATUS ) ;
2134         END IF;
2135         l_counter := LENGTH(l_err.attribute_status)/3;
2136         IF l_counter < 1 THEN
2137             GOTO END_OF_LOOP;
2138         END IF;
2139 
2140         l_first := 1;
2141         FOR i IN 1..l_counter LOOP
2142 
2143             l_substr := SUBSTR(l_err.attribute_status,l_first,3);
2144 
2145             IF l_substr = '001' THEN
2146                 l_attribute := 'ORDER_SOURCE_ID';
2147             ELSIF l_substr = '002' THEN
2148                 l_attribute := 'ORDER_TYPE_ID';
2149             ELSIF l_substr = '003' THEN
2150                 l_attribute := 'PRICE_LIST_ID';
2151             ELSIF l_substr = '004' THEN
2152                 l_attribute := 'CONVERSION_TYPE_CODE';
2153             ELSIF l_substr = '005' THEN
2154                 l_attribute := 'SALESREP_ID';
2155             ELSIF l_substr = '006' THEN
2156                 l_attribute := 'TAX_EXEMPT_REASON_CODE';
2157             ELSIF l_substr = '007' THEN
2158                 l_attribute := 'AGREEMENT_ID';
2159             ELSIF l_substr = '008' THEN
2160                 l_attribute := 'INVOICING_RULE_ID';
2161             ELSIF l_substr = '009' THEN
2162                 l_attribute := 'ACCOUNTING_RULE_ID';
2163             ELSIF l_substr = '010' THEN
2164                 l_attribute := 'PAYMENT_TERM_ID';
2165             ELSIF l_substr = '011' THEN
2166                 l_attribute := 'FREIGHT_TERMS_CODE';
2167             ELSIF l_substr = '012' THEN
2168                 l_attribute := 'FOB_POINT_CODE';
2169             ELSIF l_substr = '013' THEN
2170                 l_attribute := 'SOLD_TO_ORG_ID';
2171             ELSIF l_substr = '014' THEN
2172                 l_attribute := 'SHIP_TO_ORG_ID';
2173             ELSIF l_substr = '015' THEN
2174                 l_attribute := 'INVOICE_TO_ORG_ID';
2175             ELSIF l_substr = '016' THEN
2176                 l_attribute := 'SOLD_TO_CONTACT_ID';
2177             ELSIF l_substr = '017' THEN
2178                 l_attribute := 'SHIP_TO_CONTACT_ID';
2179             ELSIF l_substr = '018' THEN
2180                 l_attribute := 'INVOICE_TO_CONTACT_ID';
2181             ELSIF l_substr = '019' THEN
2182                 l_attribute := 'DELIVER_TO_CONTACT_ID';
2183             ELSIF l_substr = '020' THEN
2184                 l_attribute := 'LINE_TYPE_ID';
2185             ELSIF l_substr = '021' THEN
2186                 l_attribute := 'COMMITMENT_ID';
2187             ELSIF l_substr = '022' THEN
2188                 l_attribute := 'SALES_CHANNEL_CODE';
2189             ELSIF l_substr = '023' THEN
2190                 l_attribute := 'SHIPMENT_PRIORITY_CODE';
2191             ELSIF l_substr = '024' THEN
2192                 l_attribute := 'SHIPPING_METHOD_CODE';
2193 	    ELSIF l_substr = '025' THEN  -- end customer changes(Bug 5054618)
2194 	       l_attribute := 'END_CUSTOMER_ID';
2195             ELSIF l_substr = '026' THEN
2196 	       l_attribute := 'END_CUSTOMER_CONTACT_ID';
2197             ELSIF l_substr = '028' THEN
2198 	       l_attribute := 'END_CUSTOMER_SITE_USE_ID';
2199             END IF;
2200 
2201             l_attribute_name := OE_ORDER_UTIL.Get_Attribute_Name(l_attribute);
2202 
2203             l_msg_text := l_msg_data|| ' '||l_attribute_name;
2204 
2205             INSERT INTO OE_PROCESSING_MSGS
2206             ( request_id ,entity_code ,entity_ref ,entity_id ,header_id
2207               ,line_id ,order_source_id ,original_sys_document_ref
2208               ,original_sys_document_line_ref ,orig_sys_shipment_ref
2209               ,change_sequence ,source_document_type_id ,source_document_id
2210               ,source_document_line_id ,attribute_code ,creation_date
2211               ,created_by ,last_update_date ,last_updated_by ,last_update_login
2212               ,program_application_id ,program_id ,program_update_date
2213               ,process_activity ,notification_flag ,type ,message_source_code
2214               ,language ,message_text, transaction_id
2215              )
2216             VALUES
2217             ( l_err.request_id,DECODE(l_err.ORIG_SYS_LINE_REF,NULL,'HEADER','LINE')
2218               , NULL ,NULL ,NULL ,NULL ,l_err.order_source_id
2219               , l_err.orig_sys_document_ref , l_err.ORIG_SYS_LINE_REF
2220               , l_err.orig_sys_shipment_ref , l_err.change_sequence ,NULL ,NULL
2221               , NULL ,l_attribute, sysdate ,FND_GLOBAL.USER_ID ,sysdate
2222               , FND_GLOBAL.USER_ID ,FND_GLOBAL.CONC_LOGIN_ID ,660 ,NULL ,NULL
2223               , NULL ,NULL ,NULL ,'C' ,USERENV('LANG')
2224               , l_msg_text, OE_MSG_ID_S.NEXTVAL
2225             );
2226 
2227             l_first := l_first + 3;
2228 
2229             OE_BULK_VALIDATE.G_ERROR_COUNT := 1;
2230 
2231         END LOOP;
2232         <<END_OF_LOOP>>
2233         NULL;
2234     END LOOP;
2235 
2236 EXCEPTION
2237    WHEN OTHERS THEN
2238      IF l_debug_level  > 0 THEN
2239          oe_debug_pub.add(  'OTHERS ERROR , OE_BULK_VALUE_TO_ID.INSERT_ERROR_MESSAGES' ) ;
2240      END IF;
2241      IF l_debug_level  > 0 THEN
2242          oe_debug_pub.add(  SUBSTR ( SQLERRM , 1 , 240 ) ) ;
2243      END IF;
2244      OE_BULK_MSG_PUB.Add_Exc_Msg
2245        (   G_PKG_NAME
2246         ,   'INSERT_ERROR_MESSAGES'
2247         );
2248      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2249 END INSERT_ERROR_MESSAGES;
2250 
2251 END OE_Bulk_Value_To_Id;