Árvore de páginas

Ponto de Entrada

Descrição:

Este ponto de entrada está localizado na rotina Contr. Ferramentas (OFIOM450) e é executado no momento da movimentação de uma ferramenta. A finalidade deste ponto de entrada é permitir a manipulação / inserção de novos campos no momento de realizar a movimentação de transferência de armazéns na chamada da rotina MATA261 (tabela SD3).

Localização:

Atualizações \ Mov Oficina \ Contr. Ferramentas (OFIOM450)

Eventos:

Function OA450RESIT(cCodProd, nQuant, cOper, cArmLoc)

Local nTamAEstq := 0

Local nPosAEstq

Local nUltPos

Local l261IntWMS := a261IntWMS()


Default cArmLoc := FM_PRODSBZ(SB1->B1_COD,"SB1->B1_LOCPAD")

///////////////////////////////////////////////////

// Posicoes no Vetor de Integracao com o MATA261 //

///////////////////////////////////////////////////

nTamAEstq := 21

If l261IntWMS

nTamAEstq += 1

EndIf

nTamAEstq += 1

If SD3->(FieldPos("D3_IDDCF"))>0 .And. l261IntWMS

nTamAEstq += 1

EndIf

If SD3->(FieldPos("D3_OBSERVA")) <> 0

nTamAEstq += 1

EndIf

///////////////////////////////////////////////////



cDocumento := Criavar("D3_DOC")

cDocumento := IIf(Empty(cDocumento),NextNumero("SD3",2,"D3_DOC",.T.),cDocumento)

cDocumento := A261RetINV(cDocumento)


aItensNew := {}

AADD (aItensNew, { cDocumento, ddatabase })

DBSelectArea("SB1")

DBSetOrder(1)

DBSeek(xFilial("SB1") + cCodProd)


AADD( aItensNew , Array(nTamAEstq) )

nPosAEstq := Len(aItensNew)

// Produto Origem

aItensNew[nPosAEstq,01] := SB1->B1_COD

aItensNew[nPosAEstq,02] := SB1->B1_DESC

aItensNew[nPosAEstq,03] := SB1->B1_UM

aItensNew[nPosAEstq,04] := IIf(cOper == oReqFer:TipoRequisicao(), cArmLoc , cAlmBFer)

aItensNew[nPosAEstq,05] := IIf(Localiza(SB1->B1_COD),FM_PRODSBZ(SB1->B1_COD,"SB5->B5_LOCALI2"),Space(15))

// Produto Destino

aItensNew[nPosAEstq,06] := SB1->B1_COD

aItensNew[nPosAEstq,07] := SB1->B1_DESC

aItensNew[nPosAEstq,08] := SB1->B1_UM

aItensNew[nPosAEstq,09] := IIf(cOper == oReqFer:TipoRequisicao(), cAlmBFer, cArmLoc )

aItensNew[nPosAEstq,10] := IIf(Localiza(SB1->B1_COD),FM_PRODSBZ(SB1->B1_COD,"SB5->B5_LOCALI2"),Space(15))

//

aItensNew[nPosAEstq,11] := ""

aItensNew[nPosAEstq,12] := ""

aItensNew[nPosAEstq,13] := ""

aItensNew[nPosAEstq,14] := criavar('D3_DTVALID')

aItensNew[nPosAEstq,15] := criavar('D3_POTENCI')

aItensNew[nPosAEstq,16] := nQuant

aItensNew[nPosAEstq,17] := criavar("D3_QTSEGUM")

aItensNew[nPosAEstq,18] := criavar("D3_ESTORNO")

aItensNew[nPosAEstq,19] := criavar("D3_NUMSEQ")

aItensNew[nPosAEstq,20] := criavar("D3_LOTECTL")

aItensNew[nPosAEstq,21] := aItensNew[nPosAEstq,14]


nUltPos := 21

If l261IntWMS

aItensNew[nPosAEstq,++nUltPos] := criavar("D3_SERVIC")

EndIf

aItensNew[nPosAEstq,++nUltPos] := criavar("D3_ITEMGRD")

If SD3->(FieldPos("D3_IDDCF"))>0 .And. l261IntWMS

aItensNew[nPosAEstq,++nUltPos] := criavar("D3_IDDCF")

EndIf

If SD3->(FieldPos("D3_OBSERVA")) <> 0

aItensNew[nPosAEstq,++nUltPos] := criavar("D3_OBSERVA")

EndIf


If (ExistBlock("OM450AP"))

aItensNew := ExecBlock("OM450AP", .f., .f., {aItensNew})

EndIf

Programa Fonte:

OFIOM450.PRW

Função:

OA450RESIT()

Parâmetros:
NomeTipo Descrição

aItensNew

Matriz

Campos da SD3 que deverão ser atualizados ou inseridos novos campos pelo ponto de entrada para serem utilizados no ExecAuto da rotina de transferência de peças entre armazéns (MATA261).

Retorno:
NomeTipoDescrição

aItensNew

Matriz

Campos da SD3 atualizados pelo ponto de entrada para serem utilizados no ExecAuto da rotina de transferência de peças entre armazéns (MATA261).

Exemplo:

Include totvs.ch

User Function OM450AP()


Local aItensAlt := ParamIxb[1]


MsgInfo("Ponto de Entrada OM450AP executado com sucesso!")


Return aItensAlt