Ponto de Entrada
Descrição: | É utilizado para verificar se a mensagem de apontamento de perda (Recusa) deverá ou não ser processada. É executada antes da chamada do ExecAuto da rotina MATA685. Quando existir, no array PARAMIXB a informação IDESTORNO, identifica que a mensagem recebida é referente à um estorno de perda. Para recuperar os valores da SBC no array PARAMIXB, utilizar a lógica existente no exemplo, para realizar o aScan retornando a posição onde o campo está no PARAMIXB. |
Localização: | Function MATI685 -> Adapter de apontamento de perda. |
Programa Fonte: | MATI685 |
Retorno: | Nome | Tipo | Descrição | Obrigatório | aRet | Array | Array contendo um identificador se a mensagem deverá ou não ser processada, e um texto que descreve o resultado do processamento. Exemplo: aRet[1] := .T. aRet[2] := "Deverá executar a importação." OU: aRet[1] := .F. aRet[2] := "Texto indicando que a importação não será processada." | Sim |
|
Exemplo:
#Include 'Protheus.ch'
User Function MATI685EXC()
Local aRet := {}
Local aCabec := PARAMIXB[1]
Local aDetalhe := PARAMIXB[2]
Local nEstorno := aScan(aCabec,{|aX| AllTrim(aX[1]) == "IDESTORNO"})
Local nPosProd := aScan(aDetalhe,{|aX| AllTrim(aX[1]) == "BC_PRODUTO"})
Local nPosQtd := aScan(aDetalhe,{|aX| AllTrim(aX[1]) == "BC_QUANT"})
Local nPosMot := aScan(aDetalhe,{|aX| AllTrim(aX[1]) == "BC_MOTIVO"})
If nPosMot > 0
If aDetalhe[nPosMot,2] == "15" /*Recusa as perdas do motivo 15*/
aRet := {.F.,"Não integrar apontamentos do motivo 15."}
Else
aRet := {.T.,""}
EndIf
EndIf
Return aRet