CA Service Management

 View Only
  • 1.  Service Desk Propagacion de campos metodo y codigo de Resolucion de padre a Hijos.

    Posted Oct 24, 2018 09:14 AM

    Hola, Es la primera vez que hago una consulta....

     

    Vi que hay gente con problemas sobre este mismo tema.

    Nosotros tenemos dos problemas diferentes.

    En la versión 14.1, tenemos customizada la función.

    en lugar de que se propage el estado y campos cuando se cierra, tenemos que se propague cuando se pone en resuelto. la verdad no se como se hizo, ni como se hace, ya que esta asi desde mucho antes que estemos nosotros.

    pero no funciona bien.

    El estado Resuelto y el campo Codigo de resolución se propaga OK, Si el incidente padre se reabre, se reabren también los Hijos. Lo que no funcióna es que no se propaga el campo Metodo de Resolución:

    Tenemos el siguiente archivo .spl:

     

    =================

    alg::zstat_to_child(...)
    {
    string c_desc, c_num, c_origstatsym, c_type, p_num, p_stat, p_statsym, p_type, wc;
    object c_dob, c_list, group_leader;
    int c_count, i, cod_res;
    uuid login_userid;
    uuid group_uuid;

    p_num = call_req_id.ref_num;
    p_stat = call_req_id.status;
    p_statsym = call_req_id.status.sym;
    p_type = call_req_id.type.sym;
    group_uuid = call_req_id.group;
    cod_res = call_req_id.resolution_code;

    wc = format("parent = '%s' AND status != '%s'", call_req_id, p_stat);


    send_wait(0, top_object(), "call_attr", "cr", "current_user_id");
    login_userid = msg[0];
    send_wait(0, top_object(), "call_attr", "cr", "sync_fetch", "MLIST_STATIC", wc, -1,0);
    c_count = msg[1];
    c_list = msg[0];
    if (c_count > 0) {
    for(i=0;i< c_count;i++) {
    send_wait(0, c_list, "dob_by_index", "DEFAULT", i, i);
    c_dob = msg[0];
    send_wait(0, c_dob, "get_attr_vals",3,"ref_num","type.sym","status.sym");
    c_num = msg[3];
    c_type = msg[6];
    c_origstatsym = msg[9];
    if (description == action_desc) {
    c_desc = "Status changed from \'" + c_origstatsym + "\' to \'" + p_statsym + "\'" ;
    } else {
    c_desc = description;
    }
    c_desc = c_desc + " (Propagado desde el Padre " + p_type + " " + p_num + ")" ;
    send_wait(0, top_object(), "get_co_group");
    group_leader = msg[0];
    send_wait(0, c_dob, "change_status", group_leader, login_userid, c_desc, p_stat, NULL);


    send_wait(0, top_object(), "call_attr", "api", "update_object", login_userid, c_dob.persistent_id, NULL, group_leader, 0, "group",  call_req_id.group, "resolution_code", call_req_id.resolution_code);
       
    send_wait(0, group_leader, 'checkin');

    if (msg_error()) {
    logf(ERROR, "error cambiando estado '%s' en hijo %s %s desde el padre %s %s - %s", p_statsym, c_type, c_num, p_type, p_num, msg[0]);
    } else {
    logf(SIGNIFICANT, "se cambio existosamente el estado '%s' a hijo %s %s desde el padre %s %s", p_statsym, c_type, c_num, p_type, p_num); }

     

    =================

     

    A fin de hacer pruebas, agregamos estas líneas;

    met_res = call_req_id.resolution_method;

    En esta linea int c_count, i, cod_res;  agregamos met_res

    y esta línea:

    send_wait(0, top_object(), "call_attr", "api", "update_object", login_userid, c_dob.persistent_id, NULL, group_leader, 0, "group",  call_req_id.group, "resolution_code", call_req_id.resolution_code);

     

    La cambiamos por esta otra:

    send_wait(0, top_object(), "call_attr", "api", "update_object", login_userid, c_dob.persistent_id, NULL, group_leader, 0, "group",  call_req_id.group, "resolution_code", call_req_id.resolution_code, "resolution_method", call_req_id.resolution_method);

     

    No funcicino, pero no genero ningún error.

     

    Por otro lado, también tenemos modificado el formulario de Detaill_in, donde sacamos los campos Metodo y Resolucion y el formulario Request_status_change, en el que agregamos ambos campos.

    Entiendo que hay algún otro lado donde se esta configurando esto.

     

    Entiendo que hay algo mas  que interviene en esta customizacion pero no se que es.

    Lo que necesito es que el campo Metodo de Resolución también se propague.

     

    Ustedes me pueden ayudar?

     

    Muchisimas Gracias

     

    Fabiana



  • 2.  Re: Service Desk Propagacion de campos metodo y codigo de Resolucion de padre a Hijos.

    Posted Nov 14, 2018 06:37 AM
    Hola Fabiana.
    Por favor, no se lo pregunte, pero estoy usando el traductor de google para leer y escribir en español.
    Espero que esto sea comprensible de todos modos.
    Creo, entiendo tu requerimiento.
    Sería útil ver cómo se ejecuta su código.
    Busque en el directorio site/mods/majic de su sitio un archivo con la extensión "mod" o "maj", que contiene la cadena "zstat_to_child" y déjenos las líneas relacionadas.
    Gracias y saludos cordiales
    ..........Michael


  • 3.  Re: Service Desk Propagacion de campos metodo y codigo de Resolucion de padre a Hijos.

    Posted Dec 14, 2018 05:03 AM

    Hola  FSereno ,

     

    Pienso busca una solución para no cerrar y/o abrir los tickets automaticamente, la acción es echa por una opcione aún se busca una solución  a desarollar en spel puede usar lo que dice Michel. 

     

     

    Saludos

     

    obs:

    HI Michael Mueller, it was translated rightly;



  • 4.  Re: Service Desk Propagacion de campos metodo y codigo de Resolucion de padre a Hijos.

    Posted Jan 02, 2019 01:45 PM

    Hola

    Muchas gracias.

     

    Michael, busque el archivo que me indicas, pero no contiene la línea a la que haces referencia.

    Te paso todo el contenido.

     

    send_wait(0, top_object(), "call_attr", "cr","sync_fetch", "STATIC", where_clause, -1, 0);
     if (msg_error()) {
               string tmp;
               tmp = format(method + " cr sync_fetch error: " + msg[0]);
               set_return_data(tmp);
               set_error(1);
               logf(ERROR, tmp);
               return;
            }

     int c_count;
            //c_count = msg[1];
            c_count = 0;
            if (c_count > 0) {
        string zmsg;
               zmsg = format("Este ticket tiene hijos aun abiertos. Por favor, cierrelos antes de Resolver el padre");
               set_error(1);
               set_return_data(zmsg);
               return;  
            }

     

     

    A mi me parece que el error esta en nuestro Spl, Me parece que justamente le faltan las lines que indican los dos campos a heredar, Solo se esta indicando uno de los campos. pero no se como corregirlo.

     

    Mil gracias nuevamente.



  • 5.  Re: Service Desk Propagacion de campos metodo y codigo de Resolucion de padre a Hijos.
    Best Answer

    Posted Jan 02, 2019 01:49 PM

    MIL DISCULPAS

    Ahora encontré e archivo correcto.

     

    Tiene esta única línea:

    MODIFY alg {POST_VALIDATE zstat_to_child() 1011 FILTER((type{-> 'RE'} || type{-> 'ST'}|| type{-> 'RO'} || type{-> 'CL'}) && zset_child_f == 1);};

     

    Mil gracias.

    Fabiana