AS

Hello, I need some code that will only get me the "checked" relationships, like you can see in this image below:

Because I only need the relationships that you can see in the graphic as well.

this case:

process interface named : Gerir Ordens de Trabalho

Events connected :

Pedido de Serviço Efetuado

Ordem de trabalho Resolvida

 

 

I tried:

   var eventTypes = [Constants.OT_EVT];

 var events =  proInterface[i].getConnectedObjs(eventTypes); (this gives me all the relationships that are events)

and i only want the ones who are really connected in the EPC.

 

I tried too:       var inOut = Constants.EDGES_OUT; (and Constants.EDGES_INOUT, Constants.EDGES_IN ...and the other constants but none gives the outcome i need)

                    var events =  proInterface[i].getConnectedObjs(eventTypes, inOut);

In this situation: i loose events that are connected or it stays the same 

 

by Ana Sequeira Author
Posted on Wed, 12/07/2016 - 13:05

does the check mark in the relationship type (in the picture) refers to occurrences?? 

an object with no occurrences has no checkmark? is that the case?

0
by Rodrigo Faco
Posted on Wed, 12/07/2016 - 13:21

Hello Ana,

Permita-me responder em português :)

Os relacionamentos que estão "checados", são os relacionamentos que possuem ocorrencia no modelo que esta aberto.

No Script, você vai precisar primeiro obter o modelo em questão e transforma-lo num objeto, algo como:

 



var aModelos = new Array(); //Representa os modelos em execuçao.

//RECUPERA DIRETORIOS SELECIONADOS, PODENDO SER MAIS DE UM QUANDO A SELAÇÃO OCORRER NA ABA MODELS DO EXPLORER E REMOVENDO OBJETOS DUPLICADOS.

diretorios = ArisData.Unique(ArisData.getSelectedGroups());

for(var d in diretorios){

    //AGRUPA TODOS OS MODELOS EXISTENTES

    aModelos = aModelos.concat(diretorios[d].ModelList(true, [EPC_COLUNA, EPC_LINHA]));

}

 



em seguida, você pode usar a função abaixo para obter os objetos relacionados a interface:

 

/********************************************************************************************

  FUNÇAO:       BuscaEventosAssocInterface()

  DESCRICAO:    Função recursiva que obtem os eventos associados a interface, mesmo

                se houver operadores lógicos conectados entre interface e eventos  

  PARAMETROS DE ENTRADA: - oInterface - definição do objeto Interface

                         - nIndicador (Constants.EDGES_IN / Constants.EDGES_OUT) - Indica se

                                      são eventos anteriores ou posteriores a inteface  

                SAÍDA: aEventos - Array de eventos identificados

*********************************************************************************************/

function BuscaEventosAssocInterfaceByDef(oInterfaceDef, nIndicador, modelo ){

    var aEventos = new Array();    

    var Occ = oInterfaceDef.OccListInModel(modelo);

    

    for(var e in Occ){

        var aControle = Occ[e].getConnectedObjOccs([EVENTO, OPERADOR_LOGICO_E, OPERADOR_LOGICO_OU_EXCLUSIVO, OPERADOR_LOGICO_OU], nIndicador);

       

        for (var e in aControle) {

        

             //SE FOR OPERADOR LOGICO - obter eventos conectados a operadores lógicos (se houver)   

               if ( (aControle[e].getSymbol() == OPERADOR_LOGICO_E) || (aControle[e].getSymbol() == OPERADOR_LOGICO_OU ) || (aControle[e].getSymbol() == OPERADOR_LOGICO_OU_EXCLUSIVO)){

                  aEventos = aEventos.concat(BuscaEventosAssocInterface( aControle[e] , nIndicador));// <-- Recursividade  

             //SE NAO FOR OPERADOR LOGICO - obter eventos diretamente conectados     

             }else{

                 aEventos = aEventos.concat(aControle[e]) ;                 

             }

        }

    }

        

    return aEventos;

}



OBS: EPC_COLUNA,EPC_LINHA , EVENTO, OPERADOR_LOGICO_E, OPERADOR_LOGICO_OU_EXCLUSIVO, OPERADOR_LOGICO_OU são constantes:

var EPC_COLUNA              = Constants.MT_EEPC_COLUMN;

var EPC_LINHA               = Constants.MT_EEPC_ROW;

var OPERADOR_LOGICO_E = Constants.ST_OPR_AND_1;

var OPERADOR_LOGICO_OU_EXCLUSIVO = Constants.ST_OPR_XOR_1;

var OPERADOR_LOGICO_OU = Constants.ST_OPR_OR_1;

var EVENTO = Constants.ST_EV;



Segue um exemplo de chamadas da função:



    var aObjConectadosIn = BuscaEventosAssocInterfaceByDef(oDef[j], Constants.EDGES_IN, aModelos);

ou

 

    var aObjConectadosOut = BuscaEventosAssocInterfaceByDef(oDef[j], Constants.EDGES_OUT, aModelos);

 

Acho que estes trechos de código pode ajuda-la... qualquer duvida pode entrar em contato comigo: rdfaco@gmail.com

0
by Ana Sequeira Author
Posted on Wed, 12/07/2016 - 13:36

Muito Obrigado :)

Vou então tentar aplicar essa solução .

0
by Ana Sequeira Author
Posted on Thu, 12/08/2016 - 10:48

Estou a  utilizar essa função e estou a ter como saida um array de Aris Objects e como isso acontece nao consigo fazer 

.Name(linguagemSelecionada).

Como preciso de escrever o nome destes eventos para excel preciso do nome dos eventos, o que posso fazer?

(Consultei a classe Aris Object no Aris help e não parece ter um metodo para nome)

Normalmente uso Name(language) em objetos do tipo ObjDef

0
by Rodrigo Faco
Posted on Thu, 12/08/2016 - 12:32

Olá Ana!

O retorno da função que lhe passei é um array de ocorrencias de objetos, assim o método Name() , não vai funcionar. Você pode utilizar o método getObjDefName(idioma) , veja o exemplo:

                 var sObjConectadosIn = "";

                 var aObjConectadosIn = BuscaEventosAssocInterfaceByDef(oDef[j], Constants.EDGES_IN, aModelos);                  for (var y in aObjConectadosIn) {

                     sObjConectadosIn += aObjConectadosIn[y].getObjDefName(idioma) + "\n\n";  

                 }       

           

Ao final do codigo, a veriavel sObjConectadosIn saira com os nomes dos eventos em uma string;

0
by Ana Sequeira Author
Posted on Fri, 12/09/2016 - 11:37

Muito Obrigada :)

Funcionou sim.

0
by Ana Sequeira Author
Posted on Mon, 12/12/2016 - 10:56

Como posso ir buscar o nome dos eventos além da xor rule?

Noto que quando tenho eventos ligados por uma rule, apenas me aparece o nome da rule-

Tenho:



function BuscaEventosAssocInterfaceByDef(oInterfaceDef, nIndicador, modelo) {

    var aEventos = new Array();

    var Occ = oInterfaceDef.OccListInModel(modelo); //ocurrencias da interface

    for (var e in Occ) {

        var aControle = Occ[e].getConnectedObjOccs([Constants.ST_EV, Constants.ST_OPR_AND_1, Constants.ST_OPR_XOR_1, Constants.ST_OPR_OR_1, Constants.ST_EV], nIndicador);

        for (var e in aControle) {

            //SE FOR OPERADOR LOGICO - obter eventos conectados a operadores lógicos (se houver)   

            if ((aControle[e].getSymbol() == OPERADOR_LOGICO_E) || (aControle[e].getSymbol() == OPERADOR_LOGICO_OU) || (aControle[e].getSymbol() == OPERADOR_LOGICO_OU_EXCLUSIVO)) {

                aEventos = aEventos.add(BuscaEventosAssocInterface(aControle[e], nIndicador)); // <-- Recursividade  

                //SE NAO FOR OPERADOR LOGICO - obter eventos diretamente conectados     

            } else {

                aEventos = aEventos.concat(aControle[e]);

            }

        }

    }

    return aEventos;

}

 

e chamo assim: 

 var sObjConectadosIn = "";

                    var aObjConectadosIn = BuscaEventosAssocInterfaceByDef(proInterface[i], Constants.EDGES_INOUT, oModelList[k]);

                    for (var y in aObjConectadosIn) {

                        for (var y in aObjConectadosIn) {

                            sObjConectadosIn += aObjConectadosIn[y].getObjDefName(selectedLanguage) + "\n\n";

                        }

                    }

                   

                    dummyOutput.TableRow();

                    dummyOutput.TableCell("", 20, "Arial", 10, Constants.C_BLACK, Constants.C_WHITE, 0, Constants.FMT_CENTER, 0);

                    dummyOutput.TableCell("", 20, "Arial", 10, Constants.C_BLACK, Constants.C_WHITE, 0, Constants.FMT_CENTER, 0);

                    dummyOutput.TableCell("", 20, "Arial", 10, Constants.C_BLACK, Constants.C_WHITE, 0, Constants.FMT_CENTER, 0);

                    dummyOutput.TableCell( sObjConectadosIn, 20, "Arial", 10, Constants.C_BLACK, convRGB(230, 0, 172), 0, Constants.FMT_CENTER, 0);

                    }

0

Featured achievement

Rookie
Say hello to the ARIS Community! Personalize your community experience by following forums or tags, liking a post or uploading a profile picture.
Recent Unlocks

Leaderboard

|
icon-arrow-down icon-arrow-cerulean-left icon-arrow-cerulean-right icon-arrow-down icon-arrow-left icon-arrow-right icon-arrow icon-back icon-close icon-comments icon-correct-answer icon-tick icon-download icon-facebook icon-flag icon-google-plus icon-hamburger icon-in icon-info icon-instagram icon-login-true icon-login icon-mail-notification icon-mail icon-mortarboard icon-newsletter icon-notification icon-pinterest icon-plus icon-rss icon-search icon-share icon-shield icon-snapchat icon-star icon-tutorials icon-twitter icon-universities icon-videos icon-views icon-whatsapp icon-xing icon-youtube icon-jobs icon-heart icon-heart2 aris-express bpm-glossary help-intro help-design Process_Mining_Icon help-publishing help-administration help-dashboarding help-archive help-risk icon-knowledge icon-question icon-events icon-message icon-more icon-pencil forum-icon icon-lock