發表文章

目前顯示的是有「SFDC」標籤的文章

如何抓出某 object 下所有欄位的 Label Name、API Name、Data Type

背景說明 有一個要跟 Salesforce 做 integration 的同事來索取 Opportunity object 的欄位資訊,希望我幫他確認某幾個欄位的 API Name 和資料類型。 他一開始只列了三五個要確認的,我就肉眼手動完成了。 過兩天,他說又有二三十個欄位要確認…… 我就跟他說我會整批倒出來給他。 以下就是倒出來的方法。 方法一 直接從 UI 擷取 直接切換到 Salesforce  Classic 的畫面,剛好  Label Name、API Name、Data Type 都有顯示出來。 看你是要整頁截圖, 還是要整個複製到 Visual Studio Code 或 Sublime Text 並以多行編輯粹取出來, 或是從 HTML 原始碼粹取出來, 皆可。 方法二 用 Apex Code 印出來 String objType='Opportunity'; Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe(); Schema.SObjectType oppSchema = schemaMap.get(objType); Map<String, Schema.SObjectField> fieldMap = oppSchema.getDescribe().fields.getMap(); for (String fieldName: fieldMap.keySet()) {     system.debug(fieldMap.get(fieldName).getDescribe().getLabel() +','+ fieldMap.get(fieldName).getDescribe().getName() +','+ fieldMap.get(fieldName).getDescribe().getType()); }   參考資料 https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_fields_describe.htm

Salesforce證照考試心得 (Administrator and Advanced Administrator)

圖片
 # Salesforce考照心得 在Salesforce這個平台打滾了四年有餘,我終於動身去拿了第一張證照了。 當然,就像機車駕照一樣。有駕照的人並不一定真的懂得如何騎車。 擁有Salesforce證照也無法證明自己真的具備相應的能力。 他唯一能夠證明的是,我有意願及資源去支付200美金來把這個證照掛在身上。 在網路上,Salesforce的正體中文相關討論是稀缺的。 可能一來是因為台灣採用Salesforce的公司並不是極多,二來是相關從業人士都極為忙碌。 至少我放眼所及、熟稔Salesforce的台灣人們,沒有一個不是事業蒸蒸日上、生活風風光光,各有各的精采人生。 誰有那種閒時間在那邊跟你討論證照要怎麼考XD 「這種簡單資訊不是自己查一查就知道了嗎,如果連這種基本能力都沒有,那也不要考什麼證照了,包袱收一收去鄉下種苦瓜好了。」 話當然不是這樣說的。 所以我希望留下一些簡單的心得與歷程記錄,盼使來人少走一點點冤枉路。 如果有訛誤或是過時的資訊,歡迎留言或Email給我,謝謝! ## 準備考試所需時間 四年/兩天/一小時? 要拿到這張Salesforce Administrator證照,到底需要多久呢? 保守一點說,我花了四年把Salesforce這個系統裡裡外外摸了個半透,大部份的功能都真的親手實際操作過,才敢應試。 技術上來說,大概花個兩天刷個300題考古題,就足以應試了。 偏激一點來說,從走進考場起算,報到完坐下來把幾十道題目回答完後瀟灑起身離去,從頭到尾不到一小時就可以取得證照了哦。  ## 正規準備方式 其實只怕你不學,不怕沒工具沒材料讓你學。 考試要具備的知識,都清清楚楚地寫在這裡了: https://trailhead.salesforce.com/credentials/administrator 就紮紮實實地把Trailhead的badge蒐集起來吧。 與其只想著要拿到證照,不如真的把握機會把這些知識技能學起來吧。 ## 報名考試 Salesforce是跟KRYTERION Webassessor合作的,諸如報名、繳費、考試,都是在這個網站上進行。 https://www.webassessor.com/salesforce 所以第一步就是得註冊一個Webassessor的帳號。(這個帳號跟Salesforce的是獨立的) 註冊...

不要用把query/DML寫在迴圈裡,以避免超過系統限制的基本技巧範例

Trailhead教學-Bulk Apex  關於什麼是有效率的code,什麼是浪費資源的code。 其中解釋了: 在trigger中預設使用迴圈來處理bulk,而非逐筆record處理。 用inner query的技巧,直接獲得各account的related opportunity SELECT ... FROM ... WHERE ... IN ...(set)    例:[ SELECT Id , Name , CloseDate FROM Opportunity WHERE AccountId IN : Trigger . New ]。 也可以使用NOT IN,例: [ SELECT Id , Name FROM Account WHERE Id IN : Trigger . New AND Id NOT IN ( SELECT AccountId FROM Opportunity ) ] update/insert整個list,而不要逐筆record操作,以避免DML超過150的限制。