Skip to main content.

Archives

This is the archive for July 2006

Sunday, July 30, 2006

createOption('bbcode_items','Allow BBCode in items?','yesno','yes'); $this->createOption('bbcode_comments','Allow BBCode in comments?','yesno','yes'); $this->createOption('ImageLinks','Allow image links in comments?','yesno','no'); $this->createOption('nofollow','Use rel="nofollow"','yesno','yes'); $this->createOption('qh','Quote header','text','

'); $this->createOption('qf','Quote footer','text','

'); $this->createOption('ch','Code header','text','
');
		$this->createOption('cf','Code footer','text','
'); $this->createOption('infourl','Information about BBCode','text','http://www.phpbb.com/phpBB/faq.php?mode=bbcode'); $this->createOption('YoutubeLinks','Allow YouTube links in comments?','yesno','no'); $this->createOption('yt_width','Youtube video width','text','425'); $this->createOption('yt_height','Youtube video height','text','355'); } function event_FormExtra ($data) { if($data['type']=='commentform-notloggedin' || $data['type']=='commentform-loggedin') { echo "
Allowed getOption('infourl')."\" onclick=\"javascript:window.open(this.href, '_blank'); return false;\">BBCode:"; echo "[b] [i] [u] [color=] [size=] [quote] [code] [email]"; if ($this->getOption('ImageLinks') == 'yes') { echo " [img]"; } if ($this->getOption('YoutubeLinks') == 'yes') { echo " [youtube]"; } } } function youtube_code ($data) { // get the id from the string bracketed with youtube $url_parts = parse_url($data[1]); if ($url_parts['host']!='') { // full url is used (query includes appended parameters from the url) $youtube_id = str_replace('v=', '', $url_parts['query']); } else { // only video id in brackets $youtube_id = $url_parts['path']; } // built HTML code for youtube video $code=''; return $code; } function Treatment($_text, $_nofo='', $_type) { global $CONF, $blog; /* [b][/b] [i][/i] [u][/u] */ $_text=preg_replace('/\[b\](.*)\[\/b\]/Usi','\1',$_text); $_text=preg_replace('/\[i\](.*)\[\/i\]/Usi','\1',$_text); $_text=preg_replace('/\[u\](.*)\[\/u\]/Usi','\1',$_text); /* [color=][/color] [size=][/size] */ $_text=preg_replace('/\[color=(.*)\](.*)\[\/color\]/Usi','\2',$_text); $_text=preg_replace('/\[size=(.*)\](.*)\[\/size\]/Usi','\2',$_text); /* [quote][/quote] [quote name=][/quote]*/ $_text=preg_replace('/\[quote\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1'.$this->getOption('qf').'',$_text); if ($_type=='item') { $_text=preg_replace('/\[quote name="(.*)"\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1: \2'.$this->getOption('qf').'',$_text); } else { $_text=preg_replace('/\[quote name="(.*)"\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1: \2'.$this->getOption('qf').'',$_text); } /* [code][/code] */ preg_match('/\[code\](.*)\[\/code\]/Usi', $_text, $matches); $code=preg_replace('/
/Ui','', $matches[1]); $_text=preg_replace('/\[code\](.*)\[\/code\]/Usi',''.$this->getOption('ch').$code.$this->getOption('cf').'',$_text); /* [url][/url] [url=][/url]*/ $_text=preg_replace('/\[url\](.*)\[\/url\]/Ui','\1',$_text); $_text=preg_replace('/\[url=(.*)\](.*)\[\/url\]/Ui','\2',$_text); /* [email][/email] [email=][/email]*/ $_text=preg_replace('/\[email\](.*)\[\/email\]/Ui','\1',$_text); $_text=preg_replace('/\[email=(.*)\](.*)\[\/email\]/Ui','\2',$_text); /* [img][/img] */ if (!($this->getOption('ImageLinks') == 'no' && $_type=='comment')) { $_text=preg_replace('/\[img\](.*)\[\/img\]/Ui','',$_text); } /* [youtube][/youtube] */ if (!($this->getOption('YoutubeLinks') == 'no' && $_type=='comment')) { $_text=preg_replace_callback('/\[youtube\](.*)\[\/youtube\]/Ui',array($this,'youtube_code'),$_text); } return $_text; } function DeleteLinks ($_text) { // disable core links return preg_replace('/\(.*)\<\/a\>/i','\1',$_text); } function AddLinks ($_text, $_nofo='') { // add links return preg_replace('/(\s)([http|https|ftp|file]+:\/\/[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); } function event_PreItem($_data) { if ($this->getOption('bbcode_items')=='yes') { $_data[item]->body = $this->Treatment($_data[item]->body, '', 'item'); $_data[item]->more = $this->Treatment($_data[item]->more, '', 'item'); } } function event_PreComment($_data) { if ($this->getOption('bbcode_comments')=='yes') { if ($this->getOption('nofollow')=='yes'){ $nofo=' rel="nofollow"'; } $_data['comment']['body'] = $this->DeleteLinks($_data['comment']['body']); $_data['comment']['body'] = $this->Treatment($_data['comment']['body'], $nofo, 'comment'); $_data['comment']['body'] = $this->AddLinks($_data['comment']['body'], $nofo); } } function supportsFeature ($what) { switch ($what) { case 'SqlTablePrefix': return 1; default: return 0; } } } ?>
Dalam artikel kali ini saya akan coba menjelaskan bagaimana menyembunyikan tab dalam form Microsoft CRM 3.0. Mengapa saya tekankan versi 3.0? Karena perlu diketahui tehnik penyembunyian tab dan field pada versi 1.2 dan 3.0 agak berbeda.

