Páginas filhas
  • Função createTask
Pré-requisitos

Disponível a partir do release 2410, para LIB 20240115.



Descrição

Cria tarefa pendente de execução na fila do Schedule, sem vínculo de agendamento(XX1).

NameSpace

Totvs.Framework.Schedule.Utils

Sintaxe
createTask( cEnvironment, cEmpresa, cFilial, cFunction, nModule, cUserID, uParam, aMVParams, lReuse, lInterfaceParams, lManageable, lDataBase ) → oTask

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Default
cEnvironmentCaractereNome do Ambiente
GetEnvServer()
cEmpresaCaractereCódigo da Empresa
cEmpAnt
cFilialCaractereCódigo da Filial
cFilAnt
cFunctionCaractereFunção/Rotina de execuçãoX
nModuleNuméricoMódulo do Sistema
5
cUserIDCaractereId do Usuário
Administrador
uParamUndefinedDescontinuado

aMVParamsArray
  • Rotina com SchedDef:

    Array de Parâmetros MV_PAR's (somente sem interface)

    Formato Pergunte(SX1)
    [1] MV_PAR01
    [2] MV_PAR02
    [3] MV_PAR03
    ...

    Obs.: preenchimento deve respeitar a tipagem de cada pergunte definido no dicionário SX1, como: caractere, numérico ou data.

    Formato PARAMDEF:
    [1] numérico: ORDEM
    [2] caractere: DE
    [3] caractere: ATE

  • Rotina Processo Especial:

    Array de Parâmetros de função

    A rotina em execução recebera os parâmetros definidos neste array, com adição por padrão dos 3 parâmetros de execução: cEmpAnt, cFilAnt, cUserId.




lReuseLógicoDefine a reutilização de tarefa já existente para Ambiente/Empresa/Filial/Função.
.F.

lInterfaceParams

Lógico

Define se irá realizar a abertura da tela de perguntas de parâmetros definidos via SCHEDDEF (somente com interface)

Obs.: Em caso de cancelamento da interface de parâmetros por parte do usuário, o processo será interrompido e a criação da tarefa não será realizada.


.F.

lManageable

Lógico

Define se permite manutenção/exclusão da tarefa.


.F.

lDataBase

Lógico

Define se a criação da tarefa será baseada na dDataBase do sistema.


.T.


Retorno
oTask - Retorna objeto contendo as informações da tarefa incluída na fila do Schedule.

Observação: caso a Tarefa não possa ser incluída, o retorno será nulo(nil)

Exemplo de uso:

#include "protheus.ch"

// Execução com preenchimento de parâmetros Processo Especial

User Function TCTask()

    Local oTask             As Object
    Local cEnvironment      As Character
    Local cCompany          As Character
    Local cBranch           As Character

    cEnvironment := "P1212310MNTDBEXP"  // Nome do Ambiente
    cCompany := "T1"                    // Grupo de Empresa
    cBranch := "D MG 01 "               // Filial do Sistema
    
    // Preparação do Ambiente, usuário Administrador
    RpcSetEnv(cCompany, cBranch, "admin", "1234")

    // Criação da Tarefa via Processo Especial função TASKProcEsp.
    oTask := totvs.framework.schedule.utils.createTask( cEnvironment, cEmpAnt, cFilAnt, 'TASKProcEsp', 5, "000000", , { "",0,.F.,{} }, .T. )

Return
#include "protheus.ch"

// Execução com preenchimento dos parâmetros por interface

User Function TCTask()

    Local oTask             As Object 
	Local lInterfaceParams As Logical         
	
	// Execução deve ser realizada dentro do sistema por conta da interface das perguntas   
	lInterfaceParams:= .T.     
	
	// Criação da Taréfa para rotina ATFA050. 
	oTask := totvs.framework.schedule.utils.createTask( /*cEnvironment*/, /*cEmpAnt*/, /*cFilAnt*/, 'ATFA050', /*nModule*/, /*cUserID*/, /*uParam*/, /*aMVParams*/, .T., lInterfaceParams)

Return


Caso exista a necessidade temos uma opção que recupera as perguntas para posterior preenchimento conforme necessidade no exemplo abaixo.

#include "protheus.ch"

// Execução com preenchimento dos parâmetros por código

User Function TCTask()
    Local oTask             As Object 
	Local lInterfaceParams  As Logical
	Local cRoutine          As Character
	Local aMVParams         As Array
	Local aPerguntas        As Array
	Local nX                As Numeric
    Local cEnvironment      As Character
    Local cCompany          As Character
    Local cBranch           As Character

    cEnvironment := "P1212310MNTDBEXP"  // Nome do Ambiente
    cCompany := "T1"                    // Grupo de Empresa
    cBranch := "D MG 01 "               // Filial do Sistema
    
    // Preparação do Ambiente, usuário Administrador
    RpcSetEnv(cCompany, cBranch, "admin", "1234")
  
	lInterfaceParams := .F.
	cRoutine := 'ATFA050'
    aPerguntas := totvs.framework.schedule.utils.getParamsMV(cRoutine)
    aMVParams := Array(Len(aPerguntas), "")
	
    //Preenchimento conforme necessidade
	For nX := 1 To Len(aPerguntas)
        If aPerguntas[nX][2] == "D"
            aMVParams[nX] := SToD("00000000")
        ElseIf aPerguntas[nX][2] == "N"
            aMVParams[nX] := 1
        ElseIf aPerguntas[nX][2] == "C"
            aMVParams[nX] := ""
        endIf
    Next nX

    // Criação da Taréfa para rotina ATFA050. 
	oTask := totvs.framework.schedule.utils.createTask( /*cEnvironment*/, /*cEmpAnt*/, /*cFilAnt*/, cRoutine, 5, "000000", /*uParam*/, aMVParams, /*lReuse*/, lInterfaceParams) 
Return



  • Sem rótulos