Un foro de discusión para nuestra comunidad de hispano hablante

Moderator: amosbatto

User avatar
By milagrosmaria16
#825953
Buenas tardes,
Una pregunta, he estado revisando que la función getGridField("grid-name", row-number, "field-name") en la versión 2.x ya no funciona en la versión 3.0 y demás, me podrían indicar cual sería la mejor para reemplazarlo, se los agradecería muchísimo.
Code: Select all
function valCases() {
  var totalRows = $("#subcasesGrid").getNumberRows();
  var completados='0';
  if ( $('#cboAceptarPS').getValue() == '1' ) {
    for (var i = 1; i <= totalRows; i++) {
      if(totalRows==1) {
        if(getGridField("subcasesGrid", i, "status").getValue == '') {
          completados='0'; break;
      } else if(getGridField("subcasesGrid", i, "status").getValue != 'Completed') {
          completados='1';  break;
    }
  } else {
        if(getGridField("subcasesGrid", i, "status").getValue != 'Completed') {
          completados='1';
           break;
        }
  }
}
if(completados=='1') {
      G.alert("Los RTP/SS aun no han sido completados", "Advertencia");  return false;
    }
  }
}
valCases();
//$('#btnEnviar').click(valCases);
Gracias!!!
User avatar
By milagrosmaria16
#826003
Buen día,
He estado intentando obtener información de subprocesos en la siguiente grilla, la cual tiene los siguientes campos:
caseNo / status / currentUser / createDate / updateDate / dueDate / caseURL / index / caseLink
Image
La grilla se llama: subcasesGrid

Necesito que la grid me muestre, el número de caso, estado, usuario (creador/solicitante), etc. del subproceso(hijo) creado en el proceso padre.

Y tengo los siguientes códigos:
En Before:
Code: Select all
@@caseLink = "x";
@=subcasesGrid = array(); //empty array to hold grid data
$caseId = @@APPLICATION; //UID for current master process case
@@caseLink = "xx";
$subcases = executeQuery("SELECT APP_UID FROM SUB_APPLICATION WHERE APP_PARENT = '$caseId'");
@@caseLink = "xxx";
$subaplica = '';
if (is_array($subcases) and count($subcases) > 0)
   {     
      for($i = 1, $tot = count($subcases); $i <= $tot; $i++)
      {
       $subcase = new Cases();
       $subaplica = $subcases[$i]['APP_UID'];
       $aSubCase = $subcase->loadCase($subcases[$i]['APP_UID']);
       $aSubCase = $subcase->loadCase($aSubCase['APP_UID'], $aSubCase['APP_DATA']['INDEX']);
       $nameproceso = executeQuery("SELECT C.CON_VALUE FROM APPLICATION A, CONTENT C WHERE A.PRO_UID = C.CON_ID AND C.CON_CATEGORY = 'PRO_TITLE' AND C.CON_LANG='en' AND A.APP_UID = '$subaplica'");
       $nameProcess = $nameproceso[1]['CON_VALUE'];
       $nameProcess = substr($nameProcess, 0, strpos($nameProcess, "-"));

          @=subcasesGrid[$i] = array(
          'caseNo'      => $nameProcess . $aSubCase['APP_NUMBER'],
          'status'     => $aSubCase['STATUS'],
          'currentUser' => $aSubCase['CURRENT_USER'],
          'index'       => $aSubCase['DEL_INDEX'],
          'createDate'  => $aSubCase['CREATE_DATE'],
          'updateDate'  => $aSubCase['UPDATE_DATE'],
          'dueDate'     => $aSubCase['DEL_TASK_DUE_DATE'],
          'caseURL'     => '../cases/cases_Open?APP_UID=' . $aSubCase['APP_UID'] . '&DEL_INDEX=' . $aSubCase['DEL_INDEX'] . '&ACTION=VIEW');
 
        }
     }
En JavaScript:
Code: Select all
function selClase() {
  var totalRows = $("#subcasesGrid").getNumberRows();
  for (var i = 1; i <= totalRows; i++) {
    //where 2 is the column number of the caseURL field:
    var url = $("#subcasesGrid").getValue(i, 7);
    
    $("[id='form[subcasesGrid]["+i+"][caseLink]']").prop("href", url); 
    $("[id='form[subcasesGrid]["+i+"][caseLink]']").html("open");   
  }
}
selClase(); //execute when Dynaform loads 
Code: Select all
function valCases() {
  var totalRows = $("#subcasesGrid").getNumberRows();
  var completados ='0';
  if ( $('#cboAceptarPS').getValue() == '1' ) {
    for (var i = 1; i <= totalRows; i++) {
      if(totalRows==1) {
        if ($("#subcasesGrid").getValue(i, 2) == "") {
        //if(getGridField("subcasesGrid", i, "status").getValue == '') {
          completados = '0'; break;
        } else if ($("#subcasesGrid").getValue(i, 2) !== "Completed") {
        //else if(getGridField("subcasesGrid", i, "status").getValue != 'Completed') {
          completados = '1';  break;
    }
  } else {
          if ($("#subcasesGrid").getValue(i, 2) !== "Completed") {
    	  //if(getGridField("subcasesGrid", i, "status").getValue != 'Completed') {
          completados = '1';
           break;
        }
  }
}
if(completados=='1') {
      alert("Los SS/RTP aun no han sido completados", "Advertencia");  return false;
    }
  }
}
valCases();
//$('#btnEnviar').click(valCases);
Por favor espero me puedan apoyar porque no me esta mostrando nada y he estado intentando hace varios días. Se los agradeceré muchísimo.

