Versões comparadas

Chave

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

...

Esse documento tem o objetivo de exemplificar o uso da API para inserção de cronograma.

Informações
titleImportante:

Para acessar as API´s abaixo é necessário atribuir permissão para o usuário nas seguintes funcionalidades

  1. Planilha de atividades
  2. Cronograma
  3. Acesso ao projeto

1 - API de entrada de Cronograma Planejado

...

Esta API permitirá a entrada de valores no cronograma planejado.

O cronograma da tarefa será removido e será preenchido com os valores enviados nesta chamada.

O campo de cost deve enviar o valor da tarefa relativo ao período de datas.

O campo de percentage deve enviar o percentual da tarefa relativo ao período de datas. Os dois campos podem ser enviados juntos, desde que o parâmetro do projeto para cronograma defina que use percentual ou valor.

Estas datas podem incluir mais de período do projeto. O valor será distribuído proporcional pelas datas informadas.

O campo de warning irá retornar uma lista de avisos que não provocaram erros.

Máscara de Url: http://{domínio}:{porta}/api/construction-projects/v1/planningInput

Método de entrada: Post

Informações
iconfalse
titleExemplo de JSon de entrada
Expandir
titleVer JSON...
Bloco de código
languagejs
firstline1
titleJSON
linenumberstrue
{
    "companyId": 1,
    "projectId": 2,
    "tasks": [
        {
            "taskId": 1,
            "dates": [
                {
                    "startAt": "2011-03-11T00:00:00",
                    "endAt": "2011-03-15T00:00:00",
                    "cost": 50000.26,
                    "percentage": 100
                }
            ]
        }
    ],
    "warnings": []
}


2 - API de entrada de Cronograma Medido

...

Esta API permitirá a entrada de valores no cronograma medido.

O campo accumulatedPercentageCompleted deve seta preenchido com o percentual total das medições até o período indicado pela data do campo measuredIn. O percentual será calculado com a diferença do somatório dos períodos anteriores com o percentual enviado. Este resultado pode ser um percentual negativo.

O cronograma medido dos períodos posteriores ao informado, serão removidos.

Máscara de Url: http://{domínio}:{porta}/api/construction-projects/v1/measuredInput

Método de entrada: Post

Informações
iconfalse
titleExemplo

...

Resultado ()
de JSon de entrada
Expandir
titleVer JSON...
Bloco de código
languagejs
firstline1
title
JSON
linenumberstrue
{
    "companyId": 1,
    "projectId": 2,
    "measuredIn":"2020-02-02",
    "tasks": [
{ "taskId":"1", "dates":[ { "startAt":"2021-01-11", "endAt":"2021-01-15", "cost":"29954720.26" } ] } ] }

1.1 - GET

...

        {
            "taskId": 1,
            "accumulatedPercentageCompleted":11
        }
    ]
}

3 - API de entrada de Cronograma Realizado 

...

Esta API permitirá a entrada de valores no cronograma Realizado.

O campo accumulatedPercentageCompleted deve seta preenchido com o percentual total das medições até o período indicado pela data do campo accomplishedIn. O percentual será calculado com a diferença do somatório dos períodos anteriores com o percentual enviado. Este resultado pode ser um percentual negativo.

O cronograma realizado dos períodos posteriores ao informado, serão removidos.

Alterado para que as API's de planejado e de realizado atualizem os campos de data inicio e fim do planejamento ou realizado, respectivamente, no PERT.

Estas datas serão atualizadas apenas se forem menor que a data inicial ou maior que a data final.

A data início real somente será alterada se o percentual enviado for maior que 0 (zero).

A data fim real somente será alterada se o percentual enviado for maior ou igual a 100.

Máscara de Url: http://{domínio}:{porta}/api/construction-projects/v1/accomplishedInput

Método de entrada: Post

