设为首页 收藏本站
查看: 1363|回复: 0

[经验分享] Oracle EBS:ASCP 截获工作台发放的PR

[复制链接]

尚未签到

发表于 2015-9-23 11:45:23 | 显示全部楼层 |阅读模式
工作台发放的计划单可以自动转成请购单,实际上系统的功作就是将发放的计划单通过系统自动启动PO模块中的"导入申请"这个请求,将计划单插入至po_requisitions_interface_all这个接口表中,转成已批准的PR。
http://www.dezai.cn/Blog/article.asp?id=325
因为之前作过lotus与ERP的接口集成(由OA下需求抛至ERP转成PR),所以思路也由大至了解了。

为什么要截取ASCP的PR呢?
  如果配合PO的来源补充规则来使用ASCP的话,因为系统所采用的预测逻辑可能与我们想要的不一样。ASCP+SourcingRule+ASL跑出来PR单,是基于PO模块中的SourcingRule在很长一段时间区段内是稳定的.ASCP运算的时候是考虑整个物料的前后需求.而实际在制造业务的过程中,来源补充规则(供货比例)一般是按季度按月度来看的,不可能长时间保持不变,当然也不太可能时时在变.所以跑出来的PR单的采购需求也就会跟我们预想中的不一制.那就要自己动手,尽量把PR搞得跟我们一样的了。
这里特别要注意的时:物料最小包装量的问题.如果在物料主档中设定了最小包装量的话,ASCP在跑需求的时候就会考虑进去,如果你要对其发放的PR单再作手脚的话,这里又会考虑到最小包装量的问题.会造成需求量的倍增.所以,这里要避免考虑计算了二次最小包装量的问题了。
我这里只把截取ASCP的PR的这个trigger分享出来,因为供货比例是个敏感问题,所以不便分享.


复制内容到剪贴板 DSC0000.gif 程序代码

Create or REPLACE TRIGGER DezaiCN_PR_SPLIT
BEFORE
  Insert
ON po_requisitions_interface_all
FOR EACH ROW
begin
  If :NEW.interface_source_code = 'MSC' THEN
    --处理ASCP释放的PR
    IF :NEW.org_id = 106 THEN
      :NEW.interface_source_code := 'SPLIT';
    END IF;
  ELSIF :NEW.interface_source_code = 'SPLITED' THEN
    :NEW.interface_source_code := 'MSC';
    :NEW.LINE_ATTRIBUTE10      := '1';
  END IF;
EXCEPTION
  WHEN OTHERS THEN
    NULL;
end;
  
至于如何从接口表po_requisitions_interface_all 中转化为已批准的PR,这里有两种方法
方法1:将导入申请设成一个计划,定时跑此请求


DSC0001.jpg
  
  
  方法2:编写一个Procedure,将导入申请这段的代码加入




复制内容到剪贴板 程序代码

/*Insert Data to Interface*/
   
        fnd_global.apps_initialize(50117, 1093, 201);
   
        v_retval_req := FND_REQUEST.SUBMIT_REQUEST('PO',
                                                                                             'REQIMPORT',
                                                                                             '',
                                                                                             NULL,
                                                                                             False,
                                                                                             '',
                                                                                             '',
                                                                                             'ALL',
                                                                                             '',
                                                                                             'N',
                                                                                             'Y');
   
        EXCEPTION
    WHEN Others THEN
      v_error_code    := '1';
      v_error_message := '提交处理事务处理接口请求失败!' || SUBSTR(SQLERRM, 1, 100);
      FND_FILE.PUT_LINE(FND_FILE.LOG, v_error_message);
      ROLLBACK;
      RETURN;
   
        COMMIT;


说明一下:
1.关于在oracle客户端正确取道PROFILE值的解决办法:fnd_global.APPS_INITIALIZE的说明
USER_ID : The USER_ID number
RESP_ID : The ID number of the responsibility
RESP_APPL_ID : The ID number of the application to which the responsibility belongs
首先找到三个参数的值:
user_id ,resp_id ,resp_appl_id
select user_id from fnd_user where user_name ='yourusername'
select RESPONSIBILITY_ID,APPLICATION_ID from fnd_responsibility where RESPONSIBILITY_KEY=yourrespkey ;
然后:执行
BEGIN
fnd_global.APPS_INITIALIZE(user_id => youruesr_id ,esp_id => yourresp_id,resp_appl_id =>yourresp_appl_id);
END;
这样就可以得到值正确的值了:
select fnd_profile.value('GL_SET_OF_BKS_ID') FROM DUAL;

2.关于fnd_request.submit_request的用法 网上搜索一下就可以了,我这里就不再说明了
方法一跟方法二的实质都是一样的.
3.插入po_requisitions_interface_all 表中的数据,并不是所有字段都要,只能将其中的必须字段的值插入就可以了,当然这也要看哪些字段是否会影响下一业务的发生.所以哪些字段的择取还是要看不同的业务环境及业务流程的。
查看po_requisitions_interface_all 字段


复制内容到剪贴板 程序代码

desc po_requisitions_interface_all ;


一点学习积累,与大家分享,欢迎指证。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-117658-1-1.html 上篇帖子: EBS R12.1.3 升级后的部分变化 下篇帖子: EBS收藏网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表