API para submeter para aprovação a OC

Nesse post irei mostrar uma API para submeter para aprovação uma ordem de compra via API.

  1. Crie uma Ordem de Compra

Sem título

2. Rode o script abaixo

DECLARE
   v_item_key   VARCHAR2 (100);
   l_result     NUMBER;
   lv_request_id                 NUMBER;
   v_phase                       VARCHAR2(4000);
   v_status                      VARCHAR2(4000);
   v_dev_phase                   VARCHAR2(4000);
   v_dev_status                  VARCHAR2(4000);
   v_message                     VARCHAR2(4000);  

   CURSOR c_po_details
   IS
      SELECT pha.po_header_id,
             pha.org_id,
             pha.segment1,
             pha.agent_id,
             pdt.document_subtype,
             pdt.document_type_code,
             pha.authorization_status
        FROM apps.po_headers_all pha,
             apps.po_lines_all pla,
             apps.ap_suppliers aps,
             apps.po_document_types_all pdt
       WHERE pha.po_header_id = pla.po_header_id
             AND pha.vendor_id = aps.vendor_id
             AND NVL (pha.authorization_status, 'INCOMPLETE') = 'INCOMPLETE'
             AND pha.segment1 = '91'
             AND pha.type_lookup_code = pdt.document_subtype
             AND pha.org_id = pdt.org_id
             AND pdt.document_type_code = 'PO';
BEGIN
   fnd_global.apps_initialize (user_id        => 1139,
                               resp_id        => 21623,
                               resp_appl_id   => 660);


   FOR p_rec IN c_po_details
   LOOP
      mo_global.init ('ONT');
      mo_global.set_policy_context ('S', 81);

      SELECT p_rec.po_header_id || '-' || TO_CHAR (po_wf_itemkey_s.NEXTVAL)
        INTO v_item_key
        FROM DUAL;

     po_reqapproval_init1.start_wf_process (ItemType                           => 'POAPPRV',
                                            ItemKey                            => v_item_key,
                                            WorkflowProcess                    => 'POAPPRV_TOP',
                                            ActionOriginatedFrom               => 'PO_FORM',
                                            DocumentID                         => p_rec.po_header_id,
                                            DocumentNumber                     => p_rec.segment1,
                                            PreparerID                         => p_rec.agent_id,
                                            DocumentTypeCode                   => p_rec.document_type_code,
                                            DocumentSubtype                    => p_rec.document_subtype,
                                            SubmitterAction                    => 'APPROVE',
                                            forwardToID                        => NULL,
                                            forwardFromID                      => NULL,
                                            DefaultApprovalPathID              => NULL,
                                            Note                               => NULL,
                                            PrintFlag                          => 'N',
                                            FaxFlag                            => 'N',
                                            FaxNumber                          => NULL,
                                            EmailFlag                          => 'N',
                                            EmailAddress                       => NULL,
                                            CreateSourcingRule                 => 'N',
                                            ReleaseGenMethod                   => 'N',
                                            UpdateSourcingRule                 => 'N',
                                            MassUpdateReleases                 => 'N',
                                            RetroactivePriceChange             => 'N',
                                            OrgAssignChange                    => 'N',
                                            CommunicatePriceChange             => 'N',
                                            p_Background_Flag                  => 'Y',
                                            p_Initiator                        => NULL,
                                            p_xml_flag                         => NULL,
                                            FpdsngFlag                         => 'N',
                                            p_source_type_code                 => NULL  );
                                            
        COMMIT;                 

   END LOOP;
END;

A ordem de Compra ficará em “Em Andamento”

Sem título

3. Rode o processo de segundo plano do workflow

Sem título

Ordem de Compra aprovada

Sem título

Esse caso funcionou porque não há um fluxo atribuído para nenhuma outra pessoa.

 

Deixe uma resposta

Powered by WordPress.com. Tema: Baskerville 2 por Anders Noren

Acima ↑

%d blogueiros gostam disto: