Produtos
Descrição
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 novo 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 registada, geramos a exceção “A etiqueta "%s" informada não foi encontrada!” - 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
Descrição
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 HasInactiveTunnelControl 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 registada, geramos a exceção “A etiqueta "%s" informada não foi encontrada!”- Nos parâmetros
WarehouseNo,ClassifierGridNoeStructureNo, 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,
"HasInactiveTunnelControl": false,
"OverwriteIfExists": true
}
]
}'
Exemplo de Response
{
"WebServiceReturn": {
"Status": "wrsSuccess",
"ErrorCode": "",
"Message": "",
"Actor": "",
"ReturnQuestion": null
},
"ProductCode": 789
}