I would chain attribute processors in a forward faced manor. You have a set
of 4 known steps that may be labeled together in your ACTION Attribute
which is what type of processing needs to be completed yes?

I would chain some Route on Attributes together as a bottom pipe and use
Regex to look at the commands required to execute on the flow file. My idea
isnt very dynamic in nature its just a standard pipe with some regex to
decide if it will send it up to the processor or not, and from there its
passed to the next RouteOnAttribute type Gate.

I called my 'convert' a, and b, so A in my transform line is always before
B. So I checked if the very first flag was an A.. On the second I ignored
the first char and checked the Second as B. I could see this turning into a
more efficient binary check.

${ACTION:matches('^a.*')}
${ACTION:matches('^.,b')}



On Thu, Apr 6, 2017 at 2:25 PM, Pompilio Ramirez <[email protected]>
wrote:

> Thank you Andy.
>
> We have n number of data points that send data to us to normalize and our
> end points have different normalized requirements.
> So we are also juggling ease of dataflow configuration ( many people
> implementing dataflows ) so trying to keep things simple and have only one
> point in which a DFM needs to go to configure a dataflow.
>
> So dataFromSiteX comes in to our system.
>
> That data is X format .... we "normalize" it through identify Mime type in
> to a standard format we have. And then we route based on who our end
> customers are and their requirements ( zip'd / merged to X size /
> proprietary stuff ).
>
> We are trying to find the most efficient method that balances dataflow
> configuration simplicity ( CM / DFM ) versus technical efficiency.
> To meet the req we could certainly accomplish it using multiple update
> routes on different pieces of the dataflow, but then a DFM would have to
> know that they need to configure many UpdateAttributes.
>
> We are going to do something similar to your suggestion and probably
> extend the route on attribute code, we are also going to create an external
> "U/I or script or something" that will allow a DFM to configure a dataflow
> and that way we can "validate" the initial dataflow configuration, since we
> could have many attributes and settings that we want to pre-populate one
> time and in one place. It feels weird to have a separate UI that populates
> the "nifi UI" but validating a dataflow through the dataflow lifecycle
> builds extra complexity for CM / Tier 1 troubleshooting.
>
>
> On Thu, Apr 6, 2017 at 1:20 PM Andy LoPresto <[email protected]> wrote:
>
>> Hi,
>>
>> I’m not sure I fully understand the question, as you say that “customers”
>> have attributes, but I was under the impression that the customers were
>> various processors/“endpoints”. Flowfiles are the atomic units of data
>> passing through the flow, and that is where attributes are stored.
>>
>> Regardless, to perform complex string comparisons, I believe your best
>> option is an ExecuteScript processor. In any of the supported languages,
>> you can quickly parse the attributes into collections (i.e. java.util.List)
>> via String split on delimiter, perform set arithmetic (A - B), and then
>> route based on the results.
>>
>> Andy LoPresto
>> [email protected]
>> *[email protected] <[email protected]>*
>> PGP Fingerprint: 70EC B3E5 98A6 5A3F D3C4  BACE 3C6E F65B 2F7D EF69
>>
>> On Apr 6, 2017, at 7:58 AM, Pompilio Ramirez <[email protected]>
>> wrote:
>>
>> Hello,
>>
>> I cant find a way to take 2 attributes and create an attribute with only
>> the difference between them.
>>
>> Has anyone accomplished that? In general want to define routing to
>> processing groups that do things. I want to define end points ( say
>> customer1 / customer2  / customer3 )
>> I get one flowfile and I define what the customer(s) need to normalize
>> the data using advance update attribute.
>>
>> So flowfile condition is met and I build attributes under actions:
>>
>> So I enrich flowfile with attribute:
>>
>> So customer1 would have an attribute "ACTIONS" that says ( convert /
>> merge / enrich / convert )
>> Customer2 has "ACTIONS" ( convert / merge / gzip )
>> Customer3 has "ACTIONS" ( convert / merge  )
>>
>> I then want to take that flowfile and have logic that says all customers
>> need convert / merge so I'll take that flowfile and do convert ( this is
>> very expensive ) ( or do all the common steps as one flowfile ) before they
>> clone.
>>
>> Knowing my steps are linear so just want to find a way to build logic to
>> know my common steps and create attributes with the difference.
>>
>> thoughts?
>>
>>
>>


