Árvore de páginas

ALCMNTPOST - Manipular informações na manutenção do empenho pelo APP Minha Produção

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Parâmetro(s):

NomeTipoDescriçãoDefaultObrigatórioReferência
PARAMIXB[1]Array

Array formatado para ser enviado a rotina automática do programa MATA381 ( Manutenção de Empenhos ).




PARAMIXB[2]InteiroNúmero que identifica a operação que será executada para o empenho.
3 - Inclusão / 4 - Alteração / 5 - Exclusão



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 ALCMNTPOST é executado nas requisições de manutenção do empenho.
Com este ponto de entrada, é possível modificar as informações que estão sendo enviadas para incluir, alterar e excluir um empenho.
Este ponto de entrada é executado antes do ponto de entrada ALCVLDPOST, responsável pela validação dos dados para manutenção do empenho.
Localização:

API PCPAllocations, método POST ALLOCATION - Responsável por enviar os dados à rotina automática de manutenção de empenhos.

Eventos:

Não se aplica.

Programa Fonte:PCPAllocations.PRW

Sintaxe:

ALCVLDPost( ) --> aItems

Retorno:
NomeTipoDescriçãoObrigatório
aItemsArray

Array formatado para ser enviado a rotina automática do programa MATA381 ( Manutenção de Empenhos ).

É possível manipular o conteúdo que foi recebido nesse array, além de adicionar novos campos da tabela SD4.

Mesmo que o array não seja alterado, ele deve ser retornado no ponto de entrada, para que grave corretamente a manutenção do empenho.

Sim
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 durante uma requisição REST.

Exemplo
#INCLUDE "TOTVS.CH"
 
User Function ALCMNTPOST()
    Local aItems    := PARAMIXB[1]
    Local nOperacao := PARAMIXB[2] //3-inclusão;4-alteração;5-exclusão
    Local nPosPrd   := aScan(aItems[1],{|x| AllTrim(x[1]) == "D4_COD"})
    Local nPosObs   := aScan(aItems[1],{|x| AllTrim(x[1]) == "D4_OBS"})

    If nOperacao == 4
        If nPosPrd > 0
            If AllTrim(aItems[1][nPosPrd][2]) == "PRODUTO"
                If nPosObs > 0
                     aItems[1][nPosObs][2] := "ALTERACAO EMPENHO"
                EndIf
            EndIf
        EndIf
    EndIf

Return aItems