01. Visão geral

Através do serviço RestProcess, via RESTful, o usuário poderá executar o processo de geração de movimento por regime de caixa.  

Essa solicitação está disponibilizada através do método: POST e serão processados utilizando os valores dos parâmetros do processo. Esses parâmetros podem ser obtidos através do método GET com o serviço GetSchema.

No link serviços RESTful no RM é possível obter todas as informações sobre os serviços disponibilizados.


Para utilização dos serviços, é necessário que seja utilizada a forma de autenticação básica, onde deverão ser passados os valores de usuário e senha do usuário de acesso ao sistema.

Conforme documentação disponibilizada pela equipe de FrameWork, os serviços via RESTful estão disponibilizados, à partir da versão 12.1.6 da linha RM.

Se necessário clique aqui para obter ajuda na configuração do Host.

02. Processos - Geração de Movimento por Regime de Caixa

Para a geração de movimento por regime de caixa, temos 02 processos possíveis: EduNFESliceableData, EduNFEData.


Processo - EduNFEData

Até a versão 12.1.2406 e até o patch 12.1.2410.xxx, esse processo é utilizado no menu "Financeiro / Contábil → NF-e" na opção "Geração de Movimento" e executamos o processo de geração de movimento por regime de caixa para os boletos selecionados pelo filtro informado.

O processo utiliza a informação da propriedade FiltroBoleto para identificar quais os boletos serão selecionados

FiltroBoleto

  • Informar o valor do filtro no seguinte formato: [

    "FLANBOLETO.IDBOLETO = :F1",

    14470

    ]

Observa que o filtro para selecionar os boletos no primeiro tem  é a consulta SQL, e depois os parâmetros para essa consulta informada, exemplo:

[
        "FLANBOLETO.CODCOLIGADA = :F1 AND FLANBOLETO.IDBOLETO = :F2",
        15,
        14470
]


Processo - EduNFESliceableData (Disponível a partir do patch 12.1.2410.xxx e versões superiores)

Esse processo é utilizado no menu "Financeiro / Contábil → NF-e" na opção "Geração de Movimento" e executamos o processo de geração de movimento por regime de caixa para os boletos selecionados pelo filtro informado.  Ele permite o fracionamento de jobs para geração de movimento por regime de caixa em ambas opções de acesso.

O processo utiliza a informação da propriedade FiltroBoleto para identificar quais os boletos serão selecionados

FiltroBoleto

  • Informar o valore do filtro no seguinte formato: [

    "FLANBOLETO.IDBOLETO = :F1",

    14470

    ]

Observa que o filtro para selecionar os boletos no primeiro tem  é a consulta SQL, e depois os parâmetros para essa consulta informada

, exemplo:

[
        "FLANBOLETO.CODCOLIGADA = :F1 AND FLANBOLETO.IDBOLETO = :F2",
        15,
        14470
]

O processo via o menu utiliza, além de outros campos, o filtro para identificar quais boletos terão seus movimentos por regime de caixa gerados.

Filtro utilizado

  • Filtro de boletos selecionados.

  • Data de emissão do lançamento
  • Data de vencimento do lançamento
  • Status do lançamento.

Para utilizar o fracionamento de jobs é necessário informar os seguintes parâmetros:

ProcessName

  • Deve ser informado com o valor padrão "Serviços gerais de movimento", os jobs utilizam o nome do processo para identificação.

ServerName

  • Informar o nome do processo que está sendo executado: "EduNFESliceableData". Esta informação é utilizada para identificar se existe fracionamento configurado.

SlicesCount

  • Deve conter a quantidade de frações utilizadas para execução do processo, este número deve respeitar o máximo de frações cadastrado em Ambiente/Processos/Segurança de Jobs Fracionáveis. Por exemplo, o número máximo de frações configurada neste caso é de 4, sendo assim mesmo que seja informado um valor maior que 4 só serão criados 4 jobs durante a execução.


03. Parâmetros do processo - GetSchema

Para a execução de um processo, é necessária a informação dos valores dos parâmetros retornados. Para sabermos quais são os parâmetros do processo, podemos utilizar o serviço GetSchema que retornará todas as informações necessárias.

A execução do GetSchema é necessária a utilização da URL:

HTTP://<SERVIDOR>:<HTTPORT>/rest/restprocess/getschema/<NOMEDOPROCESSO>

A execução do processo de geração de movimento por regime de caixa, podemos fazer a consulta com a utilização de 02 processos:

Exemplo: 

http://localhost:8051/rest/restprocess/getschema/EduNFEData

http://localhost:8051/rest/restprocess/getschema/EduNFESliceableData

Obs.: O retorno é o mesmo, independente do processo. Os dois processos utilizam a mesma estrutura de campos.


Retorno do GetSchema:

