From 2f183a6b0a83ec3f7d35375d5d25d200efc2a3e1 Mon Sep 17 00:00:00 2001
From: Li Jun <buli@deloitte.com.cn>
Date: 星期二, 19 四月 2022 18:46:18 +0800
Subject: [PATCH] 20220419FixIssue
---
force-app/main/default/classes/NewAndEditBaseController.cls | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 51 insertions(+), 2 deletions(-)
diff --git a/force-app/main/default/classes/NewAndEditBaseController.cls b/force-app/main/default/classes/NewAndEditBaseController.cls
index 6474e93..462ae89 100644
--- a/force-app/main/default/classes/NewAndEditBaseController.cls
+++ b/force-app/main/default/classes/NewAndEditBaseController.cls
@@ -198,7 +198,13 @@
Map<String, Schema.SObjectField> fieldAPIToTypeMap = leadSchema.getDescribe().fields.getMap();
Map<String,Object> fieldValueMap = (Map<String,Object>)JSON.deserializeUntyped(leadJson);
-
+ system.debug('enter Foo');
+ string rtid = null;
+ if (fieldValueMap.containsKey('RecordTypeId')) {
+ rtid = String.valueOf(fieldValueMap.get('RecordTypeId'));
+ }
+ List<string> invalid_fields = GetInvalidFieldFromLayout(rtid,sobjectTypeValue);
+
Boolean isClone = false;
//2. Save Record Process
String status = 'success';
@@ -210,6 +216,12 @@
for (String fieldAPI: fieldValueMap.keySet()) {
system.debug('field API='+fieldAPI);
+
+ if(invalid_fields.contains(fieldAPI)){
+ system.debug(fieldAPI+' is invalid');
+ continue;
+ }
+
if(!fieldAPIToTypeMap.containskey(fieldAPI)){
continue;
}
@@ -252,7 +264,7 @@
isClone = sobjects.size() == 0;
}
System.debug('isNew---------'+isNew);
-
+
if(isNew || isClone){
System.debug('leadInfozhj = ' + leadInfo);
if(!Test.isRunningTest()){
@@ -312,4 +324,41 @@
}
}
+ public static List<string> GetInvalidFieldFromLayout(string rtid, string sobject_name){
+ List<string> ls = new List<string>();
+ string[] only_type = new string[]{'QIS_Report__c'};
+ if(!only_type.contains(sobject_name)){
+ system.debug('not allow');
+ return ls;
+ }
+
+ List<Metadata.LayoutSection> sections = MetaDataUtility.GetRecordTypePageLayout(rtid, sobject_name);
+
+ if (sections == null) {
+ System.debug('sections=null');
+ return ls;
+ }
+
+ system.debug(Json.serialize(sections));
+
+ for (Metadata.LayoutSection section : sections) {
+ if (section.layoutColumns != null) {
+ for (Metadata.LayoutColumn layoutColumn : section.layoutColumns) {
+ if(layoutColumn.layoutItems != null){
+ for (Metadata.LayoutItem item : layoutColumn.layoutItems) {
+
+ System.debug(item);
+ if(item.field==null)continue;
+ if (item.behavior == Metadata.UiBehavior.READONLY ) {
+ ls.add(item.field);
+ }
+ }
+ }
+
+ }
+ }
+
+ }
+ return ls;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1