Objeto para Trabalhar Somente com HTML acessando o método ValByName

Boa tarde,

Existe alguma classe que permita trabalhar com #HTML, podendo acessar métodos análogos ao #ValByName da Classe #TWFProcess. A intensão não é executar processos do WF e/ou enviar e-mails, mas sim trabalhar com #HTML estrutura e capturar o HTML modificado com #ValByName.

Olá, Temos a classe TWebEngine para manipular uma página HTML, trocando informações em tempo real entre o SmartClient e o Navegador, segue bauxi documentação com todos os detalhes para utilização.

https://tdn.totvs.com/display/tec/TWebEngine

TWebEngine há análogos ao #ValByName?

Você pode definir variáveis no seu arquivo html da mesma forma como faria para para utilizá-lo com a clase twfProcess, armazenar o conteúdo do html numa variável com o uso da função memoRead() e então fazer uso da função strTran() para atribuir valores as variáveis definidas previamente. Por último e se necessário, pode gerar um novo arquivo html usando a função memoWrite(). Eu uso esse modelo para enviar e-mails a partir de arquivos html modelos para o corpo e anexos.

Bom dia. Veja este exemplo. espero que ajude.

User Function RFINM01( _nSE1Rec , _nTpNot , _cMot )

Local cQuerys := " " Local cArqHtml := "\SYSTEM\CANCFAT_NOTIF.HTM" Local cPath := "\" Local cSubj := "" Local oHTML Local cModelo := "\WORKFLOW\MODELOS\GERAL\CANCFAT_NOTIF.HTM" Local chtml := "

" Local cCCO := '' //copia e-mail oculto Local cStartPath := GetSrvProfString("StartPath","")

DEFAULT _nTpNot := 1 // notificação canc.faturas. DEFAULT _cMot := ""

dbSelectArea("SE1") SE1->(dbGoto( _nSE1Rec ))

cArqHtml := cStartPath + "CANCFAT_NOTIF.HTM"

oHTML := TWFHTML():New(cModelo)

oHTML:ValByName("X_FATURA", SE1->E1_NUM) oHTML:ValByName("X_MOTIVO", _cMot) oHTML:ValByName("X_DTCANC", DTOC(MsDate()) + ' - ' + Transform(Time(),"99:99")) oHTML:ValByName("X_CLIENTE", SE1->E1_CLIENTE +'-'+ SE1->E1_LOJA) oHTML:ValByName("X_NOME", SE1->E1_NOMCLI) oHTML:ValByName("X_EMISSAO", DTOC(SE1->E1_EMISSAO)) oHTML:ValByName("X_VENCTO", DTOC(SE1->E1_VENCREA) ) oHTML:ValByName("X_VALOR", Transform( SE1->E1_VALOR,"@E 999,999,999.99") )

If ValType(oHTML) == "O"

oHTML:SaveFile(cArqHtml) cBody := WFLoadFile(cArqHtml) cBody := MtHTML2Str(cArqHtml) //Transforma em caractere. FErase(cArqHtml)

cHtmlFirt := '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "" target="_blank" rel="nofollow">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' cHtmlFirt +='

' cBody := StrTran(cBody , '' , cHtmlFirt )

cSubject := "[ FATURA NR: "+ Trim( SE1->E1_NUM ) + '-' + Trim(SE1->E1_NOMCLI)+ " ] - CANCELAMENTO DE FATURA " cPara := "" cCC := ""

lErrEml := EnviarMail( /cFrom/ , cPara, cCC, cSubject, , cBody , , /cSigaDpto/,cCCO )

fErase(cArqHtml)

oHTML:Free() oHTML := nil

Endif

Return Nil