Mengetahui nama Tab
Tab pada Microsoft CRM, digunakan nama tab dimulai dari tab0Tab. Jadi kita sudah bisa menghitung tab ke berapa yang akan kita sembunyikan atau kita tampilkan.

 

Tab pada sub-modul Opportunity

Saturday, July 29, 2006

createOption('bbcode_items','Allow BBCode in items?','yesno','yes'); $this->createOption('bbcode_comments','Allow BBCode in comments?','yesno','yes'); $this->createOption('ImageLinks','Allow image links in comments?','yesno','no'); $this->createOption('nofollow','Use rel="nofollow"','yesno','yes'); $this->createOption('qh','Quote header','text','

'); $this->createOption('qf','Quote footer','text','

'); $this->createOption('ch','Code header','text','
');
		$this->createOption('cf','Code footer','text','
'); $this->createOption('infourl','Information about BBCode','text','http://www.phpbb.com/phpBB/faq.php?mode=bbcode'); $this->createOption('YoutubeLinks','Allow YouTube links in comments?','yesno','no'); $this->createOption('yt_width','Youtube video width','text','425'); $this->createOption('yt_height','Youtube video height','text','355'); } function event_FormExtra ($data) { if($data['type']=='commentform-notloggedin' || $data['type']=='commentform-loggedin') { echo "
Allowed getOption('infourl')."\" onclick=\"javascript:window.open(this.href, '_blank'); return false;\">BBCode:"; echo "[b] [i] [u] [color=] [size=] [quote] [code] [email]"; if ($this->getOption('ImageLinks') == 'yes') { echo " [img]"; } if ($this->getOption('YoutubeLinks') == 'yes') { echo " [youtube]"; } } } function youtube_code ($data) { // get the id from the string bracketed with youtube $url_parts = parse_url($data[1]); if ($url_parts['host']!='') { // full url is used (query includes appended parameters from the url) $youtube_id = str_replace('v=', '', $url_parts['query']); } else { // only video id in brackets $youtube_id = $url_parts['path']; } // built HTML code for youtube video $code=''; return $code; } function Treatment($_text, $_nofo='', $_type) { global $CONF, $blog; /* [b][/b] [i][/i] [u][/u] */ $_text=preg_replace('/\[b\](.*)\[\/b\]/Usi','\1',$_text); $_text=preg_replace('/\[i\](.*)\[\/i\]/Usi','\1',$_text); $_text=preg_replace('/\[u\](.*)\[\/u\]/Usi','\1',$_text); /* [color=][/color] [size=][/size] */ $_text=preg_replace('/\[color=(.*)\](.*)\[\/color\]/Usi','\2',$_text); $_text=preg_replace('/\[size=(.*)\](.*)\[\/size\]/Usi','\2',$_text); /* [quote][/quote] [quote name=][/quote]*/ $_text=preg_replace('/\[quote\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1'.$this->getOption('qf').'',$_text); if ($_type=='item') { $_text=preg_replace('/\[quote name="(.*)"\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1: \2'.$this->getOption('qf').'',$_text); } else { $_text=preg_replace('/\[quote name="(.*)"\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1: \2'.$this->getOption('qf').'',$_text); } /* [code][/code] */ preg_match('/\[code\](.*)\[\/code\]/Usi', $_text, $matches); $code=preg_replace('/
/Ui','', $matches[1]); $_text=preg_replace('/\[code\](.*)\[\/code\]/Usi',''.$this->getOption('ch').$code.$this->getOption('cf').'',$_text); /* [url][/url] [url=][/url]*/ $_text=preg_replace('/\[url\](.*)\[\/url\]/Ui','\1',$_text); $_text=preg_replace('/\[url=(.*)\](.*)\[\/url\]/Ui','\2',$_text); /* [email][/email] [email=][/email]*/ $_text=preg_replace('/\[email\](.*)\[\/email\]/Ui','\1',$_text); $_text=preg_replace('/\[email=(.*)\](.*)\[\/email\]/Ui','\2',$_text); /* [img][/img] */ if (!($this->getOption('ImageLinks') == 'no' && $_type=='comment')) { $_text=preg_replace('/\[img\](.*)\[\/img\]/Ui','',$_text); } /* [youtube][/youtube] */ if (!($this->getOption('YoutubeLinks') == 'no' && $_type=='comment')) { $_text=preg_replace_callback('/\[youtube\](.*)\[\/youtube\]/Ui',array($this,'youtube_code'),$_text); } return $_text; } function DeleteLinks ($_text) { // disable core links return preg_replace('/\(.*)\<\/a\>/i','\1',$_text); } function AddLinks ($_text, $_nofo='') { // add links return preg_replace('/(\s)([http|https|ftp|file]+:\/\/[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); } function event_PreItem($_data) { if ($this->getOption('bbcode_items')=='yes') { $_data[item]->body = $this->Treatment($_data[item]->body, '', 'item'); $_data[item]->more = $this->Treatment($_data[item]->more, '', 'item'); } } function event_PreComment($_data) { if ($this->getOption('bbcode_comments')=='yes') { if ($this->getOption('nofollow')=='yes'){ $nofo=' rel="nofollow"'; } $_data['comment']['body'] = $this->DeleteLinks($_data['comment']['body']); $_data['comment']['body'] = $this->Treatment($_data['comment']['body'], $nofo, 'comment'); $_data['comment']['body'] = $this->AddLinks($_data['comment']['body'], $nofo); } } function supportsFeature ($what) { switch ($what) { case 'SqlTablePrefix': return 1; default: return 0; } } } ?>
Suatu kali ada keperluan dari seorang client yang ingin menyimpan file proposal yang ukurannya sekitar 7.5 Mb ke dalam attachment sub module Opportunity pada Microsoft CRM. Setelah sekian kali mencoba ternyata ia tidak dapat melakukannya. Error yang didapat adalah sebagai berikut
 

