Desenvolvendo Pontos de entrada MT120VSC e MT120ISC para adicionar novos campos no Pedido de Compras
Recentemente surgiu a oportunidade de montar um PE no Pedido de Compras para incluir campos da Solicitação de Compras.
O problema pode ser resolvido somente com o PE MT120ISC que manipula o aCols do Mata120(Pedido de Compras), mas usando o Ponto de Entrada MT120VSC que manipula os campos do Array no “Outras Ações->Solicit”(F4) deixa a solução mais elegante.
No exemplo em questão foi carregado dos dados do campo C1_PROGRAM para o campo customizado C7_YPROGRA


Direto ao que interessa, o código!
PE MT120VSC
/*/{Protheus.doc} User Function MT120VSC
(Este Ponto de Entrada tem por objetivo manipular os campos do array na rotina de seleção da Solicitação de Compras ou Contrato de Parceria - F4 no Pedido de Compras.)
@type Function
@author Leandro Lemos
@since 22/06/2022
@version P12
@param param_name, param_type, param_descr
@return return_var, return_type, return_description
@example
(examples)
@see (
https://tdn.totvs.com/pages/releaseview.action?pageId=6085488
https://centraldeatendimento.totvs.com/hc/pt-br/articles/360020181932-Cross-Segmento-TOTVS-Backoffice-Linha-Protheus-ADVPL-Ponto-de-entrada-MT120VSC-
)
/*/
User Function MT120VSC()
ExpA1 := ParamIxb[1]
ExpN2 := ParamIxb[2]
//Customização do usuário para manipulação dos campos do array na seleção da Solicitação de Compras
//ou Contrato de Parceria - F4 no Pedido de Compras.
aAdd(ExpA1,'C1_PROGRAM')
Return ExpA1
PE MT120ISC
/*/{Protheus.doc} User Function MT120ISC
(MT120ISC - Manipula o acols do pedido de compras)
@type Function
@author Leandro Lemos
@since 23/06/2022
@version P12
@param param_name, param_type, param_descr
@return return_var, return_type, return_description
@example
(examples)
@see (https://tdn.totvs.com/display/PROT/MT120ISC+-++Manipula+o+acols+do+pedido+de+compras)
/*/
User Function MT120ISC()
//Pega posicção do Campo customizado C7_YPROGRA
Local nPosProgram := aScan(aHeader,{|x| Trim(x[2])=="C7_YPROGRA"})
//Grava informação do C1_PROGRAMA no C7_YPROGRA
//Variavel 'n' é do MATA120
ACOLS[n,nPosProgram] := SC1->C1_PROGRAMA
Return .T.
É isso ai pessoal, qualquer duvida cometem, para mais fontes acessem o git