Productos
El endpoint PostAddProduct es responsable del registro de un nuevo producto en el sistema MIMS. El registro puede ser visualizado en las pantallas CAD022 y CAD223.
Cómo registrar un producto
Request HTTP POST
| Tipo de Solicitud | URL Ejemplo |
|---|---|
| POST | {{url_base}}/PostAddProduct |
| Ejemplo | http://seuIPePorta/datasnap/rest/RESTWebServiceMethods/"PostAddProduct" |
Parámetros de Entrada
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ProductNo | String(25) | Sí | Código externo del producto |
| Name | String(60) | Sí | Descripción del producto |
| ReducedName | String(28) | Sí | Descripción reducida del producto |
| ProductionCode | String(10) | No | Código del producto en la producción |
| MaterialNo | String(25) | Sí | Código externo del material |
| PackageNo | String(25) | Sí | Código externo del embalaje |
| FamilyNo | String(25) | Sí | Código externo de la familia del producto |
| BrandNo | String(25) | Sí | Código externo de la marca |
| AnimalTypeNo | String(25) | Sí | Código externo del tipo de animal |
| IntegrationNo | String(25) | No | Código de integración del producto |
| UnitMeasurementNo | String(25) | No | Código externo de la unidad de medida de la pieza |
| BillingUnitMeasurementNo | String(25) | No | Código externo de la unidad de medida de facturación |
| ValidityRuleNo | String(25) | No | Código externo de la regla de validez |
| LabelTemplateCode | Integer | No | Modelo etiqueta |
| PreIdentificationLabel TemplateCode | Integer | No | Modelo etiqueta Pre-Identificación |
| PrimaryLabelTemplateCode | Integer | No | Modelo etiqueta Primaria |
| Condition | ConditionProduct | Sí | Enumerador con los posibles valores para la Condición del producto: cdFresh (Fresco), cdDeepChill (Refrigerado) o cdFrozen (Congelado) |
| Species | SpeciesProduct | Sí | Enumerador con los posibles valores para la Especie del producto: spcWhole (Entero), spcCut (Corte), spcGiblets (Menudillos), spcByProduct (Subproducto) o spcOther (Otro) |
| RawMaterialState | RawMaterialStateProduct | Sí | Enumerador con los posibles valores para el Estado del producto: stInNatura (In Natura) o stSazonado (Sazonado) |
| EAN13 | String(13) | No | Código EAN 13 |
| EAN14 | String(14) | No | Código EAN 14 |
| MaxTolerancePercentage | Float | No | Porcentaje de tolerancia máxima |
| MinTolerancePercentage | Float | No | Porcentaje de tolerancia mínima |
| AnimalsInPackageQty | Integer | No | Cantidad de animales en el embalaje |
| ProductInPackageQty | Integer | No | Cantidad de productos en el embalaje |
| MaximumCapacity | Float | No | Capacidad Máxima |
| AverageCapacity | Float | No | Capacidad Media |
| MinimumCapacity | Float | No | Capacidad Mínima |
| StandardCapacity | Float | No | Capacidad Estándar |
| ProductBranchList | ProductBranchList | Sí | Objeto conteniendo las informaciones del producto por filial |
| OverwriteIfExists | Boolean | No | Flag que indica que los datos deben ser sobrescritos si el registro ya existe |
Nota
- En los parámetros
LabelTemplateCode,PreIdentificationLabelTemplateCodeyPrimaryLabelTemplateCode, validamos si el valor pasado es mayor que 0 y verificamos la existencia solo de las etiquetas que poseen el código mayor o igual a 1000, pues son las etiquetas que poseen registro en la view "VW_ETIQUETA". Si la etiqueta no está registrada, generamos la excepción "¡La etiqueta "[valor enviado en la solicitud]" informada no fue encontrada!" - En los parámetros
FamilyNo,BrandNoyAnimalTypeNo, cuando la solicitud sea una modificación de producto y el valor informado sea igual al texto de integración estándar (definido en la variable StandardIntegration del archivo INI), el sistema no actualiza el valor de estos campos. En estos casos, el valor ya existente en el registro del producto será mantenido. - Asegúrese de que los parámetros
ProductNo,MaterialNo,PackageNo,FamilyNo,BrandNo,AnimalTypeNoy otros códigos externos sean válidos y no duplicados en el sistema MIMS.
📝 Objeto ProductBranchList
El objeto ProductBranchList representa una lista de informaciones del producto por filial.
Parámetros de Entrada
Parámetros Tipo Obligatorio Descripción BranchNo String(25) Sí Código externo de la filial Name String(120) No Descripción del producto en la filial ProductionGroupNo String(25) No Código externo del grupo de producción WarehouseNo String(25) No Código externo del almacén ClassifierGridNo String(25) No Código externo de la grade clasificadora StructureNo String(25) No Código externo de la estructura analítica UnitMeasurementNo String(25) No Código externo de la unidad de medida de la pieza UnitMeasurementIndividual
UnitNoString(25) No Código externo de la unidad de medida de la unidad individual StockSequestrationDays Integer No Días secuestro en stock ToleranceStandardDateDays Integer No Días de tolerancia de la fecha estándar DefaultQuantityinPallet Integer No Cantidad estándar de embalajes para montaje del pallet UnidPartQty Integer No Cantidad de piezas por unidad AnimalsInPackageQty Integer No Cantidad de animales en el embalaje ProductInPackageQty Integer No Cantidad de productos en el embalaje MinRawMaterialPercentage Float No Porcentaje mínimo de producto materia prima WeightToleranceUpon
GroupedWeighingPercentageFloat No Porcentaje de tolerancia de peso en la Pesada Agrupada MaxTolerancePercentage Float No Porcentaje de tolerancia máxima del peso MinTolerancePercentage Float No Porcentaje de tolerancia mínima del peso PreIdentificationLabel
TemplateCodeInteger No Modelo Etiqueta Pre-Identificación PrimaryLabelTemplateCode Integer No Modelo Etiqueta Primaria RegisterAgricultureMinistryCode String(14) Sí Número registro Ministerio de Agricultura AgricultureMinistryName String(180) Sí Descripción en el Ministerio de Agricultura IdentifiesType IdentifiesType No Enumerador con los posibles valores para el Tipo de Identificación del producto: itOpticalReading(Lectura Óptica) oitManualTyping(Digitación Manual)DispatchType DispatchType Sí Enumerador con los posibles valores para el Tipo de Expedición del producto: dtOpticalReading(Lectura Óptica),dtManualDispatching(Expedición Manual),dtAutomaticDispatching(Expedición Automática) odtInBulk(A Granel)OwnProduction OwnProduction Sí Enumerador con los posibles valores para Producción Propia: opYes(Sí),opNo(No) oopBoth(Ambos)IsInactive Boolean No Flag que indica que el producto está inactivo IsTunnelControlDisabled Boolean No Flag que indica que el Control de Túneles está Inactivo OverwriteIfExists Boolean No Flag que indica que los datos deben ser sobrescritos si el registro ya existe Nota
- En los parámetros
PreIdentificationLabelTemplateCodeyPrimaryLabelTemplateCode, validamos si el valor pasado es mayor que 0 y verificamos la existencia solo de las etiquetas que poseen el código mayor o igual a 1000, pues son las etiquetas que poseen registro en la view "VW_ETIQUETA". Si la etiqueta no está registrada, generamos la excepción "¡La etiqueta "[valor enviado en la solicitud]" informada no fue encontrada!"- En los parámetros
ClassifierGridNo,WarehouseNoyProductionGroupNo, cuando la solicitud sea una modificación de producto y el valor informado sea igual al texto de integración estándar (definido en la variable StandardIntegration del archivo INI), el sistema no actualiza el valor de estos campos. En estos casos, el valor ya existente en el registro del producto será mantenido.
Retorno
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| WebServiceReturn | WebServiceReturn | Sí | Informaciones estándar de respuesta del WebService en la ejecución del método |
| ProductCode | Integer | Sí | Código interno del producto generado en el sistema MIMS |
Ejemplo de Request
curl --location 'http://seuIPePorta/datasnap/rest/RESTWebServiceMethods/"PostAddProduct"' \
--header 'Content-Type: application/json' \
--data '{
"ProductNo": "PROD001",
"Name": "Nombre del producto Prueba",
"ReducedName": "Producto Prueba",
"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": "Producto Ejemplo - 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": "Ministerio de Agricultura - Unidad Ejemplo",
"IdentifiesType": "itOpticalReading",
"DispatchType": "dtAutomaticDispatching",
"OwnProduction": "opYes",
"IsInactive": false,
"IsTunnelControlDisabled": false,
"OverwriteIfExists": true
}
]
}'
Ejemplo de Response
{
"WebServiceReturn": {
"Status": "wrsSuccess",
"ErrorCode": "",
"Message": "",
"Actor": "",
"ReturnQuestion": null
},
"ProductCode": 789
}
🐞 Posibles Errores
| Código | Mensaje |
|---|---|
| APR‑001 | ¡El parámetro "Código Externo del Producto (ProductNo)" informado ya existe! |
| APR‑002 | ¡La etiqueta "LabelTemplateCode" informada no fue encontrada! |
| APR‑002 | ¡La etiqueta "PreIdentificationLabelTemplateCode" informada no fue encontrada! |
| APR‑002 | ¡La etiqueta "PrimaryLabelTemplateCode" informada no fue encontrada! |
| APR‑002 | ¡La etiqueta "PreIdentificationLabelTemplateCode" informada no fue encontrada! |
| APR‑003 | ¡Los parámetros "Capacidad Estándar (StandardCapacity)" y "Capacidad Media (AverageCapacity)" no fueron informados. Informe al menos uno! |
| APR‑004 | ¡El parámetro "Capacidad Estándar (StandardCapacity)" del Embalaje no puede ser inferior al parámetro "Capacidad Mínima (MinimumCapacity)"! |
| APR‑005 | ¡El parámetro "Capacidad Media (AverageCapacity)" del Embalaje no puede ser inferior al parámetro "Capacidad Mínima (MinimumCapacity)"! |
| APR‑006 | ¡El parámetro "Capacidad Máxima (MaximumCapacity)" del Embalaje no puede ser inferior al parámetro "Capacidad Mínima (MinimumCapacity)"! |
| APR‑007 | ¡El parámetro "Capacidad Estándar (StandardCapacity)" del Embalaje no puede ser superior al parámetro "Capacidad Máxima (MaximumCapacity)"! |
| APR‑008 | ¡El parámetro "Capacidad Media (AverageCapacity)" del Embalaje no puede ser superior al parámetro "Capacidad Máxima (MaximumCapacity)"! |
| APR‑009 | ¡El parámetro "Capacidad Mínima (MinimumCapacity)" del Embalaje no puede ser superior al parámetro "Capacidad Máxima (MaximumCapacity)"! |
| APR‑010 | ¡El parámetro "Tolerancia mínima (MinimumTolerancePercentage)" no puede ser mayor que el parámetro "Tolerancia máxima (MaximumTolerancePercentage)"! |
| APR‑011 | ¡El parámetro "Código de la Producción (ProductionCode)" excedió el tamaño máximo de "[Cantidad máxima de caracteres permitida para el código de producción del producto]" caracteres! |
| APR‑012 | ¡El parámetro "Código de la Producción (ProductionCode)" ya está vinculado con otro producto! |
| APR‑013 | ¡Existe registro de producto con el embalaje ([valor enviado en la solicitud]) y material ([valor enviado en la solicitud]) vinculado a otro código externo de producto ([código externo del producto encontrado])! |