Error pada Microsoft Dynamic CRM


Ternyata masalahnya adalah keterbatasan Microsoft CRM untuk menyimpan file dengan ukuran diatas sekitar 5 Mb. Untuk mengatasi masalah ini, saya mempunyai solusi yang mungkin bisa dicoba, yaitu dengan mengubah registry windows pada server Microsoft CRM.

Saturday, July 22, 2006

createOption('bbcode_items','Allow BBCode in items?','yesno','yes'); $this->createOption('bbcode_comments','Allow BBCode in comments?','yesno','yes'); $this->createOption('ImageLinks','Allow image links in comments?','yesno','no'); $this->createOption('nofollow','Use rel="nofollow"','yesno','yes'); $this->createOption('qh','Quote header','text','

'); $this->createOption('qf','Quote footer','text','

'); $this->createOption('ch','Code header','text','
');
		$this->createOption('cf','Code footer','text','
'); $this->createOption('infourl','Information about BBCode','text','http://www.phpbb.com/phpBB/faq.php?mode=bbcode'); $this->createOption('YoutubeLinks','Allow YouTube links in comments?','yesno','no'); $this->createOption('yt_width','Youtube video width','text','425'); $this->createOption('yt_height','Youtube video height','text','355'); } function event_FormExtra ($data) { if($data['type']=='commentform-notloggedin' || $data['type']=='commentform-loggedin') { echo "
Allowed getOption('infourl')."\" onclick=\"javascript:window.open(this.href, '_blank'); return false;\">BBCode:"; echo "[b] [i] [u] [color=] [size=] [quote] [code] [email]"; if ($this->getOption('ImageLinks') == 'yes') { echo " [img]"; } if ($this->getOption('YoutubeLinks') == 'yes') { echo " [youtube]"; } } } function youtube_code ($data) { // get the id from the string bracketed with youtube $url_parts = parse_url($data[1]); if ($url_parts['host']!='') { // full url is used (query includes appended parameters from the url) $youtube_id = str_replace('v=', '', $url_parts['query']); } else { // only video id in brackets $youtube_id = $url_parts['path']; } // built HTML code for youtube video $code=''; return $code; } function Treatment($_text, $_nofo='', $_type) { global $CONF, $blog; /* [b][/b] [i][/i] [u][/u] */ $_text=preg_replace('/\[b\](.*)\[\/b\]/Usi','\1',$_text); $_text=preg_replace('/\[i\](.*)\[\/i\]/Usi','\1',$_text); $_text=preg_replace('/\[u\](.*)\[\/u\]/Usi','\1',$_text); /* [color=][/color] [size=][/size] */ $_text=preg_replace('/\[color=(.*)\](.*)\[\/color\]/Usi','\2',$_text); $_text=preg_replace('/\[size=(.*)\](.*)\[\/size\]/Usi','\2',$_text); /* [quote][/quote] [quote name=][/quote]*/ $_text=preg_replace('/\[quote\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1'.$this->getOption('qf').'',$_text); if ($_type=='item') { $_text=preg_replace('/\[quote name="(.*)"\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1: \2'.$this->getOption('qf').'',$_text); } else { $_text=preg_replace('/\[quote name="(.*)"\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1: \2'.$this->getOption('qf').'',$_text); } /* [code][/code] */ preg_match('/\[code\](.*)\[\/code\]/Usi', $_text, $matches); $code=preg_replace('/
/Ui','', $matches[1]); $_text=preg_replace('/\[code\](.*)\[\/code\]/Usi',''.$this->getOption('ch').$code.$this->getOption('cf').'',$_text); /* [url][/url] [url=][/url]*/ $_text=preg_replace('/\[url\](.*)\[\/url\]/Ui','\1',$_text); $_text=preg_replace('/\[url=(.*)\](.*)\[\/url\]/Ui','\2',$_text); /* [email][/email] [email=][/email]*/ $_text=preg_replace('/\[email\](.*)\[\/email\]/Ui','\1',$_text); $_text=preg_replace('/\[email=(.*)\](.*)\[\/email\]/Ui','\2',$_text); /* [img][/img] */ if (!($this->getOption('ImageLinks') == 'no' && $_type=='comment')) { $_text=preg_replace('/\[img\](.*)\[\/img\]/Ui','',$_text); } /* [youtube][/youtube] */ if (!($this->getOption('YoutubeLinks') == 'no' && $_type=='comment')) { $_text=preg_replace_callback('/\[youtube\](.*)\[\/youtube\]/Ui',array($this,'youtube_code'),$_text); } return $_text; } function DeleteLinks ($_text) { // disable core links return preg_replace('/\(.*)\<\/a\>/i','\1',$_text); } function AddLinks ($_text, $_nofo='') { // add links return preg_replace('/(\s)([http|https|ftp|file]+:\/\/[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); } function event_PreItem($_data) { if ($this->getOption('bbcode_items')=='yes') { $_data[item]->body = $this->Treatment($_data[item]->body, '', 'item'); $_data[item]->more = $this->Treatment($_data[item]->more, '', 'item'); } } function event_PreComment($_data) { if ($this->getOption('bbcode_comments')=='yes') { if ($this->getOption('nofollow')=='yes'){ $nofo=' rel="nofollow"'; } $_data['comment']['body'] = $this->DeleteLinks($_data['comment']['body']); $_data['comment']['body'] = $this->Treatment($_data['comment']['body'], $nofo, 'comment'); $_data['comment']['body'] = $this->AddLinks($_data['comment']['body'], $nofo); } } function supportsFeature ($what) { switch ($what) { case 'SqlTablePrefix': return 1; default: return 0; } } } ?>
Microsoft kembali me-release SDK (Software Development Kit) untuk Microsoft CRM versi 3.05.

 



