Salesforce에서 제공하는 PaaS (Platform as a Service) 형태로 제공하는 Force.com을 정리 합니다.


Force.com 개요


대표적인 SaaS 서비스인 Salesforce을 PaaS 영역으로 확장 시킨 것이 Force.com 입니다.

  • Force.com의 구성
  • Force.com Overview
    800px {|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- |width="25%" align="center" valign="middle" style="background-color:#eee;"|SFDC Java API |width="75%"|

  • |- |align="center" valign="middle" style="background-color:#eee;"|Ext-JS |
  • Ext-JS 4.0.1
    |- |align="center" valign="middle" style="background-color:#eee;"|jQuery |
  • jQuery 1.6.2
    |- |align="center" valign="middle" style="background-color:#eee;"|AJAX Toolkit |
  • JavaScript를 사용하여 sObject의 CRUD 처리
  • sforce.connection.~
    |- |align="center" valign="middle" style="background-color:#eee;"|Page 적용 대상 UI |
  • 탭, 사이트, 필드, 버튼 및 링크, Flow
    |- |align="center" valign="middle" style="background-color:#eee;"|정적 자원 (Resource) |
  • Visualforce 페이지에서 참조하려는 .zip 및 .jar 파일, 이미지, 스타일시트, JavaScript 및 기타 정적 파일
  • 사용 : $Resource.~
    |- |align="center" valign="middle" style="background-color:#eee;"|구성 요소 (Component) |
  • Visualforce Page에서 재사용 가능한 코드 블록
  • 정의 : apex:component, apex:attribute, apex:componentBody, apex:variable
  • 사용 : 표준 Component. apex:~, 사용자 정의 Component. <c:~ >, http:///apexcomponent/
    |- |align="center" valign="middle" style="background-color:#eee;"|사용자 정의 라벨 (Custom Label) |
  • 다국어 지원이 가능한 사용자 정의 라벨,
  • 사용 : System.Label., {!$Label.}
    |- |align="center" valign="middle" style="background-color:#eee;"|사용자 정의 설정 (Custom Setting) |
  • 사용자가 정의 한 설정 값(개체)을 관리
  • Map<String, ~> ~.getAll(), ~ = ~.getInstance(name 또는 blank 또는 userid 또는 profileid)
  • Map<String, ~> ~.getOrgDefaults()
    |- |align="center" valign="middle" style="background-color:#eee;"|필드 집합 (Field Set) |
  • Visualforce Page에서 사용이 가능한 Field Set, Beta
  • 사용 : {!$ObjectType.Account.FieldSets.~}, Label, Type, Required
    |- |align="center" valign="middle" style="background-color:#eee;"|StandardSetController |
  • 레코드 목록을 관리
    |- |align="center" valign="middle" style="background-color:#eee;"|StandardController |
  • 하나의 레코트를 관리
    |- |align="center" valign="middle" style="background-color:#eee;"|Page |
  • Rendered, id, rerender
  • PageReference, Page, $Page, $Action
    |- |align="center" valign="middle" style="background-color:#eee;"|Email Service |
  • Mail 발송
  • Messaging.SingleEmailMessage, Messaging.EmailFileAttachment
    |- |align="center" valign="middle" style="background-color:#eee;"|RemoteAction |
  • JavaScript에서 Controller의 함수를 호출
  • @RemoteAction
  • controller.meth(params, func(result, event) { ~ }, {escape:true});
    |- |align="center" valign="middle" style="background-color:#eee;"|Web Services |
  • AJAX 방식으로 Web Service 호출
  • sforce.apex.execute
    |- |align="center" valign="middle" style="background-color:#eee;"|Batch Apex |
  • Database.Batchable<~>, Stateful, start, execute, finish
  • Database.executeBatch(batch)
    |- |align="center" valign="middle" style="background-color:#eee;"|Scheduler |
  • Apex Class로 예약 작업 설정
  • Schedulable
    |- |align="center" valign="middle" style="background-color:#eee;"|Trigger |
  • Apex Class에 대한 Trigger
  • Trigger : isInsert, isUpdate, isDelete, isBefore, isAfter, old, oldMap, new, newMap, size
    |- |align="center" valign="middle" style="background-color:#eee;"|Testing Apex |
  • Test-Driven Development, 75% 이상의 테스트율 필요
  • @isTest, testMethod, System.RunAs(), startTest(), stopTest(), System.assert()
    |- |align="center" valign="middle" style="background-color:#eee;"|Class |

  • |- |align="center" valign="middle" style="background-color:#eee;"|DML |
  • Data Manipulation Language
  • Database.insert, update, upsert, delete, undelete, merge
    |- |align="center" valign="middle" style="background-color:#eee;"|SOSL |
  • Salesforce Object Search Language
  • FIND ~ IN ALL FIELDS RETURNING Account (~) WITH ~ = ~
    |- |align="center" valign="middle" style="background-color:#eee;"|SOQL |
  • Salesforce Object Query Language
  • SELECT ~ FROM ~ WHERE ~ ORDER BY ~ LIMIT ~ |}
  • Force.com MVC Model
    600px

개발 환경 설정


Force.com IDE


무료 에디션 신청


Eclipse Plugin 설정

  • Eclipse 3.5 (Galileo), JDK 1.5+ 지원
  • Eclipse에서 Force.com Plugin을 설치 합니다.
    • Eclipse에서 "Help -> Install New Software..." 메뉴를 선택하는 "Add..." 버튼을 선택 합니다.
    • 목록 중에서 "Force.com IDE"를 선택하여 설치 합니다.


