DDay iCal RecurrenceId - recurring-events

I am actually using the Telerik kendo scheduler, instead of an iCal file, but I need to display an occurrence list in a manner other than the schedulers agenda list and the mappings between the schedule object and an ical object are similar so I figured I would use DDay.
Creating an iCalendar object and loading in the schedule table I have the code working where I can build the occurrence list and filter out events deleted from the series. Where I am having problems is where an event was modified in the series.
With the way the data is stored in the db when a modified event in a series is created it creates a new record and populates the RecurrenceId field with the original record's event Id.
Seems simple enough just match against id fields, right? Problem is the RecurrenceId in DDay iCal is an IDateTime and not an int. I am not sure how to process it because we have a lot of events that start/end at the same time so grabbing the original start/end does not seems viable. Unless I am misunderstanding what is actually happening.
I did figure out a convoluted way to handle a modified event if it is the only modified event for the master event in the occurrence. But this method does not account for an occurrence series that might include the master event and multiple modified events off of the master.
I guess one possible solution would be to build 2 lists from the scheduler table one that has only modified recurring events and the other master events.
Then as I am processing the occurrences I do a check against each occurrence to see if it exists in the modified events list. If so update the occurrence accordingly. Seems like a very kludgy solution however. Even if it would address all the modified scenarios. I think I am missing something in the library that would handle this.
As always any help that can be provided on this issue would be appreciated.
Thanks,
Chris

It seems that my test set data was screwed up. The way it appears that it works is the master event will have a recurrence exception. So when you make a call to get an occurrences if an exception is in that range the master record will be skipped/filtered and the modified event for the series will remain. Additionally, if the event in the occurrence range was deleted then the event will not appear in the occurrence range.
There were some errors in my test data set which made it look like there needed to be an additional filter step.

Related

AutoCAD Block comparison from file

I am not asking for the answer, as that seems to upset some people, but does anyone know if the AutoCAD block table keeps a record of the block creation data (such as the date etc) that can be accessed?
My scenario:
I have a drawing of whatever. I insert a block called BlockA.dwg, that was created on monday. BlockA.dwg is then updated on wednesday.
I want to be able to run a command that checks if the block in my drawing is the latest version on file.
Can this be done? Has anyone else ever come across this need?
AutoCAD does not store this type of data at the entity level.
You could try adding an xrecord with a date stamp or other data you require. Please note that this will be attached to the block reference in the file, not the original BlockA.dwg. You could check the xrecord date stamp and then compare it to the modified date of the original file.
It's not a bulletproof solution but could get you going in the right direction.

Save filtered tree view to load as it is at another time

So, The case is.
I filtered the records in list view by applying some filters.
So, I need any mechanism to save this listview data to load after some time by clicking on any button or something.
Thank you in advance.
If you need to freeze the records as they are at the moment of the request, you'll have to save them in another model. Something like a report with the report lines containing the needed information. Otherwise, deleted records will vanish, modified records will, well - get modified.
If you'd like to get no more results, but still display the changes/deletions of the existing ones, you can either filter them by some relevant date interval for example, or again use the above mentioned approach, but keep relation fields to the actual records containing the up-to-date data.

Passing data from one Pentaho transformation to another in a job?

Fairly straightforward question I think, I just haven't been able to find a clear example. I have a very complex transformation that I'm breaking down into a job. Having never created a job before, I'm struggling to send the data from one transformation to another. I used Copy Rows to Result in the first one and Get Rows From Result in the second one, but I feel like I'm still missing something. When I used Get Rows, I had to specify the row names - there was no sort of Get Fields button. I also can't preview the data in the transformation without running the job and having it save to an Excel file. When I did that, ALL of the fields were in the output file -- instead of just the ones I'd specified in the second transformation.
I've searched through the documentation and tried Googling but I can't find a clear walkthrough just on how to smoothly move data from one transformation to another. Any responses would be appreciated even if it's just pointing me towards something I've overlooked.
Thanks!
The most commom way is to use copy rows to result at the end of one KTR and use get rows from result as the starting point for the next one. Though you really can't "see" the result while operating in the next KTR, what you can do to ease the reading is set a preview window and leave it open to see all the columns names and data.
Whoever if you want to set just a few lines of code through to the next KTR you can use Set variables as the ending step of the first KTR and capture those variables at anytime in the second using Get Variables steps. Don't forget that if you do so you need to set the variables in the parent KJB(the Job that called the first KTR) with no Default value, and the Variable scope type of the Set variables step has to be set to Valid in the parent job.
The best way is to create KTR's, run/test each. This way you can examine resulting data and then integrate all individual transformations into the final job.

crystal report for work operations

I have a problem during creating a crystal report which will show a part of one manufacturing process.
So, I need your help....
I have a four different components that forms a one bigger component (or product). Every of this small components pass through different production operations, but the same component don't pass through all production production operations.
And, I need a crystal report which shows every article (component) with a number of finished component in each operation.
Here is the example of SQL result (ordery by operations):
so, you can see that article with articleID = '29183' is going through first and last operation... also, articleID = '17275' is going through the second and last operation... I think that is all clear from the picture...
And, all I need is report that this will show in the columns like this:
In the report, I made a group by ArticleID, so the article (component) appears only in one row... And after that, I need a values in columns (columns for operations) which correspond to every article...
Very thanks... I try this solve for a few days, but I don't know how to solve this... I tried crosstabs, dictionaries, lists but nothing helps me
You've already grouped by Article ID so that each article has its own single line, so that's a good start. Now, you just need to separate the 3 operations with 3 formulas and aggregate them to the group level.
For example, the formula for the first operation would look like:
//If row is a "first operation" then display the finished data element
if {table.Operation}="first operation" then {table.Finished}
Then to display in the Group Footer you could just use a max() summary function on the formula you just created.

Infopath 2010 - Create a repeating block from each item in an array on form load

Please forgive me if I don't explain this well. I'm new to Infopath. Here goes!
Overall Goal: Create an infopath form that will generate an email, eliminating certain 'human error' problems that we've been having.
Problem: Automatically creating a new repeating block for each item in the list/array.
The list would be something like:
PROPERTY NAME = Prop 1, Prop 2, Prop 3, etc.
Below is the entire block of data that I want to repeat.
*PROPERTY NAME* – OPEN or CLOSED
Hours – XX:XX AM ET – XX:XX PM ET
No incidents open
IMxxxxxx - Incident details | Status: Red
This entire block needs to be repeated for each property we own. Now, while I know that I could create multiple blocks for each property manually, that makes creation and maintenance of the form time consuming . Ideally, I'd like the form to read the property's from a list or array, and insert the name into each new block when the form loads up. The rest of the info would be filled out by the user of the form. This way, if we ever add or change a property, I or someone else can easily update the form by simply adding the new item to the list/array.
I have been Google'ing this for hours today and I think my problem with search results boils down to my lack of knowledge of the proper terminology.
Does anyone have any ideas?
Create a secondary data connection to the source list (where does it live, BTW? SharePoint? SQL?) Drag the data node for the secondary data connection onto the canvas as a repeating section with controls. Remove controls you don't want to see and arrange the others to your liking.
Upon form load query the secondary data source. The repeating section will then be populated with the items returned by the query. This will only read the items, though.
If you want to edit the items, then you need a repeating group in your main data source. After querying the secondary data connection, you need to copy the data from the secondary to the main data source. Edits can be done in the main schema, and you will need a submit data connection to write back the changes.
This is not out of the box InfoPath functionality but it can be done with code or with 3rd party tools like Qdabra Software's qRules.