SlideShare uma empresa Scribd logo
1 de 39
Salesforce.com


               2011.11.16 Salesforce.com




11   11   16
•   Visualforce

               •   Visualforce

               •
               •
               •   Rich   UI(Flash   )


11   11   16
Visualforce

     • Visualforce
                                   Rich   UI




11   11   16
Visualforce

     •
          •[   ]➤[        ]➤[      ]

          •[   ]

          •[         ]                 [   ]




11   11   16
Visualforce

     •
          •[   ]➤[        ]➤[      ]

          •[   ]

          •[          ]   [            ]

          •[   ]   [testPage]

          •[   ]



11   11   16
Visualforce

     •
          •                                                  apex/testPage

               (https://XXXX.salesforce.com/apex/testPage)




               ※




11   11   16
Visualforce

     •
          •      testPage

          •    This is your new Page   This is my Test Page

          •




11   11   16
Visualforce

     •




11   11   16
Visualforce

     •
          •<apex:page>                                         sidebar="false"

               showHeader= "false"

                   (<apex:page sidebar="false" showHeader="false">)

          •


               ※
                            showHeader true

11   11   16
Visualforce

     •
          •Page Editor   [Component Reference] (   )




11   11   16
Visualforce

     •
          •<apex:pageBlock>



          •[Usage]

          •<!-- Begin Default Content REMOVE THIS -->   <!-- End Default Content

          REMOVE THIS -->



11   11   16
Visualforce

     •
          •<apex:page>                                <apex:pageBlock>

                title                 A Block Title

          •<apex:pageBlock>                               <apex:pageBlockSection>

                              title               A Section Title

          •<apex:pageBlockSection> </apex:pageBlockSection>              Detail Text



          •

11   11   16
•
     SFDC




11   11   16
•
          •                  pageBlock title              {! $User.LastName}




          •


               ※{! ... }
               Visualforce                     {! ... }




11   11   16
•
          •           pageBlockSection        Today's Date is {! TODAY() }




          •



          http://www.salesforce.com/us/developer/docs/pages/Content/
                           pages_variables_global.htm
11   11   16
•
           •                  Today's Date is {! TODAY() }

               <apex:outputText value="Today''s Date is : {0,date,yyyy/MM/dd}">

                 <apex:param value="{!TODAY()}" />

               </apex:outputText>




           •
11   11   16
•
               •

               {!IF(
                   ISNULL(TODAY()),
                   "",
                   CASE( MOD( TODAY() - DATE(1900, 1, 7), 7 ),
                       0, "( )", 1, "( )", 2, "( )", 3, "( )", 4, "( )", 5, "(   )", "(   )"
                    )
               )}

               •

11   11   16
• Visualforce   MVC

                       Model =

                           View =

                     Controller =




11   11   16
•
          •testPage <apex:page> standardController              Account

          • Detail Text            {!account.name}



※                             Visualforce
{! account.name}          :            account       name                 account
                                                            (
               )




11   11   16
•                      ID
      •
      •
      •
      •
               (https://XXXX.salesforce.com/001U0000003XXXX)
                  ※                                     ID

          •testPage                                            ?ID= 001U0000003XXXX

          •
          •
11   11   16
•
          •testPage



                      searchMemberPage




11   11   16
•
          •[    ]➤[                 ]➤[         ]

          •Visualforce                                  [   ]

          •Visualforce
          •[                ]       [               ]

          •[        ]       [searchMemberTab]

          •[    ]       [       ]       [   ]


           ※


11   11   16
•
          •                     PageEditor

          •page standardController           Member__c

          • Ctrl + S



                                              VisualForce
                                     VisualForce

11   11   16
•
          •<!-- Begin Default Content REMOVE THIS -->     <!-- End Default Content

          REMOVE THIS -->

          •apex:form
          •form     apex:pageBlock               title

          •pageBlock    pageBlockSection                 title

          columns         1

          • Ctrl + S

11   11   16
•
          •pageBlockSection       pageBlockSectionItem

          •pageBlockSectionItem

                 <apex:outputText >         </apex:outputText>

                  <apex:inputText id="queryName"/>

          • Ctrl + S



11   11   16
•
               •pageBlock   <apex:pageBlockSection>

                    <apex:pageBlockButtons >

                     <apex:commandButton value="      "/>

                     </apex:pageBlockButtons>

               • Ctrl + S



11   11   16
• Apex
          •<apex:page> extensions           searchMemberController

          •

          •Apex          public class searchMemberController

          •                          Apex




          with sharing



11   11   16
• Apex
          •PageEditor                searchMemberController

          •
                  public List<Member__c> members {get; set;}
                  public Member__c member{get;set;}
                  private final String percentString = '%';
                  public PageReference runQuery()
                  {
                     members =[SELECT Name FROM Member__c WHERE Name
                  LIKE :member.Name + percentString];
                     return null;
                  }
          •    Ctrl + S

11   11   16
•
          •PageEditor                          searchMemberPage

          •                </apex:pageBlock>        pageBlock

          •             pageBlock      pageBlockTable              value

                   {!members}    var           member

          •pageBlockTable
                   <apex:column headerValue="           ">
                     <apex:outputlink >{!member.Name}</apex:outputlink>
                    </apex:column>
               •   Ctrl + S
11   11   16
•
          •         inputText    value         {!member.Name}

          •       commandButton action              {!runQuery}

          •PageEditor                        searchMemberController

          •                     (searchMemberController)

               this.member = (Member__c)controller.getRecord();

          • Ctrl + S

11   11   16
•
          •

          •    OK




11   11   16
•
          •

          •
          •        Decade
          •              (                    0)
          •      FLOOR(Age__c / 10)

          •searchMemberPage searchMemberController



11   11   16
• searchMemberPage
               <apex:page standardController="Member__c" extensions="searchMemberController">
               <apex:form >
                <apex:pageBlock title="          ">
                <apex:pageBlockSection title="         " columns="1">
                <apex:pageblockSectionItem >
                <apex:outputText >         </apex:outputText>
                <apex:inputText value="{!member.Name}" id="queryName"/>
                </apex:pageblockSectionItem>
               <apex:pageblockSectionItem >
               <apex:outputText >              </apex:outputText>
               <apex:inputfield value="{!member.SkillLevel__c}" id="querySkillLevel"/>
               </apex:pageblockSectionItem>
                <apex:pageblockSectionItem >
                <apex:outputText >        </apex:outputText>
                <apex:inputfield value="{!member.Skill__c}" id="querySkill"/>
                </apex:pageblockSectionItem>
                <apex:pageblockSectionItem >
                <apex:outputText >      </apex:outputText>
                <apex:selectCheckboxes value="{!ageSelections}" >
                       <apex:selectOptions value="{!ageOptions}"/>
                    </apex:selectCheckboxes>
                </apex:pageblockSectionItem>
                </apex:pageBlockSection>
                <apex:pageBlockButtons >
                <apex:commandButton value="         " action="{!runQuery}"/>
                </apex:pageBlockButtons>
               </apex:pageBlock>
               </apex:form>
               <apex:pageBlock >
                        <apex:pageBlockTable value="{!members}" var="member">
                         <apex:column headerValue="            ">
                           <apex:outputlink value="/{!member.Id}" target="_blank">{!member.Name}</apex:outputlink>
                         </apex:column>
                         <apex:column headerValue="         ">
                           <apex:outputText >{!member.Age__c}</apex:outputText>
                         </apex:column>
                         <apex:column headerValue="                  ">
                           <apex:outputText >{!member.SkillLevel__c}</apex:outputText>
                         </apex:column>
                         <apex:column headerValue="           ">
                           <apex:outputText >{!member.Skill__c}</apex:outputText>
                         </apex:column>
                        </apex:pageBlockTable>
                             </apex:pageBlock>
                    </apex:page>
11   11   16
• searchMemberController
               public class searchMemberController {
                 public Member__c member{get;set;}
                 public String[] ageSelections{get;set;}
                 public List<Member__c> members {get; set;}
                 private final String percentString = '%';
                 public searchMemberController(ApexPages.StandardController controller) {
                       this.member = (Member__c)controller.getRecord();
                       ageSelections=new String[]{};
                 }
                 public List<SelectOption> getAgeOptions() {
                   List<SelectOption> options = new List<SelectOption>();
                   options.add(new SelectOption('2', '20 '));
                   options.add(new SelectOption('3', '30 '));
                   return options;
                 }
                 public PageReference runQuery()
                 {
                   String soql = 'Select Name,Age__c, Mail__c, Skill__c, SkillLevel__c FROM Member__c WHERE ';
                   soql += ' Name LIKE '' + member.Name + percentString + ''';
                   if(member.SkillLevel__c != null){
                       soql += ' AND SkillLevel__c = '' + member.SkillLevel__c + ''';
                   }
                   if(member.Skill__c != null){
                        soql += ' AND Skill__c includes( '' + member.Skill__c +'')';
                   }
                     if(ageSelections.size() > 0)
                     {
                         soql += ' AND Decade__c IN ' + ageSelections;
                     }
                     System.debug(soql);
                     members =Database.query(soql);
                     return null;
                 }
                }
11   11   16
• SQL
          •

          •                                             URL

               http://wiki.developerforce.com/page/JP:Secure_Coding_SQL_Injection




11   11   16
Rich   UI


     • Flash
                          Visualforce

                          Flash


               ※   SFDC




11   11   16
Rich         UI


     • Flash
          •[   ]➤[        ]➤[                 ]

          •

          •        flashResource

          •        swf

          •
               ※Chatter                               URL
                          http://www12113u.sakura.ne.jp:3000/taskchart.swf
11   11   16
Rich     UI


     • Flash
          •

               <apex:page sidebar="false" >

                  <apex:flash src="{!$Resource.flashResource}"

                  height="600" width="100%" />

               </apex:page>

          •


11   11   16
•   Visualforce
                    →
               •   Visualforce
                    →PageEditor
               •
                    →
               •
                    →Apex                DB
               •   Rich   UI(Flash   )
                    →swf
11   11   16

Mais conteúdo relacionado

Mais procurados

Custom Development with Novell Teaming
Custom Development with Novell TeamingCustom Development with Novell Teaming
Custom Development with Novell TeamingNovell
 
Vibe Custom Development
Vibe Custom DevelopmentVibe Custom Development
Vibe Custom DevelopmentGWAVA
 
DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻都元ダイスケ Miyamoto
 
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010Arun Gupta
 
Spsbe using js-linkanddisplaytemplates
Spsbe   using js-linkanddisplaytemplatesSpsbe   using js-linkanddisplaytemplates
Spsbe using js-linkanddisplaytemplatesPaul Hunt
 
SUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsSUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsPaul Hunt
 

Mais procurados (7)

Custom Development with Novell Teaming
Custom Development with Novell TeamingCustom Development with Novell Teaming
Custom Development with Novell Teaming
 
Vibe Custom Development
Vibe Custom DevelopmentVibe Custom Development
Vibe Custom Development
 
DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻DevLOVE Beautiful Development - 第一幕 陽の巻
DevLOVE Beautiful Development - 第一幕 陽の巻
 
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
 
Spsbe using js-linkanddisplaytemplates
Spsbe   using js-linkanddisplaytemplatesSpsbe   using js-linkanddisplaytemplates
Spsbe using js-linkanddisplaytemplates
 
SUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsSUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT Pros
 
ApacheCon 2005
ApacheCon 2005ApacheCon 2005
ApacheCon 2005
 

Destaque

Bo F 鉄は熱いうちに打て!今すぐやろう社内勉強会!(当日資料)
Bo F 鉄は熱いうちに打て!今すぐやろう社内勉強会!(当日資料)Bo F 鉄は熱いうちに打て!今すぐやろう社内勉強会!(当日資料)
Bo F 鉄は熱いうちに打て!今すぐやろう社内勉強会!(当日資料)rip jyr
 
20090620 勉強会おもてなし精神
20090620 勉強会おもてなし精神20090620 勉強会おもてなし精神
20090620 勉強会おもてなし精神rip jyr
 
僕が勉強会でやりたいこと
僕が勉強会でやりたいこと僕が勉強会でやりたいこと
僕が勉強会でやりたいことrip jyr
 
【公開用】アプリ向けDSP Tapticaをフル活用して 最大の成果を出す方法 @アド部 イスラエルモバイルアドテクセミナー
【公開用】アプリ向けDSP Tapticaをフル活用して 最大の成果を出す方法 @アド部 イスラエルモバイルアドテクセミナー【公開用】アプリ向けDSP Tapticaをフル活用して 最大の成果を出す方法 @アド部 イスラエルモバイルアドテクセミナー
【公開用】アプリ向けDSP Tapticaをフル活用して 最大の成果を出す方法 @アド部 イスラエルモバイルアドテクセミナーAdinnovation Inc.
 
Display landscape-jp-2015exchangewire-japan updated040915
Display landscape-jp-2015exchangewire-japan updated040915Display landscape-jp-2015exchangewire-japan updated040915
Display landscape-jp-2015exchangewire-japan updated040915ExchangeWire Japan
 
Display landscape jp-2016exchangewire-japan updated102516
Display landscape jp-2016exchangewire-japan updated102516Display landscape jp-2016exchangewire-japan updated102516
Display landscape jp-2016exchangewire-japan updated102516ExchangeWire Japan
 
DSP「ScaleOut」の成長と負荷対策
DSP「ScaleOut」の成長と負荷対策DSP「ScaleOut」の成長と負荷対策
DSP「ScaleOut」の成長と負荷対策Toshiaki Ishibashi
 

Destaque (9)

Bo F 鉄は熱いうちに打て!今すぐやろう社内勉強会!(当日資料)
Bo F 鉄は熱いうちに打て!今すぐやろう社内勉強会!(当日資料)Bo F 鉄は熱いうちに打て!今すぐやろう社内勉強会!(当日資料)
Bo F 鉄は熱いうちに打て!今すぐやろう社内勉強会!(当日資料)
 
20090620 勉強会おもてなし精神
20090620 勉強会おもてなし精神20090620 勉強会おもてなし精神
20090620 勉強会おもてなし精神
 
僕が勉強会でやりたいこと
僕が勉強会でやりたいこと僕が勉強会でやりたいこと
僕が勉強会でやりたいこと
 
【公開用】アプリ向けDSP Tapticaをフル活用して 最大の成果を出す方法 @アド部 イスラエルモバイルアドテクセミナー
【公開用】アプリ向けDSP Tapticaをフル活用して 最大の成果を出す方法 @アド部 イスラエルモバイルアドテクセミナー【公開用】アプリ向けDSP Tapticaをフル活用して 最大の成果を出す方法 @アド部 イスラエルモバイルアドテクセミナー
【公開用】アプリ向けDSP Tapticaをフル活用して 最大の成果を出す方法 @アド部 イスラエルモバイルアドテクセミナー
 
20111212勉強会資料
20111212勉強会資料20111212勉強会資料
20111212勉強会資料
 
ネット広告のシステム関連の話
ネット広告のシステム関連の話ネット広告のシステム関連の話
ネット広告のシステム関連の話
 
Display landscape-jp-2015exchangewire-japan updated040915
Display landscape-jp-2015exchangewire-japan updated040915Display landscape-jp-2015exchangewire-japan updated040915
Display landscape-jp-2015exchangewire-japan updated040915
 
Display landscape jp-2016exchangewire-japan updated102516
Display landscape jp-2016exchangewire-japan updated102516Display landscape jp-2016exchangewire-japan updated102516
Display landscape jp-2016exchangewire-japan updated102516
 
DSP「ScaleOut」の成長と負荷対策
DSP「ScaleOut」の成長と負荷対策DSP「ScaleOut」の成長と負荷対策
DSP「ScaleOut」の成長と負荷対策
 

Semelhante a 第二回Salesforce勉強会

Webinar: Salesforce Customization using Visualforce and Lightning Component F...
Webinar: Salesforce Customization using Visualforce and Lightning Component F...Webinar: Salesforce Customization using Visualforce and Lightning Component F...
Webinar: Salesforce Customization using Visualforce and Lightning Component F...APPSeCONNECT
 
Database Fundamental Concepts- Series 1 - Performance Analysis
Database Fundamental Concepts- Series 1 - Performance AnalysisDatabase Fundamental Concepts- Series 1 - Performance Analysis
Database Fundamental Concepts- Series 1 - Performance AnalysisDAGEOP LTD
 
A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4
A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4
A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4balunasj
 
Percona Live London 2014: Serve out any page with an HA Sphinx environment
Percona Live London 2014: Serve out any page with an HA Sphinx environmentPercona Live London 2014: Serve out any page with an HA Sphinx environment
Percona Live London 2014: Serve out any page with an HA Sphinx environmentspil-engineering
 
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...BIWUG
 
LeSS in action
LeSS in actionLeSS in action
LeSS in actionPu Shiming
 
Jatkoaika.com - building sports website using Drupal
Jatkoaika.com - building sports website using DrupalJatkoaika.com - building sports website using Drupal
Jatkoaika.com - building sports website using DrupalExove
 
XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011Tim Clark
 
SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!Ben Steinhauser
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and ActivatorKevin Webber
 
Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014manolitto
 
a11yTO - Web Accessibility for Developers
a11yTO - Web Accessibility for Developersa11yTO - Web Accessibility for Developers
a11yTO - Web Accessibility for DevelopersMonika Piotrowicz
 
David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?mdevtalk
 

Semelhante a 第二回Salesforce勉強会 (20)

Spring
SpringSpring
Spring
 
第三回Salesforce勉強会
第三回Salesforce勉強会第三回Salesforce勉強会
第三回Salesforce勉強会
 
Webinar: Salesforce Customization using Visualforce and Lightning Component F...
Webinar: Salesforce Customization using Visualforce and Lightning Component F...Webinar: Salesforce Customization using Visualforce and Lightning Component F...
Webinar: Salesforce Customization using Visualforce and Lightning Component F...
 
Tfs introduction
Tfs introductionTfs introduction
Tfs introduction
 
Database Fundamental Concepts- Series 1 - Performance Analysis
Database Fundamental Concepts- Series 1 - Performance AnalysisDatabase Fundamental Concepts- Series 1 - Performance Analysis
Database Fundamental Concepts- Series 1 - Performance Analysis
 
A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4
A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4
A Peek At The Future: Going Beyond JavaServer Faces 2.0 With RichFaces 4
 
Introduction to Flask Micro Framework
Introduction to Flask Micro FrameworkIntroduction to Flask Micro Framework
Introduction to Flask Micro Framework
 
Percona Live London 2014: Serve out any page with an HA Sphinx environment
Percona Live London 2014: Serve out any page with an HA Sphinx environmentPercona Live London 2014: Serve out any page with an HA Sphinx environment
Percona Live London 2014: Serve out any page with an HA Sphinx environment
 
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
 
LeSS in action
LeSS in actionLeSS in action
LeSS in action
 
Jatkoaika.com - building sports website using Drupal
Jatkoaika.com - building sports website using DrupalJatkoaika.com - building sports website using Drupal
Jatkoaika.com - building sports website using Drupal
 
ENOVIA v6 R2013x Tips and Tricks
ENOVIA v6 R2013x Tips and TricksENOVIA v6 R2013x Tips and Tricks
ENOVIA v6 R2013x Tips and Tricks
 
XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011XPages Blast - Lotusphere 2011
XPages Blast - Lotusphere 2011
 
SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!SharePoint 2014: Where to save my data, for devs!
SharePoint 2014: Where to save my data, for devs!
 
Selenium再入門
Selenium再入門Selenium再入門
Selenium再入門
 
ELAG Workshop version 1
ELAG Workshop version 1ELAG Workshop version 1
ELAG Workshop version 1
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
 
Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014Ankor Presentation @ JavaOne San Francisco September 2014
Ankor Presentation @ JavaOne San Francisco September 2014
 
a11yTO - Web Accessibility for Developers
a11yTO - Web Accessibility for Developersa11yTO - Web Accessibility for Developers
a11yTO - Web Accessibility for Developers
 
David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?David Bilík: Anko – modern way to build your layouts?
David Bilík: Anko – modern way to build your layouts?
 

Mais de 株式会社インサイト

Mais de 株式会社インサイト (7)

2012活動基本方針
2012活動基本方針2012活動基本方針
2012活動基本方針
 
『Salesforece.com勉強会(コンサル向け)』第2回 at 大阪
『Salesforece.com勉強会(コンサル向け)』第2回 at 大阪『Salesforece.com勉強会(コンサル向け)』第2回 at 大阪
『Salesforece.com勉強会(コンサル向け)』第2回 at 大阪
 
第四回Salesforce勉強会
第四回Salesforce勉強会第四回Salesforce勉強会
第四回Salesforce勉強会
 
第一回Salesforce勉強会
第一回Salesforce勉強会第一回Salesforce勉強会
第一回Salesforce勉強会
 
20111014説明会資料(勉強会)
20111014説明会資料(勉強会)20111014説明会資料(勉強会)
20111014説明会資料(勉強会)
 
説明会用資料(Force.comセミナー)
説明会用資料(Force.comセミナー)説明会用資料(Force.comセミナー)
説明会用資料(Force.comセミナー)
 
キックオフ説明会20110114
キックオフ説明会20110114キックオフ説明会20110114
キックオフ説明会20110114
 

Último

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

第二回Salesforce勉強会

  • 1. Salesforce.com 2011.11.16 Salesforce.com 11 11 16
  • 2. Visualforce • Visualforce • • • Rich UI(Flash ) 11 11 16
  • 3. Visualforce • Visualforce Rich UI 11 11 16
  • 4. Visualforce • •[ ]➤[ ]➤[ ] •[ ] •[ ] [ ] 11 11 16
  • 5. Visualforce • •[ ]➤[ ]➤[ ] •[ ] •[ ] [ ] •[ ] [testPage] •[ ] 11 11 16
  • 6. Visualforce • • apex/testPage (https://XXXX.salesforce.com/apex/testPage) ※ 11 11 16
  • 7. Visualforce • • testPage • This is your new Page This is my Test Page • 11 11 16
  • 8. Visualforce • 11 11 16
  • 9. Visualforce • •<apex:page> sidebar="false" showHeader= "false" (<apex:page sidebar="false" showHeader="false">) • ※ showHeader true 11 11 16
  • 10. Visualforce • •Page Editor [Component Reference] ( ) 11 11 16
  • 11. Visualforce • •<apex:pageBlock> •[Usage] •<!-- Begin Default Content REMOVE THIS --> <!-- End Default Content REMOVE THIS --> 11 11 16
  • 12. Visualforce • •<apex:page> <apex:pageBlock> title A Block Title •<apex:pageBlock> <apex:pageBlockSection> title A Section Title •<apex:pageBlockSection> </apex:pageBlockSection> Detail Text • 11 11 16
  • 13. SFDC 11 11 16
  • 14. • pageBlock title {! $User.LastName} • ※{! ... } Visualforce {! ... } 11 11 16
  • 15. • pageBlockSection Today's Date is {! TODAY() } • http://www.salesforce.com/us/developer/docs/pages/Content/ pages_variables_global.htm 11 11 16
  • 16. • Today's Date is {! TODAY() } <apex:outputText value="Today''s Date is : {0,date,yyyy/MM/dd}"> <apex:param value="{!TODAY()}" /> </apex:outputText> • 11 11 16
  • 17. • {!IF( ISNULL(TODAY()), "", CASE( MOD( TODAY() - DATE(1900, 1, 7), 7 ), 0, "( )", 1, "( )", 2, "( )", 3, "( )", 4, "( )", 5, "( )", "( )" ) )} • 11 11 16
  • 18. • Visualforce MVC Model = View = Controller = 11 11 16
  • 19. •testPage <apex:page> standardController Account • Detail Text {!account.name} ※ Visualforce {! account.name} : account name account ( ) 11 11 16
  • 20. ID • • • • (https://XXXX.salesforce.com/001U0000003XXXX) ※ ID •testPage ?ID= 001U0000003XXXX • • 11 11 16
  • 21. •testPage searchMemberPage 11 11 16
  • 22. •[ ]➤[ ]➤[ ] •Visualforce [ ] •Visualforce •[ ] [ ] •[ ] [searchMemberTab] •[ ] [ ] [ ] ※ 11 11 16
  • 23. • PageEditor •page standardController Member__c • Ctrl + S VisualForce VisualForce 11 11 16
  • 24. •<!-- Begin Default Content REMOVE THIS --> <!-- End Default Content REMOVE THIS --> •apex:form •form apex:pageBlock title •pageBlock pageBlockSection title columns 1 • Ctrl + S 11 11 16
  • 25. •pageBlockSection pageBlockSectionItem •pageBlockSectionItem <apex:outputText > </apex:outputText> <apex:inputText id="queryName"/> • Ctrl + S 11 11 16
  • 26. •pageBlock <apex:pageBlockSection> <apex:pageBlockButtons > <apex:commandButton value=" "/> </apex:pageBlockButtons> • Ctrl + S 11 11 16
  • 27. • Apex •<apex:page> extensions searchMemberController • •Apex public class searchMemberController • Apex with sharing 11 11 16
  • 28. • Apex •PageEditor searchMemberController • public List<Member__c> members {get; set;} public Member__c member{get;set;} private final String percentString = '%'; public PageReference runQuery() { members =[SELECT Name FROM Member__c WHERE Name LIKE :member.Name + percentString]; return null; } • Ctrl + S 11 11 16
  • 29. •PageEditor searchMemberPage • </apex:pageBlock> pageBlock • pageBlock pageBlockTable value {!members} var member •pageBlockTable <apex:column headerValue=" "> <apex:outputlink >{!member.Name}</apex:outputlink> </apex:column> • Ctrl + S 11 11 16
  • 30. • inputText value {!member.Name} • commandButton action {!runQuery} •PageEditor searchMemberController • (searchMemberController) this.member = (Member__c)controller.getRecord(); • Ctrl + S 11 11 16
  • 31. • • OK 11 11 16
  • 32. • • • Decade • ( 0) • FLOOR(Age__c / 10) •searchMemberPage searchMemberController 11 11 16
  • 33. • searchMemberPage <apex:page standardController="Member__c" extensions="searchMemberController"> <apex:form > <apex:pageBlock title=" "> <apex:pageBlockSection title=" " columns="1"> <apex:pageblockSectionItem > <apex:outputText > </apex:outputText> <apex:inputText value="{!member.Name}" id="queryName"/> </apex:pageblockSectionItem> <apex:pageblockSectionItem > <apex:outputText > </apex:outputText> <apex:inputfield value="{!member.SkillLevel__c}" id="querySkillLevel"/> </apex:pageblockSectionItem> <apex:pageblockSectionItem > <apex:outputText > </apex:outputText> <apex:inputfield value="{!member.Skill__c}" id="querySkill"/> </apex:pageblockSectionItem> <apex:pageblockSectionItem > <apex:outputText > </apex:outputText> <apex:selectCheckboxes value="{!ageSelections}" > <apex:selectOptions value="{!ageOptions}"/> </apex:selectCheckboxes> </apex:pageblockSectionItem> </apex:pageBlockSection> <apex:pageBlockButtons > <apex:commandButton value=" " action="{!runQuery}"/> </apex:pageBlockButtons> </apex:pageBlock> </apex:form> <apex:pageBlock > <apex:pageBlockTable value="{!members}" var="member"> <apex:column headerValue=" "> <apex:outputlink value="/{!member.Id}" target="_blank">{!member.Name}</apex:outputlink> </apex:column> <apex:column headerValue=" "> <apex:outputText >{!member.Age__c}</apex:outputText> </apex:column> <apex:column headerValue=" "> <apex:outputText >{!member.SkillLevel__c}</apex:outputText> </apex:column> <apex:column headerValue=" "> <apex:outputText >{!member.Skill__c}</apex:outputText> </apex:column> </apex:pageBlockTable> </apex:pageBlock> </apex:page> 11 11 16
  • 34. • searchMemberController public class searchMemberController { public Member__c member{get;set;} public String[] ageSelections{get;set;} public List<Member__c> members {get; set;} private final String percentString = '%'; public searchMemberController(ApexPages.StandardController controller) { this.member = (Member__c)controller.getRecord(); ageSelections=new String[]{}; } public List<SelectOption> getAgeOptions() { List<SelectOption> options = new List<SelectOption>(); options.add(new SelectOption('2', '20 ')); options.add(new SelectOption('3', '30 ')); return options; } public PageReference runQuery() { String soql = 'Select Name,Age__c, Mail__c, Skill__c, SkillLevel__c FROM Member__c WHERE '; soql += ' Name LIKE '' + member.Name + percentString + '''; if(member.SkillLevel__c != null){ soql += ' AND SkillLevel__c = '' + member.SkillLevel__c + '''; } if(member.Skill__c != null){ soql += ' AND Skill__c includes( '' + member.Skill__c +'')'; } if(ageSelections.size() > 0) { soql += ' AND Decade__c IN ' + ageSelections; } System.debug(soql); members =Database.query(soql); return null; } } 11 11 16
  • 35. • SQL • • URL http://wiki.developerforce.com/page/JP:Secure_Coding_SQL_Injection 11 11 16
  • 36. Rich UI • Flash Visualforce Flash ※ SFDC 11 11 16
  • 37. Rich UI • Flash •[ ]➤[ ]➤[ ] • • flashResource • swf • ※Chatter URL http://www12113u.sakura.ne.jp:3000/taskchart.swf 11 11 16
  • 38. Rich UI • Flash • <apex:page sidebar="false" > <apex:flash src="{!$Resource.flashResource}" height="600" width="100%" /> </apex:page> • 11 11 16
  • 39. Visualforce → • Visualforce →PageEditor • → • →Apex DB • Rich UI(Flash ) →swf 11 11 16