¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo solucionar el error java.lang.ClassCastException al enviar mensajes con DI API en SAP Business One

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 17 Vistas
0
Cargando...

Hola,

Intento enviar un mensaje usando DI API, hago referencia a un ejemplo en SAP\SAP Business One SDK\Samples\COM DI\VB.NET\10.Messages Service pero al intentar ejecutarlo, obtengo el error java.lang.ClassCastException: com.sap.smb.sbo.wrapper.com.Dispatch no se puede convertir a com.sap.smb.sbo.api.IMessage

Aquí está mi código en Java:

IMessage oMessage = null;

IMessageDataColumns pMessageDataColumns = null;

IMessageDataColumn pMessageDataColumn = null;

IMessageDataLines oLines = null;

IMessageDataLine oLine = null;

IRecipientCollection oRecipientCollection = null;

try {

ICompanyService oCompany = company.getCompanyService();

IMessagesService oMsgServ = SBOCOMUtil.newMessagesService(oCompany);

// obtener la interfaz de datos para el nuevo mensaje

oMessage = (IMessage) oMsgServ.getDataInterface(SBOCOMConstants.MessagesServiceDataInterfaces_msdiMessage);

// completar asunto

oMessage.setSubject("Prueba");

oMessage.setText("Prueba de envío de mensaje");

// Agregar destinatario

oRecipientCollection = oMessage.getRecipientCollection();

oRecipientCollection.add();

// enviar mensaje interno

oRecipientCollection.item(0).setSendInternal(SBOCOMConstants.BoYesNoEnum_tYES);

// agregar nombre de usuario existente

oRecipientCollection.item(0).setUserCode("manager");

// obtener datos de columnas

pMessageDataColumns = oMessage.getMessageDataColumns();

// obtener columna

pMessageDataColumn = pMessageDataColumns.add();

// establecer nombre de columna

pMessageDataColumn.setColumnName("Número de Orden");

// establecer enlace a un objeto real en la aplicación pMessageDataColumn.setLink(SBOCOMConstants.BoYesNoEnum_tYES);

// obtener líneas

oLines = pMessageDataColumn.getMessageDataLines();

// agregar nueva línea

oLine = oLines.add();

// establecer el valor de la línea

oLine.setValue("155");

// establecer el enlace a BusinessPartner (el tipo de objeto para Bp es 2)

oLine.setObject("2");

// establecer el código de Bp

oLine.setObjectKey("DocEntry");

// enviar el mensaje

oMsgServ.sendMessage(oMessage);

} catch ( Exception e ) {

e.printStackTrace();

}

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

Object oMessage;

// obtener la interfaz de datos para el nuevo mensaje

oMessage = oMessageSrv.getDataInterface(SBOCOMConstants.MessagesServiceDataInterfaces_msdiMessage); IMessage iMessage = new Message(oMessage);

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?