Objeto oMessage;
// obter a interface de dados para a nova mensagem
oMessage = oMessageSrv.getDataInterface(SBOCOMConstants.MessagesServiceDataInterfaces_msdiMessage); IMessage iMessage = new Message(oMessage);
Avalados por :
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();
}
Objeto oMessage;
// obter a interface de dados para a nova mensagem
oMessage = oMessageSrv.getDataInterface(SBOCOMConstants.MessagesServiceDataInterfaces_msdiMessage); IMessage iMessage = new Message(oMessage);
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute