He estado mandando la solicitud con Postman y da error.
Este es mi código:
{
“DocumentLines”: [
{
“ItemCode”: “SGE-001”,
“LineVendor”: “E000001”,
“Quantity”: “11”,
}
], “RequiredDate”: “2024-10-18”
}
He estado mandando la solicitud con Postman y da error.
Este es mi código:
{
“DocumentLines”: [
{
“ItemCode”: “SGE-001”,
“LineVendor”: “E000001”,
“Quantity”: “11”,
}
], “RequiredDate”: “2024-10-18”
}
En SAP Business One (B1), al trabajar con el Service Layer y realizar solicitudes con Postman, el formato JSON es crítico para evitar errores. En tu código, hay algunos errores en la estructura JSON que pueden estar causando el problema. Aquí te doy las correcciones necesarias y algunos consejos.
"
) en lugar de comillas anguladas (“ ”
)."Quantity": "11"
.El JSON corregido quedaría de la siguiente forma:
{
"DocumentLines": [
{
"ItemCode": "SGE-001",
"LineVendor": "E000001",
"Quantity": "11"
}
],
"RequiredDate": "2024-10-18"
}
"RequiredDate"
tenga el formato correcto. En SAP Business One, generalmente acepta fechas en formato YYYY-MM-DD
."CardCode"
para el código de proveedor."Quantity"
sean del tipo correcto. Aunque es posible enviar números como cadenas ("11"
), es preferible que los valores numéricos se envíen sin comillas (11
).Si estás creando una Orden de Compra (Purchase Order), el JSON puede necesitar campos adicionales. Un ejemplo de JSON completo para una Orden de Compra sería:
{
"CardCode": "C00001",
"DocumentLines": [
{
"ItemCode": "SGE-001",
"LineVendor": "E000001",
"Quantity": 11
}
],
"RequiredDate": "2024-10-18",
"DocDueDate": "2024-10-18"
}
En este ejemplo:
"CardCode"
es el código del proveedor."DocDueDate"
es la fecha de vencimiento del documento (especifica cuándo se espera recibir el pedido).Asegúrate de que los headers en Postman estén correctamente configurados:
Content-Type
: application/json
Accept
: application/json
También es importante que estés autenticado en el Service Layer de SAP Business One. Asegúrate de haber iniciado sesión y obtenido un SessionId
válido si tu entorno lo requiere.
Si sigues obteniendo un error, verifica el mensaje de error detallado que te devuelve SAP Business One Service Layer. Esto te dará pistas sobre campos faltantes o formatos incorrectos.
Para enviar correctamente una solicitud a SAP Business One a través del Service Layer, revisa la estructura JSON para asegurar que no haya comas adicionales ni comillas incorrectas, y verifica los headers en Postman. Utiliza el formato de fecha correcto y asegúrate de que todos los campos requeridos para el documento estén presentes en el JSON.
¡Estamos aquí para ayudarte en Consultoria-SAP.com!
Hola , Gracias por tu aporte , pero el error persiste:
Código de la Solicitud:
{
"CardCode": "P000001",
"DocumentLines": [
{
"ItemCode": "SGE-001",
"LineVendor": "E000001",
"Quantity": 11,
"Required": "2024-11-18"
}
],"DocumentDate": "2024-11-14",
"RequiredDate": "2024-11-18",
"DocDueDate": "2024-11-18"
}
Error:
{
"error": {
"code": -5002,
"message": {
"lang": "en-us",
"value": "Required date is missing (1)."
}
}
}
El error “Required date is missing (1)” indica que SAP Business One está buscando el campo de fecha RequiredDate en la línea del documento, pero no lo está reconociendo con el nombre proporcionado en tu solicitud. A continuación, te explico cómo solucionar este problema.
Para la fecha de requerimiento en las líneas del documento, SAP Business One espera un campo llamado RequiredDate en lugar de Required. Asegúrate de que la estructura de tu solicitud esté correcta en cuanto a los nombres de los campos.
Prueba el siguiente JSON actualizado:
{
"CardCode": "P000001",
"DocumentLines": [
{
"ItemCode": "SGE-001",
"LineVendor": "E000001",
"Quantity": 11,
"RequiredDate": "2024-11-18" // Cambiado de "Required" a "RequiredDate"
}
],
"DocumentDate": "2024-11-14",
"RequiredDate": "2024-11-18",
"DocDueDate": "2024-11-18"
}
"Required"
por "RequiredDate"
en el objeto de "DocumentLines"
. SAP Business One espera este nombre específico para identificar la fecha requerida en cada línea de documento.Después de corregir el nombre del campo, asegúrate de que todos los demás campos están con los nombres y tipos esperados en el JSON, especialmente en los campos de fecha. La estructura que tienes debería funcionar si el Service Layer de SAP Business One está configurado correctamente.
Antes de enviar la solicitud, verifica que en Postman:
SessionId
válido.Content-Type
: application/json
Accept
: application/json
Esta corrección debería resolver el problema de “Required date is missing (1)”. Si el error persiste, puede ser útil revisar el log del Service Layer o la documentación del API para verificar que no haya cambios en la estructura esperada para el endpoint que estás utilizando.
¡Espero que esta corrección funcione! Si tienes más dudas, recuerda que estamos aquí para ayudarte en Consultoria-SAP.com.
Aunque hice los cambios, sigue presentando el error del RequiredDate o un error:
{
"error": {
"code": -2028,
"message": {
"lang": "en-us",
"value": "No matching records found (ODBC -2028)"
}
}
}
Danos más detalles, qué versión de sistema es. Qué envías, para qué, etc.