原创 Flow中調用javascript

Salesforce的Flow中的Formula功能較弱,稍微複雜一點的功能,以前一般都調用Invokable的apex方法,但覺得需要調用服務端,效率不高。有些功能不牽涉到後臺數據,完全可以通過Javascript來做。 但是一般情況下,

原创 Apex中得到當前的url

先是查到 ApexPages.currentPage().getURL() 但發現只能用於VisualForce,沒用。 又查到 URL.getSalesforceBaseUrl().toExternalForm() 偶然發現Str

原创 有點意思的sql

同事問我一個問題,要我寫幾條sql。假設表temp的結構是這樣的:字段: id,  name有這些記錄:123, foo 123,   bar123, test 124,  test 125  foo126  bar127 foo127 t

原创 VBScript通過hta執行程序

在hta文件裏用vbscript執行程序,原來的寫法是: Set shl = CreateObject("Wscript.Shell") shl.CurrentDirectory = foo Call shl.Run("""" & bar

原创 軟件開發的一點思考3

今天碰到一個api,有個布爾類型的參數IsUpdate,如果true就更新,false就插入。如果數據庫裏已有記錄,而又設成false,就會報錯。 調試發現,先要調用另外兩個api,根據返回結果來決定如何設置這個參數。 這個api設計的不好

原创 軟件開發的一些思考2

看了一些軟件設計方面的資料,大致印象是似乎都在強調靈活的設計,減少耦合,目的在於以後有變動時可以減少改動,這樣也在一定程度上減少了出錯的可能性。 現在覺得今後的需求變動難以預料,但是設計時,防止將來可能出現的bug(而不是將來可能的需求變動

原创 VBScript實現瀏覽文件對話框

閒着沒事,折騰VBScript。VBScript最大的優點大概是三條,一是Windows內建,不需要安裝其他軟件,二是雙擊即可執行,無須編譯,三是可以利用hta,比較容易做界面(至少比python強)。缺點除了出錯處理比較爛之外,主要是比較

原创 LWC屬性變化時的一種處理方法

LWC(Lightning Web Component)的屬性name, role發生變化,或者要刪除某個屬性時,Salesforce會自動檢查是否有Flow引用這個lwc,如果有,則會提示,不能刪除。手工操作,需要在Flow中先去掉這個l

原创 Before Insert觸發器中的公式字段

以前以爲在before insert觸發器中,Lookup對象除了Id之外的字段以及公式字段(Formula)都是null,不能取到值的。沒想到昨天由於偶然的原因測試了一下,居然公式字段可以取到值。 Salesforce的文檔做的很差,在文

原创 觸發器設計的一些思考

觸發器這東西貌似N年(大約90年代)很流行。比如那時候用Oracle Forms做開發的,大量的業務邏輯都放在觸發器裏。後來好像就少用了,最多的是用來審計,比如在數據庫裏放個歷史記錄表,每次原表數據有變化時,就在觸發器裏,將改動前後的數據複

原创 當前目錄的問題

原來寫了個用到Selenium web driver的程序,裏面有這麼一句: var driver = new ChromeDriver(".\\", options, TimeSpan.FromSeconds(180)); 本來運行正常。

原创 Windows計劃任務的一個問題

我的辦公桌朝東,早上太陽刺眼,需要適當提高屏幕亮度才能看清楚屏幕,過了一會兒太陽不直射了,又要降低屏幕亮度以保護視力。老是手工操作嫌煩,就寫了個小程序,放進Windows計劃任務(Task Scheduler)。小程序調試的時候一切正常,但

原创 軟件開發的一些思考

1.測試驅動開發 1)測試驅動開發是有爭議的。有些人鼓吹它的好處,有些人卻質疑它的有效性。鼓吹和質疑者中都不乏大佬。 2)測試貫穿開發過程(包括規劃,設計過程),這個理念很對,目的在於儘可能早地發現問題。比如在設計階段,和用戶交流清楚需求的

原创 Salesforce單元測試的問題

Salesforce的單元測試是強制的,不達到一定的代碼覆蓋率,就不能成功部署。但有時單元測試會造成麻煩。 最近碰到一個問題,寫個batch apex job。取數據的soql大致是SELECT Id, Name, Status FROM

原创 Profile也要部署

某個對象裏的字段,原來是Number類型,現在要改成Formula,不能直接轉換,只能先刪除再重建。在去除了一堆依賴(Salesforce最煩的就是這點)之後,總算改好了,但是部署到測試環境後,發現這個字段看不到。查了Field acces