Tabela de conteúdos
POST - Cria nova Estrutura
Este método inclui, altera e remove componentes da estrutura de materiais no Prosyst, e também exclui ou substitui a estrutura inteira de um item, de acordo com os dados enviados.
Cada requisição é tudo ou nada: se qualquer item da lista for recusado, nenhuma alteração da requisição é gravada e a resposta traz o motivo.
api/Estrutura/Cria-Estrutura
Exemplo URL
<IP do Serviço>:<Porta liberada para o serviço>/api/Estrutura/Cria-Estrutura
Parâmetros do Header
| auth | Token adquirido no Login. |
===== Exemplo de Body =====
[{
"CodigoItemFabricado": 123456,
"CodigoItemFabricadoEditavel": "ABC123",
"ExplodeEstrutura": true,
"UsadoPPCP": false,
"ConsideraCalculoCusto": true,
"RemoverItemEstrutura": false,
"ControleIndustrializacao": 2,
"ListaComponentes": [
{
"CodigoComponente": 333444,
"CodigoComponenteEditavel": "COMP333",
"QuantidadeNecessaria": 50.25,
"QuantidadeNecessariaLiquida": 36.25,
"ExplodeEstrutura": false,
"UsadoPPCP": true,
"ConsideraCalculoCusto": false,
"RemoverItemEstrutura": false,
"ControleIndustrializacao": 1,
"CaracteristicasComponente": [
{
"quantidade": 1,
"comprimento": 1880.0000,
"largura": 835.0000,
"espessura": 100.00,
"posicaoDesenho": "ET H53 16 A",
"tipoCarregamento": "",
"codigoAplicacao": 1,
"codigoCorte": 0,
"unidadeMedida": "PC",
"unidadeMedidaDimensao": "MM",
"posicaoChamada": 1
}
],
"ListaComponentes": []
}
]
}]
Explicação dos campos do Body
- Item e componente: o item é informado por CodigoItemFabricado ou CodigoItemFabricadoEditavel, e o componente por CodigoComponente ou CodigoComponenteEditavel. Com os dois, vale o código numérico; o código editável é usado quando o numérico não é encontrado.
- Subconjuntos: para mexer nos componentes de um subconjunto, informe no item que contém a ListaComponentes o CodigoItemFabricado ou o CodigoItemFabricadoEditavel do subconjunto, com o mesmo código do CodigoComponente dele. Sem isso, a requisição é recusada. No último nível (matéria-prima) não é preciso.
- Obrigatórios: no primeiro nível, o item e o RemoverItemEstrutura. Na inclusão de componente, o componente e a QuantidadeNecessaria. Na remoção, basta o componente.
Campos:
- CodigoItemFabricado → Long → Código identificador único do item fabricado.
- CodigoItemFabricadoEditavel → String → Código do item fabricado em um formato editável (texto).
- CodigoComponente → Long → Código identificador único do componente que faz parte do item fabricado.
- CodigoComponenteEditavel → String → Código do componente em um formato editável (texto).
- QuantidadeNecessaria → Decimal → Quantidade necessária do componente para fabricar o item. Obrigatória na inclusão.
- QuantidadeNecessariaLiquida → Decimal → Quantidade necessária líquida do componente para fabricar o item.
- ExplodeEstrutura → Boolean → Indica se a estrutura do item será “explodida” (expandida) para mostrar os componentes internos.
- UsadoPPCP → Boolean → Indica se o item será utilizado no processo de Planejamento, Programação e Controle da Produção (PPCP).
- ConsideraCalculoCusto → Boolean → Define se o componente será incluído no cálculo de custo do item fabricado.
- RemoverItemEstrutura → Boolean? → false inclui ou altera; true remove o componente ou, sem componente no primeiro nível, exclui a estrutura inteira (veja abaixo). Obrigatório no primeiro nível; nos demais, vazio vale como false.
- ControleIndustrializacao → Integer → Define o controle de industrialização do componente. Valores padrões: 1 - Não tem controle de industrialização / 2 - Somente Entrada / 3 - Somente Saída / 4 - Entrada/Saída.
- ListaComponentes → List<CriaNovaEstruturaRequest> → Lista de componentes que compõem a estrutura do item, permitindo estruturas aninhadas.
- CaracteristicasComponente → List<CaracteristicasComponente> → Lista de características possíveis para o item. Ignorada na remoção.
Inclusão, remoção e exclusão
| Operação | Como enviar | Resultado |
|---|---|---|
| Incluir ou alterar componente | RemoverItemEstrutura false, com o componente e a QuantidadeNecessaria. | Grava o componente na estrutura do item. |
| Remover um componente | RemoverItemEstrutura true, com o componente, no primeiro nível ou dentro da ListaComponentes. | Remove o componente da estrutura do item. Não exige quantidade. |
| Excluir a estrutura inteira | No primeiro nível, RemoverItemEstrutura true, sem componente e sem ListaComponentes. | Exclui todos os componentes do item. |
| Substituir a estrutura | No primeiro nível, RemoverItemEstrutura true, sem componente e com a ListaComponentes. | Exclui a estrutura inteira e grava os componentes da lista. |
A remoção e a exclusão levam junto a especificação técnica, as especificações de análise, os indicadores e os anexos do componente removido, ou de todos os componentes do item na exclusão da estrutura inteira.
Componente cancelado ou fora de uso pode ser removido da estrutura. Na inclusão, o componente cancelado é recusado, e o fora de uso também, quando o BLOQUEIO-FORA-DE-USO está ligado.
Abaixo do primeiro nível, um item com RemoverItemEstrutura true e sem componente só é aceito se trouxer a ListaComponentes: ele serve para chegar aos componentes do subconjunto, e as remoções ficam nos itens da lista.
Material intermediário: com o controle de material intermediário ligado, e o item com acabamento, tratamento superficial ou tratamento térmico feito por terceiro, a inclusão de componente abaixo do primeiro nível grava o componente na estrutura do material intermediário do item e gera o intermediário quando ele ainda não existe. A remoção retira o componente da estrutura do intermediário e do próprio item, e não gera intermediário.
Exemplos de exclusão
Remover um componente:
[{
"CodigoItemFabricado": 123456,
"CodigoComponente": 333444,
"RemoverItemEstrutura": true
}]
Excluir a estrutura inteira:
[{
"CodigoItemFabricado": 123456,
"RemoverItemEstrutura": true
}]
Substituir a estrutura pelos componentes enviados:
[{
"CodigoItemFabricado": 123456,
"RemoverItemEstrutura": true,
"ListaComponentes": [
{
"CodigoComponente": 333444,
"QuantidadeNecessaria": 2,
"RemoverItemEstrutura": false
}
]
}]
Parâmetros
| Parâmetro | Efeito na API |
|---|---|
| API-NAO-PERMITE-EXCL-ESTRUT | Recusa a remoção de componentes, a exclusão e a substituição da estrutura pela API. |
| API-PERMITE-ALT-ESTRUTA-COM-OP | Recusa alterar a estrutura de item com ordem de produção em produção. |
| UTILIZA-ITEM-REVISADO | Recusa alterar a estrutura de item marcado como revisado. |
| NAO-EXCLUIR-ESTRUT-ITEM-REVIS | Com o item revisado em uso, mantém a estrutura dos subconjuntos revisados na exclusão da estrutura inteira. |
| UTILIZA-MATER-INTERMED | Liga o controle de material intermediário. |
| BLOQUEIO-FORA-DE-USO | Recusa incluir componente fora de uso. |
Exemplos de Retorno
Sucesso
Retorno HTTP 200.
{
"bemSucedido": true,
"mensagemFalha": null,
"novoCodigo": null,
"dados": null
}
Falha
Retorno HTTP 400, com o motivo em mensagemFalha. Nenhuma alteração da requisição é gravada.
{
"bemSucedido": false,
"mensagemFalha": "O componente COMP333 - Chapa de aço não faz parte da estrutura do item ABC123 - Conjunto soldado.",
"novoCodigo": null,
"dados": null
}
Principais recusas:
| Situação | Mensagem |
|---|---|
| Primeiro nível sem RemoverItemEstrutura | Informe se o item está sendo inserido ou removido da estrutura. |
| Item ou componente não encontrado | Item código não existe no Prosyst |
| Inclusão sem quantidade | É obrigatório que seja informada quantidade necessária. |
| Remoção de componente que não está na estrutura | O componente componente não faz parte da estrutura do item item. |
| ListaComponentes sem o item pai informado | Informe CodigoItemFabricado ou CodigoItemFabricadoEditavel no item que contém a ListaComponentes. |
| Item pai da ListaComponentes não encontrado | O item pai código, informado para a ListaComponentes, não existe no Prosyst. |
| Remoção sem componente abaixo do primeiro nível, sem ListaComponentes | Informe o componente a remover da estrutura do item item. |
| Exclusão pela API desligada | A exclusão de componentes e de estruturas pela API está desabilitada na configuração do sistema. |
| Item revisado | O item item está identificado como revisado, não é possível alterar a engenharia. |
| Item com ordem de produção em produção | Não é possível alterar a estrutura de um item com ordem de produção em andamento |
| Material intermediário não gerado | Não foi possível gerar o material intermediário do item item: motivo |