Páginas filhas
  • DT Processo de Integração Para Gerar Pedido de Compra Automático


01. DADOS GERAIS

Linha de Produto:PC Sistemas
Segmento:D&L
Módulo:2 - Comprar Mercadorias
Requisito/Story/Issue:COM-3255
Versão/Release:29.02


02. SITUAÇÃO/REQUISITO

Gravar pedido de compra no sistema de forma automática através de integração. 

03. SOLUÇÃO

Criado uma nova forma de realizar uma chamada a Rotina 220 - Digitar Pedido de Compra, via DLL para que possa solicitar o processamento de um pedido de compra a partir de informações gravadas na tabela de sugestão de compra. Quando for realizado essa chamada a rotina irá ler as informações gravadas na tabela de sugestão, a rotina não terá sua tela aberta para visão do usuário a rotina executará o comando em segundo plano gerando o pedido de compra. 


  1. Acesse a Rotina 560 - Atualizar Banco de Dados, na versão 29.02 ou superior e atualize as tabelas abaixo:
    - Tab. cab. da sug. a ser utiliz. geração do ped. compra (PCSUGESTAOCOMPRAC)
    - Tab. itens sug. ser utiliz. para geração do ped. compr (PCSUGESTAOCOMPRAI)


  1. Para que esse processo seja realizado o parceiro deve fazer uma chamada a DLL disponibilizada no pacote de Library disponível no CCW. Antes de realizar a chamada a DLL deve ser gravado as informações na tabela de sugestão de compras conforme layout abaixo:

    PCSUGESTAOCOMPRAC – Cabeçalho da sugestão

    Campo

    Tipo e Tamanho

    Obrigatório

    Comentário

    Numsugestao

    Number (10)

    Sim

    Número da Sugestão. Usar sequence DFSEQ_sugestaocompra

    Codfornec

    Number (6)

    Sim

    Código do Fornecedor

    Codfilial

    Varchar2(2)

    Sim

    Código Filial

    Codusuariosugestao

    Number (6)


    Código Usuário Sugestão

    Datasugestao

    Date

    Sim

    Data da Sugestão

    Tipodescarga

    Varchar2(1)

    Sim

    Tipo de Pedido – Passar os valores:

    1, 5, A, S

    Tipos

     1 – Normal,

     5 – Bonificado,

    A – Consignado,

     S – Imobilizado Consumo Interno




    PCSUGESTAOCOMPRAI – Itens da sugestão

    Campo

    Tipo e Tamanho

    Obrigatório

    Comentário

    Numsugestao

    Number (10)

    Sim

    Número da Sugestão. Usar sequence DFSEQ_sugestaocompra

    Codprod

    Number(9)

    Sim

    Código do produto

    Qtsugerida

    Number(18,6)

    Sim

    Quantidade Sugerida

    Pccompraligsugerido

    Number(18,6)

    Sim

    Preço de compra liquido. Sem os impostos e desconto. Mesmo valor que é digitado na rotina 220 no campo Preço de compra

    Status

    Varchar2(1)

    Sim

    Gravar no campo Valor “P”

    Status da sugestão

     G – Gerado

     S – Sugerido

     C – Cancelado

     P - Pendente



  2. Caminho para baixar a Rotina no CCW:
    - Acessar o CCW,
    - Baixar a Biblioteca Library,
    - Descompactar,
    - Pegar a dll RotinaLaunch.DLL,
    - Salvar na pasta P:\lib




  3. Para a rotina 220 realizar a importação da sugestão de compra de forma automática deverá ser realizada a chamada na DDL (RotinaLaunch.dll), passando os seguintes parâmetros:

    • Código da rotina (220)
    • Nome do banco de dados
    • Usuário do banco de dados
    • Senha do banco de dados
    • Usuário do WINTHOR
    • Senha do WINTHOR
    • Parâmetros Adicionais, onde deverão ser informados:
      -  220S (fixo) – A letra S, significa Sugestão de compra.
      - Número da sugestão a ser importada
      - S ou N para importar produtos foram de linha
      - S ou N para importar produtos proibidos para venda
      - Todos os parâmetros deverão ser separados por ; (ponto e virgula)  Ex: 220S;125;S;S.


  4. Exemplo de uso da DLL:


    // Declare a função de que representa a interface da DLL;

    TDLL_RotinaLaunch = function (pRotina: Integer;

                                    pAliasBD: AnsiString;

                                    pUsuarioBD: AnsiString;

                                    pSenhaBD: AnsiString;

                                    pUsuarioWT: AnsiString;

                                    pSenhaWT: AnsiString;

                                    pParamAdicional: AnsiString;

                                    var pMsg: WideString): Boolean;


    // Implementação

    procedure TestarDLL;

    var

      vHandle: THandle;

      vFuncaoLoadRotina: TDLL_RotinaLaunch;

      vRotinaCarregada: Boolean;

      vMsg: WideString;

    begin

      vHandle := LoadLibrary(<caminho da DLL>);

      try

        if vHandle <> 0 then

        begin

          @vFuncaoLoadRotina := GetProcAddress(vHandle, 'LoadRotina');

          // Executa a função e retorna se foi possível ou não carregar a rotina

          vRotinaCarregada := vFuncaoLoadRotina(<Codigo da Rotina>

                                               , <Alias do BD>

                                               , <Usuario do BD>

                                               , <Senha do BD>

                                               , <Usuario do WT>

                                               , <Senha do Usuário do WT>

                                               , <Parametros adicionais, se necessário>

                                               , vMsg // traz mensagem de retorno da DLL

                                               );

        end;

      finally

        FreeLibrary(vHandle);

      end;


    end;




04. DEMAIS INFORMAÇÕES