Saltar al contenido principal

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 SolicitudURL Ejemplo
POST{{url_base}}/PostAddProduct
Ejemplohttp://seuIPePorta/datasnap/rest/RESTWebServiceMethods/"PostAddProduct"

Parámetros de Entrada​

ParámetroTipoObligatorioDescripción
ProductNoString(25)SíCódigo externo del producto
NameString(60)SíDescripción del producto
ReducedNameString(28)SíDescripción reducida del producto
ProductionCodeString(10)NoCódigo del producto en la producción
MaterialNoString(25)SíCódigo externo del material
PackageNoString(25)SíCódigo externo del embalaje
FamilyNoString(25)SíCódigo externo de la familia del producto
BrandNoString(25)SíCódigo externo de la marca
AnimalTypeNoString(25)SíCódigo externo del tipo de animal
IntegrationNoString(25)NoCódigo de integración del producto
UnitMeasurementNoString(25)NoCódigo externo de la unidad de medida de la pieza
BillingUnitMeasurementNoString(25)NoCódigo externo de la unidad de medida de facturación
ValidityRuleNoString(25)NoCódigo externo de la regla de validez
ExpirationDaysIntegerNoCantidad de días de validez del producto
LabelTemplateCodeIntegerNoModelo etiqueta
PreIdentificationLabel
TemplateCode
IntegerNoModelo etiqueta Pre-Identificación
PrimaryLabelTemplateCodeIntegerNoModelo etiqueta Primaria
ConditionConditionProductSíEnumerador con los posibles valores para la Condición del producto: cdFresh (Fresco), cdDeepChill (Refrigerado) o cdFrozen (Congelado)
SpeciesSpeciesProductSíEnumerador con los posibles valores para la Especie del producto: spcWhole (Entero), spcCut (Corte), spcGiblets (Menudillos), spcByProduct (Subproducto) o spcOther (Otro)
RawMaterialStateRawMaterialStateProductSíEnumerador con los posibles valores para el Estado del producto: mspInNatura (In Natura) o mspSazonado (Sazonado)
EAN13String(13)NoCódigo EAN 13
EAN14String(14)NoCódigo EAN 14
MaxTolerancePercentageFloatNoPorcentaje de tolerancia máxima
MinTolerancePercentageFloatNoPorcentaje de tolerancia mínima
AnimalsInPackageQtyIntegerNoCantidad de animales en el embalaje
ProductInPackageQtyIntegerNoCantidad de productos en el embalaje
MaximumCapacityFloatNoCapacidad Máxima
AverageCapacityFloatNoCapacidad Media
MinimumCapacityFloatNoCapacidad Mínima
StandardCapacityFloatNoCapacidad Estándar
ProductBranchListProductBranchListSíObjeto conteniendo las informaciones del producto por filial
OverwriteIfExistsBooleanNoFlag que indica que los datos deben ser sobrescritos si el registro ya existe
Nota
  • La validez del producto puede informarse mediante el parámetro ValidityRuleNo o mediante el parámetro ExpirationDays; al menos uno de los dos debe ser informado. Cuando se envían ambos, el ValidityRuleNo tiene precedencia. Al informar ExpirationDays, el sistema busca una regla de validez registrada en días con esa misma cantidad y, cuando no encuentra ninguna, registra automáticamente una nueva regla con esa cantidad de días.
  • En los parámetros LabelTemplateCode, PreIdentificationLabelTemplateCode y PrimaryLabelTemplateCode, 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, BrandNo y AnimalTypeNo, 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, AnimalTypeNo y 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ámetrosTipoObligatorioDescripción