{
    "TipoTarefa": 0,
    "StatusLanc": 0,
    "FiltroBoleto": null,
    "MovimentoNFEParams": {
        "CodColigada": 0,
        "CodFilial": 0,
        "CodTipoCurso": 0,
        "CodTMv": null,
        "CodServico": null,
        "PermiteRegerarMov": false,
        "PermiteMovValorLiquidoZero": false,
        "DesconsideraBolsaCredito": false,
        "CodSistemaLogado": null,
        "CodUsuarioLogado": null,
        "OrigemDataEmissao": 0,
        "TipoTarefaMovimento": 0,
        "Filtro": null,
        "LogEventoAtivado": false,
        "DataComp": null,
        "TipoRespFinanceiro": 0,
        "DataEmissaoInicial": "0001-01-01T00:00:00-02:00",
        "DataEmissaoFinal": "0001-01-01T00:00:00-02:00",
        "DataVencInicial": null,
        "DataVencFinal": null,
        "DiaFixo": null,
        "PrimaryKeyList": [],
        "PrimaryKeyNames": null,
        "Context": null
    },
    "Boletos": [
        {
            "CodColigada": 0,
            "IdBoleto": 0,
            "CNABStatus": 0,
            "CodColCFO": 0,
            "CodCFO": null,
            "NomeCliFor": null,
            "DataVencimento": "0001-01-01T00:00:00-02:00",
            "CodFilialNfe": null,
            "FiltrouPorLancamento": true,
            "ListIdLacamentosFiltrados": [
                0
            ],
            "ListaAcordos": [
                {
                    "CodColigada": 0,
                    "IdBoleto": 0,
                    "IdLan": 0,
                    "Classificacao": 0,
                    "StatusLan": 0,
                    "BaixaPendente": 0,
                    "InternalId": null
                }
            ],
            "InternalId": null
        }
    ],
    "MesAno": "0001-01-01T00:00:00-02:00",
    "GerarMovimentoValorZero": false,
    "CodColigada": 0,
    "CodFilial": 0,
    "CodTipoCurso": 0,
    "SlicesCount": 0,
    "RMSJobIds": null,
    "EnableTracing": false,
    "LocalOnlyExecutor": null,
    "EnableJobErrorProgressbar": false,
    "PrimaryKeyList": [
        [
            "//O valor apresentado abaixo deve ser do tipo System.Int32.",
            0
        ],
        [
            "//O valor apresentado abaixo deve ser do tipo System.Double.",
            0.0
        ],
        [
            "//O valor apresentado abaixo deve ser do tipo System.String.",
            "TEXTO"
        ],
        [
            "//O valor apresentado abaixo deve ser do tipo System.DateTime.",
            "2025-01-10T00:00:00-03:00"
        ]
    ],
    "PrimaryKeyNames": [
        "COLUNAPK"
    ],
    "Context": {
        "$id": "1",
        "_params": {
            "$EXERCICIOFISCAL": 22,
            "$CODLOCPRT": 12,
            "$CODTIPOCURSO": 1,
            "$EDUTIPOUSR": "-1",
            "$CODUNIDADEBIB": -1,
            "$CODCOLIGADA": 1,
            "$RHTIPOUSR": "-1",
            "$CODIGOEXTERNO": "-1",
            "$CODSISTEMA": "S",
            "$CODUSUARIOSERVICO": "",
            "$IDPRJ": -1,
            "$CHAPAFUNCIONARIO": "-1",
            "$CODFILIAL": 1
        },
        "Environment": 4
    }
}

04. Execução do processo


Para a execução do processo é necessário utilizar a URL:

HTTP://<SERVIDOR>:<HTTPORT>/rest/restprocess/executeprocess/<NOMEDOPROCESSO>

Para a realização dessa requisição, deverá ser utilizado o método: POST.

Geração de movimento por regime de caixa - NOMEDOPROCESSO (EduNFEData)

Segue o exemplo de um conjunto de informações necessárias para a execução do processo:

{
	"TipoTarefa": 0,
	"StatusLanc": -1,
	"FiltroBoleto": [
        "FLANBOLETO.IDBOLETO = :F1",
        14470
	],
	"GerarMovimentoValorZero": false,
	"CodColigada": 1,
	"CodFilial": 1,
	"CodTipoCurso": 1,
	"MovimentoNFEParams": {
		"CodColigada": 1,
		"CodFilial": 1,
		"CodTipoCurso": 1,
		"CodTMv": "2.2.10",
		"PermiteRegerarMov": true,
		"PermiteMovValorLiquidoZero": false,
		"DesconsideraBolsaCredito": false,
		"CodSistemaLogado": "S",
		"CodUsuarioLogado": "mestre",
		"OrigemDataEmissao": 0,	
		"DataEmissaoInicial": "2025/01/06",
		"DataEmissaoFinal": "2025/01/10",
		"DataVencInicial": null,
		"DataVencFinal": null,
		"DiaFixo": ""
	},
	"Context": {
		"_params": {
			"$EXERCICIOFISCAL": 22,
			"$CODLOCPRT": 12,
			"$CODTIPOCURSO": 1,
			"$EDUTIPOUSR": "-1",
			"$CODUNIDADEBIB": -1,
			"$CODCOLIGADA": 1,
			"$RHTIPOUSR": "-1",
			"$CODIGOEXTERNO": "-1",
			"$CODSISTEMA": "S",
			"$CODUSUARIOSERVICO": "",
			"$IDPRJ": -1,
			"$CHAPAFUNCIONARIO": "-1",
			"$CODFILIAL": 1
		},
		"Environment": 4
	}
}


Geração de movimento por regime de caixa - NOMEDOPROCESSO (EduNFESliceableData)

Segue o exemplo de um conjunto de informações necessárias para a execução do processo:

{
	"ProcessName": "Serviços gerais de movimento",
	"ServerName": "EduNFESliceableData",
	"SlicesCount": 0,
	"TipoTarefa": 0,
	"StatusLanc": -1,
	"FiltroBoleto": [
		"FLANBOLETO.IDBOLETO = :F1",
		14470
	],
	"GerarMovimentoValorZero": false,
	"CodColigada": 1,
	"CodFilial": 1,
	"CodTipoCurso": 1,
	"MovimentoNFEParams": {
		"CodColigada": 1,
		"CodFilial": 1,
		"CodTipoCurso": 1,
		"CodTMv": "2.2.10",
		"PermiteRegerarMov": true,
		"PermiteMovValorLiquidoZero": false,
		"DesconsideraBolsaCredito": false,
		"CodSistemaLogado": "S",
		"CodUsuarioLogado": "mestre",
		"OrigemDataEmissao": 0,
		"DataEmissaoInicial": "2025/01/06",
		"DataEmissaoFinal": "2025/01/10",
		"DataVencInicial": null,
		"DataVencFinal": null,
		"DiaFixo": ""
	},
	"Context": {
		"_params": {
			"$EXERCICIOFISCAL": 22,
			"$CODLOCPRT": 12,
			"$CODTIPOCURSO": 1,
			"$EDUTIPOUSR": "-1",
			"$CODUNIDADEBIB": -1,
			"$CODCOLIGADA": 1,
			"$RHTIPOUSR": "-1",
			"$CODIGOEXTERNO": "-1",
			"$CODSISTEMA": "S",
			"$CODUSUARIOSERVICO": "",
			"$IDPRJ": -1,
			"$CHAPAFUNCIONARIO": "-1",
			"$CODFILIAL": 1
		},
		"Environment": 4
	}
}

05. Descrição dos campos e tipos de dados


