發表文章

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

Chrome DevTools 的 Source 一片空白該怎麼辦?

有時候想要 debug JavaScript 的部份,但是 Chrome DevTools 的 Source 一片空白,此時我偏好的方法是在 Console 處執行: parent.location.reload(true) 即可。 也有一些其它的方法,請參見:https://stackoverflow.com/questions/20196795/chrome-developer-tool-html-script-is-blank-in-source-debugging-tutorial

Salesforce 的 Id 為什麼分為 15 碼和 18 碼兩種?

概念上來說,15 碼 Id 是區分大小寫的,18 碼 Id 是不用考慮大小寫的。 技術上來說,直接把18 碼 Id 的後三碼截掉,就可以得到 Id 的 15 碼版本。 但若是想 15 碼 Id 出發想得到 18 碼 Id ,需要稍微計算一下。 這是用 JavaScript 來計算 15-digit to 18-digit 的方式: javascript :( function (){ var input = prompt ( 'Enter 15-character ID' ); var output ; if ( input . length == 15 ){ var addon = "" ; for ( var block = 0 ; block < 3 ; block ++) { var loop = 0 ; for ( var position = 0 ; position < 5 ; position ++){ var current = input . charAt ( block * 5 + position ); if ( current >= "A" && current <= "Z" ) loop += 1 << position ; } addon += "ABCDEFGHIJKLMNOPQRSTUVWXYZ012345" . charAt ( loop ); } output =( input + addon ); } else { alert ( "Error : " + input + " i...

如何在使用者儲存紀錄時,跳出客製化的訊息? How to pop up a customized message when user saves the record?

有的時候你會需要在使用者儲存時,跳出一些提示訊息。 通常是透過 validation 的 error message 或是 Apex Trigger 的 exception ( call addError() ) 來實現。 但上述兩種方法都會把使用者儲存的動作直接擋下來。 有的時候我們希望讓使用者在看到訊息的同時,仍然能夠成功地儲存 record。 目前我想到了兩種情境會遇上這個需求: 在使用者 update an opportunity 時,若是這個客戶是個特殊地區的客戶,需要提醒 Sales 留意我們的技術支援的允許範圍。 在使用者 update an opportunity 時,若是原定 auto close 的邏輯造成 triegger fail 了。則仍然讓使用者 update this record,並於畫面上跳出一個訊息顯示「已寄發通知給相關人士處理」 這個功能技術上完全可以實現,但我找不到現成簡便的實現方式。 直到我看到了這個: https://github.com/rahulmalhotra/Platform-Event-Toast-LWC 這個 LWC 小工具完全開放原始碼,你可以自己拿回去改。如果看不懂程式碼的,也完全可以隨裝即用,非常簡單。 他的概念就是透過 Process Builder (或是 Flow) 在 record 符合條件時,就觸發 insert an event record to an event object(BTW, event object的 api name 結尾是 __e 而不是 __c ) 然後再用一個 LWC 去訂閱這個 event,就可以透過簡單的 JavaScript 觸發跳出訊息框。 這邊也有圖文並茂的說明: https://www.sfdcstop.com/2020/05/how-to-display-warnings-in-salesforce.html 招數是死的,需求是活的。 不過有了這個基本範例打底,就可以變幻出千變萬幻的招數了!