Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Exemplo de Execução Automática Solicitações de Compras - MATA110

Função: MATA110 - Solicitação de Compras

Versão:Totvs Protheus 12.1.17

Linha de Produto:

Microsiga Protheus

Segmento:

Manufatura

Módulo:

SIGACOM

Rotina:

Rotina

Nome Técnico

MATA110

Solicitação de Compras

Cadastros Iniciais:

Produto, Local de Estoque

Parâmetro(s):

N/A

Ponto de Entrada:

N/A

Tickets relacionados

769289

Requisito/Story/Issue (informe o requisito relacionado):

DMANMAT02-226

País(es):

Todos

Banco(s) de Dados:

Todos

Tabelas Utilizadas:

SC1, SCX

Sistema(s) Operacional(is):

Todos

ExecAuto MATA110 

Observações:

Descrição:

OBJETIVO:
Essa rotina permite o registro de qualquer Solicitação de Compras de mercadorias na empresa. A entrada das solicitações inicia o processo de compras.

Sintaxe:

MATA110 - Solicitação de Compras ( [ PARAMIXB1 ] [ PARAMIXB2 ] [ PARAMIXB3 ] [ PARAMIXB4 ] [ PARAMIXB5 ]  [ PARAMIXB6 ]  [ PARAMIXB7 ] )

Programa Fonte:

MATA110.prw

Esta rotina pode ser utilizada via Rotina Automática.

Retorno:

NIL

Parâmetros:

Nome

Tipo

Descrição

Default

PARAMIXB1

Vetor

Array contendo o cabeçalho da Solicitação de Compras { {"C1_NUM", "CONTEUDO"} ...}


PARAMIXB2VetorArray contendo os itens da Solicitação de Compras { {"C1_ITEM",StrZero(nx,len(SC1->C1_ITEM) } ...}
PARAMIXB3NuméricoOpção desejada: 3-Inclusão; 4-Alteração ; 5-Exclusão ; 7-Aprovação (Somente versão Protheus 10)3
PARAMIXB4LógicoControle Interno - Informa se a rotina é chamada via MRP..F.
PARAMIXB5LógicoIndica se apresenta ou não a Dialog da Rotina Automática..F.
PARAMIXB6VetorArray contendo Rateio SC { {C1_ITEM,{ {"CX_CAMPO","CONTEUDO"},... } }, ...}{}
PARAMIXB7VetorArray contendo Rateio Projeto { {C1_ITEM,{ {"AFG_CAMPO","CONTEUDO"},... } }, ...}{}

 

Exemplo 1 - Teste de Inclusão, Alteração e Exclusão Simples:

#Include 'Protheus.ch'

User Function MyMata110()
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local nX     := 0
Local nY     := 0
Local cDoc   := ""
Local lOk    := .T.         
Private lMsHelpAuto := .T.
PRIVATE lMsErroAuto := .F.


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Abertura do ambiente                                         |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ConOut(Repl("-",80))
ConOut(PadC(OemToAnsi("Teste de Inclusao de 2 solicitacoes de compra com 2 itens cada"),80))
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" TABLES "SC1","SB1"


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Verificacao do ambiente para teste                           |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
DbSelectArea("SB1")
DbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"01"))	
lOk := .F.	
ConOut(OemToAnsi("Cadastrar produto: 01"))
EndIf
If !SB1->(MsSeek(xFilial("SB1")+"02"))	
lOk := .F.	
ConOut(OemToAnsi("Cadastrar produto: 02"))
EndIf
If lOk	
ConOut(OemToAnsi("Inicio: ")+Time())		
For nY := 1 To 2		
aCabec := {}		
aItens := {}		
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿		
//| Verifica numero da SC       |		
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ		
cDoc := GetSXENum("SC1","C1_NUM")		
SC1->(dbSetOrder(1))		
While SC1->(dbSeek(xFilial("SC1")+cDoc))			
ConfirmSX8()			
cDoc := GetSXENum("SC1","C1_NUM")		
EndDo					
aadd(aCabec,{"C1_NUM"    ,cDoc})		
aadd(aCabec,{"C1_SOLICIT","Administrador"})		
aadd(aCabec,{"C1_EMISSAO",dDataBase})		
For nX := 1 To 2			
aLinha := {}			
aadd(aLinha,{"C1_ITEM"   ,StrZero(nx,len(SC1->C1_ITEM)),Nil})			
aadd(aLinha,{"C1_PRODUTO","01",Nil})			
aadd(aLinha,{"C1_QUANT"  ,1   ,Nil})			
aadd(aItens,aLinha)		
Next nX		
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿		
//| Teste de Inclusao                                            |		
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ		
MSExecAuto({|x,y| mata110(x,y)},aCabec,aItens)		
If !lMsErroAuto			
ConOut(OemToAnsi("Incluido com sucesso! ")+cDoc)		
Else			
ConOut(OemToAnsi("Erro na inclusao!"))		
EndIf	
Next nY	
ConOut(OemToAnsi("Fim  : ")+Time())
EndIf


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Fechamento do ambiente                                       |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
RESET ENVIRONMENT


Return(.T.)



Exemplo 2 - Teste de Inclusão, Alteração e Exclusão - Com Rateio: