12
返回列表 发新帖
楼主: smail6102

求forecast的接口程序,急用,谢谢

[复制链接]
论坛徽章:
8
11#
发表于 2007-9-24 20:30 | 只看该作者
API是直接写入真实表的吧

使用道具 举报

回复
论坛徽章:
135
ITPUB8周年纪念徽章
日期:2009-09-27 10:21:22NBA季后赛纪念徽章
日期:2010-06-21 13:18:42ITPUB9周年纪念徽章
日期:2010-10-08 09:31:222011新春纪念徽章
日期:2011-01-04 10:38:212010广州亚运会纪念徽章:足球
日期:2011-05-18 16:45:05
12#
发表于 2007-9-24 21:08 | 只看该作者
最初由 hphubei 发布
[B]API是直接写入真实表的吧 [/B]


最后都是写入真实表

使用道具 举报

回复
论坛徽章:
2
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB9周年纪念徽章
日期:2010-10-08 09:28:52
13#
发表于 2007-9-25 07:49 | 只看该作者
最初由 hphubei 发布
[B]API是直接写入真实表的吧 [/B]

你讲到了接口表。写个PACKAGE将数据导到接口表,而这个PACKAGE也可以称之为API。当然,接口模式包括open interface 和open api两种模式。你说的API是不是指得是OPEN API模式。从功能角度看,Open Api和Open Interface一样,差异体现在程序开发上。通过PL/SQL直接调用开放的API Procedure,把数据导入目标Product表。

使用道具 举报

回复
论坛徽章:
0
14#
发表于 2007-9-26 09:32 | 只看该作者

谢谢楼上,但这样好象会造成等待,假死机。

最初由 yefq2008 发布
[B]用API好了...先把excel里的数据导到一张新建的临时表里,然后写个procedure把临时表的一些字段导到接口表中就OK了.然后上EBS提交个并发请求 [/B]


谢谢楼上。

但这样用户提交后,因为是提交个并发请求,程序可能只需运行很短时间,但系统调度可能安排比较长。所以好象会造成等待,用户看到是‘假死机’现象,而且导入结果只能放在LOG文件,不能实时返回结果。

有其他办法吗?

所谓API,是否一个package调用oracle一些标准package,API的过程?

现在我们是两个数据库之间做接口,可以直接表交换数据,不需用excel里的数据导到一张新建的临时表里。

使用道具 举报

回复
论坛徽章:
135
ITPUB8周年纪念徽章
日期:2009-09-27 10:21:22NBA季后赛纪念徽章
日期:2010-06-21 13:18:42ITPUB9周年纪念徽章
日期:2010-10-08 09:31:222011新春纪念徽章
日期:2011-01-04 10:38:212010广州亚运会纪念徽章:足球
日期:2011-05-18 16:45:05
15#
发表于 2007-9-26 13:08 | 只看该作者

Re: 谢谢楼上,但这样好象会造成等待,假死机。

最初由 lanzhuo 发布
[B]

谢谢楼上。

但这样用户提交后,因为是提交个并发请求,程序可能只需运行很短时间,但系统调度可能安排比较长。所以好象会造成等待,用户看到是‘假死机’现象,而且导入结果只能放在LOG文件,不能实时返回结果。

有其他办法吗?

所谓API,是否一个package调用oracle一些标准package,API的过程?

现在我们是两个数据库之间做接口,可以直接表交换数据,不需用excel里的数据导到一张新建的临时表里。 [/B]


说白了,就是你自己写个PACKAGE 调用ORACLE 提供的API 来导入数据。

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2006-06-20 14:34:17
16#
发表于 2007-9-28 12:16 | 只看该作者

Re: 求forecast的接口程序,急用,谢谢

最初由 smail6102 发布
[B]哪位大虾有写forecast的接口程序,现在急用,不胜感激. [/B]


TEM_FORECAST_HISTORY is a temporary table for storing source data,
please refer to script as below :