BranchNoString(25)SíCódigo externo de la filial
NameString(120)NoDescripción del producto en la filial
ProductionGroupNoString(25)NoCódigo externo del grupo de producción
ProductionStructureNoString(25)NoCódigo externo de la estructura de producción predeterminada en la que el producto puede ser producido
WarehouseNoString(25)NoCódigo externo del almacén
ClassifierGridNoString(25)NoCódigo externo de la grade clasificadora
UnitMeasurementNoString(25)NoCódigo externo de la unidad de medida de la pieza
UnitMeasurementIndi
UnitNo
String(25)NoCódigo externo de la unidad de medida de la unidad individual
StockSequestrationDaysIntegerNoDías secuestro en stock
ToleranceStandardDateDaysIntegerNoDías de tolerancia de la fecha estándar
DefaultQuantityinPalletIntegerNoCantidad estándar de embalajes para montaje del pallet
UnidPartQtyIntegerNoCantidad de piezas por unidad
AnimalsInPackageQtyIntegerNoCantidad de animales en el embalaje
ProductInPackageQtyIntegerNoCantidad de productos en el embalaje
MinRawMaterialPercentageFloatNoPorcentaje mínimo de producto materia prima
WeightToleranceUpon
GroupedWeighingPercentage
FloatNoPorcentaje de tolerancia de peso en la Pesada Agrupada
MaxTolerancePercentageFloatNoPorcentaje de tolerancia máxima del peso
MinTolerancePercentageFloatNoPorcentaje de tolerancia mínima del peso
LabelTemplateCodeIntegerNoModelo Etiqueta
PreIdentificationLabel
TemplateCode
IntegerNoModelo Etiqueta Pre-Identificación
PrimaryLabelTemplateCodeIntegerNoModelo Etiqueta Primaria
RegisterAgricultureMinistryCodeString(14)SíNúmero registro Ministerio de Agricultura
AgricultureMinistryNameString(180)SíDescripción en el Ministerio de Agricultura
IdentifiesTypeIdentifiesTypeNoEnumerador con los posibles valores para el Tipo de Identificación del producto: itOpticalReading (Lectura Óptica) o itManualTyping (Digitación Manual)
DispatchTypeDispatchTypeSí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) o dtInBulk (A Granel)
OwnProductionOwnProductionSíEnumerador con los posibles valores para Producción Propia: opYes (Sí), opNo (No) o opBoth (Ambos)
IsInactiveBooleanNoFlag que indica que el producto está inactivo
IsTunnelControlDisabledBooleanNoFlag que indica que el Control de Túneles está Inactivo
ControlsSecondaryMaterial
Traceability
BooleanNoFlag que indica que el producto controla la trazabilidad de material secundario
PrimaryTareFloatNoTara primaria adicional del producto en la filial
UpdatePrimaryTareBooleanNoFlag que indica que la PrimaryTare debe grabarse exactamente como se informó, incluso con valor cero
OverwriteIfExistsBooleanNoFlag que indica que los datos deben ser sobrescritos si el registro ya existe
Nota
  • En los parámetros PreIdentificationLabelTemplateCode y PrimaryLabelTemplateCode, 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, WarehouseNo y ProductionGroupNo, 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.
  • El parámetro ProductionStructureNo vincula el producto a la estructura de producción en la que puede ser producido. La estructura informada debe pertenecer a la sucursal informada en BranchNo.
  • En el parámetro ControlsSecondaryMaterialTraceability, cuando la solicitud sea una modificación de producto y el control de trazabilidad de material secundario ya esté activo en la sucursal, el sistema no desactiva este control, aunque el valor informado sea false. Es decir, mediante la API, en una modificación, solo es posible activar este control.
  • En los parámetros PrimaryTare y UpdatePrimaryTare, por defecto la tara primaria solo se graba cuando el valor informado es mayor que cero; de lo contrario, en una modificación se mantiene el valor actual y en una inclusión se graba cero. Para grabar el valor exactamente como se informó (incluso cero, para poner la tara en cero), envíe UpdatePrimaryTare como true.

Retorno​

ParámetroTipoObligatorioDescripción
WebServiceReturnWebServiceReturnSíInformaciones estándar de respuesta del WebService en la ejecución del método
ProductCodeIntegerSí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": "mspInNatura",
"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",
"ProductionStructureNo": "EST001",
"ClassifierGridNo": "CLF001",
"WarehouseNo": "WH001",
"UnitMeasurementNo": "UND001",
"UnitMeasurementIndiUnitNo": "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,
"LabelTemplateCode": 1000,
"PreIdentificationLabelTemplateCode": 1001,
"PrimaryLabelTemplateCode": 1002,
"RegisterAgricultureMinistryCode": "REG1234567890",
"AgricultureMinistryName": "Ministerio de Agricultura - Unidad Ejemplo",
"IdentifiesType": "itOpticalReading",
"DispatchType": "dtAutomaticDispatching",
"OwnProduction": "opYes",
"IsInactive": false,
"IsTunnelControlDisabled": false,
"ControlsSecondaryMaterialTraceability": false,
"PrimaryTare": 0.05,
"UpdatePrimaryTare": false,
"OverwriteIfExists": true
}
]
}'

Ejemplo de Response​

{
"WebServiceReturn": {
"Status": "wrsSuccess",
"ErrorCode": "",
"Message": "",
"Actor": "",
"ReturnQuestion": null
},
"ProductCode": 789
}

🐞 Posibles Errores​

CódigoMensaje
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])!
APR‑014No se informó el parámetro Código Externo de la Regla de Validez (ValidityRuleNo) y el parámetro Cantidad de Días de Validez (ExpirationDays). ¡Reporta al menos uno!
APR‑015¡El código de producto externo ([valor enviado en la solicitud]) ya está registrado con otro material y otro embalaje y posee registros de producción, por lo que no puede vincularse al material ([valor enviado en la solicitud]) y al embalaje ([valor enviado en la solicitud])!
APR‑016¡La estructura de producción informada ([valor enviado en la solicitud]) pertenece a otra sucursal y no puede vincularse al producto en la sucursal ([valor enviado en la solicitud])!
APR‑017¡La sucursal informada ([valor enviado en la solicitud]) no posee unidad de faena registrada, por lo que la estructura de producción ([valor enviado en la solicitud]) no puede vincularse al producto!