{"flowContents":{"identifier":"919a29db-d277-3e67-a931-64fe475e446b","instanceIdentifier":"f6994e85-01a0-1000-ffff-ffffd5fbcaec","name":"Praedico_Connector","comments":"v1.0.0","position":{"x":-1377.296609568764,"y":-848.2104832398212},"processGroups":[],"remoteProcessGroups":[],"processors":[{"identifier":"b54ce49b-5dff-3cd0-91d1-29523c285a0e","instanceIdentifier":"e0afca76-95ce-37f3-a3cd-73b57df52389","name":"GroovyExecutionService","comments":"","position":{"x":-1112.0,"y":-560.0},"type":"com.hxgn.processors.groovyexecutionservice.processor.GroovyExecutionService","bundle":{"group":"hexagon","artifact":"nifi-hxgn-nar","version":"2.4.0"},"properties":{"Script Body":"import groovy.json.JsonSlurper\nimport groovy.json.JsonOutput\nimport org.codehaus.groovy.runtime.InvokerHelper\nimport org.apache.nifi.processor.io.InputStreamCallback\nimport org.apache.nifi.processor.io.OutputStreamCallback\n\ndef flowFile = session.get()\nif (!flowFile) return\ntry {\n    String cfgJson = (String) InvokerHelper.invokeMethod(flowFile, 'getAttribute', 'fieldMap')\n    if (cfgJson == null || cfgJson.isEmpty()) throw new IllegalArgumentException(\"Missing fieldMap attribute\")\n\n    def sb = new StringBuilder()\n    session.read(flowFile, { InputStream ins -> sb.append(ins.getText('UTF-8')) } as InputStreamCallback)\n    Map bod = (Map) new JsonSlurper().parseText(sb.toString())\n    Map da  = bod['DataArea'] as Map\n    Map eq  = (da == null) ? null : da['Equipment'] as Map\n    if (eq == null) throw new IllegalArgumentException(\"No DataArea.Equipment\")\n    Map appArea = bod['ApplicationArea'] as Map\n\n    Map props = [:]\n    List propList = eq['Property'] as List\n    if (propList != null) for (Object o : propList) { Map p = o as Map; if (p['name'] != null) props[p['name']] = p['value'] }\n    Map classes = [:]\n    List classList = eq['Classification'] as List\n    if (classList != null) for (Object o : classList) { Map c = o as Map; if (c['listID'] != null) classes[c['listID']] = c['value'] }\n    Map descs = [:]\n    List descList = eq['Description'] as List\n    if (descList != null) for (Object o : descList) { Map d = o as Map; if (d['languageID'] != null) descs[d['languageID']] = d['value'] }\n\n    Closure nav = { Map root, String path ->\n        def cur = root\n        for (String seg : path.split(/\\./)) { cur = (cur == null) ? null : ((Map) cur)[seg] }\n        return cur\n    }\n    Closure resolve = { String src ->\n        if (src.startsWith('Description.'))     return descs[src.substring(12)]\n        if (src.startsWith('Property.'))        return props[src.substring(9)]\n        if (src.startsWith('Classification.'))  return classes[src.substring(15)]\n        if (src.startsWith('Equipment.'))       return nav.call(eq, src.substring(10))\n        if (src.startsWith('ApplicationArea.')) return nav.call(appArea, src.substring(16))\n        return nav.call(bod, src)\n    }\n    Closure constVal = { String s ->\n        if (s == '[]') return []\n        if (s == '{}') return [:]\n        if (s == 'true') return true\n        if (s == 'false') return false\n        if (s.matches(/-?\\d+/)) return new BigDecimal(s)\n        if (s.matches(/-?\\d*\\.\\d+/)) return new BigDecimal(s)\n        return s\n    }\n\n    List REQUIRED = ['id']\n    List numericFields = ['startPoint', 'endPoint', 'geolocation.locationStart', 'geolocation.locationEnd']\n    Map cfg = (Map) new JsonSlurper().parseText(cfgJson)\n    Map r = [:]\n\n    for (Object k : cfg.keySet()) {\n        String key = (String) k\n        String spec = (String) cfg[key]\n        if (spec == null || spec.trim().isEmpty()) continue\n\n        String pathPart = spec\n        String mapPart = null\n        int bar = spec.indexOf('|')\n        if (bar >= 0) { pathPart = spec.substring(0, bar).trim(); mapPart = spec.substring(bar + 1).trim() }\n\n        String kind\n        def val = null\n        if (pathPart.startsWith('const:')) {\n            kind = 'const'; val = constVal.call(pathPart.substring(6))\n        } else if (pathPart.startsWith('computed:')) {\n            kind = 'computed'\n            if (pathPart.substring(9) == 'shapeType') {\n                def sp = r['startPoint']; def ep = r['endPoint']\n                val = (sp != null && ep != null) ? ((sp != ep) ? 'LineString' : 'Point') : null\n            }\n        } else {\n            kind = 'bod'; val = resolve.call(pathPart)\n        }\n\n        boolean missing = (kind == 'bod') ? (val == null || val.toString().isEmpty()) : (kind == 'computed' ? (val == null) : false)\n        if (missing) {\n            if (REQUIRED.contains(key)) throw new IllegalArgumentException(\"Missing required source for '\" + key + \"' (\" + pathPart + \")\")\n            continue\n        }\n        if (mapPart != null && val != null) {\n            String sv = val.toString()\n            for (String pair : mapPart.split(',')) {\n                String[] kv = pair.split('=', 2)\n                if (kv.length == 2 && kv[0].trim() == sv) { val = kv[1].trim(); break }\n            }\n        }\n        if (numericFields.contains(key) && val != null) val = new BigDecimal(val.toString())\n        r[key] = val\n    }\n\n    Map out = [:]\n    for (Object k : r.keySet()) {\n        String key = (String) k\n        def val = r[key]\n        if (key.indexOf('.') >= 0) {\n            String[] parts = key.split(/\\./)\n            Map d = out\n            for (int i = 0; i < parts.length - 1; i++) {\n                String seg = parts[i]\n                if (!(d[seg] instanceof Map)) d[seg] = [:]\n                d = (Map) d[seg]\n            }\n            d[parts[parts.length - 1]] = val\n        } else {\n            out[key] = val\n        }\n    }\n\n    String output = JsonOutput.toJson([out])\n    flowFile = session.write(flowFile, { OutputStream os -> os.write(output.getBytes('UTF-8')) } as OutputStreamCallback)\n    flowFile = session.putAttribute(flowFile, 'mime.type', 'application/json')\n    session.transfer(flowFile, REL_SUCCESS)\n} catch (Exception e) {\n    flowFile = session.putAttribute(flowFile, 'ERROR_MESSAGE', e.message)\n    session.transfer(flowFile, REL_FAILURE)\n}","Batch Size":"1","Failure strategy":"transfer to failure"},"propertyDescriptors":{"Script Body":{"name":"Script Body","displayName":"Script Body","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Batch Size":{"name":"Batch Size","displayName":"Batch Size","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Failure strategy":{"name":"Failure strategy","displayName":"Failure strategy","identifiesControllerService":false,"sensitive":false,"dynamic":false}},"style":{},"schedulingPeriod":"1 min","schedulingStrategy":"TIMER_DRIVEN","executionNode":"ALL","penaltyDuration":"30 sec","yieldDuration":"1 min","bulletinLevel":"WARN","runDurationMillis":0,"concurrentlySchedulableTaskCount":1,"autoTerminatedRelationships":[],"scheduledState":"ENABLED","retryCount":10,"retriedRelationships":[],"backoffMechanism":"PENALIZE_FLOWFILE","maxBackoffPeriod":"10 mins","stoppedSince":1790843637470,"componentType":"PROCESSOR","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"},{"identifier":"cb993dd6-c1d5-3fc2-916c-e6e9680c10cf","instanceIdentifier":"f5c4e094-6cd9-37dc-a233-77b5a5f32956","name":"UpdateAttribute","comments":"","position":{"x":-1776.0,"y":-552.0},"type":"org.apache.nifi.processors.attributes.UpdateAttribute","bundle":{"group":"org.apache.nifi","artifact":"nifi-update-attribute-nar","version":"2.4.0"},"properties":{"fieldMap":"#{asset_mapping}","Delete Attributes Expression":null,"Store State":"Do not store state","canonical-value-lookup-cache-size":"100","Stateful Variables Initial Value":null},"propertyDescriptors":{"fieldMap":{"name":"fieldMap","displayName":"fieldMap","identifiesControllerService":false,"sensitive":false,"dynamic":true},"Delete Attributes Expression":{"name":"Delete Attributes Expression","displayName":"Delete Attributes Expression","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Store State":{"name":"Store State","displayName":"Store State","identifiesControllerService":false,"sensitive":false,"dynamic":false},"canonical-value-lookup-cache-size":{"name":"canonical-value-lookup-cache-size","displayName":"Cache Value Lookup Cache Size","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Stateful Variables Initial Value":{"name":"Stateful Variables Initial Value","displayName":"Stateful Variables Initial Value","identifiesControllerService":false,"sensitive":false,"dynamic":false}},"style":{},"schedulingPeriod":"1 sec","schedulingStrategy":"TIMER_DRIVEN","executionNode":"ALL","penaltyDuration":"30 sec","yieldDuration":"1 sec","bulletinLevel":"WARN","runDurationMillis":25,"concurrentlySchedulableTaskCount":1,"autoTerminatedRelationships":[],"scheduledState":"ENABLED","retryCount":10,"retriedRelationships":[],"backoffMechanism":"PENALIZE_FLOWFILE","maxBackoffPeriod":"10 mins","stoppedSince":1790843637471,"componentType":"PROCESSOR","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"},{"identifier":"2eac28b7-8645-32f3-949b-734e3682687b","instanceIdentifier":"4ed58809-bfed-35f8-b946-996baf3a7abe","name":"InvokeHTTP","comments":"","position":{"x":-504.0,"y":-560.0},"type":"org.apache.nifi.processors.standard.InvokeHTTP","bundle":{"group":"org.apache.nifi","artifact":"nifi-standard-nar","version":"2.4.0"},"properties":{"Request Content-Encoding":"DISABLED","proxy-configuration-service":null,"Request Multipart Form-Data Filename Enabled":"true","Request Chunked Transfer-Encoding Enabled":"false","Response Header Request Attributes Prefix":null,"HTTP/2 Disabled":"False","Connection Timeout":"5 secs","Response Cookie Strategy":"DISABLED","Socket Read Timeout":"15 secs","Socket Idle Connections":"5","Request Body Enabled":"true","OAuth2 Access Token Refresh Strategy":"ON_TOKEN_EXPIRATION","HTTP URL":"#{api_url}","Request OAuth2 Access Token Provider":null,"Socket Idle Timeout":"5 mins","Response Redirects Enabled":"True","Api-Key":"#{api_key}","Socket Write Timeout":"15 secs","Request Header Attributes Pattern":null,"Response FlowFile Naming Strategy":"RANDOM","Response Cache Enabled":"false","Request Date Header Enabled":"True","Request Failure Penalization Enabled":"false","Response Body Attribute Size":"256","SSL Context Service":null,"Response Generation Required":"true","Request User-Agent":null,"Response Header Request Attributes Enabled":"false","HTTP Method":"POST","Request Username":null,"Request Content-Type":"${mime.type}","Response Body Attribute Name":null,"Request Digest Authentication Enabled":"false","Request Multipart Form-Data Name":null,"Response Cache Size":"10MB","Response Body Ignored":"false"},"propertyDescriptors":{"Request Content-Encoding":{"name":"Request Content-Encoding","displayName":"Request Content-Encoding","identifiesControllerService":false,"sensitive":false,"dynamic":false},"proxy-configuration-service":{"name":"proxy-configuration-service","displayName":"Proxy Configuration Service","identifiesControllerService":true,"sensitive":false,"dynamic":false},"Request Multipart Form-Data Filename Enabled":{"name":"Request Multipart Form-Data Filename Enabled","displayName":"Request Multipart Form-Data Filename Enabled","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request Chunked Transfer-Encoding Enabled":{"name":"Request Chunked Transfer-Encoding Enabled","displayName":"Request Chunked Transfer-Encoding Enabled","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Response Header Request Attributes Prefix":{"name":"Response Header Request Attributes Prefix","displayName":"Response Header Request Attributes Prefix","identifiesControllerService":false,"sensitive":false,"dynamic":false},"HTTP/2 Disabled":{"name":"HTTP/2 Disabled","displayName":"HTTP/2 Disabled","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Connection Timeout":{"name":"Connection Timeout","displayName":"Connection Timeout","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Response Cookie Strategy":{"name":"Response Cookie Strategy","displayName":"Response Cookie Strategy","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request Password":{"name":"Request Password","displayName":"Request Password","identifiesControllerService":false,"sensitive":true,"dynamic":false},"Socket Read Timeout":{"name":"Socket Read Timeout","displayName":"Socket Read Timeout","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Socket Idle Connections":{"name":"Socket Idle Connections","displayName":"Socket Idle Connections","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request Body Enabled":{"name":"Request Body Enabled","displayName":"Request Body Enabled","identifiesControllerService":false,"sensitive":false,"dynamic":false},"OAuth2 Access Token Refresh Strategy":{"name":"OAuth2 Access Token Refresh Strategy","displayName":"OAuth2 Access Token Refresh Strategy","identifiesControllerService":false,"sensitive":false,"dynamic":false},"HTTP URL":{"name":"HTTP URL","displayName":"HTTP URL","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request OAuth2 Access Token Provider":{"name":"Request OAuth2 Access Token Provider","displayName":"Request OAuth2 Access Token Provider","identifiesControllerService":true,"sensitive":false,"dynamic":false},"Socket Idle Timeout":{"name":"Socket Idle Timeout","displayName":"Socket Idle Timeout","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Response Redirects Enabled":{"name":"Response Redirects Enabled","displayName":"Response Redirects Enabled","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Api-Key":{"name":"Api-Key","displayName":"Api-Key","identifiesControllerService":false,"sensitive":true,"dynamic":true},"Socket Write Timeout":{"name":"Socket Write Timeout","displayName":"Socket Write Timeout","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request Header Attributes Pattern":{"name":"Request Header Attributes Pattern","displayName":"Request Header Attributes Pattern","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Response FlowFile Naming Strategy":{"name":"Response FlowFile Naming Strategy","displayName":"Response FlowFile Naming Strategy","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Response Cache Enabled":{"name":"Response Cache Enabled","displayName":"Response Cache Enabled","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request Date Header Enabled":{"name":"Request Date Header Enabled","displayName":"Request Date Header Enabled","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request Failure Penalization Enabled":{"name":"Request Failure Penalization Enabled","displayName":"Request Failure Penalization Enabled","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Response Body Attribute Size":{"name":"Response Body Attribute Size","displayName":"Response Body Attribute Size","identifiesControllerService":false,"sensitive":false,"dynamic":false},"SSL Context Service":{"name":"SSL Context Service","displayName":"SSL Context Service","identifiesControllerService":true,"sensitive":false,"dynamic":false},"Response Generation Required":{"name":"Response Generation Required","displayName":"Response Generation Required","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request User-Agent":{"name":"Request User-Agent","displayName":"Request User-Agent","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Response Header Request Attributes Enabled":{"name":"Response Header Request Attributes Enabled","displayName":"Response Header Request Attributes Enabled","identifiesControllerService":false,"sensitive":false,"dynamic":false},"HTTP Method":{"name":"HTTP Method","displayName":"HTTP Method","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request Username":{"name":"Request Username","displayName":"Request Username","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request Content-Type":{"name":"Request Content-Type","displayName":"Request Content-Type","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Response Body Attribute Name":{"name":"Response Body Attribute Name","displayName":"Response Body Attribute Name","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request Digest Authentication Enabled":{"name":"Request Digest Authentication Enabled","displayName":"Request Digest Authentication Enabled","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Request Multipart Form-Data Name":{"name":"Request Multipart Form-Data Name","displayName":"Request Multipart Form-Data Name","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Response Cache Size":{"name":"Response Cache Size","displayName":"Response Cache Size","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Response Body Ignored":{"name":"Response Body Ignored","displayName":"Response Body Ignored","identifiesControllerService":false,"sensitive":false,"dynamic":false}},"style":{},"schedulingPeriod":"1 sec","schedulingStrategy":"TIMER_DRIVEN","executionNode":"ALL","penaltyDuration":"30 sec","yieldDuration":"1 sec","bulletinLevel":"WARN","runDurationMillis":0,"concurrentlySchedulableTaskCount":1,"autoTerminatedRelationships":["Response","Original"],"scheduledState":"ENABLED","retryCount":5,"retriedRelationships":["Failure"],"backoffMechanism":"PENALIZE_FLOWFILE","maxBackoffPeriod":"10 mins","stoppedSince":1790843637471,"componentType":"PROCESSOR","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"},{"identifier":"1fe4e7a4-4816-30e6-b0f9-aab7eed5650a","instanceIdentifier":"28465106-45f8-3022-990c-0eccfec42f3d","name":"LogAttribute","comments":"","position":{"x":-1112.0,"y":-360.0},"type":"org.apache.nifi.processors.standard.LogAttribute","bundle":{"group":"org.apache.nifi","artifact":"nifi-standard-nar","version":"2.4.0"},"properties":{"Log prefix":null,"character-set":"UTF-8","Log FlowFile Properties":"true","Log Level":"info","attributes-to-ignore-regex":null,"Attributes to Ignore":null,"Attributes to Log":null,"attributes-to-log-regex":".*","Output Format":"Line per Attribute","Log Payload":"false"},"propertyDescriptors":{"Log prefix":{"name":"Log prefix","displayName":"Log prefix","identifiesControllerService":false,"sensitive":false,"dynamic":false},"character-set":{"name":"character-set","displayName":"Character Set","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Log FlowFile Properties":{"name":"Log FlowFile Properties","displayName":"Log FlowFile Properties","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Log Level":{"name":"Log Level","displayName":"Log Level","identifiesControllerService":false,"sensitive":false,"dynamic":false},"attributes-to-ignore-regex":{"name":"attributes-to-ignore-regex","displayName":"Attributes to Ignore by Regular Expression","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Attributes to Ignore":{"name":"Attributes to Ignore","displayName":"Attributes to Ignore","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Attributes to Log":{"name":"Attributes to Log","displayName":"Attributes to Log","identifiesControllerService":false,"sensitive":false,"dynamic":false},"attributes-to-log-regex":{"name":"attributes-to-log-regex","displayName":"Attributes to Log by Regular Expression","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Output Format":{"name":"Output Format","displayName":"Output Format","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Log Payload":{"name":"Log Payload","displayName":"Log Payload","identifiesControllerService":false,"sensitive":false,"dynamic":false}},"style":{},"schedulingPeriod":"1 sec","schedulingStrategy":"TIMER_DRIVEN","executionNode":"ALL","penaltyDuration":"30 sec","yieldDuration":"1 sec","bulletinLevel":"WARN","runDurationMillis":25,"concurrentlySchedulableTaskCount":1,"autoTerminatedRelationships":["success"],"scheduledState":"ENABLED","retryCount":10,"retriedRelationships":[],"backoffMechanism":"PENALIZE_FLOWFILE","maxBackoffPeriod":"10 mins","stoppedSince":1790843637472,"componentType":"PROCESSOR","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"},{"identifier":"ec3cb17a-911f-36b0-b884-376b2b710867","instanceIdentifier":"b9071668-1fa0-39af-96e9-f78cb69ec2e6","name":"BODFromEAM_V2","comments":"","position":{"x":-1776.0,"y":-792.0},"type":"com.hxgn.processors.iobox.BODFromEAM_V2","bundle":{"group":"hexagon","artifact":"nifi-iobox-nar","version":"2.4.0"},"properties":{"Sync.AssetMaster":"true"},"propertyDescriptors":{"Sync.AssetMaster":{"name":"Sync.AssetMaster","displayName":"Sync.AssetMaster","identifiesControllerService":false,"sensitive":false,"dynamic":true}},"style":{},"schedulingPeriod":"1 min","schedulingStrategy":"TIMER_DRIVEN","executionNode":"ALL","penaltyDuration":"30 sec","yieldDuration":"1 min","bulletinLevel":"WARN","runDurationMillis":0,"concurrentlySchedulableTaskCount":1,"autoTerminatedRelationships":["unmatched"],"scheduledState":"ENABLED","retryCount":10,"retriedRelationships":[],"backoffMechanism":"PENALIZE_FLOWFILE","maxBackoffPeriod":"10 mins","stoppedSince":1790843637472,"componentType":"PROCESSOR","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"},{"identifier":"c300e4fb-075c-35d6-ae25-bcfdafd39880","instanceIdentifier":"58bf1543-beca-3a02-a37b-ca83baee4c27","name":"LogAttribute","comments":"","position":{"x":-504.0,"y":-360.0},"type":"org.apache.nifi.processors.standard.LogAttribute","bundle":{"group":"org.apache.nifi","artifact":"nifi-standard-nar","version":"2.4.0"},"properties":{"Log prefix":null,"character-set":"UTF-8","Log FlowFile Properties":"true","Log Level":"info","attributes-to-ignore-regex":null,"Attributes to Ignore":null,"Attributes to Log":null,"attributes-to-log-regex":".*","Output Format":"Line per Attribute","Log Payload":"true"},"propertyDescriptors":{"Log prefix":{"name":"Log prefix","displayName":"Log prefix","identifiesControllerService":false,"sensitive":false,"dynamic":false},"character-set":{"name":"character-set","displayName":"Character Set","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Log FlowFile Properties":{"name":"Log FlowFile Properties","displayName":"Log FlowFile Properties","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Log Level":{"name":"Log Level","displayName":"Log Level","identifiesControllerService":false,"sensitive":false,"dynamic":false},"attributes-to-ignore-regex":{"name":"attributes-to-ignore-regex","displayName":"Attributes to Ignore by Regular Expression","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Attributes to Ignore":{"name":"Attributes to Ignore","displayName":"Attributes to Ignore","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Attributes to Log":{"name":"Attributes to Log","displayName":"Attributes to Log","identifiesControllerService":false,"sensitive":false,"dynamic":false},"attributes-to-log-regex":{"name":"attributes-to-log-regex","displayName":"Attributes to Log by Regular Expression","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Output Format":{"name":"Output Format","displayName":"Output Format","identifiesControllerService":false,"sensitive":false,"dynamic":false},"Log Payload":{"name":"Log Payload","displayName":"Log Payload","identifiesControllerService":false,"sensitive":false,"dynamic":false}},"style":{},"schedulingPeriod":"1 sec","schedulingStrategy":"TIMER_DRIVEN","executionNode":"ALL","penaltyDuration":"30 sec","yieldDuration":"1 sec","bulletinLevel":"WARN","runDurationMillis":25,"concurrentlySchedulableTaskCount":1,"autoTerminatedRelationships":["success"],"scheduledState":"ENABLED","retryCount":10,"retriedRelationships":[],"backoffMechanism":"PENALIZE_FLOWFILE","maxBackoffPeriod":"10 mins","stoppedSince":1790843637473,"componentType":"PROCESSOR","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"}],"inputPorts":[],"outputPorts":[],"connections":[{"identifier":"0c38a862-992c-3436-a0bc-48c81ce007ab","instanceIdentifier":"8273ea5a-ca53-3eeb-a469-e4692750797c","name":"","source":{"id":"b54ce49b-5dff-3cd0-91d1-29523c285a0e","type":"PROCESSOR","groupId":"919a29db-d277-3e67-a931-64fe475e446b","name":"GroovyExecutionService","comments":"","instanceIdentifier":"e0afca76-95ce-37f3-a3cd-73b57df52389"},"destination":{"id":"1fe4e7a4-4816-30e6-b0f9-aab7eed5650a","type":"PROCESSOR","groupId":"919a29db-d277-3e67-a931-64fe475e446b","name":"LogAttribute","comments":"","instanceIdentifier":"28465106-45f8-3022-990c-0eccfec42f3d"},"labelIndex":0,"zIndex":9,"selectedRelationships":["failure"],"backPressureObjectThreshold":10000,"backPressureDataSizeThreshold":"250 MB","flowFileExpiration":"3 days","prioritizers":[],"bends":[],"loadBalanceStrategy":"DO_NOT_LOAD_BALANCE","partitioningAttribute":"","loadBalanceCompression":"DO_NOT_COMPRESS","componentType":"CONNECTION","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"},{"identifier":"20bbb670-a95f-3f90-94d3-ed53afa15753","instanceIdentifier":"6a1332ed-acbf-3eb0-9a7f-4876fa92ad16","name":"","source":{"id":"2eac28b7-8645-32f3-949b-734e3682687b","type":"PROCESSOR","groupId":"919a29db-d277-3e67-a931-64fe475e446b","name":"InvokeHTTP","comments":"","instanceIdentifier":"4ed58809-bfed-35f8-b946-996baf3a7abe"},"destination":{"id":"c300e4fb-075c-35d6-ae25-bcfdafd39880","type":"PROCESSOR","groupId":"919a29db-d277-3e67-a931-64fe475e446b","name":"LogAttribute","comments":"","instanceIdentifier":"58bf1543-beca-3a02-a37b-ca83baee4c27"},"labelIndex":0,"zIndex":3,"selectedRelationships":["No Retry","Retry","Failure"],"backPressureObjectThreshold":10000,"backPressureDataSizeThreshold":"250 MB","flowFileExpiration":"3 days","prioritizers":[],"bends":[],"loadBalanceStrategy":"DO_NOT_LOAD_BALANCE","partitioningAttribute":"","loadBalanceCompression":"DO_NOT_COMPRESS","componentType":"CONNECTION","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"},{"identifier":"1e8d3c63-c332-3d7a-b663-f977ffef31f7","instanceIdentifier":"f62b346a-9c94-35d8-9f90-958d7419bbdd","name":"","source":{"id":"b54ce49b-5dff-3cd0-91d1-29523c285a0e","type":"PROCESSOR","groupId":"919a29db-d277-3e67-a931-64fe475e446b","name":"GroovyExecutionService","comments":"","instanceIdentifier":"e0afca76-95ce-37f3-a3cd-73b57df52389"},"destination":{"id":"2eac28b7-8645-32f3-949b-734e3682687b","type":"PROCESSOR","groupId":"919a29db-d277-3e67-a931-64fe475e446b","name":"InvokeHTTP","comments":"","instanceIdentifier":"4ed58809-bfed-35f8-b946-996baf3a7abe"},"labelIndex":0,"zIndex":8,"selectedRelationships":["success"],"backPressureObjectThreshold":10000,"backPressureDataSizeThreshold":"250 MB","flowFileExpiration":"3 days","prioritizers":[],"bends":[],"loadBalanceStrategy":"DO_NOT_LOAD_BALANCE","partitioningAttribute":"","loadBalanceCompression":"DO_NOT_COMPRESS","componentType":"CONNECTION","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"},{"identifier":"0b65d747-5d8f-3472-b0b3-12552709ea8f","instanceIdentifier":"3e10d284-4cb3-3ec1-afb1-cb44f572df27","name":"","source":{"id":"cb993dd6-c1d5-3fc2-916c-e6e9680c10cf","type":"PROCESSOR","groupId":"919a29db-d277-3e67-a931-64fe475e446b","name":"UpdateAttribute","comments":"","instanceIdentifier":"f5c4e094-6cd9-37dc-a233-77b5a5f32956"},"destination":{"id":"b54ce49b-5dff-3cd0-91d1-29523c285a0e","type":"PROCESSOR","groupId":"919a29db-d277-3e67-a931-64fe475e446b","name":"GroovyExecutionService","comments":"","instanceIdentifier":"e0afca76-95ce-37f3-a3cd-73b57df52389"},"labelIndex":0,"zIndex":7,"selectedRelationships":["success"],"backPressureObjectThreshold":10000,"backPressureDataSizeThreshold":"250 MB","flowFileExpiration":"3 days","prioritizers":[],"bends":[],"loadBalanceStrategy":"DO_NOT_LOAD_BALANCE","partitioningAttribute":"","loadBalanceCompression":"DO_NOT_COMPRESS","componentType":"CONNECTION","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"},{"identifier":"b82578e5-801a-3abb-9795-8b5a89c2e2d4","instanceIdentifier":"13f6dc49-1dcc-335a-9c78-7d9cedcbd26c","name":"","source":{"id":"ec3cb17a-911f-36b0-b884-376b2b710867","type":"PROCESSOR","groupId":"919a29db-d277-3e67-a931-64fe475e446b","name":"BODFromEAM_V2","comments":"","instanceIdentifier":"b9071668-1fa0-39af-96e9-f78cb69ec2e6"},"destination":{"id":"cb993dd6-c1d5-3fc2-916c-e6e9680c10cf","type":"PROCESSOR","groupId":"919a29db-d277-3e67-a931-64fe475e446b","name":"UpdateAttribute","comments":"","instanceIdentifier":"f5c4e094-6cd9-37dc-a233-77b5a5f32956"},"labelIndex":0,"zIndex":6,"selectedRelationships":["Sync.AssetMaster"],"backPressureObjectThreshold":10000,"backPressureDataSizeThreshold":"250 MB","flowFileExpiration":"3 days","prioritizers":[],"bends":[],"loadBalanceStrategy":"DO_NOT_LOAD_BALANCE","partitioningAttribute":"","loadBalanceCompression":"DO_NOT_COMPRESS","componentType":"CONNECTION","groupIdentifier":"919a29db-d277-3e67-a931-64fe475e446b"}],"labels":[],"funnels":[],"controllerServices":[],"parameterContextName":"PRAEDICO-CONFIG","defaultFlowFileExpiration":"3 days","defaultBackPressureObjectThreshold":10000,"defaultBackPressureDataSizeThreshold":"250 MB","scheduledState":"ENABLED","executionEngine":"INHERITED","maxConcurrentTasks":1,"statelessFlowTimeout":"1 min","cloudConnectorProcessGroup":false,"flowFileConcurrency":"UNBOUNDED","flowFileOutboundPolicy":"STREAM_WHEN_AVAILABLE","componentType":"PROCESS_GROUP"},"externalControllerServices":{},"parameterContexts":{"PRAEDICO-CONFIG":{"name":"PRAEDICO-CONFIG","parameters":[{"name":"api_key","description":"","sensitive":true,"provided":false},{"name":"api_url","description":"","sensitive":false,"provided":false},{"name":"asset_mapping","description":"The required fields for Praedicos asset contract, and their corresponding field identifiers in Attune EAMs Asset BOD","sensitive":false,"provided":false,"value":"{\n  \"id\":                               \"Equipment.DocumentID\",\n  \"subAreaId\":                        \"Equipment.DepartmentCode\",\n  \"name\":                             \"Description.en\",\n  \"description\":                      \"Description.en\",\n  \"status\":                           \"Equipment.Status.Code | Installed=A\",\n  \"createdBy\":                        \"\",\n  \"updatedBy\":                        \"\",\n  \"createdDate\":                      \"Equipment.CommissionDateTime\",\n  \"updatedDate\":                      \"ApplicationArea.CreationDateTime\",\n  \"startPoint\":                       \"Property.eam.FromPoint\",\n  \"endPoint\":                         \"Property.eam.ToPoint\",\n  \"shapeType\":                        \"computed:shapeType\",\n  \"isComponent\":                      \"\",\n  \"assetCategoryId\":                  \"Classification.Equipment Categories\",\n  \"assetTypeId\":                      \"Classification.Equipment Categories\",\n  \"parentId\":                         \"\",\n  \"geolocation.linearReferenceStart\": \"Description.en\",\n  \"geolocation.linearReferenceEnd\":   \"Description.en\",\n  \"geolocation.locationStart\":        \"Property.eam.FromPoint\",\n  \"geolocation.locationEnd\":          \"Property.eam.ToPoint\",\n  \"geolocation.locationUnit\":         \"\",\n  \"geolocation.offsetStart\":          \"\",\n  \"geolocation.offsetEnd\":            \"\",\n  \"geolocation.offsetUnit\":           \"\",\n  \"geolocation.latitudeStart\":        \"\",\n  \"geolocation.latitudeEnd\":          \"\",\n  \"geolocation.longitudeStart\":       \"\",\n  \"geolocation.longitudeEnd\":         \"\",\n  \"geolocation.coordinateXStart\":     \"\",\n  \"geolocation.coordinateXEnd\":       \"\",\n  \"geolocation.coordinateYStart\":     \"\",\n  \"geolocation.coordinateYEnd\":       \"\",\n  \"assets\":                           \"\",\n  \"assetProperties\":                  \"\"\n}"}],"inheritedParameterContexts":[],"defaultTenantParameterContext":false,"componentType":"PARAMETER_CONTEXT"}},"flowEncodingVersion":"1.0","parameterProviders":{},"latest":false}