-- 
Joseph
<?xml version="1.0" ?>
<template encoding-version="1.0">
  <description></description>
  <groupId>4d524aff-015b-1000-ffff-ffffd57a20c5</groupId>
  <name>A/B Processing Flow Idea</name>
  <snippet>
    <connections>
      <id>4d535dd8-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d527eed-015b-1000-0000-000000000000</id>
        <type>PROCESSOR</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <selectedRelationships>success</selectedRelationships>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d525eb8-015b-1000-0000-000000000000</id>
        <type>PROCESSOR</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <connections>
      <id>4d53823c-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>10703b6d-953b-1828-0000-000000000000</id>
        <type>PROCESSOR</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <selectedRelationships>success</selectedRelationships>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>18f630d1-9b01-1129-0000-000000000000</id>
        <type>PROCESSOR</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <connections>
      <id>4d54029a-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d53f7fd-015b-1000-0000-000000000000</id>
        <type>FUNNEL</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <selectedRelationships>success</selectedRelationships>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>10703b6d-953b-1828-0000-000000000000</id>
        <type>PROCESSOR</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <connections>
      <id>4d540df7-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d53f7fd-015b-1000-0000-000000000000</id>
        <type>FUNNEL</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <selectedRelationships>success</selectedRelationships>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d527eed-015b-1000-0000-000000000000</id>
        <type>PROCESSOR</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <connections>
      <id>4d541a29-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d539f0d-015b-1000-0000-000000000000</id>
        <type>PROCESSOR</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d53f7fd-015b-1000-0000-000000000000</id>
        <type>FUNNEL</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <connections>
      <id>4d545e04-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>f5873fc3-767f-17ac-0000-000000000000</id>
        <type>PROCESSOR</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <selectedRelationships>unmatched</selectedRelationships>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d539f0d-015b-1000-0000-000000000000</id>
        <type>PROCESSOR</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <connections>
      <id>4d5718d1-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d54923c-015b-1000-0000-000000000000</id>
        <type>PROCESSOR</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <selectedRelationships>A</selectedRelationships>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d539f0d-015b-1000-0000-000000000000</id>
        <type>PROCESSOR</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <connections>
      <id>4d582aca-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>276b39dc-5e8c-1208-0000-000000000000</id>
        <type>PROCESSOR</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <selectedRelationships>B Processing</selectedRelationships>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>f5873fc3-767f-17ac-0000-000000000000</id>
        <type>PROCESSOR</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <connections>
      <id>4d583e73-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>f5873fc3-767f-17ac-0000-000000000000</id>
        <type>PROCESSOR</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <selectedRelationships>success</selectedRelationships>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d54923c-015b-1000-0000-000000000000</id>
        <type>PROCESSOR</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <connections>
      <id>4d586d90-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d584ff8-015b-1000-0000-000000000000</id>
        <type>FUNNEL</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <selectedRelationships>success</selectedRelationships>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>276b39dc-5e8c-1208-0000-000000000000</id>
        <type>PROCESSOR</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <connections>
      <id>4d588041-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
      <backPressureObjectThreshold>10000</backPressureObjectThreshold>
      <destination>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>4d584ff8-015b-1000-0000-000000000000</id>
        <type>FUNNEL</type>
      </destination>
      <flowFileExpiration>0 sec</flowFileExpiration>
      <labelIndex>1</labelIndex>
      <name></name>
      <selectedRelationships>unmatched</selectedRelationships>
      <source>
        <groupId>4d524aff-015b-1000-0000-000000000000</groupId>
        <id>f5873fc3-767f-17ac-0000-000000000000</id>
        <type>PROCESSOR</type>
      </source>
      <zIndex>0</zIndex>
    </connections>
    <funnels>
      <id>4d53f7fd-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>951.0</x>
        <y>315.7515721838514</y>
      </position>
    </funnels>
    <funnels>
      <id>4d584ff8-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>2176.1465625558176</x>
        <y>298.42767148910724</y>
      </position>
    </funnels>
    <labels>
      <id>4d585a2b-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>2136.3269847520705</x>
        <y>248.39805568074712</y>
      </position>
      <height>150.0</height>
      <style></style>
      <width>150.0</width>
    </labels>
    <processors>
      <id>f5873fc3-767f-17ac-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>1636.5355224609377</x>
        <y>270.65702872682016</y>
      </position>
      <config>
        <bulletinLevel>WARN</bulletinLevel>
        <comments></comments>
        <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
        <descriptors>
          <entry>
            <key>Routing Strategy</key>
            <value>
              <name>Routing Strategy</name>
            </value>
          </entry>
          <entry>
            <key>B Processing</key>
            <value>
              <name>B Processing</name>
            </value>
          </entry>
        </descriptors>
        <executionNode>ALL</executionNode>
        <lossTolerant>false</lossTolerant>
        <penaltyDuration>30 sec</penaltyDuration>
        <properties>
          <entry>
            <key>Routing Strategy</key>
            <value>Route to Property name</value>
          </entry>
          <entry>
            <key>B Processing</key>
            <value>${ACTION:matches('^.,b')}</value>
          </entry>
        </properties>
        <runDurationMillis>0</runDurationMillis>
        <schedulingPeriod>0 sec</schedulingPeriod>
        <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
        <yieldDuration>1 sec</yieldDuration>
      </config>
      <name>RouteOnAttribute (Group2 - B)</name>
      <relationships>
        <autoTerminate>false</autoTerminate>
        <name>B Processing</name>
      </relationships>
      <relationships>
        <autoTerminate>false</autoTerminate>
        <name>unmatched</name>
      </relationships>
      <style></style>
      <type>org.apache.nifi.processors.standard.RouteOnAttribute</type>
    </processors>
    <processors>
      <id>10703b6d-953b-1828-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>428.0</x>
        <y>359.75155692506235</y>
      </position>
      <config>
        <bulletinLevel>WARN</bulletinLevel>
        <comments></comments>
        <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
        <descriptors>
          <entry>
            <key>Delete Attributes Expression</key>
            <value>
              <name>Delete Attributes Expression</name>
            </value>
          </entry>
          <entry>
            <key>ACTION</key>
            <value>
              <name>ACTION</name>
            </value>
          </entry>
        </descriptors>
        <executionNode>ALL</executionNode>
        <lossTolerant>false</lossTolerant>
        <penaltyDuration>30 sec</penaltyDuration>
        <properties>
          <entry>
            <key>Delete Attributes Expression</key>
          </entry>
          <entry>
            <key>ACTION</key>
            <value>b</value>
          </entry>
        </properties>
        <runDurationMillis>0</runDurationMillis>
        <schedulingPeriod>0 sec</schedulingPeriod>
        <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
        <yieldDuration>1 sec</yieldDuration>
      </config>
      <name>UpdateAttribute - Only B</name>
      <relationships>
        <autoTerminate>false</autoTerminate>
        <name>success</name>
      </relationships>
      <style></style>
      <type>org.apache.nifi.processors.attributes.UpdateAttribute</type>
    </processors>
    <processors>
      <id>18f630d1-9b01-1129-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>3.0</x>
        <y>362.7515721838514</y>
      </position>
      <config>
        <bulletinLevel>WARN</bulletinLevel>
        <comments></comments>
        <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
        <descriptors>
          <entry>
            <key>File Size</key>
            <value>
              <name>File Size</name>
            </value>
          </entry>
          <entry>
            <key>Batch Size</key>
            <value>
              <name>Batch Size</name>
            </value>
          </entry>
          <entry>
            <key>Data Format</key>
            <value>
              <name>Data Format</name>
            </value>
          </entry>
          <entry>
            <key>Unique FlowFiles</key>
            <value>
              <name>Unique FlowFiles</name>
            </value>
          </entry>
          <entry>
            <key>generate-ff-custom-text</key>
            <value>
              <name>generate-ff-custom-text</name>
            </value>
          </entry>
        </descriptors>
        <executionNode>ALL</executionNode>
        <lossTolerant>false</lossTolerant>
        <penaltyDuration>30 sec</penaltyDuration>
        <properties>
          <entry>
            <key>File Size</key>
            <value>0B</value>
          </entry>
          <entry>
            <key>Batch Size</key>
            <value>1</value>
          </entry>
          <entry>
            <key>Data Format</key>
            <value>Text</value>
          </entry>
          <entry>
            <key>Unique FlowFiles</key>
            <value>false</value>
          </entry>
          <entry>
            <key>generate-ff-custom-text</key>
          </entry>
        </properties>
        <runDurationMillis>0</runDurationMillis>
        <schedulingPeriod>0 sec</schedulingPeriod>
        <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
        <yieldDuration>1 sec</yieldDuration>
      </config>
      <name>GenerateFlowFile</name>
      <relationships>
        <autoTerminate>false</autoTerminate>
        <name>success</name>
      </relationships>
      <style></style>
      <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
    </processors>
    <processors>
      <id>276b39dc-5e8c-1208-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>1573.1231031847722</x>
        <y>0.0</y>
      </position>
      <config>
        <bulletinLevel>WARN</bulletinLevel>
        <comments></comments>
        <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
        <descriptors>
          <entry>
            <key>Delete Attributes Expression</key>
            <value>
              <name>Delete Attributes Expression</name>
            </value>
          </entry>
          <entry>
            <key>Processed2</key>
            <value>
              <name>Processed2</name>
            </value>
          </entry>
        </descriptors>
        <executionNode>ALL</executionNode>
        <lossTolerant>false</lossTolerant>
        <penaltyDuration>30 sec</penaltyDuration>
        <properties>
          <entry>
            <key>Delete Attributes Expression</key>
          </entry>
          <entry>
            <key>Processed2</key>
            <value>By B</value>
          </entry>
        </properties>
        <runDurationMillis>0</runDurationMillis>
        <schedulingPeriod>0 sec</schedulingPeriod>
        <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
        <yieldDuration>1 sec</yieldDuration>
      </config>
      <name>B - Processor </name>
      <relationships>
        <autoTerminate>false</autoTerminate>
        <name>success</name>
      </relationships>
      <style></style>
      <type>org.apache.nifi.processors.attributes.UpdateAttribute</type>
    </processors>
    <processors>
      <id>4d525eb8-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>0.0</x>
        <y>200.7515721838514</y>
      </position>
      <config>
        <bulletinLevel>WARN</bulletinLevel>
        <comments></comments>
        <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
        <descriptors>
          <entry>
            <key>File Size</key>
            <value>
              <name>File Size</name>
            </value>
          </entry>
          <entry>
            <key>Batch Size</key>
            <value>
              <name>Batch Size</name>
            </value>
          </entry>
          <entry>
            <key>Data Format</key>
            <value>
              <name>Data Format</name>
            </value>
          </entry>
          <entry>
            <key>Unique FlowFiles</key>
            <value>
              <name>Unique FlowFiles</name>
            </value>
          </entry>
          <entry>
            <key>generate-ff-custom-text</key>
            <value>
              <name>generate-ff-custom-text</name>
            </value>
          </entry>
        </descriptors>
        <executionNode>ALL</executionNode>
        <lossTolerant>false</lossTolerant>
        <penaltyDuration>30 sec</penaltyDuration>
        <properties>
          <entry>
            <key>File Size</key>
            <value>0B</value>
          </entry>
          <entry>
            <key>Batch Size</key>
            <value>1</value>
          </entry>
          <entry>
            <key>Data Format</key>
            <value>Text</value>
          </entry>
          <entry>
            <key>Unique FlowFiles</key>
            <value>false</value>
          </entry>
          <entry>
            <key>generate-ff-custom-text</key>
          </entry>
        </properties>
        <runDurationMillis>0</runDurationMillis>
        <schedulingPeriod>0 sec</schedulingPeriod>
        <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
        <yieldDuration>1 sec</yieldDuration>
      </config>
      <name>GenerateFlowFile</name>
      <relationships>
        <autoTerminate>false</autoTerminate>
        <name>success</name>
      </relationships>
      <style></style>
      <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
    </processors>
    <processors>
      <id>4d527eed-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>426.0</x>
        <y>206.75155692506235</y>
      </position>
      <config>
        <bulletinLevel>WARN</bulletinLevel>
        <comments></comments>
        <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
        <descriptors>
          <entry>
            <key>Delete Attributes Expression</key>
            <value>
              <name>Delete Attributes Expression</name>
            </value>
          </entry>
          <entry>
            <key>ACTION</key>
            <value>
              <name>ACTION</name>
            </value>
          </entry>
        </descriptors>
        <executionNode>ALL</executionNode>
        <lossTolerant>false</lossTolerant>
        <penaltyDuration>30 sec</penaltyDuration>
        <properties>
          <entry>
            <key>Delete Attributes Expression</key>
          </entry>
          <entry>
            <key>ACTION</key>
            <value>a,b</value>
          </entry>
        </properties>
        <runDurationMillis>0</runDurationMillis>
        <schedulingPeriod>0 sec</schedulingPeriod>
        <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
        <yieldDuration>1 sec</yieldDuration>
      </config>
      <name>UpdateAttribute - A &amp; B </name>
      <relationships>
        <autoTerminate>false</autoTerminate>
        <name>success</name>
      </relationships>
      <style></style>
      <type>org.apache.nifi.processors.attributes.UpdateAttribute</type>
    </processors>
    <processors>
      <id>4d539f0d-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>1153.0</x>
        <y>262.7515721838514</y>
      </position>
      <config>
        <bulletinLevel>WARN</bulletinLevel>
        <comments></comments>
        <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
        <descriptors>
          <entry>
            <key>Routing Strategy</key>
            <value>
              <name>Routing Strategy</name>
            </value>
          </entry>
          <entry>
            <key>A</key>
            <value>
              <name>A</name>
            </value>
          </entry>
        </descriptors>
        <executionNode>ALL</executionNode>
        <lossTolerant>false</lossTolerant>
        <penaltyDuration>30 sec</penaltyDuration>
        <properties>
          <entry>
            <key>Routing Strategy</key>
            <value>Route to Property name</value>
          </entry>
          <entry>
            <key>A</key>
            <value>${ACTION:matches('^a.*')}</value>
          </entry>
        </properties>
        <runDurationMillis>0</runDurationMillis>
        <schedulingPeriod>0 sec</schedulingPeriod>
        <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
        <yieldDuration>1 sec</yieldDuration>
      </config>
      <name>RouteOnAttribute (Group1 - A)</name>
      <relationships>
        <autoTerminate>false</autoTerminate>
        <name>A</name>
      </relationships>
      <relationships>
        <autoTerminate>false</autoTerminate>
        <name>unmatched</name>
      </relationships>
      <style></style>
      <type>org.apache.nifi.processors.standard.RouteOnAttribute</type>
    </processors>
    <processors>
      <id>4d54923c-015b-1000-0000-000000000000</id>
      <parentGroupId>4d524aff-015b-1000-0000-000000000000</parentGroupId>
      <position>
        <x>1137.8545484972722</x>
        <y>8.18349838256836</y>
      </position>
      <config>
        <bulletinLevel>WARN</bulletinLevel>
        <comments></comments>
        <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
        <descriptors>
          <entry>
            <key>Delete Attributes Expression</key>
            <value>
              <name>Delete Attributes Expression</name>
            </value>
          </entry>
          <entry>
            <key>Procesed</key>
            <value>
              <name>Procesed</name>
            </value>
          </entry>
        </descriptors>
        <executionNode>ALL</executionNode>
        <lossTolerant>false</lossTolerant>
        <penaltyDuration>30 sec</penaltyDuration>
        <properties>
          <entry>
            <key>Delete Attributes Expression</key>
          </entry>
          <entry>
            <key>Procesed</key>
            <value>By A</value>
          </entry>
        </properties>
        <runDurationMillis>0</runDurationMillis>
        <schedulingPeriod>0 sec</schedulingPeriod>
        <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
        <yieldDuration>1 sec</yieldDuration>
      </config>
      <name>A - Processor </name>
      <relationships>
        <autoTerminate>false</autoTerminate>
        <name>success</name>
      </relationships>
      <style></style>
      <type>org.apache.nifi.processors.attributes.UpdateAttribute</type>
    </processors>
  </snippet>
  <timestamp>04/08/2017 07:37:10 EDT</timestamp>
</template>

Reply via email to