采购订单关闭

DECLARE
  -- Local variables here
  i                 INTEGER;
  l_return_status   VARCHAR2(10);
  p_retcode         VARCHAR2(2000);
  p_errbuf          VARCHAR2(2000);
  v_x_return_status VARCHAR2(250);
  v_x_exception_msg VARCHAR2(250);
BEGIN
  -- Test statements here

  FOR rec IN (SELECT pha.org_id,
                     pha.segment1,
                     pha.po_header_id erp_header_id
                FROM po_headers_all pha
               WHERE 1 = 1
                 AND pha.org_id = 86
                 AND pha.segment1 LIKE 'CXY-%'
                 AND pha.created_by = 1150
                 AND pha.cancel_flag <> 'Y')
  LOOP

    apps.fnd_global.apps_initialize(user_id      => 1150, -- V_USER_ID,
                                    resp_id      => 50758, --P_RESP_ID, 50757  50737  50758
                                    resp_appl_id => 201);
    apps.mo_global.init('PO');

    --DBMS_OUTPUT.PUT_LINE(P_USER_ID || '*' || V_USER_ID || '*' ||P_RESP_ID);
    dbms_output.put_line('------' || rec.segment1 || '------');
    dbms_output.put_line(l_return_status);
    apps.po_document_control_pub.control_document(p_api_version      => 1.0, -- p_api_version
                                                  p_init_msg_list    => apps.fnd_api.g_true, -- p_init_msg_list
                                                  p_commit           => apps.fnd_api.g_true, -- p_commit
                                                  x_return_status    => l_return_status, -- x_return_status
                                                  p_doc_type         => 'PO', -- p_doc_type
                                                  p_doc_subtype      => 'STANDARD', -- p_doc_subtype
                                                  p_doc_id           => NULL, -- p_doc_id
                                                  p_doc_num          => rec.segment1, -- p_doc_num
                                                  p_release_id       => NULL, -- p_release_id
                                                  p_release_num      => NULL, -- p_release_num
                                                  p_doc_line_id      => NULL, -- p_doc_line_id
                                                  p_doc_line_num     => NULL, --REC.LINE_NUM, -- p_doc_line_num
                                                  p_doc_line_loc_id  => NULL, --rec.Line_Location_Id, -- p_doc_line_loc_id
                                                  p_doc_shipment_num => NULL, -- p_doc_shipment_num
                                                  p_action           => 'CANCEL', -- p_action
                                                  p_action_date      => SYSDATE, -- p_action_date
                                                  p_cancel_reason    => '期初数据导入错误', -- p_cancel_reason
                                                  p_cancel_reqs_flag => 'N', -- p_cancel_reqs_flag
                                                  p_print_flag       => NULL, -- p_print_flag
                                                  p_note_to_vendor   => NULL,
                                                  p_use_gldate       => NULL, -- <ENCUMBRANCE FPJ>
                                                  p_org_id           => rec.org_id); -- p_note_to_vendor

    -- Get any messages returned by the Cancel API
    COMMIT;
    FOR i IN 1 .. apps.fnd_msg_pub.count_msg
    LOOP
      dbms_output.put_line(apps.fnd_msg_pub.get(p_msg_index => i,
                                                p_encoded   => 'F'));

      p_errbuf := apps.fnd_msg_pub.get(p_msg_index => i,
                                       p_encoded   => 'F');
    END LOOP;
    COMMIT;
    IF l_return_status = 'S' THEN
      BEGIN
        apps.po_document_action_pvt.do_approve(p_document_id      => rec.erp_header_id, --PO_HEADER_ID
                                               p_document_type    => 'PO',
                                               p_document_subtype => 'STANDARD',
                                               p_note             => NULL,
                                               p_approval_path_id => NULL,
                                               x_return_status    => v_x_return_status,
                                               x_exception_msg    => v_x_exception_msg);
        dbms_output.put_line('V_X_RETURN_STATUS:' || v_x_return_status);
        dbms_output.put_line('V_X_EXCEPTION_MSG:' || v_x_exception_msg);
        IF v_x_return_status = 'S' THEN
          COMMIT;
        ELSE
          ROLLBACK;
        END IF;

      END;

      dbms_output.put_line('Y');
      dbms_output.put_line('取消成功');
      COMMIT;

    ELSE

      dbms_output.put_line('E');
      dbms_output.put_line('取消失败:' || p_errbuf);

    END IF;
    COMMIT;
    ----update po_header
  ----更新头行的审批状态

  END LOOP;

END;

时间: 2024-10-25 01:37:10

采购订单关闭的相关文章

3.12 批量创建采购订单

3.12.1   业务方案描述 在生成采购订单前,由采购员审核计划结果,根据供应商的供货状况调整供应商供货数量.供货日期. 所有合格供应商都能够通过下单平台批量下达采购订单,尽管供应商没有供货比例,或供货比例为0. 一个集成的界面,清晰的列出MRP/DRP结果,及相关辅助信息.以帮助仓管员调整计划时获得一些决策信息: 1)审核计划结果: 2)指定供应商: 3)调整计划结果: 4)批量生成采购订单: 3.12.2   业务方案逻辑控制(包含三部分) MRP建议补充程序: 1)将ASL中的该物料可供

Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql

select distinct pla.po_header_id, --pha.type_lookup_code, pha.segment1       采购订单号, appf.full_name            采购员, pla.line_num               订单行, msi.segment1          物料编码, pla.item_description 物料说明, case when pha.Authorization_Status='APPROVED' th

采购订单批量创建 BAPI_PO_CREATE1

*&---------------------------------------------------------------------* *& REPORT  ZMM_PO_CREATE *& *& REPORTNAME   :批量创建PO *&---------------------------------------------------------------------* *& CREATED BY   : LIUXINYUAN *&am

[问题解决]使用mpur_message_forced时,校验消息添加到错误的采购订单行项目上

1,问题描述 在BADI ME_PROCESS_PO_CUST的方法CHECK中增强,增加对采购订单行项目的校验,发现使用宏mpur_message_forced添加错误消息时,这些错误消息只能显示到采购订单的最后一行上,并不能按照行项目归集显示. 增强点: &lt;img class="alignnone size-full wp-image-6487" src="http://www.baidusap.com/wp-content/uploads/2019-06-

002 MIRO发票校验采购订单项目科目分配类别检查增强-20150819

BADI SE19:ZINVOICE_UPDATE   MIRO发票检验过账好模拟时,检查采购订单line 是否有固定资产的行项目,如果有固定资产项目,则弹出提示框,提示消息:存在规定资产采购项目!   判断逻辑:检查MIRO ,选中的采购订单项目数据,项目的科目分配类别是否 = 'A',能找到为'A'的line ,则弹出提示框. DEVK905455       ABAP30       B235 MIRO发票校验资产栏位检查 by rainy on 20150817 req by fi me

采购订单审批/取消审批程序(BAPI_PO_RESET_RELEASE、BAPI_PO_RELEASE)

data:  gt_t16fs       TYPE STANDARD TABLE OF t16fs,            "批准策略 "定义采购订单对应的审批信息 BEGIN OF gt_ekko OCCURS 0, ebeln LIKE ekko-ebeln,                                "采购订单编号 frggr LIKE ekko-frggr,                                   "审批组

3.11 手工创建采购订单价格控制

3.11.1   业务方案描述 对Oracle标准<采购订单>界面进行手工下达时进行价格控制. 对于手工创建采购的订单,不希望通过输入采购价格,而是需要从一揽子采购协议中直接获取价格.如果没有协议价格,需要取该物料的标准成本. 3.11.2   业务方案逻辑控制 1. 单价取值逻辑: 1) 按照订单上的供应商.供应商地点.物料编码自动查找一揽子采购协议,用创建日期与一揽子采购协议上的日期分段匹配价格. 2) 如果找不到,则取一揽子协议行上的价格. 3)如果取不到,取该物料编码标准成本. 4)如

MM--发票校验 及基于采购订单的MIRO发票校验过程(

一.介绍发票校验是物料管理(MM)系统的一部分.它提供物料管理部分和财务会计, 成本控制和资产管理部分的连接.物料管理模块的发票校验为以下目的服务:它完成物料采购的全过程 - 物料采购从采购申请开始,接下来是采购和收货, 并以收到发票而结束.它允许处理不基于物料采购的发票(例如,服务费, 其它花费,过程费用, 等等).它允许处理贷项凭证, 既可以是发票的取消, 也可以是打折扣. 发票校验不是对支付进行处理, 也不是对发票进行分析. 这些需要处理的信息被传递到其它部门. 发票校验的任务包括:输入接

Oracle EBS-SQL (MRP-3):检查例外信息查询_建议取消_采购订单.sql

select msi.segment1                                    编码 ,msi.description                                   描述 ,mr.old_order_quantity                        数量 ,mr.old_schedule_date             订单需求日期 ,mipo.po_number                             订单号