Como ler um arquivo XML nos eventos de processo

Galera, alguém pode me ajudar sobre como fazer a leitura de um arquivo XML em um evento de processo?

function afterProcessCreate(processId){
    hAPI.setCardValue("valor_liquido", 'teste');

    var codcoligada = hAPI.getCardValue("CodColigada");
    var idmov = hAPI.getCardValue("IdMov");
    var idFluig = getValue('WKNumProces');

    log.info("======== afterProcessCreate =======");
    log.info("Coligada: " + codcoligada + ", idmov: " + idmov + ", idFluig: " + idFluig);

    // recupera os dados do dataset
    var fields = new Array(codcoligada, idmov, idFluig);
    var dsNucleus = DatasetFactory.getDataset('wsDatasetNucleus', fields, null, null);

    log.info("RowsCont:" + dsNucleus.rowsCount);
    var xmlNewDataSet = dsNucleus.getValue(0, "XML");
    log.info("xmlNewDataSet: " + xmlNewDataSet);
    // Daqui para cima funciona
   // Daqui para baixo devo fazer a leitura do XML. Estou transcrevendo do js para
   // um evento de processo. Abaixo está com jquery, como estava inicialmente.

    var xml = $.parseXML(xmlNewDataSet);
    $xml = $(xml);

	$(xml).find('TMOV').each(function stss(index) {
		$('#CodPrj').val($(this).find('CODPRJ').text() + ' - ' + $(this).find('DESCPROJETO').text());
		$('#DescContrato').val($(this).find('NUMCONTRATO').text());
		$('#numeroMov').val($(this).find('NUMEROMOV').text());
		$('#codFilial').val($(this).find('CODFILIAL').text() + ' - ' + $(this).find('NOMEFILIAL').text());
		$('#codcfo').val($(this).find('CODCFO').text() + ' - ' + $(this).find('NOMECFO').text());
		$('#dataEmissao').val(formatDateMask($(this).find('DATAEMISSAO').text()));
		$('#valorliquido').val(formatMoney($(this).find('VALORLIQUIDO').text(), codMoeda, '.', ','));
	});
}

Talvez esse exemplo ajude em algo: Parse an XML string: Using DOM and a StringReader. : DOM « XML « Java

Acho que no JS do Fluig não temos as opções dos imports, então precisa sempre identificar as classes com o package completo, por exemplo:

var db = javax.xml.parsers.DocumentBuilderFactor.newInstance().newDocumentBuilder();
var is = new org.xml.sax.InputSource();

Mas não tentei testar pra ver se esse exemplo realmente funciona.

1 curtida