Árvore de páginas

EXECAUTO MATA270 - Inventário com MV_CONTINV = Sim

Produto:

Microsiga Protheus.

Versões:

Todas

Ocorrência:

Rotina Automática - MATA270 (Execauto)

Ambiente:

SIGAEST - Estoque e Custos

Passo a passo:

#INCLUDE "PROTHEUS.CH"

/*
Exemplo de MsExecAuto da rotina de Inventario (MATA270) com uso de controle de contagem
definido pelo parametro MV_CONTINV
Neste exemplo serao incluidos 3 registros para o mesmo produto com incremento automatico
do campo B7_CONTAGE (segundo parametro .T. do MATA270). A propria rotina ira criar
B7_CONTAGE 001, 002 E 003.
Em seguida, o registro referente B7_CONTAGE = 002 sera alterado ilustrando o exemplo de
alteracao por MsExecAuto da rotina de inventario MATA270.

Notas importantes:
1) Para inclusao (opcao 3) com parametro de B7_CONTAGE automatico (segundo parametro do MATA270),
nao poderao ter os campos B7_CONTAGE e B7_ESCOLHA no array de campos passado para a rotina
2) Para alteracao, nao podera ser executada a rotina automatica com B7_CONTAGE automatico
3) Para alteracao, TODOS os campos da chave utilizada deverao constar do array, inclusive o
B7_CONTAGE para permitir o correto posicionamento do registro desejado para alteracao
Chave indice 1: B7_FILIAL+B7_DATA+B7_COD+B7_LOCAL+B7_LOCALIZ+B7_NUMSERI+B7_LOTECTL+B7_NUMLOTE+B7_CONTAGE

4) Para alteracao, os campos pertencentes a chave utilizada nao poderao ser alterados, devendo
os mesmos serem coincidentes com um registro existente, caso contrario nao sera possivel
posicionar o registro para alteracao.
5) Para alteracao, os campos do tipo CARACTER, devem obedecer o tamanho dos campos na base de
dados, devendo ser completados com espacos a direita igualando o tamanho nos registros da tabela
*/

User Function TesteInvent
Local aAuto := {}

Private lMsErroAuto := .F.

Aadd(aAuto, {"B7_FILIAL" , "01" , NIL})
Aadd(aAuto, {"B7_LOCAL" , "01" , NIL})
Aadd(aAuto, {"B7_TIPO" , "PA" , NIL})
Aadd(aAuto, {"B7_DOC" , "DOCTO01" , NIL})
Aadd(aAuto, {"B7_QUANT" , 8000.00 , NIL})
Aadd(aAuto, {"B7_DATA" , Stod("20160629") , NIL})
Aadd(aAuto, {"B7_DTVALID" , Stod("20170613") , NIL})
Aadd(aAuto, {"B7_COD" , "TSTINVENT " , NIL})
Aadd(aAuto, {"B7_LOTECTL" , Pad("LOTE0001" , Len(SB7->B7_LOTECTL)) , NIL})
Aadd(aAuto, {"B7_NUMLOTE" , Pad("000001" , Len(SB7->B7_NUMLOTE)) , NIL})
Aadd(aAuto, {"B7_LOCALIZ" , Pad("LCZLCZ" , Len(SB7->B7_LOCALIZ)) , NIL})
Aadd(aAuto, {"B7_NUMSERI" , Pad("" , Len(SB7->B7_NUMSERI)) , NIL})
Aadd(aAuto, {"B7_ORIGEM" , "MATA270" , NIL})
Aadd(aAuto, {"B7_STATUS" , "1" , NIL})
Aadd(aAuto, {"INDEX" , 1 , NIL})

lMsErroAuto := .F.

MsExecAuto({|a,b,c| MATA270(a,b,c)}, aAuto, .T., 3)

If lMsErroAuto
MostraErro()
Else
Alert("Incluido B7_CONTAGE " + SB7->B7_CONTAGE + " -> quantidade " + Alltrim(Str(SB7->B7_QUANT)))
Endif

aAuto := {}
Aadd(aAuto, {"B7_FILIAL" , "01" , NIL})
Aadd(aAuto, {"B7_LOCAL" , "01" , NIL})
Aadd(aAuto, {"B7_TIPO" , "PA" , NIL})
Aadd(aAuto, {"B7_DOC" , "DOCTO01" , NIL})
Aadd(aAuto, {"B7_QUANT" , 10000.00 , NIL})
Aadd(aAuto, {"B7_DATA" , Stod("20160629") , NIL})
Aadd(aAuto, {"B7_DTVALID" , Stod("20170613") , NIL})
Aadd(aAuto, {"B7_COD" , "TSTINVENT " , NIL})
Aadd(aAuto, {"B7_LOTECTL" , Pad("LOTE0001" , Len(SB7->B7_LOTECTL)) , NIL})
Aadd(aAuto, {"B7_NUMLOTE" , Pad("000001" , Len(SB7->B7_NUMLOTE)) , NIL})
Aadd(aAuto, {"B7_LOCALIZ" , Pad("LCZLCZ" , Len(SB7->B7_LOCALIZ)) , NIL})
Aadd(aAuto, {"B7_NUMSERI" , Pad("" , Len(SB7->B7_NUMSERI)) , NIL})
Aadd(aAuto, {"B7_ORIGEM" , "MATA270" , NIL})
Aadd(aAuto, {"B7_STATUS" , "1" , NIL})
Aadd(aAuto, {"INDEX" , 1 , NIL})

lMsErroAuto := .F.

MsExecAuto({|a,b,c| MATA270(a,b,c)}, aAuto, .T., 3)

If lMsErroAuto
MostraErro()
Else
Alert("Incluido B7_CONTAGE " + SB7->B7_CONTAGE + " -> quantidade " + Alltrim(Str(SB7->B7_QUANT)))
Endif

aAuto := {}
Aadd(aAuto, {"B7_FILIAL" , "01" , NIL})
Aadd(aAuto, {"B7_LOCAL" , "01" , NIL})
Aadd(aAuto, {"B7_TIPO" , "PA" , NIL})
Aadd(aAuto, {"B7_DOC" , "DOCTO01" , NIL})
Aadd(aAuto, {"B7_QUANT" , 12000.00 , NIL})
Aadd(aAuto, {"B7_DATA" , Stod("20160629") , NIL})
Aadd(aAuto, {"B7_DTVALID" , Stod("20170613") , NIL})
Aadd(aAuto, {"B7_COD" , "TSTINVENT " , NIL})
Aadd(aAuto, {"B7_LOTECTL" , Pad("LOTE0001" , Len(SB7->B7_LOTECTL)) , NIL})
Aadd(aAuto, {"B7_NUMLOTE" , Pad("000001" , Len(SB7->B7_NUMLOTE)) , NIL})
Aadd(aAuto, {"B7_LOCALIZ" , Pad("LCZLCZ" , Len(SB7->B7_LOCALIZ)) , NIL})
Aadd(aAuto, {"B7_NUMSERI" , Pad("" , Len(SB7->B7_NUMSERI)) , NIL})
Aadd(aAuto, {"B7_ORIGEM" , "MATA270" , NIL})
Aadd(aAuto, {"B7_STATUS" , "1" , NIL})
Aadd(aAuto, {"INDEX" , 1 , NIL})

lMsErroAuto := .F.

MsExecAuto({|a,b,c| MATA270(a,b,c)}, aAuto, .T., 3)

If lMsErroAuto
MostraErro()
Else
Alert("Incluido B7_CONTAGE " + SB7->B7_CONTAGE + " -> quantidade " + Alltrim(Str(SB7->B7_QUANT)))
Endif

aAuto := {}
Aadd(aAuto, {"B7_FILIAL" , "01" , NIL})
Aadd(aAuto, {"B7_LOCAL" , "01" , NIL})
Aadd(aAuto, {"B7_TIPO" , "PA" , NIL})
Aadd(aAuto, {"B7_DOC" , "DOCTO01" , NIL})
Aadd(aAuto, {"B7_QUANT" , 20000.00 , NIL})
Aadd(aAuto, {"B7_DATA" , Stod("20160629") , NIL})
Aadd(aAuto, {"B7_DTVALID" , Stod("20170613") , NIL})
Aadd(aAuto, {"B7_COD" , "TSTINVENT " , NIL})
Aadd(aAuto, {"B7_LOTECTL" , Pad("LOTE0001" , Len(SB7->B7_LOTECTL)) , NIL})
Aadd(aAuto, {"B7_NUMLOTE" , Pad("000001" , Len(SB7->B7_NUMLOTE)) , NIL})
Aadd(aAuto, {"B7_LOCALIZ" , Pad("LCZLCZ" , Len(SB7->B7_LOCALIZ)) , NIL})
Aadd(aAuto, {"B7_NUMSERI" , Pad("" , Len(SB7->B7_NUMSERI)) , NIL})
Aadd(aAuto, {"B7_CONTAGE" , Pad("002" , Len(SB7->B7_CONTAGE)) , NIL})
Aadd(aAuto, {"B7_ORIGEM" , "MATA270" , NIL})
Aadd(aAuto, {"B7_STATUS" , "1" , NIL})
Aadd(aAuto, {"INDEX" , 1 , NIL})

lMsErroAuto := .F.

MsExecAuto({|a,b,c| MATA270(a,b,c)}, aAuto, .F., 4)

If lMsErroAuto
MostraErro()
Else
Alert("Alterado B7_CONTAGE " + SB7->B7_CONTAGE + " -> quantidade " + Alltrim(Str(SB7->B7_QUANT)))
Endif


Observações:

Observações disponíveis no inicio do exemplo acima.