Árvore de páginas

CONTEÚDO


01. VISÃO GERAL

Disponibilização de api para criar pedido de execução para execução através do Datasul Automação de Tarefas - Novo RPW.


02. CRIAÇÃO DE PEDIDO

POST /api/framework/v1.1/jobScheduler


Possibilita a criação de pedido de execução para execução através do Datasul Automação de Tarefas - Novo RPW.

Os pedidos criados podem ser consultados através do programa Monitor Pedido Execução HTML.


Body

{ 
    "processID": "string",
	"firstExecution": "dateTime",
    "executionParameter": {
        "parametros": [  
	        { 
                "chave": "rpwServer",    
                "valor": "server" 
            },
	        { 
                "chave": "RPW_PROGRAM",  
                "valor": "program" 
            },
			{ 
                "chave": "RPW_PRG_EMS5", 
                "valor": "isEMS5" 
            },
            {
                "chave": "RPW_PRG_ESTILO",
                "valor": "estilo"
            },        
			{
        		"chave": "RPW_PRG_VERS",
        		"valor": "version"
      	    },
 	        { 
                "chave": "RPW_PED_EXEC_PAI",      
                "valor": "numPedExec" 
            }, 
            { 
                "chave": "RPW_SEND_EMAIL",      
                "valor": "sendEmail" 
            },
	        {
	        	"parametros_negocio": [
					{
                        "chave" :"string", 
                        "valor" : "string", 
                        "tipo": "string"
                    }      		
	        	]
	        },
		 	{
	        	"param_digita_def": [
					{
                        "chave" :"string",              
                        "tipo": "string"
                    }      		
	        	]
	        },
		 	{
	        	"param_digita_dados": [
					{
                        "string" :"string",
                        "string": "string"
                    }      		
	        	]
	        },
		 	{
	        	"selecoes": [
					{
                        "ind_dwb_set_type": "string",
						"cod_dwb_set": "string",
						"cod_dwb_set_initial": "string",
						"cod_dwb_set_final": "string",
						"log_dwb_rule": "logico"
                    }      		
	        	]
	        }
			
	   ]  
	}
}


Parâmetros

Campo

DescriçãoObrigatório
processID

Identificador do processo (rotina) que será executado

Será realizada a validação de permissão do usuário neste programa no momento da execução do pedido.

Sim
firstExecutionData/hora para execução do primeiro pedido, exemplo: "2022-11-20T12:00:00-3:00", caso esteja em branco, o pedido será criado para data/hora atualNão
executionParameterObjeto com parâmetros de execuçãoSim 
{ "chave": "rpwServer", "valor":"server" }"server" deve conter o servidor RPW responsável pela execução do pedidoSim
{ "chave": "RPW_PROGRAM", "valor": "program" },"program" deve conter o nome externo do programa a ser executadoSim
{ "chave": "RPW_PRG_EMS5", "valor": "isEMS5" }"isEM5" deve ser "yes" caso seja um programa EMS5, e "no" para demais programasSim
{ "chave": "RPW_PRG_ESTILO",          "valor": "estilo" }"estilo" deve ser preenchido com o código do estilo do programaNão
{ "chave": "RPW_PRG_VERS", "valor": "version" }"version" deve conter a versão do programa a ser executadoNão
{ "chave": "RPW_PED_EXEC_PAI", "valor": "numPedExec" }"numPedExec" deve ser preenchido com o número do pedido de execução pai, caso existaNão
{ "chave": "RPW_SEND_EMAIL", "valor": "sendEmail" }"sendEmail" deve ser "yes" caso o pedido deva enviar e-mail, "no" caso não deva'Não
{ "parametros_negocio": [ parameters ] }

parameters deve ser preenchido com os parâmetros esperados pelo programa ser executado, os parâmetros devem ser inseridos no formato:

{ "chave": "nomeParametro", "valor": "valorParametro", "tipo":"tipoParametro"  }


Para programa EMS2: Os parâmetros enviados devem ser com chave e tipo conforme os campos da tabela tt-param do programa rp que está sendo criado o pedido.

Sim
{ "param_digita_def": [ parameters ] }

parameters deve ser preenchido com os campos de seleção quando esperados pelo programa ser executado, os parâmetros devem ser inseridos no formato:
{"chave": "nomeCampo", "tipo": "tipoCampo"}

Este parâmetro deve ser utilizado apenas para programas EMS2.

Não
{ "param_digita_dados": [ parameters ] }

parameters deve ser preenchido com os valores de seleção quando esperados pelo programa ser executado, estes parâmetros devem ser passados conforme definições enviadas no parâmetro param_digita_def.  Os parâmetros devem ser inseridos no formato:

{"nomeCampo": "valorCampo"}


Este parâmetro deve ser utilizado apenas para programas EMS2.

Não
{ "selecoes": [ parameters ] }

parameters deve ser preenchido com um array de objetos contendo as faixas de seleção a serem aplicadas nos dados de negócio. Deve conter os seguintes campos:

  • ind_dwb_set_type": valor "Regra" ou "Exceção"
  • "cod_dwb_set": tipo do dado de negócio à ser filtrado
  • "cod_dwb_set_initial": valor inicial do filtro
  • "cod_dwb_set_final": valor final do filtro
  • "log_dwb_rule":"yes" para "Regra" e "no" para "Exceção" (vide "ind_dwb_set_type")


