Hello Community,
I am prepping a BOD to be processed as a Sync.AssetMeterReading BOD. However, there are too many occurrences of meter readings for each asset. I am trying to get rid of all excess readings except for the one with the latest End Date. Or, if it is easier, the last reading for each asset. Scripting is new to me and I was wondering if someone could provide me with some sample script codes that can remove the unwanted readings. Within my <DataPacket>, I have a <sysreport> that contain my assets. Each asset may have anywhere from 1 to 20 readings within the <reportdata>. I just need the last reportdata or the reportdata with the latest <EndDt>.
Right Now, I have a Data Flow splitter that split them at the <asset_number> level. So, that may be easier to have the script execute when the assets are within their own BOD. But, I don't know how to write that script to give me the last reportdata only.
Any assistance would be greatly appreciated.
Thank you.
Desire Post-Script BOD.
<?xml version="1.0" encoding="UTF-8"?>
<SyncDataPacket xmlns="http://schema.infor.com/InforOAGIS/2" languageCode="en-US" releaseID="9.2" systemEnvironmentCode="Production" versionID="2.8.0">
<ApplicationArea>
<Sender>
<LogicalID>lid://infor.eam.eam</LogicalID>
<ComponentID>EAM</ComponentID>
<TaskID>AssetMeterReading</TaskID>
<ConfirmationCode>OnError</ConfirmationCode>
</Sender>
<CreationDateTime>2021-04-29T04:29:11Z</CreationDateTime>
<BODID>DP:21-227</BODID>
</ApplicationArea>
<DataArea>
<Sync>
<TenantID>TENANT_PRD</TenantID>
<AccountingEntityID>MEXORG</AccountingEntityID>
<ActionCriteria>
<ActionExpression actionCode="Add"/>
</ActionCriteria>
</Sync>
<DataPacket>
<packet_id>285</packet_id>
<sysreport>
<asset_number>ASSET01</asset_number>
<sys_params>
<thresh01>300</thresh01>
<thresh02>16</thresh02>
<speed01>66</speed01>
<speed02>67</speed02>
</sys_params>
<reportdata>
<BegDt>04/29/2021 19:15:42</BegDt>
<EndDt>04/29/2021 20:30:00</EndDt>
<BegRd>1142544</BegRd>
<EndRd>1143234</EndRd>
<et>4457</et>
<mt>3904</mt>
<or>245</or>
</reportdata>
</sysreport>
<sysreport>
<asset_number>ASSET2</asset_number>
<sys_params>
<thresh01>300</thresh01>
<thresh02>16</thresh02>
<speed01>66</speed01>
<speed02>67</speed02>
</sys_params>
<reportdata>
<BegDt>04/29/2021 14:48:00</BegDt>
<EndDt>04/29/2021 20:48:00</EndDt>
<BegRd>2980181</BegRd>
<EndRd>2982537</EndRd>
<et>20721</et>
<mt>15030</mt>
<or>111</or>
</reportdata>
</sysreport>
<sysreport>
<asset_number>ASSET3</asset_number>
<sys_params>
<thresh01>300</thresh01>
<thresh02>16</thresh02>
<speed01>66</speed01>
<speed02>67</speed02>
</sys_params>
<reportdata>
<BegDt>04/29/2021 19:22:12</BegDt>
<EndDt>04/29/2021 20:31:58</EndDt>
<BegRd>4496923</BegRd>
<EndRd>4496924</EndRd>
<et>976</et>
<mt>56</mt>
<or>0</or>
</reportdata>
</sysreport>
</DataPacket>
</DataArea>
</SyncDataPacket>
Sample Pre-Script BOD with multiple reportdata for asset.
<?xml version="1.0" encoding="UTF-8"?>
<SyncDataPacket xmlns="http://schema.infor.com/InforOAGIS/2" languageCode="en-US" releaseID="9.2" systemEnvironmentCode="Production" versionID="2.8.0">
<ApplicationArea>
<Sender>
<LogicalID>lid://infor.eam.eam</LogicalID>
<ComponentID>EAM</ComponentID>
<TaskID>AssetMeterReading</TaskID>
<ConfirmationCode>OnError</ConfirmationCode>
</Sender>
<CreationDateTime>2021-04-29T04:29:11Z</CreationDateTime>
<BODID>DP:21-227</BODID>
</ApplicationArea>
<DataArea>
<Sync>
<TenantID>TENANT_PRD</TenantID>
<AccountingEntityID>MEXORG</AccountingEntityID>
<ActionCriteria>
<ActionExpression actionCode="Add"/>
</ActionCriteria>
</Sync>
<DataPacket>
<packet_id>285</packet_id>
<sysreport>
<asset_number>ASSET01</asset_number>
<sys_params>
<thresh01>300</thresh01>
<thresh02>16</thresh02>
<speed01>66</speed01>
<speed02>67</speed02>
</sys_params>
<reportdata>
<BegDt>04/29/2021 16:35:48</BegDt>
<EndDt>04/29/2021 18:49:20</EndDt>
<BegRd>1141269</BegRd>
<EndRd>1142501</EndRd>
<et>8013</et>
<mt>7038</mt>
<or>247</or>
</reportdata>
<reportdata>
<BegDt>04/29/2021 18:49:20</BegDt>
<EndDt>04/29/2021 19:09:38</EndDt>
<BegRd>1142501</BegRd>
<EndRd>1142502</EndRd>
<et>1218</et>
<mt>43</mt>
<or>0</or>
</reportdata>
<reportdata>
<BegDt>04/29/2021 19:09:38</BegDt>
<EndDt>04/29/2021 19:10:08</EndDt>
<BegRd>1142502</BegRd>
<EndRd>1142502</EndRd>
<et>30</et>
<mt>7</mt>
<or>0</or>
<os>0</os>
</reportdata>
<reportdata>
<BegDt>04/29/2021 19:10:08</BegDt>
<EndDt>04/29/2021 19:15:40</EndDt>
<BegRd>1142502</BegRd>
<EndRd>1142543</EndRd>
<et>332</et>
<mt>330</mt>
<or>4</or>
</reportdata>
<reportdata>
<BegDt>04/29/2021 19:15:40</BegDt>
<EndDt>04/29/2021 19:15:42</EndDt>
<BegRd>1142543</BegRd>
<EndRd>1142544</EndRd>
<et>2</et>
<mt>2</mt>
<or>0</or>
</reportdata>
<reportdata>
<BegDt>04/29/2021 19:15:42</BegDt>
<EndDt>04/29/2021 20:30:00</EndDt>
<BegRd>1142544</BegRd>
<EndRd>1143234</EndRd>
<et>4457</et>
<mt>3904</mt>
<or>245</or>
</reportdata>
</sysreport>
<sysreport>
<asset_number>ASSET2</asset_number>
<sys_params>
<thresh01>300</thresh01>
<thresh02>16</thresh02>
<speed01>66</speed01>
<speed02>67</speed02>
</sys_params>
<reportdata>
<BegDt>04/29/2021 14:48:00</BegDt>
<EndDt>04/29/2021 20:48:00</EndDt>
<BegRd>2980181</BegRd>
<EndRd>2982537</EndRd>
<et>20721</et>
<mt>15030</mt>
<or>111</or>
</reportdata>
</sysreport>
<sysreport>
<asset_number>ASSET3</asset_number>
<sys_params>
<thresh01>300</thresh01>
<thresh02>16</thresh02>
<speed01>66</speed01>
<speed02>67</speed02>
</sys_params>
<reportdata>
<BegDt>04/29/2021 17:00:00</BegDt>
<EndDt>04/29/2021 19:22:12</EndDt>
<BegRd>4496923</BegRd>
<EndRd>4496923</EndRd>
<et>147</et>
<mt>0</mt>
<or>0</or>
</reportdata>
<reportdata>
<BegDt>04/29/2021 19:22:12</BegDt>
<EndDt>04/29/2021 20:31:58</EndDt>
<BegRd>4496923</BegRd>
<EndRd>4496924</EndRd>
<et>976</et>
<mt>56</mt>
<or>0</or>
</reportdata>
</sysreport>
</DataPacket>
</DataArea>
</SyncDataPacket>