Manipulando dados da SX5 com as funções FWGetSX5 e FWPutSX5 – Maratona AdvPL e TL++ 221

Nesse vídeo demonstraremos a utilização das funções FWGetSX5 e FWPutSX5, sendo que a primeira serve para buscar dados da tabela genérica e a segunda serve para atualizar.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "Totvs.ch"

/*/{Protheus.doc} User Function zExe221
Efetua a busca ou a criação / atualização de conteúdos de uma tabela genérica (SX5)
@type Function
@author Atilio
@since 20/02/2023
@see https://tdn.totvs.com/display/public/framework/FWGetSX5 e https://tdn.totvs.com/pages/releaseview.action?pageId=286016719
@obs 

    Função FWGetSX5
    Parâmetros
        + cTable        , Caractere   , Código da tabela genérica (X5_TABELA)
        + cKey          , Caractere   , Código da chave de pesquisa X5_CHAVE
        + cIdiom        , Caractere   , Idioma de pesquisa sendo possível: pt-br; pt-pt; en; es e ru 
    Retorno
        + xRetorno      , Array       , Array com as posições [1] Filial ; [2] Tabela ; [3] Chave ; [4] Descrição

    Função FWPutSX5
    Parâmetros
        + cFlavour      , Caractere   , Código do Flavour
        + cTable        , Caractere   , Código da tabela genérica (X5_TABELA)
        + cChave        , Caractere   , Código da chave (X5_CHAVE)
        + cTextoPor     , Caractere   , Texto com conteúdo em português (X5_DESCRI)
        + cTextoEng     , Caractere   , Texto com conteúdo em inglês (X5_DESCENT)
        + cTextoEsp     , Caractere   , Texto com conteúdo em espanhol (X5_DESCSPA)
        + cTextoAlt     , Caractere   , Texto do idioma alternativo
    Retorno
        + Retorna .T. se conseguiu criar / alterar ou .F. se não

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe221()
    Local aArea     := FWGetArea()
    Local aEstados
    Local aSaoPaulo
    Local cTabela   := ""
    Local cChave    := ""
    Local cConteudo := ""

    //Busca a informação de todos os estados
    aEstados := FWGetSX5("12")
    FWAlertInfo("Foi encontrado " + cValToChar(Len(aEstados)) + " estados", "Teste 1 FWGetSX5")

    //Busca somente de 1 estado
    aSaoPaulo := FWGetSX5("12", "SP")

    //Se houver dados
    If Len(aSaoPaulo) > 0
        FWAlertInfo("A descrição do estado é '" + aSaoPaulo[1][4] + "'", "Teste 2 FWGetSX5")
    EndIf

    //Faz a gravação de um conteúdo existente na SX5
    cTabela   := "01"
    cChave    := "B"
    cConteudo := StrTran(Time(), ":", "")
    FwPutSX5(, cTabela, cChave, cConteudo, cConteudo, cConteudo)

    //Cria um novo registro na SX5 caso não exista
    cTabela   := "01"
    cChave    := "DAN"
    cConteudo := "000000001"
    FwPutSX5(, cTabela, cChave, cConteudo, cConteudo, cConteudo)

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação