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á.