Oracle EBS Interface/API(31) -PR最终关闭API

快速参考

参考点内容
功能导航N: Puchasing Super User->Requisitions->Requisition Summary
Puchasing Super User->Requisitions->Requisitions
并发请求None
基表PO_REQUISITION_HEADERS_ALL
PO_REQUISITION_LINES_ALL
API参考下面介绍
错误信息表None
接口FormNone接口Report
Debug ProfileNone
详细例子参考如下实例
官方文档None
数据验证包None

用户界面

Path:Puchasing Super User->Requisitions->Requisition Summary
在这里插入图片描述
Control
在这里插入图片描述

PR既可以整单最终关闭,也可以单行关闭。

开发参考

  • PR最终关闭API 参数说明 :
参数说明
X_REQ_HEADER_IDPR题头ID
X_REQ_LINE_IDPR行ID
X_AGENT_ID采购员(编制人)ID
X_REQ_DOC_TYPEPR单据类型
X_REQ_DOC_SUBTYPEPR子单据类型
X_REQ_CONTROL_ACTION控制活动:CANCEL 表示取消,FINALLY CLOSE表示最终关闭
X_REQ_CONTROL_REASON原因
X_REQ_ACTION_DATE活动日期
X_ENCUMBRANCE_FLAG
X_OE_INSTALLED_FLAG
X_REQ_CONTROL_ERROR_RC错误说明
  • 开发简单实例代码 :最终关闭PR行
DECLARE
  Lv_Req_Control_Error_Rc  VARCHAR2(500);
  Ln_Org_Id                NUMBER := 81; --Enter the Operating_Unit ID
  Ln_Requisition_Header_Id NUMBER; --PR题头ID
  Ln_Requisition_Line_Id   NUMBER; --PR行ID
  Ln_Agent_Id              NUMBER; --采购员(编制人)ID
  Lv_Document_Type_Code    VARCHAR2(30); --单据类型
  Lv_Type_Lookup_Code      VARCHAR2(30); --单据子类型
  Lv_Control_Action        VARCHAR2(30) := 'FINALLY CLOSE'; --活动
  Lv_Control_Reason        VARCHAR2(200) := 'Test Finally Requisitions'; --原因
  Ln_Count                 NUMBER;
BEGIN

  Fnd_Msg_Pub.Initialize();
  Mo_Global.Init('PO');
  Mo_Global.Set_Policy_Context('S', Ln_Org_Id);
  Fnd_Global.Apps_Initialize(User_Id => 5579, Resp_Id => 52299, Resp_Appl_Id => 707);

  Ln_Requisition_Header_Id := 320287;
  Ln_Requisition_Line_Id   := 255483;
  --获得单据类型和单据子类型
  BEGIN
    SELECT DISTINCT Prh.Preparer_Id
                   ,Prh.Type_Lookup_Code
                   ,Pdt.Document_Type_Code
      INTO Ln_Agent_Id
          ,Lv_Type_Lookup_Code
          ,Lv_Document_Type_Code
      FROM Apps.Po_Requisition_Headers_All Prh
          ,Apps.Po_Requisition_Lines_All   Prl
          ,Apps.Po_Document_Types_All      Pdt
     WHERE Prh.Org_Id = Ln_Org_Id
       AND Pdt.Document_Type_Code = 'REQUISITION'
       AND Prl.Line_Location_Id IS NULL --PR未转PO
       AND Prh.Requisition_Header_Id = Prl.Requisition_Header_Id
       AND Prh.Type_Lookup_Code = Pdt.Document_Subtype
       AND Prh.Org_Id = Pdt.Org_Id
       AND Prh.Requisition_Header_Id = Ln_Requisition_Header_Id
       AND Prl.Parent_Req_Line_Id = Ln_Requisition_Line_Id;
  EXCEPTION
    WHEN No_Data_Found THEN
      Dbms_Output.Put_Line('Ln_Requisition_Header_Id: ' || Ln_Requisition_Header_Id);
      Dbms_Output.Put_Line('Ln_Requisition_Line_Id: ' || Ln_Requisition_Line_Id);
      Dbms_Output.Put_Line('No Data Found');
      RETURN;
  END;
  --Call Cancel Api
  Po_Reqs_Control_Sv.Update_Reqs_Status(x_Req_Header_Id        => Ln_Requisition_Header_Id --PR题头ID
                                       ,x_Req_Line_Id          => Ln_Requisition_Line_Id --PR行ID
                                       ,x_Agent_Id             => Ln_Agent_Id --采购员(编制人)ID
                                       ,x_Req_Doc_Type         => Lv_Document_Type_Code --单据类型
                                       ,x_Req_Doc_Subtype      => Lv_Type_Lookup_Code --单据子类型
                                       ,x_Req_Control_Action   => Lv_Control_Action --活动
                                       ,x_Req_Control_Reason   => Lv_Control_Reason --原因
                                       ,x_Req_Action_Date      => SYSDATE
                                       ,x_Encumbrance_Flag     => 'N'
                                       ,x_Oe_Installed_Flag    => 'Y'
                                       ,x_Req_Control_Error_Rc => Lv_Req_Control_Error_Rc);
  --Output Result
  Dbms_Output.Put_Line('Lv_Req_Control_Error_Rc: ' || Lv_Req_Control_Error_Rc);
  SELECT COUNT(1)
    INTO Ln_Count
    FROM Apps.Po_Requisition_Headers_All Prh
        ,Apps.Po_Requisition_Lines_All   Prl
   WHERE Prh.Requisition_Header_Id = Prl.Requisition_Header_Id
     AND Prh.Requisition_Header_Id = Ln_Requisition_Header_Id
     AND Prl.Requisition_Line_Id = Ln_Requisition_Line_Id
     AND AND Nvl(Prh.CLOSED_CODE, 'NONE') = 'FINALLY CLOSED';
  IF (Ln_Count > 0) THEN
    Dbms_Output.Put_Line('最终关闭成功!');
    COMMIT;
  ELSE
    Dbms_Output.Put_Line('最终关闭失败!' || Lv_Req_Control_Error_Rc);
    ROLLBACK;
  END IF;
END;
  • 开发简单实例代码 :最终关闭PR题头
DECLARE
  Lv_Req_Control_Error_Rc  VARCHAR2(500);
  Ln_Org_Id                NUMBER := 81; --Enter the Operating_Unit ID
  Ln_Requisition_Header_Id NUMBER; --PR题头ID
  Ln_Agent_Id              NUMBER; --采购员(编制人)ID
  Lv_Document_Type_Code    VARCHAR2(30); --单据类型
  Lv_Type_Lookup_Code      VARCHAR2(30); --单据子类型
  Lv_Control_Action        VARCHAR2(30) := 'FINALLY CLOSE'; --活动
  Lv_Control_Reason        VARCHAR2(200) := 'Test Finally Requisitions'; --原因
  Ln_Count                 NUMBER;
BEGIN

  Fnd_Msg_Pub.Initialize();
  Mo_Global.Init('PO');
  Mo_Global.Set_Policy_Context('S', Ln_Org_Id);
  Fnd_Global.Apps_Initialize(User_Id => 5579, Resp_Id => 52299, Resp_Appl_Id => 707);

  Ln_Requisition_Header_Id := 320287;
  --获得单据类型和单据子类型
  BEGIN
    SELECT DISTINCT Prh.Preparer_Id
                   ,Prh.Type_Lookup_Code
                   ,Pdt.Document_Type_Code
      INTO Ln_Agent_Id
          ,Lv_Type_Lookup_Code
          ,Lv_Document_Type_Code
      FROM Apps.Po_Requisition_Headers_All Prh
          ,Apps.Po_Document_Types_All      Pdt
     WHERE Prh.Org_Id = Ln_Org_Id
       AND Pdt.Document_Type_Code = 'REQUISITION'
       AND Prh.Type_Lookup_Code = Pdt.Document_Subtype
       AND Prh.Org_Id = Pdt.Org_Id
       AND Prh.Requisition_Header_Id = Ln_Requisition_Header_Id;
  EXCEPTION
    WHEN No_Data_Found THEN
      Dbms_Output.Put_Line('Ln_Requisition_Header_Id: ' || Ln_Requisition_Header_Id);
      Dbms_Output.Put_Line('No Data Found');
      RETURN;
  END;
  --Call Cancel Api
  Po_Reqs_Control_Sv.Update_Reqs_Status(x_Req_Header_Id        => Ln_Requisition_Header_Id --PR题头ID
                                       ,x_Req_Line_Id          => NULL --PR行ID
                                       ,x_Agent_Id             => Ln_Agent_Id --采购员(编制人)ID
                                       ,x_Req_Doc_Type         => Lv_Document_Type_Code --单据类型
                                       ,x_Req_Doc_Subtype      => Lv_Type_Lookup_Code --单据子类型
                                       ,x_Req_Control_Action   => Lv_Control_Action --活动
                                       ,x_Req_Control_Reason   => Lv_Control_Reason --原因
                                       ,x_Req_Action_Date      => SYSDATE
                                       ,x_Encumbrance_Flag     => 'N'
                                       ,x_Oe_Installed_Flag    => 'Y'
                                       ,x_Req_Control_Error_Rc => Lv_Req_Control_Error_Rc);
  --Output Result
  Dbms_Output.Put_Line('Lv_Req_Control_Error_Rc: ' || Lv_Req_Control_Error_Rc);
  SELECT COUNT(1)
    INTO Ln_Count
    FROM Apps.Po_Requisition_Headers_All Prh
   WHERE Prh.Requisition_Header_Id = Ln_Requisition_Header_Id
     AND AND Nvl(Prh.CLOSED_CODE, 'NONE') = 'FINALLY CLOSED';
  IF (Ln_Count > 0) THEN
    Dbms_Output.Put_Line('最终关闭成功!');
    COMMIT;
  ELSE
    Dbms_Output.Put_Line('最终关闭失败!' || Lv_Req_Control_Error_Rc);
    ROLLBACK;
  END IF;
END;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlanChen

您的鼓励是我创作的源泉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值