Saludos!!!!
User avatar
By amosbatto
#826011
¿Qué versión de PM estás usando?
No puedo ubicar el problema en tu codigo. Necesito ejecutar el codigo en un proceso para encontrar el problema. ¿Puedes publicar los archivos .pmx de tu proceso padre y el subproceso?
User avatar
By milagrosmaria16
#826104
Buenos días

He estado intentando solucionar con otras funciones pero sigue sin funcionar, si alguien me puede apoyar con lo solicitado se lo agradeceré muchísimo.

Gracias de antemano.
User avatar
By amosbatto
#826117
¿Qué es la versión exacta de PM que tienes? (Ver Admin > System Information)

No he intentado ejecutar tu proceso, porque es muy complicado, pero algunas versiones de PM 3 no pueden mostar enlaces relativos.

Debes crear enlaces completos así:
Code: Select all
if (is_array($subcases) and count($subcases) > 0) {
   $g = new G();
   $baseUrl = ($g->is_https() ? "https://" : "http://") . $_SERVER['HTTP_HOST'] .
        '/sys'[email protected]@SYS_SYS.'/'[email protected]@SYS_LANG.'/'[email protected]@SYS_SKIN;
	
   for($i = 1, $tot = count($subcases); $i <= $tot; $i++) {
       $subcase = new Cases();
       $subaplica = $subcases[$i]['APP_UID'];
       $aSubCase = $subcase->loadCase($subcases[$i]['APP_UID']);
       $aSubCase = $subcase->loadCase($aSubCase['APP_UID'], $aSubCase['APP_DATA']['INDEX']);
	   
	   $sql = "SELECT C.CON_VALUE FROM APPLICATION A, CONTENT C WHERE A.PRO_UID = C.CON_ID AND 
	   		C.CON_CATEGORY = 'PRO_TITLE' AND A.APP_UID = '$subaplica'";
       $nameproceso = executeQuery($sql);
       $nameProcess = $nameproceso[1]['CON_VALUE'];
       $nameProcess = substr($nameProcess, 0, strpos($nameProcess, "-"));

       @=subcasesGrid[$i] = array(
          'caseNo'      => $nameProcess . $aSubCase['APP_NUMBER'],
          'status'      => $aSubCase['STATUS'],
          'currentUser' => $aSubCase['CURRENT_USER'],
          'index'       => $aSubCase['DEL_INDEX'],
          'createDate'  => $aSubCase['CREATE_DATE'],
          'updateDate'  => $aSubCase['UPDATE_DATE'],
          'dueDate'     => $aSubCase['DEL_TASK_DUE_DATE'],
          'caseURL'     => $baseUrl . '/cases/cases_Open?APP_UID=' . $aSubCase['APP_UID'] .
		                   '&DEL_INDEX=' . $aSubCase['DEL_INDEX'] . '&ACTION=VIEW'
	   ); 
    }
}
Si este cambio no resuelve el problema, puedes publicar el contenido de tu variable @=subcasesGrid que ves en Debug Mode. Necesito ver esto para saber si el problema es el trigger o el JavaScript.
User avatar
By amosbatto
#826152
Entonces debes usar este codigo para chequear si la busqueda en la base de datos devuelve algo:
Code: Select all
$subcases = executeQuery("SELECT APP_UID FROM SUB_APPLICATION WHERE APP_PARENT = '$caseId'");
@=subcases = $subcases; 
User avatar
By milagrosmaria16
#826182
Buen día Amosbatto,

Puse lo que me comentaste y me sigue apareciendo lo siguiente:
Image

Lo cambié de la siguiente forma:
Code: Select all
$caseId = @@APPLICATION;
$subcases = executeQuery("SELECT APP_PARENT FROM SUB_APPLICATION WHERE APP_UID = '$caseId'");
@=subcases = $subcases;
Pero sigue sin funcionar :/

Tu apoyo por favor :/
User avatar
By amosbatto
#826184
Si quieres que yo depuro tu codigo, tienes que crear un proceso muy sencillo con sola la parte relevante que yo puedo ejecutar facilmente en mi maquina.
User avatar
By milagrosmaria16
#826288
Buen día,

Si alguien conoce alguna forma de obtener información de otros procesos en el formulario, les agradecería muchísimo que me la puedan compartir por favor.

Gracias de antemano.
Task doesnt have any users.

The first problem is that you need to use = = in[…]

Just guide me to implement this?

Hi, I have a text control (rfq_segment) and I wan[…]

Genial!!! gracias. :D i need to translate an[…]