Produtos
O endpoint PostAddProduct é responsável pelo cadastro de um novo produto no sistema MIMS. O cadastro pode ser visualizado nas telas CAD022 e CAD223.
Como cadastrar um produto
Request HTTP POST
| Tipo da Requisição | URL Exemplo |
|---|---|
| POST | {{url_base}}/PostAddProduct |
| Exemplo | http://seuIPePorta/datasnap/rest/RESTWebServiceMethods/"PostAddProduct" |
Parâmetros de Entrada
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| ProductNo | String(25) | Sim | Código externo do produto |
| Name | String(60) | Sim | Descrição do produto |
| ReducedName | String(28) | Sim | Descrição reduzida do produto |
| ProductionCode | String(10) | Não | Código do produto na produção |
| MaterialNo | String(25) | Sim | Código externo do material |
| PackageNo | String(25) | Sim | Código externo da embalagem |
| FamilyNo | String(25) | Sim | Código externo da família do produto |
| BrandNo | String(25) | Sim | Código externo da marca |
| AnimalTypeNo | String(25) | Sim | Código externo do tipo de animal |
| IntegrationNo | String(25) | Não | Código integração do produto |
| UnitMeasurementNo | String(25) | Não | Código externo da unidade de medida da peça |
| BillingUnitMeasurementNo | String(25) | Não | Código externo da unidade de medida de faturamento |
| ValidityRuleNo | String(25) | Não | Código externo da regra de validade |
| LabelTemplateCode | Integer | Não | Modelo etiqueta |
| PreIdentificationLabel TemplateCode | Integer | Não | Modelo etiqueta Pré-Identificação |
| PrimaryLabelTemplateCode | Integer | Não | Modelo etiqueta Primária |
| Condition | ConditionProduct | Sim | Enumerador com os possíveis valores para a Condição do produto: cdFresh (Fresco), cdDeepChill (Resfriado) ou cdFrozen (Congelado) |
| Species | SpeciesProduct | Sim | Enumerador com os possíveis valores para a Espécie do produto: spcWhole (Inteiro), spcCut (Corte), spcGiblets (Miúdo), spcByProduct (Subproduto) ou spcOther (Outro) |
| RawMaterialState | RawMaterialStateProduct | Sim | Enumerador com os possíveis valores para o Estado do produto: stInNatura (In Natura) ou stSazonado (Temperado) |
| EAN13 | String(13) | Não | Código EAN 13 |
| EAN14 | String(14) | Não | Código EAN 14 |
| MaxTolerancePercentage | Float | Não | Porcentagem de tolerância máxima |
| MinTolerancePercentage | Float | Não | Porcentagem de tolerância mínima |
| AnimalsInPackageQty | Integer | Não | Quantidade de animais na embalagem |
| ProductInPackageQty | Integer | Não | Quantidade de produtos na embalagem |
| MaximumCapacity | Float | Não | Capacidade Máxima |
| AverageCapacity | Float | Não | Capacidade Média |
| MinimumCapacity | Float | Não | Capacidade Mínima |
| StandardCapacity | Float | Não | Capacidade Padrão |
| ProductBranchList | ProductBranchList | Sim | Objeto contendo as informações do produto por filial |
| OverwriteIfExists | Boolean | Não | Flag que indica que os dados devem ser sobrescritos caso o registro já exista |
Observação
- Nos parâmetros
LabelTemplateCode,PreIdentificationLabelTemplateCodeePrimaryLabelTemplateCode, validamos se o valor passado é maior que 0 e verificamos a existência apenas das etiquetas que possuem o código maior ou igual a 1000, pois são as etiquetas que possuem registro na view "VW_ETIQUETA". Se a etiqueta não estiver registrada, geramos a exceção "A etiqueta "[valor enviado na requisição]" informada não foi encontrada!" - Nos parâmetros
FamilyNo,BrandNoeAnimalTypeNo, quando a requisição for uma alteração de produto e o valor informado for igual ao texto de integração padrão (definido na variável StandardIntegration do arquivo INI), o sistema não atualiza o valor desses campos. Nesses casos, o valor já existente no cadastro do produto será mantido. - Certifique-se de que os parâmetros
ProductNo,MaterialNo,PackageNo,FamilyNo,BrandNo,AnimalTypeNoe outros códigos externos sejam válidos e não duplicados no sistema MIMS.
📝 Objeto ProductBranchList
O objeto ProductBranchList representa uma lista de informações do produto por filial.
Parâmetros de Entrada
Parâmetros Tipo Obrigatório Descrição BranchNo String(25) Sim Código externo da filial Name String(120) Não Descrição do produto na filial ProductionGroupNo String(25) Não Código externo do grupo de produção WarehouseNo String(25) Não Código externo do almoxarifado ClassifierGridNo String(25) Não Código externo da grade classificadora StructureNo String(25) Não Código externo da estrutura analítica UnitMeasurementNo String(25) Não Código externo da unidade de medida da peça UnitMeasurementIndividual
UnitNoString(25) Não Código externo da unidade de medida da unidade individual StockSequestrationDays Integer Não Dias sequestro em estoque ToleranceStandardDateDays Integer Não Dias de tolerância da data padrão DefaultQuantityinPallet Integer Não Quantidade padrão de embalagens para montagem do palete UnidPartQty Integer Não Quantidade de peças por unidade AnimalsInPackageQty Integer Não Quantidade de animais na embalagem ProductInPackageQty Integer Não Quantidade de produtos na embalagem MinRawMaterialPercentage Float Não Porcentagem mínima de produto matéria-prima WeightToleranceUpon
GroupedWeighingPercentageFloat Não Porcentagem de tolerância de peso na Pesagem Agrupada MaxTolerancePercentage Float Não Porcentagem de tolerância máxima do peso MinTolerancePercentage Float Não Porcentagem de tolerância mínima do peso PreIdentificationLabel
TemplateCodeInteger Não Modelo Etiqueta Pré-Identificação PrimaryLabelTemplateCode Integer Não Modelo Etiqueta Primária RegisterAgricultureMinistryCode String(14) Sim Número registro Ministério da Agricultura AgricultureMinistryName String(180) Sim Descrição no Ministério da Agricultura IdentifiesType IdentifiesType Não Enumerador com os possíveis valores para o Tipo de Identificação do produto: itOpticalReading(Leitura Óptica) ouitManualTyping(Digitação Manual)DispatchType DispatchType Sim Enumerador com os possíveis valores para o Tipo de Expedição do produto: dtOpticalReading(Leitura Óptica),dtManualDispatching(Expedição Manual),dtAutomaticDispatching(Expedição Automática) oudtInBulk(A Granel)OwnProduction OwnProduction Sim Enumerador com os possíveis valores para Produção Própria: opYes(Sim),opNo(Não) ouopBoth(Ambos)IsInactive Boolean Não Flag que indica que o produto está inativo IsTunnelControlDisabled Boolean Não Flag que indica que o Controle de Túneis está Inativo OverwriteIfExists Boolean Não Flag que indica que os dados devem ser sobrescritos caso o registro já exista Observação
- Nos parâmetros
PreIdentificationLabelTemplateCodeePrimaryLabelTemplateCode, validamos se o valor passado é maior que 0 e verificamos a existência apenas das etiquetas que possuem o código maior ou igual a 1000, pois são as etiquetas que possuem registro na view "VW_ETIQUETA". Se a etiqueta não estiver registrada, geramos a exceção "A etiqueta "[valor enviado na requisição]" informada não foi encontrada!"- Nos parâmetros
ClassifierGridNo,WarehouseNoeProductionGroupNo, quando a requisição for uma alteração de produto e o valor informado for igual ao texto de integração padrão (definido na variável StandardIntegration do arquivo INI), o sistema não atualiza o valor desses campos. Nesses casos, o valor já existente no cadastro do produto será mantido.
Retorno
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| WebServiceReturn | WebServiceReturn | Sim | Informações padrão de resposta do WebService na execução do método |
| ProductCode | Integer | Sim | Código interno do produto gerado no sistema MIMS |
Exemplo de Request
curl --location 'http://seuIPePorta/datasnap/rest/RESTWebServiceMethods/"PostAddProduct"' \
--header 'Content-Type: application/json' \
--data '{
"ProductNo": "PROD001",
"Name": "Nome do produto Teste",
"ReducedName": "Produto Teste",
"ProductionCode": "FRG001",
"MaterialNo": "MATE123",
"PackageNo": "EMBA123",
"FamilyNo": "FAMI123",
"BrandNo": "MARC123",
"AnimalTypeNo": "TPAVE123",
"IntegrationNo": "INT123456",
"UnitMeasurementNo": "UN",
"BillingUnitMeasurementNo": "UN",
"ValidityRuleNo": "VALI123",
"LabelTemplateCode": 5011,
"PreIdentificationLabelTemplateCode": 5014,
"PrimaryLabelTemplateCode": 5015,
"Condition": "cdFresh",
"Species": "spcCut",
"RawMaterialState": "stInNatura",
"EAN13": "1234567899874",
"EAN14": "12345678998745",
"MaxTolerancePercentage": 85,
"MinTolerancePercentage": 60,
"AnimalsInPackageQty": 10,
"ProductInPackageQty": 30,
"MaximumCapacity": 100,
"AverageCapacity": 50,
"MinimumCapacity": 20,
"StandardCapacity": 60,
"OverwriteIfExists": true,
"ProductBranchList":[
{
"BranchNo": "BR001",
"Name": "Produto Exemplo - Filial",
"ProductionGroupNo": "GRP001",
"ClassifierGridNo": "CLF001",
"WarehouseNo": "WH001",
"StructureNo": "STR001",
"UnitMeasurementNo": "UND001",
"UnitMeasurementIndividualUnitNo": "UNDIND001",
"StockSequestrationDays": 7,
"ToleranceStandardDateDays": 3,
"DefaultQuantityinPallet": 20,
"UnidPartQty": 10,
"AnimalsInPackageQty": 5,
"ProductInPackageQty": 50,
"MinRawMaterialPercentage": 1.5,
"WeightToleranceUponGroupedWeighingPercentage": 2.0,
"MaxTolerancePercentage": 4.0,
"MinTolerancePercentage": 1.0,
"PreIdentificationLabelTemplateCode": 1001,
"PrimaryLabelTemplateCode": 1002,
"RegisterAgricultureMinistryCode": "REG1234567890",
"AgricultureMinistryName": "Ministério da Agricultura - Unidade Exemplo",
"IdentifiesType": "itOpticalReading",
"DispatchType": "dtAutomaticDispatching",
"OwnProduction": "opYes",
"IsInactive": false,
"IsTunnelControlDisabled": false,
"OverwriteIfExists": true
}
]
}'
Exemplo de Response
{
"WebServiceReturn": {
"Status": "wrsSuccess",
"ErrorCode": "",
"Message": "",
"Actor": "",
"ReturnQuestion": null
},
"ProductCode": 789
}
🐞 Possíveis Erros
| Código | Mensagem |
|---|---|
| APR‑001 | Parâmetro "Código Externo do Produto (ProductNo)" informado já existe! |
| APR‑002 | A etiqueta "LabelTemplateCode" informada não foi encontrada! |
| APR‑002 | A etiqueta "PreIdentificationLabelTemplateCode" informada não foi encontrada! |
| APR‑002 | A etiqueta "PrimaryLabelTemplateCode" informada não foi encontrada! |
| APR‑002 | A etiqueta "PreIdentificationLabelTemplateCode" informada não foi encontrada! |
| APR‑003 | O parâmetro "Capacidade Padrão (StandardCapacity)" e o parâmetro "Capacidade Média (AverageCapacity)" não foram informados. Informe pelo menos um! |
| APR‑004 | O parâmetro "Capacidade Padrão (StandardCapacity)" da Embalagem não pode ser inferior ao parâmetro "Capacidade Mínima (MinimumCapacity)"! |
| APR‑005 | O parâmetro "Capacidade Média (AverageCapacity)" da Embalagem não pode ser inferior ao parâmetro "Capacidade Mínima (MinimumCapacity)"! |
| APR‑006 | O parâmetro "Capacidade Máxima (MaximumCapacity)" da Embalagem não pode ser inferior ao parâmetro "Capacidade Mínima (MinimumCapacity)"! |
| APR‑007 | O parâmetro "Capacidade Padrão (StandardCapacity)" da Embalagem não pode ser superior ao parâmetro "Capacidade Máxima (MaximumCapacity)"! |
| APR‑008 | O parâmetro "Capacidade Média (AverageCapacity)" da Embalagem não pode ser superior ao parâmetro "Capacidade Máxima (MaximumCapacity)"! |
| APR‑009 | O parâmetro "Capacidade Mínima (MinimumCapacity)" da Embalagem não pode ser superior ao parâmetro "Capacidade Máxima (MaximumCapacity)"! |
| APR‑010 | O parâmetro "Tolerância mínima (MinimumTolerancePercentage)" não pode ser maior que o parâmetro "Tolerância máxima (MaximumTolerancePercentage)"! |
| APR‑011 | O parâmetro "Código da Produção (ProductionCode)" excedeu o tamanho máximo de "[Quantidade máxima de caracteres permitida para o código de produção do produto]" caracteres! |
| APR‑012 | O parâmetro "Código da Produção (ProductionCode)" já está vinculado com outro produto! |
| APR‑013 | Existe cadastro de produto com a embalagem ([valor enviado na requisição]) e material ([valor enviado na requisição]) vinculado a outro código externo de produto ([código externo do produto encontrado])! |