Versões comparadas

Chave

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

...

Informações
iconfalse
titleObservação:

Caso o Job não seja recorrente o comportamento será o seguinte:

Ainda não executado:  "status": "active"

Executado com ou sem erro:  "status": "completed"

Cancelado ou Desativado: "status": "inactive"


Job recorrente:

Ainda não foi executado: "status": "active"

Todas as outras opções: "status": "inactive",


A Api de JobScheduler também realiza buscas pelo status do agendamento, são eles:

  • Sucess
  • Pending
  • Running
  • Failure


Recorrência do Job:

Âncora
recurrencyType
recurrencyType

Um job pode ser criado para ser agendado e pode ser criado com alguma recorrência. 

São permitidos os seguintes tipos de recorrência: Diário (daily), semanal (weekly) e mensal (monthly).

No swagger é possível visualizar o schema desses itens. Veja a seguir um exemplo:

Bloco de código
languagejs
"daily": {
         "year": 0,
       "month": 0,
       "day": 0,
       "hour": 0,
       "minute": 0
}
"weekly": {
       "daysOfWeek": [
              "string"
       ],
       "hour": 0,
       "minute": 0
}
"monthly": {
       "day": 0,
       "hour": 0,
       "minute": 0
},
  • Para recorrências do tipo daily, a propriedade "firstExecution" enviada é usada apenas para identificar o fuso horário do cliente e são considerados os valores do objeto daily para criar a data de agendamento.
    Como o tipo é diário, ele continuará executando todos os dias nas horas definidas em hour e minute.

...

Informações
iconfalse
titlePost
Informações
iconfalse
titleConfiguração

Máscara de Url: http://{domínio}:{porta}/api/framework/v1/jobscheduler

Informações
iconfalse
titleExemplo de Configuração

Domínio: localhost

Porta: 8051

Url Utilizada: http://localhost:8051/api/framework/v1/jobscheduler

Obs.: Se o Host estiver executando local (3camadas = false) não é possível criar um agendamento de job. Neste cenário, para executar o job imediatamente, é preciso que no Body da requisição a recorrência esteja como 'false' e não sejam envidas enviadas as propriedades "scheduleDateScheduleDateTime" e tipo Tipo de recorrênciaRecorrência.

Informações
iconfalse
titleExemplo de Entrada
Expandir
titleVer resultado JSON...
Bloco de código
languagejs
firstline1
titleResultado (JSON)
linenumberstrue
{
   	"firstExecution": "2018-12-05 01:00:00",
	"processID": "GlbCopyPermisUsrProc",
	"user": "mestre",
	"recurrent": false,
    "executionParameter": {
        "SourceUsuario": "mestre",
        "RemoveOldPermissions": false,
        "CopyToAllApplications": true,
        "CodSistema": "G",
        "NewUser": {
            "Usuario": null,
            "Nome": null,
            "Senha": null,
            "Email": null,
            "codAcesso": null,
            "UsuariodeRede": null
        },
        "Initialized": true,
        "PrimaryKeyList": [
            [
                "Fabio.nunes"
            ]
        ],
        "PrimaryKeyNames": [
            "CODUSUARIO"
        ],
        "PrimaryKeyTableName": "GUSUARIO",
        "OnlineMode": false,
        "SyncExecution": false,
        "HideProgressDialog": false,
        "SaveParamsExecution": false,
        "CodUsuario": "mestre",
        "Context": {
            "$id": "1",completeInvoicing             "_params": {
                "$EXERCICIOFISCAL": 2,
                "$CODLOCPRT": 12,
                "$CODTIPOCURSO": -1,
                "$EDUTIPOUSR": "-1",
                "$CODUNIDADEBIB": -1,
                "$CODCOLIGADA": 1,
                "$RHTIPOUSR": "-1",
                "$CODIGOEXTERNO": "-1",
                "$CODSISTEMA": "G",
                "$CODUSUARIOSERVICO": "",
                "$CODUSUARIO": "mestre",
                "$IDPRJ": -1,
                "$CHAPAFUNCIONARIO": "-1",
                "$CODFILIAL": 1
            },
            "Environment": 1
        },
        "UserName": "mestre",
        "ConnectionId": null,
        "ConnectionString": null,
        "DriverType": null,
        "Ip": "10.31.4.57",
        "HostName": "BHD050100279",
        "JobServerHostName": "BHD050100279",
        "ActionName": "GlbActionProcCopyPermisUsr",
        "MasterActionName": "GlbUsuarioAction",
        "ActionModule": "G",
        "JobID": {
            "ID": 1,
            "ExecID": 1,
            "IsPriorityJob": false,
            "Children": []
        },
        "ShowReExecuteButton": true,
        "ExecutionId": "2b72d443-e6f6-4693-bd83-318f67585a79",
        "ProcessName": "Cópia de Permissões de Usuários",
        "ServerName": "GlbCopyPermisUsrProc",
        "ServiceInterface": null,
        "Scheduler": 1,
        "UseJobMonitor": true,
        "ScheduleDateTime": "2018-12-06T10:39:57.5233678-02:00",
        "CanSendMail": false,
        "CanWaitSchedule": false,
        "SendMail": false,
        "FriendlyLogs": null,
        "SuccessMessage": "Processo executado com sucesso",
        "FailureMessage": "Falha na execução do processo",
        "SaveLogInDatabase": true,
        "StatusMessage": null,
        "WaitSchedule": false,
        "IsolateProcess": false,
        "DisableIsolateProcess": false,
        "NetworkUser": "fabio.nunes",
        "CustomData": null,
        "CanParallelize": true,
        "ShouldParallelize": false,
        "QuantityOfSplits": 0,
        "MinimumQuantityOfPrimaryKeysPerProcess": 1,
        "MaximumQuantityOfPrimaryKeysPerProcess": 1000,
        "NotifyFluig": false,
        "NotifyEmail": false,
        "NotifyEmailList": null
    }
}


