Árvore de páginas


CONTEÚDO

  1. Visão Geral
  2. Melhoria
  3. Exemplo de utilização


01. VISÃO GERAL

O módulo SIGATRM utiliza a chamada da rotina automática (MATA110) para geração da Solicitação de Compra de Treinamentos, onde passamos para a rotina apenas os campos obrigatórios para a geração da Solicitação.

Porém caso o usuário, customize outros campos da tabela de Solicitação de Compras (SC1) deixando como obrigatório, ao chamar a rotina automática (MATA110), como não passamos estes novos campos nos parâmetros, a rotina irá retornar uma inconsistência e não realizará a gravação do registro, devido estar faltando uma informação obrigatória.

Por isso, criamos o Ponto de Entrada TR130SOL para que o usuário possa customizar os campos que desejar e informá-los através da rotina automática para que não ocorra nenhuma inconsistência na gravação dos mesmos.


02. MELHORIA

Foi criado novo ponto de entrada TR130SOL().

Na rotina padrão, o sistema já alimenta os arrays aCabec e aItens (abaixo) com os campos obrigatórios que a rotina automática exige: 


Cabeçalho

Aadd(aCabec, {“C1_EMISSAO”, dDatabase, Nil})

Aadd(aCabec, {“C1_SOLICIT”, RA8->RA8_NOME, Nil})


Itens

aadd(aLinha,{"C1_ITEM"                                              ,Nil})

aadd(aLinha,{"C1_PRODUTO"  ,cProd                         ,Nil})

aadd(aLinha,{"C1_QUANT"      ,RA8->RA8_NFUNC    ,Nil})

aadd(aLinha,{"C1_DESCRI"      ,cDProd                       ,Nil})

aadd(aLinha,{"C1_ORIGEM"     ,"TRM"                       ,Nil})

aadd(aItens, aLinha)


Com a utilização do Ponto de Entrada, o usuário poderá adicionar novos campos e seus conteúdos e passar para a rotina automática.


Parâmetros do Ponto de Entrada:

O Ponto de entrada recebe 3 parâmetros para serem utilizados:

PARAMIXB[1] →  Código do Planejamento

PARAMIXB[2] → Array com os campos de Cabeçalho

PARAMIXB[3] → Array com os campos de Itens

03. EXEMPLO DE UTILIZAÇÃO

 

Exemplo de utilização do Ponto de Entrada:

#include "Protheus.ch"

User Function TR130SOL()

Local cCod      := PARAMIXB[1]

Local aCabec   := PARAMIXB[2]

Local aItens    := PARAMIXB[3]

Local cCC       := ""

Local aSaveArea := GetArea()

dbSelectArea("RA8")

dbSetOrder(1)

If dbSeek(xFilial("RA8")+cCod)

    cCC := RA8->RA8_CC

EndIf

aadd(aItens[1], {"C1_CC", cCC, Nil})

Mata110(aCabec, aItens, 3)

RestArea(aSaveArea)

Return