Abaixo segue uma descrição de cada tag do JSON de retorno do getSchema.

  • TipoTarefa: Tipo de tarefa que o processo irá utilizar na sua execução e é esperado um valor inteiro, referente ao código do tipo de tarefa desejado. Valores possíveis:
    • 0: Geração/Regeração de movimento por regime de caixa
    • 1: Exclusão do movimento por regime de caixa
    • 4: Cancelamento do movimento por regime de caixa
  • StatusLan: Campo utilizado para informar o status do lançamento a ser selecionado presente no boleto: Valores possíveis:
    • -1: Todos os lançamentos
    • 0: Somente os lançamentos em aberto
    • 1: Somente os lançamentos baixados
    • 3: Somente os lançamentos baixados por acordo
  • GerarMovimentoValorZero: Campo utilizado para informar se deve gerar movimento com valor zerado. Valores possíveis:
    • true,
    • false.
  • FiltroBoleto: Lista do filtro para seleção dos boletos para a geração do movimento por regime de caixa.
  • CodColigada: Código da coligada que será considerada na execução do processo. Esse campo espera um valor inteiro.
  • CodFilial: Código da filial que será considerada na execução do processo. Esse campo espera um valor inteiro.
  • CodTipoCurso: Código do nível de ensino que será considerada na execução do processo. Esse campo espera um valor inteiro.
  • MovimentoNFEParams: Conjunto de campos necessários para a execução do processo.
    • CodColigada: Código da coligada que será considerada na execução do processo. Esse campo espera um valor inteiro.
    • CodFilial: Código da filial que será considerada na execução do processo. Esse campo espera um valor inteiro.
    • CodTipoCurso: Código do nível de ensino que será considerada na execução do processo. Esse campo espera um valor inteiro.
    • CodTMv: Campo utilizado para informar o código do tipo de movimento a ser utilizado na geração do movimento por regime de caixa.
    • CodSistemaLogado: Campo utilizado para informar o sistema logado para indicar a origem do movimento a ser criado. Deve ser informado sempre com o valor de "S"
    • CodUsuarioLogado: Campo utilizado para informar o usuário logado. Deve ser informado o código do usuário logado no RM.
    • PermiteRegerarMov: Campo utilizado para informar se será permitido regerar o movimento por regime de caixa.
    • PermiteMovValorLiquidoZero: Campo utilizado para informar se será permitido gerar/regerar o movimento por regime de caixa com valor líquido igual a zero.
    • DesconsideraBolsaCredito: Campo utilizado para informar se serão desconsiderados os lançamentos de bolsa de crédito.
    • OrigemDataEmissao: Campo utilizado para informar a origem da data de emissão do movimento. Valores possíveis:
      • 0: Data de emissão do lançamento
      • 1: Data de vencimento do lançamento
      • 2: Data de baixa do lançamento
      • 3: Data de competência do lançamento
      • 4: Data do atual do sistema
    • DiaFixo: Campo utilizado para informar o dia fixo para para ser a data de emissão do movimento baseado na data de origem de emissão. Caso não for utilizado deve informar vazio (""). Exemplo:
      • OrigemDataEmissão teve a configuração para o valor 0, data de emissão do lançamento que é 15/01/2025. No campo DiaFixo tem o valor 20. Então da data de emissão do movimento será 20/01/2025.
    • DataEmissaoInicial: Campo utilizado para informar o período inicial da data emissão dos lançamentos vinculados ao boleto. Campo obrigatório.
    • DataEmissaoFinal: Campo utilizado para informar o período final da data emissão dos lançamentos vinculados ao boleto. Campo obrigatório.
    • DataVencInicial: Campo utilizado para informar o período inicial da data vencimento dos lançamentos vinculados ao boleto. Pode receber valor nulo. Caso informe valor na data de vencimento inicial o sistema irá validar se a informação é válida. E deve ser informada também a data de vencimento final.
    • DataVencFinal: Campo utilizado para informar o período final da data vencimento dos lançamentos vinculados ao boleto. Pode receber valor nulo. Caso informe valor na data de vencimento final o sistema irá validar se a informação é válida. E deve ser informada também a data de vencimento inicial.
  • Context: Informações relacionadas ao contexto{

            "_params": {
                "$EXERCICIOFISCAL": -1, (Não é utilizado pelo Educacional e pode ser informado com -1)
                "$CODLOCPRT": -1, (Não é utilizado pelo Educacional e pode ser informado com -1)
                "$CODTIPOCURSO": 1, (Código do nível de ensino)
                "$EDUTIPOUSR": "-1", (Não é utilizado pelo sistema e pode ser informado com -1)
                "$CODUNIDADEBIB": 1, (Não é utilizado pelo Educacional e pode ser informado com -1)
                "$CODCOLIGADA": 1, (Código da coligada)
                "$RHTIPOUSR": "-1", (Não é utilizado pelo Educacional e pode ser informado com -1)
                "$CODIGOEXTERNO": "-1", (Não é utilizado pelo Educacional e pode ser informado com -1)
                "$CODSISTEMA": "S", (Código "S" necessário para informar que é uma execução do módulo Educacional)
                "$CODUSUARIOSERVICO": "", (Não é utilizado pelo Educacional e pode ser informado com "")
                "$IDPRJ": 2, (Não é utilizado pelo Educacional e pode ser informado com -1)
                "$CHAPAFUNCIONARIO": "-1", (Não é utilizado pelo Educacional e pode ser informado com -1)
                "$CODFILIAL": 1 (Código da filial)
            },
            "Environment": 4 (É necessário informar o código 4 para que o sistema identifique a execução em ambiente desktop)
        }
    }

Campos necessários, para a utilização de fracionamento de jobs: (EduNFESliceableData)

    • ProcessName: Campo que espera um valor string e deverá ser utilizado quando por padrão utilizar "Serviços gerais de movimento".
    • ServerName": Campo que espera um valor string e deverá ser utilizado para o fracionamento de jobs, deve conter o nome do processo chamado ex: EduNFESliceableData.
    • SlicesCount: Campo que espera um valor inteiro e deverá para informar a quantidade de fracionamentos da execução do processo ex: 4.

Parâmetros internos que não precisam ser informados:

    • MesAno
    • LogEventoAtivado
    • RMSJobIds
    • EnableTracing
    • LocalOnlyExecutor
    • EnableJobErrorProgressbar
    • MovimentoNFEParams
      • CodServico
      • TipoRespFinanceiro
      • TipoTarefaMovimento
      • DataComp
      • Context
    • Boletos
      • CodColigada
      • IdBoleto
      • CNABStatus
      • CodColCFO
      • CodCFO
      • NomeCliFor
      • DataVencimento
      • CodFilialNfe
      • FiltrouPorLancamento
      • ListIdLacamentosFiltrados
      • InternalId
      • ListaAcordos