USO DO GETCARDINDEX

ana.machado
Um pequeno Fluiger
Mensagens: 5
Registrado em: 11 Set 2017 14:11

USO DO GETCARDINDEX

Mensagem por ana.machado »

Caros, Meu script abaixo tem a seguinte regra que uso nos gateways exclusivos. Se na lista de itens do pedido de compra houverem algum bem do tipo 01.08 ou 01.05 ou 01.08 e 01.05 o mesmo deve retornar "S" e assim no gateway exclusivo ele é direcionado para uma determinada atividade X. Por tanto se no primeiro item que escolhi na tabela pai x filho for algum item que não seja o item 01.08 ou item 01.05 na primeira linha ele desconsidera que nesse array tenha o item 01.08 ou 01.05 e segue para atividade dizendo que o retorno é "N". Segue o exemplo do código para que possam avaliar se é erro de implementação da Hapi.GetCardData ou se é alguma falha de lógica do recurso.

Código:

Código: Selecionar todos

function RepassaDiretoriaPrd(){



    var process = getValue("WKNumProces");
    cardData = hAPI.getCardData(process);
    var keys = cardData.keySet().toArray();

    for (var key in keys) {
        var field = keys[key];

        if (field.indexOf("Codigoprd___") > -1) {

            var name = cardData.get(field);

            var index = field.replace("Codigoprd___", "");
            var nomedoitem = cardData.get("NomeItem___" + index);


    var retorno =  "N";

            if ((cardData.get("Codigoprd___" + index).substring(0,5) == "01.08") || 
               (cardData.get("Codigoprd___" + index).substring(0,5) == "01.05"))  {
    retorno="S";

            }

           return retorno;


      }
   }
}
Avatar do usuário
Rodneyber
Fluiger Sofredor
Mensagens: 11
Registrado em: 15 Mai 2017 04:58

Re: USO DO GETCARDINDEX

Mensagem por Rodneyber »

Bom dia,

Não parei para analisar o código, mas segue função que recupera os índices de um pai x filho, e a forma de chama-la/utiliza-la:

Código: Selecionar todos

function getIndexes(fieldReference){ var regex = new RegExp(fieldReference+'_'); var map = hAPI.getCardData(parseInt(getValue('WKNumProces'))); var iterator = map.keySet().iterator(); var indexes = new java.util.TreeSet();

while(iterator.hasNext()){ var id = iterator.next();

if(id.match(regex) == null) continue; else indexes.add(parseInt(id.split('_')[1])); }

return indexes; }
Exemplo de chamada:

Código: Selecionar todos

Function exemploDeChamada(){ var indexes = getIndexes(campo_do_pai_filho); var iterator = indexes.iterator();

while(iterator.hasNext()){ var index = parseInt(iterator.next()); hAPI.setCardValue("campo_"+index,""); } }
Responder