Avalados por :

Como resolver o erro java.lang.ClassCastException ao enviar mensagens com DI API no SAP Business One

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 5 Vistas
0
Loading...

Olá,

Estou tentando enviar uma mensagem usando a DI API, fazendo referência a um exemplo em SAP\SAP Business One SDK\Samples\COM DI\VB.NET\10.Messages Service, mas ao tentar executá-lo, recebo o erro java.lang.ClassCastException: com.sap.smb.sbo.wrapper.com.Dispatch não pode ser convertido em com.sap.smb.sbo.api.IMessage

Aqui está o meu código em 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);

// obter a interface de dados para a nova mensagem

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

// preencher assunto

oMessage.setSubject("Teste");

oMessage.setText("Teste de envio de mensagem");

// Adicionar destinatário

oRecipientCollection = oMessage.getRecipientCollection();

oRecipientCollection.add();

// enviar mensagem interna

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

// adicionar nome de usuário existente

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

// obter dados das colunas

pMessageDataColumns = oMessage.getMessageDataColumns();

// obter coluna

pMessageDataColumn = pMessageDataColumns.add();

// definir nome da coluna

pMessageDataColumn.setColumnName("Número do Pedido");

// definir link para um objeto real na aplicação pMessageDataColumn.setLink(SBOCOMConstants.BoYesNoEnum_tYES);

// obter linhas

oLines = pMessageDataColumn.getMessageDataLines();

// adicionar nova linha

oLine = oLines.add();

// definir valor da linha

oLine.setValue("155");

// definir link para BusinessPartner (o tipo de objeto para Bp é 2)

oLine.setObject("2");

// definir chave do Bp

oLine.setObjectKey("DocEntry");

// enviar a mensagem

oMsgServ.sendMessage(oMessage);

} catch ( Exception e ) {

e.printStackTrace();

}

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

1 Respuestas

0
Loading...

Objeto oMessage;

// obter a interface de dados para a nova mensagem

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?