Buenos días
Intento hacer un boton personalizado con el archivo addActionLink.php para que recoja unos datos del módulo Contacts, para que los utilice para rellenar de forma automática en otro módulo llamado LlamadasRecibidas, el id de Cuenta y el id de Asginado a, pero cuanto ejecuto el archivo php para generar el link me aparece el siguiente error
Fatal error: Call to undefined method stdClass::getPrivileges() in /home/xxx/public_html/Corebos/include/utils/UserInfoUtil.php on line 3409
Alguna idea de qué es lo que estoy haciendo mal?
En el archivo addActionLink.php, he añadido lo siguiente:
$mod_acc = Vtiger_Module::getInstance('Contacts');
$asRecibidas&action=EditView&cbfromid=$RECORD$');
Seguramente te falta definir el usuario actual con este trozo de código después de cargar Module.php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$usr = new Users();
$current_user = Users::getActiveAdminUser();
pero recuerda que ahora ya no hace falta crear acciones mediante código, desde hace muchos meses se ha movido esta funcionalidad a la aplicación. Ves al módulo Business Actions (Acciones de Negocio) donde podrás crear acciones de manera sencilla
Ok ha funcionado muy bien para crear el actionlink la opción de Acciones de Negocio, pero ahora las variables no pasan en el formulario aunque ahora el link si que funciona bien e identifica el número de id del contacto en cuestion
http://xxx.net/Corebos/index.php?module=...romid=8324
Tengo el mapa de negocio realizado
<map>
<originmodule>
<originname>Contacts</originname>
</originmodule>
<targetmodule>
<targetname>LlamadasRecibidas</targetname>
</targetmodule>
<fields>
<field>
<fieldname>cf_1151</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>record_id</OrgfieldName>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>assigned_user_id</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>assigned_user_id</OrgfieldName>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>cf_1138</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>account_id</OrgfieldName>
</Orgfield>
</Orgfields>
</field>
</fields>
</map>
Que puede estar pasando?
prueba añadiendo <OrgFieldId> creo que es obligatorio ahora
Lo acabo de añadir, pero no me funciona igual
Así es como me ha quedado
<map>
<originmodule>
<originname>Contacts</originname>
</originmodule>
<targetmodule>
<targetname>LlamadasRecibidas</targetname>
</targetmodule>
<fields>
<field>
<fieldname>cf_1151</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>record_id</OrgfieldName>
<OrgfieldID>778</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>assigned_user_id</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>assigned_user_id</OrgfieldName>
<OrgfieldID>FIELD</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>cf_1138</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>account_id</OrgfieldName>
<OrgfieldID>8</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
</fields>
</map>
OrgFieldID = FIELD
¿tu módulo está al día para soportar esta funcionalidad?
No es un módulo muy complejo, pero la verdad es que está hecho con la carpeta vtlib/Moduledir
Qué tengo que hacer para que funcione correctamente?, los OrgFieldID los he sacado de otros ejemplos, ya que no sé de donde sacarlos
OrgFieldID=FIELD en tu caso porque solo quieres copiar campos
asegurate que los ficheros están al día con la ultima versión de ModuleDir, especialmente EditView.php, pero esto no tiene más, es así de sencillo
prueba rellenando el campo description con un texto constante
<field>
<fieldname>description</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>un texto</OrgfieldName>
<OrgfieldID>CONST</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
solo para ver si el problema está en el mapa o en la definicion de los campos
No he tenido resultados, el campo descripción no se ha rellenado con la constante.
Lo que tengo que hacer es llenar los campos contato, cuenta y asignado a que son 3 campos relacionados con los modulos Contacts y Accounts, desde el módulo Contacts, o bien con el boton que ya he creado de ActionLink, o bien por medio del bloque del módulo LlamadasRecibidas que tengo configurado que aparezca en el módulo Contacts, pero que aprentando a añadir nueva llamada, sólo me traspasa el campo Contacto, no me pasa ni el campo Cuenta ni el campo Asignado a
Aquí el mapa que he creado nuevo
<map>
<originmodule>
<originname>Contacts</originname>
</originmodule>
<targetmodule>
<targetname>LlamadasRecibidas</targetname>
</targetmodule>
<fields>
<field>
<fieldname>cf_1151</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>record_id</OrgfieldName>
<OrgfieldID>778</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>assigned_user_id</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>assigned_user_id</OrgfieldName>
<OrgfieldID>FIELD</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>cf_1138</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>account_id</OrgfieldName>
<OrgfieldID>8</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
<field>
<fieldname>description</fieldname>
<Orgfields>
<Orgfield>
<OrgfieldName>texto de prueba</OrgfieldName>
<OrgfieldID>CONST</OrgfieldID>
</Orgfield>
</Orgfields>
</field>
</fields>
</map>
¿Hay alguna otra forma de pasar esas variables sin necesidad de los mapas de negocio? algo he leido de modificar el fichero EditView.php del modulo de destino, pero no se bien cómo tengo que hacerlo, ¿Es posible?, ¿tienes algún ejemplo? en total necesito pasar 3 variables, el campo Cuenta, el campo Contacto, y el campo Asignado a desde el módulo Contacts.