DECLARE
   L_INV_ORG            TEM_FORECAST_HISTORY.INV_ORG%TYPE;
   L_FORECAST_SET       TEM_FORECAST_HISTORY.FORECAST_SET%TYPE;
   L_FORECAST           TEM_FORECAST_HISTORY.FORECAST%TYPE;
   L_ITEM                                        TEM_FORECAST_HISTORY.ITEM%TYPE;
   L_PERIOD_BUCKET      TEM_FORECAST_HISTORY.PERIOD_BUCKET%TYPE;
         L_PERIOD_START_DATE  TEM_FORECAST_HISTORY.PERIOD_START_DATE%TYPE;
   L_NO_OF_BUCKETS      TEM_FORECAST_HISTORY.NO_OF_BUCKETS%TYPE;
   L_QUANTITY           TEM_FORECAST_HISTORY.QUANTITY%TYPE;
   L_COUNT_ITEM         NUMBER;
   L_ITEM_ID            NUMBER;
   L_ORGANIZATION_ID    NUMBER;
   L_rec_count          NUMBER := 0;
   CURSOR c_fh_line is
     select INV_ORG,FORECAST_SET,FORECAST,ITEM,PERIOD_BUCKET,
            to_date(PERIOD_START_DATE,'dd/mm/yy') PERIOD_START_DATE,
            NO_OF_BUCKETS,QUANTITY
     from TEM_FORECAST_HISTORY
     where process_flag is null ;
     --where item = 'NTM510RSS' ;
   
   CURSOR c_item_count is
     select count(*)  
     from mtl_system_items
     where segment1 = L_item
     and ORGANIZATION_ID = 103;
      
   CURSOR c_item is   
     select INVENTORY_ITEM_ID
     from mtl_system_items
     where segment1 = L_item
     and ORGANIZATION_ID = 103;
   
   CURSOR c_org_id is
     select ORGANIZATION_ID
     from MRP_FORECAST_DSGN_SN
     where FORECAST_SET = L_FORECAST_SET
     and   FORECAST_DESIGNATOR = L_FORECAST;
     
   t_forecast_interface_tab    MRP_FORECAST_INTERFACE_PK.t_forecast_interface;
   t_forecast_designator_tab   MRP_FORECAST_INTERFACE_PK.t_forecast_designator;
   var_bool                    BOOLEAN;
BEGIN
   FOR fhrec IN c_fh_line LOOP
       L_rec_count          := L_rec_count + 1;   
      L_INV_ORG             := fhrec.INV_ORG;
      L_FORECAST_SET        := fhrec.FORECAST_SET;
      L_FORECAST            := fhrec.FORECAST;
      L_ITEM                                        := fhrec.ITEM;
      L_PERIOD_BUCKET       := fhrec.PERIOD_BUCKET;
            L_PERIOD_START_DATE   := fhrec.PERIOD_START_DATE;
      L_NO_OF_BUCKETS       := fhrec.NO_OF_BUCKETS;
      L_QUANTITY            := fhrec.QUANTITY;
      
      open c_org_id;
                        fetch c_org_id into L_ORGANIZATION_ID;
                        close c_org_id;
                          
      open c_item_count;
                        fetch c_item_count into L_COUNT_ITEM;
                        close c_item_count;
                       
                        if L_COUNT_ITEM > 0 then
                           open c_item;
                           fetch c_item into L_ITEM_ID;
                           close c_item;
                        else
                           L_ITEM_ID := NULL;   
                        end if;
                        /*dbms_output.put_line('inventory_item_id = '||L_ITEM_ID);
                        dbms_output.put_line('forecast_designator = '||L_FORECAST);
                        dbms_output.put_line('organization_id = '||L_ORGANIZATION_ID);
                        dbms_output.put_line('forecast_date = '||L_PERIOD_START_DATE);
                        dbms_output.put_line('bucket_type = '||L_NO_OF_BUCKETS);
                        dbms_output.put_line('quantity = '||L_QUANTITY); */
                       
                        if L_ITEM_ID is not null then
         t_forecast_interface_tab(L_rec_count).inventory_item_id := L_ITEM_ID;
         t_forecast_interface_tab(L_rec_count).forecast_designator := L_FORECAST;
         t_forecast_interface_tab(L_rec_count).organization_id := L_ORGANIZATION_ID;
         t_forecast_interface_tab(L_rec_count).forecast_date :=  L_PERIOD_START_DATE;
         t_forecast_interface_tab(L_rec_count).bucket_type := 3;   --L_NO_OF_BUCKETS
         t_forecast_interface_tab(L_rec_count).quantity := L_QUANTITY;
         t_forecast_interface_tab(L_rec_count).process_status := 2;
         t_forecast_interface_tab(L_rec_count).confidence_percentage := 100;
         t_forecast_designator_tab(L_rec_count).organization_id := L_ORGANIZATION_ID;
         t_forecast_designator_tab(L_rec_count).forecast_designator := L_FORECAST;
         
         
                  
         --dbms_output.put_line('Return Status = '||t_forecast_interface_tab(1).process_status);
         --dbms_output.put_line('Error Message = '||t_forecast_interface_tab(1).error_message);
         update TEM_FORECAST_HISTORY
                   set process_flag = 'Y'
                   where ITEM = L_ITEM and FORECAST = L_FORECAST
                   and to_date(PERIOD_START_DATE,'dd/mm/yy') = L_PERIOD_START_DATE ;
                   
               
           else
              update TEM_FORECAST_HISTORY
                set process_flag = 'N'
                where ITEM = L_ITEM and FORECAST = L_FORECAST
                and to_date(PERIOD_START_DATE,'dd/mm/yy') = L_PERIOD_START_DATE ;
           end if;  
   END LOOP;
   var_bool := MRP_FORECAST_INTERFACE_PK.MRP_FORECAST_INTERFACE (t_forecast_interface_tab,
          t_forecast_designator_tab);
           
   commit;
EXCEPTION  
   WHEN OTHERS THEN
      dbms_output.put_line(SQLERRM || L_ITEM);
      rollback;   
   
END;

/

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表