actualmente estoy creando un procedimiento para subir ordenes por medio de DI API a SAP, pero como puedo enviar esas ordenes(Pedidos) que vayan a autorización.
también tengo un problema de que me esta creando 2 veces el mismo documento.
actualmente estoy utilizando este codigo:
Dim vOrder As SAPbobsCOM.Documents
vOrder = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders)
vOrder.CardCode = "CCS-0001"
vOrder.DocDate = Date.Now
vOrder.DocDueDate = Date.Now
vOrder.NumAtCard = "123456"
vOrder.Comments = "PRUEBA"
vOrder.DocCurrency = "LPS"
vOrder.UserFields.Fields.Item("U_Desc").Value = "S"
vOrder.Lines.ItemCode = "COMB-0010"
vOrder.Lines.Quantity = "10"
vOrder.Lines.UnitPrice = "500.00"
vOrder.Add()
If vOrder.Add() <> 0 Then
MsgBox("Ocurrio un error " & oCompany.GetLastErrorDescription)
Exit Sub
Else
MsgBox("Se a subido el docuemnto preeliminar con exito " & oCompany.GetNewObjectKey)
End If
pero estoy insertando un precio menor que el actual deberia ir a autorizacion como consigo eso, aunque ya le puse en un campo definido por el usuario que si requiere autorizacion vOrder.UserFields.Fields.Item(“U_Desc”).Value = “S”
para ver si esta siendo llamada mas de una vez por distintos eventos.
verifica que en el menu Gestion → Inicializacion del Sistema → Parametrizaciones Generales → Pestaña “Socios de Negocios” se encuentre habilitada la opcion “Activar Procedimientos de Aprobacion en DI”
En DI API no es posible desencadenar procedimientos de aprobación basados en consultas de usuario, porque no es posible obtener el valor definido por el usuario de FMS (búsqueda formateada). Solo puedes desencadenar con las condicines “Siempre” o con las predefinidas por el sistema.
Para activar un autorizacion por la DI API aca un ejemplo:
Documents oDoc = oCompany.GetBusinessObject(BoObjectTypes.oOrders);
oDoc.CardCode = "C00007";
oDoc.DocDueDate = DateTime.Now;
oDoc.Lines.ItemCode = "LM4029SB";
oDoc.Lines.Quantity = 2;
oDoc.GetApprovalTemplates();
if (oDoc.Document_ApprovalRequests.Count > 0 && oDoc.Document_ApprovalRequests.ApprovalTemplatesID > 0)
{
//Your document will fire an approval procedure
//If you want to add some remarks to your approval you can do this
oDoc.Document_ApprovalRequests.SetCurrentLine(0);
oDoc.Document_ApprovalRequests.Remarks = "Add Doc from DI";
}
if (oDoc.Add() != 0)
MessageBox.Show(oCompany.GetLastErrorDescription());
else
MessageBox.Show(oCompany.GetNewObjectKey());
Hola @GabrielGS gracias por el apórte, solo que creo que no me di a entender, por ejemplo en SAP¨cuando el usuario crea un pedido y este lleva un precio menor que el que esta asignado en la lista automaticamente se va a una autorizacion a un usuario profesional y que llega por medio de mensaje una vez el usuario profesional lo aprueba se devuelve el mensaje al usuario inicial y este ya puede crearlo en SAP y hasta en ese momento se guarda en las tablas ORDR y RDR1.
es posible que los pedidos subidos por DI API que vayan con estas alteraciones tambien pasen por este procedimiento?
Entonces no olvides marcar su respuesta como solución, esto es un gran gesto para agradecer su aportación además que deja una línea marcada para quienes tengan la misma duda.
buenas tardes,
es que esta no es una solución para mi problema o para lo que yo quiero hacer, aun estoy esperando si me ayudan con mi respuesta anterior.
En los puntos 3 y 4 de mi respuesta, esta lo que buscas.
Ahora la pregunta es: ¿Que tipo de Autorizacion estan usando actualmente para validar esto?:
“cuando el usuario crea un pedido y este lleva un precio menor que el que esta asignado en la lista automaticamente se va a una autorizacion”
Porque si estan validando el documento por linea (detalle), alli hay una serie de programaciones implicitas, y para poder activar eso por DI-API sera un poco mas complejo.
¿Puedes aclarar como esta hecha dicha autorizacion?.
gracias por tomar tu tiempo para apoyar a usuarios como yo.
actualmente nuestra autorizacion es asi>
“cuando el usuario crea un pedido y este lleva un precio menor que el que esta asignado en la lista automaticamente se va a una autorizacion” basados en un campo de usuario asignado al detalle del pedido.
@GabrielGS Amigo yo estaba haciendo las cosas mal, de primer momento no entendí tu respuesta anterior así que la solución es como me lo habías mencionado anteriormente. y tratare de hacer 2 procedimientos des VB.Net para validar cuando un documento se va a ir a autorización y cuando se guardara directamente…