Cria uma instância de um wizard de configuração de integração com a Carol/Techfin. Permite adicionar requisitos, passos, validações e processamentos. O Wizard apresenta uma tela de boas vindas com pré-requisitos para execução, uma tela de login que só aceita usuários administradores, permite adicionar passos intermediários, uma tela de configuração da integração e uma tela de processamento. O Wizard valida as informações de conexão com a Carol e a Plataforma.

#include "protheus.ch"

/*/{Protheus.doc} WizardTF
Wizard para ativação da integração com a TechFin

/*/
Main Function WizardTF()

    MsApp():New( "SIGAFIN" )
    oApp:cInternet  := Nil
    __cInterNet := NIL
    oApp:bMainInit  := { || ( oApp:lFlat := .F. , TechFinWiz() , Final( "Encerramento Normal" , "" ) ) }//"Encerramento Normal"
    oApp:CreateEnv()
    OpenSM0()

    PtSetTheme( "TEMAP10" )
    SetFunName( "UPDDISTR" )
    oApp:lMessageBar := .T.

    oApp:Activate()

Return

/*/{Protheus.doc} FintechWiz
Construção da Tela de Wizard

@return Nil
/*/
Static Function TechFinWiz()
    Local oWizard       As Object
    Local cDescription  As Character
    Local bConstruction As CodeBlock
    Local bNextAction   As CodeBlock
    Local bPrevWhen     As CodeBlock
    Local bCancelWhen   As CodeBlock
    Local bProcess      As CodeBlock
    Local aParam        As Array
    Local cReqDes       As Character
    Local cReqCont      As Character
    Local bReqVld       As CodeBlock
    Local cReqMsg       As Character

    oWizard := FWCarolWizard():New()

    cDescription := "Novo Passo"
    bConstruction := { | oPanel | aParam := StepPage( oPanel ) }
    bNextAction   := { || VldStep( aParam ) }
    bPrevWhen     := { || .F. }
    bCancelWhen   := { || .T. }
    // bProcess      := { | cGrpEmp, cMsg | FINTFWizPr( cGrpEmp, cMsg, aFinParam ) }
    bProcess      := { | cGrpEmp, cMsg | ProcAnt( cGrpEmp, @cMsg, aParam ) }

    cReqDes  := "Release do RPO
    cReqCont := GetRpoRelease()
    bReqVld  := { || GetRpoRelease() >= "12.1.023" }
    cReqMsg  := "Versão de RPO deve ser no mínimo 12.1.23"

    oWizard:SetWelcomeMessage( "Bem vindo ao instalador do Jandir!" )
    oWizard:AddRequirement( cReqDes, cReqCont, bReqVld, cReqMsg )
    oWizard:AddStep( cDescription, bConstruction, bNextAction, bPrevWhen, bCancelWhen )
    oWizard:AddProcess( bProcess )

    oWizard:UsePlatformAccess(.F.) //Default .T.
    oWizard:Activate()

Return

Static Function ProcAnt( cGrpEmp, cMsg, aParam )

    cMsg := "Falha na gravação da regra X"

Return .T.

/*/{Protheus.doc} IntegrationPage
Monta o layout para a página de informações da Integração

@param oPanel, object, painel onde será montada a tela
/*/
Static Function StepPage( oPanel As Object )
    Local aParam := Array( 5 )
    Local oConfig      := FWTFConfig()

    //TODO Os valores serão removidos no futuros
    aParam[ 1 ] := Space( 32 )
    aParam[ 2 ] := Space( 32 )
    aParam[ 3 ] := Space( 36 )
    aParam[ 4 ] := Space( 32 )
    aParam[ 5 ] := Space( 32 )

    @ 010, 045 GROUP TO 55, 360 PROMPT "Dados 1" of oPanel PIXEL

    @ 025, 055 SAY "Dados" SIZE 200,20 OF oPanel PIXEL
    @ 032, 055 MSGET aParam[4] SIZE 110, 09 OF oPanel PIXEL

    @ 025, 175 SAY "Dados " SIZE 200,20 OF oPanel PIXEL
    @ 032, 175 MSGET aParam[5] SIZE 110, 09 OF oPanel PIXEL

    @ 066, 45 GROUP TO 130, 360 PROMPT "Dados 2" of oPanel PIXEL

    @ 075, 055 SAY "Dados" SIZE 200,20 OF oPanel PIXEL
    @ 082, 055 MSGET aParam[1] SIZE 110, 09 OF oPanel PIXEL

    @ 075, 175 SAY "Dados" SIZE 200,20 OF oPanel PIXEL
    @ 082, 175 MSGET aParam[2] SIZE 110, 09  OF oPanel PIXEL

    @ 102, 055 SAY "Dados" SIZE 200,20 OF oPanel PIXEL
    @ 109, 055 MSGET aParam[3] SIZE 110, 09 OF oPanel PIXEL

Return aParam

Static Function VldStep( aParam )

Return .T.


New

Sintaxe
FWCarolWizard():New()-> oSelf


Descrição
Construtor da Classe

Exemplo

oCarol := FWCarolWizard():New()


Activate()

Ativa o Wizard

FWCarolWizard():Activate()-> Nil


AddStep()

Adiciona um passo no Wizard.

Sintaxe

FWCarolWizard():AddStep()-> Nil


NomeTipoDescriçãoDefaultObrigatórioReferência
cDescriptionCaracterDescrição do passo
X
bConstructionCode-blockBloco para construção da Tela
X
bNextActionCode-blockBloco que habilita o botão próximo{ || .T. }

bPrevWhenCode-blockBloco que Habilita o botão voltar{ || .T. }

bCancelWhenCode-blockBloco que Habilita o botão Cancelar{ || .T. }


AddRequirement()

Adiciona um requisito para a exeucação do Wizard. O ambiente não está montado nesse momento.

FWCarolWizard():AddRequirement()-> lSuccess


NomeTipoDescriçãoDefaultObrigatórioReferência
cDescriptionCaracterDescrição do requisito""X
cContentCaracterConteúdo a ser exibido""X
bValidCode-blockValidação a ser executada{ || .T. }X
cMessageCaracterMensagem em caso de não atender""X


AddProcess()

Adiciona um processamento. É executado uma vez para cada empresa selecionada. 

Sintaxe

FWCarolWizard():AddProcess()-> lSuccess


NomeTipoDescriçãoDefaultObrigatórioReferência
bProcessCode-blockBloco de código que será executado.  Ao ser executado, passa a empresa sendo processada e uma variável caracter para retornar uma mensagem de erro ( Eval( bProcess, cEmpAnt, @cMsgReturn ).{ | | .T. } X


SetWelcomeMessage()

Edita a Mensagem de Boas Vindas do Wizard. 

Sintaxe

FWCarolWizard():SetWelcomeMessage()-> Nil


NomeTipoDescriçãoDefaultObrigatórioReferência
cWelcomeCaracterMensagem de boas vindas do WizardNilX


UsePlatformAccess()

Indica se usa ou não os acessos da plataforma.

NomeTipoDescriçãoDefaultObrigatórioReferência
lPlatformAccessCaracterSe Estiver habilitado as informações de ConnectorId, ApiToken e TenantID são recuperadas da plataforma e não são apresentadas para edição..T.X