Informações
iconfalse
titleExemplo de JSon de entrada
Expandir
titleVer JSON...
Bloco de código
languagejs
firstline1
titleJSON
linenumberstrue
{
"companyId": 1,
"projectId": 57,
"accomplishedIn":"2022-05-01",
"tasks":[

{     "taskId":9,     "accumulatedPercentageCompleted":41 }
,
}

4 - API de Cálculo de Cronograma

...

Esta API permitirá a execução do cálculo do cronograma

As parâmetros deverão identificar qual projeto e planilha deverá ser calculado.

Máscara de Url: http://{domínio}:{porta}/api/construction-projects/v1/calculate-schedule

Método de entrada: Post

Informações
iconfalse
titleExemplo de JSon de entrada
Expandir
titleVer JSON...
Bloco de código
languagejs
firstline1
titleJSON
linenumberstrue
{
        "companyId": 1,
        "projectId": 2,
        "spreadsheetType": 0,
        "scenarioId": 0
}


5 - API de Cálculo de Envio de Custos Incorridos

...

Esta API permitirá a execução de custos incorridos no cronograma.

O campo de parâmetro de entrada serve para definir o tipo de agrupamento. (groupingType)

Valores possíveis:

0-Nenhum

1-Por dia

2-Por mês

Máscara de Url: http://localhost:8051/api/construction-projects/v1/appropriatedSchedule

Método de entrada: Post

Informações
iconfalse
titleExemplo de JSon de entrada
Expandir
titleVer JSON...
Bloco de código
languagejs
firstline1
titleJSON
linenumberstrue
{     
		"companyId": 1,
	    "projectId": 2,  
		"startDate": "2001-11-20T00:00:00",
	    "endDate": "2022-11-20T00:00:00",     
		"tasks": [54],   
		"groupingType": 1
 }


6 - API de Serviços para cópia de parâmetro

...

Esta API permitirá a execução de serviços para a copia de parâmetro.

  • Copiar os parâmetros de um projeto para outro

Máscara de Url: http://localhost:8051/api/construction-projects/v1/copy-parameters

Método de entrada: Post

Informações
iconfalse
titleExemplo de JSon de entrada
Expandir
titleVer JSON...
Bloco de código
languagejs
firstline1
titleJSON
linenumberstrue
{          
   "companyIdOrigin": 1,
   "projectIdOrigin": 2, 
   "companyIdDestiny": 1, 
   "projectIdDestiny": 59

}


7 - API de Serviço para atualizar parâmetro de períodos do projeto

...

Atualizar os períodos de um projeto com base nos parâmetros de data inicio, periodicidade e quantidade de períodos 

Valores possíveis para o campo typeOfPeriods

0   - Personalizado
1   - Diario
-7   Semanal
7   - SemanalCorridos
-15 - Quinzenal
15  - QuinzenalCorridos
30  - Mensal
-10 - Dezena
10  - DezenaCorridos

Máscara de Url: http://localhost:8051/api/construction-projects/v1/schedule-Parameters

Método de entrada: Post

Informações
iconfalse
titleExemplo de JSon de entrada
Expandir
titleVer JSON...
Bloco de código
languagejs
firstline1
titleJSON
linenumberstrue
{  
          
	"companyId": 1,
	"projectId": 59, 
 	"dateInitialProject": "2022-10-01", 
	"numberPeriods": 6, 
	"typeOfPeriods": 0,  
 	"numberDaysPerPeriods" :3  

}


8 - Obter dados de cronograma através de SOAP

...

É possível obter os dados do cronograma através de SOAP. Para maiores detalhes do uso do SOAP: https://centraldeatendimento.totvs.com/hc/pt-br/articles/360007851192-Cross-Segmentos-Backoffice-RM-Integra%C3%A7%C3%A3o-WebServices-Utilizando-o-SoapUI-para-consumir-DataServers-RM-via-WebServices

Os campos após o nome do DataSever são os parâmetros que devem ser passados na seguinte ordem:

  • Tipo Planilha (0 - Atividade / 1 - Serviço)
  • Tipo do Cronograma (conforme codificação abaixo)
  • Identificador do Cenário (0 - Principal / 1 a 4 - Cenários)
  • Exibe colunas de valor (true / false)

Tipos de Cronograma:

P - Planejado

R - Realizado

M - Medido

A - Apropriado

T - Todos

B - Base


Informações
iconfalse
titleExemplo do XML de entrada
Expandir
titleVer XML...
Bloco de código
languagejs
firstline1
titleXML
linenumberstrue
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tot="http://www.totvs.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <tot:ReadView>
         <!--Optional:-->
         <tot:DataServerName>PrjCronogramaPlanilhaAtividadeData/0/[0,0,true]</tot:DataServerName>
         <!--Optional:-->
         <tot:Filtro>CODCOLIGADA=1 AND IDPRJ=2</tot:Filtro>
         <!--Optional:-->
         <tot:Contexto>CODCOLIGADA=1;IDPRJ=2;CODUSUARIO='mestre'</tot:Contexto>
      </tot:ReadView>
   </soapenv:Body>
</soapenv:Envelope>

...