Eclipse Plugin upgrade

  • "Help -> Show Force.com Start Page" 메뉴를 선택 합니다. 그림:EclipseUpgrade00.png
  • Eclipse IDE에서 우측 상단의 "check for updates" 링크를 선택 합니다. 그림:EclipseUpgrade01.png
  • "Next"를 선택 합니다. 그림:EclipseUpgrade02.png
  • "Next"를 선택 합니다. 그림:EclipseUpgrade03.png
  • "Finish"를 선택 합니다. 그림:EclipseUpgrade04.png
  • "Install All"을 선택 합니다.
    그림:EclipseUpgrade05.png

지원 도구


Force.com IDE Charset 설정

  • "Window -> Preferences -> General -> Workspace" 메뉴에서 "Text file encoding"을 "UTF-8"로 설정 합니다.
  • Package Explorer에서 패키지명을 오른쪽 마우스로 클릭 합니다.
    • "Properties -> Resource" 메뉴에서 "Text file encoding"을 "UTF-8"로 설정 합니다.
  • Package Explorer에서 임의의 프로그램을 오른쪽 마우스로 클릭 합니다.
    • "Run As -> Run Configurations..." 메뉴를 선택 합니다.
    • "Arguments" 탭에서 "VM arguments"에 "-Dfile.encoding=UTF-8"를 추가 합니다.
    • "Common" 탭에서 "Encoding"을 "UTF-8"로 설정 합니다.

      아래 사항은 WSC (Web Service Connector)에서 사용할 수 있는 Charset 설정 입니다.
  • ~.properties 파일을 깨어지지 않은 형태로 보고 싶을 경우
  • Java Compile과 실행시 다음과 같이 설정 합니다.
    • 예) %JAVA_HOME%\bin\javac -source 1.6 -target 1.6 -encoding UTF-8 -d %WSC_TARGET% %WSC_SRC%/com/jopenbusiness/sfdc/wsc/Sample.java
    • 예) %JAVA_HOME%\bin\java -version:1.6 -Dfile.encoding=UTF-8 com.jopenbusiness.sfdc.wsc.Sample
  • ANT 사용시 java task 사용시 다음을 추가 합니다.



Excel Connecter


Force.com Debugging


  • Debugging 메뉴

    • 개발자 콘솔
    • 설정 -> 관리 설정 -> 모니터링 -> 디버그 로그
  • Force.com Debugging
    Execution { <- Execution Started/ :Visualforce Page {

    VF Deserialize Viewstate

    :}

    :Class - get { <- Code Unit Started/Finished

    Class - hasException {
    :Class - 생성자
    }

    :}

    :Class - invoke (copyQuoteItemsToOppty) {

    Statement Execute : 실행한 라인 번호
    Exception Thrown : Exception 오류 발생
    Fatal Error

    :} }



Force.com 제약 사항


800px


Force.com Free

  • 가격 : 무료
  • 사용자 수 : 최대 100명
  • 애플리케이션 : 최대 1개
  • 개체 : 최대 10개
  • 스토리지 : 최대 1GB


Force.com Enterprise

  • 가격 : 사용자당 월 $50
  • 사용자 수 : 100명 이상 가능
  • 애플리케이션 : 최대 10개
  • 개체 : 최대 200개
  • 탭 : 최대 25개 (?)
  • 스토리지 :
  • Chatter 포함
  • Account, Contact 개체 사용 가능
  • Mobile Access


Force.com Unlimited

  • 가격 : 사용자당 월 $75
  • 사용자 수 : 100명 이상 가능
  • 애플리케이션 : 무제한
  • 개체 : 최대 2000개
  • 탭 :
  • 스토리지 :
  • Chatter 포함
  • Account, Contact 개체 사용 가능
  • Mobile Access
  • Multiple sandbox


Apex Code 제약 사항

