String para BigDecimal

Bom dia…

Estou com dificuldade no meu programa… eu fiz uma tela que posso usar um filtro para selecionar as informações por data ou cliente.
E quando aparece as informações o usuario seleciona a linha atraves do check box e manda imprimir! Cada linha que ele seleciona gera um arquivo para impressão!
Meu problema é quando o usuario seleciona mais de uma opção… eu não estou conseguindo tratar isso para gerar dois arquivos.
No arquivo jasper estou gerando o documento a partir do ID da coluna… Essa coluna é do tipo numeric que esta como BigDecimal se eu coloco como string ele não gera o documento! O banco de dados é postgres… PeloBigDecimal remessa = new BigDecimal(M_InOut_ID); que eu percebi o erro esta na linha que eu destaquei no codigo… mas o estranho é que o eclipse não passa erro nenhum ele esta gerando essa informação:

-----------> MIssue.set_ValueNoCheck: ReleaseNo - Value too long - truncated to length=4 [11]
===========> LabelPrinting.print: 40031814003278 [11]

LabelPrinting.print: 4003181,4003278 nessa linha ele esta juntando os ID!
Se alguem poder me ajudar eu agradeço!

Segue o meu codigo abaixo:

private void print() {
// Pega o processo definido

	int AD_Process_ID = MSysConfig.getIntValue("PrintLabelTESTE", 4000070, Env.getAD_Client_ID(Env.getCtx()));
	log.info("ID=" + AD_Process_ID);

	//
	ProcessInfo pi = new ProcessInfo("Etiqueta", AD_Process_ID);
	pi.setAD_User_ID(Env.getAD_User_ID(Env.getCtx()));
	pi.setAD_Client_ID(Env.getAD_Client_ID(Env.getCtx()));

	// Pega o que esta selecionado
	int rows = miniTable.getRowCount();
	StringBuffer sb = new StringBuffer();
	StringBuffer sbk = new StringBuffer();
	for (int i = 0; i < rows; i++) {
		 IDColumn id = (IDColumn) miniTable.getValueAt(i, 0); // ID in column
		// 0
		if (id.isSelected()) {
			sb.append(id.getRecord_ID());
			sbk.append(id.getRecord_ID());
			
		}
	}
	
	
	String M_InOut_ID = sb.substring(0, sb.length());
	[color=red]BigDecimal remessa = new BigDecimal(M_InOut_ID);[/color]
	selected = sbk.substring(0, sbk.length());
	
	
	log.severe(M_InOut_ID);
	// add os parametros
	ProcessInfoParameter param[] = { new ProcessInfoParameter("M_InOut_ID",
			remessa, null, null, null), };
	pi.setParameter(param);
	pi.setPrintPreview(true);
	pi.setReportingProcess(true);

	ProcessCtl.process(this, m_WindowNo,null, pi, null);
	
}

Bom o erro está dizendo: “Value too long”

qual o tamanho da string antes de você tentar criar o BigDecimal?

da uma debugada aí que você encontra o problema sozinho, eu acho que o conteúdo da string passa dos limites do BigDecimal.

falows!