Árvore de páginas

PA145GER - Customizações na Geração de Documentos do MRP

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Parâmetro(s):

NomeTipoDescriçãoDefaultObrigatórioReferência
PARAMIXB[1]CaracterTicket de processamento do MRP.


Idiomas:

Todos

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Descrição:
O ponto de entrada PA145GER é executado ao finalizar a geração de todos os documentos do MRP (PCPA712, PCPA144 ou Resultados MRP).
Localização:

Classe ProcessaDocumentos, método processar() - Responsável por realizar a geração dos documentos

Eventos:

Ao finalizar a geração dos documentos é aberta uma nova thread exclusiva para a execução do ponto de entrada.

Programa Fonte:PCPA145.PRW

Sintaxe:

PA145GER( [ cTicket ] ) --> Nil

Retorno:

Nulo. Não é esperado retorno pois a execução é realizada em um processo separado (outra thread), em background.

Observações:

Não é permitida a utilização de qualquer componente de interface gráfica nesse ponto de entrada, visto que a função será executada em background.

A rotina principal não aguardará o término da execução do ponto de entrada.

Exemplo
#INCLUDE "TOTVS.CH"

User Function PA145GER()
    Local cAliasQry := GetNextAlias()
	Local cOrigem   := "PCPA144"
    Local cTicket   := PARAMIXB[1]

	//
	//SC7 - Pedidos de Compra/Autorizações de Entrega
	//
	BeginSql Alias cAliasQry
	  SELECT C7_FILIAL, C7_NUM, C7_ITEM
		FROM %Table:SC7%
	   WHERE C7_SEQMRP = %Exp:cTicket%
		 AND %notDel%
	EndSql

	While (cAliasQry)->(!Eof())
		//Percorre todos os registros gerados no processamento
		Conout("SC7 - Documento: " + (cAliasQry)->C7_FILIAL + (cAliasQry)->C7_NUM + (cAliasQry)->C7_ITEM)
		(cAliasQry)->(dbSkip())
	End
	(cAliasQry)->(dbCloseArea())

	//
	//SC1 - Solicitações de Compra
	//
	BeginSql Alias cAliasQry
	  SELECT C1_FILIAL, C1_NUM, C1_ITEM
		FROM %Table:SC1%
	   WHERE C1_SEQMRP = %Exp:cTicket%
		 AND C1_ORIGEM = %Exp:cOrigem%
		 AND %notDel%
	EndSql

	While (cAliasQry)->(!Eof())
		//Percorre todos os registros gerados no processamento
		Conout("SC1 - Documento: " + (cAliasQry)->C1_FILIAL + (cAliasQry)->C1_NUM + (cAliasQry)->C1_ITEM)
		(cAliasQry)->(dbSkip())
	End
	(cAliasQry)->(dbCloseArea())

	//
	//SC2 - Ordens de Produção
	//
	BeginSql Alias cAliasQry
	  SELECT C2_FILIAL, C2_NUM, C2_ITEM, C2_SEQUEN
		FROM %Table:SC2%
	   WHERE C2_SEQMRP = %Exp:cTicket%
		 AND C2_BATROT = %Exp:cOrigem%
		 AND %notDel%
	EndSql

	While (cAliasQry)->(!Eof())
		//Percorre todos os registros gerados no processamento
		Conout("SC2 - Documento: " + (cAliasQry)->C2_FILIAL + (cAliasQry)->C2_NUM + (cAliasQry)->C2_ITEM + (cAliasQry)->C2_SEQUEN)
		(cAliasQry)->(dbSkip())
	End
	(cAliasQry)->(dbCloseArea())

	//
	//SD4 - Empenhos
	//
	BeginSql Alias cAliasQry
	  SELECT SD4.D4_FILIAL, SD4.D4_OP, SD4.D4_COD
		FROM %Table:SD4% SD4
	   INNER JOIN %Table:SC2% SC2
		  ON SD4.D4_FILIAL = SC2.C2_FILIAL
		 AND SD4.D4_OP     = CASE SC2.C2_OP WHEN ' ' THEN
		                        SC2.C2_NUM + SC2.C2_ITEM + SC2.C2_SEQUEN + SC2.C2_ITEMGRD //Operador de concatenação de string do banco pode ser diferente
							 ELSE
							    SC2.C2_OP
							 END
	   WHERE SD4.%notDel%
	     AND SC2.%notDel%
	     AND SC2.C2_SEQMRP = %Exp:cTicket%
	EndSql

	While (cAliasQry)->(!Eof())
		//Percorre todos os registros gerados no processamento
		Conout("SD4 - Documento: " + (cAliasQry)->D4_FILIAL + (cAliasQry)->D4_OP + (cAliasQry)->D4_COD)
		(cAliasQry)->(dbSkip())
	End
	(cAliasQry)->(dbCloseArea())

Return