SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked

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
 

Viewers also liked (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」の成長と負荷対策
 

Similar to 第二回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
 

Similar to 第二回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?
 

More from 株式会社インサイト

More from 株式会社インサイト (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
 

Recently uploaded

UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimization100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimizationarrow10202532yuvraj
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 

Recently uploaded (20)

UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimization100+ ChatGPT Prompts for SEO Optimization
100+ ChatGPT Prompts for SEO Optimization
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 

第二回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