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)Código externo del producto
NameString(60)Descripción del producto
ReducedNameString(28)Descripción reducida del producto
ProductionCodeString(10)NoCódigo del producto en la producción
MaterialNoString(25)Código externo del material
PackageNoString(25)Código externo del embalaje
FamilyNoString(25)Código externo de la familia del producto
BrandNoString(25)Código externo de la marca
AnimalTypeNoString(25)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
LabelTemplateCodeIntegerNoModelo etiqueta
PreIdentificationLabel
TemplateCode
IntegerNoModelo etiqueta Pre-Identificación
PrimaryLabelTemplateCodeIntegerNoModelo etiqueta Primaria
ConditionConditionProductEnumerador con los posibles valores para la Condición del producto: cdFresh (Fresco), cdDeepChill (Refrigerado) o cdFrozen (Congelado)
SpeciesSpeciesProductEnumerador con los posibles valores para la Especie del producto: spcWhole (Entero), spcCut (Corte), spcGiblets (Menudillos), spcByProduct (Subproducto) o spcOther (Otro)
RawMaterialStateRawMaterialStateProductEnumerador con los posibles valores para el Estado del producto: stInNatura (In Natura) o stSazonado (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
ProductBranchListProductBranchListObjeto conteniendo las informaciones del producto por filial
OverwriteIfExistsBooleanNoFlag que indica que los datos deben ser sobrescritos si el registro ya existe
Nota
  • 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)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
WarehouseNoString(25)NoCódigo externo del almacén
ClassifierGridNoString(25)NoCódigo externo de la grade clasificadora
StructureNoString(25)NoCódigo externo de la estructura analítica
UnitMeasurementNoString(25)NoCódigo externo de la unidad de medida de la pieza
UnitMeasurementIndividual
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
PreIdentificationLabel
TemplateCode
IntegerNoModelo Etiqueta Pre-Identificación
PrimaryLabelTemplateCodeIntegerNoModelo Etiqueta Primaria
RegisterAgricultureMinistryCodeString(14)Número registro Ministerio de Agricultura
AgricultureMinistryNameString(180)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)
DispatchTypeDispatchTypeEnumerador 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)
OwnProductionOwnProductionEnumerador 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
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.

Retorno

ParámetroTipoObligatorioDescripción
WebServiceReturnWebServiceReturnInformaciones estándar de respuesta del WebService en la ejecución del método
ProductCodeIntegerCó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ó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])!