Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
titleExemplo
#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( "BemMinha vindomensagem aode instaladorboas dovindas Jandir!customizada" )
    oWizard:AddRequirement( cReqDes, cReqCont, bReqVld, cReqMsg )
    oWizard:AddStep( cDescription + "1", bConstruction, bNextAction, bPrevWhen, bCancelWhen )
    oWizard:AddProcessAddStep( bProcesscDescription )

    oWizard:UsePlatformAccess(.F.) //Default .T.+ "2", bConstruction, bNextAction, bPrevWhen, bCancelWhen )
    oWizard:Activate()

Return

Static Function ProcAnt( cGrpEmp, cMsg, aParam )

AddStep( cDescription + "3", bConstruction, bNextAction, bPrevWhen, bCancelWhen )
    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 2oWizard:AddStep( cDescription + "4", bConstruction, bNextAction, bPrevWhen, bCancelWhen )
    oWizard:AddProcess( bProcess )

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

Return

/*/{Protheus.doc} ProcAnt
Processamento de regra de negócio
@type function
@author izac.ciszevski
@param cGrpEmp, character, grupo de empresa logado
@param cMsg, character, mensagem de erro de retorno
@param aParam, array, parâmetros para da etapa de configuração
@return logical, sucesso ou falha
/*/
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  As Array
    Local oConfig As Object

    oConfig      := FWTFConfig()
    aParam := Array( 5 )
    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, 380 PROMPT "Informações" of oPanel PIXEL

    @ 075025, 055 SAY "Dados" SIZE 200, 20 OF oPanel PIXEL
    @ 082032, 055 MSGET aParam[1 4 ] SIZE 110, 09 OF oPanel PIXEL

    @ 075025, 175 SAY "Dados" SIZE 200, 20 OF oPanel PIXEL
    @ 082032, 175 MSGET aParam[2 5 ] SIZE 110, 09  OF oPanel PIXEL

    @ 102066, 05545 GROUP SAY "TO 130, 380 PROMPT "Informações" of oPanel PIXEL

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

Return  aParam

Static Function VldStep(@ aParam )

Return .T.

New

Sintaxe
FWCarolWizard():New()-> oSelf

...

oCarol := FWCarolWizard():New()

...

Ativa o Wizard

FWCarolWizard():Activate()-> Nil

...

Adiciona um passo no Wizard.

Sintaxe

FWCarolWizard():AddStep()-> Nil

...

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

/*/{Protheus.doc} VldStep
Validação da etapa de negócio
@type function
@author izac.ciszevski
@param aParam, array, informações preenchidas
@return logical, sucesso ou falha na validação
/*/
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. ATENÇÃO: Recomendamos adicionar até 3 passos extras no Wizard. Apesar de ser possível, o layout ficará desconfigurado.

Sintaxe

FWCarolWizard():AddStep()-> Nil


...

AddRequirement()

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

FWCarolWizard():AddRequirement()-> lSuccess

X
NomeTipoDescriçãoDefaultObrigatórioReferência
cDescriptionCaracterDescrição do requisito""passo
X
cContentbConstructionCaracterConteúdo a ser exibidoCode-blockBloco para construção da Tela""
X
bValidbNextActionCode-blockValidação a ser executadaBloco que habilita o botão próximo{ || .T. }

bPrevWhencMessageCaracterMensagem em caso de não atender""X

...

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

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


AddRequirement()

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

FWCarolWizard():AddRequirement

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

Sintaxe

FWCarolWizard():AddProcess()-> lSuccess


Bloco 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 ). 
NomeTipoDescriçãoDefaultObrigatórioReferênciabProcessCode-block
cDescriptionCaracterDescrição do requisito""X
cContentCaracterConteúdo a ser exibido""X
bValidCode-blockValidação a ser executada{ || .T. }X

SetWelcomeMessage()


cMessageCaracterMensagem em caso de não atender""X


AddProcess()

Adiciona um processamento. É executado uma vez para cada empresa selecionadaEdita a Mensagem de Boas Vindas do Wizard

Sintaxe

FWCarolWizard():SetWelcomeMessageAddProcess()-> NillSuccess


NomeTipoDescriçãoDefaultObrigatórioReferência
cWelcomebProcessCaracterCode-blockMensagem de boas vindas do WizardNilX

...

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

...

Bloco 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. Caso não utilize o método, o padrão da classe é usar 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.
X

SetTrialMode()

Informações

A partir de LIB SmartLink v2.1.0

Indica se usa ou não o modo Trial/Testes. Caso não utilize o método, o padrão da classe é usar o modo de produção.

NomeTipoDescriçãoDefaultObrigatórioReferência
lTrialModeLógico

Se Estiver habilitado altera o comportamento do Wizard da seguinte forma:

  • Não cria o job de envio de dados para a Carol
  • Permite que outros usuários além do admin utilizem o Wizard
  • Não cria as colunas de timestamp no banco
  • Não exige acesso exclusivo ao sistema.
  • Habilita botão "Solicitar Acesso" na etapa de Credenciais. Mais informações sobre a funcionalidade Solicitar Acesso.

X

SetExclusiveCompany()

Informações

A partir da LIB SmartLink v2.4.0

Indica se ao realizar a utilização do wizard será verificado se a empresa utilizada pode ser aberta em modo exclusivo.

NomeTipoDescriçãoDefaultObrigatórioReferência

lExclusiveCompany

Lógico

Define se a abertura do wizard irá verificar se a empresa utilizada se encontra exclusiva

.T.X


GetSelectedGroups()

Informações

A partir da LIB SmartLink v2.4.1

Recupera os grupos de empresas selecionados pelo usuário no wizard.

Sintaxe

FWCarolWizard():GetSelectedGroups()-> Array

SetCountries()

Informações

A partir da LIB SmartLink v2.4.9

Indica os países que podem utilizar o wizard.

NomeTipoDescriçãoDefaultObrigatórioReferência

aCountries

Array

Países que possuem permissão para utilizar o wizard.

BRAX
Informações

Os valores passados obedecem o parâmetro MV_PAISLOC.

Caso queira que todos os países sejam permitidos enviar o valor 'ALL' no array. (Vide exemplo de uso)

Se nenhum país for indicado somente o país BRA (Brasil) será permitido.


SetERPCredentialsMode()

Informações

A partir da LIB SmartLink v2.5.3

Permite habilitar a solicitações de credenciais a partir do provisionamento do tenant em uso.

NomeTipoDescriçãoDefaultObrigatórioReferência

lErpCredentialsMode

Lógico

Indica se habilita a opções de solicitação de credenciais (provisionamento).

.F.X
Informações

A opção é disponibilizada no lugar do botão que solicita as credenciais via email na etapa de solicitação das credenciais do wizard.

A solicitação das credenciais é realizada a partir dos dados do license em uso, sendo necessário que o mesmo seja válido (dados válidos na plataforma) para o provisionamento ser realizado.

O provisionamento é solicitado e alguns minutos são necessários para conclusão, a opção realiza a solicitação e realiza algumas tentativas para verificar se as credenciais estão prontas, caso necessário é solicitado nova tentativa para verificar se as informações já estão disponíveis.

Assim que o provisionamento é concluído as credenciais são atualizadas automaticamente nos campos referentes no próprio wizard.

É necessário que o trialMode (SetTrialMode) esteja em uso para conseguir habilitar essa opção.

Exemplo de uso:

Bloco de código
titleWizard com recuperação de Grupo de Empresas selecionados
collapsetrue
#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 "
	//Passa o objeto para ser manipulado posteriormente nos steps adicionados
    bConstruction := { | oPanel | aParam := StepPage( oPanel , oWizard ) }
    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( "Minha mensagem de boas vindas customizada" )
    oWizard:AddRequirement( cReqDes, cReqCont, bReqVld, cReqMsg )
    oWizard:AddStep( cDescription + "1", bConstruction, bNextAction, bPrevWhen, bCancelWhen )
    oWizard:AddStep( cDescription + "2", bConstruction, bNextAction, bPrevWhen, bCancelWhen )
    oWizard:AddStep( cDescription + "3", bConstruction, bNextAction, bPrevWhen, bCancelWhen )
    // oWizard:AddStep( cDescription + "4", bConstruction, bNextAction, bPrevWhen, bCancelWhen )
    oWizard:AddProcess( bProcess )

    oWizard:SetTrialMode(.T.) //Default .F.
    // oWizard:SetExclusiveCompany(.F.) //Default .T. 
    // oWizard:UsePlatformAccess(.F.) //Default .T.
    // oWizard:SetCountries( {"ARG", "BRA"} ) //Para permitir determinados países.
	// oWizard:SetCountries( {"ALL"} ) //Para permitir todos os países.
    // oWizard:SetErpCredentialsMode(.T.) //Default .F.
    oWizard:Activate()

Return

/*/{Protheus.doc} ProcAnt
Processamento de regra de negócio
@type function
@author izac.ciszevski
@param cGrpEmp, character, grupo de empresa logado
@param cMsg, character, mensagem de erro de retorno
@param aParam, array, parâmetros para da etapa de configuração
@return logical, sucesso ou falha
/*/
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
@param oWizard, object, objeto do wizard criado
/*/
Static Function StepPage( oPanel As Object, oWizard As Object )
    Local aParam  As Array
    Local oConfig As Object
	
	//Exemplo que irá printar no console os Grupos de Empresas selecionados pelo usuário
    VarInfo("Grupo de Empresas selecionados", oWizard:GetSelectedGroups())

    oConfig      := FWTFConfig()
    aParam := Array( 5 )
    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, 380 PROMPT "Informações" 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, 380 PROMPT "Informações" 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

/*/{Protheus.doc} VldStep
Validação da etapa de negócio
@type function
@author izac.ciszevski
@param aParam, array, informações preenchidas
@return logical, sucesso ou falha na validação
/*/
Static Function VldStep( aParam )

Return .T.

...