- Force.com 개요
- 개발 환경 설정
- 무료 에디션 신청
- Eclipse Plugin 설정
- Eclipse Plugin upgrade
- 지원 도구
- Force.com IDE Charset 설정
- Excel Connecter
- Force.com Debugging
- Force.com 제약 사항
- Force.com Free
- Force.com Enterprise
- Force.com Unlimited
- Apex Code 제약 사항
- Visualforce 제약 사항
- Excel Connecter 제약 사항
- Salesforce 가격
- Visualforce
- Report & Dashboard
- Mobile
- Force.com Tool 및 연동 기능
- AJAX Toolkit 개발
- Force.com의 연동 기능
- 기타 개발
- 사진 업로드
- Apex DataLoader
- Force.com 이관 순서
- Force.com 공수 산정
- Force.com 가격
- Trialforce
- Security Review
- Trialforce master Org
- Concur
- Managed Package
- 주의 사항
- Managed Package 제약 사항
- 수정 가능 항목
- PnusBase Package
- Salesforce 매뉴얼
- Force.com 매뉴얼
- 참고문헌
- 지원 업체
Salesforce에서 제공하는 PaaS (Platform as a Service) 형태로 제공하는 Force.com을 정리 합니다.
홈페이지 : http://www.salesforce.com/platform/, http://developer.force.com
AppExchange, [http://appexchange.salesforce.com/ AppExchange]
Force.com 개요
대표적인 SaaS 서비스인 Salesforce을 PaaS 영역으로 확장 시킨 것이 Force.com 입니다.
Force.com의 구성
Force.com Overview
{|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 1.6.2 align="center" valign="middle" style="background-color:#eee;" JavaScript를 사용하여 sObject의 CRUD 처리
sforce.connection.~ align="center" valign="middle" style="background-color:#eee;" 탭, 사이트, 필드, 버튼 및 링크, Flow align="center" valign="middle" style="background-color:#eee;" Visualforce 페이지에서 참조하려는 .zip 및 .jar 파일, 이미지, 스타일시트, JavaScript 및 기타 정적 파일
사용 : $Resource.~ align="center" valign="middle" style="background-color:#eee;" Visualforce Page에서 재사용 가능한 코드 블록
정의 : apex:component, apex:attribute, apex:componentBody, apex:variable
사용 : 표준 Component. apex:~, 사용자 정의 Component. <c:~ >, http:// /apexcomponent/align="center" valign="middle" style="background-color:#eee;" 다국어 지원이 가능한 사용자 정의 라벨,
사용 : System.Label. , {!$Label.}align="center" valign="middle" style="background-color:#eee;" 사용자가 정의 한 설정 값(개체)을 관리
Map<String, ~> ~.getAll(), ~ = ~.getInstance(name 또는 blank 또는 userid 또는 profileid)
Map<String, ~> ~.getOrgDefaults() align="center" valign="middle" style="background-color:#eee;" Visualforce Page에서 사용이 가능한 Field Set, Beta
사용 : {!$ObjectType.Account.FieldSets.~}, Label, Type, Required align="center" valign="middle" style="background-color:#eee;" 레코드 목록을 관리 align="center" valign="middle" style="background-color:#eee;" 하나의 레코트를 관리 align="center" valign="middle" style="background-color:#eee;" Rendered, id, rerender
PageReference, Page, $Page, $Action align="center" valign="middle" style="background-color:#eee;" Mail 발송
Messaging.SingleEmailMessage, Messaging.EmailFileAttachment align="center" valign="middle" style="background-color:#eee;" JavaScript에서 Controller의 함수를 호출
@RemoteAction
controller.meth(params, func(result, event) { ~ }, {escape:true}); align="center" valign="middle" style="background-color:#eee;" AJAX 방식으로 Web Service 호출
sforce.apex.execute align="center" valign="middle" style="background-color:#eee;" Database.Batchable<~>, Stateful, start, execute, finish
Database.executeBatch(batch) align="center" valign="middle" style="background-color:#eee;" Apex Class로 예약 작업 설정
Schedulable align="center" valign="middle" style="background-color:#eee;" Apex Class에 대한 Trigger
Trigger : isInsert, isUpdate, isDelete, isBefore, isAfter, old, oldMap, new, newMap, size align="center" valign="middle" style="background-color:#eee;" Test-Driven Development, 75% 이상의 테스트율 필요
@isTest, testMethod, System.RunAs( ), startTest(), stopTest(), System.assert()align="center" valign="middle" style="background-color:#eee;"
|-
|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;" Salesforce Object Search Language
FIND ~ IN ALL FIELDS RETURNING Account (~) WITH ~ = ~ align="center" valign="middle" style="background-color:#eee;" Salesforce Object Query Language
SELECT ~ FROM ~ WHERE ~ ORDER BY ~ LIMIT ~
|}Force.com MVC Model
개발 환경 설정
무료 에디션 신청
Free Force.com 페이지에서 "Get Started" 버튼을 선택할 것
Eclipse Plugin 설정
Eclipse 3.5 (Galileo), JDK 1.5+ 지원
Eclipse에서 Force.com Plugin을 설치 합니다.
Eclipse에서 "Help -> Install New Software..." 메뉴를 선택하는 "Add..." 버튼을 선택 합니다.
Name : Force.com IDE
Location : http://www.adnsandbox.com/tools/ide/install/
목록 중에서 "Force.com IDE"를 선택하여 설치 합니다.
Eclipse Plugin upgrade
"Help -> Show Force.com Start Page" 메뉴를 선택 합니다.
Eclipse IDE에서 우측 상단의 "check for updates" 링크를 선택 합니다.
"Next"를 선택 합니다.
"Next"를 선택 합니다.
"Finish"를 선택 합니다.
"Install All"을 선택 합니다.
지원 도구
Force.com IDE, http://wiki.developerforce.com/page/Force.com_IDE
http://www.adnsandbox.com/tools/ide/install/ : Force.com IDE for Eclipse 3.6
다운로드 : Force.com Migration Tool
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 파일을 깨어지지 않은 형태로 보고 싶을 경우
"Help -> Install New Software..." 메뉴를 선택 합니다.
"Add..." 버튼을 눌러 다음과 같이 입력한 후 Property Editor를 설치 합니다.
Name : Propedit
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 제약 사항
참고 문헌
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.emptyRecycleBinDML에 의해 처리되는 최대 레코드 수
|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 MBEmail 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
|}
Visualforce 제약 사항
Stacit Resource : 각각 5MB, 최대 250MB
Maximum view state size limit (135KB)
Excel Connecter 제약 사항
한번에 처리되는 레코드의 개수 : 50 레코드
작업할 수 있는 최대 필드(항목) 수 : 20 필드
작업할 수 있는 최대 레코드 수 : 5,000 레코드
Salesforce 가격
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
Report & Dashboard
Report 목록 : /servlet/servlet.ReportList
Report URL 분석
/Report_ID
pv0 : 첫번째 Filter의 값
pv1 : 두번째 Filter의 값
isdtp=mn : 상단 메뉴없이 표시
/00Ox0000000xxxx?export=1&enc=UTF-8&xf=csv : csv로 다운로드
/00Ox0000000xxxx?export=1&enc=UTF-8&xf=xls : Excel 파일로 다운로드
Dashboard URL 분석
/Dashboard_ID
isdtp=mn : 상단 메뉴없이 표시
관련 참조
Mobile
Force.com 모바일
Force.com : iPhone, BlackBerry, Windows Mobile 지원
Chatter : iPhone, iPad, BlackBerry, Android 지원
설치 URL : http://mobile.salesforce.com/setup
Android App
참고 문헌
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을 사용하여 Excel에 저장된 데이터를 Force.com에 등록, 조회, 수정, 삭제 align="center" valign="middle" style="background-color:#eee;" 거래처, 연락처, 가망고객, 솔루션과 사용자 정의 개체를 등록
마법사 형태의 인터페이스 제공 align="center" valign="middle" style="background-color:#eee;" 소스 코드 편집기, 테스트 실행 도구, 마법사 및 통합 도움말을 제공하는 IDE
Eclipse Plugin으로 다양한 개발 환경(Production, Sandbox) 지원 align="center" valign="middle" style="background-color:#eee;" Schema 확인, SOQL Query 작성 및 테스틀 위한 .NET 기반의 도구
SQL과 거의 유사한 문법의 SOQL 사용
http://wiki.developerforce.com/page/Apex_Explorer align="center" valign="middle" style="background-color:#eee;" Schema 확인, SOQL Query 작성 및 테스틀 위한 Adobe Flash Builder
SQL과 거의 유사한 문법의 SOQL 사용
http://wiki.developerforce.com/page/ForceExplorer align="center" valign="middle" style="background-color:#eee;" Force.com의 한 Org에서 다른 Org로의 Migration 도구
Java와 Ant를 사용하여 처리 align="center" valign="middle" style="background-color:#eee;" Login/Logout URL 지원, OAuth 2.0 Token Endpoint
Federated authentication using SAML(Security Assertion Markup Language) align="center" valign="middle" style="background-color:#eee;" Password 대신에 Token을 사용하여 인증, LDAP 등 연동 가능
Saleforce에 요청하여 기능을 활성화 align="center" valign="middle" style="background-color:#eee;" Identity Provider Service Providers align="center" valign="middle" style="background-color:#eee;" Remote Access 지원
2-legged OAuth, 3-legged OAuth align="center" valign="middle" style="background-color:#eee;" https://login.salesforce.com/?un=아이디&pw=암호&startURL=시작URL align="center" valign="middle" style="background-color:#eee;" Twitter와 같은 SNS로 파일 관리, 그룹 관리 등 지원
Android, iPhone, iPad, iPod Touch, BlackBerry 지원 align="center" valign="middle" style="background-color:#eee;" Salesforce에서 제공하는 Chatter를 Desktop 환경에서 사용
Adobe AIR를 사용한 Client 제공 align="center" valign="middle" style="background-color:#eee;" Force.com에서 제공하는 데이터에 대한 CRUD 제공
iPhone, Window Mobile, BlackBerry, Android 지원 align="center" valign="middle" style="background-color:#eee;" 활동 (행사, 작업)과 연락처를 Microsoft Outlook과 동기화
Force.com에 설정된 Outlook 구성에 따라 권한 관리 align="center" valign="middle" style="background-color:#eee;" 활동 (행사, 작업)과 연락처를 관리하는 Microsoft Outlook의 Plugin
이메일로 고객지원을 생성하거나 이메일을 다른 개체의 활동을 등록 가능 align="center" valign="middle" style="background-color:#eee;" 활동 (행사, 작업)과 연락처를 관리하는 Lotus Notes의 Plugin
이메일로 고객지원을 생성하거나 이메일을 다른 개체의 활동을 등록 가능 align="center" valign="middle" style="background-color:#eee;" Excel Plugin : Excel에 Force.com의 보고서를 가져와서 편집
Word Plugin : Mail Merge Template를 작성하여 Force.com 데이터 조회 align="center" valign="middle" style="background-color:#eee;" 영업, 기술적 측면에서 중요한 데이터를 Offline 상황에서 사용할 수 있는 Briefcase를 제공 (거래처, 연락처, 영업기회, 활동) align="center" valign="middle" style="background-color:#eee;" 웹에 등록된 고객의 요청을 Lead로 등록
메일에서 웹페이지 링크를 보내서 Lead를 수집할 수 있음 align="center" valign="middle" style="background-color:#eee;" 이메일을 파싱해서 이메일 정보를 다른 개체와 연동
Email-to-Lead 구현 가능 align="center" valign="middle" style="background-color:#eee;" 웹에 등록된 고객의 요청을 Case로 등록 align="center" valign="middle" style="background-color:#eee;" 고객이 보낸 이메일을 Case로 등록
메일 서버에 Plugin 방식 또는 Email Services 활용 방식을 지원 align="center" valign="middle" style="background-color:#eee;" 고객이 직접 자신의 문제를 해결할 수 있는 포탈
Solution 정보 등 제공 align="center" valign="middle" style="background-color:#eee;" Softphone을 사용하여 헬프데스크 구축
Console 화면 제공 align="center" valign="middle" style="background-color:#eee;" Visualforce Page를 사용하면 사이트 구축
Salesforce에 로그인하지 않은 사용자도 접근 가능 align="center" valign="middle" style="background-color:#eee;" Salesforce Org간 데이터 연동 align="center" valign="middle" style="background-color:#eee;" 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;" 하나의 프로세스 형태로 다양한 화면 연동
Flow Designer align="center" valign="middle" style="background-color:#eee;" 고객용 Portal align="center" valign="middle" style="background-color:#eee;" 파트너용 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
|}
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%"|
Force.com에서 Web Service 제공
Apex Methods as Web Services
global class MyWebService {
webService static Id makeContact(String lastName, Account a) {
Contact c = new Contact(lastName = 'Weissman', AccountId = a.Id);
insert c;
return c.id;
}
}
Force.com에서 외부 Web Service 호출 방법
Web Service Callout
Visualforce Pages에서 JavaScript를 사용하여 호출 (AJAX 방식)
Force.com의 Web Service 호출 방법
Force.com Web Services Connector (WSC) : Java
http://wiki.developerforce.com/index.php/Web_Services_API#Java align="center" valign="middle" style="background-color:#eee;"
Java (JDK 6.0), C#
JavaScript
AJAX Toolkit (JavaScript)
|-
|align="center" valign="middle" style="background-color:#eee;"|Toolkit 활용 방식
(호출 연동)
|
ExcelConnector
|}원격 액세스 (OAuth)
OAuth 2.0에서 사용되는 두 개의 주요 끝점은 다음과 같습니다.
Apex API
Sending an Email with Visualforce
Force.com for Google App Engine Java
sfdc-oauth-playground
참고 문헌
기타 개발
사진 업로드
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를 생성하기 위해서는 다음과 같은 절차에 따라 작업을 해야 합니다.
Trialforce를 만들기 위한 Package를 생성 합니다.
Salseforce로부터 해당 Package에 대한 Security Review를 받습니다.
Partner Portal에서 Case를 생성하여 Trialforce master Org를 신청 합니다.
새로 생성된 Trialforce master Org에서 Trialforce를 생성한 후, 홈페이지 등에서 사용할 수 있도록 합니다.
Security Review
Salesforce는 Security Review가 통과된 application에 대해서만 Trialforce를 제공 합니다.
$300 for initial review. $150 thereafter for subsequent annual reviews
Security Review 도구
참고 문헌
Trialforce master Org
Trialforce master Org를 생성 합니다.
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" 버튼을 누릅니다.
Name of app:
Is this for Trial on AppExchange or stand-alone Trialforce?
Please include description of the app (or your AppExchange listing URL if applicable).
Trialforce master Org를 생성하기 위한 Case의 상세 정보 입니다.
메일도 같이 오는데, 48시간 이내에 답변을 준다고 합니다.
Trialforce master Org에서 Shapshot를 생성 합니다.
"설정 -> App 설정 -> Trialforce"에서 "Snapshot Organization" 버튼을 눌러 Snapshot를 생성 합니다.
"Snapshot ID"와 함께 1달 무료 평가판 등록 페이지가 생성이 되어 메일로 옵니다.
고객이 1달 무료 평가판을 신청할 수 있도록 등록 페이지를 자신의 홈페이지 등에 추가 합니다.
참고 문헌
Concur
AMEX 카드를 처리하는 Concur과 연동을 합니다.
Sample Code
YouTube
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;" 가능 : Api Version, 상태, 본문
|수정 불가 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;" 가능
마스터 언어, 레이블, 이름 필드 레이블, 상세 설명
공유 모델, 보고서 허용, 활동 허용, 필드 내역 추적
가정, 제외된 계층임, 가시성, 도움말 설정
이름 표시 형식, 외부 데이터 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;" 미확인 미확인 }
수정 가능 항목
Visualforce Page
https://c.na7.visual.force.com/apex/Schema : Visualforce Page
https://na7.salesforce.com/apex/pnus__Schema : 네임스페이스가 PNUS인 Visualforce Page
https://pnus.na7.visual.force.com/apex/Schema : 네임스페이스가 PNUS인 Visualforce Page
PnusBase Package
네임스페이스 접두사 : PNUS
PNUS Force.com Library
PnusBase Managed Package : https://login.salesforce.com/packaging/installPackage.apexp?p0=04t90000000Le0X
PnusBase Unmanaged Package : https://login.salesforce.com/packaging/installPackage.apexp?p0=04t90000000Le0h
Salesforce 매뉴얼
Force.com 매뉴얼
[[Apex Code]], Salesforce Apex Code
참고문헌
Salesforce.com 도움말 : 로그인한 사용자만 볼 수 있음
Force.com Documentation : Documentation을 모아둔 페이지
VisualForce 매뉴얼
[http://www.salesforce.com/us/developer/docs/workbook_vf/index.htm Visualforce Workbook], PDF
Visualforce Components : 로그인 후 사용 가능, /apexpages/apexcomponents.apexp
Web Services API 매뉴얼
[http://developer.force.com/ DeveloperForce], [http://wiki.developerforce.com/index.php Wiki], Forum
apex-lang : Force.com을 위한 오픈소스 라이브러리
-
CSV Reader
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://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
Limitation
지원 업체
{{지원업체}}
[[Category:Salesforce|Category:Salesforce]]
[[Category:Cloud|Category:Cloud]]
분류: CRM