Apex Code가 실행될 때, Trigger가 같이 실행된다면 제약 사항은 Apex Code와 Trigger의 합으로 적용이 됩니다.

  • Apex Code 제약 사항
    • 한번의 Query로 가져올 수 있는 레코드 수 : 200개
    • 하나의 Apex Code에서 가져올 수 있를 레코드 수 : 10,000개
  • Apexe Trigger 제약 사항
    • 최대 1000 레코드 처리
    • 하나의 SOQL문은 최대 20개의 레코드 반환
  • your organization limit of 2 MB for all Apex scripts
  • No more than 10 method calls per Apex invocation
  • Methods with the future annotation can execute 100 SOQL queries when they are in the context of a testMethod
  • Salesforce.com also imposes a limit on the number of future annotations: 200 method calls per full Salesforce.com user license per 24 hours. This is an organization-wide limit. For example, suppose your organization has 5 full Salesforce.com user licenses and 100 Customer Portal User. Your entire organization is limited to only 1,000 method calls every 24 hours (5 * 200, not 105.)

    {|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- |width="70%" align="center" valign="middle" style="background-color:#eee;"|Description |width="30%" align="center" valign="middle" style="background-color:#eee;"|Limit |- |align="left" valign="middle"|
  • Total number of SOQL queries issued
  • 최대 SOQL 호출 횟수
    • Sub-Query가 있을 경우, Sub-Query도 하나의 SOQL로 계산 합니다.
      |align="center" valign="middle"| 100회 |- |align="left" valign="middle"|
  • Total number of SOQL queries issued for Batch Apex and future methods
  • Batch Apex에서 최대 SOQL 호출 횟수
    • Sub-Query가 있을 경우, Sub-Query도 하나의 SOQL로 계산 합니다.
      |align="center" valign="middle"| 200회 |- |align="left" valign="middle"|
  • Total number of records retrieved by SOQL queries
  • 최대 반환 레코드 수
    |align="center" valign="middle"| 50,000 레코드 |- |align="left" valign="middle"|
  • Total number of SOSL queries issued
  • 최대 SOSL 호출 횟수
    |align="center" valign="middle"| 20회 |- |align="left" valign="middle"|
  • Total number of records retrieved by a single SOSL query
  • 하나의 SOSL에서 반환하는 최대 레코드 수
    |align="center" valign="middle"| 200 레코드 |- |align="left" valign="middle"|
  • Total number of DML statements issued
  • 최대 DML 호출 횟수
    • insert, update, upsert, delete
    • Approval.process, findSimilar, merge, setSavePoint, rollback, runAs, emptyRecyleBin
      |align="center" valign="middle"| 150 회 |- |align="left" valign="middle"|
  • Total number of records processed as a result of DML statements, Approval.process, or
    database.emptyRecycleBin
  • DML에 의해 처리되는 최대 레코드 수
    |align="center" valign="middle"| 10,000 레코드 |- |align="left" valign="middle"|
  • Total number of executed code statements
  • 최대 실행코드 수
    |align="center" valign="middle"| 200,000 |- |align="left" valign="middle"|
  • Total number of executed code statements for Batch Apex and future methods
  • Batch Apex에서 최대 실행 코드 수
    |align="center" valign="middle"| 1,000,000 |- |align="left" valign="middle"|
  • Total heap size
  • 최대 Heap size
    |align="center" valign="middle"| 3 MB
    Email servie는 18MB |- |align="left" valign="middle"|
  • Total heap size for Batch Apex and future methods
  • Batch Apex에서 최대 Heap size
    |align="center" valign="middle"| 6 MB |- |align="left" valign="middle"|
  • Total stack depth for any Apex invocation that recursively fires triggers due to insert, update, or delete statements
  • 최대 Recursive Depth
    |align="center" valign="middle"| 16 depth |- |align="left" valign="middle"|
  • For loop list batch size
    |align="center" valign="middle"| 200 |- |align="left" valign="middle"|
  • Total number of callouts (HTTP requests or Web services calls) in a request
    |align="center" valign="middle"| 10 |- |align="left" valign="middle"|
  • Maximum timeout for all callouts (HTTP requests or Web services calls) in a request
    |align="center" valign="middle"| 120 seconds |- |align="left" valign="middle"|
  • Default timeout of callouts (HTTP requests or Web services calls) in a request
    |align="center" valign="middle"| 10 seconds |- |align="left" valign="middle"|
  • Total number of methods with the future annotation allowed per Apex invocation
    |align="center" valign="middle"| 10 |- |align="left" valign="middle"|
  • Maximum size of callout request or response (HTTP request or Web services call)
    |align="center" valign="middle"| 3 MB |- |align="left" valign="middle"|
  • Total number of sendEmail methods allowed
    |align="center" valign="middle"| 10 |- |align="left" valign="middle"|
  • Total number of describes allowed
    |align="center" valign="middle"| 100 |}
    ![그림:Force.comLimit01.png](img/Force.comLimit01.png)
    ![그림:Force.comLimit02.png](img/Force.comLimit02.png)

Visualforce 제약 사항

  • Stacit Resource : 각각 5MB, 최대 250MB
  • Maximum view state size limit (135KB)


Excel Connecter 제약 사항

  • 한번에 처리되는 레코드의 개수 : 50 레코드
  • 작업할 수 있는 최대 필드(항목) 수 : 20 필드
  • 작업할 수 있는 최대 레코드 수 : 5,000 레코드


Salesforce 가격

그림:Force.com Price 20120409.png

  • Sales Cloud - Enterprise Edition : $125 / user, month
  • Service Cloud - Enterprise Edition : $135 / user, month
  • Force.com - Enterprise Edition : $50 / user, month
  • Force.com - Enterprise Edition (One App) : $15 / user, month
  • Enterprise Edition (Knowledge-only) : $50 / user, month
  • Additional API Calls - 10,000 per day: $25 / user, month
  • Data Storage (50MB): $25 / user, month
  • Data Storage (500MB): $125 / user, month
  • File Storage (1GB): $5 / user, month
  • File Storage (10GB): $41.5 / user, month
  • Sandbox (Full Copy) - 2 : 2,175


Visualforce


Visualforce


Report & Dashboard



Mobile



Force.com Tool 및 연동 기능


{|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- |width="25%" align="center" valign="middle" style="background-color:#eee;"|Data Loader |width="75%"|

  • CSV 형태의 데이터를 Force.com에 등록, 조회, 수정, 삭제
  • Bulk API를 지원하여 대규모의 데이터 처리를 지원
    |- |align="center" valign="middle" style="background-color:#eee;"|Excel Connector |
  • 사용자에게 익숙한 Excel을 사용하여 Excel에 저장된 데이터를 Force.com에 등록, 조회, 수정, 삭제
    |- |align="center" valign="middle" style="background-color:#eee;"|Import Wizards |
  • 거래처, 연락처, 가망고객, 솔루션과 사용자 정의 개체를 등록
  • 마법사 형태의 인터페이스 제공
    |- |align="center" valign="middle" style="background-color:#eee;"|Force.com IDE |
  • 소스 코드 편집기, 테스트 실행 도구, 마법사 및 통합 도움말을 제공하는 IDE
  • Eclipse Plugin으로 다양한 개발 환경(Production, Sandbox) 지원
    |- |align="center" valign="middle" style="background-color:#eee;"|Apex Explorer |
  • Schema 확인, SOQL Query 작성 및 테스틀 위한 .NET 기반의 도구
  • SQL과 거의 유사한 문법의 SOQL 사용
  • http://wiki.developerforce.com/page/Apex_Explorer
    |- |align="center" valign="middle" style="background-color:#eee;"|Force.com Explorer |
  • Schema 확인, SOQL Query 작성 및 테스틀 위한 Adobe Flash Builder
  • SQL과 거의 유사한 문법의 SOQL 사용
  • http://wiki.developerforce.com/page/ForceExplorer
    |- |align="center" valign="middle" style="background-color:#eee;"|Force.com Migration Tool |
  • Force.com의 한 Org에서 다른 Org로의 Migration 도구
  • Java와 Ant를 사용하여 처리
    |- |align="center" valign="middle" style="background-color:#eee;"|SAML 1.1, 2.0 |
  • Login/Logout URL 지원, OAuth 2.0 Token Endpoint
  • Federated authentication using SAML(Security Assertion Markup Language)
    |- |align="center" valign="middle" style="background-color:#eee;"|Delegated authentication |
  • Password 대신에 Token을 사용하여 인증, LDAP 등 연동 가능
  • Saleforce에 요청하여 기능을 활성화
    |- |align="center" valign="middle" style="background-color:#eee;"|Identity Provider |
  • Identity Provider  Service Providers
    |- |align="center" valign="middle" style="background-color:#eee;"|OAuth 1.0.A, 2.0 |
  • Remote Access 지원
  • 2-legged OAuth, 3-legged OAuth
    |- |align="center" valign="middle" style="background-color:#eee;"|Pseudo SSO |
  • https://login.salesforce.com/?un=아이디&pw=암호&startURL=시작URL
    |- |align="center" valign="middle" style="background-color:#eee;"|Chatter |
  • Twitter와 같은 SNS로 파일 관리, 그룹 관리 등 지원
  • Android, iPhone, iPad, iPod Touch, BlackBerry 지원
    |- |align="center" valign="middle" style="background-color:#eee;"|Chatter Desktop |
  • Salesforce에서 제공하는 Chatter를 Desktop 환경에서 사용
  • Adobe AIR를 사용한 Client 제공
    |- |align="center" valign="middle" style="background-color:#eee;"|Salesforce Mobile |
  • Force.com에서 제공하는 데이터에 대한 CRUD 제공
  • iPhone, Window Mobile, BlackBerry, Android 지원
    |- |align="center" valign="middle" style="background-color:#eee;"|Salesforce for Outlook |
  • 활동 (행사, 작업)과 연락처를 Microsoft Outlook과 동기화
  • Force.com에 설정된 Outlook 구성에 따라 권한 관리
    |- |align="center" valign="middle" style="background-color:#eee;"|Connect for MS Outlook |
  • 활동 (행사, 작업)과 연락처를 관리하는 Microsoft Outlook의 Plugin
  • 이메일로 고객지원을 생성하거나 이메일을 다른 개체의 활동을 등록 가능
    |- |align="center" valign="middle" style="background-color:#eee;"|Connect for Lotus Notes |
  • 활동 (행사, 작업)과 연락처를 관리하는 Lotus Notes의 Plugin
  • 이메일로 고객지원을 생성하거나 이메일을 다른 개체의 활동을 등록 가능
    |- |align="center" valign="middle" style="background-color:#eee;"|Connect for Office |
  • Excel Plugin : Excel에 Force.com의 보고서를 가져와서 편집
  • Word Plugin : Mail Merge Template를 작성하여 Force.com 데이터 조회
    |- |align="center" valign="middle" style="background-color:#eee;"|Force.com Connect Offline |
  • 영업, 기술적 측면에서 중요한 데이터를 Offline 상황에서 사용할 수 있는 Briefcase를 제공 (거래처, 연락처, 영업기회, 활동)
    |- |align="center" valign="middle" style="background-color:#eee;"|Web-to-Lead |
  • 웹에 등록된 고객의 요청을 Lead로 등록
  • 메일에서 웹페이지 링크를 보내서 Lead를 수집할 수 있음
    |- |align="center" valign="middle" style="background-color:#eee;"|Email Services |
  • 이메일을 파싱해서 이메일 정보를 다른 개체와 연동
  • Email-to-Lead 구현 가능
    |- |align="center" valign="middle" style="background-color:#eee;"|Web-to-Case |
  • 웹에 등록된 고객의 요청을 Case로 등록
    |- |align="center" valign="middle" style="background-color:#eee;"|Email-toCase |
  • 고객이 보낸 이메일을 Case로 등록
  • 메일 서버에 Plugin 방식 또는 Email Services 활용 방식을 지원
    |- |align="center" valign="middle" style="background-color:#eee;"|Self-Service Portal |
  • 고객이 직접 자신의 문제를 해결할 수 있는 포탈
  • Solution 정보 등 제공
    |- |align="center" valign="middle" style="background-color:#eee;"|Call Centers |
  • Softphone을 사용하여 헬프데스크 구축
  • Console 화면 제공
    |- |align="center" valign="middle" style="background-color:#eee;"|Sites |
  • Visualforce Page를 사용하면 사이트 구축
  • Salesforce에 로그인하지 않은 사용자도 접근 가능
    |- |align="center" valign="middle" style="background-color:#eee;"|Salesforce to Salesforce |
  • Salesforce Org간 데이터 연동
    |- |align="center" valign="middle" style="background-color:#eee;"|Salesforce CRM Content |
  • Content 관리

    |- |align="center" valign="middle" style="background-color:#eee;"|Social Account and Contacts |
  • Twitter, Facebook, LinkedIn과 연동하여 Account, Contact 정보 관리
    |- |align="center" valign="middle" style="background-color:#eee;"|Force.com Flow |
  • 하나의 프로세스 형태로 다양한 화면 연동
  • Flow Designer
    |- |align="center" valign="middle" style="background-color:#eee;"|Customer Portal |
  • 고객용 Portal
    |- |align="center" valign="middle" style="background-color:#eee;"|Partner Portal |
  • 파트너용 Portal
    |- |align="center" valign="middle" style="background-color:#eee;"|개발을 통한 연동 |
  • Web Service API : Data Services
  • Bulk API : Data Upload
  • Apex Web Service : Custom Logic
  • Apex Callouts : Call External Web Services
  • Workflow : Outbound Messaging
  • Metadata API : Customizing & Config
    |}
  • http://wiki.developerforce.com/page/Tools

    ![700px](img/SalesforceIntegration.png)

AJAX Toolkit 개발


  • Session
    var __sfdcSessionId = "{!GETSESSIONID()}";
    //--- sforce.connection.sessionId 에 저장됨

  • AJAX Toolkit Shell
    • /soap/ajax/22.0/debugshell.html


Force.com의 연동 기능


{|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- |width="25%" align="center" valign="middle" style="background-color:#eee;"|Web Service 방식
(실시간 연동) |width="75%"|


기타 개발



사진 업로드


Apex DataLoader


Force.com 이관 순서


Force.com을 Eclipse를 사용하여 수작업으로 이관할 때의 순서를 정리 합니다. 이관시 가장 중요한 것은 object와 class 입니다.

  • labels : 상속 받을 경우 각각을 통합할 것
  • objects
    • 관련 Page 생성
    • 개체간 관계 형성
  • workflows
  • triggers
  • staticresources
  • objectTranslations
  • layouts
  • reports
  • dashboards
  • weblinks
  • homePageComponents
  • homePageLayouts
  • classes -> 반드시 클래스와 테스트 클래스는 다른 파일로 만들것
    • Test.setCurrentPage를 주석으로 막아두고 서버에 올린다.
    • Page.SNB_P_SMS 와 같이 Page 뒤에 나오는 빈 페이지를 만들 것
  • components
  • tabs
  • pages
  • applications
  • profiles
  • sites
  • 순서에 상관 없는 항목
    • email
    • documents
    • remoteSiteSettings
  • 비어있던 폴더
    • datacategorygroups
    • letterhead
    • reportTypes
    • scontrols


Force.com 공수 산정


  • 난이도가 보통인 Force.com 프로그램을 기준으로한 공수 산정
  • 분석, 설계, 개발, 테스트, 배포, 산출물까지를 포함한 공수 산정
  • 프로그램 한본의 기준
    • 화면이 있는 프로그램 : Apex Code + Visualforce Page
    • 화면이 없는 프로그램 : Apex Code
      {|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- |width="20%" align="center" valign="middle" style="background-color:#eee;"|고급 개발자 |width="80%"|
  • Visualforce Page, Apex Code, SOQL에 대한 고급 지식 보유
  • Force.com의 다양한 기능과 제약 사항에 대한 높은 이해도 소유
  • 난이도가 높은 프로그램 설계 및 개발 가능
  • 프로그램 1본 개발시 : 2일 (2 MD) 소요
  • 프로그램 1본 개발시 : 1일 ~ 0.5일 (에스카님의 의견)
    |- |align="center" valign="middle" style="background-color:#eee;"|중급 개발자 |
  • Visualforce Page, Apex Code, SOQL에 대한 기본적인 지식 보유
  • 프로그램 1본 개발시 : 2일 (2 MD) 소요
  • 프로그램 1본 개발시 : 1.5일 (에스카님의 의견)
    |- |align="center" valign="middle" style="background-color:#eee;"|초급 개발자 |
  • Visualforce Page, Apex Code, SOQL을 이해하나 자세한 사항은 매뉴얼을 참조함
  • Java 프로그래밍 경험이 있음
  • 프로그램 1본 개발시 : 4일 (4 MD) 소요
  • 프로그램 1본 개발시 : 3일 (에스카님의 의견)
    |}

Force.com 가격


  • 1GB Disk 제공
    • 1GB 추가 구매시 $3000
  • 600 MB * User_수 File Storage 제공
    • 10GB 추가 구매시 $498


Trialforce


Trialforce를 생성하기 위해서는 다음과 같은 절차에 따라 작업을 해야 합니다.

  1. Trialforce를 만들기 위한 Package를 생성 합니다.
  2. Salseforce로부터 해당 Package에 대한 Security Review를 받습니다.
  3. Partner Portal에서 Case를 생성하여 Trialforce master Org를 신청 합니다.
  4. 새로 생성된 Trialforce master Org에서 Trialforce를 생성한 후, 홈페이지 등에서 사용할 수 있도록 합니다.


Security Review


Trialforce master Org

  • Trialforce master Org를 생성 합니다.
    그림:Trialforce_001.png
    • Force.com Partner Portal에서 "Home -> Create A Case" 메뉴를 선택 합니다.
    • Category를 선택 합니다.
      • "I have a question or issue relating to a salesforce.com partner program."를 선택 합니다.
      • "Trialforce -> Initate Trialforce Process"를 선택 합니다.
    • Reason으로 "Administration Request"를 선택 합니다.
    • Subject에 "Request for Trialforce master Org"를 입력 합니다.
    • Description에서 아래의 질문에 답변을 등록한 후 "Save" 버튼을 누릅니다.
    1. Name of app:
    2. Is this for Trial on AppExchange or stand-alone Trialforce?
    3. Please include description of the app (or your AppExchange listing URL if applicable).
  • Trialforce master Org를 생성하기 위한 Case의 상세 정보 입니다.
    • 메일도 같이 오는데, 48시간 이내에 답변을 준다고 합니다. 그림:Trialforce_002.png
  • Trialforce master Org에서 Shapshot를 생성 합니다.
    • "설정 -> App 설정 -> Trialforce"에서 "Snapshot Organization" 버튼을 눌러 Snapshot를 생성 합니다.
    • "Snapshot ID"와 함께 1달 무료 평가판 등록 페이지가 생성이 되어 메일로 옵니다.
    • 고객이 1달 무료 평가판을 신청할 수 있도록 등록 페이지를 자신의 홈페이지 등에 추가 합니다.
  • 참고 문헌

Concur


AMEX 카드를 처리하는 Concur과 연동을 합니다.


Managed Package



주의 사항

  • Force.com 사용자 (사용자 라이선스가 Salesforce Platform인 사용자)
    • 개체가 표시되지 않고 권한 없음이 표시될 때, 각 개체에서 "개발 상태"를 "배포됨"으로 설정할 것


Managed Package 제약 사항

{|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" |- |width="20%" align="center" valign="middle" style="background-color:#eee;"|항목 |width="40%" align="center" valign="middle" style="background-color:#eee;"|배포자 제약 사항 |width="40%" align="center" valign="middle" style="background-color:#eee;"|사용자 제약 사항 |- |align="center" valign="middle" style="background-color:#eee;"|Apex 클래스 |

  • 가능 : Api Version, 상태, 본문
    |
  • 수정 불가
    |- |align="center" valign="middle" style="background-color:#eee;"|Apex 트리거 |
  • 가능 : Api Version, 상태, 본문
    |
  • 수정 불가
    |- |align="center" valign="middle" style="background-color:#eee;"|Visualforce 페이지 |
  • 불가 : 이름
  • 가능 : 레이블, 상세 설명, 페이지 내용
    |
  • 수정 불가
    |- |align="center" valign="middle" style="background-color:#eee;"|Visualforce 구성 요소 |미확인
    미확인
    align="center" valign="middle" style="background-color:#eee;"
  • 불가 : 이름
  • 가능 : 상세 설명, 파일, 캐시 관리
  • 삭제 불가
    |
  • 수정 불가
  • 삭제 불가
    |- |align="center" valign="middle" style="background-color:#eee;"|필드 집합 |미확인
    미확인
    align="center" valign="middle" style="background-color:#eee;"
  • 가능
    • 마스터 언어, 레이블, 이름 필드 레이블, 상세 설명
    • 공유 모델, 보고서 허용, 활동 허용, 필드 내역 추적
    • 가정, 제외된 계층임, 가시성, 도움말 설정
    • 이름 표시 형식, 외부 데이터 API 유형, 외부 데이터 끝점, 외부 데이터 리포지토리, 외부 데이터 Apex 클래스
    • 원격 액세스, 레코드 이름, 개발 상태
      |
  • 가능
    • 공유 모델, 보고서 허용, 활동 허용, 필드 내역 추적
    • 제외된 계층임, 도움말 설정, 원격 액세스, 개발 상태
      |- |align="center" valign="middle" style="background-color:#eee;"|사용자 정의 필드 |
  • 불가 : 필드 이름, 데이터 유형, 관련항목, 하위 관계 이름 등
  • 가능 :
    • 마스터 레이블, 마스터 언어, 상세 설명, 세부 사항 쓰기에 마스터 읽기 공유가 필요함
    • 자동 번호 표시 형식, 기본값, 수식
    • 관련 목록 레이블, 요약 필터, 도움말 텍스트, 표시 유형, 표시 문자, 조회색 필터 옵션
    • 필드 수준 보안 설정, 필드 접근성 보기
  • 삭제 불가
    |
  • 가능 : 세부 사항 쓰기에 마스터 읽기 공유가 필요함, 도움말 텍스트, 표시 유형, 표시 문자
  • 삭제 불가
    |- |align="center" valign="middle" style="background-color:#eee;"|페이지 레이아웃 |
  • 가능
    • 할당 옵션 표시, 기본 할당 옵션
    • 이메일 옵션 표시, 기본 이메일 옵션
    • 제출 & 첨부 버튼 표시
  • 삭제 가능
    |
  • 가능
    • 할당 옵션 표시, 기본 할당 옵션
    • 이메일 옵션 표시, 기본 이메일 옵션
    • 제출 & 첨부 버튼 표시
  • 삭제 가능
    |- |align="center" valign="middle" style="background-color:#eee;"|확인 규칙 |미확인
    미확인
    align="center" valign="middle" style="background-color:#eee;"
  • 불가
  • 가능
    • 보호된 구성요소, 콘텐츠 소스, 동작
    • 높이(픽셀), 너비(단위: 픽셀), 주소 표시줄 표시
    • 스크롤바 표시, 도구 모음 표시, 메뉴 모음 표시, 상태 표시줄 표시
    • 크기 조정 가능, 창 위치, 레이블, 상세 설명
    • S-Control 또는 URL(링크 인코딩 포함)
      |
  • 가능
    • 높이(픽셀), 너비(단위: 픽셀), 주소 표시줄 표시
    • 스크롤바 표시, 도구 모음 표시, 메뉴 모음 표시
    • 상태 표시줄 표시, 크기 조정 가능, 창 위치
      |- |align="center" valign="middle" style="background-color:#eee;"|목록 보기 |미확인
      미확인
      align="center" valign="middle" style="background-color:#eee;"
  • 불가 : 응용 프로그램 이름
  • 가능
    • 레이블, 정렬 방식, 문서
    • 상세 설명, 기본 랜딩 탭
      |
  • 가능
    • 레이블, 정렬 방식, 문서
    • 상세 설명, 기본 랜딩 탭
      |- |align="center" valign="middle" style="background-color:#eee;"|탭 |
  • 가능
    • 상세 설명, 탭 스타일
    • 스플래시 패이지 사용자 지정 링크
      |
  • 가능 : 탭 스타일
    |- |align="center" valign="middle" style="background-color:#eee;"|홈 페이지 레이아웃 |
  • 수정 불가
    |
  • 수정 불가
    |- |align="center" valign="middle" style="background-color:#eee;"|홈 페이지 구성 요소 |
  • 불가 : 이름
  • 가능 : "HTML 구역"에서 HTML 내용
    |
  • 수정 불가
    |- |align="center" valign="middle" style="background-color:#eee;"|보고서 |
  • 수정 가능
    |
  • 수정 가능
    |- |align="center" valign="middle" style="background-color:#eee;"|대시보드 |
  • 수정 가능
    |
  • 수정 가능
    |- |align="center" valign="middle" style="background-color:#eee;"|문서 |
  • 가능
    • 폴더,문서 이름
    • MIME 유형, 파일 확장자, 외부적으로 사용 가능
    • 본문 길이, 압축된 본문 길이, 본문
    • URL, 상세 설명, 키워드
    • 내부 사용 전용, 작성자
      |
  • 가능
    • 폴더,문서 이름
    • MIME 유형, 파일 확장자, 외부적으로 사용 가능
    • 본문 길이, 압축된 본문 길이, 본문
    • URL, 상세 설명, 키워드
    • 내부 사용 전용, 작성자
      |- |align="center" valign="middle" style="background-color:#eee;"|폴더 |
  • 불가 : 탭 레이블, 개체
  • 가능
    • 상세 설명, 탭 스타일
    • 스플래시 패이지 사용자 지정 링크
      |
  • 가능 : 탭 스타일
    |- |align="center" valign="middle" style="background-color:#eee;"|워크플로 규칙 |
  • 불가 :
  • 가능
    • 상세 설명, 활성
    • 평가 기준, 규칙 기준
      |
  • 가능 : 활성
    |- |align="center" valign="middle" style="background-color:#eee;"|워크플로 아웃바운드 메시지 |미확인
    미확인
    align="center" valign="middle" style="background-color:#eee;"
  • 가능
    • 이메일 템플릿, 추가 이메일
    • 발신자 유형, 발신자, 보호된 구성요소
      |
  • 가능
    • 이메일 템플릿, 추가 이메일
    • 발신자 유형, 발신자, 받는 사람
      |- |align="center" valign="middle" style="background-color:#eee;"|워크플로 작업 |
  • 가능
    • 담당자, 보호된 구성요소
    • 상태, 중요도, 기한
    • 할당받은 사람에게 알림, 비고
      |
  • 가능
    • 담당자, 상태, 중요도, 기한
    • 할당받은 사람에게 알림, 비고
      |- |align="center" valign="middle" style="background-color:#eee;"|워크플로 필드 업데이트 |
  • 불가 : 이름, 고유 이름
  • 가능
    • 보호된 구성요소, 상세 설명
    • 사용자 정의 필드 정의, 새 필드 값 지정
      |
  • 수정 불가
    |- |align="center" valign="middle" style="background-color:#eee;"|레코드 유형 |
  • 불가 : 레코드 유형 이름
  • 가능 : 레코드 유형 레이블, 상세 설명, 업무 프로세스, 활성
    |
  • 가능 : 활성
    |- |align="center" valign="middle" style="background-color:#eee;"|레터헤드 |
  • 수정 : 레터헤드 이름, 활성, 상세 설명, 값
    |
  • 수정 : 레터헤드 이름, 활성, 상세 설명, 값
    |- |align="center" valign="middle" style="background-color:#eee;"|분석 스냅샷 |미확인
    미확인
    align="center" valign="middle" style="background-color:#eee;"
  • 수정 : 마스터 레이블, 상세 설명, 배포됨, 범주
    |
  • 수정 : 배포됨
    |- |align="center" valign="middle" style="background-color:#eee;"|사용자 정의 설정 |
  • 불가 : 개체 이름, 설정 유형, 가시성
  • 가능 : 레이블, Description
    |
  • 가능
    |- |align="center" valign="middle" style="background-color:#eee;"|원격 사이트 |미확인
    미확인
    align="center" valign="middle" style="background-color:#eee;"
  • 가능
    • 이메일 템플릿 이름, 소유자, 폴더
    • 레터헤드, 사용 가능, 인코딩, 상세 설명
    • 코드, 제목, HTML 값, 이메일 본문
    • 마스터 이메일 템플릿, 언어, API 버전, 표시
      |
  • 가능
    • 이메일 템플릿 이름, 소유자, 폴더
    • 레터헤드, 사용 가능, 인코딩, 상세 설명
    • 코드, 제목, HTML 값, 이메일 본문
    • 마스터 이메일 템플릿, 언어, API 버전, 표시
      |- |align="center" valign="middle" style="background-color:#eee;"|프로필 설정 |미확인
      미확인
      align="center" valign="middle" style="background-color:#eee;"
      미확인
      미확인
      -
      align="center" valign="middle" style="background-color:#eee;"
      미확인
      미확인
      }


수정 가능 항목


PnusBase Package


Salesforce 매뉴얼



Force.com 매뉴얼



참고문헌



- [Salesforce.com 도움말](https://na7.salesforce.com/help/doc/user_ed.jsp?loc=help) : 로그인한 사용자만 볼 수 있음
- [Force.com Documentation](http://wiki.developerforce.com/index.php/Documentation) : Documentation을 모아둔 페이지
- [Force.com Flex](http://developer.force.com/flextoolkit)
- [Force.com Web Service Connector (WSC)](http://code.google.com/p/sfdc-wsc/)
- [SFDC 교육 검색](http://www.salesforce.com/services-training/training_certification/find-a-class.jsp?d=70130000000EzNL&internal=true)
- [SFDC Podcasts](http://salesforcetrainingpodcasts.com/podcasts/xml/sfdcTandC.xml)
- [SFDC Training & Certification](https://salesforce.plateau.com/plateau/user/portal.do?siteID=us&fromSearch=true)
- [Salesforce Icons](http://free-121d5f44d20-121d603d1c5-121ee2b8103.force.com/force2b/salesforceicons)
- VisualForce 매뉴얼

- [Visualforce Developer's Guide (PDF)](http://www.salesforce.com/us/developer/docs/pages/salesforce_pages_developers_guide.pdf)
- [http://www.salesforce.com/us/developer/docs/workbook_vf/index.htm Visualforce Workbook], [PDF](http://www.salesforce.com/us/developer/docs/workbook_vf/workbook_vf.pdf)
- [Visualforce Components](https://ap1.salesforce.com/apexpages/apexcomponents.apexp) : 로그인 후 사용 가능, /apexpages/apexcomponents.apexp

- Web Services API 매뉴얼

- [Web Services API Developer's Guide](http://www.salesforce.com/us/developer/docs/api/index.htm)

- [PDF 생성 무료 Utility](http://appexchange.salesforce.com/listingDetail?listingId=a0N30000003HeuPEAS)

- [http://developer.force.com/ DeveloperForce], [http://wiki.developerforce.com/index.php Wiki], [Forum](http://boards.developerforce.com/sforce/?category.id=developers)

- [Force.com Code Share](http://developer.force.com/codeshare)
- [http://wiki.developerforce.com/index.php/Integration](http://wiki.developerforce.com/index.php/Integration)
- [http://wiki.developerforce.com/index.php/Documentation#Apex_and_Visualforce](http://wiki.developerforce.com/index.php/Documentation.md#Apex_and_Visualforce)
- [Apex Resource Page](http://wiki.developerforce.com/index.php/Apex)
- [User Interface](http://wiki.developerforce.com/index.php/Visualforce)
- [Apex Resource Page](http://wiki.developerforce.com/index.php/Apex)

- [위키](http://wiki.apexdevnet.com/index.php/Wiki)
- [토론 게시판](http://community.salesforce.com/sforce?category.id=developers)
- [아이디어](http://ideas.salesforce.com/popular/force.com_platform?skin=adn)

- [apex-lang](http://code.google.com/p/apex-lang/) : Force.com을 위한 오픈소스 라이브러리
- [Force.com Web Services Connector](http://wiki.developerforce.com/index.php/Introduction_to_the_Force.com_Web_Services_Connector)

- [Welcome to Summer'11](http://www.salesforce.com/customer-resources/releases/)

- [Force.com Summer'11](http://www.salesforce.com/customer-resources/releases/.md#force)

- CSV Reader

- [http://www.ericsantiago.com/eric_santiago/2011/03/upload-and-parse-csv-via-visualforce.html](http://www.ericsantiago.com/eric_santiago/2011/03/upload-and-parse-csv-via-visualforce.html)
- [http://blog.nicocrm.com/2011/03/06/parse-csv-file-in-salesforce-apex/](http://blog.nicocrm.com/2011/03/06/parse-csv-file-in-salesforce-apex/)
- [http://www.forcetree.com/2010/08/read-and-insert-records-from-csv-file.html](http://www.forcetree.com/2010/08/read-and-insert-records-from-csv-file.html)
- [http://frombelvideres4thfloor.blogspot.com/2010/10/ietf-rfc-4180-compliant-csv-reader-for.html](http://frombelvideres4thfloor.blogspot.com/2010/10/ietf-rfc-4180-compliant-csv-reader-for.html)

- Limitation

- [https://ap1.salesforce.com/help/doc/ko/limits.htm](https://ap1.salesforce.com/help/doc/ko/limits.htm)

- [https://workbench.developerforce.com/](https://workbench.developerforce.com/)

지원 업체



{{지원업체}} [[Category:Salesforce|Category:Salesforce]]
[[Category:Cloud|Category:Cloud]]
분류: [CRM](분류_CRM.md)
공유하기