1536: if g_debug_flag = 'Y' then
1537: edw_log.put_line(' ');
1538: edw_log.put_line('Waiting for child requests to finish');
1539:
1540: fii_util.start_timer;
1541: end if;
1542:
1543: l_call_status8 := WAIT_FOR_REQUEST(l_request_id8, l_dev_phase8,
1544: l_dev_status8);
1550:
1551: if g_debug_flag = 'Y' then
1552: edw_log.put_line(' ');
1553: edw_log.put_line('All child requests have finished');
1554: fii_util.stop_timer;
1555: fii_util.print_timer('Duration');
1556:
1557: edw_log.put_line('Before call to truncate_table msng_rt');
1558: end if;
1551: if g_debug_flag = 'Y' then
1552: edw_log.put_line(' ');
1553: edw_log.put_line('All child requests have finished');
1554: fii_util.stop_timer;
1555: fii_util.print_timer('Duration');
1556:
1557: edw_log.put_line('Before call to truncate_table msng_rt');
1558: end if;
1559: TRUNCATE_TABLE('fii_ar_trx_msng_rt');
1672: edw_log.put_line(' ');
1673: edw_log.put_line('Updating Item foreign key with proper values');
1674: edw_log.put_line('in the local staging table');
1675:
1676: fii_util.start_timer;
1677: end if;
1678: g_row_count := update_item_fk;
1679: if g_debug_flag = 'Y' then
1680: fii_util.stop_timer;
1676: fii_util.start_timer;
1677: end if;
1678: g_row_count := update_item_fk;
1679: if g_debug_flag = 'Y' then
1680: fii_util.stop_timer;
1681: fii_util.print_timer('Duration');
1682: end if;
1683:
1684: IF (g_row_count = -1) THEN RAISE l_item_fk_failure; END IF;
1677: end if;
1678: g_row_count := update_item_fk;
1679: if g_debug_flag = 'Y' then
1680: fii_util.stop_timer;
1681: fii_util.print_timer('Duration');
1682: end if;
1683:
1684: IF (g_row_count = -1) THEN RAISE l_item_fk_failure; END IF;
1685:
1699:
1700: if g_debug_flag = 'Y' then
1701: edw_log.put_line(' ');
1702: edw_log.put_line('Moving data from local staging table to remote staging table');
1703: fii_util.start_timer;
1704: end if;
1705: g_row_count := PUSH_REMOTE;
1706: if g_debug_flag = 'Y' then
1707: fii_util.stop_timer;
1703: fii_util.start_timer;
1704: end if;
1705: g_row_count := PUSH_REMOTE;
1706: if g_debug_flag = 'Y' then
1707: fii_util.stop_timer;
1708: fii_util.print_timer('Duration');
1709: end if;
1710:
1711: IF (g_row_count = -1) THEN RAISE l_push_remote_failure; END IF;
1704: end if;
1705: g_row_count := PUSH_REMOTE;
1706: if g_debug_flag = 'Y' then
1707: fii_util.stop_timer;
1708: fii_util.print_timer('Duration');
1709: end if;
1710:
1711: IF (g_row_count = -1) THEN RAISE l_push_remote_failure; END IF;
1712: if g_debug_flag = 'Y' then
1712: if g_debug_flag = 'Y' then
1713: edw_log.put_line(' ');
1714: edw_log.put_line('Cleaning local staging table');
1715:
1716: fii_util.start_timer;
1717: end if;
1718: TRUNCATE_TABLE('FII_AR_TRX_DIST_FSTG');
1719: if g_debug_flag = 'Y' then
1720: fii_util.stop_timer;
1716: fii_util.start_timer;
1717: end if;
1718: TRUNCATE_TABLE('FII_AR_TRX_DIST_FSTG');
1719: if g_debug_flag = 'Y' then
1720: fii_util.stop_timer;
1721: fii_util.print_timer('Duration');
1722: end if;
1723:
1724: ELSE
1717: end if;
1718: TRUNCATE_TABLE('FII_AR_TRX_DIST_FSTG');
1719: if g_debug_flag = 'Y' then
1720: fii_util.stop_timer;
1721: fii_util.print_timer('Duration');
1722: end if;
1723:
1724: ELSE
1725: -- -----------------------------------------------
1730:
1731: if g_debug_flag = 'Y' then
1732: edw_log.put_line(' ');
1733: edw_log.put_line('Marking records in staging table with READY status');
1734: fii_util.start_timer;
1735: end if;
1736: -- Bug 4689098. Moved the call to SET_STATUS_READY out of the if statement
1737: -- so that it gets called even when debug mode is set to No
1738: g_row_count := SET_STATUS_READY;
1736: -- Bug 4689098. Moved the call to SET_STATUS_READY out of the if statement
1737: -- so that it gets called even when debug mode is set to No
1738: g_row_count := SET_STATUS_READY;
1739: if g_debug_flag = 'Y' then
1740: fii_util.stop_timer;
1741: fii_util.print_timer('Duration');
1742: end if;
1743:
1744: IF (g_row_count = -1) THEN RAISE l_set_status_failure; END IF;
1737: -- so that it gets called even when debug mode is set to No
1738: g_row_count := SET_STATUS_READY;
1739: if g_debug_flag = 'Y' then
1740: fii_util.stop_timer;
1741: fii_util.print_timer('Duration');
1742: end if;
1743:
1744: IF (g_row_count = -1) THEN RAISE l_set_status_failure; END IF;
1745: END IF;
1779: -- --------------------------------------------
1780: if g_debug_flag = 'Y' then
1781: edw_log.put_line(' ');
1782: edw_log.put_line('Identifying changed AR invoice lines');
1783: fii_util.start_timer;
1784: end if;
1785: l_seq_id_line := IDENTIFY_CHANGE('AR INVL',l_row_count);
1786: if g_debug_flag = 'Y' then
1787: fii_util.stop_timer;
1783: fii_util.start_timer;
1784: end if;
1785: l_seq_id_line := IDENTIFY_CHANGE('AR INVL',l_row_count);
1786: if g_debug_flag = 'Y' then
1787: fii_util.stop_timer;
1788: fii_util.print_timer('Identified '||l_row_count||' changed records in');
1789: end if;
1790:
1791: if (l_seq_id_line = -1) THEN
1784: end if;
1785: l_seq_id_line := IDENTIFY_CHANGE('AR INVL',l_row_count);
1786: if g_debug_flag = 'Y' then
1787: fii_util.stop_timer;
1788: fii_util.print_timer('Identified '||l_row_count||' changed records in');
1789: end if;
1790:
1791: if (l_seq_id_line = -1) THEN
1792: RAISE l_iden_change_failure;
1815: -- --------------------------------------------
1816: if g_debug_flag = 'Y' then
1817: edw_log.put_line(' ');
1818: edw_log.put_line('Identifying changed AR invoice distribution');
1819: fii_util.start_timer;
1820: end if;
1821: l_seq_id_dist_line := IDENTIFY_CHANGE('AR DL', l_row_count,l_seq_id_line);
1822: fii_util.stop_timer;
1823: fii_util.print_timer('Identified '||l_row_count||' changed records in');
1818: edw_log.put_line('Identifying changed AR invoice distribution');
1819: fii_util.start_timer;
1820: end if;
1821: l_seq_id_dist_line := IDENTIFY_CHANGE('AR DL', l_row_count,l_seq_id_line);
1822: fii_util.stop_timer;
1823: fii_util.print_timer('Identified '||l_row_count||' changed records in');
1824:
1825: if (l_seq_id_dist_line = -1) THEN
1826: RAISE l_iden_change_failure;
1819: fii_util.start_timer;
1820: end if;
1821: l_seq_id_dist_line := IDENTIFY_CHANGE('AR DL', l_row_count,l_seq_id_line);
1822: fii_util.stop_timer;
1823: fii_util.print_timer('Identified '||l_row_count||' changed records in');
1824:
1825: if (l_seq_id_dist_line = -1) THEN
1826: RAISE l_iden_change_failure;
1827: end if;
1851: if g_debug_flag = 'Y' then
1852: edw_log.put_line(' ');
1853: edw_log.put_line('Waiting for AR child requests to finish');
1854:
1855: fii_util.start_timer;
1856: end if;
1857:
1858: l_call_status1 := WAIT_FOR_REQUEST(l_request_id1, l_dev_phase1,
1859: l_dev_status1);
1866:
1867: if g_debug_flag = 'Y' then
1868: edw_log.put_line(' ');
1869: edw_log.put_line('All child requests have finished');
1870: fii_util.stop_timer;
1871: fii_util.print_timer('Duration');
1872: end if;
1873:
1874:
1867: if g_debug_flag = 'Y' then
1868: edw_log.put_line(' ');
1869: edw_log.put_line('All child requests have finished');
1870: fii_util.stop_timer;
1871: fii_util.print_timer('Duration');
1872: end if;
1873:
1874:
1875:
1877: -- Delete all temp tables' record
1878: -- -------------------------------------------------------------
1879:
1880: if g_debug_flag = 'Y' then
1881: fii_util.start_timer;
1882: edw_log.put_line(' ');
1883: edw_log.put_line('Cleaning tmp table');
1884: end if;
1885:
1888: l_seq_id_dist_line);
1889: commit;
1890:
1891: if g_debug_flag = 'Y' then
1892: fii_util.stop_timer;
1893: fii_util.print_timer('Duration');
1894: end if;
1895:
1896: -- -------------------------------
1889: commit;
1890:
1891: if g_debug_flag = 'Y' then
1892: fii_util.stop_timer;
1893: fii_util.print_timer('Duration');
1894: end if;
1895:
1896: -- -------------------------------
1897: -- check request status
1945: to_char(g_push_to_date,'MM/DD/YYYY HH24:MI:SS'));
1946:
1947:
1948: edw_log.put_line('Identifying changed records');
1949: fii_util.start_timer;
1950: end if;
1951: g_seq_id := IDENTIFY_CHANGE(p_mode,l_row_count);
1952: if g_debug_flag = 'Y' then
1953: fii_util.stop_timer;
1949: fii_util.start_timer;
1950: end if;
1951: g_seq_id := IDENTIFY_CHANGE(p_mode,l_row_count);
1952: if g_debug_flag = 'Y' then
1953: fii_util.stop_timer;
1954: fii_util.print_timer('Identified '||l_row_count||' changed records in');
1955: end if;
1956:
1957: if (g_seq_id = -1) THEN
1950: end if;
1951: g_seq_id := IDENTIFY_CHANGE(p_mode,l_row_count);
1952: if g_debug_flag = 'Y' then
1953: fii_util.stop_timer;
1954: fii_util.print_timer('Identified '||l_row_count||' changed records in');
1955: end if;
1956:
1957: if (g_seq_id = -1) THEN
1958: RAISE l_iden_change_failure;
1962:
1963: if g_debug_flag = 'Y' then
1964: edw_log.put_line(' ');
1965: edw_log.put_line('Pushing to local staging table');
1966: fii_util.start_timer;
1967: end if;
1968: g_row_count := PUSH_TO_LOCAL(p_mode);
1969: if g_debug_flag = 'Y' then
1970: fii_util.stop_timer;
1966: fii_util.start_timer;
1967: end if;
1968: g_row_count := PUSH_TO_LOCAL(p_mode);
1969: if g_debug_flag = 'Y' then
1970: fii_util.stop_timer;
1971: fii_util.print_timer('Duration');
1972: end if;
1973:
1974: IF (g_row_count = -1) THEN RAISE L_push_local_failure; END IF;
1967: end if;
1968: g_row_count := PUSH_TO_LOCAL(p_mode);
1969: if g_debug_flag = 'Y' then
1970: fii_util.stop_timer;
1971: fii_util.print_timer('Duration');
1972: end if;
1973:
1974: IF (g_row_count = -1) THEN RAISE L_push_local_failure; END IF;
1975:
1978: -- --------------------------------------------
1979: -- Delete all temp tables' record
1980: -- --------------------------------------------
1981: if g_debug_flag = 'Y' then
1982: fii_util.start_timer;
1983: edw_log.put_line(' ');
1984: edw_log.put_line('Cleaning tmp table');
1985: end if;
1986:
1987: delete fii_tmp_pk
1988: where seq_id = g_seq_id;
1989: commit;
1990:
1991: fii_util.stop_timer;
1992: fii_util.print_timer('Duration');
1993:
1994: END IF;
1995: if g_debug_flag = 'Y' then
1988: where seq_id = g_seq_id;
1989: commit;
1990:
1991: fii_util.stop_timer;
1992: fii_util.print_timer('Duration');
1993:
1994: END IF;
1995: if g_debug_flag = 'Y' then
1996: edw_log.put_line('Inserted '||nvl(g_row_count,0)||
2013: if g_debug_flag = 'Y' then
2014: edw_log.put_line(' ');
2015: edw_log.put_line(p_mode);
2016:
2017: fii_util.put_timestamp;
2018: edw_log.put_line('We are detecting invoices deleting from AR but are in warehouse');
2019: edw_log.put_line(' ');
2020: fii_util.put_timestamp;
2021: edw_log.put_line('Clean and set up environment');
2016:
2017: fii_util.put_timestamp;
2018: edw_log.put_line('We are detecting invoices deleting from AR but are in warehouse');
2019: edw_log.put_line(' ');
2020: fii_util.put_timestamp;
2021: edw_log.put_line('Clean and set up environment');
2022: end if;
2023: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Init@EDW_APPS_TO_WH (edw_instance.get_code); End; ';
2024: execute immediate l_stmt ;
2035: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Drop_Table@EDW_APPS_TO_WH(''FII_AR_EDW_EXTRA_ID''); End; ';
2036: execute immediate l_stmt;
2037: if g_debug_flag = 'Y' then
2038: edw_log.put_line(' ');
2039: fii_util.put_timestamp;
2040: edw_log.put_line('Generate list of invoices in AR subledger');
2041: fii_util.start_timer;
2042: end if;
2043: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Create_OLTP_TRX_TMP_TABLE@EDW_APPS_TO_WH; End; ';
2037: if g_debug_flag = 'Y' then
2038: edw_log.put_line(' ');
2039: fii_util.put_timestamp;
2040: edw_log.put_line('Generate list of invoices in AR subledger');
2041: fii_util.start_timer;
2042: end if;
2043: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Create_OLTP_TRX_TMP_TABLE@EDW_APPS_TO_WH; End; ';
2044: execute immediate l_stmt;
2045: commit;
2046: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Populate_OLTP_TRX_TMP_TABLE@EDW_APPS_TO_WH; End; ';
2047: execute immediate l_stmt;
2048: commit;
2049: if g_debug_flag = 'Y' then
2050: fii_util.stop_timer;
2051: fii_util.print_timer('Duration');
2052:
2053: edw_log.put_line(' ');
2054: fii_util.put_timestamp;
2047: execute immediate l_stmt;
2048: commit;
2049: if g_debug_flag = 'Y' then
2050: fii_util.stop_timer;
2051: fii_util.print_timer('Duration');
2052:
2053: edw_log.put_line(' ');
2054: fii_util.put_timestamp;
2055: edw_log.put_line('Generate list of invoices in EDW');
2050: fii_util.stop_timer;
2051: fii_util.print_timer('Duration');
2052:
2053: edw_log.put_line(' ');
2054: fii_util.put_timestamp;
2055: edw_log.put_line('Generate list of invoices in EDW');
2056: fii_util.start_timer;
2057: end if;
2058: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Create_EDW_TRX_TMP_TABLE@EDW_APPS_TO_WH; End; ';
2052:
2053: edw_log.put_line(' ');
2054: fii_util.put_timestamp;
2055: edw_log.put_line('Generate list of invoices in EDW');
2056: fii_util.start_timer;
2057: end if;
2058: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Create_EDW_TRX_TMP_TABLE@EDW_APPS_TO_WH; End; ';
2059: execute immediate l_stmt;
2060: commit;
2058: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Create_EDW_TRX_TMP_TABLE@EDW_APPS_TO_WH; End; ';
2059: execute immediate l_stmt;
2060: commit;
2061: if g_debug_flag = 'Y' then
2062: fii_util.stop_timer;
2063: fii_util.print_timer('Duration');
2064:
2065: edw_log.put_line(' ');
2066: fii_util.put_timestamp;
2059: execute immediate l_stmt;
2060: commit;
2061: if g_debug_flag = 'Y' then
2062: fii_util.stop_timer;
2063: fii_util.print_timer('Duration');
2064:
2065: edw_log.put_line(' ');
2066: fii_util.put_timestamp;
2067: edw_log.put_line('Finding extra invoices in EDW which should be deleted');
2062: fii_util.stop_timer;
2063: fii_util.print_timer('Duration');
2064:
2065: edw_log.put_line(' ');
2066: fii_util.put_timestamp;
2067: edw_log.put_line('Finding extra invoices in EDW which should be deleted');
2068: fii_util.start_timer;
2069: end if;
2070: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Find_Extra_Trx_EDW@EDW_APPS_TO_WH; End; ';
2064:
2065: edw_log.put_line(' ');
2066: fii_util.put_timestamp;
2067: edw_log.put_line('Finding extra invoices in EDW which should be deleted');
2068: fii_util.start_timer;
2069: end if;
2070: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Find_Extra_Trx_EDW@EDW_APPS_TO_WH; End; ';
2071: execute immediate l_stmt;
2072: commit;
2074: execute immediate l_stmt using out g_row_count;
2075: commit;
2076: if g_debug_flag = 'Y' then
2077: edw_log.put_line('EDW has '||g_row_count||' extra invoices not found in OLTP');
2078: fii_util.stop_timer;
2079: fii_util.print_timer('Duration');
2080:
2081: edw_log.put_line(' ');
2082: fii_util.put_timestamp;
2075: commit;
2076: if g_debug_flag = 'Y' then
2077: edw_log.put_line('EDW has '||g_row_count||' extra invoices not found in OLTP');
2078: fii_util.stop_timer;
2079: fii_util.print_timer('Duration');
2080:
2081: edw_log.put_line(' ');
2082: fii_util.put_timestamp;
2083: edw_log.put_line('Inserting into staging area');
2078: fii_util.stop_timer;
2079: fii_util.print_timer('Duration');
2080:
2081: edw_log.put_line(' ');
2082: fii_util.put_timestamp;
2083: edw_log.put_line('Inserting into staging area');
2084: fii_util.start_timer;
2085: end if;
2086: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Insert_Staging@EDW_APPS_TO_WH(:g_row_count); End; ';
2080:
2081: edw_log.put_line(' ');
2082: fii_util.put_timestamp;
2083: edw_log.put_line('Inserting into staging area');
2084: fii_util.start_timer;
2085: end if;
2086: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Insert_Staging@EDW_APPS_TO_WH(:g_row_count); End; ';
2087: execute immediate l_stmt using out g_row_count;
2088: commit;
2087: execute immediate l_stmt using out g_row_count;
2088: commit;
2089: if g_debug_flag = 'Y' then
2090: edw_log.put_line('Inserting '||g_row_count||' records marked for deletion');
2091: fii_util.stop_timer;
2092: fii_util.print_timer('Duration');
2093: end if;
2094:
2095: If (g_row_count = -1) THEN RAISE L_child_req_failure; End if;
2088: commit;
2089: if g_debug_flag = 'Y' then
2090: edw_log.put_line('Inserting '||g_row_count||' records marked for deletion');
2091: fii_util.stop_timer;
2092: fii_util.print_timer('Duration');
2093: end if;
2094:
2095: If (g_row_count = -1) THEN RAISE L_child_req_failure; End if;
2096:
2099: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Drop_Table@EDW_APPS_TO_WH(''FII_AR_EDW_TMP_TRX_ID''); End; ';
2100: execute immediate l_stmt;
2101: l_stmt := 'Begin FII_AR_TRX_DIST_F_D.Drop_Table@EDW_APPS_TO_WH(''FII_AR_EDW_EXTRA_ID''); End; ';
2102: execute immediate l_stmt;
2103: fii_util.put_timestamp;
2104:
2105:
2106: END IF;
2107: END IF;