Árvore de páginas

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Backoffice
Módulo:SIGAEST - Estoque e Custos
Rotina:MATA105 - Solicitação ao Armazém
Cadastros Iniciais:MATA010 - Cadastro de Produtos
Banco(s) de Dados:Bancos de dados homologados pela TOTVS
Tabelas Utilizadas:

SCP - Solicitações ao Armazém

SGS - Rateio de Solicitação de Armazém

Sistema(s) Operacional(is):Sistemas Operacionais homologados pela TOTVS


02. 
DESCRIÇÃO

A finalidade deste documento é exemplificar como a Solicitação ao Armazém pode ser feita de forma automática através de MsExecAuto (rotina automática).

É obrigatório o produto estar cadastrado na tabela SB1 (descrição genérica de produto).

03. MsExecAuto


Função:MATA105
Parâmetros:
NomeTipoDescriçãoObrigatório
xReservCabArrayCampos a serem preenchidos do cabeçalho.x
xReservItensArrayCampos a serem preenchidos do item.x
nOpcAutoNumérico

Operação da rotina onde:

3 - Inclusão

4 - Alteração

5 - Exclusão


x
xRatSAArrayCampos a serem preenchidos dos itens de rateio


04. EXEMPLO


Exemplo de Inclusão de Solicitação ao Armazém com item de Rateio

#Include "protheus.ch"
#Include "rwmake.ch"
#Include "tbiconn.ch"

User Function MyMata105()


Local aAuto := {}
Local aCab := {}
Local aLinha := {}
Local alista := {{'PA001', 1000, "OBSERVACAO DO PRODUTO", .T.}} //Produto Utilizado
Local aRateio := {{'01', {{{"GS_PERC",100,},{'GS_CC', ' CC000008',},{'GS_CONTA', ' 1110210 ',},{'GS_ITEMCTA', '0000000 ',}, {'GS_CLVL','000000100',} }}}}
Local nX
Local nOpcAuto := 3
Private lMsErroAuto := .F.

PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "EST" TABLES "SCP", "SGS"

//Cabecalho a Incluir
aadd(aCab,{GetSxeNum("SCP","CP_NUM"),,dtoc(dDataBase)}) //Cabecalho


Dbselectarea("SB1")
Dbsetorder(1)

For nX := 1 to len(alista) step 2
aLinha := {}

SB1->(DbSeek(xFilial("SB1")+PadR(alista[nX][1], tamsx3('CP_PRODUTO') [1])))

aadd(aLinha,{"CP_ITEM",'0'+cvaltochar(nX),Nil})
aadd(aLinha,{"CP_PRODUTO", SB1->B1_COD, Nil})
aadd(aLinha,{"CP_UM", SB1->B1_UM, Nil})
aadd(aLinha,{"CP_QUANT", alista[nX][2], Nil})

If !Empty(SB1->B1_SEGUM)
aadd(aLinha,{"CP_SEGUM", SB1->B1_SEGUM, Nil})
aadd(aLinha,{"CP_QTSEGUM", (alista[nX][2]*SB1->B1_CONV),Nil})
EndIf
aadd(aLinha,{"CP_DATPRF", dDataBase, Nil})
aadd(aLinha,{"CP_LOCAL", SB1->B1_LOCPAD, Nil})
aadd(aLinha,{"CP_OBS", alista[nX][3], Nil})

aAdd(aAuto,aLinha)

Next nX

MSExecAuto({|x,y,z,a| mata105(x,y,z,a)},aCab,aAuto,nOpcAuto,aRateio)

if lMsErroAuto
MostraErro()
EndIf

RESET ENVIRONMENT

Return