Lista-MSEXECAUTO

September 26, 2017 | Author: Josuel | Category: User Interface, Software, Technology, Computing, Computing And Information Technology
Share Embed Donate


Short Description

Download Lista-MSEXECAUTO...

Description

Modulo : Programa : SIGAAUT | Quark 1.00B | Descrição: ROTINAS AUTOMATICAS | ------------------- | +---------------------------------------------------------+------------+----------+-------------+ | MICROSIGA SOFTWARE | | Microsiga Software S/A | 13/03/2002 | 14:54:18 | pAgina 0001 | +=====================+============================================================+============+==========+=============+ 1) Objetivo : Fazer manutenção,ao automática (inclusão, alteração e exclusão) automatizando o processo de entrada de dados sem a necessidade de desenvolver rotinas especificas. 2) Aplicação: Esta técnica esta aplicada em todas as versões Protheus, porem esta documentação se baseou na versão 6.09. 3) Vantagens: 1) Interface : A entrada de dados e enviada a rotina em forma de campos e conteúdos (array) e desta forma não sendo necessário a apresentação de nenhuma interface ao usuário. 2) Segurança : Em relação a este aspecto e fundamental sua utilização desta forma, pois esta se usando a rotina padrão no sistema, onde se a rotina sofrer manutenção a atualização será automática para o usuário final. 3) Agilidade no processo : Aumenta consideravelmente a agilidade, pois neste processo se bem construído elimina-se a entrada de dados via teclado (digitação). 4) Procedimento: Existe duas maneiras de esta utilizando a rotina automática. 1§ Por um job 2§ Direto do sistema A principal diferença entre elas e que quando usamos por um Job , devemos utilizar diretamente os nomes da funções 1§)Procedimento utilizando em JOB ---------------------------------Para a utilização da rotina automática em JOB nao utilizar a função MSExecAuto mas sim direto o nome da função. Exemplo: Mata010(aProduto,nOpc)

// utilizando em JOB

Ja para rotinas que não são em Job , devemos usar a MSExecAuto, pois a mesma tem a função de guardar o ambiente , executar a função automática e retornar de onde parou. 2§)Procedimentos utilizando MSExecAuto ------------------------------------Exemplo: MSExecAuto({|x,y| mata010(x,y)},aProduto,3) Modelos de Rotinas Automáticas:

// utilizando em aplicação normal.

------------------------------Existem 2 modelos de rotinas automáticas: 1§Modelo -------Rotinas que utilizam somente a Enchoice (Baseada no dicionário de dados para uma tabela). CONA060(aRotAuto)-- Cadastro de Centro de Custo Custo FINA040(aRotAuto,nOpc)--Cadastro Titulo a Receber FINA050(aRotAuto,nOpcion,nOpc)*--Cadastro Titulo A pagar MATA010(aRotAuto,nOpc)--Cadastro de produtos MATA020(aRotAuto,nOpc)--Cadastro de Fornecedor MATA030(aRotAuto,nOpc)--Cadastro de Clientes MATA040(aRotAuto,nOpc)--Cadastro de Vendedor MATA050(aRotAuto,nOpc)--Cadastro de Transportadora MATA060(aRotAuto,nOpc)--Atualização da Amarração Produto Fornecedor MATA080(aRotAuto,nOpc)--Cadastro de Tipo entrada e saída MATA180(aRotAuto,nOpc)--Atualização dos dados complementares do produto MATA240(aRotAuto,nOpc)--Movimentações Internas (Requisições/Devoluções) MATA250(aRotAuto)--Programa para digitação das produções. MATA270(aRotAuto)--Programa de digitação do inventario MATA650(aRotAuto,nOpc)--Cadastramento de Ordens de Produção MATA680(aRotAuto)--Programa de atualização do movimento de produção MATA681(aRotAuto)-Apontamento de Produção baseado no Roteiro de de Operações MATA682(aRotAuto)--Apontamento de Horas Improdutivas QADA020(aRotAuto,nOpc)--Cadastro de Check List QIEA030(aRotAuto)--Programa de atualização de Unidades de Medida Obs.: As funções que não tem o parâmetro 'nOpc' estão disponíveis somente a rotina de inclusão. *nOpcion= utilizado para localização, para os processos automáticos passar NIL. Parâmetros: ----------NOpc - numérico com tipo da operação 3-inclusão, 4-alteração e 5 exclusão ARotAuto - array contendo os campos e conteúdos, no mínimo passar os campos obrigatórios. NIL - parâmetro reservado Exemplo: User Function IncProd() Local aRotAuto := {} Local nOpc := 3 // inclusão Private lMsHelpAuto := .t. // se .t. direciona as mensagens de help para o arq. de log Private lMsErroAuto := .f. //necessário a criação, pois será //atualizado quando houver //alguma inconsistência nos parâmetros Begin Transaction aRotAuto:= {{"B1_COD","1010" ,Nil},; {"B1_DESC" ,"Produto teste",Nil},; {"B1_TIPO" ,"PA" ,Nil},;

{"B1_UM" {"B1_LOCPAD" {"B1_PICM" {"B1_IPI" {"B1_PRV1" {"B1_LOCALIZ" {"B1_CODBAR"

,"UN" ,"01" ,0 ,0 ,100 ,"N" ,'789888800001'

,Nil},; ,Nil},; ,Nil},; ,Nil},; ,Nil},; ,Nil},; ,Nil}}

MSExecAuto({|x,y| mata010(x,y)},aProduto,nOpc) If lMsErroAuto DisarmTransaction() break EndIf End Transaction If lMsErroAuto /* Se estiver em uma aplicação normal e ocorrer alguma inconsistência nos parâmetros passados,mostrar na tela o log informando qual coluna teve a inconsistência. */ Mostraerro() Return .f. EndIf Return .t. 2§MODELO -------Rotinas que utilizam enchoice e getdados. Rotinas disponíveis: CONA050(lLanc,xAutoCab,xAutoItens)*- Lançamentos Contábeis MATA100(xAutoCab,xAutoItens,nOpc103)-Entrada de Notas Fiscais de Compra MATA102(xAutoCab,xAutoItens,nOpc)-Remito de Entrada de Materiais (Compras) MATA103(xAutoCab,xAutoItens,nOpc,lWhenGet)**- Notas Fiscais de Entrada MATA110(xAutoCab,xAutoItens, nOpc)-Solicitação de Compra MATA120(nFuncao,xAutoCab,xAutoItens,nOpcAuto)***-Pedidos de Compra MATA140(xAutoCab,xAutoItens,nOpc)-Digitação das Notas Fiscais de Entrada sem os dados Fiscais MATA150(xAutoCab,xAutoItens,nOpc)-Rotina de atualização manual das cotações de compra MATA241(xAutoCab,xAutoItens)-Programa de Movimentações Internas (Requisições/Devoluções) MATA265(xAutoCab,xAutoItens,nOpc)-Distribuição de Produtos. MATA410(xAutoCab,xAutoItens,nOpc)-Programa de atualização de Pedidos de Venda MATA415(xAutoCab,xAutoItens,nOpc)-Rotina de atualização dos Orçamentos de venda MATA920(xAutoCab,xAutoItens,nOpc)-SAIDA de Notas Fiscais de Venda Manual TMKA061(xAutoCab,xAutoItens,nOpc)-Gerador de Listas CFGX016(xAutoCab,xAutoItens)-Manutenção do arquivo de tabelas do sistema FINA070(xAutoCab,nOpc)-Programa de Baixa de Títulos a Receber FINA080(xAutoCab,nOpc)-Programa de Baixa de Títulos a Pagar MATA266(aAutoItens)-Programa de Transferência de Material para Expedição

Obs.: As funções que não tem o parâmetro 'nOpc' estão disponíveis somente a rotina de inclusão. * lLanc -Utilizado para ..., nos processos automáticos passar falso(.f.). ** lWhenGet - Nas rotinas automáticas passar NIL ***nOpcAuto-Passar o tipo que usa o modulo mata120 (1 pra pedido de compra, 2 Atualização de Entrega) Parâmetros: nOpc - numérico com tipo da operação 3-inclusão, 4-alteração e 5 exclusão xAutoCab - array contendo os campos e conteúdos do cabeçalho, no mínimo passar os campos obrigatórios. xAutoItens - array contendo outro array com os campos e conteúdo referente aos itens. NIL - parâmetro reservado Exemplo: User Function IncPed() Local aCabPV := {} Local aItemPV1:= {} Local aItemPV2:= {} Local nOpc := 3 // inclusao Private lMsHelpAuto := .t. Private lMsErroAuto := .f. Begin Transaction //Cabeçalho aCabPV:={{"C5_NUM" ,"000108" ,Nil},; // Numero do pedido {"C5_CLIENTE","000001" ,Nil},; // Código do cliente {"C5_LOJAENT","00" ,Nil},; // Loja para entrada {"C5_LOJACLI","00" ,Nil},; // Loja do cliente {"C5_EMISSAO",dDatabase ,Nil},; // Data de emissão {"C5_TIPO" ,"N" ,Nil},; // Tipo de pedido {"C5_CONDPAG","001" ,Nil},; // Código da condição de pagamento* {"C5_LIBEROK","S" ,Nil}} // Liberação Total //Itens aItemPV1:={ {"C6_NUM","000108",Nil},; // Numero do Pedido {"C6_ITEM" ,"01" ,Nil},; // Numero do Item no Pedido {"C6_PRODUTO","1010" ,Nil},; // Código do Produto {"C6_QTDVEN" ,1 ,Nil},; // Quantidade Vendida {"C6_PRCVEN" ,100 ,Nil},; // Preço Unitário Liquido {"C6_VALOR" ,100 ,Nil},; // Valor Total do Item {"C6_ENTREG",dDataBase,Nil},; // Data da Entrega {"C6_UM" ,"UN" ,Nil},; // Unidade de Medida Primar. {"C6_TES" ,"510" ,Nil},; // Tipo de Entrada/Saída do Item {"C6_LOCAL" ,"01" ,Nil},; // Almoxarifado {"C6_DESCONT",1 ,Nil},; // Percentual de Desconto {"C6_COMIS1" ,0 ,Nil},; // Comissão Vendedor {"C6_CLI" ,"000001",Nil},; // Cliente {"C6_LOJA" ,"00" ,Nil},; // Loja do Cliente {"C6_QTDEMP" ,1 ,Nil},; // Quantidade Empenhada {"C6_QTDLIB" ,1 ,Nil}} // Quantidade Liberada Itens

aItemPV2:={ {"C6_NUM" ,"000108",Nil},; {"C6_ITEM" ,"01" ,Nil},; {"C6_PRODUTO","1010" ,Nil},; {"C6_QTDVEN" ,1 ,Nil},; {"C6_PRCVEN" ,100 ,Nil},; {"C6_VALOR" ,100 ,Nil},; {"C6_ENTREG",dDataBase,Nil},; {"C6_UM" ,"UN" ,Nil},; {"C6_TES" ,"510" ,Nil},; {"C6_LOCAL" ,"01" ,Nil},; {"C6_DESCONT",1 ,Nil},; {"C6_COMIS1" ,0 ,Nil},; {"C6_CLI" ,"000001",Nil},; {"C6_LOJA" ,"00" ,Nil},; {"C6_QTDEMP" ,1 ,Nil},; {"C6_QTDLIB" ,1 ,Nil}}

// // // // // // // // // // // // // // // //

Numero do Pedido Numero do Item no Pedido Código do Produto Quantidade Vendida Preço Unitário Liquido Valor Total do Item Data da Entrega Unidade de Medida Primar. Tipo de Entrada/Saída do Item Almoxarifado Percentual de Desconto Comissão Vendedor Cliente Loja do Cliente Quantidade Empenhada Quantidade Liberada

MSExecAuto({|x,y,z|Mata410(x,y,z)},aCabPv,{aItemPV1,aItemPV2},nOpc) If lMsErroAuto DisarmTransaction() break EndIf End Transaction If lMsErroAuto /* Se estiver em uma aplicação normal e ocorrer alguma inconsistência nos parâmetros passados, mostrar na tela o log informando qual coluna teve a inconsistência. */ Mostraerro() Return .f. EndIf Return .t. ========================================================================================================================

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF