Al intentar migrar todos los contactos de SugarCRM a Owncloud, nos encontramos que en SugarCRM sólo se podían exportar de a 1 contacto por vez. :-(
La solución fue muy simple, armar un exportador (export_vcard.php) que recibe el uuid de un contacto y envía a stdout el contenido de la vCard.
define('sugarEntry', 1 ); require_once('include/entryPoint.php'); require_once('include/vCard.php'); if ($argc == 2) { $contact_id = $argv[1]; } else { exit(1); } class vCardExport extends vCard { function saveVCard(){ global $locale; $content = $this->toString(); print $locale->translateCharset($content, 'UTF-8', $locale->getExportCharset()); } } $vcard = new vCardExport(); $vcard->loadContact($contact_id, 'Contacts'); $vcard->saveVCard();
Ejemplo:
php export_vcard.php e76a6829-1c9c-61c0-004c-5294f9af147a BEGIN:VCARD N:GOMEZ;OSIRIS ALEJANDRO; FN: OSIRIS ALEJANDRO GOMEZ BDAY: TEL;FAX: TEL;HOME: 1234-5678 TEL;CELL: 15-1234-5678 TEL;WORK: 4855-4390 EMAIL;INTERNET: osiris@gcoop.coop ADR;WORK:;;;;;; ORG:; TITLE: END:VCARD
Luego con un query a la base de datos obtuvimos todos los uuid:
SELECT id FROM contacts WHERE deleted = 0;
Asi que desde mi amigo Bash unimos todos los vCard en un único archivo:
cat contactos.log | while read i;do php export_vcard.php $i;done > contactos.vcf
Listo! ahora en OwnCloud tenemos todos los contactos de SugarCRM.
Publicado el 03/12/2013 por OSiRiS
alias
apc
bash
bashrc
bash_aliases
cache
computed field
courier
docker
dovecot
drupal
export
foxyproxy firefox
grep
head
history
iftop
imap
imapsync
liberaciones
migracion
migrate
Monotributo
Moreno emprendedor mincyt
mysql
openwrt
owncloud
parallel-ssh
parches
performance
previous next links
query
shell
sql
sugarcrm
tail
tar
tl-mr3020
tryton
undelete
vcard
views_navigation
wget
wicd