Erro em tabela temporária: Alias does not exist: TMPB1 on RECLOCK(APLIB060.PRW)

Tenho um fonte onde cria uma tabela temporária, porém após a criação da tabela, ele consta o seguinte erro: Alias does not exist: TMPB1 on RECLOCK(APLIB060.PRW) 13/12/2022 14:23:45 line : 447

Já reescrevi essa criação de tabela temporária diversas vezes, porém continua dando esse erro. Alguém tem ideia do que pode ser? Segue abaixo o trecho do código.


Static Function GerTemp()

    Local oArqTrab as object

    aStruct   := {}

    //Cria estrutura e tabela tmp com os campos necessarios
    Aadd(aStruct, {"_ID"            ,"C" , 15, 0})
    Aadd(aStruct, {"_FILIAL"        ,"C" , 06, 0})
    Aadd(aStruct, {"_DATA"          ,"D" , 08, 0})
    Aadd(aStruct, {"_CODPROD"       ,"C" , 30, 0})
    Aadd(aStruct, {"_DESC"          ,"C" , 60, 0})
    Aadd(aStruct, {"_MARCA"         ,"C" , 30, 0})
    Aadd(aStruct, {"_FORNECE"       ,"C" , 06, 0})
    Aadd(aStruct, {"_LOJA"          ,"C" , 04, 0})
    Aadd(aStruct, {"_CONDPGT"       ,"C" , 03, 0})
    Aadd(aStruct, {"_CONTACTB"      ,"C" , 30, 0})
    Aadd(aStruct, {"_QTD"           ,"N" , 12, 2})
    Aadd(aStruct, {"_PRECO"         ,"N" , 12, 2})


    oArqTrab := FWTemporaryTable():New("TMPB1", aStruct)
    oArqTrab:Create()
    oArqTab := oArqTrab:GetTableNameForTCFunctions()
    oArqTrab:Delete()

return

Alguém tem uma ideia do que possa ser? Desde já agradeço.

Olá,

Você está sobrescrevendo o seu objeto da FWTemporaryTable com o retorno do método GetTableNameForTCFunctions:

    oArqTrab := FWTemporaryTable():New("TMPB1", aStruct)
    oArqTrab:Create()
    oArqTab := oArqTrab:GetTableNameForTCFunctions()
    oArqTrab:Delete()

Você deve utilizar uma outra variável caso deseje armazenar o retorno do método, como:

    oArqTrab := FWTemporaryTable():New("TMPB1", aStruct)
    oArqTrab:Create()
    cTCTblName := oArqTrab:GetTableNameForTCFunctions()
    oArqTrab:Delete()

Documentação: FWTemporaryTable - Frameworksp - TDN