Advertisement
Guest User

Untitled

a guest
Apr 7th, 2020
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.73 KB | None | 0 0
  1.  
  2.  
  3. def copyObjectsByGoldenRecord(def goldRecordId) {
  4.   def classesForCopy = ['ae$goal', 'ae$objective'];
  5.   def goldRecord = utils.get(goldRecordId);
  6.   classesForCopy.collect { className ->
  7.     def baseRecords = utils.find(className, ['ownerFc': goldRecord.UUID]);
  8.     baseRecords.collect { br ->
  9.       def createAttributes = searchAndCopyRecordsByClassName(br, className);
  10.       if(!createAttributes) {
  11.         return;
  12.       }
  13.       createAttributes.ownerFc = goldRecord.UUID;
  14.       logger.error(modules.common.gson(createAttributes))
  15.       utils.create(className, createAttributes);
  16.     }
  17.   }
  18. }
  19. def searchAndCopyRecordsByClassName(def goldRecord, def className) {
  20.   def metaCardData = modules.ui.getMetacards()[className];
  21.   if(metaCardData) {
  22.     def simplePanelFields = metaCardData.panels.find { it -> it.panelType == 'simpleAttributes'}.attrs;
  23.     if(!simplePanelFields || simplePanelFields.size() == 0) {
  24.       return;
  25.     }
  26.     def metaClassData = api.metainfo.getMetaClass(className);
  27.     def createAttributes = [:];
  28.     simplePanelFields.collect { attrCode -> handleMetaCardField(goldRecord, attrCode, metaClassData, createAttributes) };
  29.     return createAttributes;
  30.   }
  31.   return null;
  32. }
  33. def handleMetaCardField(def goldRecord, def attrCode, def metaClassData, def createAttributes) {
  34.   def typeCode = metaClassData.getAttribute(attrCode).type.code;
  35.   switch(typeCode) {
  36.     case ['object']:
  37.     break;
  38.     case ['catalogItem']:
  39.     break;
  40.     case ['secGroups']:
  41.     break;
  42.     case ['catalogItemSet']:
  43.     break;
  44.     case ['secGroups', 'boLinks', 'backBOLinks']:
  45.     break;
  46.     default:
  47.       createAttributes."${attrCode}" = goldRecord."${attrCode}";
  48.     break;
  49.   }
  50. }
  51. copyObjectsByGoldenRecord('ae$429642');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement