Scheduled instance of report sending stale data - crystal-reports

I have a scheduled instance emailing to a user. The instance works fine and user gets email. But the data in the report attached to the email is stale. It is missing item codes that do show up in the report if you go view it directly in web browser at BO server.
If I create a new instance scheduled to send to me - data looks up to date and good to go. If I add myself on the instance sending stale report and re-run the instance, I also get the stale version.
I'm worried about how whatever this is could be impacting other reports/users in the company without our knowledge. And also want to fix this one instance.
Is there some caching or other options that could be causing this? Why is the instance sending stale data?
Thanks!!

I figured this out. Turns out someone added record select formulas to the base report but did not re-create the scheduled instance. I looked at meta data from CI_INFOOBJECTS etc to see the record select formula on the instance. It does not match the updated record select on the base report.
This highlights a great best practice to keep in mind in this environment. KEEP YOUR FILTERS OUT OF CRYSTAL REPORTS! Keep your record selection and data transform logic inside SQL server in stored procs or views. That way you can update your report filter criterias without have to re create every scheduled report instance after every little report change :)

Related

TABLEAU FILTERS AND SERVERS

There is an automated report on Tableau server set to run each business day. When we open the report, the filters are still present, but there are no results (no data, no viz). There are also no errors. What are some of the possible explanations for why there would not be data present in the report? How to Describe to check for each possible explanation?
2.Tableau reports that connect to multiple servers. Assume that one of the servers went down, it’s unclear when it will be back online, and that this server is the most widely used data source. What to do immediately to minimize the impact on business customers?
You are lucky that question is not closed normally these type of questions are not entertained in SO
There are no errors and no data
Since filters are present in reports possible reason would be filters are active on the report are not fetching any data to report hence you are getting blank report and no errors. For E.g if you run the report for emp ID 100 and there is no emp id with number 100 then no data is fetched from database and report will be black.
So possible debug way would be check the applied filters and check in database if there is any data for those filters and if database access is not provided then provided different values for the same report and check data.
one of the servers went down, it’s unclear when it will be back online
Normally in a live scenario there will be back up servers when primary server is down you need to connect to the back server and minimize the impact and check for the solution for primary server to back online ASAP

What can I use to generate email/pdf reports based on a steady incoming data stream?

I have data coming in to a MySQL instance and I want to be able to analyze time-seperated data and generate a report based on that. What would be the best software/method to make use of? Would Jasper reports be of use here?
Free/open source would be preferable. The reports can go out to a number of preset emails assigned based on the data being reported on. For example, Site A which will have a report sent out every hour based on the incoming data would go out to a managed list of 4 or 5 people, and so forth.
I think you should take a look at DBxtra, and specifically at the Schedule Server component which lets you send reports in emails automatically and unattended every certain time, although it's not free (there is a fully functional trial version however).
If you insist on it being free, i think that you can use any option you want (i prefer Jasper Reports), but you'll need to create and send the emails by hand or make a solution yourself as the option to send emails automatically it's not present on the free tiers.
P.S.: I'm a DBxtra evangelist.

AFIncrementalStore - best design to prevent some records from being updated

Here is the use case:
I am using AFIncrementalStore, in a fairly standard way
When offline, user is still able to update some records
I set up my own queue to upload edited records and process the queue when back online
When back Online I also refetch data
I want to make sure that my updated records don't get re-updated with the old data from the server when back online
Whenever I edit a record, I flag it in core data as 'edited', and clear the flag only when it is successfully sent to server
The goal is:
when I get results from server, if the results already exist in core
data, but are flagged as 'updated' or 'deleted', I don't want them to
be refreshed with values from the server
I am looking for the best design to achieve that, out of the box if possible. I would like to avoid subclassing.

database delivery option for subscribed ssrs reports

I have a reports which is taking 20 minutes to run .I want to make it as subscribed ssrs report.I have seen that in SSRS the delivery options are email and fileshare but I want the report to be saved in DB directly.Is there a way of inserting the report in DB.
You can schedule a snapshot based on parameters to be rendered. If your report follows a model that allows it to be subscribed to with parameters similar to the snapshot then you can create a batch type process. This works if your users are not expecting real-time data.
For example:
Early in the morning create a snapshot.
Email cached version based on similar parameters.
Hope this helps.

Core Data syncronization procedure with Web service

I'm developing an application that needs to be syncronized with remote database. The database is connected to the a web-based application that user able to modify some records on the web page.(add/remove/modify) User also able to modify the same records in mobile application. So each side (server - client) must be keep the SAME latest records when an user press the sync button in mobile app. Communication between server and client is provided by Web Serives.(SOAP) and i am not able to change it because of it is strict requirements. (i know this is the worst way that can be used). And another requirement is the clients are not able to delete the server records.
I already be familiar with communicating web service (NSURLConnection), receiving data (NSData) and parsing it. But i could not figure out how the syncronization procedure should be. I have already read this answer which about how i can modify server and client sides with some extra attributes (last_updated_date and is_sync)
Then i could imagine to solve the issue like:
As a first step, client keeps try to modify the server records with sending unsyncronized ones. New recoords are directly added into DB but modified records shoud be compared depending on last_updated_date. At the end of this step, server has the latest data.
But the problem is how can manage to modify the records in mobile app. I thought it in a two way:
is the dummiest way that create a new MOC, download all records into this and change with existing one.
is the getting all modified records which are not in client side, import them into a new MOC and combine these two. But in this point i have some concerns like
There could be two items which are replicated (old version - updated version)
Deleted items could be still located in the main MOCs.
I have to connect multiple relationships among the MOCs. (the new record could have more than 4 relationships with old records)
So i guess you guys can help me to have another ideas which is the best ??
Syncing data is a non-trivial task.
There are several levels of synchronization. Based on your question I am guessing you just need to push changes back to a server. In that case I would suggest catching it during the -save: of the NSManagedObjectContext. Just before the -save: you can query the NSManagedObjectContext and ask it for what objects have been created, updated and deleted. From there you can build a query to post back to your web service.
Dealing with merges, however, is far more complicated and I suggest you deal with them on the server.
As for your relationship question; I suggest you open a second question for that so that there is no confusion.
Update
Once the server has finished the merge it pushes the new "truth" to the client. The client should take these updated records and merge them into its own changes. This merge is fairly simple:
Look for an existing record using a uniqueID.
If the record exists then update it.
If the record does not exist then create it.
Ignoring performance for the moment, this is fairly straight forward:
Set up a loop over the new data coming in.
Set up a NSPredicate to identify the record to be updated/created.
Run your fetch request.
If the record exists update it.
If it doesn't then create it.
Once you get this working with a full round trip then you can start looking at performance, etc. Step one is to get it to work :)