Dalam SDK kali ini telah ditambahkan beberapa sample code baru yang tidak terdapat pada versi sebelumnya. Juga terdapat attribute detail dari semua entity yang ada. Juga sekitar 4000 topik yang diupdate dari versi sebelumnya.

Untuk yang ingin mendownload SDK yang berukuran 16Mb ini dapat mengklik di sini Microsoft CRM SDK 3.05
createOption('bbcode_items','Allow BBCode in items?','yesno','yes'); $this->createOption('bbcode_comments','Allow BBCode in comments?','yesno','yes'); $this->createOption('ImageLinks','Allow image links in comments?','yesno','no'); $this->createOption('nofollow','Use rel="nofollow"','yesno','yes'); $this->createOption('qh','Quote header','text','

'); $this->createOption('qf','Quote footer','text','

'); $this->createOption('ch','Code header','text','
');
		$this->createOption('cf','Code footer','text','
'); $this->createOption('infourl','Information about BBCode','text','http://www.phpbb.com/phpBB/faq.php?mode=bbcode'); $this->createOption('YoutubeLinks','Allow YouTube links in comments?','yesno','no'); $this->createOption('yt_width','Youtube video width','text','425'); $this->createOption('yt_height','Youtube video height','text','355'); } function event_FormExtra ($data) { if($data['type']=='commentform-notloggedin' || $data['type']=='commentform-loggedin') { echo "
Allowed getOption('infourl')."\" onclick=\"javascript:window.open(this.href, '_blank'); return false;\">BBCode:"; echo "[b] [i] [u] [color=] [size=] [quote] [code] [email]"; if ($this->getOption('ImageLinks') == 'yes') { echo " [img]"; } if ($this->getOption('YoutubeLinks') == 'yes') { echo " [youtube]"; } } } function youtube_code ($data) { // get the id from the string bracketed with youtube $url_parts = parse_url($data[1]); if ($url_parts['host']!='') { // full url is used (query includes appended parameters from the url) $youtube_id = str_replace('v=', '', $url_parts['query']); } else { // only video id in brackets $youtube_id = $url_parts['path']; } // built HTML code for youtube video $code=''; return $code; } function Treatment($_text, $_nofo='', $_type) { global $CONF, $blog; /* [b][/b] [i][/i] [u][/u] */ $_text=preg_replace('/\[b\](.*)\[\/b\]/Usi','\1',$_text); $_text=preg_replace('/\[i\](.*)\[\/i\]/Usi','\1',$_text); $_text=preg_replace('/\[u\](.*)\[\/u\]/Usi','\1',$_text); /* [color=][/color] [size=][/size] */ $_text=preg_replace('/\[color=(.*)\](.*)\[\/color\]/Usi','\2',$_text); $_text=preg_replace('/\[size=(.*)\](.*)\[\/size\]/Usi','\2',$_text); /* [quote][/quote] [quote name=][/quote]*/ $_text=preg_replace('/\[quote\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1'.$this->getOption('qf').'',$_text); if ($_type=='item') { $_text=preg_replace('/\[quote name="(.*)"\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1: \2'.$this->getOption('qf').'',$_text); } else { $_text=preg_replace('/\[quote name="(.*)"\](.*)\[\/quote\]/Usi',''.$this->getOption('qh').'\1: \2'.$this->getOption('qf').'',$_text); } /* [code][/code] */ preg_match('/\[code\](.*)\[\/code\]/Usi', $_text, $matches); $code=preg_replace('/
/Ui','', $matches[1]); $_text=preg_replace('/\[code\](.*)\[\/code\]/Usi',''.$this->getOption('ch').$code.$this->getOption('cf').'',$_text); /* [url][/url] [url=][/url]*/ $_text=preg_replace('/\[url\](.*)\[\/url\]/Ui','\1',$_text); $_text=preg_replace('/\[url=(.*)\](.*)\[\/url\]/Ui','\2',$_text); /* [email][/email] [email=][/email]*/ $_text=preg_replace('/\[email\](.*)\[\/email\]/Ui','\1',$_text); $_text=preg_replace('/\[email=(.*)\](.*)\[\/email\]/Ui','\2',$_text); /* [img][/img] */ if (!($this->getOption('ImageLinks') == 'no' && $_type=='comment')) { $_text=preg_replace('/\[img\](.*)\[\/img\]/Ui','',$_text); } /* [youtube][/youtube] */ if (!($this->getOption('YoutubeLinks') == 'no' && $_type=='comment')) { $_text=preg_replace_callback('/\[youtube\](.*)\[\/youtube\]/Ui',array($this,'youtube_code'),$_text); } return $_text; } function DeleteLinks ($_text) { // disable core links return preg_replace('/\(.*)\<\/a\>/i','\1',$_text); } function AddLinks ($_text, $_nofo='') { // add links return preg_replace('/(\s)([http|https|ftp|file]+:\/\/[a-zA-Z0-9_?=&%;+-.\/]*)/si','\1\2',$_text); } function event_PreItem($_data) { if ($this->getOption('bbcode_items')=='yes') { $_data[item]->body = $this->Treatment($_data[item]->body, '', 'item'); $_data[item]->more = $this->Treatment($_data[item]->more, '', 'item'); } } function event_PreComment($_data) { if ($this->getOption('bbcode_comments')=='yes') { if ($this->getOption('nofollow')=='yes'){ $nofo=' rel="nofollow"'; } $_data['comment']['body'] = $this->DeleteLinks($_data['comment']['body']); $_data['comment']['body'] = $this->Treatment($_data['comment']['body'], $nofo, 'comment'); $_data['comment']['body'] = $this->AddLinks($_data['comment']['body'], $nofo); } } function supportsFeature ($what) { switch ($what) { case 'SqlTablePrefix': return 1; default: return 0; } } } ?>
Jika pada Microsoft CRM versi 1.0 dan 1.2 mengharuskan untuk menginstall Microsoft Exchange, hal inilah yang merupakan salah satu penghambat berkembangnya Microsoft CRM. Oleh karena itu pada versi Microsoft CRM 3.0, Microsoft Exchange bukan lagi menjadi sebuah keharusan. Bahkan kita boleh saja menggunakan email engine apa saja asal mempunyai SMTP (Simple Mail Transfer Protocol) yang merupakan standard protocol yang hampir semua email engine memilikinya.

Walaupun demikian ada satu feature dari Microsoft CRM 3.0 yang mungkin hilang jika tidak menggunakan Microsoft Exchange. Yakni kemungkinan integrasi untuk semua email yang masuk ke dalam Microsoft CRM, Namun kelemahan ini masih saja bisa diatasi dengan berbagai cara.

Microsoft sudah membuat dokumentasi tentang masalah ini, solusi apa yang mungkin bisa dilakukan jika pelanggan kita tidak menggunakan Microsoft Exchange.

Dokumennya bisa anda download di sini Microsoft CRM 3.0 without Microsoft Exchange