Propriedades obrigatórias:

firstExecution, processID, recurrent, executionParameter

executionParameter: UserName, Context, ProcessName, PrimaryKeyList, PrimaryKeyNames, processStartDate, processEndDate, completeInvoicing

Informações
iconfalse
titleExemplo de Resultado Positivo
Expandir
titleVer resultado JSON...
Bloco de código
languagejs
firstline1
titleResultado (JSON)
linenumberstrue
{
    "jobScheduleID": "1",
    "status": "active",
    "lastModified": "2018-12-06T14:18:42",
    "processID": "GlbCopyPermisUsrProc",
    "firstExecution": "2018-12-05T01:00:00",
    "user": "mestre",
    "recurrent": false,
    "executionParameter": {
        "SourceUsuario": "mestre",
        "RemoveOldPermissions": false,
        "CopyToAllApplications": true,
        "CodSistema": "G",
        "NewUser": {
            "Usuario": null,
            "Nome": null,
            "Senha": null,
            "Email": null,
            "codAcesso": null,
            "UsuariodeRede": null
        },
        "Initialized": true,
        "PrimaryKeyList": [
            [
                "Fabio.nunes"
            ]
        ],
        "PrimaryKeyNames": [
            "CODUSUARIO"
        ],
        "PrimaryKeyTableName": "GUSUARIO",
        "OnlineMode": false,
        "SyncExecution": false,
        "HideProgressDialog": false,
        "SaveParamsExecution": false,
        "CodUsuario": "mestre",
        "Context": {
            "$id": "1",
            "_params": {
                "$EXERCICIOFISCAL": 2,
                "$CODLOCPRT": 12,
                "$CODTIPOCURSO": -1,
                "$EDUTIPOUSR": "-1",
                "$CODUNIDADEBIB": -1,
                "$CODCOLIGADA": 1,
                "$RHTIPOUSR": "-1",
                "$CODIGOEXTERNO": "-1",
                "$CODSISTEMA": "G",
                "$CODUSUARIOSERVICO": "",
                "$CODUSUARIO": "mestre",
                "$IDPRJ": -1,
                "$CHAPAFUNCIONARIO": "-1",
                "$CODFILIAL": 1
            },
            "Environment": 1
        },
        "UserName": "mestre",
        "ConnectionId": null,
        "ConnectionString": null,
        "DriverType": null,
        "Ip": "10.31.4.57",
        "HostName": "BHD050100279",
        "JobServerHostName": "BHD050100279",
        "ActionName": "GlbActionProcCopyPermisUsr",
        "MasterActionName": "GlbUsuarioAction",
        "ActionModule": "G",
        "JobID": {
            "ID": 1,
            "ExecID": 1,
            "IsPriorityJob": false,
            "Children": []
        },
        "ShowReExecuteButton": true,
        "ExecutionId": "2b72d443-e6f6-4693-bd83-318f67585a79",
        "ProcessName": "Cópia de Permissões de Usuários",
        "ServerName": "GlbCopyPermisUsrProc",
        "ServiceInterface": null,
        "Scheduler": 1,
        "UseJobMonitor": true,
        "ScheduleDateTime": "2018-12-06T10:39:57.5233678-02:00",
        "CanSendMail": false,
        "CanWaitSchedule": false,
        "SendMail": false,
        "FriendlyLogs": null,
        "SuccessMessage": "Processo executado com sucesso",
        "FailureMessage": "Falha na execução do processo",
        "SaveLogInDatabase": true,
        "StatusMessage": null,
        "WaitSchedule": false,
        "IsolateProcess": false,
        "DisableIsolateProcess": false,
        "NetworkUser": "",
        "CustomData": null,
        "CanParallelize": true,
        "ShouldParallelize": false,
        "QuantityOfSplits": 0,
        "MinimumQuantityOfPrimaryKeysPerProcess": 1,
        "MaximumQuantityOfPrimaryKeysPerProcess": 1000,
        "NotifyFluig": false,
        "NotifyEmail": false,
        "NotifyEmailList": null
    }
}
Informações
iconfalse
titleExemplo de Resultado Negativo
Expandir
titleVer resultado JSON...
Bloco de código
languagejs
firstline1
titleResultado (JSON)
linenumberstrue
{
    "Code": "FE016",
    "Message": "O corpo da mensagem contém valores inválidos.",
    "DetailMessage": "",
    "HelpUrl": "http://tdn.totvs.com/x/e0F0GQ",
    "Details": null
}

...

Informações
iconfalse
titlePost

Funcionalidade para reiniciar um Job.
• Não é permitido executar o restart em Jobs que não foram executados.
• Todos os outros tipos de Job´s podem ser reiniciados.
• Após a reinicialização o Job é executado pelo JobServer independente da data de agendamento.
• Após a execução, caso o Job seja agendado, o mesmo é reprogramado para a próxima recorrência.

Informações
iconfalse
titleConfiguração

Máscara de Url: http://{domínio}:{porta}/api/framework/v1/jobscheduler/{jobID}/restart

Informações
iconfalse
titleExemplo de Configuração

Domínio: localhost

Porta: 8051

JobID: 1

Url Utilizada: http://localhost:8051/api/framework/v1/jobscheduler/1/restart

Obs.: Se o Host estiver executando local (3camadas = false) não é possível criar um agendamento de job. Neste cenário, para executar o job imediatamente, é preciso que no Body da requisição a recorrência esteja como 'false' e não sejam envidas as propriedades "scheduleDate" e tipo de recorrência.

Informações
iconfalse
titleExemplo de Resultado Positivo
{ "jobScheduleId": "1", "status": "active", "lastModified": "2019-03-13T12:11:33-03:00", "processId": "GlbCopyPermisUsrProc", "firstExecution": "2019-03-13T12:16:00-03:00", "user": "mestre", "recurrent": true, "executionParameter": { "SourceUsuario": "mestre", "RemoveOldPermissions": false, "CopyToAllApplications": true, "CodSistema": "G", "NewUser": { "Usuario": null, "Nome": null, "Senha": null, "Email": null, "codAcesso": null, "UsuariodeRede": null }, "Initialized": true, "PrimaryKeyList": [ [ "00001" ] ], "PrimaryKeyNames": [ "CODUSUARIO" ], "PrimaryKeyTableName": "GUSUARIO", "OnlineMode": false, "SyncExecution": false, "HideProgressDialog": false, "SaveParamsExecution": false, "CodUsuario": "mestre", "Context": { "$id": "1", "_params": { "$EXERCICIOFISCAL": -1, "$CODLOCPRT": 12, "$CODTIPOCURSO": 1, "$EDUTIPOUSR": "-1", "$CODUNIDADEBIB": -1, "$CODCOLIGADA": 1, "$RHTIPOUSR": "-1", "$CODIGOEXTERNO": "-1", "$CODSISTEMA": "G", "$CODUSUARIOSERVICO": "", "$CODUSUARIO": "mestre", "$IDPRJ": -1, "$CHAPAFUNCIONARIO": "-1", "$CODFILIAL": 1 }, "Environment": 1 }, "UserName": "mestre", "ConnectionId": null, "ConnectionString": null, "DriverType": null, "Ip": "172.20.81.1", "HostName": "BHD050101853", "JobServerHostName": "BHD050100616", "ActionName": "GlbActionProcCopyPermisUsr", "MasterActionName": "GlbUsuarioAction", "ActionModule": "G", "JobID": { "ID": 1, "ExecID": 1, "IsPriorityJob": false, "Children": [] }, "ShowReExecuteButton": true, "ExecutionId": "1de4983d-1e70-4767-b358-baa174c663a8", "ProcessName": "Cópia de Permissões de Usuários", "ServerName": "GlbCopyPermisUsrProc", "ServiceInterface": null, "Scheduler": 1, "UseJobMonitor": true, "ScheduleDateTime": "2018-10-29T17:37:03-03:00", "CanSendMail": false, "CanWaitSchedule": false, "SendMail": false, "FriendlyLogs": null, "SuccessMessage": "Processo executado com sucesso", "FailureMessage": "Falha na execução do processo", "SaveLogInDatabase": true, "StatusMessage": null, "WaitSchedule": false, "IsolateProcess": false, "DisableIsolateProcess": false, "NetworkUser": "", "CustomData": null, "CanParallelize": true, "ShouldParallelize": false, "QuantityOfSplits": 0, "MinimumQuantityOfPrimaryKeysPerProcess": 1, "MaximumQuantityOfPrimaryKeysPerProcess": 1000, "NotifyFluig": false, "NotifyEmail": false, "NotifyEmailList": null }, "weekly": { "daysOfWeek": [ "Thursday", "Saturday" ], "hour": 14, "minute": 35 } }
Expandir
titleVer resultado JSON...
Bloco de código
languagejs
firstline1
titleResultado (JSON)
linenumberstrue



Informações
iconfalse
titleExemplo de Resultado Negativo
Expandir
titleVer resultado JSON...
Bloco de código
languagejs
firstline1
titleResultado (JSON)
linenumberstrue
{
    "Code": "FE019",
    "Message": "Não é possível reiniciar o Job 1 pois o mesmo está pendente ou em execução.",
    "DetailMessage": "",
    "HelpUrl": "http://tdn.totvs.com/x/e0F0GQ",
    "Details": null
}

...