Este parâmetro deve ser utilizado apenas para programas EMS5.

Não

Exemplo

O exemplo abaixo cria um pedido de execução para o programa BTR005AA, para o dia 20/11/2022 às 12:00, para o servidor de execução "serverRPW" e parametrizado para envio de e-mail: 

{
  "processID": "btr005aa",
  "firstExecution": "2022-11-20T12:00:00-3:00",
  "executionParameter": {
    "parametros": [
      {
        "chave": "rpwServer",
        "valor": "serverRPW"
      },
      {
        "chave": "RPW_PROGRAM",
        "valor": "btb/btr00527.p"
      },
      {
        "chave": "RPW_PRG_EMS5",
        "valor": "no"
      },
      {
        "chave": "RPW_PRG_VERS",
        "valor": "2.00.00.002"
      },
      { 
        "chave": "RPW_SEND_EMAIL",      
        "valor": "yes" 
      },
      {
        "parametros_negocio": [
          {
            "chave": "destino",
            "valor": 2,
            "tipo": "integer"
          },
          {
            "chave": "arquivo",
            "valor": "BTR005AA.LST",
            "tipo": "character"
          },
          {
            "chave": "usuario",
            "valor": "super",
            "tipo": "character"
          },
          {
            "chave": "data-exec",
            "valor": "08/03/19",
            "tipo": "date"
          },
          {
            "chave": "hora-exec",
            "valor": 55030,
            "tipo": "integer"
          },
          {
            "chave": "parametro",
            "valor": "false",
            "tipo": "logical"
          },
          {
            "chave": "formato",
            "valor": 2,
            "tipo": "integer"
          },
          {
            "chave": "v_num_tip_aces_usuar",
            "valor": 0,
            "tipo": "integer"
          },
          {
            "chave": "ep-codigo",
            "valor": "FND",
            "tipo": "character"
          },
          {
            "chave": "c-classificacao",
            "valor": "Aplicativo",
            "tipo": "character"
          },
          {
            "chave": "c-cod_catal_img-ini",
            "valor": "",
            "tipo": "character"
          },
          {
            "chave": "c-cod_catal_img-fim",
            "valor": "ZZZZZZZZ",
            "tipo": "character"
          },
          {
            "chave": "c-des_catal_img-ini",
            "valor": "",
            "tipo": "character"
          },
          {
            "chave": "c-des_catal_img-fim",
            "valor": "ZZZZZZZZ",
            "tipo": "character"
          },
          {
            "chave": "c-cod_aplicat_dtsul-ini",
            "valor": "",
            "tipo": "character"
          },
          {
            "chave": "c-cod_aplicat_dtsul-fim",
            "valor": "ZZZZZZZZ",
            "tipo": "character"
          }
        ]
      }
    ]
  }
}

Parâmetros de agenda

Para criação de uma agenda para determinado de pedido de execução, inclui-se alguns parâmetros referentes a agenda, alguns exemplos:


{ 
    "processID": "string",
	"firstExecution": "dateTime",
    "daily": {
  		"hour": hour,
  		"minute": minute
  	},  
  	"executionParameter": {
        "parametros": [  
	        { 
                "chave": "rpwServer",    
                "valor": "server" 
            },
	        { 
                "chave": "RPW_PROGRAM",  
                "valor": "program" 
            },
			{ 
                "chave": "RPW_PRG_EMS5", 
                "valor": "isEMS5" 
            },
     		{
        		"chave": "RPW_PRG_VERS",
        		"valor": "version"
      	    },
 	        { 
                "chave": "RPW_PED_EXEC_PAI",      
                "valor": "numPedExec" 
            }, 
            { 
                "chave": "RPW_SEND_EMAIL",      
                "valor": "sendEmail" 
            },
	        {
	        	"parametros_negocio": [
					{
                        "chave" :"string", 
                        "valor" : "string", 
                        "tipo": "string"
                    }      		
	        	]
	        }
	   ]  
	}
}


Parâmetros

Campo

Tipo

DescriçãoObrigatório
recurrent

logical

Indica se a execução do job deve ocorrer mais de uma vezNão
dailyJson ObjectPara criação de agenda diáriaNão
daily.hourintegerHora da execução da agendaNão
daily.minuteintegerMinuto da execução da agendaNão


No exemplo de preenchimento à seguir, a agenda seria executada diariamente às 08:00.

  "daily": {
      "hour": 8,
      "minute": 0
  }

