Árvore de páginas

01. DADOS GERAIS

Produto:

TOTVS Prestadores de Serviços Terceirização

Linha de Produto:

Linha Protheus

Segmento:

Serviços

Módulo:Prestadores de Serviços
Função:TECA470 - Requisição de Ordens de Serviço
País:Brasil
Ticket:11635424
Requisito/Story/Issue (informe o requisito relacionado) :DSERSGS-12211


02. SITUAÇÃO/REQUISITO

Criar um ponto de entrada na rotina TECA470 que possibilite incluir campos customizados na tabela SCP

03. SOLUÇÃO

A função abaixo deve ser copiada e colada em um arquivo ".PRW" com nome "At470Cpo" e compilada no ambiente.

O Ponto de entrada recebe os arrays de Cabeçalho(aCabec), itens(aItens) e o terceiro parâmetro é o numero da operação(nOpc), possibilitando manipular e incluir dados da forma que desejar.

A estrutura para adicionar campos na SCP é genérica, para cabeçalho: Aadd(aCabec, {"CP_GERENC", cGerenc , Nil} ) onde o primeiro item do array é o campo da SCP "CP_GERENC", depois temos a variável com o conteúdo do capo desejado cGerenc e o ultimo item deve ser sempre Nil, já para Itens, devemos somente alterar o array que iremos adicionar, onde seria aCabec agora passa a ser aItens[1]. Ex: Aadd(aItens[1], {"CP_EMAIL", cEmail , Nil} ) e alterar os outros campos consecutivamente. 

O retorno do ponto de entrada deve ser um array contendo o aCabec e o aItens

Importante

Recomendamos que um desenvolvedor ADVPL manipule e compile a função abaixo para garantir o funcionamento do requisito.

#INCLUDE 'protheus.ch'
#INCLUDE 'parmtype.ch'
#INCLUDE "FWMVCDEF.CH"

User Function At470Cpo()
Local aCabec := PARAMIXB[1] //Recebe o primeiro parâmetro "Cabeçalho" ou Nil
Local aItens := PARAMIXB[2] //Recebe o segundo parâmetro "Itens" ou Nil
Local nOpc   := PARAMIXB[3] //Recebe o terceiro parâmetro "Ação" 3- Inclusão, 4- Alteração

/*/ ↓↓ Variaveis a serem utilizadas ↓↓ /*/
Local cGerenc := "Teste"
Local cTipomov := "Requisição"
Local cEmail := "[email protected]"

If nOpc == 3
	// Adicionando campos no array aCabec
	Aadd(aCabec, {"CP_GERENC", cGerenc , Nil} )

	// Adicionando campos no array aItens
    Aadd(aItens[1], {"CP_OBS", "Teste PE At470Cpo" , Nil} )
	Aadd(aItens[1], {"CP_TIPOMOV", cTipomov , Nil} )
	Aadd(aItens[1], {"CP_EMAIL", cEmail , Nil} )

    // Verificar se existe campo no array aItens
    nPos := aScan( aItens[1], {|x| x[1] == "CP_CC" })
    If nPos > 0
        aItens[1,nPos,2] := "999999999"
    Else
        Aadd(aItens[1], {"CP_CC", "999999999" , Nil} )
    EndIf
EndIf

Return {aCabec, aItens}

04. DEMAIS INFORMAÇÕES

Não há.

05. ASSUNTOS RELACIONADOS

  • Não há.