Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def copyObjectsByGoldenRecord(def goldRecordId) {
- def classesForCopy = ['ae$goal', 'ae$objective'];
- def goldRecord = utils.get(goldRecordId);
- classesForCopy.collect { className ->
- def baseRecords = utils.find(className, ['ownerFc': goldRecord.UUID]);
- baseRecords.collect { br ->
- def createAttributes = searchAndCopyRecordsByClassName(br, className);
- if(!createAttributes) {
- return;
- }
- createAttributes.ownerFc = goldRecord.UUID;
- logger.error(modules.common.gson(createAttributes))
- utils.create(className, createAttributes);
- }
- }
- }
- def searchAndCopyRecordsByClassName(def goldRecord, def className) {
- def metaCardData = modules.ui.getMetacards()[className];
- if(metaCardData) {
- def simplePanelFields = metaCardData.panels.find { it -> it.panelType == 'simpleAttributes'}.attrs;
- if(!simplePanelFields || simplePanelFields.size() == 0) {
- return;
- }
- def metaClassData = api.metainfo.getMetaClass(className);
- def createAttributes = [:];
- simplePanelFields.collect { attrCode -> handleMetaCardField(goldRecord, attrCode, metaClassData, createAttributes) };
- return createAttributes;
- }
- return null;
- }
- def handleMetaCardField(def goldRecord, def attrCode, def metaClassData, def createAttributes) {
- def typeCode = metaClassData.getAttribute(attrCode).type.code;
- switch(typeCode) {
- case ['object']:
- break;
- case ['catalogItem']:
- break;
- case ['secGroups']:
- break;
- case ['catalogItemSet']:
- break;
- case ['secGroups', 'boLinks', 'backBOLinks']:
- break;
- default:
- createAttributes."${attrCode}" = goldRecord."${attrCode}";
- break;
- }
- }
- copyObjectsByGoldenRecord('ae$429642');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement