曾經在建立RecurringDonation時被阻止新增紀錄,並收到一個錯誤訊息:
System.SObjectException: Illegal assignment from Boolean to String (System Code)
這個錯誤第一眼猜測是資料類型有誤,可能在字串類型的欄位輸入了boolean值,但是在UI端幾乎不可能輸入錯誤的資料類型啊?這個錯誤是怎麼回事呢?
這跟Custom Field Mappings有關。
什麼是Recurring Donation Custom Field Mappings?
有些欄位在Recurring Donation跟機會底下同時都有。因此我們希望只要在建立RecurringDonation時輸入資料,salesforce能自動把資訊丟進機會對應的欄位中。人工就不用在機會頁面處再輸入一次。
要做到這件事情,只要到NPSP Settings中的Recurring Donation Custom Field Mappings設定兩邊對應的欄位,即可實踐。
Recurring Donation Custom Field Mappings
但在Mapping時,須小心兩邊的欄位類型是否一致,否則系統會因為資料類型不同而無法將Recurring Donation的資料map到機會,也就不能新增紀錄。
我會收到錯誤訊息就是因為我把RecurringDonation原本文字類型的欄位改成了核取方塊,又沒有修改機會中對應的欄位。導致核取方塊的資料(Boolean)放不進機會中對應的欄位(要求是String),而被阻擋新增。
如何解決欄位類型不一致的問題?
- 建議是當修改Recurring Donation欄位類型時,也要同步修改機會中的欄位。保持欄位類型一致。
- 當然也可以直接delete掉兩邊的mapping關係。