A função aScan() é usada para procurar um valor específico em um array e retorna o índice do elemento correspondente ou zero se não for encontrado. Aqui está um exemplo simples de como usar a função aScan() em ADVPL:

User Function MT120FIM()
Local aArea      := GetArea()
Local aAreaC7    := SC7->(GetArea())
Local nOpcao     := PARAMIXB[1]
Local nOpcA      := PARAMIXB[3]
Local nPosItem   := aScan(aHeader,{|x| AllTrim(x[2]) == "C7_ITEM"})
Local nPosQtde   := aScan(aHeader,{|x| AllTrim(x[2]) == "C7_QUANT"})
Local nPosVlr    := aScan(aHeader,{|x| AllTrim(x[2]) == "C7_PRECO"})
Local nPosIPI    := aScan(aHeader,{|x| AllTrim(x[2]) == "C7_VALIPI"})

//Coloque aqui o que deseja fazer
    
RestArea(aAreaC7)
RestArea(aArea)
Return

Neste exemplo, recebemos um array "aHeader" com campos do dicionário de dados da tabela SC7. Em seguida, usamos a função aScan() para procurar os valores dos nomes dos campos e armazenar o índice do elemento correspondente nas variáveis "nPos...".

Se o valor não for encontrado, aScan() retorna zero e exibe uma mensagem de erro. Se o valor for encontrado, aScan() retorna o índice do elemento correspondente e exibe uma mensagem informando o índice encontrado.