Objetivo

Facilitar a integração entre produtos protheus com a plataforma TAE

Descrição

Classe criada especialmente para atender aos produtos do segmento de serviços, mas pode ser utilizada por qualquer produto protheus, com a versão mais atual do programa tectae.prw, disponibilizado na espedição de release do protheus, ou em pacotes de expedição contínua do módulo 28. 

INSTANCIANDO A CLASSE

New

 Local oTAE := TecTAE():New(<baseURL>) 

 Parâmetros

NomeTipoDescriçãoObrigatórioDefault
baseURLcaractareURL base, utilizada na integração
https://totvssign.staging.totvs.app

AUTENTICANDO

defUser

  oTAE:defUser(<cUser>)

Parâmetros

NomeTipoDescriçãoObrigatórioDefault
cUsercaractareDefine o usuário que será fará a autenticação na plataforma TAEX

defPw

  oTAE:defPw(<password>)

Parâmetros

NomeTipoDescriçãoObrigatórioDefault
passwordcaractareDefine senha para autenticação na plataforma TAEX

auth()

  oTAE:auth()

EXEMPLO DE AUTENTICAÇÃO

//Cria uma instância de TECTAE e realiza a autenticação do objeto da integração
Static Function conTAE()
    Local cUser     := SUPERGETMV('MV_USRTAE') 
    Local cPsWrd    := SUPERGETMV('MV_PWTAE')
    Local cBaseUrl  := SUPERGETMV('MV_TAEBASE',,"https://totvssign.staging.totvs.app")
    Local oTAE      := TecTAE():New(cBaseUrl) 
    
//Definição de usuário e senha de autenticação do objeto
    oTAE:defUser(cUser)
    oTAE:defPw(cPsWrd)
    oTAE:auth() 

//Retorno do objeto autenticado
Return oTAE

REALIZANDO UPLOADO DE DOCUMENTOS

uploadFile

  oTAE:uploadFile(<cFileContent>, <cFileName>, <envName>, <response>, <msgErr>, <endPoint>, <type>) 


Parâmetros

NomeTipoDescriçãoObrigatórioDefault
cFileContentbase64Conteúdo do arquivoX
cFileNamecaractereNome do arquivoX
envNamecaractereNome do envelope.X
responsecaractere

Responsta da requisição na plataforma TAE, obtido através de variável passada por referência.



msgErrcaractereRetorno de mensagens de erro, obtido através de variável passada por referência

endPointcaractereEndpoint para upload de arquivos. 
/documents/v1/envelopes/upload
typecaractereTipo do documento. Tipos aceitos: .pdf, .doc, .docx
.pdf

EXEMPLO DE UPLOAD DE ARQUIVO

Static Function uploadFileTAE()
	Local oTAE      := conTAE()
	Local oFile     := Nil
	Local cPathFile := ""
	Local cNomeFile := "Nome do arquivo"
	Local oRequest  := Nil
	Local cMsgErr   := ""
	
	//Criando um arquivo de teste e retornando o caminho para cPathFile
 	cPathFile := genFileTeste(cNomeFile+".PDF")

	//Obtendo o arquivo de teste que será enviado 
	oFile := tecFOPEN(cFile) 
	
	lUpload := oTAE:uploadFile(oFile,cNomeFile+".PDF", "documento teste para integracao com o TAE", @oRequest, @cMsgErr)

Return lUpload

//Realiza leitura de um arquivo
Static Function tecFOPEN(cPath)
    Local cBuffer := ""
    Local cResult := ""
    Local nHandle := 0
    Local nBytes  := 0

	nHandle := FOPEN(cPath) 
	If nHandle > -1
		While (nBytes := FREAD(nHandle, @cBuffer, 524288)) > 0 
			cResult += cBuffer
		EndDo

		FCLOSE(nHandle)
	EndIf
Return cResult

//Gerar documento de teste
Static Function genFileTeste(cNmFile)

    Local cFile             := ""
    Local cPathLocal        := GetSrvProfString("StartPath","") //'\system\'
    Local lAdjustToLegacy   := .T.    
    Local lDisableSetup     := .T.   
    Local lViewPDF          := .T.

    oPrint := FWMSPrinter():New(cNmFile/*cRelNome*/,IMP_PDF,lAdjustToLegacy,cPathLocal,lDisableSetup,,,,,,,lViewPDF)

    cFile := cPathLocal+cNmFile
    File2Printer( cFile, "PDF" )
    oPrint:cPathPDF:= cPathLocal

    oFont20 := TFont():New("Arial",9,20,.T.,.T.,5,.T.,5,.T.,.F.)

    oPrint:StartPage()
    nRow1 := 1

    oPrint:Line(nRow1+100,100,nRow1+0100,1400)
    
    oPrint:Say(nRow1+0080,100,"Arquivo para teste de integração com o TAE ",oFont20 ) 
    nRow1++
    
    oPrint:Preview()

    cFile := cPathLocal+cNmFile 

Return cFile

ASSUNTOS RELACIONADOS