{ 
    "processID": "string",
	"firstExecution": "dateTime",
  	"weekly":  {
  		"daysOfWeek":["daysOfWeek"],
  		"hour": hour,
  		"minute": minute
  	},    
  	"executionParameter": {
        "parametros": [  
	        { 
                "chave": "rpwServer",    
                "valor": "server" 
            },
	        { 
                "chave": "RPW_PROGRAM",  
                "valor": "program" 
            },
			{ 
                "chave": "RPW_PRG_EMS5", 
                "valor": "isEMS5" 
            },
     		{
        		"chave": "RPW_PRG_VERS",
        		"valor": "version"
      	    },
 	        { 
                "chave": "RPW_PED_EXEC_PAI",      
                "valor": "numPedExec" 
            }, 
            { 
                "chave": "RPW_SEND_EMAIL",      
                "valor": "sendEmail" 
            },
	        {
	        	"parametros_negocio": [
					{
                        "chave" :"string", 
                        "valor" : "string", 
                        "tipo": "string"
                    }      		
	        	]
	        }
	   ]  
	}
}

Campo

Tipo

DescriçãoObrigatório
recurrent

logical

Indica se a execução do job deve ocorrer mais de uma vezNão
weeklyJson ObjectPara criação de agenda semanalNão
weekly.daysOfWeekJson ArrayLista de dias da semana que a agenda deve ser executadaNão
weekly.hourintegerHora de execução da agendaNão
weekly.minuteintegerMinuto de execução da agendaNão


No exemplo de preenchimento à seguir, a agenda seria executada semanalmente todas as segundas-feiras às 09:15.

  "weekly":  {
      "daysOfWeek":["monday"],
      "hour": 9,
      "minute": 15
  }

{ 
    "processID": "string",
	"firstExecution": "dateTime",
  	"monthly": {
  		"day": day,
  		"hour": hour,
  		"minute": minute
  	},
   "executionParameter": {
        "parametros": [  
	        { 
                "chave": "rpwServer",    
                "valor": "server" 
            },
	        { 
                "chave": "RPW_PROGRAM",  
                "valor": "program" 
            },
			{ 
                "chave": "RPW_PRG_EMS5", 
                "valor": "isEMS5" 
            },
     		{
        		"chave": "RPW_PRG_VERS",
        		"valor": "version"
      	    },
 	        { 
                "chave": "RPW_PED_EXEC_PAI",      
                "valor": "numPedExec" 
            }, 
            { 
                "chave": "RPW_SEND_EMAIL",      
                "valor": "sendEmail" 
            },
	        {
	        	"parametros_negocio": [
					{
                        "chave" :"string", 
                        "valor" : "string", 
                        "tipo": "string"
                    }      		
	        	]
	        }
	   ]  
	}
}

Campo

Tipo

DescriçãoObrigatório
recurrent

logical

Indica se a execução do job deve ocorrer mais de uma vezNão
monthlyJson ObjectPara criação de agenda semanalNão
monthly.dayintegerDia de execução da agendaNão
monthly.hourintegerHora de execução da agendaNão
monthly.minuteintegerMinuto de execução da agendaNão


No exemplo de preenchimento à seguir, a agenda seria executada mensalmente todo dia 10 às 08:00.  

"monthly": {
      "day": 10,
      "hour": 8,
      "minute": 0
  }



Os parâmetros de recorrência permitem criar uma faixa de recorrências para execução de uma determinada agenda. 

Campo

Tipo

DescriçãoObrigatório
rangeExecutionsJson ObjectObjeto com as informações do range de execuçõesNão
rangeExecutions.frequencyJson ObjectObjeto com as informações de frequênciaNão
rangeExecutions.frequency.typestringIndica qual o tipo de repetição para os horários a serem gerados. Se 'day', gerará horários incrementando dias; se 'hour', gerará horários incrementando horas; se 'minute', gerará horários incrementando minutosNão
rangeExecutions.frequency.valueintegerFrequência do tipo do intervaloNão
rangeExecutions.rangeLimitJson ObjectObjeto com as informações do limite de range da agendaNão
rangeExecutions.rangeLimit.dayintegerDia limite para término da agenda (válido somente para Monthly)Não
rangeExecutions.rangeLimit.hourintegerHora limite para término da agendaNão
rangeExecutions.rangeLimit.minuteintegerMinuto limite, pertencente à hora, para término da agendaNão

Alguns exemplos:

  • No exemplo de preenchimento à seguir, a agenda seria executada diariamente das 08:00 às 18:00 de hora em hora.
  "daily": {
      "hour": 8,
      "minute": 0
  },
 "rangeExecutions": {
 	"frequency": {
		"type": hour,
		"value": 1
 	},
   "rangeLimit": {
   		"hour": 18,
		"minute": 00
   }
 }


  • No exemplo de preenchimento à seguir, a agenda seria executada toda segunda feita das 09:15 às 09:30 a cada minuto.
  "weekly":  {
      "daysOfWeek":["monday"],
      "hour": 9,
      "minute": 15
  },
 "rangeExecutions": {
 	"frequency": {
		"type": minute,
		"value": 1
 	},
   "rangeLimit": {
   		"hour": 09,
		"minute": 30
   }
 }


  • No exemplo de preenchimento à seguir, a agenda seria executada mensalmente do dia 1º ao dia 30 às 08:00 a cada dois dias.
 "monthly": {
      "day": 1,
      "hour": 8,
      "minute": 0
 },
 "rangeExecutions": {
 	"frequency": {
		"type": day,
		"value": 2
 	},
   "rangeLimit": {
        "day": 30
   		"hour": 8,
		"minute": 0
   }
 }